操作系统学习--处理机调度

处理机调度:指当进程状态改变,比如从运行转为等待,处理机为了继续保持CPU的高使用率,会把其他需要执行的程序调到CPU中运行。
调度的时机
对于非抢占系统,只能在当前进程主动放弃CPU时:

  • 运行的程序时间到了
  • 运行的程序由切换状态转到等待状态
    对于抢占系统,还有可能是有个优先级比较高的进程进入就绪状态了,这时也会发生处理机的调度

处理机调度的目标:

  • 响应快:提交进程到运行时间短
  • 吞吐量高:可以支持多个进程
  • 公平:分给每个进程的时间或每个用户的时间要均衡。

调度算法:

  • 先来先服务算法:按来的先后顺序提供服务,先来的进程先得到服务,优点是简单,缺点是平均等待时间浮动较大
  • 短进程优先算法:按需要运行时间的长短来维护就绪队列,短的先执行。
    优点是平均等待时间最短,
    缺点是运行时间长的进程会饥饿,即一直被插队,永远得不到执行。
  • 最高响应比优先,在短进程优先的基础上加了个等待时间的系数,等待时间越长,这个相应比越高,然后优先级就会提高,所以解决了饥饿的问题。
  • 时间片轮转算法:设定固定的时间片,每个进程运行到了这么多时间后就强行到下一个,然后排到队尾,进行轮转。优点是:公平。缺点是:平均响应时间较长
  • 多级反馈队列:把前面的几个算法综合了起来,就绪队列分成优先级不同的几个独立的队列,每个队列有自己的调度算法。队列之间可以固定优先级,可以时间片轮转,也可以进程在不同的队列间移动。很好的算法,现在系统中都在用这个。
  • 公平共享调度:有些用户重要,有些不重要,不重要的不能垄断资源。

实时调度:任务对时间的要求很高,任务有硬时限和软时限的区分。
分为静态调度算法,经过理论计算,排出来队列之后,不再改变队列。
动态调度算法,没法通过计算保证,就需要动态的。
多处理机调度:系统有多个CPU时,任务就绪了,需要分给CPU,这就需要调度算法了。分为
静态进程分配:进程刚开始就分到不同的队列中执行。缺点是容易忙闲不均。
动态进程分配:CPU共享一个就绪队列,每次分到最闲的CPU执行,缺点是分配耗时间。

优先级反置现象:低优先级的S1占用了一些系统资源,高优先级的S2在等待中,请求申请资源,但因为资源被S1占着,必须等到S1执行完,这时有个不低不高的S3来了,它不需要那些计算资源,所以它直接强占了S1,这时S2就必须得等优先级比他低的S3。
为了解决这种情况,有两种算法:

  • 优先级继承,S1这个优先级低的进程,在接到高优先级S2的资源申请时,把自己的优先级提高到和S2一样,这样就不会被比S2低的进程打断了。
  • 优先级天花板协议:占用计算资源的进程直接把自己的优先级提高到最高,这样,只要执行就无法被打断。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值