下面我们来介绍三状态进程模型
在前面我们介绍的进程状态当中
我们已经说到了
进程主要的几种状态
实际上这时候呢主要的
这个就绪运行阻塞或者叫等待
这三种状态搁在里头呢就构成了
我们这里的三状态进程模型
那如果大家看这个图的话
那这个图里呢不止三种
还多了一个创建和退出
但是从整个进程
生命周期来讲核心的状态
是这个就绪运行和等待
那这三种状态呢是
我们这个三状态进程模型里的核心
这每种状态的含义是什么呢
运行是指进程
正在处理机上执行
那这是第一种
然后第二种状态呢是就绪
就绪是指
进程获取了除处理器以外资源
等待得到处理机就可以开始运行了
而等待呢
是指进程在等待
某一个事件的出现而暂停的状态
那这三种状态之外呢
再有两种辅助的状态
一个是创建这个状态呢
是一个过渡的状态
进程正在被创建
还没有完成
这个创建的过程
也就是它的分配资源
分配资源和相应的数据结构
完成初始化之后
那它就放在就绪队列里
这个创建的过程就结束了
每个进程呢在整个生命周期当中
它只会进来一次创建
然后还有一个退出
退出呢是指进程正从系统当中消失
也就是说系统正在回收它的资源
那在这个状态里头呢
它会是进程结束的最后的这个阶段
这五个状态呢是
我们三状态进程模型里的状态
在这个状态之外呢
之间呢我们有相应的状态的变迁
这里的变迁我们依次来介绍它的含义
启动实际上是指我进入到创建状态的
这是一个触发条件
我一个新的进程被创建出来
创建它的目的是为了执行一个程序
好程序进程创建的过程
创建完成了
那这时候就导致一个状态的变迁
那这就是由创建到就绪状态
这个变迁呢是指你的创建工作已经结束
就等待CPU的这个资源
有了CPU这个资源之后
它就可以开始运行了
而被调度这个变迁呢
是指我们在就绪队列里
选择出某一个适合运行的进程
然后分配给处理机然后
它就可以开始运行了
这是呢由就绪到运行的状态变迁
再有一个是运行到结束
这是指这个进程
已经完成或者说出错
那这时候呢由操作系统开始去
回收它的资源的触发操作
而从运行到就绪呢就是我们这里
这里标的是时间片用完
如果是被抢先的话
也是这两者之间的一个变迁
在这个变迁里头呢
那进程的状态是由运行回到了就绪
运行到等待呢
是指正在运行的进程
要等待某一个资源
而这个资源呢现在还没有
那这时候由此而进入等待
它无法正常运行
最后一个等待到就绪
进程要等待的事件出现了
到达了那这时候呢他就有阻塞
由等待变成了就绪状态
那我们在说这些
状态的变迁的时候呢
如果说我们在操作系统
你看它实际代码
你主要需要看的就是
这些状态的初始
它是在什么时间出现的
那你要找的关键代码呢就是
这些状态的标识的出现
比如说我们任何一个进程它开什么
开始是指我给它分配一个
唯一的进程标识
那这时候你就找到它
创建所在的位置了
而一个进程结束呢
是指它的进程ID PCB被回收
那这时你找到它的结束状态
而在中间呢
我们在进程控制块里头
都有一个成员叫做它的状态
那么这时候你去看那个状态的赋值
就能看到当前进程所在的状态
而这些对应着的这些变迁
你都应该能够在
进程状态的变迁过程当中
找到相应的关键代码来知道
我这个变迁是在什么地方进行的
好有了这些呢
我们就讨论清楚了三状态进程模型