操作系统的演进
无操作系统
人工操作
用户独占
cpu等待人工操作
资源利用率低
批处理系统
无需等待人工操作
批量输入任务
资源利用率提升
多道程序设计
分时系统
人机交互
多用户共享
及时调试程序
多道程序设计的管理
操作系统概览
是管理硬件,提供用户交互的软件系统
操作系统的基本功能
操作系统统一管理着计算机资源
处理器资源
IO设备资源
存储器资源
文件资源
操作系统相关概念
并发性
共享性:操作系统中的资源可供多个并发的程序共同使用
虚拟性:把一个物理实体转变为若干个逻辑实体。物理实体是真实存在的,逻辑实体是虚拟的。
异步性:允许多个进程并发执行。进程在使用资源时可能需要等待/放弃。进程的执行并不是一气呵成的,而是走走停停的形式推进
进程管理
进程实体
为什么需要进程?
没有配置OS之前,资源需要当前运行的程序
配置OS之后,引入多道程序设计的概念
合理的隔离资源,运行环境,提升资源利用率
进程是系统进行资源分配和调度的基本单位
进程作为程序独立运行的载体保障程序正常执行
进程的存在使得操作系统资源的利用率大幅提升
主存中进程形态
标识符
状态
优先级
程序计数器
内存指针
上下文数据
IO状态信息
记账信息
进程与线程
线程 是操作系统进行运行调度的 最小单位
进程 是系统进行资源分配和调度的 基本单位
五状态模型
创建
创建进程时拥有PCB但其他资源尚未就绪的状态称为创建状态
就绪
其他资源都准备好,只差CPU资源的状态为就绪状态
终止
进程结束由系统清理/归还PCB的状态称为终止状态
阻塞
从而放弃CPU的状态称为阻塞状态
执行
进程获得CPU,其程序正在执行称为执行状态
进程同步
根本问题是:彼此相互之间没有通信。所以,需要进程间的同步
进程间的同步
空间让进:资源无占用,允许使用
忙则等待:资源有占用,请求进程等待
有限等待:保证有效等待时间能够使用资源
让权等待:等待时,进程需要让出CPU
进程同步的方法
消息队列
共享存储
信息量
线程同步的方法
互斥量
读写锁
自旋锁
条件变量
Linux的进程管理
进程类型
前台进程:具有终端,可以和用户交互的进程
后台进程:没有占用终端的就是后台进程
守护进程:进程名字以d结尾的一般是守护进程
进程标记
进程ID: