文章目录
一、程序执行
1.1 程序顺序执行
1.1.1 顺序执行特征
- 顺序性
- 封闭性:即程序运行时独占全机资源,资源的状态只有本程序能改变,一旦执行结果不受外界影响。
- 可再现性
1.1.2 并发执行
只有在不存在前趋关系的程序之间才有可能并发执行。
特征:
- 间断性
- 失去封闭性
- 不可再性性:并发执行失去了封闭性,也导致了失去可再现性。
二、进程的描述
2.1 定义和特征
2.1.1 定义
- 引入进程的原因: 程序并发执行将导致其失去封闭性,具有间断性,以及运行结果不可再现。由此,需要引入“进程”的概念使程序可以并发执行,并对其可以加以描述和控制。
- 进程控制块(PCB):一种数据结构,使参与并发执行的每个程序都能独立运行;可以描述进程的进本情况和活动过程,进而控制和管理进程。
- 进程实体(进程映像):程序段 + 相关数据段 + PCB。
所谓创建进程,实质上是创建PCB;撤销进程,也就是撤销PCB
注意:
- 进程是程序的一次执行。
- 进程是 一个程序及其数据 在处理机上顺序执行时所发生的活动。
- 进程时系统进行资源分配和调度的一个独立单位。
进程是进程实体的运行过程
2.1.2 特征
- 动态性:进程是动态的,程序是静态的。
- 并发行:指多个进程实体同存于内存中,在一段时间内同时运行。
- 独立性:进程实体是能独立运行,独立获得资源和独立接受调度的基本单位。
- 异步性
2.2 进程的基本状态和转换
- 就绪状态:进程已分配到除CPU以外的所有必要资源。
- 执行状态:进程已获得CPU,正在执行。
- 阻塞状态:正在执行的进程由于某事件暂时无法继续执行。
- 创建状态:进程申请一个空白PCB,想其中填写用于控制和管理进程的信息;但如果进程所需的资源不能得到满足,创建工作未完成,进程不能被调度,此时即位创建状态。
- 终止状态:将PCB清零,并将其返还系统。
2.3 挂起操作
2.3.1 引入:
- 终端用户的需要:暂停程序,用户自检。
- 父进程请求
- 负荷调节的需要
- 操作系统的需要
引入挂起操作后三个进程状态的切换
挂起原语:suspend;激活原语:active
- 活动就绪->静止就绪:未被挂起就绪状态->挂起后无法被调度
- 活动阻塞->静止阻塞
*以上活动可以反向
2.4 进程管理中的数据结构
计算机系统对每个资源每个进程都设置了一个数据结构,一般分为以下四类:内存表、设备表、文件表和用于进程管理的进程表。
2.4.1 PCB的作用
- 作为独立运行基本单位的标志
- 能实现间断性运行方式:可以保存现场,恢复现场,保证了可再现性
- 提供进程管理所需要的信息:始址指针等
- 提供进程调度所需要的信息
- 实现于其他进程的同步与通信
2.4.2 PCB中的信息
- 进程标识符:唯一标识一个进程。
- 外部标识符:用户自命名
- 内部标识符:OS设置
- 处理机状态:
- 通用寄存器:用户程序可以访问,用于暂存信息(RISC中超过100个)
- 指令计数器:存放要访问的下一条指令的地址
- 程序状态字PSW
- 用户栈指针:用于存放过程和系统调用参数及调用地址
- 进程调度信息
- 进程状态
- 进程优先级(整数)
- 进程调度所需的其他信息
- 事件:阻塞原因
2.4.3 PCB组织方式
- 线性方式:实现简单、开销小;但每次需要查整张表。
- 链接方式:具有相同状态进程的PCB分别通过PCB中的链接字链接成一个队列。
- 索引方式:根据所有进程状态的不同,建立几张索引表。
2.5 进程控制
2.5.1 操作系统内核
- 支撑功能:中断处理、时钟管理和原语操作
- 资源管理:进程管理、存储器管理、设备管理
2.5.2 进程的创建
- UNIX:进程与其子孙进程共同组成一个进程家族,子承父业、父亡子亡。
- Windows:人人平等,谁掌握句柄谁就掌握控制权。
- 引起创建进程的事件:
- 用户登陆
- 作业调度
- 提供服务
- 应用请求
- 进程的创建:
- 申请空白PCB,获得唯一数字标识
- 为新进程分配所需资源
- 初始化PCB:
- 标识信息
- 处理机状态
- 处理机控制信息
- 如果进程就绪队列接纳,则将新进程插入。