(计算机应用技术专业论文)基于linux系统的实时性改进及实现.pdf_第1页
(计算机应用技术专业论文)基于linux系统的实时性改进及实现.pdf_第2页
(计算机应用技术专业论文)基于linux系统的实时性改进及实现.pdf_第3页
(计算机应用技术专业论文)基于linux系统的实时性改进及实现.pdf_第4页
(计算机应用技术专业论文)基于linux系统的实时性改进及实现.pdf_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘要 l i n u x 系统是一种分时的、具有强大网络功能并开源的通用目的操作系统,它诞生 于上世纪9 0 年代初,以网络为基础广泛传播到世界各地并成为当今主要操作系统之一。 因为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 o 1 1 内核,避开以往对它实时性处理只进行某一方面的改 造方式,着重对其整个内核的实时性进行改造升级。在当今硬件发展飞速的时代背景下, 提出以空间换取时间的总体思想来解决l i n u x 的实时性问题。经典的l i n u x 内核实时性 改造大体有两类:外部实时性扩展和内部实时性改进。前者是在原有的l i n u x 内核基础 上增加了一个实时子内核,后者则直接对内核相关代码进行修改。本文综合了这两种方 式,以实时进程为关注点,对整个内核代码相关方面进行实时性补充。因l i n u x o 1 1 内 核的短小精悍,可以对其进行通读并宏观上掌握整个l i n u x 系统的结构;可以找到很多 切入点,以增加实时处理代码的方式来完成对其实时性能的改进。 关键词:l i n u x 系统;实时性;综合实时性改进 大连交通人学丁学硕十学位论文 a b s t r a c t l i n u xs y s t e mi sak i n do fg e n e r a ls y s t e mt h a tw i t ht i m es h a r i n g ,a n ds t r o n gn e t w o r k f u n c t i o n s 嬲w e l la so p e ns o u r c i n g i tw a sb o r ne a r l i e r19 9 0 s ,a n db e c o m i n go n eo ft h em a i n l y o si nt h ew o r l dn o w a d a y sb a s e do nt h ei n t e r n e t b e c a u s eo fi t so p e ns o u r c i n ga n de x c e l l e n t f u n c t i o n s m o s to fc o m p u t e ro sl o v e rp r e f e rt om a k ev a r i o u su p d a t i n gf o ri t i t sr e a l - t i m e u p g r a d e di so n eo ft h em o s ti m p o r t a n ta s p e c t m a n yo sd e v e l o p e r s ( e s p e c i a l l ye m b e d d e d s y s t e md e v e l o p e r s ) a r et a k i n gp a r ti nt h i sp r o j e c t r e c e n t l y ,t h er e s e a r c h i n ga n du p g r a d i n gf o r l i n u xr e a lt i m eh a v ea l r e a d yb e e nd e v e l o p e da n dg o tr e a l i s t i c a n ds u c c e s s f u l l y r u l i n gi na l o to fr e a lt i m ee n v i r o n m e n t b u ts t i l lt h e r ei sm a n yo sl o v e rw o r k i n gi nt h ej o bw i t h h a p p i n e s s t h i si sb e c a u s el i n u xa l l o w sp e o p l et ou p d a t ei tw i 【t h t h e i ro w nf a v o r i t e t l l i s a r t i c l ei sj u s tb a s e do nt h i st h e o r y ,a f t e rr e a d i n ga n dr e s e a r c h i n gal o to fp a p e r sa n dl i t e r a t u r e m a t e r i a l s ,s u m m a r i z e dt h e i rt h e o r i e sa n dr e s u l t s ,m a k i n gg r e a te f f o r t st od e v e l o pan e ww a y f o rl i n u xr e a lt i m eu p g r a d i n g i ti sd i f f e r e n tw i t ht h ep r e v i o u sm e t h o d s sa r t i c l e 。st h e o r y i sb a s e do nt h ev e r s i o nl i n u x 0 1 1 a v o i d st h a ts o m em e t h o dj u s ti m p r o v e so n l yo n ep a r to f k e r n e l p a y i n gm o r ea t t e n t i o nt ot h ew h o l ek e r n e lo fi tr e a lt i m eu p g r a d i n g n o w a d a y s ,t h e s p e e do fh a r d w a r ed e v e l o p m e n ti ss of a s t ,w ep u tf o r w a r dag e n e r a lt h e o r yo f t h a te x c h a n g i n g t i m ew i t hs p a c et os o l v et h el i n u xr e a lt i m ei m p r o v e m e n t t r a d i t i o n a lm e t h o d sr e f e rt ot w o w a y s :e x t e r i o rr e a lt i m ee x t e n d i n ga n di n t e r i o rr e a lt i m ei m p r o v i n g t h ef o r m e ri sa d d i n ga n e wr e a lt i m ek e r n e lb a s e do nl i n u xk e r n e l t h e1 a t t e r , c o n t r a r yw i t ht h ef o r m e r ,i sm o d i f y i n g t h el i n u xk e r n e ld i r e c t l y t l l i sa r t i c l es y n t h e s i z e st h et w om e t h o d s ,f o c u so nt h er e a lt i m e p r o c e s s i m p r o v i n gt h er e l a t i v e l yc o d e so f t h ew h o l ek e r n e l b e c a u s eo fl i n u x o 1l ss h o r t n e s s , w ec a l lt h r o u g hr e a d i n gt h ew h o l ek e m e la n dm a s t e ri t ss t r u c t u r e ,a n df i n do u tt h es o l u t i o no f i m p r o v i n gi t sr e a lt i m ef u n c t i o n f i n a l l y ,p u t t i n gf o r w a r dt h em e t h o do fa d d i n gr e a lt i m e t r e a t i n gc o d et of i n i s ht h ei m p r o v e m e n to f r e a lt i m ea b i l i t y k e yw o r d s :l i n u xs y s t e m ;r e a lt i m e ;i n t e g r a t i v er e a lt i m ei m p r o v e m e n t n 大连交通大学学位论文独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作 及取得的研究成果。尽我所知,除了文中特别加以标注和致谢及参考 文献的地方外,论文中不包含他人或集体已经发表或撰写过的研究成 果,也不包含为获得太整銮通太堂或其他教育机构的学位或证书而 使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在 论文中作了明确的说明并表示谢意。 本人完全意识到本声明的法律效力,申请学位论文与资料若有不 实之处,由本人承担一切相关责任。 学位论文作者签名:羁天拉 日期:访卯年明f 厂日 大连交通大学学位论文版权使用授权书 本学位论文作者完全了解太整塞适太堂有关保护知识产权及保 留、使用学位论文的规定,即:研究生在校攻读学位期间论文工作的 知识产权单位属太整塞通盘堂,本人保证毕业离校后,发表或使用 论文工作成果时署名单位仍然为太整塞通盘堂一。学校有权保留并向 国家有关部门或机构送交论文的复印件及其电子文档,允许论文被查 阅和借阅。 本人授权太董塞通太堂可以将学位论文的全部或部分内容编入 中国科学技术信息研究所中国学位论文全文数据库等相关数据库 进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论 、 又。 ( 保密的学位论文在解密后应遵守此规定) 学位论文作者签名:套天枉 日期:枷年习叩日 学位论文作者毕业后去向: 工作单位: 通讯地址: 审子信箱: 导师张、谤凑趣 日期:知dg 年月7 日 电话: 邮编: 绪论 绪论 众所周知,l i n u x 操作系统是种通用的操作系统,它是按分时的原则进行设计的, 其目的是追求较好的平均响应时间和较高的系统吞吐量。由于其较强的网络功能,l i n u x 广泛应用于服务器及p c 机。随着以嵌入式为标志的后p c 时代的到来,嵌入式系统与 i n t e m e t 的结合等,l i n u x 以其优良的特性成为了嵌入式系统的首选。因为l i n u x 操作系 统的开源代码,所以吸引了大批的嵌入式开发人员对其进行实时性改造,以使其能够成 为满足实时性要求的嵌入式系统。 对l i n u x 进行实时性改进,首先应该对实时操作系统有所了解,然后是对l i n u x 源代 码的深入研究,还应了解相关系统硬件的知识。所以对研究人员提出较高的要求。 一、操作系统的实时性是指能够在指定时间范围内完成特定的功能或者对外部的异 步事件做出响应,在我们所讨论的实时性操作系统中,大多数是指嵌入式操作系统。嵌 入式操作系统由于应用的需要和硬件条件的限制,使得它同普通的台式计算机的操作 系统不同。它要满足处理与时间的关系。必须能够保证对每个进程的时间性要求,即保 证在要求的时间内完成相应的任务。在相当一部分嵌入式系统中,系统的实时性在整个 系统中起至关重要的作用。因此,关于嵌入式操作系统的实时性研究有着重要的意义。 现如今,嵌入式系统已广泛应用于各个领域,d , n 电子词典,大到卫星导弹,处处都有 其用武之地。 在系统的实时性设计中,核心的问题是降低软件运行时间。除了普遍的提高c p u 指令运行速度、采用高速i o 口、计数器的捕获比较、多机并行操作等软、硬件措施 外,就是程序设计技巧。而在系统程序中使用操作系统支持时,由于操作系统介入操作 管理带来的额外开销,以及对任务的灵活调度管理,成为系统实时性设计的重要问题。 嵌入式操作系统使用在嵌入式应用系统中。与通用操作系统相比,嵌入式操作系统 有许多特点,如可靠性、可裁剪性、“实时性等。前两者是嵌入式应用环境所要求的, 而“实时性”则是为了满足系统实时性要求的内容。在一些文章中提到某些嵌入式操作 系统时,常常冠以“实时操作系统 ,但它只是表现为该操作系统具有较好的实时能力。 在没有置身在一个具体嵌入式应用系统中时,不存在实时性结论。不同的嵌入式操作系 统比较时,可以有实时能力上的不同。任何一个嵌入式操作系统都应有满足系统实时性 设计的内容( 表现为任务的快速调度、快速运行等) ,实时能力强的嵌入式操作系统能 更容易地实现应用系统的实时性。 大连交通大学t 学硕十学位论文 二、若想对l i n u x 进行实时性改进,需要深入研究其源代码。从而找到切入点,修 改或增减代码,使其能很好的处理实时任务。那么影响l i n u x 实时性的主要因素大约有 以下几点: 1 、l i n u x 操作系统存在关中断机制。如果低优先级的进程由于进入临界区或者为了 尽快完成任务而关闭了中断,那么即使有高优先级的实时进程的中断发生,系统也无法 响应。而这种情况在实时系统中是不允许发生的。短时间内频繁的中断发生可导致中断 延迟不可控制。 2 、l i n u x 操作系统内核是禁止抢占的。一个进程一旦进入内核,它将运行直到系统 调用结束或进程被阻塞。这时候一个高优先级的实时进程只能等待。就是说l i n u x 运行 时分为用户态和核心态两种模式,当进程运行在用户态时,可以被优先级更高的进程抢 占;而当其运行在核心态时,不能被用户态进程抢占。l i n u x 女l 此设计是为了简化任务 调度,但对实时进程来说这样的等待是不允许的。 3 、l i n u x 使用的是基于优先级的任务调度策略。这种调度策略不能保证实时任务按 时完成。l i n u x 虽然给实时进程提供了较高的优先级,但是并没有加入时间限制。例如 完成的最后期限、应该在多长时间内完成、执行周期等等。还比女i l i n u x 的基于时间片 的调度策略可能使得一个实时进程在一个时间片内未完成,其优先级将降低,从而可能 造成有截止时间实时任务无法完成。这种优先级反转的现象使高优先级的进程可被低优 先级的进程阻塞。 通过分析,我们可以比较充分地了解到l i n u x 系统的中断机制,系统调用,进程切 换及内存管理等多方面内容。不但可以使我们对l i n u x 系统得到较全面的了解,同时在 改写代码的过程中,还可以大大锻炼编码的能力。 三、应具备相关系统硬件的知识。无论哪种操作系统,都要或多或少的与硬件有所 联系,直接或间接地对硬件进行操作。尤其实时性嵌入式操作系统,由于其追求快速反 应能力,对底层硬件的操作会更多。所以要多了解些硬件接口等方面的知识,便于对系 统的优化。本文主要讨论软件层次的实时性改进,因此硬件方面暂不叙述。 当然,对于l i n u x 而言,其优点也是显而易见的,它是一个真正的多任务、多平台、 支持多处理器、安全可靠的操作系统,以下简单罗列其优点: 1 、开发成本小,源代码公开;大多数商业操作系统都是价格昂贵的,l i n u x 是一个 免费的性能优秀的操作系统。而且源代码公开,使不同领域和不同层次的用户可以根据 自己的应用需要对内核进行裁减。 2 绪论 2 、可靠性高,稳定性好,容易移植;同目前流行的操作系统相比,l i n u x 是非常 稳定和可靠的,这一点已经得到很多用户的肯定。也是一个多平台的操作系统,可以运 行在很多种处理器上。这一点对于嵌入式的应用尤其重要。 3 、强大的网络功能;几乎所有的网络协议和网络接口都已经订制在l i n u x 中。l i n u x 的内核比标准的u n i x 更加高效率的处理网络协议,系统的网络吞吐量性能好。也是因 为这样,l i n u x 在网络服务器上占据越来越大的市场份额。 4 、功能强大的开发工具;l i n u x 提供c 、c + + 、j a v a 等很多开发工具,而且开发 者可以免费获得。l i n u x 具备这么多的工具,使得用户可以自行建立嵌入式系统的开发 环境和交叉运行环境,而且可以不用专门的仿真工具直接在l i n u x 内核调试即可。 现如今有很多对于l i n u x 系统的研究及改进方面的论文和资料,但大多只在某一方 面进行理论性的研究,具体实现的较少。本文力求在代码实现的基础上进行普通的研究, 进而追求理论上的升华。 人连交通大学下学硕+ 学位论文 第一章lin u x 与实时操作系统 我们首先了解下l i n u x 及实时操作系统的相关理论及概念。 1 1lin u x 的诞生和发展 对于l i n u x ,大家都已经耳熟能详了。通过互联网,随便哪个搜索引擎输入l i n u x , 都可以得到上万条甚至更多的相关链接。有人说l i n u x 系统是u n i x 操作系统的一种克 隆版本,对于这种说法,也可以在定程度上认可,因为l i n u x 的界面与u n i x 很相似, 但它的内核源代码却是完全独立的。它诞生于1 9 9 1 年的1 0 月5 日( 第一次正式向外公 布的时问) 。以后借助互连网,在全世界各地计算机爱好者的共同努力下,发展成为当 今世界上用户最多的一种类u n i x 操作系统,由于其开源特点,使用人数还在迅猛增加。 对于l i n u x 的诞生和发展,有五个重要因素值得关注:u n i x 操作系统、m i n i x 操作系 统、g u n 计划、p o s i x 标准和互连网。 u n i x 操作系统是美国贝尔实验室的k e nt h o m p s o n 和d e n n i sr i t c h i e 于1 9 6 9 年夏 在d e cp d p 7 小型计算机上开发的一个分时操作系统。后经过d e n n i sr i t c h i e 于1 9 7 2 年用c 语言进行了改写,使得u n i x 系统在院校得到推广。 m i n 操作系统是由a n d r e ws t a n e n b a l l m 在1 9 8 7 年编制的,主要用于学生学习操 作系统原理。目前主要有两个版本在使用:1 5 版和2 o 版。最初该操作系统在大学使用 是免费的,但其他用户需要付费使用。现在它已经完全免费,可以从许多f t p 上下载。 g n u 计划和自由软件基金会( t h ef r e es o f t w a r ef o u n d a t i o n f s f ) 是由r i c h a r d m s t a l l m a n 于1 9 8 4 年创办的,旨在开发一个免费的,类似u n i x 的操作系统电m7 系统。到2 0 世纪9 0 年代初,g n u 项目已经开发出许多高质量的免费软件,其中包括 有名的e m a e s 编辑系统、b a s hs h e l l 程序、g c c 系列编译器程序、g d b 调试程序等。 这些软件为l i n u x 操作系统的开发创造了一个合适的环境,是l i n u x 能够诞生的基础之 一。所以目前许多人都将l i n u x 操作系统称为“g n u l i n u x 操作系统。 p o s i x ( p o r t a b l eo p e r a t i n gs y s t e mi n t e r f a c ef o rc o m p u t i n gs y s t e m ) 是由i e e e 和 i s o i e c 开发的一簇标准。到2 0 世纪9 0 年代初,p o s i x 标准的制定正处在最后投票敲 定的时候。此时l i n u x 刚刚起步。这个标准为l i n u x 提供了极为重要的信息,使得l i n u x 能够在标准的指导下进行开发,做到与绝大多数u n i x 系统兼容。 第一个与l i n u x 系统有关的消息是l i n u s 在1 9 9 1 年7 月3 日在c o m p o s m i n i x 上发 布的,其中透露了他正在进行l i n u x 系统的开发,并且在最初的l i n u x 内核代码中,l i n u s 就已经为l i n u x 与p o s i x 标准的兼容性做好了准备工作。在0 0 1 版内核i n c l u d e u n i s t d h 4 第一章l i n u x 与实时操作系统 文件中就已经定义了几个p o s i x 标准要求的常数符号。到1 9 9 1 年的1 0 月5 日,l i n u s 在c o m p o s m i n i x 新闻组上发布消息,正式向外宣布l i n u x 内核系统的诞生( f r e e m i n i x 1 i k ek e r n e ls o l i c e sf o r3 8 6 a t ) 。 l i n u x 操作系统从诞生到1 0 版正式出现,发布的主要版本如表1 1 所示 表1 1l i n u x 内核的主要版本 t a b l e1 1m a i nl i n u xk e r n e lv e r s i o n s 版本号发布日期说明 o 0 11 9 9 1 8 第一个正式向外公布的l i n u x 内核版本。多线程文件系统、分 段和分页内存管理 o 0 21 9 9 1 1 0 5 该版本以及0 0 3 版是内部版本,目前已经无法找到。特点同 上 o 1 01 9 9 1 1 0 由t e dt s o 发布的l i n u x 内核版本。增加了内存分配库函数 0 1 11 9 9 1 1 2 8基本可以正常运行的内核版本。支持硬盘和软驱分配库函数 0 1 2 1 9 9 2 1 1 5 主要增加了数学协处理器的软件模拟程序,增加了作业控制、 虚拟控制台、文件符号链接和虚拟内存对换功能 - - 0 9 5 ( 0 1 3 ) 1 9 9 2 3 8加入虚拟文件系统支持,增加了登陆功能。改善了软盘驱动程 序和文件系统的性能。改变了硬盘编号方式。支持c d r o m 0 9 6 1 9 9 2 5 1 2 开始加入网络支持。改善了串行驱动、高速缓冲、内存管理的 性能,支持动态链接库,并能运行x w i n d o w 程序 0 9 71 9 9 2 8 1 增加了对新的s c s i 驱动程序的支持 0 9 81 9 9 2 9 2 9 改善了对t c p i p ( 0 8 1 ) 网络的支持,纠正了e x t f s 的错误 o 9 9 1 9 9 2 1 2 1 3重新设计进程对内存的使用分配,每个进程有4 g b 线性空间 1 o1 9 9 4 3 1 4 第一个正式版 从o 9 5 版开始,对内核的许多改进之处( 补丁程序的提供) 均以其他人为主了,而 l i n u s 的主要任务开始变成对内核的维护和决定是否采用某个补丁程序。到现在为止, 最新内核版本是2 0 0 8 年4 月2 1 日公布的2 6 2 5 版。而本文是基于l i n u x 0 1 1 内核版本 来进行研究的。之所以选择这个版本,主要是因为:此版本内核基本功能与目前l i n u x 内核基本功能较为相近,又非常短小精干,o 1 1 版内核源代码只有一万四千行左右 ( 3 2 5 k b ) ,其中包括的内容基本上都是l i n u x 系统的精髓。所以基本可以完整的对l i n u x 内核源代码进行全面剖析。 5 大连交通大学t 学硕+ 学位论文 1 2lin u x 内核源代码的目录结构 对l i n u x 实时性进行改进,就需要大量阅读其内核源代码,研究其内核结构。有一 个总体的修改思路,从而找到相应的切入点。下面我们简单介绍l i n u xo 1 1 内核代码结 构。该版本的源代码目录中含有1 4 个子目录,总共包括1 0 2 个代码文件。基本内容描 述如下: l i n u r d 目录是源代码的主目录,在该目录中除了包括所有的1 4 个子目录以外,还含 有唯一的一个m a k e f i l e 文件。该文件是编译辅助工具软件m a k e 的参数配置文件。m a k e 工具软件的主要用途是通过识别哪些文件已被修改过,从而自动地决定在一个含有多个 源程序文件的程序系统中哪些文件需要被重新编译。因此,m a k e 工具软件是程序项目 的管理软件。 l i n u x 录下的这个m a k e f i l e 文件还嵌套地调用了所有子目录中包含的m a k e f i l e 文 件,这样,当l i n u x 目录( 包括子目录) 下的任何文件被修改过时,m a k e 都会对其进行 重新编译。因此为了编译整个内核所有的源代码文件,只要在l i n u x 目录下运行一次 m a k e 命令就可以。l i n u x 的目录结构图如下: l i n u xo t c l u d e e i t r n e l e 三b l k _ a r v d r v b o ls 图1 1l i n u x 内核源代码目录结构 f i g 1 1t h ed i r e c t o r ys t r u c t u r eo fl i n u xk e r n e l 1 2 1 引导启动程序目录b o o t b o o t 目录中包含三个汇编语言文件,是内核源代码文件中最先被编译的程序。这三 个程序完成的主要功能是当计算机加电时引导内核启动,将内核代码加载到内存中,并 6 第一章l i n u x 与实时操作系统 做一些进入3 2 位保护运行方式前的系统初始化工作。其中b o o t s e c t s 和s e t u p s 程序需要 使用a s 8 6 软件来编译,使用的是a s 8 6 的汇编语言格式( 与微软的类似) ,而h e a d s 需 要用g n ua s 来编译,使用的是a t & t 格式的汇编语言。 b o o t s e c t s 程序是磁盘引导块程序,编译后会驻留在磁盘的第一个扇区中( 引导扇区, 0 磁道( 柱面) ,0 磁头,第一个扇区) 。在p c 机加电r o mb i o s 自检后,将被b i o s 加载到内存0 x 7 c 0 0 处进行执行。s e t u p s 程序主要用于读取机器硬件配置参数,并把内 核模块s y s t e m 移动到适当的内存位置处。h e a d s 程序会被编译连接在s y s t e m 模块的最 前部分,主要进行硬件设备的探测设置和内存管理页面的初始设置工作。 1 2 2 文件系统目录f s f s 目录是文件系统实现程序的目录,共包含1 7 个c 语言程序。这些程序调用关系非 常复杂,大体可以分成四个部分:高速缓冲区管理、底层文件操作、文件数据访问和文 件高层函数,对于文件系统,我们可以将它看成是内存高速缓冲区的扩展部分。所有对 文件系统中数据的访问,都需要首先读取到高速缓冲区中,本目录中的程序主要用来管 理高速缓冲区中的缓冲块的使用分配和块设备上的文件系统。管理高速缓冲区的程序是 b u f f e r g ,而其他程序则主要用于文件系统的管理。 1 2 3 头文件主目录i n o i u d e 头文件目录总共有3 2 个h 头文件。其中i n c l u d e 主目录下有1 3 个头文件,其他头文 件则存放在a s m ( 4 个) ,l i n u x ( 1 0 个) 和s y s ( 5 个) 三个子目录中。 i n c l u d e 主目录下的头文件主要是供内核和用户程序使用;a s m 子目录主要用于存放 与计算机硬件体系结构密切相关的头文件;l i n u ) 【子目录用于存放l i n u x 内核专用的头文 件;s y s 子目录用于存放一些与文件状态、进程、系统数据类型等有关的头文件。 1 2 4 内核初始化程序目录i n i t 该目录中仅包含一个文件m a i n c ,用于执行内核所有的初始化工作,然后移到用户 模式创建新进程,并在控制台设备上运行s h e l l 程序。 程序首先根据机器内存的容量对缓冲区内存容量进行分配,如果还设置了虚拟盘, 则在缓冲区内存后面也为它留下空间。之后就进行所有硬件的初始化工作,包括人工创 建第一个任务( t a s k 0 ) ,并设置中断允许标志。在执行从核心态到用户态之后,系统第 一次调用创建进程函数f o r k ( ) ,创建出一个用于运行i n i t ( ) 的进程,在该子进程中,系 统将进行控制台环境设置,并且再生成一个子进程用来运行s h e l l 程序。 7 大连交通大学t 学硕十学侮论文 1 2 5 内核程序主目录k e r n e l 这个目录可以说是内核中最重要的一个了,它涵盖了系统调用、硬件中断等很多重 要的内核部分。其中就包括a s m s 、f o c k c 、s c h e d c 、s y s c 、e x i t c 等1 2 个文件。它还 包含了三个子目录: 1 ,块设备驱动程序子目录k e r n e l b l kd r v 2 ,字符设备驱动程序子目录k e m e f c h rd r v 3 ,协处理器仿真和操作程序子目录k e m e l m a t h 这些也将是我们重点关注的对象,我们也将主要围绕这个目录来进行l i m l x 的实时性改 进。比如s c h e d c 文件中包含了有关调度的基本函数( s l e e po n 、w a k e u p 、s c h e d u l e ) 以 及一些简单的系统调用函数。f o c k c 程序给出了程序创建系统调用s y s( ) 相关的两lf o c k 个c 语言函数等等。总之,要对这一目录给予特别重视。 1 2 6 内核库函数目录l ib 内核库函数用于为初始化程序i n i t m a i n c 执行在用户态的进程提供调用支持。该目 录功有1 2 个c 语言文件。主要包括退出函数e x i t ( ) 、关闭文件函数c l o s e ( ) 、复制文件 描述符函数d u p ( ) 、文件打开函数o p e n ( ) 、写文件函数w r i t e ( ) 、执行程序函数e x e c v e ( ) 、 内存分配函数m a l l o c ( ) 、等待子进程状态函数w 面t ( ) 、创建会话系统调用s e t s i d ( ) 以及在 i n c l u d e s t r i n g h 中实现的所有字符串操作函数。 1 2 7 内存管理程序目录m i l l 该目录包括2 个代码文件。主要用于管理程序对主内存区的使用,实现了进程逻辑 地址到线性地址以及线性地址到主内存区中物理内存地址的映射,通过内存的分页管理 机制,在进程的虚拟内存页与主内存区的物理内存页之间建立了对应关系。 p a g e s 文件包括内存页面异常中断( i n t1 4 ) 处理程序,主要用于处理程序由于缺页 而引起的页异常中断和访问非法地址而引起的页保护。m e m o r y c 程序包括对内存进行初 始化的函数m e m _ i n i t ( ) ,由p a g e s 的内存处理中断过程调用的d o _ n o _ p a g e ( ) 和 d o 、 ,pp a g e ( ) 函数。在创建新进程而执行复制进程操作时,使用该文件中的内存处理函 数来分配管理内存空间。 1 2 8 编译内核工具程序目录t o o i s 该目录下的b u i l d c 程序用于将l i n u x 各个目录中被分别编译生成的目标代码连接合 并成一个可运行的内核映像文件i m a g e 。 8 第一章l i n u x 与实时操作系统 由以上的分析,我们可以看到,l i n u x 内核的主要部分集中在内核程序主目录k e r n e l 中。如果将这些主要部分源代码加以详细分析并修改,再辅以其他部分诸如文件系统, 内存管理等模块的相应改进,则l i n u x 的实时性目的不难达到。而对于k e r n e l 这一部分 代码而言,最重要的当属进程控制环节的设计。我们会在第三章中加以详细描述。 1 3 实时操作系统 前面讨论了l i n u x 的相关理论,我们有必要了解实时操作系统的一些概念。 随着后p c 时代以及网络、通信技术时代的到来,大量的计算机专业人员进入了嵌 入式应用领域:然而,有大量的嵌入式系统应用是以单片机的形式,应用在传统的电子 技术领域中。因此,以计算机领域人员为主体的,远离对象系统的嵌入式系统的计算机 工程应用模式,和以电子技术领域人员为主体,与对象系统紧耦合的电子技术应用模式 产生了概念上的碰撞。许多电子技术应用模式熟视无睹、习以为常的概念,在计算机工 程应用领域中作为一个新概念提出时,常常使电子技术应用领域中的人员感到莫明其 妙。以前的“嵌入式系统 概念是其一,而现在“嵌入式系统的实时性 又是一例。到 底什么样的系统称得上是实时性系统呢? 1 3 1 什么是电子系统的实时性 任何一个电子系统都可看成是一个激励一响应系统。每个特定的电子系统都有一个 从激励输入到响应输出的时间,即激励一响应周期t ,它表现为系统的响应能力。如果 系统的响应能力t 能满足嵌入对象所规定的响应时间t a 要求,即t _ t a ,这个系统便是 实时的电子系统。 那么,什么是嵌入对象所要求的响应时间t a 昵? 通常,不论哪一种电子系统,实现 对象体系的控制管理要求,这些控制管理通常都会有一定的时间限制。例如,一个振动 监测系统,对振动波形的检测周期必须满足采样定理要求;饮料生产线上的计量、馐控 制系统,必须在一个工位的移动周期里完成秤量、封口的控制输出;对于超市中使用的 电子秤,在秤量时,希望能立即显示出重量和计价金额;我们日常使用的计算机,在敲 击键盘时,也要求在显示屏上快速地出现键盘输入结果。因此,几乎所有的电子系统都 有一个客观的响应时间t a 要求。这就电子系统普遍存在的实时性问题,即要求t _ t a 。 1 3 2 三类电子应用系统的实时性 t a 是电子系统具体应用时,客观应用环境提出的具体响应时间要求;不同类型电子 系统的激励一响应时间t 的不同,形成不同的实时性问题。我们可以按不同的激励一响应 9 大连交通大学t 学硕十学何论文 时间t 的特点,将电子系统分为经典电子系统、通用计算机系统与嵌入式系统,来讨论 不同类型的电子应用系统不同的实时性特点。 1 、经典电子系统:不含计算机的纯电子电路系统,例如,测量放大器、电子计数 器、温度指示器( 由a d c 、译码器、l e d 显示器构成) 等,电路的动态特性决定了系 统响应能力t 的大小。经典电子系统是一个激励一响应系统,从激励到响应的时间完全 取决于电子在电路中的运动过程,因而,它具有极短的、相对固定不变的,从激励到响 应的时间周期t 。在大多数经典电子应用系统中,由电路的动态特性决定了t 值的大小。 一般情况下,应用系统的t 远小于嵌入对象系统的响应( t a ) 要求,因此,在经典电子 应用领域中,应用工程师的头脑中没有“实时性 名词的概念,而对一些极快速响应要 求的应用系统,如振动测量系统,它的实时性要求常常反映为电路系统的“频率响应 要求。 2 、通用计算机系统:是一个人机交互的激励一运行一响应系统。它的激励一响应时间 t 表现为电路系统的激励一响应时间t c 与软件运行时间t s ,而电路系统的激励一响应时间 与软件运行时间相比为高阶小量,因而软件运行时间形成了t 的主要成份,t - - t c + t s - - - - t s 。 由于通用计算机系统只使用在人机交互环境中,对象( 人) 提出的响应时间t a 要求,只 是一个期望值( 尽量快) ,而这种欲望一方面表现为永无止尽,另一方面又表现出现实 的可容忍性。因此,通用计算机系统是一个非实时的电子系统,而快速性成为通用计算 机系统发展的永恒主题。 3 、嵌入式系统:由于计算机的嵌入,嵌入式系统也是一个激励一运行一响应的电子 系统。但是,它与嵌入对象体系交互时,要满足事件交互过程的响应要求。一方面,由 于计算机的嵌入,嵌入式应用系统有十分可观的激励一响应时间t s ,导致系统实时能力 的降低;另一方面,由于嵌入对象体系的多样性、复杂性,不同的对象体系会提出不同 的响应时间t a 要求。因此,在嵌入式应用系统的具体设计中,必须考虑系统中每一个任 务运行时,能否满足t s t a 的要求,这就是嵌入式系统的实时性问题。 综上所述,经典电子系统应用中,没有显出实时性的概念,是因为电子系统的激励 一响应时间t 极短,绝大多数电子系统都能满足t _ t s 要求;通用计算机系统应用中,没 有实时性概念,是因为t a 只有期望要求;而嵌入式系统应用中,必须考虑实时性问题, 是因为软件运行的时间耗费t s ,会使系统的激励一响应时间t 巨额增加,而不能满足嵌 入对象系统提出的响应时间t a 要求,凸现了嵌入式系统的实时性问题。其实大多数的实 时操作系统都是指嵌入式系统而言的。 1 0 第一章l i n u x 与实时操作系统 本章小结 本章主要描述了有关l i n u x 操作系统及实时性操作系统的概念,使读者在总体上对 它们有个一般性地了解。通过概念的理解和对比,来体现l i n u x 在实时性方面的缺陷及 需要改进的方向。着重对l i n u x 的内核代码结构进行了解析,为下文做好铺垫。 大连交通人学丁学硕十学位论文 第二章l in u x 的实时应用局限性分析 为了好较地对l i n u x 进行实时性改造,我们有必要对l i n u x 系统的实时应用局限性 进行一下比较分析。首先概述一下嵌入式系统的实时问题。 2 1 嵌入式系统的实时性分析 2 1 1 嵌入式系统实时性的出发点 嵌入式系统由于是嵌入到对象体系中的一个电子系统,与对象系统密切相关。而形 形色色的对象系统会有不同的响应时间t a 要求( 上一章所提到的) ,如动态信号的采集 系统、生产线的控制单元等,有严格的响应时间要求;超市的秤重、计量、收银机只要 求有尽快的响应时间;在同样的动态信号采集系统中系统的响应时间与信号的动态特性 有关。这些不同的嵌入式应用系统的不同响应要求,表现了嵌入对象响应要求( t a ) 的 多样性。 嵌入式应用系统的激励一运行一响应特性,形成了以软件运行时间t s 为主要内容的系 统响应能力t 。而软件运行时间t s 与指令速度、编程技巧、程序优化等有关,是一个在 应用系统设计中可以改变的参数,它表现了嵌入式应用系统实时能力的可变更性。 因此,t a 的多样性要求与响应时间t s 的可调整性,是嵌入式系统的实时性分析的基 本出发点。根据嵌入对象t a 的不同要求,调整、变更t s 大小,以实现t s 的最佳化,是 嵌入式系统实时性设计的一项重要内容。 2 1 2 嵌入式系统的实时性分析 1 、实时性与快速性 嵌入式系统的实时性不是一个快速性概念,而是一个等式概念,即能否满足t s t a 的要求。因而,快速系统不一定能满足系统的实时性要求,而某些情况下满足实时性要 求时,系统的运行速度并不高。例如,满足温度采集实时性要求的嵌入式系统,运行速 度并不高;而许多高速运行的系统,未必能满足冲击振动的信号采集的实时性要求。快 速性只反映了系统的实时能力而已。 2 、系统的最佳实时 快速性是系统实时能力的表现。当系统不能满足实时性要求时,必须提高系统的运 行速度,然而,运行速度的提高必然带来系统的一些负面效应,如导致系统功耗加大、 电磁兼容性下降。因此,在设计一个具体的嵌入式系统时,在保证能满足实时性要求的 1 2 第二章l i n u x 的实时应用局限性分析 条件下,应使系统的运行速度降到最低,以满足系统在功耗、可靠性、电磁兼容性方面 获得最佳的综合品质。 3 、系统的实时性分配 在一个嵌入式应用系统中,有许多过程环节。例如,一个典型的智能仪表就有信号 采集、数据处理、结果显示、键盘输入等过程。这些过程往往是在不同的时间与空间上 进行,而且不同过程的实时性要求是不同的。键盘输入、结果显示是与人交互的,要满 足人机交互的实时性要求;信号采集与对象系统领带的动态性密切相关,必须满足由动 态信号采集的实时性要求;而数据处理则会形成从动态信号采集到结果显示的时间延 迟,影响到结果显示的实时性要求。因此一个优秀的实时系统设计,必须研究系统中的 每一个过程环节,满足每一个过程环节和整个系统的最佳实时要求。 2 1 3 实时系统的动态误差 当我们研究嵌入式应用系统的实时性时,与对象系统相关的过程,必然是一个动态 过程,否则便不存在实时性问题。对于任何动态过程,由于时间的滞后,都不可能完成 重现原过程,这之间的差异便是动态过程的动态误差。例如,对于一个动态信号的数据 进行采集时,在时间点t 上启动采集命令,由于要执行一系列控制指令,产生a t r n 滞后; 另外,a d 转换器有个转换过程,产生a r c 滞后。由于这些时间滞后,致使在时间点 t 上采集的数据,实际上是时间点t + a t m + a t e 上的信号数据,两者之差便是系统中数据 采集

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论