操作系统之调度的目标主要包括:
资源利用率最大化:确保系统资源(如CPU、内存等)得到充分利用,减少资源浪费。
公平性:确保各个任务或进程能够公平地获得系统资源,避免某些任务长时间占用资源而导致其他任务饥饿。
响应时间快:尽量缩短用户请求的响应时间,提高系统的交互性和用户体验。
吞吐量高:在单位时间内尽可能多地处理任务,提高系统的整体处理能力。
系统效率高:通过合理的调度策略,减少系统开销,提高系统的运行效率。
操作系统之调度的实现主要包括以下几个方面:
调度的层次:
高级调度(作业调度):从外存的后备队列中挑选作业调入内存,并创建进程。
中级调度(内存调度):决定将哪个处于挂起状态的进程重新调入内存。
低级调度(进程调度):从就绪队列中选取一个进程,将处理机分配给它。
调度的时机:
当前运行的进程主动放弃处理机时。 当前运行的进程被动放弃处理机时(如发生中断、时间片用完等)。
调度的方式:
非剥夺调度方式(非抢占方式):只允许进程主动放弃处理机,不允许强制剥夺其处理机使用权。
剥夺调度方式(抢占方式):允许在进程运行过程中,根据某种策略强制剥夺其处理机使用权,并分配给其他进程。
常用的调度算法:
先来先服务调度算法(FCFS):按照作业或进程到达的先后顺序进行服务。
短作业优先调度算法(SJF):选择运行时间最短的作业或进程优先得到服务。其抢占式版本为最短剩余时间优先调度算法(SRTF)。
响应比最高者优先调度算法(HRRN):综合考虑作业的等待时间和要求服务时间,选择响应比最高的作业或进程为其服务。
时间片轮转调度算法(RR):将处理机时间划分成多个时间片,轮流分配给就绪队列中的进程。每个进程执行一个时间片后,若未完成则重新放回就绪队列。
优先级调度算法(PSA):根据任务的紧急程度或重要性决定处理顺序,每次选择优先级最高的进程运行。
进程切换:
进程切换是调度过程中的重要环节,涉及对当前运行进程各种数据的保存和对新进程各种数据的恢复(如程序计数器、程序状态字、各种数据寄存器等处理机现场信息)。