进程描述
- 定义
- 程序运行的过程,一个具有一定功能的程序在一个数据集合上的一次动态执行过程
- 组成
- 代码
- 数据
- 计数器值,指示下一条运行的指令
- 一组通用寄存器的当前值,堆、栈
- 一组系统资源
- 特点
- 动态创建、结束进程
- 并发性:进程可以被独立调度并占用处理机运行;并发、并行
- 独立性:不同进程的工作不相互影响(不同进程分配不同的页面,有不同的地址空间)
- 制约性:因访问共享数据/资源或进程间同步而产生制约
控制结构
进程控制块(Process Control Block, PCB):
- 操作系统管理控制进程运行所用的信息集合。操作系统用PCB来描述进程的基本情况以及运行变化的过程,PCB是进程存在的唯一标志。
操作系统为每个进程都维护了一个PCB,用来保存与该进程有关的各种状态信息
- 操作系统管理控制进程运行所用的信息集合。操作系统用PCB来描述进程的基本情况以及运行变化的过程,PCB是进程存在的唯一标志。
PCB组成
- 进程标识信息
- 处理机状态信息保存区
- 用户可见寄存器
- 控制和状态寄存器
- 栈指针
- 进程控制信息
- 调度和状态信息
- 进程间通信信息
- 存储管理信息(内存、存储空间的数据结构)
- 进程所用资源
- 有关数据结构连接信息
PCB的组织方式
链表:同一状态的进程其PCB成一链表,多个状态对应多个不同的链表
各状态的进程形成不同的链表:就绪链表、阻塞链表
索引表:同一状态的进程归入一个index表(由index指向PCB),多个状态对应多个不同的index表
各状态的进行形成不同的索引表:就绪索引表、阻塞索引表
进程状态
进程三种基本状态
- 运行
- 就绪
- 阻塞
集成其它基本状态
- 创建状态
- 结束状态
-
上下文切换
停止当前运行进程(从运行状态改变成其他状态)并且调度其它进程(转变成运行状态)
必须存储上下文(寄存器【PC, SP, …】,CPU状态,…)
-
进程队列
操作系统为活跃进程准备了进程控制块(PCB),并将进程控制块放置在合适的队列中
就绪队列
- 等待I/O队列
-
进程控制
fork()
- vfork()