进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。进程存在的唯一标志是进程控制块(PCB)。进程与程序的根本区别在于进程是动态的,程序是静态的。
特征
- 动态性:进程最重要的特征
- 并发性
- 独立性
- 异步性
- 结构性
进程的状态与转换
- 运行态、就绪态、阻塞态为三种基本状态,另有创建态、结束态
- 就绪态 → 运行态:被调度获得 CPU
- 运行态 → 就绪态:时间片用完 / 被剥夺 CPU
- 运行态 → 阻塞态:主动行为(等待 I/O 等事件)
- 阻塞态 → 就绪态:被动行为,需要其他相关进程的协助(如 I/O 完成)
单处理机系统中若有 n 个进程,处于就绪队列的进程最多 n - 1 个。
进程控制
- 进程的创建:创建原语
- 进程的终止:撤销原语(正常结束、异常结束、外界干预)
- 进程的阻塞和唤醒:阻塞原语(Block)、唤醒原语(Wakeup)
- 进程切换
进程的组织
进程控制块 PCB(Process Control Block)
- 进程描述信息:进程描述符 PID、用户描述符 UID
- 进程控制和管理信息:当前状态、优先级等
- 资源分配清单
- 处理机相关信息(寄存器现场)
程序段与数据段
- 程序段:能被进程调度程序调度到 CPU 执行的程序代码段
- 数据段:程序加工处理的原始数据、中间或最终结果
进程通信
- 低级通信方式:PV 操作
- 高级通信方法:
- 共享存储
- 消息传递:直接通信方式和间接通信方式
- 管道通信:消息传递的一种特殊方式,限制管道大小;从管道读数据是一次性操作,数据一旦被读取就被管道抛弃;类似半双工通信,同一时刻最多一个方向的传输