- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux内核抢占的实现机制分析(论文版)
Linux内核抢占的实现机制分析(论文版)
??第28卷第3期
2008年6月惠州学院学报(自然科学版)JOURNALOFHUIZHOUUNIVERSITYVol??28??No??3Jun??2008
Linux内核抢占的实现机制分析
曾树洪,刘卫国1,21
(1.中南大学??信息科学与工程学院,湖南??长沙??410083;
2.惠州学院??计算机科学系,广东??惠州??516015)
????摘??要:早期的Linux内核是不可抢占的,在Linux对SMP多处理器系统支持的基础上,linux内核2.6版支持内核抢占。本文以Linux2.6.11版本内核为基础,深入地分析了Linux可抢占内核的实现原理。
关键词:Linux系统;实时;可抢占;SMP
中图分类号:TP39????文献标识码:A????文章编号:1671-5934(2008)03-0056-04
1??引言
随着计算机技术和信息化技术的发展,信息家电、手持设备、无线设备等个性化设备的出现,嵌人式系统成为了现在研究的热点。Linux以其开放源码、功能强大以及广泛支持等优点而广泛应用于嵌入式系统。嵌人式系统往往对实时性能要求比较高,运用在嵌入式系统中的Linux系统必须具有很好的实时响应性能。??实时 不仅要求逻辑结果正确,而且还有时间要求,一个实时任务应当在限定的时间内完成[1]。
影响Linux实时性能的因素有很多,中断处理机制、定时器的时钟精度、内核是否可被抢占、实时任务调度机制和调度算法等,我们只有很好的理解了Linux在这些方面的处理机制,才能对内核代码进行改进使其应用于具体的实时系统中。因此,分析研究Linux内核抢占的实现机制是非常重要的。
2??Linux的内核抢占机制
早期的LINUX内核是不可抢占。当进程处在用户态时,不论内核是不是抢占的,在适当的时候都可能发生进程切换,比如有更高优先级的任务被唤醒时,但是当一个进程处于内核态,除非它自愿放弃CPU,否则将一直占用CPU,直到完成或退出内核。为了分析内核不可抢占时进程的切换过程,假设当前系统中只有两个进程A和B,图1,进程A运行在用户态,在t1时刻,进程A被中断(如频繁发生的时钟中断等),在中断处理程序结束前的某一时刻,优先级更高的进程B变为了可执行状态,在中断返回时(t2时刻),调度程序被调用,切换到进程B,进程B开始运行,直到进程B结束的t3时刻,调度程序再次被调用,切换到进程A,进程A
继续运行。
??
??
图1??用户态图2??内核态
图2,进程A运行在内核态,在t1时刻,进程A被中断(如频繁发生的时钟中断等),在中断处理程序结束前的某一时刻,优先级更高的进程B变为了可执行状态,由于内核是不可抢占的,在中断返回后,进程A继续运行,
收稿日期:2008-05-26
作者简介:曾树洪(1979-),男,四川泸州人,讲师,在读工程硕士研究生,研究方向为嵌入式操作系统。
??第3期曾树洪等:Linux内核抢占的实现机制分析?57?直到进程A结束时,调度程序被调用,切换到进程B,进程B才开始运行。这种情况下,优先级高的进程B的执行被延迟了,严重影响了实时系统的性能。
把Linux内核设计成不可抢占,主要是为了简化内核代码设计,在单CPU情况下,避免了多个进程同时执行所带来的并发问题,大大简化了内核的同步和保护机制。但内核的不可抢占,也严重的影响了Linux的实时性能。Linux内核从2.0版本开始支持SMP多处理器,在多处理器系统上,内核中可以有多个进程同时在不同的CPU上运行,SMP多处理器系统面临同样的进程并发执行问题。这样在支持SMP多处理器的基础上,内核抢占的实现也就容易了,Linux内核从2.6版本开始,正式加入了对内核抢占的支持。下面以2.6.11版本的内核代码为基础来分析Linux可抢占内核的实现。
为了实现内核抢占,在每个进程的thread_info描述符里定义了一个preempt_count的变量和一个flags变量[2]:
/include/asm-i386/Thread_info.h
structthread_info{
????structtask_struct*task;
!!
unsignedlongflags;
__s32preempt_count;
!!
};
preempt_count变量作为抢占计数器使用,初始值为0,当preempt_countgt;0时,禁止内核抢占。flags变量里存放的是一些
您可能关注的文档
- 2017届河南省开封市立洋外国语学校高三上学期第一次月考理科数学试题(解析版).doc
- 2017届浙江省“七彩阳光”新高考研究联盟高三下学期期初联考历史试卷(解析版).doc
- 2017届甘肃省武威市二中高三上期第三次诊断考试历史试卷(解析版).doc
- 2017届湖南师范大学附属中学高三第7次月考试题 文综政治 解析版.doc
- 2017届辽宁省重点高中协作校高三上期末历史试卷(解析版).doc
- 2017届重庆市第一中学高三下学期第一次月考文科综合历史试卷(解析版).doc
- 2017届重庆市第一中学高三下学期第二次月考理科综合生物试题(带解析).doc
- 2017届浙江省绍兴市高三3月学考选考科目适应性考试生物试卷(带解析).doc
- 2017届高考语文一轮复习教案:专题十一第五讲 归纳内容要点概括中心意思 Word版含解析.doc
- 2017届高考地理二轮复习 课时过关练习11 Word版含解析.doc
- 2021-2022学年湖南省常德市安乡县四年级上学期期中语文真题及答案.pdf
- 2023-2024学年河南省南阳市社旗县四年级上学期期中数学真题及答案.pdf
- 2022-2023学年云南省曲靖市四年级下学期期末数学真题及答案.pdf
- 2021-2022学年河南省周口市鹿邑县二年级下册月考语文真题及答案.pdf
- 2018年河南焦作解放区教师招聘考试真题及答案.pdf
- 2019年江西公务员行测考试真题及答案-乡镇.pdf
- 2019中国石油报社应届高校毕业生招聘试题及答案解析.pdf
- 光大银行招聘应届毕业生能力素质测试笔试真题及答案.pdf
- 2024年广西百色教师招聘考试模拟题及答案.pdf
- 2021-2022学年浙江绍兴诸暨市五年级上册语文期末试卷及答案.pdf
文档评论(0)