- 1、本文档共24页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
2.7Linux调度算法
2.7.1Linuxv2.4调度算法2.7.2Linuxv2.6调度算法2.4.1Linuxv2.4调度算法(1)
1进程调度策略1)policy:SCHED_OTHER普通类任务SCHED_FIFO先进先出实时类任务SCHED_RR轮转法实时类任务2)priority进程静态优先级3)nice进程可控优先级因子4)rt_priority实时进程静态优先级5)counter进程目前时间片配额,也称进程动态优先级Linuxv2.4调度算法(2)
2动态优先级的产生和变化当counter递减到0时,运行进程被迫出让CPU;当可运行队列中所有进程的counter值变为0后,表明一轮调度已经结束。等待态进程的动态优先级通常会逐渐增加,当所有可运行进程的counter都为0时,系统重新计算所有进程的counter,计算公式为:p-counter=(p-counter1)+NICE_TO_TICKS(P-nice)对于就绪态进程来说,因其counter都为0,计算结果就是nice转换过来的时钟滴答数;对于等待态进程就不一样,它们的counter都不为0,计算结束后,等待态进程的动态优先级会大于nice值。3Linuxv2.4进程调度机制进程调度依据和时机进程调度任务进程切换Linuxv2.4进程切换时机
(1)进程被动放弃CPU,当前进程时间片用完或当一个进程被唤醒,且其优先级高于当前进程的优先级时,通过TIF_NEED_RESCHED位置1,来告诉内核在适当的时刻需要重新调度。(2)进程主动放弃CPU,由于进程执行系统调用,状态发生变化,直接调用schedule()进入调度,这类系统调用有:yield()、pause()、sleep()、wait()和exit()。(3)进程执行等待系统调用,如read()或write()等,此时进程进入等待队列,系统调用schedule()进入调度,该函数的执行结果往往是当前进程放弃处理器。Linuxv2.4进程调度任务(1)(1)处理软中断服务请求,如果有则先执行这些请求。(2)处理当前进程:1)如果当前进程的调度策略为SCHED_RR且counter=0,则保持运行状态(TASK_RUNNING),并把它移入可运行队列尾部,适当时刻counter被重新赋值。2)如果当前进程是可中断(TASK_INTERRUPTIBLE)的,且信号已经到达,则把它的状态修改为TASK_RUNNING,移入可运行队列尾部。3)把当前既非运行状态、又非可中断状态的进程从可运行队列中移出,这些进程暂无资格被调度,并把当前进程描述符的TIF_NEED_RESCHED标志清为0。Linuxv2.4进程调度任务(2)(3)选择进程运行·执行goodness()函数,最终最大的权值weight保存在变量c中,表示进程值得运行的程度;用变量next指向调度后要运行的进程;weight=counter+20-nice;c=weight;·如果c是0,表明所有可运行进程的时间片耗尽,应重新计算进程的时间片,对counter重新赋值,再次转向执行goodness()函数。·如果next就是当前进程,则结束调度工作,让当前进程返回运行;否则,进行进程切换,CPU改由next进程占有。Linuxv2.4进程调度任务(3)goodness()函数的参数是待查进程的描述符,返回值c反映待查进程值得运行的程度,C的取值范围如下:c=-1000,不必选择待查进程,当可运行队列里仅有一个进程时,c为该值。c=0,待查进程时间片用完,在其他进程的时间片耗尽之前不会选择它。0c1000,待查进程的时间片还未用完,剩余时间片可看作动态优先级。c1000,待查进程是实时进程,应该优先运行。如果该进程为实时进程,它的权值为1000+rt_priority,这是普通进程无法达到的权值,能保证实时进程总比普通进程优先运行。对于普通进程,它的权值为counter+20-nice,如果它又是内核线程,由于无须切换到用户空间,则将权值加1作为奖励。Linuxv2.4进程切换
上下文切换是从一个可运行进程切换到另一个可运行进程,由context_switch()函数处理这项工作,每当一个新的进程被选出来准备投入运行时,schedule()就会调用该函数。
您可能关注的文档
- 操作系统教程(第6版)课件6.2 并发进程的制约关系.pptx
- 操作系统教程(第6版)课件6.3 临界区.pptx
- 操作系统教程(第6版)课件6.5 临界区管理实现的硬件方式.pptx
- 操作系统教程(第6版)课件6.6 PV操作与进程互斥.pptx
- 操作系统教程(第6版)课件6.7 PV操作与进程同步.pptx
- 操作系统教程(第6版)课件6.8 生产者消费者问题探究.pptx
- 操作系统教程(第6版)课件6.9 管程概述.pptx
- 操作系统教程(第6版)课件6.11 霍尔管程的例.pptx
- 操作系统教程(第6版)课件6.12 进程通信.pptx
- 操作系统教程(第6版)课件6.15 死锁的防止.pptx
- 国信证券-非银金融行业投研范式的革新:当大模型遇到大资管.pdf
- 国信证券-“新质生产力“系列专题(九):并购重组赋能新质生产力.pdf
- 国盛证券-医药生物行业:周专题-周观点-总第383期-AI医疗点燃医药;兼海外大药企2024年报亮点梳理.pdf
- 西部证券-医药生物行业2025J.P.Morgan医疗健康大会MNC总结(上):全球盛会共话交易合作,创新驱动医药行业变革.pdf
- 完善生态产品价值实现机制.pptx
- 医药生物行业市场前景及投资研究报告:2025 J.P. Morgan医疗健康大会,全球交易合作,创新驱动变革.pdf
- 星图测控-市场前景及投资研究报告-测控环节,背靠中科院,特种领域,民商领域,破发.pdf
- 新质生产力系列专题分析报告:并购重组赋能新质生产力.pdf
- 顺丰同城-市场前景及投资研究报告-多品类多场景,第三方即时配送龙头,加速成长期.pdf
- DeepSeek行业应用与实践-培训课件.pdf
最近下载
- 申论答题卡-打印版(练习用).pdf.docx VIP
- 物理人教版(2019)必修第一册4.6超重和失重(共21张ppt).pptx
- 2025年中国牛排行业市场全景评估及投资前景展望报告.docx
- 博士研究计划书范本 .doc VIP
- 2024年初级会计职称考试《初级会计实务》精讲讲义第六章所有者权益.pdf VIP
- 一种擦窗器的阻尼结构.pdf VIP
- 物理与人工智能:探索物理在人工智能算法和技术中的应用.pptx
- 财务RPA在企业财务数智化中的应用.docx VIP
- (完整)小学心理健康校本教材.pdf VIP
- 2024年初级会计职称考试《初级会计实务》精讲讲义第八章财务报告.pdf VIP
文档评论(0)