欢迎来到天天文库
浏览记录
ID:51418031
大小:63.00 KB
页数:5页
时间:2020-03-24
《改善Linux核心可抢占性方法的研究与实现.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、改善Linux核心可抢占性方法的研究与实现[摘要iLinux的出现,更激发了人们对计算机科学技术探索研究的热情。Linux通过它独有的特点,慢慢的进入了嵌入式Linux研究的时代但在系统的实时性能方血,Linux表现出很多不足的地方,这直接影响了Linux在嵌入式系统方面的研究。而影响Linux实时性的原因主要就是由于Linux内核具有的不可抢占性。因此,我们还要通过计算机的相关科学技术改善Linux的实时性能,这不仅为Linux的发展提供广阔的前景,对嵌入式应用程序的研究也有重耍意义。[关键词ILinux内核
2、;可抢占性;实时性能[中图分类号JF224-39[文献标识码]A[文章编号]1672-5158(2013)06-0034-01在对Linux系统的应用逐渐普及的今天,大家仍然在不断寻找改进Linux实时性能的方法,使Linmx充分利用它的优势在嵌入式系统的开发中发挥它的潜力。随着Linux不断被引入实时领域,很大程度上吸引了计算机技术研发人员的眼球。而在Linux的设计中,它的内核是不可抢占的,虽然这对Linux的核心数据比较容易维护并且拥有良好的稳定性,但也影响了Linux的实时性能。因此,耍想改善Linux
3、的实时性,就耍先改善Linux内核的可抢占性。—、关于Linux实时性的研究分析在Linux刚刚出现的时候,是被作为分时操作系统而设计实现的,所以Linux并不适应实时操作系统的要求。主要表现在这样几点上:第一,Linux系统的内核设计为不可抢占。所谓不可抢占就是核心作业具有任务的最高级,只有当它完成后,系统才会调度其它进程。因此在进程请求系统调用的过程中,可能会造成进程阻塞,无法有效的调用实时进程。第二,Linux设计中具有很多缓冲机制,这让一些实时任务不能被及时执行,影响了系统实时的效率。第三,Linmx的
4、同步策略也是导致进程阻塞的一个重要原因,它使实时进程无法使用系统的临界资源。因此,Linmx并不符合实时系统的要求。第四,在中断处理机制中,实时任务往往不能得到及时的处理,从而没有办法保证系统的确定性以及可预测性。二、实现Linux内核的实时支持的方法——可抢占式内核为了实现Linux内核的实时性,就要将Linux内核设计为可抢占性,这样能够使系统充分响应实时进程的请求,使实时进程得到及时的处理。所谓抢占就是指正在执行的实时任务,随时都有可能被屮断,并通过系统的进程调度策略,执行其它优先级高的任务。可抢占式的内
5、核设计,保证了系统正确的实现实时调度算法。Linux内核的可抢占性,并不代表实时任务在任何情况下都可以被优先调度。例如,当任务正在利用系统的调用来访问系统中的共享数据时,就不能被其它可能使用这个数据的任务所抢占。在实现内核可抢占的方法屮,必须对内核的临界段加以保护,来防止进程的重大问题。那么我们可以通过这样几种方法来实现Linmx抢占式内核。(1)设置抢占点,确保内核在这样安全和固定的点上实现抢占。在改善Linux内核的非抢占内核时,最简单的方法之一就是在一定的时间间隔处设置抢占点,并对在抢占点执行的过程进行检
6、查。对于抢占点的设置需要要注意的是:抢占点必须在稳定的内核数据结构中设置,而且内核将要开始一个长时间并且大量的运算。(2)实现完全抢占,使内核在任何时间里都能够被其它进程抢占。虽然我们刚刚描述过有一种情况内核是不允许被抢占的,但我们还是可以通过操作系统所提供的互斥机制来实现内核的完全抢占。其一,不在临界段的执行中设置中断;其二,通过信号量,在获得锁后再进入临界段,当离开临界段的时候再释放锁。其三,在内核的临界段设置抢占锁。三、改善Linux核心可抢占性的方法研究在改善Linmx核心可抢占性方面的研究,要从两个方
7、向着手:一方面是中断管理的改进,另一方面是互斥锁的改进。它们之间不仅有着密切的联系,而且还相互影响。(-)对中断管理进程化的研究在系统设计中,实现中断管理的高效和可靠是设计的关键。如果在中断管理的设计上存在缺陷,不仅会造成进程不必要的等待,还会让系统的整个任务都出现处理延滞,降低了系统的效率。Linux系统设计中采用了宏内核,所以Linux操作系统表现岀易于实现的优势,这在冃前仍然是计算机科学技术研究的一个重要方向。但宏内核也有不足的地方,缺少了对系统分层的概念,不容易约束用户程序编写,从而导致一些不合理的中断
8、等待的现象。因此,要改善Linux的中断处理。Linux通过kernelthTead函数来创建系统的核心进程,利用核心进程里所具有的task_Mstruct描述以及核心堆栈,通过它们的共同参与来对系统的进程进行调度,使其具有更高的执行效率。(二)对互斥锁的研究Linux屮的互斥锁是采用硬件锁方式实现的,互斥锁利用了存在于Linux核心的二元信号量(关于Linux核心的二元信号量的定义,
此文档下载收益归作者所有