您表述得不太清楚我就按照我所理解的回答。比如你在windows里开了一个程序,程序d出来后点击后没有反应,系统提示该程序无响应,是否强制结束。这个时候选择等待响应是会恢复的,这个是你说的从阻塞到运行,也有无法恢复的可能。就绪到阻塞,我的理解是,你点了某个程序后明显感觉系统做出了响应,比如屏幕闪了一下,但是之后程序还是没有d出来。做出响应就是就绪了,程序没有运行就是阻塞,这种情况可能和兼容性有关。
如果答得不对,你可以把问题再说得具体些
三种基本状态:
1、就绪状态:进程已获得除CPU外的所有必要资源,只等待CPU时的状态。一个系统会将多个处于就绪状态的进程排成一个就绪队列。
2、 执行状态:进程已获CPU,正在执行。单处理机系统中,处于执行状态的进程只一个;多处理机系统中,有多个处于执行状态的进程。
3、阻塞状态:正在执行的进程由于某种原因而暂时无法继续执行,便放弃处理机而处于暂停状态,即进程执行受阻。(这种状态又称等待状态或封锁状态)
通常导致进程阻塞的典型事件有:请求I/O,申请缓冲空间等。
三种状态切换
1 引起进程阻塞和唤醒的事件
1)请求系统服务
a、进程请求某资源,但系统将该资源分配给其他进程,这时请求者进程只能被阻塞,仅在其他进程释放出该资源时,才将请求进程唤醒。
b、启动某项 *** 作,当进程启动某种 *** 作后,如果该进程必须在该 *** 作完成之后才能继续执行,则必须先使该进程阻塞,以等待该 *** 作完成。该 *** 作完成之后,进程被唤醒。
c、新数据尚未到达,对于相互合作的进程,如果其中一个进程需要先获得另一个(合作)进程提供的数据才能运行以对数据进行处理,则只要其所需数据尚未到达,该进程只有(等待)阻塞。一旦得到所需数据,则唤醒该进程。
d、无新工作可做,例如具有某种特定功能的进程,每当这种进程完成任务后,便把自己阻塞起来以等待新任务到来。例如,发送数据的进程,若数据发送完又没有新的发送任务请求,则进入阻塞,当有进程提出发送请求时,将发送进程唤醒。
2 进程阻塞过程
进程的阻塞是进程的一种主动行为。进入Block-过程->PCB中的“执行”改为阻塞->将PCB插入阻塞队列->转调度程序进行重新调度。
3 进程唤醒过程
阻塞进程所期待的事件出现时->由有关进程调度wakeup()原语。
以上就是关于 *** 作系统进程能否由阻塞到运行以及就绪到阻塞为什么全部的内容,包括: *** 作系统进程能否由阻塞到运行以及就绪到阻塞为什么、进程的三个基本状态、进程的阻塞与唤醒属于进程的什么调度等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)