进程与调度
进程概念
程度:静态,存放在磁盘里的可执行文件。
进程:动态,是程序的一次执行过程。
同一个程序多次执行会对应多个进程。
进程组织与控制
进程的组成PCB
PID:操作系统为该进程分配一个唯一的、不重复的id。
操作系统记录PID、进程所属用户ID以及进程分配了哪些资源与进行情况。
这些信息保存在进程控制块中PCB。
操作系统需要对各个并发运行的进程进行管理,但凡管理时所需要的信息都放在PCB中。
PCB是进程存在的唯一标志。
- 进程描述信息
- PID
- UID
- 进程控制和管理信息
- CPU、磁盘、网络流量使用统计
- 进程当前状态:就绪态/阻塞态/运行态
- 资源分配清单
- 正在使用哪些文件
- 正在使用哪些内存区域
- 正在使用哪些I/O设备
- 处理机相关信息
- 用于实现进程切换
程序段、数据段
组成
- PCB
- 程序段
- 程度的代码,指令序列
- 数据段
- 运行过程中产生的各种数据
PCB是给OS用的,程序段与数据段是给进程使用的。
进程的特征
- 动态性
- 动态性是进程最基本的特性
- 进程是程序的一次执行过程,动态产生、变化和消亡
- 并发性
- 内存中有多个进程实体,可并发执行
- 独立性
- 进程能独立运行,独立获取资源与独立接受调度的基本单位
- 异步性
- 各进程按独立、不可知的速度向前推进。
- 会导致程序执行结果的不确定性
- 结构性
- 每个进程都配有一个PCB
进程的状态与转换
进程的组织方式(各个进程PCB的组织方式)
- 链接方式
- 按照进程状态将PCB分为多个队列
- 操作系统有指向各个队列的指针
- 索引方式
- 根据进程状态不同建立几张索引表
- 操作系统有指向各个索引表的指针
进程控制
进程控制就是要实现进程状态转换
用原语实现进程控制。
原语的执行具有“原子性”,一气呵成,期间不允许被中断。
如果不能一气呵成可能会导致OS中的某些关键数据结构信息不统一会影响系统进行别的管理工作。
可以用“关中断指令”和“开中断指令”这两各特权指令实现原子性。
CPU执行了“关中断指令”之后就不再例行检查终端信号,直到执行“开中断指令”之后才会恢复检查。
无论哪个进程控制原语,无非是三类事情
- 更新PCB中的信息
- 所有进程控制原语一定会修改进程状态标志
- 剥夺当前运行进程的CPU使用权必然需要保存其运行环境
- 某进程开始运行前必然要恢复运行环境
- 将PCB插入合适的队列
- 分配/回收资源
网友评论