操作系统之进程管理(一)
一、程序
程序:程序是指令和数据的集合,可以作为目标文件保存在磁盘中,或者作为段存放在内存地址空间中;
1、程序的顺序执行(单道批处理系统):先进入内存的程序先执行,在一个程序执行完毕之前,不能执行其他程序。
特点:
- 顺序性 :先进入内存的程序先执行
- 封闭性 :程序一但开始执行,则系统中的资源只为他服务,不受外界因素影响,其计算结果就取决于程序本身
- 可再现性:无论程序重复执行多次时,必将得到相同结果.
2、程序的并发执行(多道批处理系统):
- 含义:程序并发执行是指在同一时间间隔内运行多个程序。一个程序执行结束前,可以运行其他程序
- 宏观并行:用户看到多个程序同时向前推进
- 微观串行:任意时刻一个CPU上只有一个程序在执行
并发执行的特点:
- 间断性:程序在CPU上执行时,是时断时续的,操作系统中的进程轮流占用CPU的时间片
- 失去封闭性:并发执行时,系统中的各资源将为所有程序共享,系统的状态不再只对正在执行的程序可见;
- 不可再现性:同一个程序在输入相同的情况下多次运行,可能出现不同的结果
二、进程
进程:进程是程序运行的一个具体的实例,是程序在某个数据集合上的运行过程,是动态的。
进程包含的内容:
- 正文段:存放被执行的机器指令
- 用户数据段:存放用户数据
- 进程控制块:存放进程的运行环境
进程的特征:
- 并发性:多个进程实体能在一段时间间隔内同时运行,并发性是进程和现代操作系统的重要特征
- 动态性:进程是程序的执行过程;执行程序—>创建进程,获得CPU—>执行指令,运行中止—>被撤销
- 独立性:独立运行和资源调度的基本单位(在没有引入线程之前);
- 异步性:进程的执行时断时续,何时执行、何时暂停都无法预知
- 结构特征:进程实体包括用户正文段 、 用户数据段 和 进程控制块
进程与程序的关系:
- 进程是程序的的一次执行
- 一个程序可以对应多个进程
- 同一个程序可以在不同的数据集合上运行,构成不同的进程
三、进程控制块(PCB)
定义:进程控制块是进程实体的一部分,是操作系统中最重要的数据结构;进程控制块中记录了操作系统所需要的、用于描述进程及控制进程运行所需的全部信息
进程控制块的内容:
1、进程标识符信息:进程标识符用于唯一地标识一个进程
2、处理机状态信息:主要是由处理机的各种寄存器中的内容组成的,处理机被中断时,所有这些信息都必须保存在PCB中,以便在该进程重新执行时,能从断点继续执行。
- 通用寄存器:又称为用户可视寄存器,可被用户程序访问,用于暂存信息。
- 指令计数器:就是程序计数器PC
- 程序状态字PSW:又称状态寄存器,主要用于反映处理器的状态及某些计算结果以及控制指令的执行
- 用户栈指针:每个用户进程有一个或若干个与之相关的系统栈,用于存放过程和系统调用参数及调用地址。栈指针指向该栈的栈顶。
3、进程调度信息:包括进程状态信息(进程调度和对换时的依据)、进程优先级和进程调度所需的其他信息
4、进程控制信息:
- 程序和数据的地址;
- 进程同步和通信机制:指实现进程同步和进程通信时必需的机制,如消息队列指针、信号量等,它们可能全部或部分地放在PCB中;
- 资源清单:即一张列出了除CPU以外的、进程所需的全部资源及已经分配到该进程的资源的清单;
- 链接指针:它给出了本进程(PCB)所在队列中的下一个进程的PCB的首地址。
四、进程的状态
按进程在执行过程中的不同情况至少要定义三种状态:
- 运行态:进程占有处理器正在运行的状态;进程已获得CPU,其程序正在执行。在单处理机系统中,只有一个进程处于执行状态; 在多处理机系统中,则有多个进程处于执行状态。
- 就绪态:进程具备运行条件,等待系统分配处理器以便运行的状态;当进程已分配到除CPU以外的所有必要资源后,只要再获得CPU,便可立即执行,进程这时的状态称为就绪状态。在一个系统中处于就绪状态的进程可能有多个,通常将它们排成一个队列,称为就绪队列。正在运行的进程,如果失去CPU资源,也会进入就绪态
- 阻塞态:指进程不具备运行条件,正在等待某一事件发生(例如请求I/O而等待I/O完成等)而暂时停止运行,这时即使把处理机分配给进程也无法运行,故称该进程处于阻塞状态。