




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、、第6章I/O系统、6.1 I/O系统的功能、型号和接口6.2 I/O设备和设备控制器6.3中断机构和中断处理程序6.4设备驱动程序6.5设备无关I/O软件6.6用户层的I/O软件6.7缓冲管理6.8磁盘存储的性能和调度练习、6.1 I/O系统的功能、型号和接口I最重要的任务是完成用户提出的I/O请求,提高I/O速度,提高设备的利用率,并为更高级别的进程提供方便的使用方法。6.1.1 I/O系统的基本功能1。隐藏物理设备的详细I/O设备的类型有很大差异,在接收和生成数据的速度、传输方向、粒度、数据表示和可靠性等方面有很大差异。2 .与设备无关的物理设备的详细信息在以前的操作系统中实现,使用户可
2、以方便地使用设备。与设备的关联在隐藏物理设备的详细信息的同时,很晚才实现。3 .提高处理器和I/O设备的利用率在典型系统中,许多I/O设备可以相互独立并并行运行,处理器和设备之间也可以并行运行。因此,I/O系统的第三个功能是尽可能并行运行处理器和I/O设备,以提高利用率。为此,处理功能必须快速响应用户的I/O请求,以确保I/O设备尽快启动。此外,在每个I/O设备运行的同时,应尽量减少处理器的干预时间。4。I/O设备的控制I/O设备的控制是驱动程序的功能。目前I/O设备的控制方法有四种(使用轮询的可编程I/O方法)。使用中断可编程I/O方法;直接内存访问方法;I/o通道方法。5 .验证设备的正确
3、共享是否可以在设备的共享属性中将系统中的设备分为以下两类:(1)独占设备,进程必须互斥访问该设备。也就是说,在系统将设备分配给流程后,该设备将由流程独占处理,直到流程完全发布。典型的专有设备包括打印机、磁带机等。系统在分配专有设备时还必须考虑分配的安全性。(2)作为共享设备,允许多个进程在一段时间内同时访问的设备。典型的共享设备是磁盘,当磁盘上有多个需要读写操作的进程时,它们可以相互交叉,而不影响读写的准确性。6。错误处理大多数设备包含许多机械和电气部分,在运行时容易发生错误和故障。从处理的角度来看,可以将错误分为临时错误和永久错误。对于临时错误,可以重试操作并进行更正,只有在出现持久性错误时
4、,才能向上层报告。6.1.2 I/O系统的层次和模型1。I/O软件的层通常将I/O软件组织为四层,如图6-1所示。图6-1 I/o系统的层次结构,2。I/o系统中各种模块之间的分层视图为了更清楚地说明I/o系统中主要模块之间的关系,我们进一步介绍了I/o系统中各种I/o模块之间的分层视图。请参阅图6-2。1) I/O系统的顶部和底部接口(1) I/O系统接口。(2)软件/硬件(RW/HW)接口。图6-2查看I/O系统中各种模块之间的分层结构,2) I/O系统的分层对应于前面讨论的I/O软件组织的分层,I/O系统本身也可以分为以下三个级别:(1)中断处理程序。(2)设备驱动程序。(3)设备独立软
5、件。在6.1.3 I/O系统接口I/O系统和更高级别的接口中,根据设备类型进一步分为多个接口。块设备接口、流设备接口和网络接口如图6-2所示。1.块设备接口(1)块设备。(2)光盘的二维结构是隐藏的。(3)将抽象命令映射到子层次操作。2 .流设备接口流设备接口是流设备管理程序和高级别之间的接口。此界面也称为文字设备接口,它反映了大多数文字设备的本质特征,控制文字设备的输入或输出。(1)文字设备。(2) get和put操作。(3) in-control命令。3 .网络通信接口在最新的操作系统中提供面向网络的功能。但是首先,必须以某种方式将计算机连接到网络。操作系统还必须提供相应的网络软件和网络通
6、信接口,以便计算机通过网络与网络上的其他计算机通信或网上冲浪。6.2 I/O设备和设备控制器I/O设备通常由执行I/O操作的机械部分和执行控制I/O的电子部分组成。通常,这两个部分是分开的,执行I/O操作的机械部分是典型的I/O设备,控制I/O的电子部件称为设备控制器或适配器。小型和小型控制器通常以印刷电路卡的形式制造,也称为插入计算机扩展槽的控制器卡、接口卡或网卡。某些大中型计算机系统还配置了I/O通道或I/O处理器。6.2.1 I/O设备1。I/O设备类型1)按使用特性分类2)按波特率,2。由于设备与控制器之间的接口通常不与CPU直接通信,而是与设备控制器通信,因此I/O设备必须具有与设备
7、控制器的接口,该接口必须具有三种信号类型(请参见图6-3)。(1)数据信号线。(2)控制信号线。(3)状态信号线。图6-3设备和控制器之间的接口,6.2.2设备控制器1。设备控制器的基本功能(1)接收和识别命令。(2)数据交换。(3)识别和报告设备的状态。(4)地址识别。(5)数据缓冲区。(6)错误控制。2 .设备控制器的配置CPU和设备之间的设备控制器必须具有与CPU通信、与设备通信以及根据CPU发送的命令控制设备操作的功能,因此大多数现有控制器包括三个部分:(1)设备控制器和处理器之间的接口。(2)设备控制器和设备接口。(3)I/o逻辑。图6-4设备控制器的配置,6.2.3内存映像I/O
8、1。利用特定的I/O命令,在初始计算机(包括大型计算机)上,将图6-5(a)中所示的8位或16位整数I/O端口分配给每个控制寄存器,以实现CPU和设备控制器之间的通信。还设置了一些特定的I/o指令。2 .内存映像I/O在此方法中,内存单元地址和设备控制器的寄存器地址在寻址中不再区分,而是使用k。如果k值在0n-1范围内,则认为是内存地址,如果k大于n,则认为是控制器的寄存器地址。图6-5设备寻址形式,6.2.4I/O通道1。引入I/O通道设备使CPU和I/O设备之间添加了设备控制器后,可以显着减少CPU对I/O的干预,但即使主机配置了很多外围设备,CPU的负担仍然很重。为此,在CPU和设备控制
9、器之间添加了额外的I/o通道(I/o通道)。2 .通道类型1)字节多通道(Byte Multiplexor Channel)字节交叉运行的通道。通常包含数十到数百个未分配的子通道,每个子通道连接I/O设备并控制该设备的I/O操作。此子通道按时间切片共享主通道。图6-6字节多路复用器的工作方式,2)阵列选择信道(Block Selector Channel)字节多路复用器不适合高速设备连接,从而促进阵列选择信道的形成,以便进行阵列特定的数据传输。3)阵列多通道(Block Multiplexor Channel)阵列选择通道的传输速率较高,但每次只能有一个设备传输数据。阵列多路复用是通过阵列选择
10、通道的高波特率和字节多路复用结合每个子通道(设备)分时并行操作优点的新通道。,3 .“瓶颈”问题往往是由于通道价格昂贵,系统中设置的通道较少,导致I/O瓶颈,从而降低总体系统吞吐量。图6-7单路径I/O系统,图6-8多路径I/O系统,6.3中断机构和中断处理程序操作系统的I/O系统,本章从本节开始,使用从较低级别引入到较高级别的方法。中断在操作系统中具有特别重要的位置,是多通道程序实现的基础,没有中断就不能实现多个程序。这是因为进程之间的交换是通过中断实现的。相反,中断也是设备管理的基础,需要中断支持才能提高处理器的利用率,并使CPU与I/O设备并行运行。中断处理程序是整个I/O系统的基础I/
11、O系统中的最低层。6.3.1中断简介1。封锁和封锁1)封锁2)封锁,2。中断方向表和中断优先级1)中断优先级,3。处理多个中断源的方法1)掩码(禁止)中断2)嵌套中断,图6-9多中断处理方法,6.3.2中断处理程序从一个进程请求I/O操作时,该进程将挂起,直到I/O设备完成I/O操作,设备控制器向CPU发送中断请求。在CPU响应后,转到中断处理程序,中断处理程序执行其处理,处理完成后,解除该进程的阻塞状态。图6-10中断站点保护图,图6-11中断处理进程,6.4设备驱动程序设备处理程序通常称为设备驱动程序,是I/O系统中较高层和设备控制器之间的通信程序,主要任务是接收来自较高层软件(例如rea
12、d或write命令)的抽象I/O要求,转换为特定要求后的设备相反,它向父软件发送设备控制器发送的信号。驱动程序与硬件密切相关,因此通常需要为每个设备类型配置一个驱动程序。例如,打印机和显示器需要不同的驱动程序。6.4.1设备驱动程序概述1。设备驱动程序的功能(1)接收设备无关软件发送的命令和自变量,并将命令的抽象要求转换为设备相关的低级操作序列。(2)确定用户I/O请求的正当性,了解I/O设备的操作状态,传递与I/O设备操作相关的参数,并设置设备的操作方式。(3)运行I/o命令,如果设备空闲,则立即启动I/o设备以完成指定的I/o操作。如果设备正在使用中,请将请求者的请求块挂在设备队列中等待。
13、(4)及时响应设备控制器发送的中断请求,并调用相应的中断处理程序进行处理。2 .设备驱动程序的特征设备驱动程序是低级系统例程,与普通应用程序和系统程序有很大区别。(1)驱动程序是实现设备独立软件和设备控制器之间通信和转换的程序,特别是抽象I/O请求转换为特定I/O操作,然后将其转发给控制器。写入控制器的设备状态和I/O操作完成将立即反映在I/O请求进程中。(2)驱动程序与设备控制器和I/O设备的硬件特性密切相关,必须为不同类型的设备配置不同的驱动程序。可以为同一多个端子设置一个端子驱动程序。(3)驱动程序与I/O设备使用的I/O控制方法密切相关,常用的I/O控制方法是中断驱动程序和DMA方法。
14、(4)驱动程序与硬件密切相关,因此其中的一些需要用汇编语言编写。现在,许多驱动程序的基本部分已硬化到ROM中。(5)驱动程序响应许可证重新入库。在一个调用完成之前,经常会重新调用正在运行的驱动程序。3 .不同的操作系统处理设备的方法并不相同。6.4.2设备驱动程序的处理过程设备驱动程序的主要任务是启动指定的设备并完成高级别指定的I/O操作。但是,在开始之前,必须完成必要的准备工作,例如验证设备状态是否在使用中。所有准备就绪后,向设备控制器发送启动命令。图6-12状态寄存器的格式,I/O设备的6.4.3控制方法,最初采用轮询的可编程I/O方法,以后采用中断的可编程I/O方法发展。1 .使用可轮询
15、的可编程I/O处理器轮询I/O设备控制的可编程I/O方法,即当处理器向控制器发出I/O命令并开始输入设备输入数据时,将状态寄存器的忙/闲标志busy设置为1,然后继续循环busy(称为轮询)。Busy=1表示输入器尚未丢失一个单词(符号),并且处理器必须继续测试此标志,然后将输入器设置为busy=0以指示输入数据已发送到控制器的数据寄存器。处理器从数据寄存器中获取数据,并将其发送到内存指定设备,一个字(符号)的I/O就完成了。然后开始读取下一个数据,并设置busy=1。图6-13程序I/O和中断驱动器进程,2。使用中断可编程I/O方法。对当前I/O设备的控制广泛使用中断可编程I/O方法。也就是
16、说,当进程开始处理I/O设备时,CPU向相应的设备控制器发出I/O命令,立即返回并继续执行原始操作。然后设备控制器根据命令控制指定的I/O设备。此时,CPU与I/O设备并行工作。3 .直接存储访问方法1)引入连接存储访问使中断驱动器I/O比程序I/O方法更有效,但仍以单词(部分)为单位执行I/O。每次一个单词(部分)的I/o完成后,控制器都会向CPU请求一次中断。此方法是(1)数据传输的基本单位是数据块。这意味着一次在CPU和I/O设备之间传输一个或多个数据块。(2)传输的数据从设备直接发送到内存,反之亦然。(3)仅当一个或多个数据块传输开始和结束时,才需要CPU干预,整个数据传输是在控制器的控制下进行的。与中断驱动程序相比,DMA可进一步提高CPU和I/O设备的并行处理能力。2) DMA控制器包含三个部分:主机和DMA控制器接口。DMA控制器和块设备接口;I/o控制逻辑。图6-14显示了DMA控制器的配置。这里主要介绍主机和控制器之间的接口。图6-14 DMA控制器配置,3) DMA操作进程在CPU从磁盘读取数据块时向磁盘控制器发送读取命令。此命令被送入命令寄存器CR。此外,要读取的数据必须从内存的起始目标地址发送到内存地址寄存器MAR。图6-15 DMA方法的工作流图,4 .I/O通道控制方法1) I/O通道控制方法与中断方法相比,DMA方法大大减
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论