您当前的位置:首页 > 电脑百科 > 程序开发 > 程序员

程序员面试冷知识:Redhat红帽/CentOS服务器的Linux内核实时系统

时间:2020-08-03 10:38:41  来源:  作者:

 

背景知识

linux的调度策略包括SCHED_FIFO and SCHED_RR 和SCHED_OTHER

SCHED_FIFO(Round-robin线程调度策略)和SCHED_RR是“实时”策略。实现POSIX标准规定的固定优先级实时调度(fixed-priority real-time scheduling)。按照这些策略的任务会抢占其他所有任务。因为是抢占,如果它们不释放CPU,所以很容易使得某些低级别的任务得不到执行。

SCHED_FIFO和SCHED_RR之间的区别在于:在相同优先级的任务中,SCHED_RR执行round-robin分配,每个任务都得到相同的cpu时间片策略。而SCHED_FIFO需要任务主动放弃cpu时间片。

SCHED_OTHER是常见的循环式分时调度策略,该调度策略根据系统中运行的其他任务为某个时间的调度任务。


SCHED_RR和SCHED_FIFO的问题:

红帽企业版Linux实时版中的两种实时调度策略具有一个主要特征:直到被更高优先级的线程抢占或直到它们“等待”(sleep/休眠或执行I/O)线程会一直运行。如果是SCHED_RR,在SCHED_RR优先级相同的线程中,操作系统可能会抢占一个线程,让另一个线程得以执行。

POSIX规范没有规定允许低优先级线程获得任何CPU时间的策略。

实时线程的这种特性意味着编写一个霸占100%的CPU的应用程序非常容易。乍一看,好像榨干了服务器是个不错的想法,但实际上,它引起了操作系统的许多问题。操作系统负责管理系统范围的资源和按CPU的资源,并且必须定期检查描述这些资源的数据结构,并对其执行内部管理活动。如果内核被SCHED_FIFO线程垄断,则它无法执行内务处理任务,最终整个系统将变得不稳定,从而可能导致崩溃。

中断处理程序以具有SCHED_FIFO优先级的线程(默认值:50)运行。具有或策略高于中断处理程序线程的cpuxiao hao x线程可能会阻止中断处理程序运行,并导致程序等待那些由中断发出的数据,从而使该程序饿死并失败。


红帽/centos的特殊策略/实时节流机制

在红帽企业版实时系统内核中,有个实时节流机制/SCHED_FIFOSCHED_RR限制实时调度的调度策略(real-time scheduler throttling)。

红帽企业版实时Linux内核带有一种保护机制,该机制使系统管理员可以分配资源配额以供实时任务使用。这个配额机制引入,算是一个保护机制。

这个机制用/proc文件系统中的两个参数控制。

/proc/sys/kernel/sched_rt_period_us定义时间周期,以微秒为单位,相当于100%的CPU资源带宽。默认值为1,000,000μs(1秒)。谨慎更改该时间段,时间段过长或太小都将危险。

/proc/sys/kernel/sched_rt_runtime_us定义所有实时任务可用的总带宽。默认值为950,000μs(0.95 s),即CPU带宽的95%。将该值设置为-1意味着实时任务最多可能占用100%的CPU时间。仅当在特殊场景实时任务经过精心设计并且没有明显的隐患(比如没有无限制的轮询循环)时,才可以这样配置。

对于实时调节机制的默认值定义的CPU时间的95%,意思是95%的cpu时间片可以通过实时任务中使用。剩余的5%将用于非实时任务(在SCHED_OTHER类似的调度策略下运行的任务)。而且需要注意,如果单个实时任务占用了95%的CPU时隙,则该CPU上剩余的实时任务将不会运行。剩下的5%的CPU时间仅由非实时任务使用。

默认值的设置带来两个好处:流氓实时任务不会通过不允许非实时任务运行来锁定系统,另一方面,实时任务最多具有95%的CPU他们的可用时间,可能会最大化效能。


聪明做法RT_RUNTIME_GREED

尽管SCHED_FIFOSCHED_RR/实时节流机制的工作原理是避免实时任务可能导致系统挂起,但是高级用户可能希望在没有非实时任务匮乏的情况下允许实时任务继续运行, 避免系统闲置。

启用后,此功能会在限制实时任务之前检查非实时任务是否饿死。如果实时任务被限制,则在系统空闲时或下一个周期开始时(以先到者为准),它将立即取消限制。

RT_RUNTIME_GREED通过以下命令 启用:

#echo RT_RUNTIME_GREED> /sys/kernel/debug/sched_features

要使所有CPU核都具有相同的rt_runtime,请禁用NO_RT_RUNTIME_SHARE逻辑:

#echo NO_RT_RUNTIME_SHARE> /sys/kernel/debug/sched_features

设置了这两个选项后,用户将保证所有CPU上的非RT任务都有一定的运行时间,同时使实时任务尽可能多地运行。

参考资料:这可从内核文档找到源码(可在kernel-rt-doc软件包中找到):

  • /usr/share/doc/kernel-rt-doc-3.10.0/Documentation/scheduler/sched-rt-group.txt

程序员面试冷知识:Redhat红帽/CentOS服务器的Linux内核实时系统

 



Tags:程序员面试   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
背景知识Linux的调度策略包括SCHED_FIFO and SCHED_RR 和SCHED_OTHERSCHED_FIFO(Round-robin线程调度策略)和SCHED_RR是“实时”策略。实现POSIX标准规定的固定优先级实时调...【详细内容】
2020-08-03  Tags: 程序员面试  点击:(92)  评论:(0)  加入收藏
现在对于许多年龄越来越大的人来讲,找到一份合适的工作确实很不容易啊!毕竟在年龄方面就是一个很大的问题了。即使工作能力还行但也没有办法像年轻人一样适应加班。在这样的情...【详细内容】
2020-04-28  Tags: 程序员面试  点击:(94)  评论:(0)  加入收藏
在面试时,经过寒暄后,一般面试官会让介绍项目经验 。常见的问法是,说下你最近的(或最拿得出手的)一个项目。...【详细内容】
2020-03-11  Tags: 程序员面试  点击:(67)  评论:(0)  加入收藏
图的最短路径算法Floyd最短路算法(多源最短路)参考:https://www.cnblogs.com/ahalei/p/3622328.html 在这里插入图片描述上图中有4个城市8条公路,公路上的数字表示这条公路的长...【详细内容】
2019-11-07  Tags: 程序员面试  点击:(92)  评论:(0)  加入收藏
为程序员,你肯定知道和其他技术工作面试比起来,编程工作的面试流程略有不同。这篇文章对你在编程面试中应当避免的10个问题展开讨论。 1、从未在纸上或者白板上写过代码这是求...【详细内容】
2019-07-09  Tags: 程序员面试  点击:(328)  评论:(0)  加入收藏
▌简易百科推荐
JAVA开发工程师(北京)本科 3-5年经验 面议 (招1人)岗位职责:1.负责我行应用系统的设计,完成软件编码工作,负责管理代码设计规范等工作;2.根据应用需求分析说明书,评估需求研发的可行...【详细内容】
2021-12-27  just do丶IT公众号    Tags:国企   点击:(1)  评论:(0)  加入收藏
今天聊聊编程的本质。程序就是数据结构+控制+逻辑,程序员编程工作的本质是翻译,翻译机要来了,程序员怎么办?黑客帝国中的程序黑客帝国4就要上映了,不知道前三部你看懂了么?值得多...【详细内容】
2021-12-17  博士聊IT    Tags:程序员   点击:(8)  评论:(0)  加入收藏
梦醒之后,每个人对于这份职业的未来、互联网行业的未来,以及更重要的,自己的未来都有了更现实的判断 文 | 祝颖丽编辑 | 黄俊杰一个生于 1986 年的人,他所走过的前半生:从出生起,...【详细内容】
2021-12-03    财经杂志  Tags:程序员   点击:(15)  评论:(0)  加入收藏
前些天在头条看到一个八二年的哥们,述说自己找工作屡次被拒的问题,在网上引起了广泛的讨论,这件事给我留下了很深的印象,因为这哥们和我同是程序员,都人到中年,上有老下有小。唯一...【详细内容】
2021-12-01  云南贤哥在深圳    Tags:程序员   点击:(20)  评论:(0)  加入收藏
很多读者都问过一个问题:程序员如何实现高速成长?之前也写过相关的文章,强调的主要是夯实计算机体系基础知识。 再说另一个诀窍:多看经典开源项目,这些项目大多是众多顶尖程序员...【详细内容】
2021-11-30  findyi    Tags:程序员   点击:(14)  评论:(0)  加入收藏
近日,一位45岁的网民在中国政府网留言求职,引发关注。该网民自称是一名软件开发人员,今年45岁,精通各种技术体系,“而我辞职回家半年后再回来寻找工作机会的时候,却发现连个面试...【详细内容】
2021-11-17  郭主任    Tags:程序员   点击:(42)  评论:(0)  加入收藏
即使在安全技术取得进步之后,网络犯罪仍在不断增加。据统计,网络犯罪每分钟给企业造成约 290 万美元的损失。主要是因为新技术不断涌现,难以维护安全。随着网络威胁的增加,网络...【详细内容】
2021-11-04  章大千    Tags:编程语言   点击:(40)  评论:(0)  加入收藏
北漂小伙李强(化名),在北京互联网大厂工作7年,月薪3万,离职回老家开摄影店,亏了200万。李强出生于山西一座名不经传的小城市,互联网专业大学毕业的他,没有听父母的劝言回到家乡考公...【详细内容】
2021-10-29  霸王课  今日头条  Tags:程序员   点击:(51)  评论:(0)  加入收藏
程序员是青春饭,这在国内似乎是公认的。所以很多公司不愿招大龄程序员,很多程序员也“知趣”地及早转型。有的做管理,有的做架构,我还见过改行卖保险的。总之,年龄大了不想敲代码...【详细内容】
2021-10-27  编程的艺术    Tags:   点击:(30)  评论:(0)  加入收藏
软件工程专业有Web开发、移动终端开发、大数据开发、计算机系统工程师、视频开发工程师、计算机软件应用工程师等就业方向。第一,Web开发。Web开发包括前端开发和后端开发。...【详细内容】
2021-10-19  辰新   企鹅号  Tags:软件工程   点击:(79)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条