阻塞和挂起的区别

进程的阻塞和挂起的区别

l   挂起是一种主动行为,因此恢复也应该要主动完成,而阻塞则是一种被动行为,是在等待事件或资源时任务的表现,你不知道他什么时候被阻塞(pend),也就不能确切的知道他什么时候恢复阻塞。而且挂起队列在操作系统里可以看成一个,而阻塞队列则是不同的事件或资源(如信号量)就有自己的队列。

l  任务调度是操作系统来实现的,任务调度时,直接忽略挂起状态的任务,但是会顾及处于pend下的任务,当pend下的任务等待的资源就绪后,就可以转为ready了。ready只需要等待CPU时间,可以这样理解,只要是挂起状态,操作系统就不在管理这个任务了。

 

在多道程序系统中,进程在处理器上交替运行,在运行、就绪和阻塞3种基本状态之间不断地发生变化。由于进程的不断创建,系统资源(特别是主存资源)已不能满足进程运行的要求。此时就必须将某些进程挂起,对换到磁盘镜像区,暂时不参与进程调度,以平衡系统负载的目的。如果系统出现故障,或者是用户调试程序,也可能需要将进程挂起检查问题。

活跃就绪是指进程在主存并旦可被调度的状态。

静止就绪是指进程被对换到辅存时的就绪状态,是不能被直接调度的状态,只有当主存中没有活跃就绪态进程,或者是挂起态进程具有更高的优先级,系统将把挂起就绪态进程调回主存并转换为活跃就绪。

活跃阻塞是指进程在主存中。一旦等待的事件产生,便进入活跃就绪状态。

静止阻塞是指进程对换到辅存时的阻塞状态。一旦等待的事件产生,便进入静止就绪状态。

另外,对于一张完整的进程五态模型图,则需在模型图中增加一条从运行态到活跃阻塞态的边,其状态转换原因是等待事件(IO请求)发生,以及增加一条从运行态到静止就绪态的边,其状态转换原因是挂起

 

你可能感兴趣的:(随笔)