两状态

在操作系统中,进程如果先笼统的分类,就是进程在运行或者进程不在运行。这就是操作系统中的两状态模型。
操作系统【两状态、五状态、七状态】

五状态

如果进程不执行的时候,可能还会有不同的状态,比如说我们什么都准备好了,万事俱备,那么只等待CPU的调度就能运行了,或者是在等待IO设备(打印机等)那么这个进程就要等待这个事件完成之后才能继续运行,所以在Not Running中又分为了两种:
就绪态:准备好了,等待运行
阻塞态:因等待某事情发生才能运行,如等待io
在此之后,我们还加了两个状态,创建和终止,这两个就很好理解,一个是进程刚刚被创建的时候,一个是进程结束的时候。
然后我们就得到了一个五状态转换图:
操作系统【两状态、五状态、七状态】
操作系统【两状态、五状态、七状态】
然后我们看一下各种状态之间是怎么转化的
操作系统【两状态、五状态、七状态】

七状态

我们说进程是需要占用内存空间来运行的,我们想象一个极端一点的例子,如果所有的进程现在都在阻塞态都在等待IO,这样的话,我们CPU就在空闲,我们的CPU的利用率就会变低,这不是我们想看到的。

那么我们现在就在想,我们可不可以把这些在等待的程序交换到外存中区,这样我们就可以腾出来一些内存的空间,来运行新的进程。等在外存中的程序等待的事件等待完了,再换回来。

刚刚我们说的把内存中的程序交换到外存去这个过程就叫做挂起。我们可以把阻塞的程序挂起这样可以让CPU去做其他的事情。但是我们需要强调一点,挂起不一定是要从阻塞态转变的,也可能进程刚刚被创建的时候就被直接挂起了,这样也是有可能的。

那我们再继续分析一下,我们的进程被挂起大多数情况是因为在等待某个事件的发生,那么我们也要分开情况取讨论,哪些进程是已经等待完了的,哪些是还在等待的,这样我们就可以分清楚哪些进程是我们现在可以被换进内存中去的,这样我们就又分为了就绪挂起和阻塞挂起。

那我们接下来看一看七状态的转换图:
操作系统【两状态、五状态、七状态】
看一下这七个状态的转换关系:
操作系统【两状态、五状态、七状态】
操作系统【两状态、五状态、七状态】

相关文章: