定义
在引入多道程序之后,计算机可以同时处理多个程序,那么问题来了,那么多个程序,操作系统要怎么才能找到各程序的存放位置呢?
于是就引入了一个概念:PCB
PCB 就是进程控制块,它用来描述进程的各种信息。
进程实体由 PCB、程序段、数据段组成。
我们所说的创建一个进程其实就是创建一个 PCB。
PCB 是进程存在的唯一标志。
- 注意进程和进程实体的区别:进程是程序的一次执行过程,是动态的,而进程实体是静态的。
- 进程标识符
PID
是进程创建时系统自动分配的唯一 ID。 - 和进程管理相关的信息都保存在
PCB
中。
进程的状态
进程有 3 种状态:
- 在单核处理机下,每一时刻最多只有一个进程处于运行态;
进程状态的切换
由 阻塞态 到 就绪态 是一种被动行为,不是进程自己能控制的。
由 运行态 到 阻塞态 是一种主动行为,进程主动请求系统调用。
进程控制
进程控制就是要实现进程状态转换,通过 原语 实现。
原语的特点是
- 不允许中断,只能一气呵成,是一种原子操作;
- 运行在核心态。
无论哪个原语,要做的无非三类事情:
- 更新 PCB 中的信息;
- 将 PCB 插入合适的队列;
- 分配回收资源。
进程通信
共享存储、管道通信、消息传递。
管道通信:管道是指用于连接读写进程的一个共享文件,又名 pipe
文件。其实就是在内存中开辟一个大小固定的 缓冲区 。
消息传递:进程间的数据交换以 格式化的消息
(如报文)为单位,进程通过操作系统提供的 “发送消息、接收消息” 两个原语进行数据交换。