二、操作系统导论——进程调度(知识点总结)

进程调度:介绍

1、两个指标:

  • 周转时间:任务完成时间减去任务到达系统的时间。
    T(周转时间)= T(完成时间) − T(到达时间)
  • 响应时间:从任务到达系统到首次运行的时间。
    T(响应时间)= T(首次运行) − T(到达时间)

2、先进先出(FIFO):

先进先出(First In First Out 或FIFO)调度,有时候也称为先到先服务(First Come First Served 或FCFS)。
护航效应(convoy effect):一些耗时较少的潜在资源消费者被排在重量级的资源消费者之后。

3、最短任务优先(SJF):

具体:先运行最短的任务,然后是次短的任务,如此下去。

4、最短完成时间优先(STCF):

具体:每当新工作进入系统时,它就会确定剩余工作和新工作中,谁的剩余时间最少,然后调度该工作。

5、轮转调度(RR):

具体:RR 在一个时间片(time slice,有时称为调度量子,scheduling quantum)内运行一个工作,然后切换到运行队列中的下一个任务,而不是运行一个任务直到结束。它反复执行,直到所有任务完成。因此,RR 有时被称为时间切片(time-slicing)。

关于时间片:

时间片长度必须是时钟中断周期的倍数。
时间片长度对于RR 是至关重要的。越短,RR 在响应时间上表现越好。
时间片太短是有问题的:突然上下文切换的成本将影响整体性能。

6、周期时间在STCF中表现良好,在RR中表现差。响应时间则相反。

调度:多级反馈队列(MLFQ)

1、多级反馈队列需要解决两方面的问题:

  • 要优化周转时间。
  • 要降低响应时间。

2、前提:

MLFQ 中有许多独立的队列(queue),每个队列有不同的优先级(priority level)。任何时刻,一个工作只能存在于一个队列中。MLFQ 总是优先执行较高优先级的工作(即在较高级队列中的工作)。

3、MLFQ 基本规则:

  • 规则1:如果A 的优先级 > B 的优先级,运行A(不运行B)。
  • 规则2:如果A 的优先级 = B 的优先级,轮转运行A和B。

4、优化一:

  • 规则3:工作进入系统时,放在最高优先级(最上层队列)。
    • 规则4a:工作用完整个时间片后,降低其优先级(移入下一个队列)。
    • 规则4b:如果工作在其时间片以内主动释放CPU,则优先级不变。

5、优化二:

  • 规则5:经过一段时间S,就将系统中所有工作重新加入最高优先级队列。

6、优化三:

  • 改写规则4:一旦工作用完了其在某一层中的时间配额(无论中间主动放弃了多少次CPU),就降低其优先级(移入低一级队列)。

调度:比例份额

1、基于一个简单的想法:调度程序的最终目标,是确保每个工作获得一定比例的CPU 时间,而不是优化周转时间和响应时间。
2、彩票调度:

基本概念:彩票数(ticket)代表了进程(或用户或其他)占
有某个资源的份额。一个进程拥有的彩票数占总彩票数的百分比,就是它占有资源的份额。

3、彩票调度的一些基本机制:

  • 彩票货币:这种方式允许拥有一组彩票的用户以他们喜欢的某种货币,将彩票分给自己的不同工作。
  • 彩票转让:一个进程可以临时将自己的彩票交给另一个进程。
  • 彩票通胀:利用通胀,一个进程可以临时提升或降低自己拥有的彩票数量。

4、步长方式实现:

基本思路很简单:当需要进行调度时,选择目前拥有最小行程值的进程,并且在运行之后将该进程的行程值增加一个步长。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值