进程挂起,情况稍微复杂点。
进程挂起和阻塞是不一样的,进程挂起,意味着进程没有占用内存空间,进程在内存中执行,怎么会没有占用内存空间呢?其实这个前面讲到的内存管理有紧密联系,在讲虚存管理的时候,说的是程序运行的时候,有可能会把一部分内存空间导到硬盘中,腾出更多的空间给需要的程序去使用,那时候说运行的程序就是现在所说的进程,这里已经用进程代替运行的程序。进程如果没有占用内存空间,也意味着进程被切换到了硬盘上去。这时候就没有占用内存空间了,这个时候的进程称为挂起的进程。
上图“在外存时的状态转换”情况说明:
因为当处于阻塞挂起这个状态的进程,随着操作系统的执行,这个阻塞进程所需要的事件,所需要的资源得到了满足,之后,进程状态就应该变成了就虚太,但是由于这个进程本身还挂起在硬盘上面,所以这时候只是把阻塞挂起变成了就绪挂起,但是进程本身所有的资源,所有内存的数据,都还是存在硬盘上的,我们只是把状态变了下。
上图有多个就绪队列,意思是有优先级。