进程模型与线程模型
进程模型
并发环境与并发程序
并发环境
一段时间间隔内,单处理器上有两个或两个以上的程序同时处于开始运行但尚未结束的状态并且次序不是事先确定的并发程序
在并发环境中执行的程序
进程的定义
定义:Process
进程是具有独立功能的程序关于某个数据集合上的一次进行活动,是系统进行资源分配和调度的独立单位又称 任务(Task or Job)
- 程序的一次执行过程
- 是正在运行程序的抽象
- 将一个CPU变幻成多个虚拟的CPU——对CPU的抽象
- 系统资源以进程为单位分配,如内存、文件 、……
每个具有独立的地址空间 - 操作系统将CPU调度给需要的进程
进程控制块PCB
- PCB:Process Control Block
- 又称 进程描述符、进程属性
- 操作系统用于管理控制进程的一个专门数据结构
- 记录进程的各种属性,描述进程的动态变化过程
PCB是系统感知进程存在的唯一标志
进程与PCB是一一对应的
进程表:所有进程的PCB集合
进程状态与状态转换
进程的三种基本状态
进程的三种基本状态
运行态、就绪态、等待态运行态(Running)
占有CPU,并在CPU上运行就绪态(Ready)
已经具备运行条件,但由于没有空闲CPU,而暂时不能运行等待态(Waiting/Blocked) (其他说法:阻塞态、封锁态、睡眠态)
因等待某一事件而暂时不能运行
三状态模型及状态转换
① 就绪->运行
调度程序选择一个新的进程运行② 运行->就绪
- 运行进程用完了时间片
- 一个高优先级进程进入就绪状态,抢占正在运行的进程
③ 运行->等待
当一个进程等待某个事件发生时- 请求OS服务
- 对资源的访问尚不能进行
- 等待I/O结果
- 等待另一个进程提供信息
- ……
④ 等待->就绪
所等待的事件发生了
五状态进程模型
七状态模型
进程队列
- 操作系统为每一类进程建立一个或多个队列
- 队列元素为PCB
- 伴随进程状态的改变,其PCB从一个队列进入另一个 队列
- 多个等待队列等待的事件不同
- 就绪队列也可以多个
- 单CPU情况下,运行队列中只有一个进程