- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
多处理器运行队列的平衡精选
正如我们在上一节所看到的,schedule( )函数从本地CPU的运行队列挑选新进程运行。因此,一个指定的CPU只能执行它相应的运行队列中的可运行进程。另外,一个可运行进程总是存放在某一个运行队列中:任何一个可运行进程都不可能同时出现在两个或多个运行队列中。因此,一个保持可运行状态的进程通常被限制在一个固定的 CPU上。这种设计通常对系统性能是有益的,因为,运行队列中的可运行进程所拥有的数据可能填满每个CPU的硬件高速缓存。但是,在有些情况下,把可运行进程限制在一个指定的CPU上可能引起严重的性能损失。例如,考虑频繁使用CPU的大量批处理进程:如果他们绝大多数都在同一个运行队列中,那么系统中一个CPU将会超负荷,而其他一些CPU几乎处于空闲状态。因此,内核周期性地检查运行队列的工作量是否平衡,并在需要的时候,把一些进程从一个运行队列迁移到另一个运行队列。但是,为了从多处理器系统获得最佳性能,负载平衡算法应该考虑系统中CPU的拓扑结构。从内核2.6.7版本开始,Linux提出一种基于“调度域”概念的复杂的运行队列平衡算法。正是有了调度域这一概念,使得这种算法能够很容易适应各种已有的多处理器体系结构(甚至诸如那些基于“多核”微处理器的新近出现的体系结构)。
1 调度域
调度域实际上是一个CPU集合,他们的工作量应当由内核保持平衡。一般来说,调度域采取分层的组织形式:最上层的调度域(通常包括系统中的所有CPU)包括多个子调度域,每个子调度域包括一个CPU子集。正是调度域的这种分层结构,使工作量的平衡能以如下有效方式来实现:每个调度域被依次划分成一个或多个组,每个组代表调度域的一个CPU子集。工作量的平衡总是在调度域的组之间来完成。换而言之,只有在一些调度域的某些组的总工作量远远低于同一个调度域的另一个组的工作量时,才把进程从一个CPU迁移到另一个CPU。下图说明三个调度域分层实例,对应三种主要的多处理器机器体系结构:
?
图中(a)表示具有两CPU的标准多处理器体系结构中由单个调度域组成的一个层次结构,该调度域包括两个组,每个组有一个CPU。图中(b)表示一个两层的层次结构,用在使用超线程技术、有两CPU的多处理器结构中。最上层的调度域包括了系统中所有四个逻辑CPU,它由两个组构成。上层域的每个组对应一个子调度域并包括一个物理CPU。底层的调度域(也被称为基本调度域)包括两个组,每个组一个逻辑CPU。最后,图中(c)表示有两个结点,每个结点有四个CPU的8-CPUNUMA体系结构上的两层层次结构。最上层的域由两个组构成,每个组对应一个不同的结点。每个基本调度域包括一个结点内的CPU,包括四个组,每个组包括一个CPU。每个调度域由一个 sched_domain描述符表示,而调度域中的每个组由sched_group 描述符表示。每个sched_domain 描述符包括一个groups字段,它指向组描述符链表中的第一个元素。此外,sched_domain 结构的parent字段指向父调度域的描述符(如果有的话)。struct sched_domain {??? /* These fields must be setup */??? struct sched_domain *parent;??? /* top domain must be null terminated */??? struct sched_group *groups;??? /* the balancing groups of the domain */??? cpumask_t span;??? ??? ??? /* span of all CPUs in this domain */??? unsigned long min_interval;??? /* Minimum balance interval ms */??? unsigned long max_interval;??? /* Maximum balance interval ms */??? unsigned int busy_factor;??? /* less balancing by factor if busy */??? unsigned int imbalance_pct;??? /* No balance until over watermark */??? unsigned long long cache_hot_time; /* Task considered cache hot (ns) */??? unsigned int cache_nice_tries;??? /* Leave cache hot tasks for #
您可能关注的文档
- 复杂软土地基路基设计精选.pdf
- 夏季不同下垫面温度的对比观测及分析_范玉芬精选.pdf
- 夏季卫生保健知识讲座精选.ppt
- 夏天的雨作文精选.ppt
- 夏天养生粥做法大全,暑假给孩子好好补补精选.doc
- 夏季大学生对饮料的选择与消费市场调查精选.doc
- 夏季安全教案精选.doc
- 夏季女性游泳的好处与禁忌精选.doc
- 夏威夷旅游景点介绍_夏威夷旅游景点图片精选.doc
- 夏季安全行车常识教育提纲精选.doc
- 2025年中化集团方舟生招聘笔试备考题库(带答案详解).pdf
- 2025年中建西南设计院招聘笔试备考题库(带答案详解).pdf
- 2025年南通市慈善总会招聘笔试备考题库(带答案详解).pdf
- 2025年江西网吉安分站招聘笔试备考题库(带答案详解).pdf
- 2025年山西三晋都市报招聘笔试备考题库(带答案详解).pdf
- 2025年山西省高河能源招聘笔试备考题库(带答案详解).pdf
- 2024年贵州省毕节地区大方县大水乡招聘社区工作者真题含答案详解.docx
- 2024年贵州省贵阳市开阳县永温乡招聘社区工作者真题及答案详解1套.docx
- 2024年贵州省贵阳市南明区新华路街道招聘社区工作者真题及答案详解1套.docx
- 2024年贵州省遵义市仁怀市长岗镇招聘社区工作者真题及参考答案详解.docx
最近下载
- 2025年太仓市太訸控股集团有限公司第二批公开招聘19人笔试备考题库及答案解析.docx VIP
- 《食管癌综合治疗新进展》课件.ppt VIP
- 商铺租赁合同电子版下载打印.docx VIP
- 2025年太仓市太訸控股集团有限公司第二批公开招聘19人笔试参考题库附答案解析.docx VIP
- 2025年太仓市太訸控股集团有限公司第二批公开招聘19人备考题库及答案解析.docx VIP
- 《危重患者的抢救》课件.ppt VIP
- 孕产妇心肺复苏要点课件.pptx VIP
- 农村小学中高年级学生阅读兴趣培养策略研究-课题申请评审书.docx VIP
- 工程制图制图基础.ppt VIP
- 简约产品订货合同模板.docx VIP
文档评论(0)