进程状态入门

您所在的位置:网站首页 硬盘blocked状态 进程状态入门

进程状态入门

2024-07-17 16:05| 来源: 网络整理| 查看: 265

简而言之,进程可以处于以下3种状态之一。

·运行(running):在运行状态下,进程正在处理器上运行。这意味着它正在执行指令。 ·就绪(ready):在就绪状态下,进程已准备好运行,但由于某种原因,操作系统选择不在此时运行。 ·阻塞(blocked):在阻塞状态下,一个进程执行了某种操作,直到发生其他事件时才会准备运行。一个常见的例子是,当进程向磁盘发起I/O请求时,它会被阻塞,因此其他进程可以使用处理器。

如果将这些状态映射到一个图上,会得到图。如图所示,可以根据操作系统的载量,让进程在就绪状态和运行状态之间转换。从就绪到运行意味着该进程已经被调度(scheduled)。从运行转移到就绪意味着该进程已经取消调度(descheduled)。一旦进程被阻塞(例如,通过发起I/O操作),OS将保持进程的这种状态,直到发生某种事件(例如,I/O完成)。此时,进程再次转入就绪状态(也可能立即再次运行,如果操作系统这样决定)。 在这里插入图片描述

我们来看一个例子,看两个进程如何通过这些状态转换。首先,想象两个正在运行的进程,每个进程只使用CPU(它们没有I/O)。在这种情况下,每个进程的状态可能如表所示。

在这里插入图片描述 在下一个例子中,第一个进程在运行一段时间后发起I/O请求。此时,该进程被阻塞,让另一个进程有机会运行。下表展示了这种场景。 在这里插入图片描述 更具体地说,Process0发起I/O并被阻塞,等待I/O完成。

例如,当从磁盘读取数据或等待网络数据包时,进程会被阻塞。OS发现Process0不使用CPU

并开始运行Process1。当Process1运行时,I/O完成,将Process0移回就绪状态。最后,Process1结束,Process0运行,然后完成。

请注意,即使在这个简单的例子中,操作系统也必须做出许多决定。首先,系统必须决定在Process0发出I/O时运行Process1。这样做可以通过保持CPU繁忙来提高资源利用率。其次,当I/O完成时,系统决定不切换回Process0。目前还不清楚这是不是一个很好的决定。

总结 进程三种状态 运行 就绪 阻塞


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3