进程状态(State)
操作系统通过维护进程状态队列,来对进程进行管理。
状态队列:
进程的生命周期管理
1 | * 进程创建 |
进程的状态变化模型
进程的三种基本状态:
进程在生命结束前处于且仅处于三种基本状态之一,不同系统设置的进程状态数目不同。
- 运行状态(Running):当一个进程正在处理机上运行时。
- 就绪状态(Ready): 一个进程获得了除处理机之外的一切所需资源,一旦得到处理机即可运行。
- 等待状态(又称阻塞状态Blocked):一个进程正在等待某一事件而暂停运行时。如等待某资源,等待输入/输出完成。
进程的挂起模型
进程在挂起状态时,意味着进程没有占有内存空间,处在挂起状态的进程映像在磁盘上。
挂起状态:
- 阻塞挂起状态(Blocked-suspend):进程在外存并等待某事件的出现
- 就绪挂起状态(Ready-suspend):进程在外存,但只要进入内存即可运行
进程调度算法
FCFS: first come fist server (先来先服务)
1
2
3
4
5优点:简单
缺点:
* 平均等待时间波动较大
* 花费时间少的任务可能排在花费时间长的任务后面
* 可能导致I/O和CPU之间的重叠处理SPN/SRT : 短任务优先
1
2
3
4
5
6
7按照预测的完成时间来将任务入队。
可以是可抢占的或者不可抢占的,可抢占:又叫shortest-Remaining-Time(SRT) (最短剩余时间)
优点:不公平,最优平均等待时间
缺点:
* 优先考虑短时间进程,可能导致饥饿
* 需要预知未来,如何预估进程执行时间长短(根据过去预估未来)HRRRN : 最高响应比优先 (在SPN基础上改进)
1
2
3
4R = (W + S)/S
W :waiting time 等待时间
S :service time 执行时间
选择R值最高的进程,充分考虑了进程等待的时间,缓解饥饿现象,不可抢占Round Robin 轮循调度算法
1
2
3
4
5
6在叫作时间切片的离散单元中分配处理器,时间片结束时,切换到下一个准备好的进程
经验规则:维持上下文切换开销处于1%以内,99%的时间用在实际进程执行中
优点:公平
缺点:平均等待时间较差MLFQ 多级反馈队列
1
动态的根据进程执行的过程,操作系统可以根据进程具有cpu密集型和I/O密集型的特征来动态的调整进程优先级
Fair-share scheduling 公平共享调度
1
使得用户的请求在不同的级别享受公平调度,是在进程级别还是用户级别或者用户组级别公平的共享进程的调度