操作系统之调度的目标与实现

111 阅读2分钟

操作系统之调度的目标主要包括:

资源利用率最大化:确保系统资源(如CPU、内存等)得到充分利用,减少资源浪费。

公平性:确保各个任务或进程能够公平地获得系统资源,避免某些任务长时间占用资源而导致其他任务饥饿。

响应时间快:尽量缩短用户请求的响应时间,提高系统的交互性和用户体验。

吞吐量高:在单位时间内尽可能多地处理任务,提高系统的整体处理能力。

系统效率高:通过合理的调度策略,减少系统开销,提高系统的运行效率。

操作系统之调度的实现主要包括以下几个方面:

调度的层次:

高级调度(作业调度):从外存的后备队列中挑选作业调入内存,并创建进程。

中级调度(内存调度):决定将哪个处于挂起状态的进程重新调入内存。

低级调度(进程调度):从就绪队列中选取一个进程,将处理机分配给它。

调度的时机:

当前运行的进程主动放弃处理机时。 当前运行的进程被动放弃处理机时(如发生中断、时间片用完等)。

调度的方式:

非剥夺调度方式(非抢占方式):只允许进程主动放弃处理机,不允许强制剥夺其处理机使用权。

剥夺调度方式(抢占方式):允许在进程运行过程中,根据某种策略强制剥夺其处理机使用权,并分配给其他进程。

常用的调度算法:

先来先服务调度算法(FCFS):按照作业或进程到达的先后顺序进行服务。

短作业优先调度算法(SJF):选择运行时间最短的作业或进程优先得到服务。其抢占式版本为最短剩余时间优先调度算法(SRTF)。

响应比最高者优先调度算法(HRRN):综合考虑作业的等待时间和要求服务时间,选择响应比最高的作业或进程为其服务。

时间片轮转调度算法(RR):将处理机时间划分成多个时间片,轮流分配给就绪队列中的进程。每个进程执行一个时间片后,若未完成则重新放回就绪队列。

优先级调度算法(PSA):根据任务的紧急程度或重要性决定处理顺序,每次选择优先级最高的进程运行。

进程切换:

进程切换是调度过程中的重要环节,涉及对当前运行进程各种数据的保存和对新进程各种数据的恢复(如程序计数器、程序状态字、各种数据寄存器等处理机现场信息)。