计算机操作系统第6章.ppt

上传人:s****8 文档编号:67215595 上传时间:2022-12-24 格式:PPT 页数:76 大小:948.50KB
返回 下载 相关 举报
计算机操作系统第6章.ppt_第1页
第1页 / 共76页
计算机操作系统第6章.ppt_第2页
第2页 / 共76页
点击查看更多>>
资源描述

《计算机操作系统第6章.ppt》由会员分享,可在线阅读,更多相关《计算机操作系统第6章.ppt(76页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第六章 输入/输出系统 第六章第六章 输入输入/输出系统输出系统 6.1 I/O系统的硬件结构系统的硬件结构 6.2 采用通道模型的采用通道模型的I/O系统系统 6.3 I/O系统的软件组织系统的软件组织 6.4 缓冲技术缓冲技术 6.5 磁盘的驱动调度磁盘的驱动调度6.6 设备分配程序设备分配程序6.7 WindowsNT的的I/O系统系统 第六章 输入/输出系统 6.1 I/O系统的硬件结构系统的硬件结构 图 6.1 按使用特性对设备的分类 6.1.1 I/O设备类型设备类型 1.按使用特性分类按使用特性分类 第六章 输入/输出系统 2.按所属关系分类按所属关系分类 外部设备按其所属关系可

2、分为系统设备和用户设备。(1)系统设备。这是指在操作系统生成时已经登记在系统中的标准设备,如打印机、磁盘等。时钟也是一个特殊的系统设备,它的全部功能就是按事先定义的时间间隔发出中断。(2)用户设备。这是指在系统生成时未登记在系统中的非标准设备。这类设备通常是由用户提供的,因此该类设备的处理程序也应该由用户提供,并通过适当的手段把这类设备登记在系统中,以便系统能对它实施统一管理。第六章 输入/输出系统 3.按资源分配角度分类按资源分配角度分类(1)独占设备。独占设备。(2)(2)共享设备。共享设备。(3)(3)虚拟设备。虚拟设备。第六章 输入/输出系统 4.按传输数据数量分类按传输数据数量分类

3、外部设备按传输数据的数量,分为字符设备和块设备。(1)字符设备。每次传输数据以字节为单位的设备称为字符设备,如打印机、终端、键盘等低速设备。(2)块设备。传输以数据块为单位进行的设备称为块设备。如磁盘、磁带等高速外存储器等。第六章 输入/输出系统 6.1.2 I/O设备的物理特性设备的物理特性 1.磁盘磁盘 图 6.2 磁盘物理结构概念图第六章 输入/输出系统 表6-1 典型的软盘和硬盘的技术参数 第六章 输入/输出系统 2.时钟时钟 图图 6.3 可编程时钟可编程时钟 可编程时钟的优点是它的中断频率可由软件控制。如果使用振荡频率为1 MHz的晶体,那么计数器每一微秒接收到一个脉冲,对于16位

4、的寄存器,中断可编程为按 1 s至 65 536 s 的间隔发生。第六章 输入/输出系统 时钟硬件所做的工作仅仅是按给定的时间间隔产生中断,其它和时间有关的工作必须由软件(时钟驱动程序)来做。时钟软件的任务包括:维护日期和时间;防止进程运行时间超过允许界限;对CPU使用进行记帐;处理用户进程提出的时间闹钟系统调用;对系统某些部分提供监视定时器;支持直方图监视和统计信息搜集。第六章 输入/输出系统 3.终端终端(1)存储映像终端。图 6.4 存储映像终端直接写入视频RAM 第六章 输入/输出系统 视 频 存 储 卡 上 有 一 个 芯 片 称 为 视 频 控 制 器(Video Controll

5、er)。这个芯片从视频RAM中取出字符,产生用于驱动显示器(监视器)的视频信号,如图 6.4 所示。监视器产生水平扫描屏幕的电子束。典型的屏幕有 480 至 1024 行,每行 640 至 1200 点。这些点称为像素(Pixel)。视频控制器调节电子束,决定一个像素是亮的还是黑的。彩色监视器有三个电子束,分别对应红色、绿色和蓝色。第六章 输入/输出系统 一个简单的单色显示器可显示 25 行,每行 80 个字符。每个字符的宽度为 9 个像素,高度为 14 个像素(包括字符间的空白)。这种显示器有 350 行扫描线,每行扫描线有 720 个点,每帧每秒重画 45 至 70 次。视频控制器被设计成

6、首先从视频RAM中取出 80 个字符,产生 14 行扫描线,再取 80 个字符,再产生 14 行扫描线,这样一直工作下去。事实上,大多数视频控制器显示每个字符的每行扫描线时,都取一次字符以便在控制器中不需要缓冲。每个字符的 9 列宽 14 行高的位模保存在视频控制器的视频ROM中(也可以使用RAM,以支持用户字体)。ROM按 12 位编址,8 位来自字符代码,4位指定扫描线。ROM中每个字节的 8 位控制 8 个像素,字符间的第 9 个像素总是为空。因此屏幕上的每行文本需 1480 次存储器访问,也需访问相同次数的字符发生器。第六章 输入/输出系统 对于存储映像显示器,键盘是与显示器分开的,它

7、可能通过一个串行口或并行口和计算机相连。对于每一个键动作,产生CPU中断,键盘中断程序通过读I/O口取得键入的字符。在IBM-PC中,键盘包括一个内嵌的微处理器,通过特殊的串行口和主板上的一个控制芯片通信。任何时刻击键或释放键,都产生一个中断,而且键盘仅仅提供键码,而不是ASCII码。当击A键时,键码(30)被存放于I/O寄存器。输入字符是大写、小写、CTRL-A、ALT-A、-ALT-A,还是其它的组合,则由驱动程序确定。因为驱动程序知道哪些键被按下还没有释放,因此它有足够的信息完成这项工作。虽然键盘接口把全部工作交给了软件,但这提供了很大的灵活性。第六章 输入/输出系统(2)RS-232终

8、端。图 6.5 RS-232终端与计算机通信 第六章 输入/输出系统 图 6.6 X-Window系统中的客户和服务器(3)X终端。第六章 输入/输出系统 6.1.3 I/O系统的硬件组织系统的硬件组织 1.I/O控制方式控制方式(1)循环I/O测试方式。(2)程序中断I/O方式。(3)DMA方式。(4)通道方式。第六章 输入/输出系统 图 6.7 DMA方式下的数据传输 第六章 输入/输出系统 采用DMA方式的数据传输处理过程如下:当进程要求设备输入数据时,CPU把准备存放输入数据的内存始址及要传输的字节数分别送入DMA控制器中的内存地址寄存器和传送字节计数器;另外,还要把控制/状态寄存器中

9、的中断允许位和启动位置1,从而启动设备,开始数据输入。发出数据输入要求的进程进入阻塞状态,进程调度程序调度其它进程占有CPU。输入设备不断地挪用CPU工作周期,将数据从内部缓冲区源源不断地送入内存,直至所要求的字节数全部传送完毕。DMA控制器在传输完成时通过中断请求线发出中断信号,CPU接到中断信号后转中断处理程序进行相应处理。中断处理结束后,CPU返回被中断的进程或去运行重新被调度的进程。第六章 输入/输出系统 2.设备控制器设备控制器 现有大多数的设备控制器由以下三部分组成:(1)设备控制器与CPU的接口。该接口用于实现设备控制器与CPU之间的通信。在该接口中有三类信号线:数据线、地址线、

10、控制线。数据线通常与两类寄存器相连接:数据寄存器。设备控制器中可以有一个或多个数据寄存器,用于存放从设备送来的数据(输入)或从CPU送来的数据(输出)。控制/状态寄存器。在控制器中同样可以有一个或多个控制/状态寄存器,用于存放从CPU送来的控制信息或由设备产生的状态信息。第六章 输入/输出系统 (2)设备控制器与设备的接口。在一个设备控制器上,可以连接一台或多台设备。相应地,在控制器中就有一个或多个设备接口,一个接口连接一台设备,在每个接口中都有数据、控制和状态三种类型的信号。数据信号。控制信号。状态信号。第六章 输入/输出系统(3)I/O逻辑。图 6.8 设备控制器的组成 第六章 输入/输出

11、系统 6.2 采用通道模型的采用通道模型的I/O系统系统 6.2.1 通道类型通道类型 1.字节多路通道 2.2.选择通道 3.3.数组多路通道 第六章 输入/输出系统 第六章 输入/输出系统 6.2.2 多通路多通路I/O系统系统 图 6.9 多通路的配置方案 第六章 输入/输出系统 例如设备E到达主存的四条通路是:通道A控制器C设备E通道A控制器D设备E通道B控制器C设备E通道B控制器D设备E 第六章 输入/输出系统 6.2.3 通道命令和通道程序通道命令和通道程序 1.通道命令及其格式通道命令及其格式通常,计算机系统的I/O处理机具有如下三类基本通道操作:(1)数据传送类,如读、写、反读

12、、断定(检验设备状态);(2)设备控制类,如控制换页、磁带反绕等;(3)转移类,即通道程序内部的控制转移。例如,某系统中通道命令的格式如下:操作码 数据主存始址 特 征 字节计数 0 7 8 31 32 47 48 63 第六章 输入/输出系统 每条通道命令由四个字段组成:(1)操作码(07):表示通道要执行的命令;(2)数据主存始址:表示本命令要访问的主存数据区的起始地址;(3)特征位(3247,只使用了 3236 位,其余未用):3739 位必须置 0,否则认为通道命令错。第六章 输入/输出系统 特征位进一步规定了本通道命令的意义,其各特征如下:数据链特征(32 位):当该位为“1”时,在

13、执行本命令后,使计数值为 0 并取下一条CCW,下一条CCW(它规定了新的数据主存始址、特征和计数)继续执行原来的操作。命令链特征(33 位):该位为“1”时,当前命令正常结束后,顺序执行下一条CCW。在通道程序中,除最后一条CCW外,每条CCW应指定 32 位为“1”,或 33 位为“1”。最后一条CCW的所有特征位为“0”时,表示通道在完成当前命令后自动停止。禁发长度错特征(34 位):表示对不正确的数据长度不发出错信号。一般地说,如果通道命令给出的字节数与I/O设备所用的字节数不一致,就发出错信号。如果该位置为“1”,则禁止发出出错信号。第六章 输入/输出系统 跳读特征(35 位):表示

14、禁止数据传送到内存。当该位为“1”时,从I/O设备上读出的数据不写入内存,这样就可以跳过一些数据。程序控制中断特征(36 位):如果该位为“1”,只要取出CCW并开始操作,则通道就向CPU发中断信号。(4)字节计数(4863 位):规定了数据区的字节数。数据主存始址和字节计数这两个字段主要用于数据传送类命令。第六章 输入/输出系统 2.通道地址字和通道状态字通道地址字和通道状态字 在通道进行输入/输出操作期间,要访问两个固定内存单元:通道地址字(CAW)和通道状态字(CSW)。通道地址字的格式如下:钥 0 0 0 0 通道程序首地址 0 3 4 7 8 31第六章 输入/输出系统 通道状态字的

15、格式如下:钥 0 0 0 0 下一条CCW地址 设备状态 通道状态 剩余计数 0 3 4 7 8 31 32 39 40 47 48 63其中:钥通道访问主存时所用的保护钥,它由CAW的前4位送来;下一条CCW地址通道命令计数,每当一条CCW执行完毕,该地址自动加“8”,指向下一条CCW;设备状态记录设备状态的字节;通道状态记录通道状态的字节;剩余计数上一条CCW执行结束后,剩余数据的字节数。第六章 输入/输出系统 图 6.10 设备状态字节和通道状态字节(a)设备状态字节;(b)通道状态字节 第六章 输入/输出系统 6.2.4 CPU和通道间的通讯和通道间的通讯 1.输入输入/输出指令输出指

16、令 例如,某系统中输入输出类指令主要有:SIO,TIO,HIO,TCH。所有I/O指令都具有如下格式:操作码 B1 D1 由(B1)+D1形成的地址指出通道号和设备号的存放单元,该单元的内容为:通道号设备号第六章 输入/输出系统 SIO(START I/O):用于启动指定通道和设备开始工作,SIO指令发出后,根据通道和设备状态建立结果特征,即条件码。CPU根据执行结果建立的条件码得知此次启动是否成功,再确定下一步的动作。TIO(TEST I/O):用以检查I/O操作是否完成,建立相应的条件码。HIO(HALT I/O):强行停止通道和I/O设备正在执行的操作。TCH(TEST CHANNEL)

17、:测试通道,根据对通道测试的结果建立相应的条件码。第六章 输入/输出系统 2.CPU和通道间的通讯和通道间的通讯 图 6.11 CPU启动通道的工作流程 第六章 输入/输出系统 6.3 I/O系统的软件组织系统的软件组织 6.3.1 I/O软件设计的目标软件设计的目标 I/O软件设计的第一个目标是设备无关性。其含义就是使程序员写出的软件无需任何修改便能读出软盘、硬盘以及CD-ROM等不同设备上的文件,而与具体设备无关。例如,用户可以简单地输入如下命令:sortoutput 就能够从各种设备上获得输入,包括软盘、硬盘或键盘,同时将输出送到各种不同的设备上,例如,软盘、硬盘甚至是屏幕。不同设备之间

18、的差异由操作系统去处理,操作系统会调用不同的设备驱动程序来真正地将输入数据写到输出设备上。第六章 输入/输出系统 I/O软件设计的第二个目标是错误处理。I/O软件设计的第三个目标是同步/异步传输。I/O软件设计的第四个目标是必须能处理独占设备和共享设备的I/O操作。为实现以上四个目标,I/O系统应组织成以下四个层次:(1)中断处理程序;(2)设备驱动程序;(3)与设备无关的I/O软件;(4)用户空间的I/O软件。第六章 输入/输出系统 6.3.2 中断处理程序中断处理程序 中断处理程序位于I/O系统的最低层。当进程需要进行I/O操作时,操作系统应将该进程挂起,即进入阻塞,直至I/O操作结束并发

19、生中断。当中断发生时,中断处理程序执行相应的操作,以解除相应进程的阻塞状态。第六章 输入/输出系统 6.3.3 设备驱动程序设备驱动程序 设备驱动程序包括了所有与设备有关的代码。每一个设备驱动程序只处理一种设备或者一类密切相关的设备。设备驱动程序的功能是从与设备无关的软件中接收抽象的请求,并执行该请求。例如,读磁盘上的第n块。如果请求到来时,驱动程序空闲,则它立即执行该请求;但如果它正在处理另一请求,则它将该请求挂在一个等待队列中。第六章 输入/输出系统 执行一条I/O请求的第一步,是将该请求转换成更具体的形式。例如,对磁盘驱动程序,它包括:计算所请求的块n的物理地址,检查驱动电机是否在转,检

20、测存取臂是否定位在正确的柱面。总之,它必须确定需要哪些控制器命令以及命令的执行次序。一旦决定应向控制器发送什么命令,驱动程序就向控制器中的设备寄存器写入这些命令。某些控制器一次只能处理一条命令,另一些则可以接收一串命令并自动进行处理。第六章 输入/输出系统 6.3.4 与设备无关的与设备无关的I/O软件软件 现以块设备为例,与设备无关的I/O软件的主要功能包括:(1)设备命名。(2)(2)设备保护。(3)(3)与设备无关的块大小。(4)(4)数据缓冲。(5)(5)数据块的分配。(6)(6)对独占设备的分配与释放。(7)(7)错误处理。第六章 输入/输出系统 6.3.5 用户空间的用户空间的I/

21、O软件软件 尽管大部分I/O软件属于操作系统,但是也有一小部分是与用户程序链接在一起的库例程,甚至是在核心外运行的完整程序。系统调用,包括I/O系统调用,通常是库例程调用。在如下C语句:count=write(fd,buffer,nbyte);中,所调用的库函数write()将与用户程序链接在一起,并包含在运行时的二进制代码中。这一类库例程显然也是I/O系统的一部分。标准I/O库包含相当多涉及I/O的库例程,它们作为用户程序的一部分运行。第六章 输入/输出系统 6.3.6 I/O系统软件的层次结构系统软件的层次结构 图 6.12 I/O系统的层次结构 第六章 输入/输出系统 6.4 缓缓 冲冲

22、 技技 术术 6.4.1 单缓冲单缓冲 图 6.13 无缓冲与单缓冲(a)无缓冲;(b)单缓冲 第六章 输入/输出系统 6.4.2 双缓冲双缓冲 图 6.14 双缓冲 第六章 输入/输出系统 6.4.3 缓冲池缓冲池 1.缓冲池的组成缓冲池的组成 对于既可用于输入又可用于输出的公用缓冲池,其中至少应包含以下三种类型的缓冲区:空闲缓冲区;装满输入数据的缓冲区;装满输出数据的缓冲区。为了管理方便,可将相同类型的缓冲区链成一个队列。于是,可形成以下三个队列:(1)空缓冲区队列emq:由空缓冲区所链成的队列;(2)输入队列inq:由装满输入数据的缓冲区所链成的队列;(3)输出队列outq:由装满输出数

23、据的缓冲区所链成的队列。第六章 输入/输出系统 除了上述三个队列外,还应具有四种工作缓冲区:(1)用于收容输入数据的工作缓冲区;(2)用于提取输入数据的工作缓冲区;(3)用于收容输出数据的工作缓冲区;(4)用于提取输出数据的工作缓冲区。第六章 输入/输出系统 2.缓冲池管理的基本操作缓冲池管理的基本操作 对缓冲池管理提供两个基本操作(过程):(1)getbuf(type):用于从type所指定的队列的队首,摘下一个缓冲区;(2)putbuf(type,number):用于将用参数number所指示的缓冲区,挂在type队列上。第六章 输入/输出系统 3.缓冲池的工作方式缓冲池的工作方式 图 6

24、.15 缓冲池的工作方式 第六章 输入/输出系统 6.4.4 预先读与延迟写预先读与延迟写 1.预先读预先读 操作系统读块设备时,一般通过同步方式把一指定的数据块读入缓冲区,此时用户进程不得不进入阻塞状态,等待数据传输的结束。为了加快进程的推进速度,提高CPU和块设备工作的并行程度,最好在使用某一块之前,用异步方式提早把它读入缓冲区。当用户进程实际需要该块数据时,可以立即从缓冲区取走而无需等待。这种技术称为预先读。第六章 输入/输出系统 2.延迟写延迟写 当块设备进行输出时,如果某一缓冲区只写了一部分,则不要急于把该缓冲区的内容写到块设备上,而是把写块操作推迟到某个适当的时机进行。那么什么是适

25、当的时机呢?一般有两个:其一是延迟写的缓冲区被写满时,其二是该缓冲区被重新分配时。第六章 输入/输出系统 6.5 磁盘的驱动调度磁盘的驱动调度 磁盘的驱动调度是先进行移臂(移动存取臂)调度,再进行旋转调度。例如,某一时刻对磁盘的输入/输出请求序列是:柱面(CC)磁道(HH)物理记录R 7 4 1 7 4 8 7 4 5 40 6 4 2 7 7 第六章 输入/输出系统 进一步考查 7 号柱面上的三个输入/输出请求。按上述次序,磁盘需旋转近两周才能完成访问。若将输入/输出请求按照下列的次序完成访问:柱面(CC)磁道(HH)物理记录R 7 4 1 7 4 5 7 4 8 第六章 输入/输出系统 移

26、臂调度算法有:(1)先来先服务算法(FCFS)。先来先服务调度算法是最简单的一种方法,它按照输入/输出请求到达的顺序,逐一完成访问请求。(2)最短查找时间优先法(SSTF)。这种算法总是先完成距当前存取臂距离最近的柱面上的输入/输出请求。(3)扫描法(SCAN)。由于请求序列具有动态性质,所以可采用扫描法。存取臂从磁盘的一端出发,向另一端移动,遇到需要访问的柱面就完成访问请求,直至到达磁盘的另一端。到达另一端后,存取臂移动方向就倒转过来,继续完成这一方向上的访问请求。第六章 输入/输出系统 图 6.16 电梯调度算法流程 第六章 输入/输出系统 6.6 设备分配程序设备分配程序 6.6.1 设

27、备分配的数据结构设备分配的数据结构 在配置有通道的计算机系统中,设备分配程序至少应解决以下三个问题:(1)是否有能用来为I/O请求提供的通路?(2)是否有一条以上的通路可用?(3)如果当前尚无通路可用,那么通路何时才能空闲?第六章 输入/输出系统 图 6.17 设备管理中的三种控制块 第六章 输入/输出系统 图 6.18 UCB和PCB的连接 第六章 输入/输出系统 图图 6.19 UCB,CUCB,CCB间的连接间的连接 第六章 输入/输出系统 图 6.20 系统设备表与UCB的关系 第六章 输入/输出系统 对于所请求的I/O设备,根据上述的查找方法,可能出现三种情况:(1)对于所请求的I/

28、O设备,仅有一条通路可用,例如:通道B控制器C设备E。(2)对于所请求的I/O设备,可以找到一条以上的可用通路,例如上例中,最多可找出四条可用通路:通道A控制器C设备E通道A控制器D设备E通道B控制器C设备E通道B控制器D设备E(3)对于所请求的I/O设备,没有一条可用的通路。第六章 输入/输出系统 6.6.2 I/O调度程序调度程序 在多进程的系统中,由于进程数多于设备数,就必然要引起进程对资源的争夺。为使系统有条不紊地工作,系统必须具有一套合理的设备分配原则。这些原则与下述的四个因素有关:1)I/O设备的固有属性 2)I/O设备的分配算法(1)先请求先服务。(2)优先级高者优先。3)设备分

29、配的安全性 4)与设备的无关性 第六章 输入/输出系统 6.6.3 设备分配的实施设备分配的实施 1.单通路单通路I/O系统的设备分配系统的设备分配在单通路I/O系统中,按如下步骤实施设备分配:(1)分配设备。(2)(2)分配控制器。(3)(3)分配通道。第六章 输入/输出系统 2.多通路多通路I/O系统的设备分配系统的设备分配 假定某进程n向系统提出I/O请求,要求为它分配一台I/O设备。于是系统可选取该类设备中的任何一台设备分配给该进程。其步骤如下:(1)根据要求I/O的进程n所提供的设备类型,检索SDT表,找到第一个该类物理设备的UCB,由状态信息可知其忙闲情况。若忙,则检查第二个物理设

30、备的UCB。若该类型的全部设备都处于忙碌状态,表明该类设备已分配完毕。进程n的此次I/O请求无法满足,只好把进程n插入到等待该类设备的队列中。只要在该类设备中有一个空闲设备,系统便可对其计算分配该设备给进程n的安全性。若安全,则把设备分配给进程n,否则将其插入该类设备的等待队列。第六章 输入/输出系统 (2)当系统把第i个设备分配给进程n后,便可通过检查与此设备相连的第一个CUCB,而得知该控制器是否忙碌;若忙,再检查第二个CUCB表。若与此设备相连的所有的控制器都忙,则表明无控制器可分配给设备i。只要设备i不是该类设备中的最后一个,便可返回到步骤(1),试图再找下一个空闲设备;否则,仍将该进

31、程插入控制器等待队列中。第六章 输入/输出系统 (3)若有空闲的控制器,便可进一步检查与此控制器相连的第一个通道是否忙碌。若忙,再查看第二个CCB表,若与此控制器相连的全部通道都忙,表明无通道可分配给控制器j。只要控制器j不是该设备i的最后一个控制器,便返回到步骤(2),试图找出一个空闲的控制器,否则,将该进程插入通道等待队列。若有空闲通道可用,则此次设备分配成功,将相应的设备、控制器和通道分配给进程n,接着便可启动I/O设备,开始信息传送。多通路I/O系统设备分配的流程示于图 6.21。第六章 输入/输出系统 图 6.21 设备分配流程图 第六章 输入/输出系统 图 6.22 I/O系统概貌

32、 1.I/O系统概貌系统概貌 6.7.1 I/O系统的结构系统的结构 6.7 Windows NT的的I/O系统系统 第六章 输入/输出系统 NT执行体的I/O系统接收用户态和核心态进程的I/O请求,以不同的方式传送到I/O设备。I/O系统由一组负责处理各种设备的输入/输出部件构成。这些部件有:(1)I/O管理程序;(2)文件系统;(3)缓冲存储管理器(Cache Manager);(4)设备驱动程序(Device Driver);(5)网络转发程序(NetWork Redirector)和网络服务程序(Network Server)。第六章 输入/输出系统 2.I/O管理程序管理程序 I/O

33、管理程序建立了NT执行体的I/O模型,它实现与设备无关的输入/输出,即它并不进行实际的I/O处理。它的主要工作是建立一个代表I/O操作的I/O请求包IRP(I/O Request Packet),把IRP传送给适当的驱动程序并在I/O完成后处理其结果,最后撤消IRP。与此相反,驱动程序接收IRP,执行IRP规定的操作,并在完成后将IRP传回I/O管理程序或通过驱动程序再传到另一驱动程序,以求进一步的处理。I/O系统采用包驱动方式,每个I/O请求都用一个I/O请求包来表达。每个IRP是一个数据结构,用以控制在每一操作步骤上的I/O操作的处理。第六章 输入/输出系统 3.虚拟文件虚拟文件 除了I/

34、O管理程序,该结构中还有四类驱动程序:文件系统、缓冲存储管理程序、设备驱动程序、网络转发程序。要把这四类功能、特性均不相同的部件组合在一起,并建立一个一体化的统一系统,必须进行高层的抽象,建立一个统一的逻辑模型。NT建立的逻辑模型吸收了UNIX I/O系统的概念,认为“所有的读写数据都看成是直接送往虚拟文件的字节流”。虚拟文件用文件描述符表示,处理虚拟文件就像处理一个真正的文件。由操作系统判定这个虚拟文件究竟是设备、管道、网络还是磁盘上的真正文件。第六章 输入/输出系统 图 6.23 打开一个文件对象 第六章 输入/输出系统 6.7.2 驱动程序模型驱动程序模型 每一个驱动程序都由以下标准成套

35、(或组合)组成:(1)一个初始化程序;(2)一组调度程序;(3)一个启动I/O的程序;(4)一个中断服务程序;(5)一个中断服务DPC(延迟过程调用)程序;(6)一个完成例程;(7)一个撤消I/O例程;(8)一个卸载例程;(9)一个出错记录例程。第六章 输入/输出系统 6.7.3 异步异步I/O操作操作 图图 6.24 同步同步I/O操作操作 第六章 输入/输出系统 同步I/O操作过程可归纳如下:(1)按用户要求,I/O管理程序为之形成IRP,并把它传送给驱动程序,由驱动程序完成I/O操作。(2)设备完成I/O操作后,发中断请求,设备驱动程序中的中断处理程序进行相应中断处理。(3)I/O管理程序完成I/O请求。在大多数操作系统中,同步I/O是标准的,Windows NT除了提供同步I/O外还提供异步I/O,允许子系统选用同步I/O或异步I/O,并根据它的应用程序接口操作的不同,为客户应用程序提供不同类型的I/O。第六章 输入/输出系统 图 6.25 异步I/O

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁