嵌入式linux系统实时性设计new

嵌入式linux系统实时性设计new

ID:34652793

大小:195.98 KB

页数:3页

时间:2019-03-08

嵌入式linux系统实时性设计new_第1页
嵌入式linux系统实时性设计new_第2页
嵌入式linux系统实时性设计new_第3页
资源描述:

《嵌入式linux系统实时性设计new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、万方数据第9卷第9期软件导刊V01.9No.9墅堕!星曼呈丝堡墅丝塑;三!!竺嵌入式Linux系统实时性设计马爱永,王平,董秀英(西华大学电气信息学院,四川成都610039)摘要:Linux目前已成为一个流行的嵌入式操作系统,然而其在实时性应用方面有些不足。在分析了Linux实时性的基础上,从中断调用、定时器的实时性设计、可抢占内核和多任务实时性调度策略等4个方面描述了系统改进的设计方法。以满足系统的系统要求的实时性。关键词."Linux操作系统;嵌入式系统;实时系统;进程调度中图分类号:哪16.86文献标

2、识码:A文章编号:1672—7800(2010)09—0016--020引言目前Linux以其开源优势在应用领域得到迅速成长并且逐渐流行.然而Lint=内核并不是真正意义上的实时操作系统。尽管有部分满足实时任务处理的要求,如:满足某些POSIX标准的实时调用、支持多进程多线程运行、有多种任务间通讯方式。但它并不能满足嵌入式系统的实时特性要求。为此本文从中断实时优化、定时器的设计、可抢占内核和实时调度策略设计等4个方面对Linux的实时性做了改进设计.以增强“n-UX系统的实时性能。1软中断模拟技术响应中断任

3、务的时间是一个实时系统设计时必须考虑的问题.决定任务响应中断的时间主要关系到:分派中断时间、中断服务时间、上下文切换时间、内核抢占时间等。该方案采用的软中断模拟技术可以达到减少中断响应和中断服务时间的目的。其实现机制如下:当中断发生后.系统将CPU控制权返回操作系统,系统仅需保存中断模拟程序所用到的寄存器,并且Linux内核接管之前就截获了中断响应信号,然后采用软中断模拟机制决定是否处理中断或将其挂起。因此,该策略完全略过了查找中断向量表并执行相应的中断服务的程序,IDT、IST被大量地减少,从而缩短了系统

4、的中断响应时间。2时钟实时性改进时钟滴答实时性改进,计算机最基本的时间是时钟周期即时钟滴答。时钟中断的频率大小决定了一个时钟滴答的时间。普通Linux定时器提供的时钟滴答不足以满足强实时任务要求的响应精度。强实时系统的时钟频率设计十分重要,其设计过低调度频率低,从而使对任务的调度反应就会慢;频率过高,系统调度频率加大。从而会增加系统额外开销。一般操作系统的时钟频率对实时进程来说是不够的,必须适当地提供时钟频率.以提高系统的实时响应能力。3可抢占内核Linux系统不是可抢占内核。增强内核抢占性通过降低内核响应

5、时间提高系统对实时任务的响应能力.从而提供系统的实时响应能力,必须设计可抢占式内核。在Linux内核中大量使用了自旋锁spinloek.致使有大量的临界区存在.它们严重影响系统实时性。本文主要采用可抢占锁和互斥锁的技术实现可抢占内核。使用互斥锁mutex()来替换自旋锁spinlock的目的是为了让spinlock可抢占,以提高实时性能。为满足复杂实时内核的要求。该设计方案提出了内核的抢占式设计。3.1抢占锁的设计为了实现抢占锁在Linux进程结构中增加一个计数器。当某进程访问临界代码段时抢占锁的计数器加1

6、,当其释放时该计数器减l;如果某进程的计数器值为0,则该进程在内核态下可以被其它进程抢占。己经拥有抢占锁的进程仍然可以继续获得抢占锁,进程间允许嵌套访问临界段。Linux头文件目录中定义了抢占计数器和清除该计数器的宏,在访问临界代码段时使用。在Linux原来的内核中,当需访问受自旋锁保护的临界段时:在进入临界段前需使用该锁加锁于临界段:当离开临界段时使用释放该锁。在抢占式内核的设计中依然保持了系统中原作者简介:马爱永(1984--),男,河北保定人,西华大学电气信息学院硕士研究生,研究方向为嵌入式技术及应用

7、;王平(1970一),男,四川成都人,西华大学电气信息学院教授,研究方向为多源信息融合;董秀美(1984-),女,四川成都人,西华大学电气信息学院硕士研究生,研究方向为嵌入式系统。’万方数据第9期马爱永,王平,董秀英:嵌入式“nux系统实时性设计·17·来的锁,禁止抢占自旋锁.这样就由抢占锁代替了自旋锁对l临界段提供保护。3.2互斥锁的设计为了减少某进程的抢占锁可能长时间锁定临界段而带来的较长延迟.需采用互斥锁来保护占用CPU时间较长的互斥锁,因此需采用Linux内核中的二元信号量。该信号量通过两个原子操作

8、即:P操作和V操作两个不能中断的操作。在进程进入l临界段前需执行P操作,在离开临界段前执行V操作。P操作使信号量减少,并且当信号量的新值为0时阻塞该进程运行;V操作增加信号量,当信号量的新值小于等于0时。如果存在阻塞于该信号量的进程则将阻塞进程唤醒。在Linux内核信号量源码中,P操作V操作相对应的内核函数分别是down和up。可直接利用Linux的信号量原语down、up来实现互斥锁的访问。4实时调度策略Lin

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。