(计算机系统结构专业论文)强实时rtai在arm9处理器的实现及性能研究.pdf_第1页
(计算机系统结构专业论文)强实时rtai在arm9处理器的实现及性能研究.pdf_第2页
(计算机系统结构专业论文)强实时rtai在arm9处理器的实现及性能研究.pdf_第3页
(计算机系统结构专业论文)强实时rtai在arm9处理器的实现及性能研究.pdf_第4页
(计算机系统结构专业论文)强实时rtai在arm9处理器的实现及性能研究.pdf_第5页
已阅读5页,还剩75页未读 继续免费阅读

(计算机系统结构专业论文)强实时rtai在arm9处理器的实现及性能研究.pdf.pdf 免费下载

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

文档简介

西南交通大学硕士研究生学位论文第1 页 于两芰 随着嵌入式系统的广泛应用 嵌入式实时操作系统r t o s 也越来越受到重视 尤 其是在工业控制 航空航天 医疗卫生和军用等领域 r t a i r e a l t i m ea p p l i c a t i o n i n t e r f a c e 1 9 1 是由意大利米兰理工学院航天工程系 d i a p m 发起开发的遵循g p l 的 开源项目 它是对l i n u x 内核的强实时扩展 可以提供工业级的r t o s 功能 而且其 所有的功能都可无缝的通过g n u l i n u x 环境访问 现在基于r t a i 已经有了很多的应 用 如r t n e t u s b 4 r t r t c a n 等 r t a i 还在不断的发展之中 而且它在实时环境 中的应用也越来越多 有广阔的发展前景 基于上述意义 本文首先解释了实时操作系统的相关概念 分别从任务调度 中 断响应 内存管理等方面 指出在实时操作系统中影响实时性的要素 并给出了现阶 段实时l i n u x 的几种架构 接着 针对基于a r m 平台r t a i 的实现 深入研究与分析 了r t a i 实现机制 详细剖析了基于l i n u x 实现的a d e o s i p i p e 超微内核的工作原理 和具体实现 设计完成的测试硬件平台基于a t 9 1 r m 9 2 0 0 处理器 a t 9 1 r m 9 2 0 0 是a t m e l 针 对系统控制以及通信领域推出的基于a r m 9 2 0 t 内核的微处理器 它集成了u s b 以 太网 e b i m c i s s c 和s p i 等多种丰富的外设接口 高速的处理速度和先进的电源 管理使得这款芯片能够应用于很多领域 由于本课题的最重要部分是实现l i n u x r t a i 在a t 9 1 r m 9 2 0 0 开发板上的移植与测试 所以存储器 f l a s h 和s d r a m 是必要的 另外j t a g 用于下载和调试程序 串口可用于打印调试信息 便于应用开发 以太网 口可用于与p c 机高速通讯 除此之外的其他一些接口可选 用引线引出 以便扩展 应用 基于此硬件平台 设计与实现了b o o t l o a d e r l i n u x 内核 根文件系统 r t a i 的 移植工作 移植版本为u b o o t1 3 4 的b o o t l o a d e r 2 6 2 0 的l i n u x 内核和3 7 的r t a i 内核 经测试 在此硬件平台上运行效果稳定良好 最后在此软硬件平台上进行了r t a i 和传统l i n u x 之间的任务时间分辨率测试与任务响应速度测试 分析了r t a i 对传统 l i n u x 系统实时性能的提高 为后续实时应用开发提供指导和借鉴 关键词 实时操作系统 r t a i l i n u xa d e o s i p i p e a t 9 1 r m 9 2 0 0 西南交通大学硕士研究生学位论文第1 i 页 a bs t r a c t w i t ht h ee x t e n s i v ea p p l i c a t i o no fe m b e d d e ds y s t e m s t h ee m b e d d e dr e a l t i m e o p e r a t i n gs y t s t e m r t o s a l s ob e c o m e sm o r ea n dm o r ei m p o r t a n t e s p e c i a l l yi nt h e i n d u s t r i a lc o n t r o l a e r o s p a c e m e d i c a ls a n i t a t i o na n dm i l i t a r yf i e l d s r t a i r e a l t i m e a p p l i c a t i o ni n t e r f a c e i sa l lo p e ns o u r c ep r o j e c tf o l l o w i n gt h eg p li n i t i a l l yd e v e l o p e db y t h ed i p a r t i m e n t od ii n g e n e r i aa e r o s p a z i a l e p o l i t e c n i c od im i l a n o d i a p m i ti sah a r d r e a l t i m ee x t e n s i o nt ol i n u xk e r n e la n di tp r o v i d e si n d u s t r i a l g r a d er t o sf u n c t i o n s w h i c h c a nb ea c c e s s e di ng n u l i n u xe n v i r o n m e n t n o wt h e r ea r em a n ya p p l i c a t i o n sb a s e do n r t a i s u c ha sr t n e t u s b 4 r t r t c na n ds oo n 舰 ii sc o n t i n u a l l yd e v e l o p i n ga n d m o r ea n dm o r ea p p l i e di nr e a l t i m ee n v i r o n m e n t s oi th a sab r o a d p r o s p e c t b a s e do nt h ea b o v em e a n i n g s t h i sd i s s e r t a t i o nf n s te x p l a i n ss o m ec o n c e p t so fr e a l t i m e o p e r a t i n gs y s t e m c o n c l u d et h ee l e m e n t sa f f e c t i n gt h ec a p a b i l i t yo fr e a l t i m es y s t e mb y r e s p e c t i v e l ya n a l y z i n gt h er e l a t i v ec o n c e p t si n c l u d i n gt a s ks c h e d u l i n g i n t e r r u p tr e s p o n s e t i m e m e m o r ym a n a g e m e n t e t c a n dt a l ka b o u ts e v e r a lr e a l t i m el i n u xa r c h i t e c t u r e sa t p r e s e n t t h e nw er e s e a r c ht h er t a ii m p l e m e n t a t i o nm e c h a n i s m s b a s e do na r m a r c h i t e c t u r e e s p e c i a l l yt h ep r i n c i p l ea n di m p l e m e n t a t i o no fa d e o s i p i p en a n o k e n e l b a s e do nl i n u xo nt h i sp l a t f o r m t h e d e s i g no ft h e h a r d w a r e p l a t f o r m i sb a s e do na t 91r m 9 2 0 0p r o c e s s o r a t 91r m 9 2 0 0i sam i c r o p r o c e s s o rb a s e do na r m 9 2 0 tc o r eb ya t m e lu s e di ns y s t e m c o n t r o la n dc o m m u n i c a t i o n s w h i c hi n t e g r a t e su s b e t h e r n e t e b i m c i s s c s p ia n d s o m eo t h e rr i c hp e r i p h e r a li n t e r f a c e s t h e1 1 i g hp r o c e s s i n gs p e e da n da d v a n c e dp o w e r m a n a g e m e n tm a k et h ec h i pb eu s e di nm a n yf i e l d s a st h em o s ti m p o r t a n tp a r to ft h i s d e s i g ni st ot r a n s p l a n tl i n u x r t a i t ot h ed e v e l o p m e n tb o a r d b a s e do na t 91r m 9 2 0 0a n dt o t e s tt h er e a l t i m ec a p a b i l i t y t h em e m o r y f l a s ha n ds d r a m li sn e c e s s a r y t h ej t a gi s u e s di nd o w n l o a d i n ga n dd e b u g g i n gp r o g r a m s a n ds e r i a lp o r tc a nb eu s e dt op r i n td e b u g i n f o r m a t i o nt of a c i l i t a t et h ea p p l i c a t i o nd e v e l o p m e n t t h ee t h e m e tp o r tc a nc o m m u n i c a t e w i t hp ci nah i g hs p e e d t h eo t h e ri n t e r f a c e sa r eo p t i o n a la n dw i t hw i r el e a d e dt oe x t e n d a p p l i c a t i o n s t h ed e s i g nt r a n s p l a n t st h eb o o t l o a d e r l i n u xk e r n e l r o o tf i l es y s t e ma n dr t a it ot h e h a r d w a r ep l a t f o r m t h ev e r s i o n sa r er e s p e c t i v e l yu b o o t1 3 4 l i n u x2 6 2 0a n dr t a i3 7 t h e yc a n r u na tt h eh a r d w a r ep l a t f o r mw e l l f i n a l l y w em a k et h et a s kt i m er e s o l u t i o nt e s t a n dt a s kr e s p o n s es p e e dt e s tb e t w e e nr t a ia n dt r a d i t i o n a ll i n u xo nt h eh a r d w a r ea n d s o f t w a r ep l a t f o r m b ya n a l y z i n gt h er e a l t i m ep e r f o r m a n c eb e t w e e nr t a ia n dl i n u x i t p r o v i d e sag u i d a n c ea n dr e f e r e n c ef o rr e a l t i m ea p p l i c a t i o nd e v e l o p m e n t 西南交通大学硕士研究生学位论文第l ff 页 k e yw o r d s r t o s r t a i l i n u x a d e o s i p i p e a t 9 1 r m 9 2 0 0 西南交通大学 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留 使用学位论文的规定 同意学校保留并 向国家有关部门或机构送交论文的复印件和电子版 允许论文被查阅和借阅 本人授 权西南交通大学可以将本论文的全部或部分内容编入有关数据库进行检索 可以采用 影印 缩印或扫描等复印手段保存和汇编本学位论文 本学位论文属于 1 保密口 在年解密后适用本授权书 2 不保密画 使用本授权书 请在以上方框内打 4 学位论文作者签名 二孝叩 日期 幻1o i 1 占 指导老师签名 下勿玳 日期 z 勺l o 6 f 西南交通大学硕士学位论文主要工作 贡献 声明 本人在学位论文中所做的主要工作或贡献如下 1 详细分析了a d e o s p i p e 超微内核的原理 以及基于a d e o s 的l i n u x r t a i 实时双内核工作机制 2 设计实现了基于a t 9 1 系列a r m 9 处理器a t 9 1 r m 9 2 0 0 的测试硬件电路板 3 完成了b o o t l o a d e r l i n u x 文件系统 基于a d e o s i p i p e 的r t a l 在硬件 电路板上的移植工作 具体包括 b o o t l o a d e r 板级硬件初始化修改移植 l i n u x 配置 裁减和修改 如中断管理 外设驱动等 r a m d i s k 根文件系统的制作 a d e o s 超微内 核的建立 r t m 底层硬件抽象层 中断处理模块 定时器管理模块的修改移植 4 设计了两个合理有效的实时测试应用程序 测试了r t a i 与传统l i n u x 之间 的实时性差异并进行性能分析 为具体应用提供参考 本人郑重声明 所呈交的学位论文 是在导师指导下独立进行研究工作所得的成 果 除文中已经注明引用的内容外 本论文不包含任何其他个人或集体已经发表或撰 写过的研究成果 对本文的研究做出贡献的个人和集体 均已在文中作了明确说明 本人完全了解违反上述声明所引起的一切法律责任将由本人承担 学位论文作者签名 4 誓 为 日期 少 口 厶 占 西南交通大学硕士研究生学位论文第1 页 第1 章绪论 1 1 引言 随着嵌入式系统的广泛应用 嵌入式微处理器的应用日益广泛 无处不在 从波 音飞机到移动电话 都有嵌入式微处理器的存在 在嵌入式微处理器的应用开发中 嵌入式实时操作系统r t o s 也越来越受到重视 尤其是在工业控制 航空航天 医疗 卫生和军用等领域 5 j 实时操作系统分为软实时和强实时 也称硬实时 两类 软实时是统计意义上的 实时 并不能保证任务在特定的时间内完成 有时即便处理超时 得出了结果也是有 意义的 而强实时对时间要求极其严格 如果系统对某个实时任务的处理未能在截止 时间开始或结束的话 会产生不可预料的后果 因此 强实时才是真正意义上的实时 目前市场上针对强实时和弱实时的嵌入式操作系统已经很多 常用的如强实时的 v x w o r k s q n x p s o s 弱实时的w i n c e 掣2 2 1 这些实时系统基本都是商用的 虽 然拥有优秀的实时性能和人性化的开发调试环境 但价格非常昂贵 同时源代码也不 公开 一切开发都要依赖系统提供商提供的支持 用户无法根据自己的需要进行针对 性的开发 这增加了其在嵌入式平台移植应用的难度和成本 l i n u x 的出现为我们带 来了契机 与商用嵌入式操作系统相比l i n u x 遵循g p l 具有源代码开放 定制方便 支持广泛的硬件体系结构等优点 已经成为典型的开源嵌入式操作系统 l i n u x 虽然也可采取基于优先级的调度策略 并且也将进程分为实时进程和非实时 进程 但是l i n u x 的以下几点特征 4 i 决定了其本身很难完成强实时任务 1 l i n u x 内核采用了较大时间粒度的定时器 加大了任务响应的延迟 无法满 足对时间精度要求苛刻的实时应用 2 虽然l i n u x 2 6 内核可以配置为低延迟可抢占模式 但内核仍旧存在大量不可 抢占区 如s p i n l o c k 自旋锁保护的临界区以及一些使用p r e e m p td i s a b l e 失效抢占的区 域 这增加了任务响应时间 另外内核当中一些同步操作采用了中断关闭指令 从而 抑制了系统及时响应外部操作的能力 3 由于不管是外部硬件中断还是软中断 它们总是具有最高优先级的 因此 即使当前运行的是优先级最高的实时进程也会被其抢占 这样 高优先级实时任务便 不能不等待中断处理i s r 和软中断s o f t i r q t a s k l c t 的完成返回 才能继续运行 特别是 在系统有非常繁重的网络负载和i o 负载时 系统可能一直处在中断处理状态而没有 饥会运行任何任务 这样实时任务将永远无法运行 抢占延迟将是无穷大 所以 把l i n u x 引入强实时领域 构建满足强实时应用的l i n u x 实时操作系统显 得非常必要 它已经成为嵌入式系统领域的一个研究热点 目前实现l i n u x 系统强实 时化的方法大致分为两类 对内核进行大规模修改的兼容内核方法和对内核进行小规 西南交通大学硕士研究生学位论文第2 页 模改动的双内核方法 后者由于对内核改动小 效果明显且遵守g p l 得到了更广泛 的推广 它在l i n u x 内核之外 以内核模块的形式加载实时内核 该实时内核接管来 自硬件的所有中断 并依据是否是实时任务决定是否直接响应 这种方法的代表就是 新墨西哥州立大学f s m 实验室推出的r t l i n u x 和由意大利米兰理工学院航天工程系 发起的砌r a i 其中 r t a i 凭借其先进的底层实现思想 彻底的开放性 已成为开源实时l i n u x 系统研究的一个热点 本文就是基于a r m 9 处理器平台研究r t a i 在其上的实现机制 1 2 本文研究的背景和意义 r t a i 目前的稳定版本是3 8 它是基于a d e o s 实现的 它的硬件抽象层使用 a d e o s 超微内核提供服务 r t a i 实时内核与l i n u x 内核是共存的 其内核结构并不 像l i n u x 内核一样庞大 r t a i 实时内核小而精巧 能够很好地控制其中的代码质量 r t a i 实时内核完成了基本的硬件抽象层 任务调度管理和进程间通信管理模块等 它 能够完全满足强实时应用需求 a r m 处理器目前已经成为嵌入式领域主流处理器类型 因此在其上构建实时系统 以支持实时性嵌入式应用显得十分必要 目前实时系统在a r m 处理器平台上的应用 大多数都是上面说到的商用r t o s 因此 基于r t a i 上述优点 实现基于a d e o s 的 r t a i 在a r m 处理器上的移植应用 具有十分重要的意义 是r t a i 和a r m 开发者 及其爱好者不断追求和努力的目标 目前r t a i 的应用研究基本是基于x 8 6 处理器平台 在嵌入式处理器上的移植和应 用 虽然国外有在p o w e r p c 和a r m 上实现的报道 但是应用还不广泛 尤其支持的 嵌入式处理器还很少 比如目前比较成熟的只有r t a i 在基于i n t e lx s c a l e 架构的 p x a 2 5 5 上的实现 x s c a l e 是i n t e l 公司基于s u o n g a r m 技术开发的一种新型处理器架 构 虽然目前官方出现了针对a t 9 1 处理器的补丁 但网上相关的移植实现和应用报 道很少 几乎没有 因此通过对自主开发的基于a r m 9 处理器a t 9 1 r m 9 2 0 0 的开发 板进行r t a i 移植和测试研究 能够对r t a i 在a r m 上的嵌入式实时应用提供一定参 考 具有十分重要的理论和实际意义 1 3 本文研究的主要内容与论文结构 本设计完成基于a t m e l 公司a r m 9 架构a t 9 1 r m 9 2 0 0 处理器的电路设计 包括 测试需要的存储器及部分外围设备 随后 在其上移植b o o t l o a d e r l i n u x 以及r t a i 实时应用接口 最后 基于这个强实时环境 设计测试程序 验证了系统的实时性 1 3 1 本文的主要工作内容 具体包括以下几个方面的工作 5 探索和研究基于l i n u x r t a i 的双内核工作机制 理解r t a i 的强实时实现机 西南交通大学硕士研究生学位论文第3 页 制 理解a d e o s i p i p e 超微内核的原理以及实现机制 6 设计实现了基于a t 9 1 系列a r m 处理器a t 9 1 r m 9 2 0 0 能够提供强实时 l i n u x 系统测试的最小功能硬件电路 7 完成了b o o t l o a d e r l i n u x 文件系统在a t 9 1 r m 9 2 0 0 处理器上的移植工作 具体包括 b o o t l o a d e r 板级硬件初始化修改移植 l i n u x 配置 裁减和修改 如中断管 理 外设驱动等 r a m d i s k 根文件系统的制作 8 实现了基于a d e o s 口i p e 的r t a i 在a t 9 1 r m 9 2 0 0 处理器上的移植 它以 系统补丁的形式实现 主要包括a d e o s 超微内核的建立 r t a i 底层硬件抽象层 中 断处理模块 定时器管理模块的修改移植 9 设计了两个合理有效的实时测试应用程序 测试了r t a i 与传统l i n u x 之间 的实时性差异并进行性能分析 给出结果 为具体应用提供参考数据 1 3 2 论文结构 论文的文章结构为 第一章介绍国内外实时操作系统实时化改造的现状 对现存的嵌入式实时操作系 统做了简要比较 分析了课题的背景 意义及主要内容 第二章介绍了实时操作系统的实时要素和性能指标 重点分析在内存管理 进程 调度 任务响应延迟时间等方面的实时特性 并给出了几种实时l i n u x 架构 第三章介绍了测试硬件平台的电路设计相关内容 第四章基于a r m 分析a d e o s 超微内核及基于此的r t a i 的实现原理 并介绍了 l x r t 实时用户任务接口 第五章介绍了测试软件系统的构建 将b o o t l o a d e r l i n u x 2 6 内核 文件系统移植 到硬件平台 介绍了基于a d e o s i p i p e 的r t a i 在a r m 处理器上移植的要点 并实 现了r t a i 的移植工作 与l m u x 形成双内核实时系统 最后还分析了基于l i n u x r t a i 应用开发的原理 第六章设计了两个系统实时性能测试程序 并对系统实时性进行测试和分析 给 出结果 西南交通大学硕士研究生学位论文第4 页 皇皇 i i l i r a m r a m 曼曼曼皇皇曼曼毫曼曼皇曼曼鼍曼曼曼曼曼曼曼蔓 第2 章实时操作系统特点及实时l in u x 架构 本章通过介绍实时操作系统的概念 特点及性能指标 从而对实时操作系统有了 一个直观认识 重点介绍了内存管理 任务调度 中断响应时间 任务响应时间等影 响实时性的重要因素 论述了实时操作系统的结构和功能 介绍了l i n u x 实时化的一 些技术 并给出了几种实时l i n u x 架构 为后边论述r t a i 实时内核做好理论准备 2 1 实时操作系统特点 实时操作系统用于对事件响应速度要求很高的领域 如航空航天 军事控制等 其最重要的特点就是实时性 即系统的正确性不仅依赖于计算的逻辑结果的正确性 还取决于输出结果时间的及时性 从这个角度看 实时操作系统是一个能够在指定或 者确定的时间内完成系统功能和对外部事件做出响应的操作系统 5 j 按照对实时性要 求的程度 实时操作系统分为强实时和软实时两类 强实时要求可确定性强 具有明 确的实时约束 在某个限定的时刻之前不能完成任务将造成灾难性的后果 而软实时 也对时间敏感 但偶尔发生不能满足严格实时要求的情况也是允许的 实时操作系统要求事件响应时间可确定 任务切换快速以及系统的高可靠性 可 从中断响应时间 任务调度和切换时间 内存管理等方面考虑来达到这些要求 一个 实时操作系统一般具有以下特点 6 j 1 确定性 由于实时操作系统一般用于高实时要求领域 因此要求能对运行情况的最好和最 坏情况能做出精确的估计 需要在很短的时间内对事件作出确定性响应 不能存在不 确定性 避免导致灾难性后果 2 可抢占性 实时操作系统必须是是可抢占的 尤其是内核可抢占 当系统处于内核态运行时 当有更紧急的任务需要响应时 允许任务的重新调度 当然这种抢占也并不是说任何 时候都可以发生 例如在访问临界资源的时候 重新调度和中断都被禁止 以免破坏 数据统一性 3 中断响应和任务切换时间快速并可预测 实时事件一般由中断触发 处理器响应后调度实时任务运行 因此中断响应和任 务切换的时间应快速并可预测 才能保证实时任务快速运行 完成对实时事件的响应 2 2 实时操作系统性能指标 评价一个实时操作系统的性能主要从内存管理技术 任务调度算法 任务延迟时 间及中断响应时剐2 2 等方面考虑 西南交通大学硕士研究生学位论文第5 页 2 2 1 内存管理技术 任务需要在内存中执行 内存管理技术使得每一个任务都觉得在内存中只有自己 在运行 这种内存管理机制下 内存被分成不连续的固定大小的内存页以防止被其他 任务读取内存 实时操作系统内存管理的重点在于以下几方面 1 快速 确定的内存管理 最快速 最确定的内存管理方法就是不采用任何方 法的内存管理 c a c h e 技术和虚拟内存管理严重影响着实时任务执行的确定性和可预 测性 一些实时系统为满足实时需求会失效c a c h e 而且不使用虚拟内存技术 然而 实时操作系统至少会提供最基本的内存管理 通过系统调用进行内存分配和删除 2 设置页面锁 页请求澍2 3 是操作系统分配有限内存空间的常用方法 每个任 务得到一定数目的页 暂时没有访问的页被置换出来给其他任务提供空间 这种置换 是不确定的 因此实时操作系统的m m u 应该给实时任务韵页设置锁 防止换页带来 的开销 3 内存动态分配策略 任务在生存周期中的内存需求是变化的 它可以向操作 系统申请更多的内存或释放多余的内存 实时操作系统必须保证内存动态分配的确定 性 实时任务需要的页可以从一个锁定的内存池中得到 然而应慎用动态分配机制 因为不能保证内存池中总有足够的空页 4 内存共享技术 任务间消息传递的有效方式之一就是共享内存 它可以用来 实现实时任务和普通任务之间的通信 2 2 2 任务调度 实时操作系统的任务调度算法应满足实时性要求 要求调度算法能快速运行以节 约时间 并能够保证实时任务能够很快被调度运行 因此调度算法需要在算法的简洁 性和最优化之间作出折衷 通用操作系统和实时操作系统之间的差别很大程度上在于 它们的调度算法不同 通用操作系统注重性能的同时追求更大的吞吐量 而实时操作 系统则需要保证任务的实时性和确定性 1 9 1 实时操作系统一般在任务调度算法上下了 很大功夫 设计一种最佳通用算法通常是相当复杂的 实时操作系统喜欢采用简单调 度算法 因为这将得到一个小而确定的运算时间数 2 2 3 任务响应延迟时间 实时操作系统的目标是满足实时任务快速的响应时间要求 因此任务响应延迟时 间是实时操作系统一个重要性能指标 实时任务一般是周期性的 它的一次运行一般由内部或外部中断触发 如它所等 待的设备i 0 完成 当中断产生后若当前允许中断 则保存当前运行的任务跳转到中 断服务程序 可在中断服务程序中唤醒实时任务 精短的中断服务程序执行完后返回 如果当前系统允许进程调度且实时任务满足被调度条件 则调度实时任务运行 从实 西南交通大学硕士研究生学位论文第6 页 时任务等待的中断产生到实时任务开始运行之间的这段时间就是这里所说的任务响应 延迟时间 2 2 1 为了更好的理解 下面给出一个简化的l i n u x 任务响应模型进行分析 如图2 一l 在这个任务响应模型中 任务2 的优先级高于任务l t o 时刻 任务l 在运行 任务2 休眠 等待中断唤醒 t 1 时刻 任务1 请求系统调用 系统进入内核态 t 2 时 刻 外部中断产生 但由于系统在内核态进行某些临界区或同步操作不希望被中断 所以中断被记录但没有被及时响应 t 3 时刻 内核态执行完临界区或同步操作使能中 断响应 c p u 开始响应中断 t 4 时刻开始执行中断服务程序 中断服务程序唤醒任务 2 t 6 时刻 中断服务程序执行完返回 此时可能处于自旋锁保护的临界区或显示使 用失效抢占的区域 因此任务2 无法抢占任务1 的控制权 任务1 的继续运行 t 7 时 刻 任务1 系统调用结束或主动请求任务调度 系统开始进行任务调度 若任务2 满 足被调度运行条件 则在t 8 时刻运行任务2 从t 2 时刻到t 8 时刻这段时间 就是任 务响应延迟时间 从图可知 任务响应延迟时间主要由以下几个部分组成 1 中断响应延迟时间 是指从中断产生到相应的中断服务程序开始执行之间的 时间段 在图中包括中断潜伏期和中断准备阶段 中断潜伏期是指从中断产生到c p u 开始响应中断的时间段 这时可能在进行临界区数据访问或同步操作因此无法及时响 应中断 另外中断潜伏期实际上还包含了硬件电路产生中断的延迟时间 但是这个值 很小 通常可忽略 中断准备阶段是指从c p u 开始响应中断请求到开始执行中断服务 程序之间的时间段 这个期间主要完成查找中断号 保存寄存器 定位中断服务程序 等工作 这个时间依赖具体硬件平台且一般是确定的 2 中断服务时间 是指中断服务程序从开始运行到结束的时间 这个时间与具 体的中断或者说具体的应用有关 是可控的 3 中断返回阶段 是指从中断服务程序执行完到被中断代码重新开始运行的时 间段 主要是恢复寄存器的值 这个时间段一般也是固定的 4 调度潜伏期 是指从系统需要进行任务调度到调度器开始执行的时间段 何 时需要调度取决于进程结构n e e dr c s c h e d 值等众多要素 5 进程调度时间 是指调度器开始运行到选择就绪任务开始运行的时间 就是 调度程序运行时间 主要工作是根据系统资源情况 进程优先级及运行情况等因素 选择合适的进程进行调度运行 至里耋鎏查耋至圭至窑耋耋堡兰塞兰 至 用户态内棱态中断执行 时间 扫中鞋严生 一 n 蝴醚 一 中断近日n 最 进程讽度阶段 口任务 口 任务2 r ij 中断雇务程序 图2 1l i n u x 任务响应模型 如果以上几个部分都是确定的并可预测 则说明该系统是实时的 从上面分析知 道 其中中断准备阶段 中断服务时间以及中断返回阶段三个时间是确定并可控的 因此影响系统实时性的因素主要有中断响应延迟时间 调度潜伏期和进程调度时间 可归纳成以下两点 1 中断响应延迟时间 包括中断潜伏期和中断准备期 2 上下文切换时间 包括保存当前任务时间 调度延迟时间和被调度任务进入 系统时间 上下文切换时间能够较好地反映出系统本身的执行性能 但它的长短随系 统负荷的不同会有较大的变化 因此在测上下文切换时间时 最好使系统运行在高负 荷下 23 实时l in u x 架构 由于l i n u x 的开源性 用户可以根据需求定制和修改内核 其中对l i n u x 进行实 时化改造 已经成为目前实时操作系统研究的热点 对l i n u x 的实时性改造通常有两 个大方向 一是从l i n u x 内核内部着手 直接修改内核源代码 使内核能够满足软实 一 l j j 二 塾蜃 矿k 一 呻 j l ii n 啦 鹳h 憾 竹惦 西南交通大学硕士研究生学位论文第8 页 皇皇曼鼍曼皇曼曼曼曼曼曼皇曼皇舅曼曼曼曼皇曼曼舅曼鼍曼詈鼍曼皇曼曼曼曼曼皇曼曼曼皇曼曼曼曼曼曼鼍皇曼皇ii i i i i i 舅皇曼曼曼舅曼曼曼曼曼曼舅量曼 时要求 在一定程度上也满足了强实时要求 二是从l i n u x 内核的外围着手 实现一 个与l i n u x 内核共存的实时内核 这样对l i n u x 内核源代码就不需要做过多的修改 这种方式下 可以确保强实时级别的响应时间 2 3 1l i n u x 实时化改造技术 下面就当前改进l i n u x 内核实时性能方面的思路和方法 5 进行分析和讨论 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 开中断时 模拟层就会根据中断日志调用中断服务程序 通过软件中断模拟技术 可 以有效防止外部中断的丢失问题 2 实现可抢占内核 通过上一节对l i n u x 任务响应模型的分析可以看出 调度潜伏期对任务响应时间 的影响非常大 所以l i n u x 实时化的一个重要手段就是缩短调度潜伏期时剐1 9 调度 潜伏期与l i n u x 在内核态的运行时间有关 因此实现内核可抢占可以提高系统实时性 要实现可抢占内核 主要工作就是找出哪些代码可能被进程并发调用 并对相关的临 界区进行保护 在可抢占内核中 当有高优先级进程可以运行时 系统会立刻进行进 程调度 当然 在某些情况下内核抢占也是不允许的 例如当系统正在执行中断服务 程序 或系统运行时持有自旋锁 写锁或读锁 又或内核正在运行进程调度程序时 都不允许抢占 所以实现可抢占内核要完成的主要工作包括修改中断返回代码 修改 自旋锁机制以及修改调度程序 3 实现细粒度定时器 l i n u x 本身的定时器精度比较粗糙 而实时系统对定时器的精度要求较高 实现细 粒度定时器的一种方法就是提高定时器的频率 但这种情况下定时器的中断服务程序 的运行频率也提高了 系统花在任务处理上的时间就减少了 从而降低了系统的性能 另一种方法是使定时器运行在单触发模式 定时器产生一次中断后就不再运行 系统 根据任务对时间的要求计算出下一次中断产生的时间 并对定时器编程 这与周期模 式不同 在单触发模式下 定时器精度能达到微秒级 不过由于每次中断后都要计算 时间并对定时器编程 这会降低系统的性能 使用哪种定时器方案视具体应用而定 4 优化调度算法 西南交通大学硕士研究生学位论文第9 页 从前面任务响应模型的分析可知 任务响应时间还与调度程序执行时间有关 目 前对调度算法的优化主要使用将实时进程和普通进程分开调度的策略 可以通过分级 调度实现 通过这样的方法 可以缩短实时进程的调度时间 提高实时任务的响应速 度 5 实时双内核机制 前面几种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 下丰富的应用 2 3 2 几种实时l in u x 架构 标准l i n u x 2 6 内核已经在实时性方面做了不少改进以减少任务响应时间 但远不 能满足实时性要求 因此越来越多的研究机构和商业团体开展了实时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 n u x r k q l i n u x m o n t av i s t al i n u x s i l k 等 下面介绍目前几种流 行的实时l i n u x 改造方案和架构 1 p r e e m p t r t 实时l i n u x 通过p r e e m p t r t 实时补丁直接修改l i n u x 内核 以满足软实时要求 在一定程度 上还能满足强实时要求 适用于延迟要求稍低的实时系统 37 1 其中不少实时技术已经 并入官方内核 同时以i n g om o l a r 带领的内核开发团队在不断地进行维护与更新 p r e e m p t r t 实时补丁与l i n u x 官方内核几乎同步 p r e e m p t r t 实时l i n u x 架构如图2 2 所示 这种架构的好处在于 应用程序的开 发与标准l i n u x 应用开发毫无区别 可以完全利用l i n u x 提供的丰富的资源接口 可 在用户空间或内核空间创建实时任务 用户空间实时任务的好处是它受操作系统的保 护 不会因为设计不当引起整个系统的崩溃 同时也便于调试 内核空间实时任务减 少了用户态到内核态的开销 效率相对要高 但编程错误易引发系统崩溃 同时也难 于调试 西南交通大学硕士研究生学位论文 第10 页 用户态 用户空间 用户态 实时进程 非实时进程 内核态 内核态 实时进程 t h e m p t r fz 纽眦内核 非实时进程 图2 2p r e e m p t r t 实时l i n u x 架构 2 双内核机制r t l i n u x r t l i n u x 在l i n u x 内核的下层实现了一个简单的实时内核 r t h a l 而l i n u x 本 身作为这个实时内核的优先级最低的任务 所有的实时任务的优先级都高于l i n u x 系 统本身以及l i n u x 系统下的一般任务胆o j r t l i n u x 架构如图2 3 r t l i n u x 实时内核主 要功能包括实时任务管理和中断管理 由于l i n u x 内核是最低优先级任务无法抢占 因此实时任务总能得到及时的运行 从而能够完全满足强实时的要求 己缸d 实时进程 标准z 蛔毯内核 图2 3r t l i n u x 架构 3 基于a d e o s i p i p e 超微内核的l i n u x r t a i 前面提到的r t l i n u x 内核是包含任务管理和中断管理的最小内核 而超微内核则 对内核进行进一步的缩减 它不像是一个内核而更像是一个硬件抽象层 h a l t 6 1 超微内核为运行更高级别的多个操作系统提供了硬件资源共享 目前基于l i n u x 的实 现有a d e o s i p i p e 它可以为其上运行的操作系统域提供优先权 从而达到完全满足 强实时的要求 基于a d e o s i p i p e 超微内核实现的l i n u x r t a i 架构如图2 4 所示 本设计采用的实时l i n u x 架构就是这一种 西南交通大学硕士研究生学位论文第11 页 实时任务 r t a i 实时内核 图2 4 基于a d e o s p i p e 的l i n u x r t a i 架构 西南交通大学硕士研究生学位论文第12 页 第3 章测试硬件平台电路设计实现 根据设计要求 系统硬件应满足l i n u x r t a i 能够在其上稳定运行 并能够进行系 统实时性测试 市场上基于a t 9 1 r m 9 2 0 0 的开发板基本把所有的功能部件都实现 因 此价格普遍很贵 而本设计没必要用到处理器所有功能 为减小成本 所以自行设计 基于a t 9 1 r m 9 2 0 0 的测试硬件平台 设计没有把a t 9 1 r m 9 2 0 0 所有功能都实现 除 了考虑成本因素 还考虑了系统调试和测试难度 为降低调试和测试难度并保证系统 稳定运行 本设计只进行了最小功能模块设计 如存储器 调试串口 以太网接口等 并把所有功能引脚都外扩出来 为日后扩展应用提供接口 本章先给出了系统硬件的 总体设计图 详细介绍了电路各模块的原理与设计工作 随后说明了设计和调试p c b 电路板应注意的事项 最后给出了p c b 图和开发板实物图 3 1 系统硬件总体设计 系统硬件设计框图如图3 1 所示 由于本课题是实现l i n u x r t a i 在a t 9 1 r m 9 2 0 0 开发板上的移植工作并测试系统的实时性 所以硬件电路仅设计了基于a t 9 1 r m 9 2 0 0 的最小系统 并包含了开发调试和传输文件必备的接口 其中s d r a m 用作内存是必 要的 n o rf l a s h 主要用于存放压缩映像文件 n a n df l a s h 可存放用户文件 也可用 于存放大文件系统 j t a g 用于下载和调试程序 串口用于打印调试信息以及下载文 件至目标板 以太网口则用于目标板与宿主机之间的高速通讯 其他接口用引线引出 以便扩展之用 图3 1 系统硬件设计框图 西南交通大学硕士研究生学位论文第13 页 硬件开发板的元件分布示意图如图3 2 根据处理器引脚的功能分布合理安排元件 的位置即所谓布局 可简化p c b 布线工作并提高电路的正确

温馨提示

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

评论

0/150

提交评论