操作系统学习笔记(十九):处理机调度

本文深入解析处理机调度的概念,包括进程切换、调度时机与策略,如先来先服务、短进程优先、时间片轮转等,并探讨多处理机系统的调度策略及优先级反置问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

处理机调度概念:

       进程切换就是CPU资源当前占用者的切换,通过进程切换实现CPU的时分复用。进程切换时需要保存当前进程在PCB中的执行上下文,同时恢复下一个进程的执行上下文。而处理机调度就是要实现从进程就绪队列中挑选下一个占用CPU运行的进程;如果存在多个可用CPU,还要从中挑选就绪进程可用的CPU资源。因此其中要关注两个内容:调度策略与调度时机

调度时机:

       有进程从运行状态切换到等待状态(非抢占);有进程退出(非抢占);正在运行的进程时间片用完(抢占);进程由等待转换到就绪(抢占)。

调度策略:

       进程一般是在CPU计算与I/O操作间交替执行。调度策略需要选取合适的时间片大小,由于进程使用CPU进行计算的单次时间往往是较短的,时间片的选择应尽量不要打断单次计算。对调度算法优劣判断的准则:1、CPU使用率,使用率应该尽量高;2、吞吐量,单位时间内完成的进程数量;3、周转时间,进程从初始化到结束/等待的总时间,这是用户关心的;4、进程在仅需队列的总时间,应该尽量降低;5、响应时间,从提交请求到产生响应的时间应该尽量短。

       上述目标有些是相互制约的,因此一个合理的调度算法应该统筹兼顾。下面对具体的调度算法进行介绍。

1.先来先服务

2.短进程优先算法,按照进程需要的执行时间选择

3.最高响应比优先算法,按照就绪队列内的等待时间长短选择

4.时间片轮转算法,按照先来先服务,但每个进程执行时间不超过时间片长度,超出会被抢占。经验规则是维持上下文切换开销处于1%以内,大小通常在10ms左右。

5.多级反馈队列算法,维护多个就绪进程队列,对不同队列可以使用不同调度策略

6.公平共享调度算法,按照进程占用资源情况选择

       对于实时系统来说,有两种调度策略,一是静态调度策略,一个是动态调度策略。静态调度策略是指按照进程执行时间长短进行调度,执行时间短的先执行。动态调度策略是按照进程截止时间进行调度,截止时间越早的先执行。

       多处理机是指由多个处理机组成一个多处理机系统,处理机之间可以实现负载共享。其中每个处理器有自己的调度程序,调度程序对共享资源的访问需要进行同步。多处理机调度策略中最重要的一点是一个进程应该分配给哪一个处理机。静态进程分配是进程从开始到结束都分配到一个固定的处理机上执行,之后就是在每个处理机上的单处理机调度算法,但这会导致处理机利用率不均。动态进程分配则是一个进程可以分配到任意空闲处理机执行,所有处理机共享一个就绪队列,调度开销较大,但负载均衡。

优先级反置

       优先级反置是指高优先级进程要请求的资源被低优先级进程占用而被阻塞,此时中优先级进程反而抢占了CPU导致高优先级进程始终无法运行。针对这一现象有两种解决方案:一是优先级继承,导致高优先级进程阻塞的低优先级进程会暂时继承高优先级进程的优先级,避免被中优先级进程抢占;二是优先级天花板协议,占有资源的进程和所有可能申请该资源的进程的优先级比较,设置成其中最高优先级对应的优先级,这样就不会有进程阻止他使用这个资源,可能会出现优先级滥用的情况。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值