进程的基本状态
运行状态(running):
- 该进程已获得运行所必需的资源,它的程序正在处理机上执行。
- 在单处理机上,任一时刻只能有一个进程处于运行状态。
等待状态(wait):
- 又称挂起(suspend)态、阻塞(block)态、睡眠(sleep)态。
- 进程正等待着某一事件的发生而暂时停止执行。这时,即使给它CPU控制权,它也无法执行,则称该进程处于等待态。
就绪状态(ready):
- 进程本身具备运行条件,但是由于处理器的数量少于可运行进程的数量,暂时未投入运行,等待处理器资源。
- 进程已获得除CPU之外的运行所必需的资源,一旦得到CPU控制权,立即可以运行。
运行、就绪、等待是进程最基本的3种状态;
为了实现某种设计目标,进程状态数量可能多于3个,但是不会少于3个;
基本状态的区别
等待态 & 就绪态
- 就绪态在等待CPU的控制权;而等待态在等待事件;
- 就绪态获得CPU后可立即进入运行态运行程序;而就绪态获得CPU也无法运行程序;
就绪态 & 运行态
- 就绪态与运行态受限于硬件设备;
- 运行态正在占用CPU;就绪态没有占用CPU;
进程状态的变迁
1. 运行态 → 等待态
- 当一个运行程序因某件时间受阻时,如申请资源被占用、启动数据传输未完成等,其状态会变迁;
- 详细点就是请求外部传输:一个程序在运行时需要进行打印,提出外部请求使用打印机,然后从运行态变迁为等待态;
2. 等待态 → 就绪态
- 当所等待的事件发生时,如得到被申请资源、数据传输完成,其状态会由等待变为就绪;
3. 就绪态 → 运行态
- 当一个就绪程序获得CPU时,其状态就由就绪态变为运行态;
4. 运行态 → 就绪态
- 运行进程被剥夺处理器资源;
- 在分时操作系统中,该程序用完了系统分配的时间片;
- 出现高优先级别的其他进程;
就绪态 → 等待态
- 不是全错,还是有可能的;
- 可能有,只是现在的OS一般都没有这个变迁;
等待态 → 运行态
- 全错;
- 这个变迁是绝对没有的;
参考资料
- 《计算机操作系统教程》(第四版 编著:左万利 王英)
- 爱课程:操作系统原理