2-4小时突击操作系统(2)

本节内容:进程调度的介绍、多级反馈队列、比例份额、多处理器调度、地址空间、内存操作API

进程调度的介绍

       工作负载假设:时间一致、只是用CPU

       调度指标:周转时间=任务完成时间-任务到达系统的时间

       先进先出(FIFO)调度,也称为先到先服务。护航效应:一些耗时较少的潜在资源消费者被排在重量级的资源消费者之后。

       最短任务优先(SJF):先运行最短的任务。但是假设工作可以随时到达,A在t=0到底,且需要运行100s,而B和C在t=10到达,且个需要运行10s。即使在B和C在A之后不久到达,它们仍然被迫等待A完成。

       最短完成时间优先(STCF):抢占A并运行B和C以完成。只有在它们完成后,才能调度A的剩余时间。

       新的度量指标:响应时间

       轮转调度(RR):RR在一个时间片内运行一个工作,然后切换到运行队列中的下一个任务,而不是运行一个任务直到结束。它反复执行,直到所有任务完成。时间片长度必须是时钟中断周期的倍数。越短,RR在响应时间上表现越好,但太短,突然上下文切换得成本将影响整体性能。

调度:多级反馈队列

       多级反馈队列(MLFQ),每个队列有不同的优先级。任何时刻,一个工作只能存在于一个队列中。MLFQ总是优先执行较高优先级的工作。具有同样的优先级,则对这些工作采用轮转调度。

       MLFQ的两条基本规则:

       规则1:如果A的优先级>B的优先级,运行A(不运行B)

       规则2:如果A的优先级=B的优先级,轮转运行A和B

       如何改变优先级:

       规则3:工作进入系统时,放在最高优先级(最上层队列)

       规则4a:工作用完整个时间片后,降低其优先级(移入下一个队列)

       规则4b:如果工作在其时间片以内主动释放CPU,则优先级不变

       例如:单个长工作、来了一个短工作(交互性工作)、如果有I/O呢(密集型工作)

       提升优先级:防止进程饿死。如果系统有“太多”交互型工作,就会不断占用CPU,导致长工作永远无法得到CPU“饿死”。

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

       更好的计时方式:

       规则4:一旦工作用完了其在某优先级的时间配额,就降低其优先级。

       MLFQ调优及其它问题:高级队列通常只有较短的时间片,因而这一层的交互工作可以更快地切换。相反,低优先级队列中更多的是CPU密集型工作,配置更长的时间片会取得更好的效果。

调度:比例份额

彩票调度:一个进程拥有的彩票数占总彩票数的百分比,就是它占有资源的份额。进程A拥有0-74共75张彩票,进程B拥有75-99共25张,中奖的彩票就决定了运行A或B。

彩票货币:彩票细分然后汇总。用户A有两个工作A1和A2,他以自己的货币,给每个工作500张彩票(共1000张)。操作系统将进行兑换,将A1和A2拥有的A的货币500张,兑换成全局货币50张。

彩票转让:一个进程可以临时将自己的彩票交给另一个进程。

彩票通胀:如果一个进程知道它需要更多CPU时间,就可以增加自己的彩票,从而将自己的需求告知操作系统,这一切不需要与任何其他进程通信。

步长调度:

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

本专栏主要是介绍嵌入式软件开发岗位的相关知识和学习攻略,为大家提供一份笔试与面试手册。包括有嵌入式软件开发岗位介绍与学习攻略;校园招聘和offer疑惑问题的介绍;在笔试方面,如何刷题为笔试作准备,提供往年笔试真题;在面试方面,提供相关知识的复习重点,提供面试真题。包括有:华为、蔚来、文远、大疆、三一、深信服、亚马逊、Intel、百度、科大讯飞、OPPO、京东、中兴、比特大陆|算能、美团等等

全部评论

相关推荐

程序员猪皮:看不到八股什么意思
点赞 评论 收藏
分享
2 7 评论
分享
牛客网
牛客企业服务