关于CPU 操作系统cpu调度算法关联性 问题 求教

Xen虚拟机的虚拟CPU松弛协同调度方法_论文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
您可以上传图片描述问题
联系电话:
请填写真实有效的信息,以便工作人员联系您,我们为您严格保密。
Xen虚拟机的虚拟CPU松弛协同调度方法
|0|0|文档简介
中国最大最早的专业内容网站|
总评分0.0|
&&目前,Xen虚拟机调度算法均采用独立调度虚拟CPU的方式,而没有考虑虚拟机各虚拟CPU之间的协同调度关系,这会使虚拟机各个虚拟CPU之间产生很大的时钟中断数量偏差等问题,从而导致系统不稳定.为了提高系统的稳定性,基于Credit算法提出了一种比RCS(relaxed co-scheduling)算法更松弛的协同调度算法MRCS(more relaxed co-scheduling).该算法采用非抢占式协同调整方法将各个虚拟CPU
试读已结束,如果需要继续阅读或下载,敬请购买
定制HR最喜欢的简历
你可能喜欢14540人阅读
【操作系统】(8)
CPU调度&& 用于多道程序
以下先讨论对于单CPU的调度问题。
回顾多道程序,同时把多个进程导入内存,使得一个进程在CPU中执行I/O时,一个进程用来填补CPU的时间。
通常进程都是在CPU区间和I/O区间之间转换。
CPU调度程序称为短期调度程序,从内存调度到CPU。
在内存中等待的就绪队列的节点是PCB。有许多不同的队列实现方法。
抢占调度和非抢占调度(协作):前者为一个进程还没结束之前就被夺取CPU的拥有权,而后者则要一个进程结束或等待I/O才给予其他进程CPU的拥有权。
虽然现代操作系统都是用抢占调度,但是对于同时访问一个数据来说就会有风险,比如一个进程在试图更新一个数据,但是另一个进程抢占,并且读取这个数据,使得数据不一致。这时就要用到进程同步的内容。lock
对于中断随时可能发生的情况,我们可以在执行某个代码段时,禁止中断。
分派程序用来把CPU的拥有权交给短期调度程序选定的进程。每次切换进程时都要使用。
分派延迟:分派程序所花的时间。
CPU调度需要考虑的因素:
1.CPU使用率。
2.吞吐量:单位时间完成进程的数量。
3.周转时间:进程提交到进程完成。即从磁盘等待进入内存+就绪队列等待时间+CPU执行时间+I/O执行时间。但是CPU调度算法只是里面的一块。
4.等待时间:在就绪队列等待的时间之和。
5.响应时间:用于交互系统。
CPU调度算法:&&&& Gantt图考点求等待时间
此算法应用于内存就绪队列到CPU的过程。
1.FCFS 先到先服务
一旦选定进程,那么在结束之前就不能再切换到另一个进程。
2.SJF 最短优先& 精确的讲是最短下一个CPU区间的算法
前面提到,一个进程是由CPU区间和I/O区间交替组成的。而SJF是看哪个进程的CPU区间最短。
(1)SRTF抢占式:又称最短剩余优先,当新进来的进程的CPU区间比当前执行的进程所剩的CPU区间短,则抢占。
(2)非抢占:称为下一个最短优先,因为在就绪队列中选择最短CPU区间的进程放在队头。
SJF用于长期调度而不能用短期调度,因为进程是一个整体,CPU没法知道进程中第一个CPU区间长度。
SJF需要确定下一个CPU区间的时间长度,可以通过近似估算出下一个CPU区间的长度,比如tn+1=atn+(1-a)rn& tn为最近最近一次的CPU时间,rn为历史记录。a是给定的权重。
3.优先级调度算法& pintos的优先级是0-63& 0为最低优先级,63为最高优先级
SJF是特殊的优先级调度算法,以CPU区间长度的倒数为优先级。
(1)内部优先级:通过内部数据比如内存要求等。
(2)外部优先级:用户自己设定。set_priority
分为抢占式和非抢占式,前者为如果进来的进程优先级高于运行的进程,则替换;后者只是在就绪队列中按优先级排队。
缺点:无线阻塞或饥饿。前者为一个优先级高且运行时间长的进程一直阻塞,后者为优先级低的进程永远都得不到执行。
解决饥饿的方法是老化。通过每个时间间隔后将等待的进程优先级降低。
4.转轮法 RR算法 抢占式
用于分时系统。每个进程都占用一个时间片的时间。就绪队列为FIFO循环队列。如果一个进程的CPU区间长度小于时间片,则继续下面的进程;如果大于时间片,则中断切换到下一个进程执行。
通常时间片长度为10ms-100ms,由此需要确定时间片大小使得上下文切换次数适当少。
5.多级队列调度
根据某种性质将一个就绪队列分成不同的独立队列,如系统进程,交互进程(前台进程),交互编辑进程,批处理进程,学生进程。
每个队列都有不同的调度算法。
每个队列都有优先级,比如前台队列就比后台队列要有绝对的优先级,因此队列间的分配方法:
(1)只有优先级高的队列为空,才能执行低优先级队列。
(2)为队列分配不同权重的CPU时间,优先级高的分配时间多。
6.多级反馈队列&& 抢占式
动态调整进程,进程在不同队列之间移动,虽然在队列间移动需要耗费资源,但是更合理。
按照CPU区间的大小分队列。
进程之间的划分是按照所花CPU时间划分,比如队列0是就绪队列,且规定一个时间上界,如果一个进程没能规定时间完成,则被放入队列1中。CPU区间越大的进程就被放入低优先级中。每个进程一开始都进入就绪队列。
多级反馈队列的参数:
1.队列的数量。
2.每个队列的调度算法。
3.怎样升级到优先级更高的队列。
4.确定怎样降级到优先级更低的队列。
5.进程需要确定进入哪个队列。
接下来讲多个CPU的负载均衡问题。
假设多个CPU是同构的,但是可能也会有特殊的限制比如只有某个CPU与I/O设备连接。
(1)非对称多处理:一个处理器专门用于CPU调度决定等,其他用于执行用户代码。
(2)对称多处理(SMP):为每个处理器自我调度,可能会造成多个处理器同时访问同一个数据结构则会造成冲突。
处理器亲和性:一个进程只需要在一个处理器上执行即可,不会转到另一个处理器上执行,因为如果转移的话,处理器缓存的资源全部无效,浪费。缓存存储的是进程的连续访问的数据。
软亲和性:占时的不会转移。
硬亲和性:操作系统不允许进程在多处理器间游走。
负载平衡条件:每个处理器都有私有的就绪队列。
负载平衡方法:push和pull。即从负载高的处理器push到低负载的处理器上,从负载低的处理器pull到负载高的处理器,但是这样就缺失了处理器亲和性。
一个物理处理器可以划分为逻辑处理器,SMT(对称多线程)使得在一个物理处理器上同时运行多个线程。
逻辑处理器对于物理处理器就像线程对进程。多个逻辑处理器共享物理处理器的资源,如缓存和总线。
举个例子,就像分区一样,硬盘分为C盘,D盘等,但事实上不是真的分硬盘。更理论的讲,像数据库的逻辑和物理关系。
系统调度的是内核线程,用户线程由线程库管理。如果线程要在CPU上运行,需要与某个内核线程相连。
用户线程需要连接到LWP(进程竞争范围PCS)。
内核线程连接到物理CPU(系统竞争范围SCS)。
linux采用抢占、优先级的调度算法,较高优先级的进程被分配较多的CPU时间片。每个处理器都维护一个运行队列。运行队列分为活动和到期的,前者是进程所耗时间小于时间片的,后者是所花时间大于时间片的任务。
当活动队列为空,则互换两队列。
调度算法的评估:
1.分析评估法。事先确定负荷和算法,即一些本来可以自己设定的数据,比如确定特定算法FCFS,确定进程到来的时间和数量;根据不同的模型来比较性能。缺点是只适用于特定的情况。
2.排队模型。数学公式以分析CPU和I/O的区间分布,给定进程到达系统的时间分布,排队网络分析。LITTLE公式:进入队列的进程和离开队列的进程要相等。
3.模拟。建模计算机系统,模拟程序,根据概率分布随机生成数据,不能对于前后事件进行预测。但是通过跟踪磁带来记录真实系统的运作,再来按照这种顺序来模拟即可。
4.实现。编程后放入操作系统,观测。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:2796730次
积分:26696
积分:26696
排名:第175名
原创:443篇
转载:47篇
评论:647条
(15)(1)(6)(27)(10)(1)(12)(33)(51)(19)(20)(15)(25)(22)(30)(6)(21)(29)(18)(19)(11)(11)(5)(15)(14)(5)(5)(7)(27)(10)新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
白手起家, 积分 6, 距离下一级还需 194 积分
论坛徽章:0
操作系统的调度程序应该也算是一个进程吧,那么要运行这个程序他自己本身是不是也要参与到
CPU的调度中,那么这样一来我就糊涂了
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
小富即安, 积分 2812, 距离下一级还需 2188 积分
论坛徽章:0
& & 你所说的进程是pid为0的进程,当然调度点并不一定就在该进程内部,要看谁调用了schedule()函数。
& & pid为0的进程的确很特殊,是由kernel初始化的过程退化而来的,但是跟其他的进程很不一样,
& &只有没有没有其他任务需要占用CPU的时候才会调度该进程执行idle操作。
& &大致如此
白手起家, 积分 6, 距离下一级还需 194 积分
论坛徽章:0
stephen_du
& & 首先感谢您的回覆,但是您提到的有些概念我还不是很清楚,如果可以的话,麻烦您再说详细点,行么?
丰衣足食, 积分 613, 距离下一级还需 387 积分
论坛徽章:0
调度程序 虽然叫程序 实际上是一组api而已。
小富即安, 积分 2812, 距离下一级还需 2188 积分
论坛徽章:0
本帖最后由 stephen_du 于
10:09 编辑
lyj317 发表于
回复 2# stephen_du
太可气了,大家互相交流。
你可以认为OS启动的过程就像一个婴儿长成成人的过程。
当power键按下后,系统必须做初始化才能够启动多进程等复杂机制,也就是说硬件都在,但是没有经过初始化不能用(包括多进程等机制,就像宝宝不能一生下就吃肉,必须先吃奶 )
此时CPU处于一种比较弱小的状态,只能单线执行程序,做初始化的动作(这就是pid为0的进程)。
当内存映射建立,多进程环境初始化好后,一切ready,就开始创建新进程(pid为1,就是init进程)。
多进程环境开始后,OS的调度程序会判断系统中哪些进程需要CPU并按进程所属的调度策略选择进程占用CPU(这些检查的点叫做调度点,有中断返回的时候,主要是系统的时钟中断,pid为0的进程也会主动去检查)。
如果没有进程需要CPU就会将CPU全部交给pid为0的进程使用,而pid为0 的进程会主动调用schedule()去检测是否有进程请求CPU,如果有就让出CPU给它,
否则调用CPU的ilde例程,使CPU进程睡眠状态。
讲得比较粗略
小富即安, 积分 2567, 距离下一级还需 2433 积分
论坛徽章:1
&&调度 主要&&是有时钟中断 服务程序 来完成的, 就是响应 系统 tick 的那个中断来完成的。
白手起家, 积分 6, 距离下一级还需 194 积分
论坛徽章:0
感谢大家的回答,小弟不尽感激
论坛徽章:19
我感觉lz可能有些概念没搞明白
lz所说的都是指的是进程的调度,跟CPU无任何关系
进程的调度可以这样理解,一种是自己不想混了,主动退出,在退出的时候由调度器选择下一个应该运行的进程
一种是老板不让你混了,把你换下来了。
其实把调度程序也看作一组代码就可以了,可以想象成当要切换程序的时候都跳到这组代码里执行。
富足长乐, 积分 7205, 距离下一级还需 795 积分
论坛徽章:1
本帖最后由 linuxfellow 于
23:48 编辑
同意楼上的观点。操作系统的调度程序不是一个进程,它只是一个函数,在其他进程/线程/中断上下文时被调用来实现进程切换。
白手起家, 积分 150, 距离下一级还需 50 积分
论坛徽章:0
函数schedule(),就是专业的“调度器”。
北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:
广播电视节目制作经营许可证(京) 字第1234号
中国互联网协会会员&&联系我们:
感谢所有关心和支持过ChinaUnix的朋友们
转载本站内容请注明原作者名及出处cpu调度进程怎么算?_电脑网络问题_土巴兔装修问答
cpu调度进程怎么算?
报价结果查看方式:
微信人工报价
报价结果将发送到您的手机
深圳装修顾问-馨馨
4年行业经验,24h可咨询
10秒闪电通过好友
您的装修预算约
*装修管家将回电您,免费提供装修咨询服务
*因材料品牌及工程量不同,具体报价以量房实测为准
深圳装修顾问 -馨馨
(四年装修行业经验)
微信扫一扫
cpu调度进程怎么算?
提问者:冯安祯|
时间: 14:02:54
已有3条答案
回答数:10645|被采纳数:3
所有回答:&10645
打开任务管理器,找到消耗CPU最大的进程,或相应软件对应的进程。 && && &&点击需要限制CPU占用率的进程,单击右键选择“设置相关性”选项 && && &&点击取消该进程的所需要的CPU处理器,如果你想它少占用CPU资源,就多取消几个。点击确定后,该进程所占用的CPU资源就下降了
回答数:10500|被采纳数:2
所有回答:&10500
你好,一般来说,处理机调度可分为三个级别,分别是高级调度、中级调度和低级调度。
高级调度又称作业调度,作业就是用户程序及其所需的数据和命令的集合,作业管理就是对作业的执行情况进行系统管理的程序的集合。作业调度程序的主要功能是审查系统是否能满足用户作业的资源要求以及按照一定的算法来选取作业。引入中级调度的主要目的是为了提高内存的利用率和系统吞吐量,使得暂时不运行的进程从内存对换到外存上。
回答数:55771|被采纳数:6
21深蓝_3296
所有回答:&55771
看你的温度应该是 &&
如果是笔记本的话右键点右下角的电源图标、电源高级选项、找 &&
处理器最大频率、可以自己设定的、如果你是 &&
调成99%就是关闭睿频基本就不太热了、其实你限制cpu会牺牲性能、建议你去专业维修的地方换质量好点的硅脂风扇、再配个散热器基本就ok了、
已有 3 个回答
已有 3 个回答
已有 3 个回答
已有 4 个回答
已有 3 个回答
位业主已在问吧找到答案
一万套装修案例
下载土巴兔APP
中国装修网

我要回帖

更多关于 操作系统cpu调度算法 的文章

 

随机推荐