如题,都知道操作系统中进程的运行需要一定的条件和资源(CPU,内存,外存),进程是操作系统进行资源分配的基本单位,且进程的状态大体有以下几个,如下图:
进程就绪是指:进程其它资源和条件都满足,只差CPU,操作系统给其分配CPU后即可进入运行状态;那么请教一下,
1)这里的阻塞状态是指:进程在等待事件,此时进程还占不占有CPU?
2)还有一个状态是进程睡眠,进程睡眠是什么状态?进程放弃CPU,可不可以这么理解,进程阻塞其实进程还是占有CPU,但是操作系统调度索性使其放弃CPU,进入睡眠,亦即阻塞状态的进程的下一状态就是睡眠,等待其条件满足时即进入就绪,只待分配CPU?
3)以上进程都还处于内存中,而挂起是进程被系统换出到外存。
正常情况下,只有运行状态占用CPU,其它状态都不占用CPU
就绪状态是等待操作系统分配CPU时间片来执行一下,这个时间片结束或者中间状态转换为:进程结束、进程就绪或者进程阻塞
这里再提一下 进程睡眠和进程挂起
进程睡眠更可能是主动的一种操作,也可能是因为挂起需要等待的事件比较长,一般说来睡眠不会让进程资源调换到外存中。
进程挂起其实和进程阻塞没有必然的联系,只是大多数时候挂起调度策略是先挂起阻塞的进程而已。挂起操作是一种内存管理机制,以保证在内存不足时能调配内存资源使得合适的进程调用能够执行(比如新建进程)。
1、阻塞状态的进程不占有CPU,且不参与调度,直到它退出阻塞
2、睡眠一般是执行sleep函数,sleep期间不参与调度