为什么要引入进程的概念?
文章目录
一、程序的顺序执行与并发执行
1、顺序执行
(1)含义:先进入内存的程序先执行,在一个程序执行完毕之前,不能执行其他程序
(2)特点:顺序性、封闭性、可再现性。
(3)存在的问题:多设备无法同时工作。
2、并发执行
注:此处为“并发”而非“并行”!
并发:两个或多个事件在同一时间间隔内发生。
并行:两个或多个事件同一时刻发生。
(1)含义:程序并发执行是指在同一时间间隔内运行多个程序。一个程序执行结束前,可以运行其他程序。
- 宏观并行:用户看到多个程序同时向前推进。
- 微观串行:任意时刻一个CPU上只有一个程序在执行。
(2)特点:间断性、失去封闭性、不可再现性。
特点 | 描述 | 各特点之间的关联 | 实例 |
---|---|---|---|
间断性 | 程序在CPU上执行时,是时断时续的 | 因共享资源且资源是有限的,导致时断时续,故导致间断性 | |
失去封闭性 | 系统的状态不再只对正在执行的程序可见 | 由于时断时续,导致失去了封闭性 | 12306买票可以实时看到票的剩余情况 |
不可再现性 | 同一个程序在输入相同的情况下多次运行,可能出现不同的结果 | 由于失去了封闭性,故不可再现 |
二、进程的概念
1、定义
- 定义1:允许并发执行的程序在某个数据集合上的运行过程。
- 定义2:进程 = 正文段 + 用户数据段 + 进程控制块(PCB)
2、特征
- 并发性:多个进程实体能在一段时间间隔内同时运行。
- 动态性:进程是实体的执行过程。
- 独立性:独立运行和资源调度的基本单位。
- 异步性:进程的执行时断时续,何时执行、何时暂停都无法预知。
- 结构特征:进程实体包括用户正文段、用户数据段和进程控制块。
3、进程与程序的比较
区别:
- 程序是静态、永久、指令的集合。
- 进程是动态、暂时、包括正文段、用户数据段、进程控制块。
联系:
- 进程是程序的的一次执行
- 一个程序可以对应多个进程,同一个进程能顺序地执行几个程序。
三、进程控制块(PCB)
定义:进程控制块是进程实体的一部分,是操作系统中最重要的数据结构。
进程控制块中记录了操作系统所需要的、用于描述进程及控制进程运行所需的全部信息。
- 进程标识符信息:用于唯一标识一个进程。进程标识符用于唯一标识一个进程。 进程控制块中除了存有本进程的标识符外,还存放其父进程、子进程的标识符。
- 处理机状态信息:通用寄存器、指令计数器、程序状态字PSW、用户栈指针。
- 进程调度信息:包括进程状态信息、进程优先级和进程调度所需的其他信息。
- 进程控制信息:包括程序和数据的地址、进程同步和通信机制、资源清单,以及链接指针。
四、进程的状态
五、进程的组织
1、链接方式
把系统中具有相同状态的进程控制块PCB用其中的链接字连成一个队列。
2、索引方式
系统根据所有进程的状态,建立索引表,索引表的每一个表项指向一个PCB物理块。
3、进程队列
把具有相同状态的进程控制块用队列组织起来。
六、进程的控制
1、创建
什么情况下需要创建新进程?
用户登录、作业调度、提供服务、应用请求。
- 进程创建的过程? / 创建新进程的步骤?
- (1)申请空白PCB
- (2)为新进程分配资源
- (3)初始化进程控制块
- (4)将新进程插入到就绪队列
- 当新进程被创建时,有两种执行可能:
- (1)父进程与子进程并发执行。
- (2)父进程等待,直到某个或全部子进程执行完毕。
- 新进程的地址空间也有两种可能:
- (1)子进程共享父进程的地址空间。
- (2)子进程拥有独立地址空间。
2、阻塞
什么情况下会进行进程的阻塞?
请求系统服务、启动某种操作、新数据尚未到达、无新工作可做。
- 进程阻塞的过程?
- (1)将进程的状态改为阻塞态;
- (2)将进程插入相应的阻塞队列;
- (3)转到进程调度程序,从就绪队列中选择进程为其分配CPU。
3、唤醒
- 进程唤醒的过程?
- (1)将进程从阻塞队列中移出;
- (2)将进程状态由阻塞态改为就绪态;
- (3)将进程插入就绪队列。
4、终止
什么情况下会进程会被终止?
进程正常执行完毕。
- 进程终止的过程?
- (1)从进程PCB中读进程状态;
- (2)若进程正在执行,则终止进程的执行
- (3)释放资源;
- (4)将终止进程的PCB移出。
七、进程通信
本质:不同进程之间的信息交换。
- 共享存储器系统:相互通信的进程共享某些数据结构或共享存储区。
- 消息传递系统:进程间通过操作系统提供的一组通信程序传递消息。
- 管道通信:进程间通过管道(链接读写进程的特殊文件)进行信息通信。
- 消息缓冲队列:利用消息缓冲区、发送原语和接收原语实现信息通信。
共享存储器系统、消息传递系统、管道通信 被称为高级通信机制。