0x01 程序的并发执行
0x01a 程序的顺序执行
早期无操作系统及单道批处理系统的计算机中,程序的执行方式都是典型的顺序执行
- 顺序性
- 封闭性
- 可再现性
0x01b 程序的并发执行
程序并发执行是指在同一时间间隔内运行多个程序
- 间断性
- 失去封闭性
- 不可再现性
0x02 进程的概念
0x02a 定义
- 进程是允许并发执行的程序在某个数据集合上的运行过程
- 进程是由正文段、用户数据段及进程控制块共同组成的执行环境。正文段存放被执行的机器指令,用户数据段存放进程在执行时直接进行操作的用户数据。用程序已不能描述程序的并发执行,故引入了进程的概念。
0x02b 特征
- 并发性
- 动态性
- 独立性
- 异步性
- 结构特征
0x02c 进程与程序的比较
区别:
程序是静态的,进程是动态的。程序是存储在某种介质上的二进制代码,进程对应了程序执行的过程,系统不需要为一个不执行的程序创建进程,一旦进程被创建,就处于不断变化的动态过程中。
程序是永久的,进程是暂时存在的。
程序与进程的存在实体不同。程序是指令的集合,而进程是包括了正文段、用户数据段和进程控制块的实体。
联系:
进程是程序的一此执行,对应至少一个特定的程序,执行程序的代码
一个程序可以对应多个进程。
0x03 进程控制块
操作系统管理进程所使用的数据结构
0x03a 进程控制块中的信息
- 进程标识符信息
- 处理机状态信息
- 进程调度信息
- 进程控制信息
0x04 进程的状态
0x04a 进程的基本状态
- 就绪态:进程获得CPU就可以投入运行的状态
- 执行态:进程获得CPU正在运行的状态
- 阻塞态:进程等待资源或某个事件的发生而暂停执行的状态
0x04b 进程的转换
进程在三种状态之间转换,阻塞态不能直接转换为执行态,需要先转换为就绪态。阻塞态转换为就绪态的过程叫做唤醒过程,由执行态变为阻塞态的过程称为阻塞过程。
0x05 进程的组织
管理和组织的主要目的就是要使系统中的程序在需要时能够以有效的方式检索到系统中的每一个程序。
0x05a 链接方式
把系统中具有相同状态的进程的PCB(进程控制块)用其中的链接字链接成一个队列
0x05b 索引方式
系统根据所有进程的转台,建立几张索引表,索引表中的每一个表项指向一个PCB的物理块
0x05c 进程队列
将具有相同状态的进程放入同一个队列,不同状态的进程放入不同的队列