Linux内存管理和进程调度的实时化研究与改进

来源 :成都信息工程学院 成都信息工程大学 | 被引量 : 0次 | 上传用户:hebeihuazi
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着计算机,网络和通信技术地发展,实时系统越来越多得被应用于工业控制、网络通信、实时监控,多媒体等领域。这些新的实时网络应用的出现给实时系统地发展提出了新的要求和挑战。同时,随着开源项目的兴起,作为典型代表的Linux得到了迅速普及和发展,已成长为稳定的、性能优秀的操作系统。但是Linux本身是一个只是一个类UNIX的通用的操作系统,其在实时性能方面有着比较大的缺陷。然而基于Linux本身的特点,将其改造成为一个合适的实时系统是完全可行的。 论文在深入分析和研究Linux2.4版本内核源代码的基础上,结合实时操作系统的原理.选择了对Linux在内存管理和进程调度这两方面进行研究和实时化改进,取得了显著的效果。 首先通过对内核代码的分析,了解到Linux的内存管理是采用了虚拟内存管理的方式,使得系统中的每个进程可以使用比实际内存多很多的虚拟内存,提高了系统内存的使用效率。但正是由于虚拟内存的存在,使得进程每次获得的内存都是先分配虚拟内存,在分配物理内存。系统对物理内存的分配总是会放在最后一步,即在相关指令执行的时候才进行,而且也仅将进程所需要的部分内存分配给进程。当进程所需要的页面不在内存时,系统会发生缺页中断,将进程所需的页面调入内存,而这个中断时间是不确定的,那么就必然不能满足实时进程的需求,又考虑到虚拟内存的强大功能,在不删除虚拟内存结构的情况下,针对实时进程采用一次将实时进程所需的内存全部分配的方法来完成在内存管理这块的改进。同时在研究分析的过程中,发现系统中的空闲内存总量需要放在一个较高的量上才有可能使系统中有足够的内存可以满足一般实时进程对内存的需求,那么有必要提高系统中空闲内存的数量,从而加快实时进程的响应时间。 由于Linux的进程调度是采用的不可抢占式的内核调度。其进程调度发生在每次中断发生的时刻,因此要提高Linux在调度方面的实时性,改变时钟中断的粒度是首要工作。适当提高系统的时间粒度,可以有效地提高系统的实时性。但如果将时间粒度提到无限高,则系统会频繁发生时钟中断,从而严重影响系统性能。其次在进程刚生成时,Linux让子进程和父进程保持同样的优先级别,不利于系统对实时进程的响应,因此必须要修改进程的优先级,并将实时进程挂在符合其优先级别的可运行队列中去。 论文中详细阐述了针对Linux操作系统进行的实时化改进方案和具体实施过程,最后对改进后的系统进行了测试,达到了预期的,平均响应时间只有改进前的40%,系统性能有了大幅度地提高。
其他文献
主要组织相容性复合物(Major Histocompatibility Complex,MHC)主要参与抗原的呈递,MHC分子与抗原短肽的结合是免疫系统产生免疫反应中必不可少的一个环节。因此MHC分子亲和肽
本文在简要介绍了XML应用接口之后,讨论了在进行数据交换的过程中可能遇到的一些问题并给出了解决办法。接着,介绍了整个数据交换平台的设计方案,相关XML文档的设计,以及客服数据
线特征是图像的显著特征,线检测广泛地应用在图像处理领域,占据着重要的地位,有关线检测的研究已有很多,但是他们大多关注线位置而忽略了线宽,对线宽检测的研究很少,而线宽检测也很
信号处理器作为硬件加速信号处理算法的重要实现,得到越来越广泛的应用。性能的保证需要从指令集定义,结构划分开始,贯穿于整个处理器的前端设计过程,如何在这一个过程中逐步优化
新一代移动通讯技术侧重于提高网络带宽和发掘网络性能,以应对急剧增长的数据流和业务流的需求。同时,也注重对新增的电信服务类型的研究,以满足日益增长的移动通信需求。然
多媒体同步是多媒体应用的一个关键技术,近年来受到广泛的关注。本文主要探讨课件编辑系统中的同步问题。首先对多媒体同步技术进行介绍,在此基础上引出网络环境下多媒体系统
为响应国家建设“海洋强国”战略,发挥科技对海事发展的支撑和引领作用,本文提出了一个海事领域Web信息获取和分析框架MARISA(MaritimeInformation Sourcing and Analytics Fra
本文对基于SIP协议的IP电话服务器的设计与实现进行了研究。文章在深入分析研究SIP协议的基础上,提出了一种以功能插件的形式实现IP电话服务器系统的方法,并予以实现。采用本方
语音识别技术是信息技术领域的重要发展方向之一,小词汇量非特定人孤立词语音识别是语音识别领域中一个具有广泛应用背景的分支,在家电遥控、智能玩具、人机交互等领域有着重要
随着信息技术的发展,当前基于构件的软件开发正在被越来越广泛的应用。构件技术是面向对象技术的进一步发展,它适应了软件的大规模、短周期的开发需要,使人们能够在不同语言