




已阅读5页,还剩64页未读, 继续免费阅读
(交通信息工程及控制专业论文)Windows+2000实时性研究及其在PCI数据采集中的应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
w i n d o w s 2 0 0 0 实时性研究及其在 p c 数据采集中的应用 y5 8 6 3 7 9 摘要 随着计算机技术的发展,很多实时应用趋向于使用开放的、 标准的、通用的操作系统。wi n d o w s 2 0 0 0 操作系统以其图形用户 接口 和健壮性在桌面计算环境中得到广泛应用,一些实时系统领 域的开发人员也在尝试把它用于实时数据采集系统。然而众所周 知, w i n d o w s 2 0 0 0 的 设计目 标并非实时操作系统( r t o s ) ,而是一 个通用操作系统,那么,如何对 win d o w s 2 0 0 0 进行扩展使其符合 r t o s的要求是本文研究的重要内容。 p c i 总线是近年来在工作站和个人微机中得到广泛使用的一 种局部总线规范。p c i 总线可提供 3 2 位或 6 4 位数据宽度。在 3 2 位数据宽度下,可提供最大 1 3 2 m b / s的数据传输率。随着计算机 技术的发展,对高速、高性能板卡的需求将会越来越大,微机中 低性能的i s a总线必将被淘汰。因此,只有符合 p c i 标准的板卡, 才能适应未来的需要。 本文首先在对实时系统和 wi n d o w s 2 0 0 0 细致分析的基础上, 提出了将wi n d o w s 2 0 0 0 用于实时应用时,对win d o w s 2 0 0 0 进行 实时性扩展的不同解决方案;随后本文对不同实时任务调度算法 进行了深入的研究分析,并通过在wi n d o w s 2 0 0 0 调度器基础上增 加一个可装载多策略调度器的途径实现了一个改进的r ms 调度算 法:最后结合一个 p c i 数据采集卡的设计实现,阐明了p c i 局部 总线的工作原理和 wd m驱动开发方法。 通过这些论述, 解决了将 wi n d o w s 2 0 0 0 用于工业实时控制应 用时需要解决的基本问题,同时, 本文给出的wi n d o w s 2 0 0 0 实时 性改进措施、多策略调度器、基于wd m 的p c i 驱动开发模式等 都具有一定的通用性和指导意义,可供同领域的其他人员借鉴参 考。 关键词:实时系统实时操作系统 wi n d o w s 实时调度p c t wd m驱动程序 2 0 0 0 中断 数据采集 t 终k 奔、 衬全, 1 .c 1 1 ; 导师 局 食 wi n d o w s 2 0 0 0 实时性研究及其在p c i 数据采集中的应用 abs tract wi t h t h e d e v e l o p m e n t o f c o m p u t e r s c i e n c e , m a n y r e a l t i m e a p p l i c a t i o n s t e n d t o u s e o p e n , s t a n d a r d a n d u n iv e r s u a l o s . wi n d o w s 2 0 0 0 o s i s c o m m o n ly u s e d o n d e s k t o p w i t h i t s g r a p h i c a l u s e r i n t e r f a c e a n d s t r o n g h a l e n e s s , n o w s o m e r e a l t i m e s y s t e m d e v e l o p e r s a r e t r y i n g i t o n r e a l t i m e d a t a a c q u i s i t i o n . h o w e r v e r , i t i s w e l l k n o w n , wi n d o w s 2 0 0 0 i s n o t d e s i g n e d f o r a r t o s , b u t a u n i v e r s u a l o s , t h e n h o w t o ma k e wi n d o ws 2 0 0 0 f e a s i b l e f o r r t os i s t h e ma i n t a s k f o r t h i s p a p e r . p c i b u s i s w i d e l y u s e d in w o r k s t a t i o n a n d p e r s o n a l p c . p c i b u s p r o v i d e 3 2 b i t s o r 6 4 b i t s d a t a w i d t h . wh e n 3 2 b it s , i t s b i g g e s t d a t a t r a n s m i s s i o n s p e e d i s 1 3 2 mb / s . wi t h t h e d e v e l o p m e n t o f c o m p u t e r s i c i e n c e , h i g h s p e e d a n d p e r f o r m a n c e c a r d s a r e l a r g e l y n e e d e d , a n d t h e lo w p e r f o r m a n c e i s a c a r d s m u s t b e w a s h e d o u t . t h i s p a p e r f i r s t l y d o e s d e e p l y a n a l y s i s i n r e a l t ime s y s t e m s a n d wi n d o w s 2 0 0 0 , t h e b r i n g s o u t d i f f e r e n t s o l u t i o n s t o t h e r e a l t i m e e x t e n s i o n o n wi n d o w s 2 0 0 0 ; t h e n d o e s d e e p l y r e s e a r c h i n r e a l t i m e t a s k s s c h e d u l i n g a n d r e a l i z e s a k i n d o f n e w s c h e d u l i n g a r i t h m e ti c r ms b a s e d o n wi n d o w s 2 0 0 0 s c h e d u l e r ; l a s t g i v e s o u t a a p p l i c a t i o n o n p c i d a t a a q u s i t i o n c a r d , c l a r i f i e s l o c a l b u s w o r k p r i n c ip le s a n d wd m d r i v e r d e v e l o p m e n t m e t h o d s . b y t h e d i s c u s s e s a b o v e , t h i s p a p e r r e s o l v e s t h e b a s i c p r o b l e m t o u s e wi n d o w s 2 0 0 0 i n i n d u s t ry c o n t r o l a p p l i c a t i o n s a n d p u t s f o r w a r d a k i n d o f n e w m e t h o d t o e x t e n d wi n d o w s 2 0 0 0 r e a t i me p e r f o r ma n c e . a t t h e s a m e t i m e i t i s i n s t r u c t iv e i n p c i d r i v e r d e v e l o p m e n t w i t h wd m mo d e l . k e y wo r d s : r e a t i m e s y s t e m r e a l t im e o s wi n d o w s 2 0 0 0 in t e r ru p t r e a l t i m e s c h e d u l i n g p c i wd m d r i v e r d a t a a q u i s i t i o n wi n d o w s 2 0 0 0 实时性研究及其在 p c i 数据采集中的应用 前 言 随着计算机技术的飞速发展和普及,数据采集系统在工业生 产及科研中也迅速地得到应用。数据采集系统的任务是对生产或 实验现场各种参数进行实时采集,然后送入计算机,根据不同的 需要由计算机进行相应的计算和处理,得到所需的数据。与此同 时,将计算得到的数据按要求进行显示或打印,以便实现对某些 物理量的监视。一个好的数据采集系统,一般需要长时间、高速 度地进行数据采集。因此,在数据采集系统中,采用一个合适的 操作系统和数据采集卡,并设计一套高效的实时调度算法具有十 分重要的地位。 基于p c 硬件平台的数据采集和控制技术近年来得到迅猛发展 和广泛应用。在 p c操作系统当中,win d o w s 2 0 0 0 具有完善的内 存管理机制和网络功能, 支持多c p u 以及基于wi n 3 2 a p i的编程 接口,这些优点已经使得它成为事实上的标准桌面通用操作系统。 然而wi n d o w s 2 0 0 0 并不是实时操作系统, 所以,在将其应用于必 须处理实时异步事件的数据采集和控制领域,有一些专门的问题 有必要进一步研究探讨。 p c i总线是近年来在工作站和个人微机中得到广泛使用的一 种局部总线规范。 p c i 总线可提供3 2 位或6 4 位数据宽度。在3 2 位数据宽度下,可提供最大 1 3 2 m b / s 的数据传输率。随着计算机 技术的发展,对高速、高性能板卡的需求将会越来越大,微机中 低性能的i s a总线必将被淘汰。因此, 只有符合p c i 标准的板卡, 才能适应未来的需要。 随着科学技术的发展和人类对外部世界认识的不断深入,人 们对数据采集系统的各项指标,如速率、分辨率、精度、输入电 压范围、控制方式以及抗干扰能力等方面提出越来越高的要求。 一些现代电子系统都面临高速、大容量数据流的运算和处理问题。 高速高精度的大量获取目 标数据,并进行实时信号处理,对目 标 的检测和识别也是非常重要的。显然,高速,大容量的数据流以 及对信号处理实时性的要求己成为现代电子系统的一个重要特 点。同时,人们对外部世界的了解也要求更细微、更精确。这些 都使得传统的低速数据采集系统显得力不从心。在许多应用场合, 如特别是实时性要求高的情况下,人们需要设计和应用高速数据 采集系统,以在极短的时间内获得大量的数据,于是,速度,作 为评价高速数据采集系统的一项重要指标也越来越受到重视。 wi n d o w s 2 0 0 0 实时性研究及其在p c i 数据采集中的应用 本文将给出较为详细的wi n d o w s 2 0 0 0 用于实时系统的技术可 行性分析以 及实现时的一 系列关键技术, 并结合一个基于 p c i 局 部总线的实时数据采集系统的设计与实现方案, 提出了将win d o w s 2 0 0 0用于实时应用时,对它的实时性扩展的不同解决方案:通过 在w i n d o w s 2 0 0 0 调度器基础上增加一个可装载多策略调度器的途 径实现了一个改进的r ms 调度算法; 阐明了p c i 局部总线的工作 原理和 wd m 驱动开发方法。希望本文能对从事同类应用开发的 开发人员起到一定借鉴参考作用。 本文第一章主要对实时系统做了详细的分析讨论,给出了实 时系统的定义、分类、特征、性能指标,并重点分析了实时操作 系统的有关概念和基本特征。 第二章对wi n d o w s 2 0 0 0操作系统的 内核结构、线程调度、内存管理、驱动开发进行了全面地阐述。 第三章在对wi n d o w s 2 0 0 0 操作系统实时性分析的基础上,给出了 扩展wi n d o w s 2 0 0 0 系统的四种解决方案, 最后在分析已 有实时调 度算法的基础上讨论了一个改进的 r ms调度算法在 wi n d o w s 2 0 0 0 上的实现。第四章讨论了p c i 局部总线的操作原理,分析了 p c i 在数据采集中的应用前景和关键技术。最后,第五章讨论了 win d o w s 2 0 0 0 驱动程序开发的一般技术和方法, 给出了基于wd m 的p c i 接口卡的驱动程序的设计和实现。 wi n d o w s 2 0 0 0 实时性研究及其在 p c i 数据采集中的应用 第一章实时系统概述 1实时系统基本概念 实时系统是指能够在确定时间内执行计算或处理功能并对外 部的异步事件做出响应的计算机系统。其中 “ 确定时间”是最根 本的要求,系统的正确性不仅取决于处理的结果在逻辑上的正确 性, 更取 决 于 获 得结 果的 所 需的 时 间 1 1% 实时系统按照用途可以分为实时控制系统、实时数据库、实 时网络和实时多媒体系统等,在本文中实时系统主要指实时控制 系统。实时计算机控制系统和普通计算机系统不同。尽管两者都 希望计算机资源的利用率更高,计算速度更快,信息吞吐量更大, 但是一般非实时的科学计算和管理系统最终获得的结果很少和在 什么时间得到结果有关系。然而,实时计算机控制系统必须与外 部世界相互作用,外部世界由工作环境、设备硬件和在其中发生 的事件表示。系统在响应这些事件时所进行的判断、推理和计算, 不仅要保证产生正确的结果,而且要保证在确定的时间内产生结 果。所以实时系统要集中全部资源,保证控制任务准时完成。两 者进一步的区别是,非实时系统常常以传统的串行方式进行,而 实时系统却是多任务并行的方式进行。 1 . 11 . 1实时系统的分类 . 1强实时系统iil 它要求的响应时间和处理时间短而确定,如果超出规定要求 的时间,所产生的结果就完全不可用,而且系统可能会崩溃。其 响应时间通常在微秒到毫秒之间。 1 . 1 . 2弱实时系统n ) 它对于响应时间和处理事件的要求相对要低,如果时间超出, 仅仅是不符合规格,会严重影响系统的性能,但是所产生的结果 仍然是可用的。其响应时间通常在毫秒至秒级。 win d o w s 2 0 0 0 实时 性研究及其在p c i 数据采集中的应用 1 . 2实时系统的特点 1 . 2 . 1实时性 实时和快速是两个不同的概念。一个计算机系统处理速度的 快慢,主要取决于硬件系统的设计,尤其是所采用的处理器的速 度。而对于一个硬件结构已经确定的计算机系统,它的实时性完 全取决于它的操作系统。在实时系统中,能够在确定时间内对事 件作出响应是最为基本和重要的要求。 1 . 2 . 2多任务 实时系统总是和多任务联系在一起。实时系统的核心就是实 时多任务操作系统,而是实时多任务操作系统的核心就是它的任 务调度方式。一个实时操作系统的任务调度程序必须能随时中断 正在运行的任务,对内部和外部发生的时间在确定的时间内做出 响应,也就是说,它必须具有 “ 抢占式”的任务调度机制。 1 . 2 . 3可靠性 实时系统在可靠性、重启动和故障恢复方面的要求相对要高。 由于它控制和监视着现实世界,因此失去监视或控制,可能会导 致严重的后果。因此,实时系统大多包含重新启动和故障恢复机 制。 1 . 2 . 4异步性 实时系统常常用来处理一个连续输入数据流,而到达序列和 数据容量很难提前预测准确,因此,实时系统必须要响应异步事 件。 1 . 3实时系统的性能指标 1 . 3 . 1响应时间【, 系统的响应时间是从系统检测到一个内部或外部事件到发出 响应动作这段时间,而任务切换时间和中断等待时间是影响反映 时间的两个关键因素。任务切换时间,即系统在两个独立任务之 间切换所需的时间。中断等待时间,是指处理器收到中断请求到 执行中断服务程序的第一条指令所需的时间。 1 3 , 2数据传输率川 数据传输率指串行/ 并行数据进出系统的速度。p o设备的性 能、总线延迟、缓冲区大小、磁盘性能以及整个系统的设计都对 数据传输率有很大的影响。 w i n d o w s 2 0 0 0 实时性研究及其在p c i 数据采集中的应用 2实时操作系统概述 实时系统的核心和灵魂是他所采用的操作系统。实时操作系 统的研究是从 2 0世纪 6 0年代开始的。 从系统结构上看,迄今 己经历了三个阶段:系统监控软件阶段、软组件结构的实时操作 系统以 及基于微内 核思想的可伸缩内 核( 超微内 核) 结构的实时 操 作系统。通过实时操作系统,将可以在更高层次上进行研究和开 发,把重点放在满足用户最终的应用需求上,而不是在复杂的具 体系统硬件的研究和开发上。 2 . 1实时操作系统应具备的主要特征 1 )中断的 优先级机制: 所 有的 操作 系 统都必 须有一个优 先级调 度 机制, 但实时操作系统必须提供一个允许高优先级任务中断低 优先级任务的中断机制。 2 )作业抢先调度机制: 优先级保证级别高的作业先于级别低的作 业运行,以保证确定的响应时间。 3 )内 存锁定机制: 由 于中 断响 应是异步的, 不可再现的 事件, 因 为它们必须被立即处理, 而不应该先花时间把处理程序从磁盘 调入内存。 为了保证响应时间, 实时操作系统必须有一个内存 锁定机制,即主存中常驻一些处理程序,以免系统调页开销。 4 )多任务同步机制: 一个多任务 操作系统具有任务间传递消息和 保证任务同步的机制, 因此, 操作系统必须提供多任务同步机 制, 使用信号队 列、 消 息 等来 完 成同 步。 d 1 2 . 2实时操作系统的国内外应用现状 当今世界上占优势地位的p c机操作系统是mi c r o s o ft公司的 wi n d o w s系列操作系统, 例如wi n d o w s 9 x / n t / 2 0 0 0等。其操作 系统以较高的性能价格比、美观的人机界面、方便快捷的操作以 及易学易用性等受到了广大 p c 2 0 0 0操作系统由于其可靠性好、 业应用领域中在p c 机用户的支持,其中 wi n d o w s 安全性高等优点,逐渐地成为工 机上进行应用开发的主流操作系统。 广, 目前,专用的实时操作系统大多在嵌入式应用领域内应用较 其软件编程相当复杂,编程工作量很大,系统升级和维护的 wi n d o w s 2 0 0 0 实时性研究及其在p c i 数据采集中的应用 工作量也很大;更为重要的是,这类专用的实时操作系统价格昂 贵,以v x w o r k s为例, 一套 v x w o r k s实时操作系统的价格大约 为1 0万元人民币,而且只能安装在一台计算机上。 在p c机上运行的操作系统主要有mi c r o s o ft公司的win d o w s 系列操作系统、 u i n x操作系统以及l i n u x操作系统等。 为了在p c 机上研究和开发满足应用要求的实时系统而完全抛弃正在运用的 现有的成熟操作系统,这是不具有吸引力的,这样将不得不完全 放弃现有的成熟p c机操作系统所提供的强大功能, 包括丰富的图 形用户界面( g u i )、 数据分析和数据显示软件包等。因此在现有 成熟的 p c机操作系统的基础上研究和开发满足应用要求的实时 系统,将是一个具有重要意义的研究方向。 2 . 3选择实时操作系统的基本依据 1 )可移植性: 处理器的 发展越来越快, 性能 越来越来高, 对于不 同类型的应用, 设计者可能要选用不同类型的处理器。 为了能 够长期使用一个操作系统, 就要求它所支持的处理的类型越多 越好。 为了达到这个要求, 所采用的操作系统最好用高级语言 实现。 2 )可伸缩性: 由 于实时 控制软件时 对于外部设备的直接控制与操 作,它们一般要装在各种测量、 通信设备上,这就要求操作系 统的代码规模尽量要小, 要紧凑。目 前最为流行的和最具发展 前途的操作系统结构是为内核结构。 这种结构便于裁减, 可以 更好的处理系统的规模可伸缩性问 题。 3 )现有软硬件基础: 一般流行的 操作系统都有与之对应的程序编 辑具、编译、 连接、 调试工具, 有完善的系统函数库或者类库 可以直接调用,提高开发效率。 4 )网 络功能: 当今世界, 一个优秀的实时操作系统必须具有网络 功能,高度可靠和高效率地实现t c p / i p 等网络协议。 5 )标准化程度:目 前操作系统领域比 较公认的市场标准是从 u n i x系统发展而来的p o s i x a p i 接口 标准。d 1 3应用w i n d o w s 2 0 0 0 做实时系统开发 wi n d o w s 2 0 0 0 操作系统以 其图 形用户接口 和健壮性在桌面计 算环境中得到广泛应用,一些实时系统领域的开发人员也在尝试 w i n d o w s 2 0 0 0 实时性 研究 及其在p c i 数据采集中的应用 把它用于实时数据采集系统。然而众所周知,w i n d o w s 2 0 0 0 的设 计目标并非实时操作系统,而是一个通用操作系统,更准确地说 是一个网络操作系统,那么,究竟能否把它用于实时数据采集系 统呢? 3 . 1 可行性研究 1 ) w i n d o w s 2 0 0 。 是抢先多任务的, 线程具有3 2 个优先级, 其中 有1 6个级别处于实时类优先级。对于复杂实时系统来说, 其 优先级数略显不足, 但对于简单的实时系统应该能够胜任。 另 外,它具有丰富的线程同步机制,如事件、互斥体、信号量、 临界区等。 但是它的线程同步机制是难以预测的, 因为它没有 很好地 解决 优先级倒置问 题。 2 1 2 ) w i n d o w s 2 0 0 。的中断 机制也是基于优先级可抢先的。高 优先 级的中断可以抢先低优先级中断, 这增加了系统行为的可预测 性。 w i n d o w s 2 0 0 0提倡中断处理分为两步: 首先在中断服务 例程( i s r )中完成一些必要的设置, 这里的处理要尽量少; 然 后由设备驱动将一个延迟过程调用( d p c ) 请求排队,在 d p c 里完成大部分工作。 这种安排, 客观上缩短了驱动程序级别的 中断延迟。但是由于d p c不是基于优先级的,而是先来先服 务, 所以对于用户程序级来说反倒是增加了中断响应的不可预 测 性。 z 1 3 ) w i n d o w s 2 0 0 0提供了 几种解析度较高的定时器, 可以 在实时 系统获 得更 具确定性的时 间 间 隔。 利用g e t t i c k c o u n t 0 a p i , 应用程序可以获得系统时钟精度达 i o m s 。 利用多媒体定时器, 最小时间解析可以达到i m s 。 解析度最高的是高解析度性能计 数器,在i n t e l c p u上可以达到的精度大约在0 . 8微秒左右, 它 可以 通过w in 3 2 q u e r y p e r f o r m a n c e c o u n t e r 0 a p i 得 到。 17 1 4 ) wi n d o w s 2 0 0 0是基于 虚存系统的,页面的 换入换出 显然会影 响实时系统的可预测性。所幸的是,wi n d o w s 2 0 0 0考虑到了 实时系统的需要, 它采取了一些措施尽量减少换页带来的不利 影响: : 换页动作发生在实时优先级以下; w i n d o w s 2 0 0 0 允许应用程 序把自 己 锁到内 存( 使用 v i r t u a l l o c k ( ) a p i ) , 免受 换 页的 影 响。 2 1 5 ) wi n d o w s 2 0 0 0中把大多数窗口 和图形代码从用户态进程描述 表中移到了在核心态运行的一组可调用的服务中。 这种移动改 善了系统的总体性能 尤其是提高了图形绘制的速度, 使之更 w i n d o w s 2 0 0 0 实时性研究及其在p c i 数据采集中的应用 适合于图形密集的场合。 综上所述,虽然win d o w s 2 0 0 0 不是r t o s ,但还是提供了对 实时系统一些有用的支持。 wi n d o w s 2 0 0 0 丰富的绘图a p i以及 友好易用的开发环境,极大地方便了需要大量绘图的数据采集系 统的开发,因 此, 我们说 w i n d o w s 2 0 0 0可以 用于实时数据采集系 统,只是在系统的整体设计实现中要注意一些特殊问题,以便充 分挖掘其实时性,以满足系统实时性要求。 3 . 2 需要解决的主要问题 3 . 2 . 1设备数据缓冲区设计 数据采集系统中一般要使用定制的硬件板卡。为了减轻软件 的压力,提高整个系统的响应能力,板卡的设计要注意采用较大 的缓冲区。采用乒乓双缓冲甚至多缓冲往往能使系统吞吐能力得 到意想不到的提升。当一个缓冲区满时,发出中断让软件处理, 而同时其它缓冲区还可以接收数据。 板卡到p c机一般应采用中断 方式,而且尽量提高设备的中断 请求( irq ) 级别,数据量极大时 可以考虑采用d ma方式。 另外, p c机的配置尤其是内存容量越 高越好,对于某些不必要的设备如光驱在系统开发完成后可以卸 掉,以免与我们的专用设备争夺资源。 3 . 2 . 2设备驱动程序设计 基于w i n d o w s 2 0 0 0的 数据采集系统软件中, 设备驱动程序是 非常关键的一环。它要处理来自硬件的中断,进行数据接收,还 要负责向上层应用软件提供数据,因此它的性能对整个系统性能 有较大影响。一般在驱动程序层也要考虑安排大缓冲区,并且直 接在i s r中 完成数据接收处理, 而不要在排队的d p c中 处理( 这 虽然违背了mi c r o s o ft的建议,但由于数据采集系统的任务比较单 一, 这样做无可厚非) ,以 提高系统响应的可预测性。 数据接收完 成后,一般要通过置一个核心事件对象的状态为 “ 有”信号,来 通知上层程序数据准备就绪。驱动程序与上层程序之间的数据传 递有两种方式:缓冲u o和直接 u o 。 对于数据量大的情况, 应该 采用直接 u o方式, 因为它比缓冲u o至少要少一次在用户空间和 系统核空间之间的数据拷贝,这对大数据量的情况来说其开销是 很可观的。此外,我们还可以在驱动程序中设置 u o 完成后上层 程序优先级提升到较高级别,以在与其它线程的资源竞争中处于 有利地位, 这是通过设置:v o i d i o c o m p l e t e r e q u e s t ( in p i r p i r p , in c c h a r p ri o r i ty b o o s t ) 中的p ri o ri t y b o o s t 参数来完成的。 wi n d o w s 2 0 0 0 实时性研究及其在p c i 数据采集中的应用 3 . 2 . 3应用层程序设计 上层应用程序要完成的功能包括通过驱动程序读入采集数 据、存储到永久存储设备、图形化显示以及报警处理等。上层应 用程序的任务还是比较繁重的,尤其是图形显示和写盘都是比较 费时的操作。为了使数据得到及时接收处理,我们可以给进程较 高的优先级;还可以借助wi n d o w s 2 0 0 0 的可抢先多线程机制,把 关键的数据接收存盘任务安排在一个高优先级的线程中,而图形 化显示和报警这种实时性要求不高的任务安排在优先级相对较低 的线程中。线程之间通过事件等同步对象,再结合 win d o w s消息 机制进行通讯。 数据接收线程与驱动程序之间的通讯通过上文提 到的核心事件对象进行,只要上层程序与驱动程序采取一致的事 件名字即可。 wi n d o w s 2 0 0 0 实时性研究及其在p c 数据采集中的应用 第二章、 v i n d o w s 2 0 0 0 体系结构研究 要实现wi n d o w s 2 0 0 0 下的实时控制,就必须能够直接响应和 操纵外部硬件,而在 wi n d o w s 系统中,设备驱动程序是能够做到 这一点的唯一途径。由于设备驱动程序是作为核心态的一个组件 工作在系统核心层的,它直接与系统的其他核心态组件打交道, 用户层的应用程序发给设备驱动程序的命令通过 u o管理器传递 给设备驱动程序,内核帮助驱动程序管理中断及推迟过程调用, 而驱动程序又通过硬件抽象层操纵硬件设备。同时,由于设备驱 动程序是系统可信赖的模块,系统将不会对其进行安全性检查, 它的运行必须严格按照系统的规范来进行,否则就会导致系统故 障及崩溃。因此,在编写wi n d o w s 2 0 0 0 下的实时控制程序时,必 须首先对wi n d o w s 2 0 0 0 的体系结构和系统机制有一个较为深入的 了解,弄清设备驱动程序与个系统核心态组件的关系和接口,使 设备驱动程序能够和各个系统组件协调工作。 1 w i n d o w s 2 0 0 0 的体系结构 wi n d o w s 9 8是3 2 位代码和 1 6 位代码的混合体,其内核中既 有 3 2 位代码,也有 1 6 位代码。虽然 wi n d o w s 9 8 也声称是可抢占 式多任务操作系统, 但在1 6 位代码执行时c p u是独占的, 这严重 影响了系统的可靠性和性能。 wi n d o w s 2 0 0 0 是真正的3 2 位可抢占 式多任务操作系统, 它不包含任何1 6 位代码。 wi n d o w s 2 0 0 0 操作 系统的体系结构如图2 - 1 所示。win d o w s 2 0 0 0 利用强制特权检查 机制来保证系统的完整性。它的设计目 标是:2 1 1 )兼容性 2 ) 坚固性和可靠性 3 )可移植性 4 )可扩展性。 wi n d o w s 2 0 0 0 实时性研究及其在p c i 数据采集中的应用 保护子系统 e -a , ie ,t w# 1v 贯 im 29 a$ a atlw a m贯+s i ka ne xe c u ri w 令特 硬 件 抽 象 平 台 h a l 硬件 图2 - i w i n d o w s 2 0 0 0 操 作 系 统的 体系 结 构 从图2 - 1 可以看到,wi n d o w s 2 0 0 0 操作系统是由不同层次的 模块共同组成的。 用户模式和内 核模式 只有 c p u运行在保护模式时才有用户模式和内核模式的概 念,它们分别对应于c p u的两种运行状态。在i n t e l x 8 6平台上, 内 核模式对应于c p u的r i n g 0 ( 0级环) , 用户模式对应于c p u的 r i n g 3 ( 3 级环) 。 应用程序和一部分系统部 件运行于 用户模式。 在用户模式中, 硬件防止特权指令的执行, 并进行内存和u o空间的引用检查。 操 作系统禁止在用户模式执行的程序进行任何u o操作, 并捕捉违反 系统完整性的任何行为。因此用户程序要直接访问内存和 u o资 源,或者调用内 核对象,就必须通过操作系统的某种机制进入内 核模式。 在内核模式中,操作系统和c p u没有任何限制。程序可以执 行所有特权级指令,拥有对任何 u o设备和虚拟地址的全部访问 权,还可以控制虚拟内存硬件。在内核模式中,系统还提供上千 种系统功能调用和多种内核对象,用来完成各种系统级的特权功 能。这些系统和对象,用户模式的程序无法接触。此外,在内核 樟式中执.行的程序扮率f h . 比用户樟式中执行的程序高很名 wi n d o w s 2 0 0 0 实时性研究及其在p c 数据采集中的应用 1 . 2硬件抽象层 ( h a l ) 硬件抽象层是一薄层软件,是计算机中除c p u之外的所有硬 件的抽象。 h a l显露出一组定义非常清楚地函数供其它系统组件 调用,其管理的项目 有: 1 )片外高 速缓存 2 ) 定时器 3 ) u o总线 4 )设备寄 存器 5 )中断寄 存器 6 ) d m a控制器 各种系统组件都使用h a l函数与除c p u之外的硬件打交道。 这样,可以对系统隐藏硬件平台特定的细节,提高了系统的可移 植性。特别是,使用h a l函数,可以使内核和设备驱动程序在相 同的c p u体系结构上二进制代码兼容。 1 . 3内核 内核代表c p u自身的抽象模型。内核管理以下功能: 1 )中断和异常处理; 2 )线程调度和同步; 3 )多处理机同 步; 4 )定时控制。 通过使用这些内核服务,操作系统和高层部分可以忽略底层 的c p u的体系结构,使得驱动程序和高层系统组件有可能实现在 不同c p u体系结构间源代码级兼容。内核管理了一些内 核对象, 驱动程序可以通过创建和管理各种内核对象来请求内核的帮助。 这些对象分为两大类; 1 ) d i s p a t c h对象。 的对象: 如 ; e v e n t , m u t e x 等 用 于 管 理 和同 步 线 程 2 )控制对象。如:d p c( 推迟过程调用) 对象、 象等,用于控制中断和驱动程序的流程。 i n t e r r u p t 对 w in d o w s 2 0 0 0 实时性研究及其在p c 数据采集中的应用 1 . 4 e x e c u ti v e e x e c u t i v e实际上并不是一个真正的内核模块,它是若干独立 的内核组件的集合。而这些内核组件之间并没有多少联系,是完 全独立的,它们只通过定义好的接口 进行通信。这些内核组件包 括: i t 1 )对象管理器; 2 )配置管理器; 3 )进程管理器; 4 )安全引 用监视器; 5 )虚拟内存管理器; 6 )本地进程调用 ( l p c ) 机制; 7 ) u o管理器 1 . 5保护子系统 定义操作系统的外观的系统扩展组件,称为保护子系统。 wi n d o w s 2 0 0 0 的用户和程序员不是直接与操作系统打交道,而是 与这些子系统打交道。根据所作的工作,保护子系统可以分成两 类: 1 )整体子系统。 执行某个必要的系统功能。 2 )环境子系统。为某个特定操作系统固有的应用程序提供编 程接口 和执行环境。 如: wi n 3 2 子系统、 d o s 虚拟机、 p o s l x 子系统等等。 从上面的讨论可以看出,wi n d o w s 2 0 0 0 的体系结构是全面而 复杂的。这为 u o处理增加了一定的复杂度。wi n d o w s 2 0 0 0 使用 比其他操作系统更广泛的驱动程序结构定义。对于不同种类的硬 件,wi n d o w s 2 0 0 0 使用不同的驱动程序体系结构,这些体系结构 大多是分层实现的。这也就增加了驱动程序开发的灵活性和复杂 度。 2 w i n d o w s 2 0 0 0 的系统机制 除了以上介绍的系统核心态组件,wi n d o w s 2 0 0 0 还提供了各 种系统机制来管理和支持这些组件,使整个系统能够有效地顺利 win d o w s 2 0 0 0 实时性研究及其在p c i 数据采集中的应用 运行。下面介绍wi n d o w s 2 0 0 0 中关于中断、内存管理、任务管理 的各种系统机制,它们都与设备驱动程序中的中断响应、映射内 存等内容密切相关。 2 . 1中断调度机制 2 . 1 . 1中断调度程序 系统中称为 “ 中断调度程序”的内核陷阱处理程序的子模块 响应中断。它确定中断源并将控制转交给处理中断的外部例程 ( i s r ) ,或转交给响应中断的内部内核例程。设备驱动程序给服 务设备中断提供i s r ,内核则提供其他类型中断的中断处理例程。 2 . 1 . 2中断优先级 中断优先级为中断抢先调度提供了系统保证。不同的处理器 能够识别不同的中断号和中断类型。中断调度程序将硬件中断级 映 射到由 操作 系 统识别的 “ 中 断 请求级” ( i r q l ) 的 标准 级上。 i r q l 按优先级排列中断,按优先级服务中断,较高优先级的中断抢先 较低优先级中 断的服务。 如图2 - 2 : ( i s :; : 硬件中断 : : 高优先级 电源故障 处理器内部中断 时钟中断 配置文件 设备n 设备1 d p c / d i s p a tc h ap c 低优先级 件 , 断 阅 卜 , 正常线程执行 图 2 - 2中断飞 青 求级别 i r q l从高级往下到设备级都是为硬件中断保留的。 d i s p a t c h / d p c级和a p c级中断是内核和设备 驱动程序产生的软件 中断。低级i r q l( 也称为被动级)实际上并不是真正的中断级, 在该级上执行普通的线程,并允许发生所有的中断。 当核心态线程运行时, 它可以 提高或降 低处理器的i r q l 。 如 w i n d o w s 2 0 0 0 实时性研究及其在p c i 数据采集中的应用 果中 断 源的i r q l 高于当 前的中 断设 置, 则 它的中 断 可以 中 断该处 理器; 如果中断 源的i r q l 等于或低于当前的中断级, 则它的中断 将被封锁或屏蔽, 直到一个正在执行的线程降低了r r q l . 当中断产生时, 陷阱处理程序提高处理器的i r q l 直到与中断 源所指定的i r q l 相同。 这种提高封锁了 所有等于或低于此i r q l 的中断 ( 在该处理器上) ,确保正在服务于该中断的处理器不会被 同级或较低级的中断抢先。被屏蔽的中断将被另一个处理器处理 或阻挡, 直到i r q l 降低。由 于改变处理器的i r q l 对操作系统具 有如此重要的影响,所以它只能在核心态改变。用户态线程不能 改 变处理 器的i r q l . 2 1 2 . 1 . 3中断处理 当中断产生时,陷阱处理程序将保存计算机的状态,然后禁用 中断并调用中 断调度程序。 中断 调度程序立刻提高处理器的i r q l 到中断源的级别,以使在中断服务进行时屏蔽等于或低于中断源 级别的其他中断。然后,重新启用中断,以使高优先级的中断仍 然能够得到服务。 wi n d o w s 2 0 0 0 使用中断分配表 i d t ) 来查找处理特定中断的 例程。 中断源的i r q l 作为表的索引, 表的 入口 指向中断处理例程。 如图2 - 3 所示: 中断调度表 ( 工 d t ) (d ifil t 中 断 n 电源 i n 时钟 设备n 设备1 d i s p a t c h / d p c a p oi f 系统关闭例程 系 统掉电 例程 处理器间中断处理程序 时钟处理程序 设备n i s r 中断调度程序跟随指 ,调用响应的处理程序 设备i i s r 线程调度程序/ d p c 处理程序 a p c 处理程序 ( 无) 图 2 - 3 中断调度表 2 . 1 . 4内 核的中断对象 大多数处理中断的例程都在内核中 间,并在电源级中断产生时关闭系统。 。例如,内核更新时钟时 然而,键盘、定点设备和 wi n d o w s 2 0 0 0 实时性研究及其在 p c i 数据采集中的应用 磁盘驱动器等外部设备也会产生许多中断,因 此,设备驱动程序 需要一种方法来告诉内核:当设备中断发生时应调用哪个例程。 内核提供了一个可移植的机制:叫做 “ 中断对象”的内核控 制对象, 它允许设备驱动程序注册其设备的i s r 。 中断对象包含内 核所需的设备 i s r与中断的特定级相联系的所有信息,其中包括 i s r地址、 设备中断的i r q l以 及与i r q l 相联系的内核中的 入口 。 使用中断对象来注册i s r , 可防止设备驱动程序直接随意中断 硬件,并使设备驱动程序无需了解 i d t的任何细节。内核的这个 特性有助于创建可移植的设备驱动程序。 2 . 1 . 5软件中断 虽然硬件产生了大多数的中断,wi n d o w s 2 0 0 0内核也为多种 任务产生软件中断。这里主要介绍与设备驱动程序密切相关的推 迟过程调用中断 ( d p c ) o d p c对象的概念:它是一个内核控制对象。d p c对象包含的 最重要的信息是当内核处理 d p c中断时将调用的系统函数的地 址。 等待执行的d p c例程被保存在 “ d p c队列”的内核管理队列 中。 为了请求一个d p c , 系统代码将调用内核来初始化d p c对象, 然后把它放入d p c队列中。 d p c的调度过程:将一个d p c放入 d p c队列会促使内核请 求一个在d i s p a t c h / d p c 级的软件中断。 因为通常d p c是由 运行在 较高i r q l级的软件对它进行排队的, 所以被请求中断直到内核降 低i r q l到a p c级或低于a p c级才出现。图2 - 4 描述了d p c的 处理。2 定时器到时。系 统内核将一个 d p c 放入d p c 对列中。井且释放 中断调度表 调 度程序 执行 d p c 对列中的 每 个例程 直ad p c 对列为 空 如果需 要,调度程序也 会重新安排处理器 wi n d o w s 2 0 0 0 实时性研究及其在p c i 数据采集中的应用 图2 -0 延迟过程调用的提交 d p c的应用:d p c主要是为设备驱动程序提供的。设备驱动 程序使用d p c完成u o请求, 一般, 它使用d p c来处理i s r的比 较不重要的工作。 这是因为中断处理例程的i r q l 较高, 系统要求 i s r尽量的短小, 使其能够尽快地退出。 如果i s r过长, 将使系统 对关键事件的响应时间
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 听读训练考试题及答案
- 天然气管护员考试题库及答案
- 冀教版数学六年级上册1.3 扇形 同步练习(含解析)
- 骨整合电刺激-洞察及研究
- 静脉抽血法试题及答案
- 纪检督察员管理办法
- 财务供热收费管理办法
- it公司取证管理办法
- 营销管理办法明确了
- it数据变更管理办法
- 炼钢钢厂辅料管理制度
- 龙矿安全培训考试试题及答案
- 2025年年中考物理综合复习(压轴特训100题55大考点)(原卷版+解析)
- T-SCSTA001-2025《四川省好住房评价标准》
- 二年级开学第一课:快乐启航新学期
- 大学生文明养成教育主题班会
- 小红书离婚协议书模板
- 激光焊接安全措施试题及答案
- 农村租地种植合同样本
- 典型故障波形分析-典型故障下录波图的分析(电力系统故障分析)
- 2025高考政治命题纲要解读
评论
0/150
提交评论