这里要注意,当阻塞进程等待的事件发生时,不能直接运行,而是要变为就绪状态。如果CPU此时空闲,则可以直接运行该进程,否则要等待调度程序的调度。
进程的实现
操作系统维护有一张表格(程序中表现为一个结构数组),叫做进程表。每一个进程对应一个表项(进程控制块),表项中保存有该进程的相关信息。进程在不同状态间切换时需要用到表项中的信息。例如进程从运行态切换到阻塞态或就绪态时,该进程的信息就要保存在它对应的表项中,待进程恢复运行后,又要从表项中取出这些信息继续执行。这使得进程能够给人以连续执行的错觉,实际上是间断执行的。表项内容大致如下: