操作系统复习笔记 06 CPU Scheduling CPU调度

CPU的三级调度:
1.高级调度(Long-term):作业调度,从外存进内存
2.低级调度(Short-term):进程调度,分配处理机
3.中级调度(Medium-term):对换
通过多道程序设计得到CPU的最高使用率。
CPU-IO脉冲周期:进程的执行包括进程CPU上执行和等待IO。
进程的执行以CPU脉冲开始,其后跟着IO脉冲。进程的执行就是在这两个状态之间切换。


CPU调度可能发生以下情况:
1.从运行转到等待
2.从运行转到就绪
3.从等待转到就绪
4.中止运行


其中1、4情况下的调度为非抢占式调度,所有其他情况下发生的调度成为抢占式调度。
非抢占式调度:把处理机分配给某进程后,让其一直执行,知道该进程完成或发生某事件被阻塞时,才把处理机分配给其他进程,不允许其他进程抢占已经分配出去的处理及。
抢占方式:允许调度程序根据某个原则,去停止某个正在执行的进程,将处理及重新分配给另一个进程。
抢占的原则:
1.时间片原则
2.优先权原则
3.短作业优先原则


分派程序负责将对CPU的控制权转交给进程调度选择的进程,
包括:切换上下文、切换到用户态、跳转到用户程序的适当位置并重新执行。 


分派延迟:分派程序种植一个进程的运行并启动另一个进程所花费的时间。


调度准则:
1.CPU利用率(CPU utilization):使CPU尽可能忙碌。
2.吞吐量(Throughput):单位时间内运行完的进程数。
3.周转时间(Turnaround time):进程从提交到运行结束的全部时间。
4.等待时间(Waiting time):进程在就绪队列中等待调度的时间片总和。
5.响应时间(Response time):从进程提出请求到首次被相应的时间段。注意:在分时系统环境下不是输出完整结果的时间
6.带权周转时间:周转时间/实际运行时间


调度算法影响的是等待时间,而不能影响真正使用CPU的时间和IO时间。


调度算法:
1.先来先服务(FCFS)
——属于非抢占式调度,一旦一个进程占有处理及,它就一直运行下去,知道该进程完成或者因为等待某事件而不能继续运行时才释放处理机。
——有利于长作业不利于短作业,有利于CPU型作业,不利于IO型作业。


2.短作业优先(SJF):SJF是最优的,对一组指定的进程而言,它给出了最短的平均等待时间。
——有两种调度形式:
(1)非抢占式调度(nonpreemptive):一旦进程拥有CPU,它的使用权小只能等待该CPU脉冲结束后才让出。
(2)抢占式调度(Preemptive):发生在有比当前进程剩余时间片更短的进程到达时,也称为最短剩余时间优先调度。
预测CPU脉冲长度:T(n+1) = a*t(n) + (1-a)*T(n) 其中t(n)是实际运行时间,T(n)是预测时间。
——采用SJF有利于系统减少平均周转时间,提高系统吞吐量。


3.优先权调度(Priority Scheduling)
——同样有两种调度形式:
(1)非抢占式调度(nonpreemptive)
(2)抢占式调度(Preemptive)
——CPU分配给最高优先级的进程[嘉定最小整数=最高的优先级]
——SJF是以下一次CPU脉冲长度为优先数的优先级调度。
——静态优先权:在进程创建时确定,而且在整个生命期中保持不变。
——静态优先权可能会出现饥饿问题。解决方案:老化(视进程等待时间的延长提高其优先数)。
——动态优先权:进程的优先权可以随进程的推进而改变。改变优先权的因素:进程的等待时间、已使用处理机的时间、资源使用情况。


4.时间片轮转(Round Robin)
——每个进程将得到小单位的CPU时间,通常为10-100ms。时间片用完后,该进程将被抢占并插入就绪队列的末尾。
——一般来说,RR的平均周转时间比SJF长,但响应时间要短一些。
——时间片长度对于切换上下文的时间而言应足够长,否则将导致系统开销过大。
——一组进程的平均周转时间并不一定随着时间片的增大而降低。一般来说,如果大多数(80%)进程能在一个时间片内完成,就会改善平均周转时间




5.多级队列调度(Multilevel Queue)
——按进程的属性来分类,每个进程固定地处于某一个队列,每个队列有自己的调度算法,调度需要在队列间进行。
——给定时间片调度,即每个队列得到一定的CPU时间,进程在给定时间内执行;如,80%的时间执行前台的RR调度,20%的时间执行后台的FCFS调度。






6.多级反馈队列调度(Multilevel Feedback Queue)
——存在多个就绪队列,具有不同的优先级,各自按时间片轮转法调度。
——允许进程在队列之间移动。
——各个就绪队列中时间片的大小各不相同,优先级越高的队列时间片越小。


——当一个进程执行完一个完整的时间片后被抢占处理器,被抢占的进程优先级降低一级而进入下级就绪队列,如此继续,直至降到进程的基本优先级。


——而一个进程从阻塞态变为就绪态时要提高优先级。
——最后会将I/O型和交互式进程留在较高优先级队列

——多级反馈队列调度程序由以下参数定义:
——队列数、每一队列的调度算法、决定进程升级的方法、决定进程降级的方法、决定需要服务的进程将进入哪个队列的方法。


7.高响应比优先调度算法(Highest Response Ratio Next)
RP = 1 + 已等待时间/要求运行时间
HRRN算法实际上是FCFS算法和SJF算法的折衷。
优点:等待时间相同则SJF,要求服务时间相同,则FCFS。长作业优先级随着等待时间的增加而提高,不会出现长时间得不到相应的情况。
缺点:作业调度程序要统计作业的等待时间,做浮点运算浪费大量的计算时间。




Dispatch Latency 分派延迟
优先级倒置:如果较高优先级的进程需读或修改正在被另一个低优先级进程所访问的内核数据,高优先级进程需要等待低优先级的进程完成。
优先级继承:(正在访问高优先级进程所需资源的)低优先级进程继承高优先级,直到相关资源处理完毕,它们的优先级再返回原来的值。


Thread Scheduling 线程调度
1.用户级线程需要运行的话,需通过LWP映射到某个内核级线程。
2.局部调度(Local Scheduling):线程怎样决定将那个线程列入有效的轻量级线程。
3.全局调度(Global Scheduling):内核怎样决定下一个运行的内核线程。
4.Solaris scheduling 采用基于优先级的进程调度。
5.Windows XP采用基于优先级的,可抢占的调度算法,线程按时间片来使用CPU。
——优先级相同的进程按RR调度
——非实时优先级是动态调整的,实时优先级是固定不变的。
6.Linux提供2种进程调度算法
——分时:实现进程间公平可抢占调度。
——实时:按优先级调度。
——linux支持SMP,每个CPU有自己的runqueue,并独自进行调度。
——每个runqueue有两组优先级:Active 和 Expired
——调度程序从Active array中选取优先级最高的进程使用CPU,当所有进程都用尽了自己的时间片,交换Active array与expired array。
7.JVM使用的是抢占式的、基于优先级的调度算法。


多道程序的道指的是同一时刻能进内存的进程数量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/321376.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【动态规划】 石子合并问题(环形) (ssl 1597)

石子合并问题石子合并问题石子合并问题 Description 在一个圆形操场的四周摆放着n 堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的2 堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。试设计一个算法,计算出将n堆石子合并成…

P6102-[EER2]谔运算【位运算】

正题 题目链接:https://www.luogu.com.cn/problem/P6102?contestId26472 题目大意 nnn个数的序列aaa,求 ∑i1n∑j1n∑k1n∑l1n(aioraj)xor(akandal)\sum_{i1}^n\sum_{j1}^n\sum_{k1}^n\sum_{l1}^n(a_i\ or\ a_j)\ xor\ (a_k\ and\ a_l)i1∑n​j1∑n​k1∑n​l1∑n…

操作系统复习笔记 07 Process Synchronization 进程同步

背景:1.对共享数据的并发访问可能导致数据的不一致性。2.要保持数据的一致性,就需要一种保证并发进程正确执行顺序机制。3.解决有界缓冲区问题的共享内存方法在count上存在竞争条件。4.进程间的制约关系:——间接制约:有些资源需要…

【动态规划】拔河比赛 (ssl 1638)

拔河比赛拔河比赛拔河比赛 Description 一个学校举行拔河比赛,所有的人被分成了两组,每个人必须(且只能够)在其中的一组,要求两个组的人数相差不能超过1,且两个组内的所有人体重加起来尽可能地接近。 In…

特长生考试相关

水一手游记 一大早起来像个那啥一样在校训石前等(旁边一群看猴子一样) 然后车上点个人就去公费旅游(半个小时车程,甚至没有饭吃) 然后到那边量完体温见了一下熟人就开始了 T1高精度,历年最难T1还要判负数然…

Build 2018,给你带来全新的开发者体验, .NET Core 3.0带来桌面支持

Build 2018 主旨演讲的主题是 Azure 云和 AI、物联网、AR等技术,以及开发者相关内容的宣布。在今天的Build大会上,微软宣布目前已有超过7亿台设备运行Windows 10系统。去年这个数字为5亿。Office 365目前每个月有1.35亿活跃的商业用户,去年为…

【动态规划】大厅安排 (ssl 1212)

大厅安排大厅安排大厅安排 Description 有一个演讲大厅需要GEORGE管理,演讲者们事先定好了需要演讲的起始时间和中止时间。GEORGE想让演讲大厅得到最大可能的使用。我们要接受一些预定而拒绝其他的预定,目标自然是使演讲者使用大厅的时间最长。为方便起…

《你必须掌握的Entity Framework 6.x与Core 2.0》书籍出版

前言到目前为止写过刚好两百来篇博客,看过我博客的读者应该大概知道我每一篇博客都沿袭着一贯的套路,从前言到话题最终到总结,本文依然是一如既往的套路,但是不是介绍技术,也可说是介绍技术,不过是介绍书中…

Loj#2035-[SDOI2016]征途【斜率优化】

正题 题目链接:https://loj.ac/problem/2035 题目大意 nnn个数字分成mmm段,要求方差最小。 解题思路 首先方差的公式∑i1n(xi−∣x∣)2\sum_{i1}^n(x_i-|x|)^2i1∑n​(xi​−∣x∣)2 其中∣x∣|x|∣x∣是不变的,定义w∣x∣w|x|w∣x∣ 设fi,jf_{i,j}fi,…

可持久化线段树小结

学了可持久化线段树有一段时间了,一直没拿出时间来整理一下,刚好今天有空,就写一写。 可持久化的含义是对于每次修改操作都将产生一个新版本的线段树,并且旧版本的线段树仍然保留可以随时访问。 基于这个目的,我们可…

【动态规划】 数字游戏 (ssl 1653)

数字游戏 题目大意: 有n个数,分别为a[1] (序号为1),a[2] (序号为2),a[3]…a[n],让你选m个数,每选一个数,就要减去已选个数(不算当前数)*b[i] (i为当前值的序号),所选数的最大值(要减去相应的b) 原题 小…

.NET Core玩转机器学习

ML.NET 专门为.NET开发者提供了一套跨平台的开源的机器学习框架。ML.NET支持.NET开发者不需要过度专业的机器学习开发经验,就能轻松地训练自己的模型,并且嵌入到自己的应用中。一切尽在.NET之中。ML.NET早期是由Microsoft Research开发,近十年…

P2900-[USACO08MAR]Land AcquisitionG【斜率优化】

正题 题目链接:https://www.luogu.com.cn/problem/P2900 题目大意 nnn块hi∗wih_i*w_ihi​∗wi​的土地,购买一组土地需要max(h)∗max(w)max(h)*max(w)max(h)∗max(w),求购买所有土地的最小费用。 解题思路 首先如果hhh和www都小于另一块土地显然是不需…

二元运算 FFT+分治

题目: 4836: [Lydsy2017年4月月赛]二元运算 Time Limit: 8 Sec Memory Limit: 128 MB Submit: 486 Solved: 162 [Submit][Status][Discuss] Description 定义二元运算 opt 满足 现在给定一个长为 n 的数列 a 和一个长为 m 的数列 b ,接下来有 q 次询问。…

【记忆化搜索】【线性化DP】滑雪 (ssl 1202/luogu 1434/pku 1088)

滑雪滑雪滑雪 ssl 1202 luogu 1434 pku 1088 题目大意: 有一个N*M的矩阵,每个位置都有一个数,可以从大的数走向小的数,问可走的路最长是多少 原题 Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获…

POJ2942-Knights of the Round Table【tarjan】

正题 题目链接:http://poj.org/problem?id2942 题目大意 有nnn个骑士,有mmm组讨厌关系,要求讨厌的不能坐相邻,而且要求每次会有都有奇数个人,求有多少个骑士一组会议都不能参加。 解题思路 首先构一个补图,然后求有…

UVA4671 K-neighbor substrings FFT+字符串hash

题解: 将字符串A、B中的a和b分别以1和-1表示,对字符串B进行反转。 将A和B看成多项式,求卷积,这样的话从结果区间的[lenB−1,lenA)[lenB−1,lenA)中的每一个点的值valval,(lenB−val)/2(lenB−val)/2代表当前位置的字串…

微软Build 2018展示Visual Studio功能:跨系统云编程

5 月 8 日凌晨消息,微软 Build 2018 开发者大会在今天正式来开帷幕。很明显整场发布会被分为了上下两个部分,上半场如果说是聊一些技术实现和愿景,那下半场就应该说是实战说明了。跨平台云端编程了解下微软在现场展示了 Visual Studio&#x…

【DP】花店橱窗布置 (ssl 1626/luogu 1854)

花店橱窗布置花店橱窗布置花店橱窗布置 ssl 1626 luogu 1854 题目大意: 有n朵花和m个花瓶,每一朵花插在不同的花瓶里会有不同的美丽度,花瓶和花必须按原来的顺序摆放,求最大的美丽值 Description 假设你想以最美观的方式布置…

P4819-[中山市选]杀人游戏【tarjan】

正题 题目链接:https://www.luogu.com.cn/problem/P4819 题目大意 nnn个人,一个杀手,搜查一个平民可以知道他认识的人的身份,搜查杀手就会死,求最优情况下警察的最低死亡概率。 解题思路 先用tarjantarjantarjan搜出强连通&…