




已阅读5页,还剩59页未读, 继续免费阅读
(电气工程专业论文)基于linux和rtai的实时测控系统应用研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
重庆大学硕士学位论文英文摘要 a b s t r a c t i ti se v i d e n tt h a tt h er e a l - t i m ep e r f o r m a n c eo ft h es y s t e mi sv e r yi m p o r t a n ti nt h e f i e l do fr e a l - t i m em e a s u r e m e n ta n dc o n t r o ls y s t e m b o t hp e r i o d i ct a s k ss u c ha s i n f o r m a t i o na c q u i s i t i o n , c o n t r o l ,d a t ac o m m u n i c a t i o na n da p e r i o d i ct a s k ss u c ha sa r i s i n g f r o ma r b i t r a r yc r i t i c a le v e n t sm u s tb ec o m p l e t e dw i t h i nt h e i rd e a d l i n e s r t o sa tt h ec o l eo f t h er e a l - t i m es y s t e m , w l a i e hi st h ee o r l l a s t o n eo f a l lf u n c t i o n s c a nb ea c h i e v e da l t h o u g ht o d a y sm a _ _ _ i n s t r e a mr t o sh a v eg o o dp e r f o r m a n c e 。t h e ya v e r ye x p e n s i v ea n dk e e ps e c r e tt h e i rs o u i c ec o d e sf r o mp u b l i c ,w h i e l ac a u s e 8m a n y i n c o n v e n i e n c e st ot h ed e v e l o p m e n t t h ee m e r g e n c eo fl i n u xg i v e su sac h a n c et o c h a n g et h i ss i t u a t i o n h o w e v e r , l i n u xi so r i g i n a n yd e s i g n e da sad i v i d e d - t i m eo si n g e n e r a lu s ea n dt h ei n h e r e n tc h a r a c t e r i s t i c so fi tm a k ei ti sn o ts u i t a b l ef o rd i r e c t1 1 s ei n r e a l - t i m es y s t e m s 。s om a n ys e h c m sh a v eb e e nd e s i g n e dt on 妇i tab a r e dr e a l t i m eo s 。 a n d r t a ii sat y p i c a lr e p 删i v e b u tm o s to ft h ee u l t c n tr c s e a r e l ao nr t a il i m i t e d t ot h e o r e t i c a ls t u d i e sa n d p r a c t i c a lr e a l - t i m es y s t e mb a s e d0 1 1i ti sv e r yr a r e t h i st h e s i s e x p a n d sm yr e s e a r c h , a n dar e a l - t i m em e a s u r e m e n ta n d c o n t r o ls y s t e mb a s e do nl i n u x a n dr t a ii si m p l e m e n t e d a t t e rt h et l a r o l l g l aa n a l y s i so ft h es c h e m eo fr t a i 。ai l e 、 , p r o g r a ma i m e da ti m p r o v i n gt h ea c c u r a c yo f r e s p o n s et i m eo f l i n u xi sp r o p o s e d t h em e t h o d st oi m p r o v et h er e a l - t i m el , e r :f o r m a n e eo fl i n u x 眦i n t r o d u c e df i r s t t h es c h e d u l i n gs y s t e m 、i n t e r r u p ts y s t e ma n dc l o c ks y s t e m 辨a n a l y s e d 强e i m p r o v e m e n ta n dd e f i c i e n c yo fl i n u x 2 6a r es t u d i e da n dt h em a i nf a c t o r sa f f e c t i n gt h e r e a l - t i m ep e r f o r m a n c eo fl i n u xw e r ep o i n t e do u t a f t e rt h ea n a l y s i so ft h ep r i n c i p l eo f i 王t a i , w h i c hi sah a r dr e a l - t i m el i n u xm o s ts u i t a b l ef o ri n d u s t r i a lm e a s u r e m e n ta n d c o n t r o ls y s t e m ,t h ed e f e c t si nt h eo r g a n i z a t i o no ft a s k so fr t a ii sp o i n t e do u ta n dt h e w a y t o i m p r o v e i t i s d i s c u s s e d t o o a f t e r a l l o f t h e w o r k a b o v e , a r e a l - t i m e m c a s 蝴e n t a n dc o n t r o ls y s t e mi sd e v e l o p e db a s e do i lr t a ia n dl i n u x a n dt w os e tc o n t r o la n d d i s p l a ys y s t 髓- a 8a 托d e s i g n e di nk e r n e ls p a c em o d u l ea n d u s e rs p a c ei n d e p e n d e n t l y i n t h ei m p l e m e n t a t i o no f k e r n e lm o d e , c o n l r o lt a s k sa 坤i m p l e m e n t e dw i t hk e r n e lm o d u l e s s u p p l i e db yr t a ia n dd i s p l a yt a s k s 龇c o m p l e t e dw i t hs v g a i i bl x r t , t h ee x t e n s i o n o fr t a i a n dq ta 旭a p p l i e dt ob u i l dt h ec o n t r o lt a s k sa n dd i s p l a yt a s k si no r d e rt o a c c o m p l i s ht h es y s t e mi nu s e fm o d e f i n a l l y , a f t e rt h et h o r o u g hs t u d yt h ep r i n c i p l e so f a d e o s ,b a s e d 0 1 3 w h i e l ar t a ii s i m p l e m e n t e d , a m e t h o di sp u tf o r w a r di no r d e rt oi m p r o v et h ea c c u r a c yo f r e s p o n s et i m e n 重庆大学硕士学位论文 英文摘要 o f l i n u x t h i sm e t h o dc r e a t e sar e a l - t i m ed o m a i nw i t hah i g h e rp r i o r i t yt h a nl i n u xf i r s t a n dt h e nar e a l - t i m ed y n a m i ct i m e rs y s t e mi si m p l e m e n t e dw h i c ha d o p tas h o tc l o c k m o d e , a n do ft h er e s p o n s et i m eo fl i n u xi sg r e a t l ye n h a n c e dw i t h o u ts i g n i f i c a n t i n c r e a s i n gs y s t e ml o a d k e y w o r d s :r e a l - t i m e , l i n u x , r t a i ,r e a l - t h n em e a s u r e m e n ta n dc o n t r o ls y s t e m , a d e o s m 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取 得的研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文 中不包含其他人已经发表或撰写过的研究成果,也不包含为获得重废盔堂 或其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本 研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。 学位论文作者签名:晏靶甚 签字日期:为盯年x - , g 心日 学位论文版权使用授权书 本学位论文作者完全了解重鏖太堂有关保留、使用学位论文的 规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允许 论文被查阅和借阅。本人授权重庆太堂可以将学位论文的全部或部 分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段 保存、汇编学位论文。 保密() ,在年解密后适用本授权书。 本学位论文属于 不保密( ) 。 ( 请只在上述一个括号内打“”) 学位论文作者签名:晏柬武 导师签名:废渐 签字日期:知刃年,月万日 签字日期:m 呷年厂月2 ,e 1 重庆大学硕士学位论文1 绪论 1 绪论 1 1 概述 实时系统( r e a lt u n es y s t e m ) 是一类多道程序系统,它主要应用于需要对外 部事件进行及时响应、处理的领域。它在工厂生产过程控制、办公自动化、通信、 航空航天、武器制导、民用消费等领域得到了广泛的应用,并且发挥着举足轻重 的作用。实时含有立即、及时的意思,所以,对时间的响应是实时系统最关键的 因素。所谓实时还要求系统对输入的及时响应,对输出的按需提供、无延迟的处 理换句话说,计算机能及时响应外部事件的请求,在规定的时间内完成事件的 处理,并能控制所有实时设备和实时任务的协调运行。 对一个实时系统来说,最基本、最重要的就是实时操作系统,它是整个系统 的基础嘲。实时操作系统( r t o s ) 是具有实时性且能支持实时控制系统工作的操 作系统。它是相对于分时操作系统的一个概念,在一个分时操作系统中,计算机 系统的资源被平均地分配给系统内所有的工作。然而在一个实时操作系统之中, 系统内有多少工作并不是那么重要,我们关心的是一个工作在多少时间内可以被 完成。和分时操作系统最大的不同之处在于“时限( d e a d l i n e ) ”这个概念,实时操 作系统通常会要求每一个工作在交付给系统的时候同时也给定一个时限,即实时 操作系统的任务不只是要求完成每一个工作,而且要按给定的时限完成每一个工 作。实时操作系统的首要任务是调度一切可利用的资源完成实时控制任务,其次 才着眼于提高计算机系统的使用效率,其重要特点是要通过任务调度来满足对于 重要事件在严格的规定时间内做出正确的响应。 现在我国广泛使用的主流实时操作系统有,v x w o r k s 、p s o s 、v r t x 、w i n c e 等,它们虽然拥有非常优秀的实时性能和人性化的开发调试环境,但个个都价格 昂贵,并且源码都不公开,一切开发都要依赖操作系统提供商提供的支持,用户 无法根据自己的方便的进行有针对性的开发。l i n u x 的出现给我们带来了新的契 机,自从问世以来越来越多的人开始使用和研究l i n u x 。由于l i n u x 的开源性,用 户可以按照自己的方式定铝4 和修改内核以满足不同的应用需求。于是把l i n u x 引入 实时系统,开展如何基于l i n u x 来构建实时测控系统的研究就显得十分必要和迫 切。国际上,目前已经出现了很多基于l i n u x 的实时系统,如r t l i n u x 、r t a i 、 k u r t 、r e d l i n u x 、l i m m r k 、q l i n u x 、m o n t av i s t al i m m 、s i l k 等,这些系统中 的大多数已经非常成熟,有些已经应用在军事和航天等重要领域,取得了成功。 其中以r t l i n u x 和r t a i 最为典型,尤其是r t a i 凭借其先进底层实现思想、彻底 的开放性,已成为开源界的一个热点 重庆大学硕士学位论文 l 绪论 1 2 国内外研究现状 对l i n u x 进行实时化改造是目前实时操作系统研究的热点,上面列举的只是具 有代表性的几种,但综观全局目前研究主要体现在下面几个方面; 调度的改进 任务响应时间的长短与进程调度戚戚相关,为了缩短对外界实时请求的反应 时间就必须尽可能早地调度,只有进行了调度实时进程才有可能得到运行。调度 程序所采用的算法和策略直接影响到内核对进程的响应时间。比如k u r t - l i n u x 将 系统分为三种状态:正常态、实时态和混合态。在正常态时它采用普通的l i n u x 的 调度策略,在实时态只运行实时任务,在混合态实时和非实时任务都可以执行; 实时态可以用于对于实时性要求比较严格的情况。对于实时任务的调度, k u r t - l i n u x 采用基于时间( t d ) 的静态的实时c p u 调度算法。r t - l i n u x 在这方 面采用了灵活的做法。使用者可以根据具体情况编制自己的调度模块,然后很容 易将编好的模块加入到系统中。这样,使用者可以根据自己的不同需求,采用适 宜的调度算法。文献【1 】提出了一种增强l i n u x 内核调度性能的实时任务调度策略 和调度算法。结合任务的关键性、截止期和执行时间三要素,该调度策略通过三 运行队列代替原l i n u x 内核的单运行队列,分别对应系统的硬实时、软实时和非实 时任务,保证了硬实时任务的实时性;不同于简单的f i f o 调度算法,该调度算法 根据任务的最小松弛时间和重要性来确定其在当前运行队列中的优先级。 时钟的改进 计算机是以严格精确的时间进行数值运算和数据处理的,最基本的时间单元 是时钟周期。系统时间是以“时钟嘀哒”为单位,而时钟中断的频率决定了一个 时钟嘀哒的长短。时钟频率的选择对实时操作系统来讲十分重要。频率低了,对 请求的反应就慢;频率高了,调度频繁,上下文切换也频繁,系统开销大。所以 时钟频率的选择要兼顾反应时间和系统开销。l i n u x 的时钟频率对实时进程是不够 的,因此一些研究者对l i n u x 的时钟系统进行了改造。常见的改进时钟的方法有 细化时钟粒度和修改时钟中断程序。我国中科院软件研究所在l i n u x 基础上开发 的r f r t o s ,其方法是在l i n u x 中实现了一个具有精密时钟刻度的实时核心时 钟。其独立的实时时钟方便维护,具有实用性,r f r t o s 的定时器时间开销控制 在1 0 u s 左右【2 l 。k u r t 提出不同于硬实时和软实时的严格实时( f i r mr e a i t i m e ) 概 念,采用的方法是修改l i n u x 的时钟中断机制,采用非周期的时钟中断方式,改 变了时钟中断的固定频率的模式,通过编程实现重新设定时钟中断时间,提高了 时钟粒度,使响应时间达到了璐级。国内不少基于l i n u x 开发嵌入式实时操作 系统几乎无一例外的对时钟系统进行了修改,而且大多数修改方法和k u r t 的类 2 重庆大学硕士学位论文1 绪论 似,即采用非周期性的时钟中断 增加内核抢占点 调度潜伏期对任务响应时间的影响非常大,在任务响应时间中占了很大一部 分,所以,l i n u x 实时性优化的个重要目标就是缩短调度潜伏期的时问。那么, 影响l i n u x 调度潜伏期的因素有哪些昵? 调度潜伏期的长短与l i n u x 在内核态的一 次运行时间长短有关( 从进入内核态执行系统服务到退出内核态的时问段) ,为了 减少调度潜伏期的时间,就必须减少l i n u x 连续运行在内核态的时间;最直观的方 法就是在执行时间长的内核代码中增加抢占点( 也就是增加部分代码主动请求进 行调度) ,将执行时间长的内核代码划分成若干段执行时间段的代码,在各个代码 段之问可以进行进程调度,从而达到缩短调度潜伏期的目的。已经有资料显示, 增加内核抢占点是最有效的缩短调度潜伏期的方法:但是,尽管这种方法的原理 很简单,实现起来却是相当的繁琐和费时。一方面,要找出内核中哪些部分的执 行时间较长本身就不是一件容易的事,而且同样的代码在不同的系统状态下执行 时间的长短也不一样,这就需要进行动态的分析找出内核中耗时的代码段;另一 方面,随着内核的不断发展,这种方法在不同版本内核之间的移植性也比较差, 而且还要对新增加的内核代码进行分析。 软件中断模拟 软件中断模式技术中所指的软件中断,是对于l i n u x 来说的,也就是说,l i n u x 并不直接控制硬件中断,当l i n u x 需要关中断时,它实际上的操作只是将一个软件 标识置位,表示从此时开始l i n u x 的执行不想受到中断的干扰,当l i n u x 开中断的 时候,实际上的操作是将这个软件标识清除。而实际硬件中断由处于硬件和l i n t m 之闻的一个软件层来管理,这个软件层的主要任务就是接收硬件中断,并根据需 要调度l i n u x 的中断服务程序。这样实耐进程的中断就不会屏蔽,从而增强实时进 程的调度时机。有关软中断模拟的知识对本论文非常重要,后面结合着a d e o s 的实现原理将对其作比较详细的介绍。 双内核机制 前述的几种l i n u x 内核的实时优化机制虽然可以明显的提高任务的响应速度, 增强l i n u x 的实时性,但都无法满足硬实时的要求。由于l i n u x 内核本身的实现方 式和复杂度,使得l i n u x 本身始终不能适用于硬实时应用:但随着l i n u x 的应用越 来越广泛,对l i n u x 满足硬实时应用的要求越来越强烈;在这种环境下,实时双内 核机制开创了l i n u x 支持硬实时应用的先河。在这种技术下,存在一个支持硬实时 的微内核,它与l i n u x 内核共同运行于硬件平台上,实时内核的优先级高于l i n u x 内核,它负责处理系统的实时任务,而l i n u x 则负责处理非实时任务,只有当实时 内核不再有实时任务需要处理的时候,l i n u x 内核才能得到运行的机会。实时双内 3 重庆大学硕士学位论文1 绪论 核机制把一个系统看作由两部分组成:实时部分和非实时部分,实时部分由实时 微内核处理,非实时部分由l i n u x 处理,它们之间可以通过管道或共享内存的方式 进行通信。这种机制虽然在建立实时任务的时候有一套不同于l i n u x 本身的编程接 口,但由于它可以与l i n u x 进行通信,从而可以将后续的大量处理工作交给l i n u x 来完成。这样,既保证了实时任务的硬实时要求,也保留了l i n u x 本身的应用编程 环境,可以充分地利用l i m l x 下丰富的资源。 1 3 本文主要研究内容与论文组织 本论文主要围绕对工业控制计算机实验室的软件系统升级而展开。本实验室 已经开发了一套基于d o s 的i p c 实时测控系统,测控对象是从现实工程中抽象出 来的,其中主要包括小型电站中电气信号的采集、直流电动机和步进电动机的控 制、采集到的数据在电气主接线图上显示以及定时制表等任务。电力系统中对开 关量信号采集信号的实时精度要求为2 4 毫秒,虽然以前的系统已经达到了精度要 求,但由于d o s 是单任务的,这样构建在它之上的软件结构不能清晰的分层,复 用性差。比如对于一个简单的界面程序,它的界面显示代码和和对应的实现控制 功能的代码是混合在一起的,当需要添加新的功能或要对某一部分修改时需要改 动的代码量非常大,有时甚至要重新构建系统。l i n u x 作为一个现代操作系统功能 则要强大的多,它具有极强的稳定性、广泛的网络协议支持以及对p o s 标准的 较好支持等优点,故本课题选择l i n u x 来升级这套实时测控系统。 本论文研究的内容主要包括以下几部分: 作为研究的基础,分析了l i n u x 内核的调度系统、中断系统、时钟系统等 核心部分,研究了l i n u x 2 6 实时性能方面的改进和不足,指出了影响l i n u x 实时 性的主要因素。 深入剖析了r t a i 的实现原理和底层实现机制,指出了r t a i 的实时任务组 织的缺陷并指出改进的方法。 成功地利用l i n u x 和r t a i 构建一个实时测控系统,并且根据需要分别在 内核态和用户态实现了两套控制、显示任务。内核态的实现方式中,控制任务利 用r t a i 所提供的内核模块实现,显示任务利用s v g a i i b 库完成;用户态实现方 式下的控制任务由r t a i 的扩展模块l x r t 实现,显示任务用q t 实现。 深入分析了a d e o s 的原理,利用它所提供的功能实现了一套实时时钟系 统,该时钟系统采用了o n e s h o t 模式,在没有增加多少系统负担的情况下大大提 高了l i n u x 响应时问的精确性。 论文的组织结构为: 第一章介绍了国内外对l i n u x 进行实时化改造的现状。 4 重庆大学硕士学位论文1 绪论 第二章介绍了实时操作系统的概念、基本特征和分类,探讨了实时操作系统 的关键技术;分析了l i n u x 2 6 的实时性,指出了l i n u x 2 6 用在实时系统中的不足。 第三章分析了l i n u x 的一种实时化方案一一r 1 m 的实现原理,指出其在任务 组织方式上的缺陷,并提出改进方法。 第四章详述构建基于l i n u x 和r t a i 的实时测控系统的过程 第五章提出了一个提高l i n u x 时间响应精度的方法,并对该方法进行实时性能 测试。 第六章对全文进行总结,并指出需要进一步完善的地方 5 重庆大学硕士学位论文2 实时系统及l i n u x 的实时性分析 2 实时系统及l i n u x 的实时性分析 2 1 实时操作系统 2 1 1 实时操作系统的定义 实时系统在各个领域得到了越来越多的广泛应用。实时系统的例子包括实验 控制、过程控制设备、机器人、空中交通管制、远程通信、军事指挥与控制系统, 下一代系统还将包括自动驾驶汽车、具有弹性关节的机器入控制器、智能化生产 中的系统控制、空间站和海底勘探等。这些都需要能够支撑实时计算的操作系统 平台,实时操作系统应允而生。操作系统是实时系统中最重要的组件。 实时系统是这样定义的:“一个能够在事先指定确定的时间内完成系统功能和 对外部或内部、同步或异步事件做出响应的系统”。在实时系统中,计算任务的正 确性不仅仅依赖于计算结果逻辑上的正确性,而且还依赖于计算结果产生的时间 所以实时系统是与时间约束紧密相关的,这里的“时间约束”是指:计算任务的 开始执行时间、完成时间、截止期等。 2 1 2 实时操作系统的基本特征 根据i e e e 实时u n i x 分委会对操作系统的定义,实时操作系统的基本特征应 表现在以下几个方面: 实时性 对外部事件作出反应的时间必须在限定时间内,在某些情况下还需要是确定 的,可重复实现的,不管当时系统内部状态如何,都是可预测的。 异步并发事件响应能力 异步事件是指无一定时序关系随机发生的事件。如外部设备完成数据传输, 实时控制设备出现异常情况等。实际环境中,嵌入式实时系统处理的外部事件往 往不是单一的,这些事件往往同对出现,而且发生的时刻也是随机的,郎异步的。 实时软件应有能力对这类外部事件组有效地迸行处理。 抢占式调度 为确保响应时间,实时操作系统必须允许高优先级的任务一旦准备好,马上 抢占低优先级任务的执行 内存锁定 必须具有将程序或部分程序锁定在内存的能力锁定在内存的程序减少了为 获取该程序而访问磁盘的时间,从而保证了快速的响应时间。 快速启动、出错处理和自动复位功能 这一以要求对机动性强、环境复杂的智能系统显得特别重要。快速机动的环 6 重庆大学硕士学位论文 2 实时系统及l i n u x 的实时性分析 境不允许控制软件临时从盘上装入。因此,嵌入式实时软件需要事先固化到只读 存储器,开机时即自动启动,并在运行时出错死机时能自动恢复先前运行状态。 因此,嵌入式实时软件应采用特殊的容错和出错处理措施。 优先级中断和调度机制 必须允许用户定义中断优先级和被调度任务的优先级并指定如何中断。 连续文件存储机制 通常要求数据存储在连续文件上,以减少存取数据时的查找时间。 同步互斥机制 提供同步和互斥共享数据使用和执行的手段。 2 1 3 实时操作系统的分类 由于实时操作系统在设计时与应用具有密切的关系,所以有许多分类方法, 但比较常见的是按照对外部响应的确定性来分,按照这种方法可将实时系统分为 软实时和硬实时系统。 软实时系统。系统对系统响应时间有要求,但是如果系统响应时间不能满 足,不会导致出现致命的错误或崩溃。对于软实时系统来说,未能实时完成处理 仅是带来了额外的代价,且通常这种代价能被受。 硬实时系统。系统对响应时间有严格的要求,如果系统响应时间不能满足, 就要引起崩溃或出现致命的错误。任务要求十分严格的应用项目必须是确定型的。 例如,汽车保险气袋控制器、反锁刹车,甚至放在走廊的游戏机等都必须在既定 时间内要有反应。 2 1 4 实时操作系统的关键技术 由于r t o s 在实时应用中的特殊地位,在r t o s 的研究设计中对其性能指标 的要求相对于普通操作系统来说则比较严格,作为操作系统研究的一个重要分支, 它与一般普通多任务操作系统既有相同之处,也有着不同之处。对于普通多任务 操作系统,其目的是方便用户管理计算机资源,追求系统资源最大利用率:而r t o s 追求的是实时性、可确定性和可靠性。 评价一个实时操作系统一般可以从进程管理、任务调度、任务间通信、内存 开销、任务切换时问和最大中断禁止时间等技术指标来衡量其优劣。 任务调度算法 r t o s 的实时性和多任务能力在很大程度上取决于它的任务调度算法。从调度 策略上来将,可分为基于优先级的调度策略和基于时间片轮转的策略;从调度方 式上来讲,可分为可抢占式、不可抢占式和选择可抢占式调度方式。 上下文切换时间 在多任务系统中,上下文切换指的是处理器的控制权由运行任务转移到另外 7 重庆大学硕士学位论文2 实时系统及l i n u x 的实时性分析 一个就绪任务时所发生的事件序列。当运行的任务转为就绪、挂起或删除时,另 外一个被选定的就绪任务就成为当前任务。上下文切换包括保存当前任务的状态, 决定哪个任务运行,恢复将要运行的那个任务的状态。保护和恢复上下文是依赖 于相关处理器的。因此,上下文切换时间是影响r t o s 性能的一个重要指标。 确定性 在实时操作系统中,在一定条件下,系统调用运行的时间是可以预测的。但 这并不意味着所有的系统调用都总是执行一个固定长度的时间,而不管系统的负 载如何,系统调用的最大执行时间可以确定。 最大中断禁止时间 当r t o s 执行某些重要的代码时,它不会因为外部中断的到来而中断当前执 行的。只有当r t o s 返回到非关键区时才响应外部中断请求,这一过程所需要的 最大时间就是最大中断禁止时间。 任务响应时间 任务响应时间指的是事件发生到该事件的服务程序开始执行的这一段时间。 而这一段时润一般来说主要受以下几个因素影响:中断分配时间( i n t e r r u p t d i s p a t c h t l m e ,i d l 3 ,指的是从硬件中断发生到中断服务程序开始执行的这段时间; 中断服务时间( i n t e r r u p ts e r v i c et m a e ,i s t ) ,指的是从中断服务程序开始执行到实 时任务开始就绪这段时间,中断服务程序在这段时间内从硬件设备和系统中获取 相关信息;内核抢占时间( k e r n e lp r e e m p t i o n t i m e ,k p t ) ,指的是从系统内核想 要抢占当前进程到这种抢占实际发生的时间间隔。内核抢占时间又可以分为调度 器时延、调度延迟时间和上下文切换时间三各方面。其中对时延影响最大的是调 度器的时延。 2 2l i n u x 的实时性分析 l i n u x 操作系统是一款优秀的类u n i x 通用操作系统,由于其代码的开放性、 可利用资源的丰富性以及其对网络协议良好支持使其在近年来获得了迅速的发 展,已被移植到几十大类c p u 上。l i n u x 是本文所有工作的基础,所以对其进行 深入分析,找出其在实时系统中应用的优缺点就显得十分必要。 2 2 1 进程调度的目标 对一个操作系统来说最重要、最核心的莫过于它的进程调度了。进程调度的 主要目的是合理地分配处理器资源,具体来说,调度就是从当前就绪的任务中选 择一个投入运行。操作系统中实现该功能的部分称作调度器,调度器使用的算法 就称为调度算法。 调度是实现多任务并发的必要手段,不同类型的操作系统有着不同的调度目 重庆大学硕士学位论文2 实时系统及l i n u x 的实时性分析 标。在传统的u n i x 类分时系统中,保证多个进程公平地使用系统资源,提供较好 的响应时间是调度的主要目标不同的需要将产生不同的调度目标,一个好的调 度算法将实现多个目标间的平衡。常见的调度日标有以下几种: 公平:确保每个进程获得合理的c p u 份额。 效率:使c p u 总是处在有效的忙碌中 响应时间:使交互用户等待时间尽可能短。 周转时间:使用户批处理操作等待输出的时间尽可能短。 时限保证:保证实时任务在其时限到来前执行完成。 优先级:保证高优先级的任务率先得到执行。 系统吞吐量:使系统在单位时间内完成尽可能多的任务。 能耗:以尽可能低的能耗完成尽可能多的任务。 显然,这些目标有些是相互冲突的,比如在考虑优先级的时候,就不可能兼 顾到公平;提高系统的响应时间,就会降低c p u 的效率等等,于是就需要实现两 者问的平衡。例如,在实时系统中,常常采用优先级和时间片轮转相结合的调度 方式,即不同优先级任务之间按较高优先级优先的原则调度,相同优先级之间则 可以按时间片轮转。在实时系统中考虑最多的调度目标是优先级、时限保证同时 尽可能考虑公平和效率。 2 2 2l i n u x 的进程调度m 在l i n u x 中,调度器依据t a s ks t r u c t 中的4 各数据项来进行调度。这4 个项分 别是:p o l i c y 、n i c e 、c o u n t e r 、r t _ p r i o r i t y 。p o l i c y 代表进程的调度策略;n i c e 代表 进程的动态优先级;c o u n t e r 代表进程当前剩余的时间片;r t a r i o r i t y 代表实时进程 的实时优先级。 目前,l i n u x 提供了3 种调度策略,它们是( p o l i c y 数据项所表示) ; s c h e d0 1 砸r :在l i n u x 中这是默认的调度策略。 s c h e df i f o :用于实时进程的先入先出的调度策略。 s c m dr r :用于相同优先级的实时进程的时间片轮转调度策略。 l i n u x 调度程序对于不同类型的进程采取了不同的标准来选择要调度运行的 进程,总的来说可以分为两类: 对于普通进程,即p o l i c y 字段值是s c u d _ o t h e r 的进程,调度的依据 是c o u n t e r 值的大小。进程创建时,优先级p r i o r i t y 被赋一个初值,一般为0 - 7 0 之 间的一个数,这个数同时也是计数器c o u n t e r 的初值,进程创建时两者是相等的。 实际上,它们表达同一个意思一一进程的“时间片”。进程的时间片就是指多少个 时钟滴答,比如,若p r i o r i t y 为2 0 ,则分配给该进程的时间片就为2 0 个时钟滴答。 内核创建新进程时分配给进程的时间片缺省为2 0 0 m s ,用户通过系统调用n i c e 0 和 9 重庆大学硕士学位论文2 实时系统及l i n u x 的实时性分析 s e t p r i o r i t y o 来改变它。p r i o r i t y 代表分配给该进程的时间片,c o u n t e r 表示该进程剩 余的时间片。在进程运行过程中,c o u n t e r 不断减少,而p r i o r i t y 则保持不变,以便 在c o u n t e r 减为0 时对c o u n t e r 重新赋值,这个普通进程才有了再次被调度的机会。 这说明,普通进程运行过程中,c o u n t e r 的减小给了其他进程得以运行的机会,直 至c o u n t e r 减小为0 时才完全放弃对c p u 的使用,这就相当于优先级在动态变化, 所以称之为动态优先级调度。l i n u x 中某个进程的调度策略( p o l i c y ) 、优先级 ( p r i o r i t y ) 等可以作为参数由用户自己决定,具有相当的灵活性。 对于实时进程,l i n u x 采用了两种调度策略,即f i f o ( 先来先服务) 和 r r ( 时间片轮转) 。因为实时进程具有一定的紧迫性,所以衡量一个实时进程是否 应该运行,l i n u x 采用了比较固定的标准。实时进程的c o u n t e r 只是用来表示该进 程剩余的时间片,并不作为衡量它是否值得运行的标准,这和普通进程是有区别 的。用g o o c l n e s s o 函数计算进程的优先级时,实时进程得到的g o o g d n e s s 返回值是 它的c o u n t e r 加上1 0 0 0 的结果,这使得实时进程获得c p u 的机会比普通进程高的 多。对于s c h e df i f o 进程,它会一直运行,直到一个进程阻塞或主动释放c p u , 或是c p u 被另一个优先级更高的实时进程抢占。对f i f o 进程的调度没有时间片 的概念,只有实时进程的优先级起作用,只要没有高于正在运行的进程的优先级 的进程进入运行队列,该实时进程就可以一直运行下去。相同优先级的进程采用 先来先服务的原则。s c h e dr r 实时进程除了时间片有些不同外,这种策略与 s c h e df i f o 类似。当s c h e dr r 进程的时间用完后,就被放到具有相同优先级 的所有实时进程的后面。如果一个正在运行的s c h e dr r 实时进程被更高优先级 的实时进程抢占,当更高优先级的进程运行完后,它在被抢占前剩余的时间片的 基础上继续运行。 上面论述的都是l i n u x 进程调度中最通用的部分,它们在2 4 系列和2 6 系列 版本中都适用。随着2 6 系列版本的发布,l i n u x 在很多方面都有较大改动,其中 有关进程的调度部分变化得最为剧烈 2 2 3l i n u x 2 6 内核中的进程调度分析 2 6 版本的l i n u x 有关进程调度部分最明显的特征就是调度算法采用o ( 1 ) 调度 和内核态的可抢占性,这两点都可以认为是里程碑式的变化。 所谓o ( 1 ) 调度,就是不管有多少进程或其他什么输入,新调度程序采用的每 个算法都能在恒定的时间内完成i s 。 下面分析一下l i n u x 是如何达到0 ( 1 ) 调度的 调度程序最基本的数据结构是运行队列( r u n q u e u e ) 。可执行队列定义于 k e m e f s c h e d c 中。由结构r u n q u e u e 表示。可执行队列是给定处理器上的可执行进 程的链表。此外,可执行队列中还包含每个处理器的调度信息。所以,可执行队 重庆大学硕士学位论文2 实时系统及l i n u x 的实时性分析 列也是每个处理器上最重要的数据结构。为什么选择在k e m e l s c h e d c 中而不是在 i n e l u d c l i n u x s c h e d h 中定义运行队列,是因为设计者希望只给内核其他部分提供一 个抽象接口,而把调度程序的具体实现代码隐藏起来。 看一下这个结构体( 省略了有关多处里器和非重要部分) : s t r u c tr u n q u e u e 删o c k tl o c k ; ,保护运行队列的自旋锁, u n s i g n e dl o n gn r _ r a n n i n g ; ,可运行任务数目 u n s i g n e dl o n g l o n gn rs w i t c h e s ;,上下文切换次数, u n s i g n e d l o n g n r _ u n i n t e r r u p t i b l e ;,处于不可中断状态的任务数目 u n s i g n e dl o n ge x p i r e d _ t i m e s t a m p ;。队列最后被换除的时间, t a s k _ t 。c i 埘* i d l e ; 产该处理器的当前运行任务和空闲任务。, s t r u t lm ms t r e e t p r c v _ m m ;,4 最后运行那个任务的m m _ s t n m t 结构体+ , p r i o _ a r r a yt 8 c t i v c ,e x p i 赋a r r a y s 2 ;严分别是:指向活动优先级数组的 指针、超时优先级数组的指针和实际优先级说组 a t o m i c tn ri o w a i t ;等待i o 操作的任务数目, ) ; 上面r u n q u e u e 的结构里最重要的就是两个优先级数组,它同样也定义在 k e r n e f s c h e d c 中: s l l u c tp r i oa r r a y u n s i g n e di n tn r _ a c t i v e ; ,任务数目, u n s i g n e dl o n gb i t m a p b i t m a p _ s l z e ;,优先级位图 s t r u c tl i s t _ h e a dq u e u e m a x _ p r i o ;+ 优先级队列 ; m a x _ p r i o 定义了系统拥有的优先级个数。默认是1 4 0 。这样,每个优先级 都有一个s h u c tl i s th e a d 结构体。b i t m a p 是优先级位图的大小,类型为size u n s i g n e dl o n g 长整型,长3 2 位,如果每一位代表一个优先级的话,1 4 0 个优先级 需要5 个长整型数才能表示。所以,b i t m a p 就正好有5 个说组项,总共1 6 0 位。 每个优先级数组都要包含一个这样的位图成员,至少为每个优先级准备一位。 一开始,所有的位都被置为0 。当某个拥有一定优先级的进程开始准备执行时( 也 就是变为t a s k _ r u n n i n g ) ,位图中相应的位就会被置为l 。比如,一个优先级 为7 的进程变为可执行状态,第7 位就被置为1 。这样,查找系统中最高优先级就 变成了查找位图中被置为1 的第一个位。因为优先级的个数是个定值,所以查找 时间恒定,并不受到系统到底有多少进程的影响。此外,l i n u x 对它支持的每一种 重庆大学硕士学位论文2 实时系统及l i n u x 的实时性分析 体系结构都提供了对应的快速查找算法,以保证位图的快速查找。提供该功能的 函数叫s c h e x lf i n df l r s t 。_bito 每个优先级数组还包含一个叫做s , 血- u c tl i s th e a d 的队列,每个优先级对应一个 队列每个链表与一个给定
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025北京大兴国际机场临空经济区(廊坊)幼儿园招聘合同制教师3名考前自测高频考点模拟试题附答案详解(模拟题)
- 2025年河北唐山滦南县第二批选聘事业编制卫生专业技术人员5名模拟试卷完整参考答案详解
- 2025广西柳钢集团技术技能人才社会招聘考前自测高频考点模拟试题及参考答案详解1套
- 2025湖北十堰市城市发展控股集团有限公司及所属子公司招聘拟聘用人员模拟试卷及完整答案详解1套
- 安全培训教师个人事迹课件
- 2025年节能型空气分离设备项目合作计划书
- 2025广西钦州市钦南区林业局招聘1人模拟试卷参考答案详解
- HIV-1-tat-Protein-1-9-生命科学试剂-MCE
- 安全培训效果评估方法课件
- GSPT1-degrader-7-生命科学试剂-MCE
- 2024年度鲁迅完整版课件
- 雪花猪养殖新模式
- 便利店设计方案
- 电力系统反恐怖知识讲座
- 铁道车辆制动装置及制动新技术全套教学课件
- 对意外伤害儿童的紧急救治方法
- 化学氧化二氧化氯氧化课件
- 为成果而管理
- 乳腺癌骨转移护理查房课件
- 新视野大学英语1读写教程-Unit1-Fresh-Start-课件
- 中建盘扣式落地卸料平台施工方案
评论
0/150
提交评论