(计算机应用技术专业论文)基于hoopn的设备驱动程序状态变化模型及其应用研究.pdf_第1页
(计算机应用技术专业论文)基于hoopn的设备驱动程序状态变化模型及其应用研究.pdf_第2页
(计算机应用技术专业论文)基于hoopn的设备驱动程序状态变化模型及其应用研究.pdf_第3页
(计算机应用技术专业论文)基于hoopn的设备驱动程序状态变化模型及其应用研究.pdf_第4页
(计算机应用技术专业论文)基于hoopn的设备驱动程序状态变化模型及其应用研究.pdf_第5页
已阅读5页,还剩57页未读 继续免费阅读

(计算机应用技术专业论文)基于hoopn的设备驱动程序状态变化模型及其应用研究.pdf.pdf 免费下载

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

文档简介

华中科技大学硕士学位论文 一= = = = = = = = = = = = = 2 = = = = = = = = = = = = ;= = = = = = = = ;# 摘要 ? l 随着计算机技术的发展,一些原来使用 s a 总线的教学实验设备正向使用p c i 总 线转变,并且操作系统平台也由原来的m s d o s 、w i n d o w s9 8 向纯3 2 位的w i n d o w s 2 0 0 0 演变。由于w i n d o w s2 0 0 0 对i o 端口的保护,教学实验设备配套软件的移植面临 以下问题:首先,原有的m s d o s 实验程序不能在w i n d o w s2 0 0 0 下访问i o 端口,而且 使用中断的实验程序也无法响应外部中断;其次,p c i 总线的使用使实验程序要访问 的端口发生了变化,端口不再由i s a 硬布线决定,而是由操作系统分配。配套软件的 移植必须兼容原实验程序,保持访问端口不变,使系统对用户透明。j f 教学实验设备属于非标准设备,在w i n d o w s2 0 0 0 中必须通过编写设备驱动程序 来访问。w i n d o w s2 0 0 0 支持w d m 设备驱动模型,通过p n p 管理器发出p n p 命令引起 设备状态改变以支持即插即用。使用面向对象的层次p e t r i 网h o o p n ( h i e r a r c h i c a l o b j e c t o r i e n t e dp e t r in e t ) 对设备驱动程序的状态变化进行建模,为设备驱动程序的研 究提供了新思路。 m s d o s 实验程序在w i n d o w s2 0 0 0 中通过虚拟设备驱动程序( v d d ) 将虚拟d o s 机( v d m ) 截获的i o 端口请求传递给w d m 内核驱动程序以访问非标准设备。将v d d 中获取的实验程序使用的i o 基址变换为p c i 配置空间基址寄存器中由系统分配的基 址,同时,通过使用事件在v d d 中模拟中断请求以唤醒等待线程调用中断模拟函数, 为w i n d o w s2 0 0 0 下m s d o s 应用程序对p c i i s a 桥接设备的访问建立了基址变换和 事件模拟中断访问模型。 应用基于h o o p n 的设备驱动程序状态变化模型、基址变换和事件模拟中断访问 。_ 。,。_ 。- 。 模型设计实现了m f i d 设备驱动程序,陕验结果表明m s d o s 实验程序在w i n d o w s 2 0 0 0 下能可靠、稳定地运行,从而验证了模型并实现了软硬件顺利升级。义 关键词:教学实验与开发平钦设备驱动程序 层次p e t r i 网:。p c i 华中科技大学硕士学位论文 a b s t r a c t w i t ht h e d e v e l o p m e n t o fc o m p u t e r t e c h n o l o g y ,e q u i p m e n t s o fe d u c a t i o na n d e x p e r i m e n th a v ea l t e r e df r o mu s i n gi s a b u st op c ib u s ,w h i l et h eo p e r a t i n gs y s t e mh a s c h a n g e df r o mm s - d o s ,w i n d o w s9 8 t on t b a s e d3 2 - b i tw i n d o w s2 0 0 0 b e c a u s e w i n d o w s2 0 0 0p r o t e c t si op e n s ,t h e r ea r es o m ep r o b l e m sw h e nt h ee x p e r i m e n ts o f t w a r e i st r a n s p l a n t e d :f i r s t l y ,t h eo r i g i n a lm s d o s a p p l i c a t i o nc a n n e i t h e ra c c e s si op e n sn o r r e s p o n d t od e v i c ei n t e r r u p ti nt h en t b a s e d s y s t e m ;s e c o n d l y ,w i t ht h ec h a n g eo f b u s ,i 0 p o r t su s e db yt h ee q u i p m e n t sa r ec o n v e r t e df r o mt h eo n e sd e t e r m i n e db yi s a t ot h o s e a s s i g n e db y t h eo p e r a t i n gs y s t e m f o rt h ec o m p a t i b i l i t y ,t h ei op o r t so ft h ee x p e r i m e n t s s o f t w a r es h o u l dn o tb e e nc h a n g e d ,a n yc h a n g es h o u l db e t r a n s p a r e n t t ou s e r s b e c a u s ee q u i p m e n t so fe d u c a t i o na n de x p e r i m e n tb e l o n gt os p e c i a lh a r d w a r e ,t h e y m u s tb ea c c e s s e dt h r o u g hd e v i c ed r i v e ri nw i n d o w s2 0 0 0 w i n d o w s2 0 0 0 s u p p o r t sw d m a n dp r t pb ys e n d i n gp n pi r pt oc h a n g ed e v i c es t a t e s d e v i c ed r i v e rs t a t e sc h a n g e sa r e m o d e l e db yu s i n gh i e r a r c h i c a lo b j e c t o r i e n t e dp e t r in e th o o p nt op r o v i d ean e w w a y f o r t h es t u d yo f d e v i c ed r i v e r t os u p p o r ta nm s d o sa p p l i c a t i o nu s i n gs p e c i a lh a r d w a r ei nt h ew i n d o w s2 0 0 0 e n v i r o n m e n t ,v d dm u s tb ew r i t t e nt ot r a n s l a t eo p e r a t i o n sp e r f o r m e db yt h em s d o s a p p l i c a t i o n i n t ot h e c o r r e s p o n d i n g k e r n e l m o d ed e v i c ed r i v e r b a s ea d d r e s s t r a n s f o r m a t i o na n di n t e r r u p tr e q u e s ts i m u l a t i o nm o d e lw i t he v e n ta r ee s t a b l i s h e df o rt h e m s - d o sa p p l i c a t i o na c c e s s i n gp c i - i s ab r i d g ed e v i c ei nw i n d o w s2 0 0 0b yt r a n s l a t i n g t h eb a s ea d d r e s su s e di nt h em s d o s a p p l i c a t i o n t ot h a tu s e di nt h eb a s ea d d r e s s r e g i s t e r i nt h ep c ic o n f i g u r a t i o ns p a c ea l l o c a t e db yt h es y s t e ma n db yu s i n ge v e n tt os i m u l a t e i n t e r r u p tr e q u e s tw h i c h i n v o k e st h ew a i t i n gt h r e a dt oc a l lt h es i m u l a t i n gf u n c t i o n t h ep a i r e dm o d e l sh a v eb e e na p p l i e dt od e s i g nm f i dd e v i c ed r i v e rf o rm f i d i i i i n t e r f a c ep l a t f o r mo fe d u c a t i o na n de x p e r i m e n t a sar e s u l t ,m s - d o sa p p l i c a t i o n sw o r k p r o p e r l yi nw i n d o w s2 0 0 0 ,w h i c he n s u r e st h es u c c e s s f u lu p d a t eo f t h e p l a t f o r m k e y w o r d s :t h e p l a t f o r mo f e d u c a t i o na n de x p e r i m e n t ;d e v i c ed r i v e r ;h o o p n ;p c i i i 华中科技大学硕士学位论文 1 1 问题提出的背景 1 绪论 随着计算机技术的发展,计算机教学实验的软硬件也需要不断进步。目前,i s a 总线插槽在微机系统中基本淘汰,许多仍在使用i s a 总线的教学实验和开发平台需要 升级虱j p c i 总线”33 。教学实验平台所使用的操作系统也在发生变化,由原来的 m s d o s 、w i n d o w s9 8 向纯3 2 位的w i n d o w s2 0 0 0 演变。 硬件方面,以m f i d i i 型多功能微机实验平台为例,它的硬件由基本系统、外设 功能模块和面包板实验区三大部分按模块化开放式结构组成,具有很好的可添加性和 灵活性。而且整个平台的硬件资源全部向用户开放,由用户支配,系统不占用,因而 给用户留下了广泛的可使用的硬件资源。其中,基本系统包括i s a 总线驱动板和实验 平台板。i s a 总线驱动板插在微机系统i s a 总线插槽中,将主机的i s a 系统总线 ( 包 括数据线、地址线和主要的控制线) 进行驱动后,用扁平电缆引到主机机箱外的实验 平台上,以供开发利用。实验平台板则利用从主机引出来的i s a 系统总线,开发设计 了与主机原有配置不相同的并行口、串行口、定时计数口、a d 、d a 接口以及相应 的端口地址。 为了适应计算机技术的发展,m f i d i i i 型重新设计了总线驱动扳,新的p c i 总线 驱动板插在微机系统的p c i 总线插槽中,使用p l x 公司的p c i 9 0 5 2 芯片“将p c i 总线转 换为i s a 总线,这样,就无须改动实验平台板。 软件方面,由于在w i n d o w s2 0 0 0 下,对于直接通过i op o r ti n 和o u t 指令访问硬 件的m s d o s 实验程序来说,没有足够的处理器权限使用i op o r ti n 和o u t 指令”, 所以原有的m s d o s 实验程序无法正常运行,使用中断的实验程序也无法响应外部中 断,执行相应的中断服务程序。另外,由于使用了新的p c i 总线板,i 0 端口由系统分 配”“,即使可以使用i n 和o u t 指令,也无法通过原先设计的端口地址0 x 3 0 0 - - 0 x 3 0 f 来访问各端口。 本文的目的就在于解决教学实验与开发平台软硬件升级带来的以上问题,提出一 个可靠的模型,实现教学实验与丌发平台的软硬件顺利升级。 华中科技大学硕士学位论文 1 2 相关研究与理论 1 2 1i s a :工业标准体系结构 总线是数据、地址及控制信号线的集合,允许设备通过它进行通信“。一些总线 很宽,允许许多数据和控制同步传输,另一些则只不过是一根导线而已,允许设备串 行地传输数据和控制。一些总线允许任何设备与总线上的设备进行通信。另一些则要 求主控制器( 例如一个c p u 或i o 控制器) 作为数据唯一的接受者和发送者。 i s a 不但速度不快,而且结构也不简单。总线时钟频率为8 3 3 m h z 。因为即使1 6 位传输都至少要消耗两个时钟周期,最大传输速率只有8 m b s 左右。 1 寄存器访问 i s a 总线定义了自动识别和自动配置的需要。即,i s a 给出了总线混沌( b u sc h a o s ) 的定义。不存在寄存器使用的标准,因此设备可以获取任何i o 地址。通常,在0 x 0 0 0 0 和0 x 0 0 f f 之间的i o 地址只属于主板上的设备,0 x 0 1 0 0 和0 x 0 3 f f 间的地址用于插入卡 “。通常为每块卡分配一个3 2 位的连续寄存器地址空间。 但许多i s a 卡不能翻译所有1 6 根i o 地址线。此外,它们只翻译地址的前1 0 位,这 些卡响应0 x 4 0 0 地址整数倍的别名( a l i a s ) 地址。在地址0 x 3 0 0 的设备也在地址0 x 7 0 0 作出响应。当这样的设备存在于一个系统中时,6 4 k bi o 地址范围迅速减少。 2 中断机制 i s a 总线上的中断习惯上用两个i n t e l8 2 5 9 a 可编程的中断控制器( p i c ) 芯片( 或 者它的一个仿真器) 进行处理“。每个p i c 提供8 种中断优先权,这实质上是将8 条线 并成一条线。来自第一个主控器芯片的8 条输入线中的一条( 确切地讲是第2 条线) 连 接到其他( 从属) p i c 的输出,这样就把来自两块芯片的1 6 条输入输出级联到1 条单独 的输出线。当然,由于1 条输入线用于级联配置,只有1 5 条线可供设备使用。 可以对8 2 5 9 a 芯片进行编程,以响应边缘触发中断或者电平感应中断。这一选择 必须在整块芯片的基础上进行,而不应该基于每条线路。传统的b i o s 代码初始化两 块p i c ,以使用边缘触发的中断。因此,在典型的系统上,i s a 卡可以不共享i r q 线路。 3 自动识别和自动配置 2 华中科技大学硕士学位论文 i s a 是为了满足设备动态配置重要的产物。i s a 设备不声明自己,它们不提供资 源需求表,并且不要求它们提供软件动态配置。配置是通过手工完成的,并且通常要 操作跳线或d i p 开关。 1 2 2p c i :外设部件互联标准 快速网络、全动图像及2 4 位象素显示都要求非常商的传输速度。p c i ( p e r i p h e r a l c o m p o n e m i n t e r c o n n e c t ,外设部件互连) 总线就是为了满足此类高要求硬件的一种尝 试。虽然p c i 的最初设计由i n t e l 完成,但是p c i ;f 1 对独立于处理器。 由于使用快速总线时钟( 3 3m h z ) 和巧妙的设计,p c i 结构能够以1 3 2 m b s 速度 进行持续的3 2 位传输,而对于6 4 位传输则能够达到上述速度的2 倍“3 “1 。实现这一高 性能的基础包括: 1 p c i 协议假定每种传输是一种突发操作( b u r s to p e r a t i o n ) 。对于需要移动大 量数据的高速设备来讲,这能产生更高的吞吐率。 2 p c i 支持多总线控制器,并允许设备之间的直接传输( 不必在内存中进行中 间停留) 。这就导致了i o 和c p u 操作间更多重叠。 3 总线判优程序( c e n t r a lb u sa r b i t e r ) 作用于数据传输上,减少了等待时间。 这就允许在当前所有者释放总线时,下一个所有者就可以开始操作。 4 c p u 和p c i 总线之间的智能桥路,它执行各种超高速缓存和提前读功能。这 有助于减少c p u 在等待数据上花费的总时间。 p c i 结构允许3 2 个物理单元( 称为设备) 插在同根总线上。每个这样的物理单 元最多可以包含8 个不同的功能单元( 称为函数) ,除了因为产生广播信息而拿走一 个函数地址外,在单个p c i 总线上最多可以有2 5 5 个可寻址函数。1 。另外,一个系统 最多可以有2 5 6 个独立的p c i 总线。 1 寄存器访问 虽然p c i 使用3 2 位地址,但是8 0 x 8 6 机器上的i o 寄存器空间限于6 4 k b ,因此每个 p c i 寄存器必须与所有其他东西一起塞进i o 空间。另外,在有e i s a 或i s a 桥路的系统 上,设计者还必须避免任何i o 地址被遗留硬件使用 t t - t s 3 。 与i o 空间和内存地址一起,p c i 定义了称为配置空间的地址范围。对p c i 自动配 3 华中科技大学硕士学位论文 置的讨论说明了配置空间是如何工作的。 2 中断机制 p c i 总线有四根优先权相同的中断请求线路( i n t a i n t d ) ,它们是低态、电平 触发和共享的。单功能p c i 设备必须使用i n t a ,而多功能设备可以使用以i n t a 开始 的四根总线中任何总线的顺序组合。唯一的限制是每个函数只能与一条请求线路连接 f 1 9 2 2 1 设备标志厂商标志 状态寄存器命令寄存器 分类代码版本标志 b i s t 头区域类型延时计c a c h e 行 时器大小 0 3 址寄存器 1 基址寄存器 2 基址寄存器 3 基址寄存器 4 基址寄存器 5 3 址寄存器 c a r d b u sc i s 指针 子系统标志子系统厂商标志 扩展r o m 基址 保留功能指针 保留 m a x1 a tm i ng n t 中断引中断线 脚 图1 1p c i 配置空间 双字字号 0 0 0 1 ( 以十进制表示) 0 2 0 3 针对中断优先权来讲,p c i 标准相对比较中性。另外,它依赖与一个外部控制器 将p c i 中断请求重定向到合适的系统中断线路。例如,在p c 上,重定向程序将i n t a 到i n t d 上的p c i 函数请求转发到m q o 到i r q l 5 线路之一上的请求。要实现这一工作, 每个产生中断的p c i 函数必须实现如下两个配置寄存器: 4 叮 佃 他侣似 侣 华中科技大学硕士学位论文 ( 1 ) 中断引脚寄存器。这个只读寄存器标识由该函数使用的p c i 信号线路( 1 n t a 到i n t d ) 。 ( 2 ) 中断线路寄存器。这个读写寄存器规定中断重定向器应该分配给该函数的优 先级和矢量。在p c 系统上,值0 x 0 0 0 x 0 f 对应与i r q 0 一i r q l 5 。 这是一种非常灵活的机制,因为它不需要系统设计者开发任何特定的中断策略, 这就更易于支持8 0 x 8 6 以外的处理器环境。 2 设备内存 p c i 函数使用的专门内存可以驻留在3 2 位地址空间的任何地方。这一特性必须在 每个函数的基础上启用,然而必须在p c i 设备内存能被主机c p u 发觉之前启用。p c i 的一个有趣特性是,单个函数可以由多个单板r o m 镜像,每个不同的c p u 结构一个。 这就使得厂商能够在不同的市场上销售相同的产品。p c i 标准定义了r o m 块的标准头 格式。因此,初始化软件能够找到合适的r o m 块,并把它装入内存执行。 3 自动配置 p c i 标准规定,总线上每个单独的函数必须有2 5 6 字节的存储区域用于保存配置数 据。这个区域称为p c i 函数的配置空间”3 1 ( 如图1 1 ) 。 每个p c i 函数的配置空间的前6 4 字节( 称为头) 有一个预先确定的结构,而其余 1 9 2 字节由卡设计者支配。系统软件可以用该头表示一个p c i 函数,并把资源分配给它。 该头区域包括: ( 1 ) 关于厂商、设备类型及其修订标准等信息。 ( 2 ) 一对标准的命令状态寄存器,用于启动不同的特征和报告错误。 ( 3 ) 一个规定函数内存和f o 空间要求的资源表。 ( 4 ) 前面描述的中断引脚和线路寄存器。 ( 5 ) 指向设备专用的r o m 的指针。 在每个函数的2 5 6 字节处,p c i 系统的配置空间很容易变得很大当然远远大于 x 8 6 处理器上可用的6 4 k bi o 空间。总是要把它映射到内存,但是那将消耗许多地址 空间。但是p c i 函数可以使用如下两种寄存器访问配置数据: 5 华中科技大学硕士学位论文 ( 1 ) 配置地址寄存器,该寄存器标识总线编号、设备、函数及被访问的配置空间 中的地址。 ( 2 ) 配置数据寄存器,该寄存器充当c p u 和配置空间之间的数据缓冲区。在设置 地址寄存器之后,读写该寄存器以传输配置空间的信息。 1 2 3 设备驱动程序的发展 设备驱动程序的定义是:能够解释各$ 十b i o s 不能支持的硬件设备,使计算机能 够认识和识别这些硬件设备,从而保证硬件设备的正常运行,以充分发挥硬件设备性 能的特殊程序。通俗地说,驱动程序就是控制计算机硬件设备的软件,操作系统通过 它识别硬件设备,硬件设备通过它按操作系统发出的指令进行操作。因此驱动程序是 操作系统与硬件设备连接的桥梁。 在个人电脑发展的初期,不同品牌的个人电脑所使用的硬件配置和结构、操作系 统、文件系统和应用软件都是完全不同的,而且这些操作系统和应用软件在操作方式 上也存在着明显的、较大的差异。随后i b m 公司推出的i b mp c 兼容机成为当时的工 业标准。如果操作系统应用软件能对这些硬件设备提供全面支持,便会实现个人电脑 真正意义上的完全兼容。由于当时的x 8 6 个人电脑受到6 4 0 k b 基本内存的限制,想在 操作系统的内核中包含对所有硬件设备的支持是不可能的。于是技术人员只将c p u 、 主板、内存、显示器、软驱和键盘等“标准组件”列为t b i o s 能直接支持的硬件设 备,连硬盘这么重要的部件都被列入了可选项,也就是说这些被称为“标准组件”的 设备在安装后就可以被b i o s 和操作系统识别并直接支持其运行( 注意:这并不是说 这些标准组件不需要软件程序的支持,而是说在操作系统的内部已经内置通用的支持 程序) ,而对于其它硬件设备,从m s d o s 3 0 开始,主流的p c 操作系统实现了在操 作引导自动加载外挂驱动程序,而不需要的驱动程序不被加载到内存中的工作方式, 从而大大提高了操作系统的扩展能力和克服了对内存的无端占用。自微软发布 w i n d o w s 9 8 s e 后,又提出了新的w i n d o w s 驱动程序模型( 即w d m 模型) 以方便硬件 厂商对多媒体设备和数码设备的开发。按照w d m 规范开发出的驱动程序在源代码级 别上可以保持兼容,并且只需要开发人员编写一个较少源代码的端口驱动程序就能实 现w i n d o w s 与硬件设备的沟通。还有,现如今在微软的w i n d o w s 视窗操作系统中,驱 动程序已经不再是单纯地与硬件设备打交道了,而是扩展至了软件领域,如字体驱动 程序等。 6 华中科技大学硕士学位论文 1 2 2w i n d o w s 设备驱动程序 w i n d o w s 下的设备驱动程序分为3 类: 1 虚拟设备驱动程序( v x d ) v x d 技术是在w i n d o w s3 1 和w i n d o w s9 5 中支持的一种技术。在w i n d o w s3l 和 w i n d o w s9 5 中有一个虚拟机管理器( v m m ) 。v m m 负责管理所有的m s d o s 应用程 序和w i n d o w s 应用程序。所有的程序在运行时,都有一个各自独立的虚拟机。而v x d 程序通常是用来控制硬件并对该硬件设备在各个虚拟机之间的共享进行管理。 2 n t 式驱动程序模型 w i n d o w sn t 作为一个完全的3 2 位操作系统,它与w i n d o w s9 5 ( 1 6 位与3 2 位混合 体) 在内核上改变非常大( 虽然在界面上很相似) 。几乎所有的w i n d o w s9 5 的应用 程序都不能在n t 4 0 下使用,反之亦然。而n t 式的驱动程序模型与v x d 方式也完全不 一样。它不再使用虚拟设备,取而代之的是设备( d e v i c e ) 这个概念。 3 w i n d o w s 驱动程序模型( w d m ) w i n d o w s9 5 和w i n d o w sn t 采用的驱动程序体系是各不相同的,所以大多数情况 下驱动程序也不能通用。所以通常的硬件一般都提供t w i n d o w s9 5 矛l l w i n d o w sn t 两 个版本。从w i n d o w s9 8 开始,微软推出了一个新的驱动类型:w i n 3 2d r i v e sm o d e ( w d m ) 。这个新的类型实际是在w i n d o w s n t 的驱动模型的基础上增加了即插即用 等内容,w i n d o w s2 0 0 0 支持w d m 驱动模型“”。虽然w i n d o w s9 8 也支持v x d ,但从 长远来看,w d m 是将来发展的方向。 1 2 3 形式化描述语言p e t r i 网 p e t r i 网最早在1 9 6 2 年! 由c a r l a d a m p e t r i 。“所提出,随后相关的研究与扩充相继出 现,例女f i t i m ep e t r in e t s1 2 7 、c o l o u m dp e t r in e t s ”、o b j e c tp e t r in e t s 、 p r e d i c a t e t r a n s i t i o np e t r in e t s ”“、s t o c h a s t i cp e t r in e t s 3 3 等。p e t r i 网可以作为很多系统 的图形及数学模组工具,它对描述和研究具有并行( p a r a l l e l i s m ) 、并发( c o n c u r r e n c y ) 、 同步( s y n c h r o n i z a t i o n ) 、资源分享( r e s o u r c es h a r i n g ) 等性质的信息系统,是一种 非常适合的工具。“。 由于p e t r i 网是一种可执行的形式化描述语言,具有图形化的特征,较强的表达能 7 华中科技大学硕士学位论文 力,丰富的分析技术”“,可以用来形式化描述设备驱动程序状态变化,建立设备驱动 程序状态变化模型。 1 3 课题主要研究工作 本文从w i n d o w s2 0 0 0i o 体系结构入手,研究w i n d o w s2 0 0 0i o 访问机制,使用 形式化描述语言建立驱动程序状态变化模型,然后提出访问p c i i s a 桥接设备模型, 最后应用该模型以解决m f i d i i i 中m s d o s 实验程序访问各端口的问题,对模型进行 验证。本课题的主要工作如下: 1 研究 w i n d o w s2 0 0 0 的i o 体系结构和驱动程序设计,使用形式化语言描述 设备驱动程序状态变化,建立设备驱动程序状态变化模型。 2 研究了p c i i s a 桥接设备特点,分析y i s a 设备经过p c i 总线至t j i s a 总线转换 后,端口和中断号的变化,针对这些变化建立w i n d o w s2 0 0 0 下m s d o s 应用程序访问 p c i i s a 桥接设备模型。 3 应用驱动程序状态变化模型和建立的w i n d o w s2 0 0 0 下m s d o s 应用程序访 i a p c i - - i s a 桥接设备模型以实现m f i d i i i 接口教学实验与开发平台m s d o s 实验程 序在w i n d o w s2 0 0 0 下正常运行,以实现教学实验设备软硬件顺利升级。 最后对课题研究工作总结,并提出下一步的工作方向。 8 华中科技大学硕士学位论文 2 i 0 体系结构 教学实验设备属于非标准设备,而w i n d o w s2 0 0 0 中对非标准设备的访问必须通过 编写设备驱动程序来实现。本章研究w i n d o w s2 0 0 0i o 体系结构和设备驱动程序, 论述了在w i n d o w s2 0 0 0 中非标准设备的访问机制。 2 1w i n d o w s2 0 0 0 系统概述 w i n d o w s2 0 0 0 是客户- n 务器体系结构。用户应用程序作为o s 服务器的一个客 户在操作系统上运行。图2 1 显示了w i n d o w s 2 0 0 0 体系结构框图。 用户应用程序以一种特殊的硬件模式进行运行,通常称为用户模式。在这个模式 中,代码局限于无害操作。硬件i o 指令不能被执行。整个c p u 指令级不能被执行。 如果应用程序要求使用这些被禁止执行的操作中的任何一个,应用程序必须向操作系 统进行请求。一种由硬件提供的陷阱机制来处理这些请求。用户进程运行在私有地址 空间中。 巳五习 图2 1w i n d o w s2 0 0 0 体系结构框图 核心态 用户进程分为:系统支持进程、服务进程、环境子系统、应用程序。服务进程和 应用程序是不能直接调用操作系统服务的,它们必须通过子系统动态链接库和系统交 互。子系统动态链接库的作用就是将文档化函数( 公开的调用接口) 转换为适当的 w i n d o w s2 0 0 0 的内部系统调用。这种转换可能会向正在为用户程序提供服务的环境 9 z亘士掣画 上 华中科技大学硕士学位论文 子系统发送请求,也可能不会。 w i n d o w s2 0 0 0 有以下环境子系统:w i n 3 2 子系统、v d m 子系统、w o w 子系统、 p o s i x 子系统、o s 2 子系统。其中,w i n 3 2 子系统是w i n d o w s2 0 0 0 的本机模式a p i ( 应用程序编程接口) 。所有其他环境子系统都依赖它执行自己的工作。所有新的 w i n d o w s 2 0 0 0 应用程序( 以及大多数移植的应用程序) 都依赖与w i n 3 2 环境子系统。 v d m 子系统为老式d o s 应用程序提供一个1 6 位的m s d o s 环境。虽说具有兼容性, 但是许多已有的1 6 位d o s 程序不能在其中正确运行,这是由于m i c r o s o f t 仿真设备 存取的保守性和安全方法而造成的。试图直接访问这些资源将导致操作系统的干预。 所以对于需要直接通过i o 端口访问设备的m s d o s 教学实验程序,它们没有足够的 指令特权访问i o 端口。 操作系统代码以内核模式运行。内核模式代码可以执行任何有效的c p u 指令, 尤其包括i o 操作。内核模式代码运行在统一的核一t l , 地址空间中。内核包括以下部分: 核心、执行体、硬件抽象层、设备驱动程序、图形引擎。其中硬件抽象层将处理器和 平台依赖与o s 和设备驱动程序分开。通常,在设备驱动程序代码被移植到一个新的 平台上时,只要进行重新编译即可。设备驱动程序代码必须依赖h a l 中的代码( 宏) , 以便引用硬件寄存器和总线。其中核心提供最基本的操作,主要提供以下功能:线程 安排和调度、陷阱处理和异常调度、中断处理和调度、多处理器同步、供执行体使用 的基本内核对象。执行体完成内存管理、进程管理、安全性管理和i o 管理所需的工 作。设备驱动程序是可加载的核心态模块,它们是i o 系统和相关硬件之间的接口。 w i n d o w s2 0 0 0 使用w i n d o w s 驱动程序模型( w d m ) 作为标准的驱动程序模型。 2 2i o 系统概述 w i n d o w s2 0 0 0 的i o 系统是w i n d o w s2 0 0 0 执行体的组件,存在于n t o s k r n le x e 文件中。它接受i o ( 来自用户态和核心态的调用程序) ,并且以不同的形式把它们 传送到i o 设备。 为了弥补硬件接口给用户带来的不便,w i n d o w s2 0 0 0 的i o 系统应提供以下功能: 首先,提供简便易用的高级逻辑接口,并接受和翻译之。这些接口由对逻辑设备 进行操作的逻辑操作组成。 华中科技大学硕士学位论文 其次,实现抽象接口到物理接口的转化,即将高级逻辑操作转化为低级物理操作, 将逻辑设备和逻辑性质转化为物理设备和物理性质,以便掩蔽设备的硬件物理操作和 组织的细节。 具体来说,需要掩盖的硬件细节以下有六个方面: 1 与接口寄存器相关的i o 操作过程。这个过程由准备、发出命令、数据传送、 控制状态( 轮询或中断) 及错误处理等构成。 2 错误处理是i o 软件的另一重要课题。 3 e s c 码与各种字符集之间编码的变换。 4 掩蔽设备的物理细节和不同设备的物理性质的差别,提供抽象统一的设备逻 辑性质。 5 具体设备、虚设备与文件系统的统一接口。为了实现设备独立性,操作系统 通常提供虚设备抽象接口。i o 与文件系统接1 3 统一的必然性体现在,用户程序经常 需要在文件和设备间变换i o 方向。 6 设备控制模式。总体上看,计算机系统对输入输出设备的控制模式有四种方 式:程序查询方式、程序中断方式、输入输出通道和直接传送方式( d m a ) 。对i o 设备的程序轮询的方式,是早期的计算机系统对i o 设备的一种管理方式。处理器定 时对各种设备轮流询问一遍有无处理要求,有要求则加以处理,完成后返回继续工作。 尽管轮询需要时间,但它通常还是比i o 设备的速度要快得多,所以一般不会发生不 能及时处理的问题。当然再快的处理器能处理的输入输出设备的数量也是有一定限度 的。而且程序轮询,毕竟占用了相当一部分c p u 处理时间,因此它是一种效率较低的 方式。中断,即异步中的同步技术,是操作系统的i o 管理中的一个关键问题。它与 相关的并发操作,都是从用户程序中看不到的、而在实际运行过程中存在的内部现象 和技术,将它们隐藏起来的正是操作系统。 2 3i o 软件的组成 从事i o 设备管理软件的结构,其基本思想是分层构造,即把设备管理软件组织 成为一系列的层次。其中低层与硬件相关,它把硬件与较高层次的软件隔离丌来。而 最高层的软件则向应用提供一个友好的、清晰而统一的接口。 华中科技大学硕士学位论文 2 3 1i o 软件的目标 1 设备独立性 设计i o 软件的一个最关键的目标是设备独立性( d e v i c ei n d e p e n d e n c e ) 。也就是 说,除了直接与设备打交道的低层软件之外,其他部分的软件并不依赖与硬件。 i 0 设备管理软件一般分为四层:分别是中断处理程序、设备驱动程序、与设备 无关的系统程序软件和用户级软件。 2 统一命名 操作系统要负责对输入输出设备进行管理。有关管理的一项重要工作就是如何给 i 0 设备命名。不同的系统有不同的命名原则。对设备统一命名,是与设备独立性密 切相关的。这里所说的统一命名,是指在系统中采取预先设计的、统一的逻辑名称, 对各类设备进行命名,并且应用在同设备有关的全部软件模块中。 2 3 2 中断处理程序 中断处理程序在设备管理软件中是一个相当重要的部分。本节着重分析中断处理 程序的内在工作方式,然后讨论中断在设备管理中的作用。 1 中断的基本概念 中断是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理事 件,使得c p u 暂时中断当前正在执行的程序而转去执行相应的事件处理程序,待处理 完毕后又返回原来被中断处继续执行或调度新的进程执行的过程。引起中断发生的事 件被称为中断源。中断源向c p u 发出的请求中断处理信号称为中断请求,而c p u 收到中 断请求后转到相应的事件处理程序称为中断响应。 中断屏蔽是指在中断请求产生后,系统有选择地封锁一部分中断而允许另一部分 中断仍能得到响应。不过,有些中断请求是不能被屏蔽甚至不能禁止的,也就是况这 些中断具有最高优先级,只要这些中断请求一旦提出,c p u 必须立即响应。例如,电 源掉电事件所引起的中断就是不可禁止和不可屏蔽的。 2 中断的分类与优先级 根据系统对中断处理的需要,操作系统一般对中断进行分类并对不同的中断赋予 1 2 华中科技大学硕士学位论文 不同的处理优先级,以便在不同的中断同时发生时,按轻重缓急进行处理。 根据中断源产生的条件。可把中断分为外中断和内中断。外中断是指来自处理器 和内存外部的中断,包括i o 设备发出的i o 中断、外部信号中断( 例如用户键入e s c 键) 。各种定时器引起的时钟中断以及调试程序中设置的断点等引起的调试中断等。 外中断狭义上一般称为中断。 内中断主要是指在处理器和内存内部产生的中断。内中断一般称为陷阱或异常。 它包括程序运算引起的各种错误。 中断和陷阱有如下主要区别: ( 1 ) 陷阱通常由处理器正在执行的现行指令引起,而中断则是由与现行指令无关 的中断源引起的。 ( 2 ) 陷阱处理程序提供的服务为当前进程所用,而中断处理程序提供的服务则不 是为了当前进程的。 ( 3 ) c p u 执行完一条指令之后,下一条指令开始之前响应中断,而在一条指令执 行中也可以响应陷阱。例如执行指令非法时,尽管被执行的非法指令不能执行结束, 但c p u 仍可对其进行处理。 3 软中断 软中断的概念主要来源与u n i x 系统。软中断是对应与硬中断而言的。通过硬件产 生相应的中断请求,称为硬中断。而软中断则不然,它是在通信进程之间通过模拟硬 中断而实现的一种通信方式。中断源发出软中断信号后,c p u 或者接受进程在“适当 的时机”进行中断处理或完成软中断信号所对应的功能。这里“适当的时机”,表示 接受软中断信号的进程须等到该接收进程得到处理器之后才能进行。如果该接受进程 是占据处理器的,那么,该接受进程在接受到软中断信号后将立即转去执行该软中断 信号所对应的功能。 4 中断处理过程 一旦c p u 响应中断,转入中断处理程序,系统就开始进行中断处理。以下是中断 处理的过程。 ( 1 ) c p u 检查响应中断的条件是否满足。c p u n 自j 应中断的条件是:有来自中断源 华中科技大学硕士学位论文 的中断请求、c p u 允许中断。如果中断响应条件不满足,则中断处理无法进行。 ( 2 ) 如果c p u i 向应中断,j j c p u 关中断,使其进入不可再次响应中断的状态。 ( 3 ) 保存被中断进程现场。为了在中断处理结束后能使进程正确地返回到中断点, 系统必须保存当前处理器状态字p s w 和程序计数器p c 等值。这些值一般保存在特定 堆栈或硬件寄存器中。 ( 4 ) 分析中断原因,调用中断处理子程序。在多个中断请求同时发生时,处理优 先级最高地中断源发出的中断请求。在系统中,为了处理上的方便,通常都是针对不 同的中断源编制有不同的中断处理子程序( 陷阱处理子程序) 。这些子程序的入口地址 ( 或陷阱指令的入口地址) 存放在内存的特定单元中。再者,不同的中断源也对应着不 同的处理器状态字p s w 。这些不同的p s w 被放在相应的内存单元中,与中断处理子程 序入口地址一起构成中断向量。显然,根据中断或陷阱的种类,系统可由中断向量表 迅速地找到该中断响应的优先级、中断处理子程序( 或陷阱指令) 的入口地址和对应的 p s w 。 ( 5 ) 执行中断处理子程序。对陷阱来说,在有些系统中则是通过陷阱指令向当前 执行进程发出软中断信号后调用对应的处理子程序执行。 ( 6 ) 退出中断,恢复被中断进程的现场或调度新进程占据处理器。 ( 7 ) 开中断,c p u 继续执行。 5 设备管理程序与中断方式 处理器的高速和输入输出设备低速之间的矛盾,是设备管理要解决的一个重要问 题。为了提高整体效率,减少在程序直接控制方式中的c p u 等待时间以及提高系统的 并行工作效率,采用中断方式来控制输入输出设备和内存与c p u 之间的数据传送,是 很有必要的。 在硬件结构上,这种方式要求c p u 与输入输出设备( 或控制器) 之间有相应的中 断请求线,而且在输入输出设备控制器的控制状态寄存器上有相应的中断允许位。 在中断方式下,中央处理器与i o 设备之间数据传输的大致步骤如下: ( 1 ) 首先,某个进程需要数据时,发出指令启动输入输出设备准备数据。同时该 指令还通知输入输出设备控制状态寄存器中的中断允许位打丌,以便在需要时,中断 华中科技大学硕士学位论文 程序可以被调用执行。 ( 2 ) 在进

温馨提示

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

评论

0/150

提交评论