输入输出系统

上传人:gb****c 文档编号:243460339 上传时间:2024-09-23 格式:PPTX 页数:143 大小:1.51MB
返回 下载 相关 举报
输入输出系统_第1页
第1页 / 共143页
输入输出系统_第2页
第2页 / 共143页
输入输出系统_第3页
第3页 / 共143页
点击查看更多>>
资源描述
,2015,年,11,月,23,日,#,第六章 输入输出系统,引言,6.1,I/O,系统的功能、模型和接口,6.2,I/O,设备和设备控制器,6.3,中断机构和中断处理程序,6.4,设备驱动程序,6.5,与设备无关的,I/O,软件,6.6,用户层,I/O,软件,6.7,缓冲区管理,6.8,磁盘,存储器的性能和调度,2017,年,5,月,27,日,引言,计算机系统的一个重要组成部分是,I/O,系统,。在该系统中包括有用于实现信息输入、输出和存储功能的,设备,和相应的,设备控制器,,在有的大中型机中,还有,I/O,通道,或,I/O,处理机。,也就是说,输入输出系统的,主要对象,是,I/O,设备,还可能要涉及到设备控制器和,I/O,通道。,而输入输出系统的,主要任务,是完成用户提出的,I/O,请求,提高,I/O,速率以及提高,I/O,设备的利用率。,输入输出系统的,主要功能,有:缓冲区管理、设备分配、设备处理、虚拟设备以及实现设备独立性等。,由于,I/O,设备不仅种类繁多,而且它们的特点和操作方式往往相差甚大,这就,使得输入输出系统成为,操作系统最繁杂且与硬件最紧密相关的部分。,1,6.1,I/O,系统的功能、模型和接口,I/O,系统管理的主要对象是,I/O,设备和相应的设备控制器。其最主要的任务是,完成用户提出的,I/O,请求,提高,I/O,速率,以及提高设备的利用率,并能为更高层的进程方便地使用这些设备提供手段。,一、,I/O,系统的基本功能,二、,I/O,系统的层次结构和模型,三,、,I/O,系统接口,2,一、,I/O,系统的基本功能,1,、隐藏物理设备的细节,2,、与设备的无关性,有什么好处?,3,、提高处理机和,I/O,设备的利用率,如何实现?,4,、对,I/O,设备进行控制,有哪几种方式?,5,、确保对设备的正确共享,不同类型设备的共享问题,6,、错误处理,临时性错误与永久性错误,方便用户使用,I/O,设备,提高,CPU,和,I/O,设备的利用率,共享与出错处理,3,1.,隐藏物理设备的细节,I/O,设备的类型非常多,且彼此间在多方面都有差异,诸如它们接收和产生数据的速度,传输方向、粒度、数据的表示形式及可靠性等方面。,4,2.,与,设备的无关,性,隐藏,物理设备的细节,在早期的,OS,中就已实现,它可方便用户对设备的使用。与设备的无关性是在较晚时才实现的,这是在隐藏物理设备细节的基础上实现的。,5,3.,提高,处理机和,I/O,设备的利用率,在一般的系统中,许多,I/O,设备间是相互独立的,能够并行操作,在处理机与设备之间也能并行操作。因此,,I/O,系统的第三个功能是要尽可能地让处理机和,I/O,设备并行操作,以提高它们的利用率。为此,一方面要求处理机能快速响应用户的,I/O,请求,使,I/O,设备尽快地运行起来;另一方面也应尽量减少在每个,I/O,设备运行时处理机的干预时间,。,6,4.,对,I/O,设备进行控制,对,I/O,设备进行控制是驱动程序的功能。目前对,I/O,设备有四种控制方式,:,采用轮询的可编程,I/O,方式,;,采用中断的可编程,I/O,方式,;,直接存储器访问方式,;,I/O,通道方式。,7,5.,确保,对设备的正确共享,从设备的共享属性上,可将系统中的设备分为如下两类:,(,1),独占设备,进程应互斥地访问这类设备,即系统一旦把这类设备分配给了某进程后,便由该进程独占,直至用完释放。典型的独占设备有打印机、磁带机等。系统在对独占设备进行分配时,还应考虑到分配的安全性。,(,2),共享设备,是指在一段时间内允许多个进程同时访问的设备。典型的共享设备是磁盘,当有多个进程需对磁盘执行读、写操作时,可以交叉进行,不会影响到读、写的正确性。,8,6.,错误,处理,大多数的设备都包括了较多的机械和电气部分,运行时容易出现错误和故障。从处理的角度,可将错误分为临时性错误和持久性错误。对于临时性错误,可通过重试操作来纠正,只有在发生了持久性错误时,才需要向上层报告。,9,二、,I/O,系统的层次结构和模型,1,、,I/O,软件的层次结构,用户层,I/O,软件,设备,独立性软件,设备驱动程序,中断处理程序,2,、,I/O,系统中各模块之间的层次视图,I/O,系统的上、下接口:系统接口与软,/,硬件接口,I/O,系统的分层,中断处理程序,设备驱动程序,设备独立性软件:设备独立性,/,设备无关性,10,1. I/O,软件的层次结构,通常把,I/O,软件组织成四个,层次:,用户层,I/O,软件,设备独立性软件,设备驱动程序,中断处理程序,如图所,示,11,为了,能更清晰地描述,I/O,系统中主要模块之间的关系,我们进一步介绍,I/O,系统中各种,I/O,模块之间的层次视图,。如图所,示。,1,) I/O,系统的上、下接口,(1) I/O,系统,接口,(2),软件,/,硬件,(RW/HW),接口,2) I/O,系统的,分层 与,前面所述的,I/O,软件组织的层次结构相对应,,I/O,系统本身也可分为如下三个层次:,(1),中断处理,程序,(2),设备驱动程序,(3),设备独立性,软件,2. I/O,系统,中各模块,之间的层次,视图,12,三、,I/O,系统接口,在,I/O,系统与高层之间的接口中,根据设备类型的不同,又进一步分为若干个接口。,在上一小节图中,示出了块设备接口、流设备接口和网络接口。,1,、块设备接口,什么是块设备,有何特性,采用什么操作方式,如何隐藏磁盘的二位结构,抽象命令如何映射为低层操作,2,、流设备接口,什么字符设备,有何特性,采用什么操作方式,get,与,put,操作,in-control,指令,3,、网络通信接口,13,1.,块,设备,接口,(1),块设备。,(,2),隐藏了磁盘的二维结构。,(,3),将抽象命令映射为低层操作,14,2.,流,设备接口,流,设备接口是流设备管理程序与高层之间的接口。该接口又称为字符设备接口,它反映了大部分字符设备的本质特征,用于控制字符设备的输入或输出。,(,1),字符,设备,(,2) get,和,put,操作,(,3),in-control,指令,15,3.,网络,通信接口,在现代,OS,中,都提供了面向网络的功能。但首先还需要通过某种方式把计算机连接到网络,上,同时操作,系统也必须提供相应的网络软件和网络通信接口,使计算机能通过网络与网络上的其它计算机进行通信或上网浏览,16,6.2 I/O,设备和设备控制器,I/O,设备一般是由执行,I/O,操作的机械部分和执行控制,I/O,的电子部件,组成,通常,将这两部分分开,执行,I/O,操作的机械部分就是一般的,I/O,设备,,而执行控制,I/O,的电子部件则称为,设备控制器,或,适配器,(adapter,),在,微型机和小型机中的控制器常做成印刷电路卡形式,因而也常称为控制卡、接口卡或网卡,可将它插入计算机的扩展槽,中,在,有的大、中型计算机系统中,还配置了,I/O,通道或,I/O,处理机,一、,I/O,设备,二,、设备控制器,三,、内存映像,I/O,四,、,I/O,通道,五,、总线结构,17,一、,I/O,设备,1. I/O,设备的类型,2.,设备与控制器之间的接口,18,1. I/O,设备的类型,I/O,设备的类型繁多,从,OS,观点看,其重要的性能指标有:数据传输速率、数据的传输单位、设备共享属性等。,因而可以从不同角度对它们进行分类:,1),按设备的使用特性分类,2),按传输速率分类,3),按设备的共享属性,分类,4),按信息交换的单位分类:块设备与字符设备,19,1),按设备的使用特性分类,按设备的使用特性,可将设备分为两类。,第一类是存储设备,也称外存或后备存储器、辅助存储器,是计算机系统用以存储信息的主要设备。该类设备存取速度较内存慢,但容量比内存大得多,相对价格也便宜。,第二类就是输入,/,输出设备,又具体可分为输入设备、输出设备和交互式设备。,输入设备用来接收外部信息,如键盘、鼠标、扫描仪、视频摄像、各类传感器等。,输出设备是用于将计算机加工处理后的信息送向外部的设备,如打印机、绘图仪、显示器、数字视频显示设备、音响输出设备等。,交互式设备则是集成上述两类设备,利用输入设备接收用户命令信息,并通过输出设备,(,主要是显示器,),同步显示用户命令以及命令执行的结果。,20,2),按传输速率分类,按传输速度的高低,可将,I/O,设备分为三类。,第一类是低速设备,这是指其传输速率仅为每秒钟几个字节至数百个字节的一类设备。,属于低速设备的典型设备有键盘、鼠标器、语音的输入和输出等设备。,第二类是中速设备,这是指其传输速率在每秒钟数千个字节至数万个字节的一类设备。,典型的中速设备有行式打印机、激光打印机等。,第三类是高速设备,这是指其传输速率在数百千个字节至数十兆字节的一类设备。,典型的高速设备有磁带机、磁盘机、光盘机等。,21,3),按设备的共享属性分类,这种分类方式可将,I/O,设备分为如下三类:,1.,独占设备:这是指在一段时间内只允许一个用户,(,进程,),访问的设备,即临界资源。因而,对多个并发进程而言,应互斥地访问这类设备。系统一旦把这类设备分配给了某进程后,便由该进程独占,直至用完释放。应当注意,独占设备的分配有可能引起进程死锁。,2.,共享设备:这是指在一段时间内允许多个进程同时访问的设备。当然,对于每一时刻而言,该类设备仍然只允许一个进程访问。显然,共享设备必须是可寻址的和可随机访问的设备。典型的共享设备是磁盘。对共享设备不仅可获得良好的设备利用率,而且它也是实现文件系统和数据库系统的物质基础。,3.,虚拟设备:这是指通过虚拟技术将一台独占设备变换为若干台逻辑设备,供若干个用户,(,进程,),同时使用。,22,2.,设备与控制器之间的接口,通常,,设备并不是直接与,CPU,进行通信,而是与设备控制器通信,因此,在,I/O,设备中应含有与设备控制器间的接口,在该接口中有三种类型的信号,各对应一条信号线。,数据信号线:这类信号线用于在设备和设备控制器之间传送数据信号。对输入设备而言,由外界输入的信号经转换器转换后所形成的数据,通常先送入缓冲器中,当数据量达到一定的比特,(,字符,),数后,再从缓冲器通过一组数据信号线传送给设备控制器,如图,5-1,所示。对输出设备而言,则是将从设备控制器经过数据信号线传送来的一批数据先暂存于缓冲器中,经转换器作适当转换后,再逐个字符地输出。,控制信号线:这是作为由设备控制器向,I/O,设备发送控制信号时的通路。该信号规定了设备将要执行的操作,如读操作,(,指由设备向控制器传送数据,),或写操作,(,从控制器接收数据,),,或执行磁头移动等操作。,状态信号线:这类信号线用于传送指示设备当前状态的信号。设备的当前状态有正在读,(,或写,),;设备已读,(,写,),完成,并准备好新的数据传送。,23,二、设备控制器,设备控制器是计算机中的一个实体,其主要职责是控制一个或多个,(,同类,)I/O,设备,以实现,I/O,设备和计算机之间的数据交换。它是,CPU,和,I/O,设备之间的接口,它接收从,CPU,发来的命令,并去控制,I/O,设备工作,以使处理机从繁杂的设备控制事务中解脱出来。,设备控制器是一个可编址的设备,当它仅控制一个设备时,它只有一个唯一的设备地址;若控制器可连接多个设备时,则应含有多个设备地址,并使每一个设备地址对应一个设备。,设备控制器的复杂性因不同设备而异,相差甚大,于是可把设备控制器分成两类:一类用于控制字符设备的控制器;一类用于控制块设备的控制器。,在微型机和小型机中的控制器,常做成印刷电路卡形式,因而也成接口卡,可将它插入计算机,(,插槽中,),。,本小节介绍:,1,、设备控制器的基本功能,2,、设备控制器的组成,24,1,、设备控制器的基本功能,1),接收和识别命令:,CPU,可以向控制器发送多种不同的命令,设备控制器应能接收并识别这些命令。为此,在控制器中应具有相应的控制寄存器,用来存放接收的命令和参数,并对所接收的命令进行译码。例如,磁盘控制器可以接收,CPU,发来的,Read,、,Write,、,Format,等,15,条不同的命令,而且有些命令还带有参数;相应地,在磁盘控制器中有多个寄存器和命令译码器等。,2),数据交换:这是指实现,CPU,与控制器之间、控制器与设备之间的数据交换。对于前者,是通过数据总线,由,CPU,并行地把数据写入控制器,或从控制器中并行地读出数据;对于后者,是设备将数据输入到控制器,或从控制器传送给设备。为此,在控制器中须设置数据寄存器。,3),标识和报告设备的状态:控制器应记下设备的状态供,CPU,了解。例如,仅当该设备处于发送就绪状态时,,CPU,才能启动控制器从设备中读出数据。为此,在控制器中应设置一状态寄存器,用其中的每一位来反映设备的某一种状态。当,CPU,将该寄存器的内容读入后,便可了解该设备的状态。,4),地址识别:就像内存中的每一个单元都有一个地址一样,系统中的每一个设备也都有一个地址,而设备控制器又必须能够识别它所控制的每个设备的地址。此外,为使,CPU,能向,(,或从,),寄存器中写入,(,或读出,),数据,这些寄存器都应具有唯一的地址。例如,在,IB-MPC,机中规定,硬盘控制器中各寄存器的地址分别为,320,32F,之一。控制器应能正确识别这些地址,为此,在控制器中应配置地址译码器。,5),数据缓冲:由于,I/O,设备的速率较低而,CPU,和内存的速率却很高,故在控制器中必须设置一缓冲器。在输出时,用此缓冲器暂存由主机高速传来的数据,然后才以,I/O,设备所具有的速率将缓冲器中的数据传送给,I/O,设备;在输入时,缓冲器则用于暂存从,I/O,设备送来的数据,待接收到一批数据后,再将缓冲器中的数据高速地传送给主机。,6),差错控制:设备控制器还兼管对由,I/O,设备传送来的数据进行差错检测。若发现传送中出现了错误,通常是将差错检测码置位,并向,CPU,报告,于是,CPU,将本次传送来的数据作废,并重新进行一次传送。这样便可保证数据输入的正确性。,25,2,、设备控制器的组成,1),设备控制器与处理机的接口:该接口用于实现,CPU,与设备控制器之间的通信。共有三类信号线,:,数据线、地址线和控制线。数据线通常与两类寄存器相连接,第一类是数据寄存器,(,在控制器中可以有一个或多个数据寄存器,用于存放从设备送来的数据,(,输入,),或从,CPU,送来的数据,(,输出,),;第二类是控制,/,状态寄存器,(,在控制器中可以有一个或多个这类寄存器,用于存放从,CPU,送来的控制信息或设备的状态信息,),。,2),设备控制器与设备的接口:在一个设备控制器上,可以连接一个或多个设备。相应地,在控制器中便有一个或多个设备接口,一个接口连接一台设备。在每个接口中都存在数据、控制和状态三种类型的信号。控制器中的,I/O,逻辑根据处理机发来的地址信号去选择一个设备接口。,3)I/O,逻辑:在设备控制器中的,I/O,逻辑用于实现对设备的控制。它通过一组控制线与处理机交互,处理机利用该逻辑向控制器发送,I/O,命令;,I/O,逻辑对收到的命令进行译码。每当,CPU,要启动一个设备时,一方面将启动命令发送给控制器;另一方面又同时通过地址线把地址发送给控制器,由控制器的,I/O,逻辑对收到的地址进行译码,再根据所译出的命令对所选设备进行控制。,26,三、内存映像,I/O,设备驱动程序将抽象,I/O,命令转化出的一系列具体的命令、参数等数据装入设备控制器的相应寄存器,由控制器来执行这些指令,具体实施对,I/O,设备的控制。,这一工作可以用以下两个方法完成:,1,、利用特定的,I/O,指令,2,、内存映像,I/O,27,1.,利用,特定的,I/O,指令,在早期的计算机中,包括大型计算机,为实现,CPU,和设备控制器之间的通信,为每个控制寄存器分配一个,I/O,端口,这是一个,8,位或,16,位的整数,,,如下页图,(a,),所,示,另外,还设置了一些,特定的,I/O,指令,28,29,2.,内存,映像,I/O,在这种方式中,在编址上不再区分内存单元地址和设备控制器中的寄存器地址,都采用,k,。当,k,值处于,0,n-1,范围时,被认为是内存地址,若,k,大于等于,n,时,被认为是某个控制器的寄存器,地址,如上页,图,(,b,),所示,30,四、,I/O,通道,1,、,I/O,通道,(I/O Channel),设备的引入,2,、通道类型,3,、“瓶颈”问题,31,1,、,I/O,通道,(I/O Channel),设备的引入,设备控制器虽然已大大减少,CPU,对,I/O,设备的干预,但当主机所配置的外设很多是,,CPU,的负担仍然很重。为此,在,CPU,和设备控制器之间有增设了通道。其,主要目的,是为了建立独立的,I/O,操作,不仅是数据的传输能独立于,CPU,,而且也希望有关对,I/O,操作的组织、管理及其结束处理也尽量独立,以保证,CPU,有更多的时间去进行数据处理;或者说其目的是使一些原来由,CPU,处理的,I/O,任务转由通道来承担,从而把,CPU,从繁杂的,I/O,任务中解脱出来。,在设置了通道后,,CPU,只需要向通道发送一条,I/O,指令;通道在接收到该指令后,便从内存中取出本次要执行的通道程序;然后执行该通道程序,仅当通道完成了规定的,I/O,任务后,才向,CPU,发中断信号。,实际上,,I/O,通道是一种特殊的处理机。它具有执行,I/O,指令的能力,并通过执行通道,(I/O),程序来控制,I/O,操作。但,I/O,通道又与一般的处理机不同,主要表现在以下两个方面:,一是其指令类型单一,这是由于通道硬件比较简单,其所能执行的命令,主要局限于与,I/O,操作有关的指令;,再就是通道没有自己的内存,通道所执行的通道程序是放在主机的内存中的,换言之,是通道与,CPU,共享内存。,32,2,、通道类型,1),字节多路通道,(Byte Multiplexor Channel),2),数组选择通道,(Block Selector Channel),3),数组多路通道,(Block Multiplexor Channel),33,1),字节多路通道,这是一种按字节交叉方式工作的通道。它通常都含有许多非分配型子通道,其数量可从几十到数百个,每一个子通道连接一台,I/O,设备,并控制该设备的,I/O,操作。这些子通道按时间片轮转方式共享主通道。当第一个子通道控制其,I/O,设备完成一个字节的交换后,便立即腾出主通道,让给第二个子通道使用;当第二个子通道也完成一个字节的交换后,同样也把主通道让给第三个子通道;依此类推。当所有子通道轮转一周后,重又返回来由第一个子通道去使用字节多路主通道。这样,只要字节多路通道扫描每个子通道的速率足够快,而连接到子通道上的设备的速率不是太高时,便不致丢失信息。,下图示出了字节多路通道的工作原理。它所含有的多个子通道,A,,,B,,,C,,,D,,,E,,,,,N,,,分别通过控制器各与一台设备相连。假定这些设备的速率相近,且都同时向主机传送数据。设备,A,所传送的数据流为,A1A2A3,;设备,B,所传送的数据流为,B1B2B3,把这些数据流合成后,(,通过主通道,),送往主机的数据流为,A1B1C1D1 A2B2C2D2 A3B3C3D3,34,2),数组选择通道,字节多路通道不适于连接高速设备,这推动了按数组方式进行数据传送的数组选择通道的形成。这种通道虽然可以连接多台高速设备,但由于它只含有一个分配型子通道,在一段时间内只能执行一道通道程序,控制一台设备进行数据传送,致使当某台设备占用了该通道后,便一直由它独占,即使是它无数据传送,通道被闲置,也不允许其它设备使用该通道,直至该设备传送完毕释放该通道。可见,这种通道的利用率很低。,35,3),数组多路通道,数组选择通道虽有很高的传输速率,但它却每次只允许一个设备传输数据。数组多路通道是将数组选择通道传输速率高和字节多路通道能使各子通道,(,设备,),分时并行操作的优点相结合而形成的一种新通道。它含有多个非分配型子通道,因而这种通道既具有很高的数据传输速率,又能获得令人满意的通道利用率。也正因此,才使该通道能被广泛地用于连接多台高、中速的外围设备,其数据传送是按数组方式进行的。,36,由于通道价格昂贵,致使机器中所设置的通道数量势必较少,这往往又使它成了,I/O,的瓶颈,进而造成整个系统吞吐量的下降。例如,假设设备,1,至设备,4,是四个磁盘,为了启动磁盘,4,,必须用通道,1,和控制器,2,;但若这两者已被其它设备占用,必然无法启动磁盘,4,。类似地,若要启动盘,1,和盘,2,,由于它们都要用到通道,1,,因而也不可能启动。这些就是由于通道不足所造成的“瓶颈”现象。,解决“瓶颈”问题的最有效的方法,便是增加设备到主机间的通路而不增加通道。换言之,就是把一个设备连接到多个控制器上,而一个控制器又连接到多个通道上。图中的设备,1,、,2,、,3,和,4,,都有四条通往存储器的通路。例如,通过控制器,1,和通道,1,到存储器;也可通过控制器,2,和通道,1,到存储器。多通路方式不仅解决了“瓶颈”问题,而且提高了系统的可靠性,因为个别通道或控制器的故障不会使设备和存储器之间没有通路。,3,、“瓶颈”问题,37,五、总线结构*,总线型,I/O,系统结构中,系统各部件如,CPU,、存储器及各种,I/O,设备之间是通过总线实现联系的。,总线的性能是用总线的时钟频率、带宽和相应的总线传输速率来衡量的。,总线随着要求的不断提高从早期的,ISA,总线发展到,EISA,、,VESA,,直到当今广为流行的,PCI,总线。,38,1,、,ISA,和,EISA,总线,1)ISA(Industry Standard Architecture),总线:这是为了,1984,年推出的,80286,型微机而设计的总线结构。其总线的带宽为,8,位,最高传输速率为,2Mb/s,。之后不久又推出了,16,位的,(EISA),总线,其最高传输速率为,8Mb/s,,后又升至,16Mb/s,,能连接,12,台设备。,2)EISA(Extended ISA),总线:到,80,年代末期,,ISA,总线已难于满足带宽和传输速率的要求,于是人们又开发出扩展,ISA(EISA),总线,其带宽为,32,位,总线的传输速率高达,32Mb/s,,同样可以连接,12,台外部设备。,39,2,、局部总线,(Local Bus),多媒体技术的兴起,特别是全运动视频处理、高保真音响、高速,LAN,,以及高质量图形处理等技术,都要求总线具有更高的传输速率,这时的,EISA,总线已难于满足要求,于是,局部总线便应运而生。所谓局部总线,是指将多媒体卡、高速,LAN,网卡、高性能图形板等,从,ISA,总线上卸下来,再通过局部总线控制器直接接到,CPU,总线上,使之与高速,CPU,总线相匹配,而打印机、,FAX/Modem,、,CDROM,等仍挂在,ISA,总线上。在局部总线中较有影响的是,VESA,总线和,PCI,总线。,1)VESA(Video Electronic Standard Association),总线:该总线的设计思想是以低价位迅速占领市场。,VESA,总线的带宽为,32,位,最高传输速率为,132 Mb/s,。它在,20,世纪,90,年代初被推出时,广泛应用于,486,微机中。但,VESA,总线仍存在较严重的缺点,比如,它所能连接的设备数仅为,2,4,台,在控制器中无缓冲,故难于适应处理器速度的不断提高,也不能支持后来出现的,Pentium,微机。,2)PCI(Peripheral Component Interface),总线:随着,Pentium,系列芯片的推出,,Intel,公司分别在,1992,年和,1995,年颁布了,PCI,总线的,V1.0,和,V2.1,规范,后者支持,64,位系统。,PCI,在,CPU,和外设间插入一复杂的管理层,用于协调数据传输和提供一致的接口。在管理层中配有数据缓冲,通过该缓冲可将线路的驱动能力放大,使,PCI,最多能支持,10,种外设,并使高时钟频率的,CPU,能很好地运行,最大传输速率可达,132 Mb/s,。,PCI,既可连接,ISA,、,EISA,等传统型总线,又可支持,Pentium,的,64,位系统,是基于奔腾等新一代微处理器而发展的总线。,40,6.3,中断机构和中断处理程序,一,、中断简介,二、中断处理程序,41,一、中断简介,1,、中断和陷入,中断:,CPU,对,I/O,设备发来的中断信号的响应,中断是由外部设备引起的,故又称外中断,陷入:由,CPU,内部事件如运算上溢或下溢、程序出错(非法指令、地址越界、电源故障等)引起的中断,称为内中断或陷入,二者的主要区别是中断信号的来源,2,、中断向量表和中断优先级,中断向量表:中断处理程序入口地址表(中断号、入口地址),中断优先级:中断信号源对服务要求的紧急程度不同,3,、对多中断源的处理方式,屏蔽(禁止)中断:中断顺序处理,简单,但不反应优先级,嵌套中断:按优先级控制,42,二、中断处理程序,中断处理层的主要工作有:进行进程上下文切换、测试中断信号源、读取设备状态、修改进程状态等。,中断处理的基本过程:,测定是否有未响应的中断信号,保护被中断进程的,CPU,环境,转入相应的设备处理程序,中断处理,恢复被中断进程,的,CPU,现场并退出中断,43,1,.,测定是否有未响应的中断信号,当中断处理程序开始执行时,首先去唤醒处于阻塞状态的驱动,(,程序,),进程。如果是采用了信号量机制,则可通过执行,signal,操作,将处于阻塞状态的驱动,(,程序,),进程唤醒;在采用信号机制时,将发送一信号给阻塞进程。,44,2.,保护被中断进程的,CPU,环境,通常由硬件自动将处理机状态字,PSW,和程序计数器,(PC),中的内容,保存在中断保留区,(,栈,),中,然后把被中断进程的,CPU,现场信息,(,即包括所有的,CPU,寄存器,如通用寄存器、段寄存器等内容,),都压入中断栈中,因为在中断处理时可能会用到这些寄存器。下图给出了一个简单的保护中断现场的示意图。该程序是指令在,N,位置时被中断的,程序计数器中的内容为,N+1,,所有寄存器的内容都被保留在栈中。,45,3.,转入相应的设备处理程序,由处理机对各个中断源进行测试,以确定引起本次中断的,I/O,设备,并发送一应答信号给发出中断请求的进程,使之消除该中断请求信号,然后将相应的设备中断处理程序的入口地址装入到程序计数器中,使处理机转向中断处理程序。,46,4.,中断处理,对于不同的设备,有不同的中断处理程序。该程序首先从设备控制器中读出设备状态,以判别本次中断是正常完成中断,还是异常结束中断。若是前者,中断程序便进行结束处理;若还有命令,可再向控制器发送新的命令,进行新一轮的数据传送。若是异常结束中断,则根据发生异常的原因做相应的处理。,47,5,.,恢复,被中断进程的现场,当中断处理完成以后,便可将保存在中断栈中的被中断进程的现场信息取出,并装入到相应的寄存器中,其中包括该程序下一次要执行的指令的地址,N+1,、处理机状态字,PSW,,以及各通用寄存器和段寄存器的内容。这样,当处理机再执行本程序时,便从,N+1,处开始,最终返回到被中断的程序。,I/O,操作完成后,驱动程序必须检查本次,I/O,操作中是否发生了错误,并向上层软件报告,最终向调用者报告本次,I/O,的执行情况。除了上述的第,4,步外,其它各步骤对所有,I/O,设备都是相同的,因而对于某种操作系统,例如,UNIX,系统,是把这些共同的部分集中起来,形成中断总控程序。每当要进行中断处理时,都要首先进入中断总控程序。而对于第,4,步,则对不同设备须采用不同的设备中断处理程序继续执行。,右图示出了中断处理流程。,48,6.4,设备驱动程序,一、设备驱动程序概述,二、设备驱动程序的处理过程,三、对,I/O,设备的控制方式,49,一、设备驱动程序概述,设备驱动程序通常又称为设备处理程序,它是,I/O,进程与设备控制器之间的通信程序,又由于它常以进程的形式存在,故以后就简称之为设备驱动进程。其主要任务是接收上层软件发来的抽象,I/O,要求,如,read,或,write,命令,在把它转换为具体要求后,发送给设备控制器,启动设备去执行;此外,它也将由设备控制器发来的信号传送给上层软件。由于驱动程序与硬件密切相关,故应为每一类设备配置一种驱动程序;有时也可为非常类似的两类设备配置一个驱动程序。例如,打印机和显示器需要不同的驱动程序,但,SCSI,磁盘驱动程序通常可以处理不同大小和不同速度的多个,SCSI,磁盘,甚至还可以处理,SCSI CD-ROM,。,50,1.,设备驱动程序的功能,为了实现,I/O,进程与设备控制器之间的通信,设备驱动程序应具有以下功能:,1),接收由设备独立性软件发来的命令和参数,并将命令中的抽象要求转换为具体要求,例如,将磁盘块号转换为磁盘的盘面、磁道号及扇区号。,2),检查用户,I/O,请求的合法性,了解,I/O,设备的状态,传递有关参数,设置设备的工作方式。,3),发出,I/O,命令。如果设备空闲,便立即启动,I/O,设备去完成指定的,I/O,操作;如果设备处于忙碌状态,则将请求者的请求块挂在设备队列上等待。,4),及时响应由控制器或通道发来的中断请求,并根据其中断类型调用相应的中断处理程序进行处理。,5),对于设置有通道的计算机系统,驱动程序还应能够根据用户的,I/O,请求,自动地构成通道程序。,51,2.,设备驱动程序的特点,设备驱动程序属于低级的系统例程,它与一般的应用程序及系统程序之间有下述明显差异:,1),驱动程序主要是指在请求,I/O,的进程与设备控制器之间的一个通信和转换程序。它将进程的,I/O,请求经过转换后,传送给控制器;又把控制器中所记录的设备状态和,I/O,操作完成情况及时地反映给请求,I/O,的进程。,2),驱动程序与设备控制器和,I/O,设备的硬件特性紧密相关,因而对不同类型的设备应配置不同的驱动程序。例如,可以为相同的多个终端设置一个终端驱动程序,但有时即使是同一类型的设备,由于其生产厂家不同,它们也可能并不完全兼容,此时也须为它们配置不同的驱动程序。,3),驱动程序与,I/O,设备所采用的,I/O,控制方式紧密相关。常用的,I/O,控制方式是中断驱动和,DMA,方式,这两种方式的驱动程序明显不同,因为后者应按数组方式启动设备及进行中断处理。,4),由于驱动程序与硬件紧密相关,因而其中的一部分必须用汇编语言书写。目前有很多驱动程序的基本部分,已经固化在,ROM,中。,5),驱动程序应允许可重入。一个正在运行的驱动程序常会在一次调用完成前被再次调用。例如,网络驱动程序正在处理一个到来的数据包时,另一个数据包可能到达。,6),驱动程序不允许系统调用。但是为了满足其与内核其它部分的交互,可以允许对某些内核过程的调用,如通过调用内核过程来分配和释放内存页面作为缓冲区,以及调用其它过程来管理,MMU,定时器、,DMA,控制器、中断控制器等。,52,3.,设备处理方式,1),为每一类设备设置一个进程,专门用于执行这类设备的,I/O,操作。比如,为所有的交互式终端设置一个交互式终端进程;又如,为同一类型的打印机设置一个打印进程。,2),在整个系统中设置一个,I/O,进程,专门用于执行系统中所有各类设备的,I/O,操作。也可以设置一个输入进程和一个输出进程,分别处理系统中所有各类设备的输入或输出操作。,3),不设置专门的设备处理进程,而只为各类设备设置相应的设备处理程序,(,模块,),,供用户进程或系统进程调用。,53,二、设备驱动程序,的处理过程,不同类型的设备应有不同的设备驱动程序,但大体上它们都可以分成两部分,其中,除了要有能够驱动,I/O,设备工作的驱动程序外,还需要有设备中断处理程序,以处理,I/O,完成后的工作。,设备驱动程序的主要任务是启动指定设备。但在启动之前,还必须完成必要的准备工作,如检测设备状态是否为“忙”等。在完成所有的准备工作后,才最后向设备控制器发送一条启动命令。,以下是设备驱动程序的处理过程:,1),将抽象要求转换为具体要求:通常在每个设备控制器中都含有若干个寄存器,分别用于暂存命令、数据和参数等。由于用户及上层软件对设备控制器的具体情况毫无了解,因而只能向它发出抽象的要求,(,命令,),,但这些命令无法传送给设备控制器。因此,就需要将这些抽象要求转换为具体要求。例如,将抽象要求中的盘块号转换为磁盘的盘面、 磁道号及扇区。这一转换工作只能由驱动程序来完成,因为在,OS,中只有驱动程序才同时了解抽象要求和设备控制器中的寄存器情况;也只有它才知道命令、 数据和参数应分别送往哪个寄存器。,2),检查,I/O,请求的合法性:对于任何输入设备,都是只能完成一组特定的功能,若该设备不支持这次的,I/O,请求,则认为这次,I/O,请求非法。例如,用户试图请求从打印机输入数据,显然系统应予以拒绝。此外,还有些设备如磁盘和终端,它们虽然都是既可读又可写的,但若在打开这些设备时规定的是读,则用户的写请求必然被拒绝。,3),读出和检查设备的状态:在启动某个设备进行,I/O,操作时,其前提条件应是该设备正处于空闲状态。因此在启动设备之前,要从设备控制器的状态寄存器中,读出设备的状态。例如,为了向某设备写入数据,此前应先检查该设备是否处于接收就绪状态,仅当它处于接收就绪状态时,才能启动其设备控制器,否则只能等待。,4),传送必要的参数:对于许多设备,特别是块设备,除必须向其控制器发出启动命令外,还需传送必要的参数。例如在启动磁盘进行读,/,写之前,应先将本次要传送的字节数和数据应到达的主存始址,送入控制器的相应寄存器中。,5),工作方式的设置:有些设备可具有多种工作方式,典型情况是利用,RS-232,接口进行异步通信。在启动该接口之前,应先按通信规程设定参数:波特率、奇偶校验方式、停止位数目及数据字节长度等。,6),启动,I/O,设备:在完成上述各项准备工作之后,驱动程序可以向控制器的命令寄存器传送相应的控制命令。对于字符设备,若发出的是写命令,驱动程序将把一个数据传送给控制器;若发出的是读命令,则驱动程序等待接收数据,并通过从控制器中的状态寄存器读入状态字的方法,来确定数据是否到达。驱动程序发出,I/O,命令后,基本的,I/O,操作是在设备控制器的控制下进行的。通常,,I/O,操作所要完成的工作较多,需要一定的时间,如读,/,写一个盘块的数据,此时驱动进程把自己阻塞起来,直到中断到来时才将它唤醒。,54,三、对,I/O,设备的控制方式,1,、使用轮询的可编程,I/O,方式,2,、使用中断的可编程,I/O,方式,3,、直接存储器访问,DMA I/O,控制方式,4,、,I/O,通道控制方式,55,1,、使用轮询的可编程,I/O,方式,早期的计算机系统中,由于无中断机构,处理及对,I/O,设备的控制采取程序,I/O,方式,或称为“忙,等待”方式。,即在处理机向控制器发出一条,I/O,指令启动输入设备输入数据时,要同时把状态寄存器中的忙,/,闲标志,busy,置为,1,,然后便不断地循环测试,busy,。当,busy=1,时,表示输入机尚未输完一个字,(,符,),,处理机应继续对该标志进行测试,直至,busy=0,,表明输入机已将输入数据送入控制器的数据寄存器中。于是处理机将数据寄存器中的数据取出,送入内存指定单元中,这样便完成了一个字,(,符,),的,I/O,。接着再去启动读下一个数据,并置,busy=1,。,在程序,I/O,方式中,由于,CPU,的高速性和,I/O,设备的低速性,致使,CPU,的绝大部分时间都处于等待,I/O,设备完成数据,I/O,的循环测试中,造成对,CPU,的极大浪费。在该方式中,,CPU,之所以要不断地测试,I/O,设备的状态,就是因为在,CPU,中无中断机构,使,I/O,设备无法向,CPU,报告它已完成了一个字符的输入操作。,56,2,、使用中断的可编程,I/O,方式,现代计算机系统中,都毫无例外地引入了中断机构,致使对,I/O,设备的控制,广泛采用中断驱动,(Interrupt Driven),方式,即当某进程要启动某个,I/O,设备工作时,便由,CPU,向相应的设备控制器发出一条,I/O,命令,然后立即返回继续执行原来的任务。设备控制器于是按照该命令的要求去控制指定,I/O,设备。此时,,CPU,与,I/O,设备并行操作。例如,在输入时,当设备控制器收到,CPU,发来的读命令后,便去控制相应的输入设备读数据。一旦数据进入数据寄存器,控制器便通过控制线向,CPU,发送一中断信号,由,CPU,检查输入过程中是否出错,若无错,便向控制器发送取走数据的信号,然后再通过控制器及数据线将数据写入内存指定单元中。,在,I/O,设备输入每个数据的过程中,由于无须,CPU,干预,因而可使,CPU,与,I/O,设备并行工作。仅当输完一个数据时,才需,CPU,花费极短的时间去做些中断处理。可见,这样可使,CPU,和,I/O,设备都处于忙碌状态,从而提高了整个系统的资源利用率及吞吐量。例如,从终端输入一个字符的时间约为,100ms,,而将字符送入终端缓冲区的时间小于,0.1ms,。若采用程序,I/O,方式,,CPU,约有,99.9ms,的时间处于忙,等待中。采用中断驱动方式后,,CPU,可利用这,99.9ms,的时间去做其它事情,而仅用,0.1ms,的时间来处理由控制器发来的中断请求。可见,中断驱动方式可以成百倍地提高,CPU,的利用率。,57,3,、,直接存储器访问,DMA I/O,控制方式,1)DMA(Direct,Memory Access),控制方式的引入,2)DMA,控制器的组成,3)DMA,工作过程,58,1)DMA,控制方式的引入,虽然中断驱动,I/O,方式比程序,I/O,方式更有效,但,CPU,是以字,(,节,),为单位进行干预的,该方式用于块设备的,I/O,显然是低效的。,直接存储器访问方式的特点是:,数据传输的基本单位是数据块,即在,CPU,与,I/O,设备之间,每次传送至少一个数据块;,所传送的数据是从设备直接送入内存的,或者相反;,仅在传送一个或多个数据块的开始和结束时,才需,CPU,干预,整块数据的传送是在控制器的控制下完成的。,可见,,DMA,方式较之中断驱动方式,又是成百倍地减少了,CPU,对,I/O,的干预,进一步提高了,CPU,与,I/O,设备的并行操作程度。,59,2)DMA,控制器的组成,DMA,控制器由三部分组成:主机与,DMA,控制器的接口;,DMA,控制器与块设备的接口;,I/O,控制逻辑。图,5-8,示出了,DMA,控制器的组成。这里主要介绍主机与控制器之间的接口。,为了实现在主机与控制器之间成块数据的直接交换,必须在,DMA,控制器中设置如下四类寄存器:,命令,/,状态寄存器,CR,。用于接收从,CPU,发来的,I/O,命令或有关控制信息,或设备的状态。,内存地址寄存器,MAR,。在输入时,它存放把数据从设备传送到内存的起始目标地址;在输出时,它存放由内存到设备的内存源地址。,数据寄存器,DR,。用于暂存从设备到内存,或从内存到设备的数据。,数据计数器,DC,。存放本次,CPU,要读或写的字,(,节,),数。,60,3)DMA,工作过程,以读入磁盘数据为例,当,CPU,要从磁盘读入一数据块时,便向磁盘控制器发送一条读命令。该命令被送到其中的命令寄存器,(CR),中。同时,还须发送本次要将数据读入的内存起始目标地址,该地址被送入内存地址寄存器(,MAR,)中;本次要读数据的字,(,节,),数则送入数据计数器,(DC),中,还须将磁盘中的源地址直接送至,DMA,控制器的,I/O,控制逻辑上。然后,启动,DMA,控制器进行数据传送,以后,,CPU,便可去处理其它任务。此后,整个数据传送过程便由,DMA,控制器进行控制。,当,DMA,控制器已从磁盘中读入一个字,(,节,),的数据并送入数据寄存器,(DR),后,再挪用一个存储器周期,将该字,(,节,),传送到,MAR,所指示的内存单元中。接着便对,MAR,内容加,1,,将,DC,内容减,1,。若减,1,后,DC,内容不为,0,,表示传送未完,便继续传送下一个字,(,节,),;否则,由,DMA,控制器发出中断请求。,61,4,、,I/O,通道控制方式,1)I/O,通道控制方式的引入,2),通道,程序,62,1) I/O,通道控制方式的引入,虽然,DMA,方式比中断方式已经显著减少了,CPU,的干预,但,CPU,每次发出一条,I/O,指令也只能读,/,写一个数据块。,I/O,通道方式是,DMA,方式的发展,它可进一步减少,CPU,的干预,即把对一个数据块的读,(,或写,),为单位的干预,减少为对一组数据块的读,(,或写,),及有关的控制和管理为单位的干预。同时,又可实现,CPU,、通道和,I/O,设备三者的并行操作,从而更有效地提高整个系统的资源利用率。例如,当,CPU,要完成一组相关的读,(,或写,),操作及有关控制时,只需向,I/O,通道发送一条,I/O,指令,以给出其所要执行的通道程序的首址和要访问的,I/O,设备,通道接到该指令后,通过执行通道程序便可完成,CPU,指定的,I/O,任务。,63,2),通道程序,通道是通过能够执行通道程序,并与设备控制器共同完成对,I/O,设备的控制的。,通道程序是由一系列通道指令,(,或称为通道命令,),所构成的。,每条通道指令包含:,操作码,内存,地址,计数,通道,程序结束位,P,记录,结束标志,R,右表是一个六条通道指令构成的简单通道程序。,64,操作,P,R,计数,内存地址,WRITE,0,0,80,813,WRITE,0,0,140,1034,WRITE,0,1,60,5830,WRITE,0,1,300,2000,WRITE,0,0,250,1850,WRITE,1,1,250,720,6.5,与设备无关的,I/O,软件,设备独立性与设备独立性软件,与设备无关软件的基本概念,与设备无关的软件,设备分配,逻辑设备名到物理设备名映射的实现,65,引言,设备,独立性,也称设备无关性,为了提高,OS,的可适应性和可扩展性,在现代,OS,中都毫无例外地实现了设备独立性,(Device Independence),,也称为设备无关性,。,其,基本含义是,:,应用程序中所用的设备,不局限于使用某个具体的物理设备。,为了每个设备所配置的设备驱动程序是与硬件密切相关的软件。,为了实现设备独立性,必须再在设备驱动程序之上设置一层软件,称为,与设备无关的,I/O,软件,或设备,独立性,软件。,66,一、,与设备无关软件的基本概念,以物理设备名使用设备,应用程序直接使用物理设备名称,不,灵活、给用户带来不便,不利于提高,I/O,设备利用率,引入,了逻辑设备名,为了实现设备独立性而引入了逻辑设备和物理设备这两个概念。在应用程序中,使用逻辑设备名称来请求使用某类设备;而系统在实际执行时,还必须使用物理设备名称。因此,系统须具有将逻辑设备名称转换为某物理设备名称的功能,这非常类似于存储器管理中所介绍的逻辑地址和物理地址的概念。在应用程序中所使用的是逻辑地址,而系统在分配和使用内存时,必须使用物理地址。在实现了设备独立性的功能后,可带来以下两方面的好处,。,设备分配时的灵活性:当应用程序,(,进程,),以物理设备名称来请求使用指定的某台设备时,如果该设备已经分配给其他进程或正在检修,而此时尽管还有几台其它的相同设备正在空闲,该进程却仍阻塞。但若进程能以逻辑设备名称来请求某类设备时,系统可立即将该类设备中的任一台分配给进程,仅当所有此类设备已全部分配完毕时,进程才会阻塞。,易于,实现,I/O,重定向:所谓,I/O,重定向,是指用于,I/O,操作的设备可以更换,(,即重定向,),,而不必改变应用程序。例如,我们在调试一个应用程序时,可将程序的所有输出送往屏幕显示;而在程序调试完后,如需正式将程序的运行结果打印出来,此时便须将,I/O,重定向的数据结构,逻辑设备表中的显示终端改为打印机,而不必修改应用程序。,I/O,重定向功能具有很大的实用价值,现已被广泛地引入到各类,OS,中。,逻辑,设备名称到物理设备名称的转换,系统必须具有将逻辑设备名称转换为某物理设备名称的功能,使用逻辑设备表实现转换,67,二,、,与设备无关的软件,驱动程序是一个与硬件,(,或设备,),紧密相关的软件。为了实现设备独立性,必须再在驱动程序之上设置一层软件,称为设备独立性软件。至于设备独立性软件和设备驱动程序之间的界限,根据不同的操作系统和设备有所差异,主要取决于操作系统、设备独立性和设备驱动程序的运行效率等多方面因素的权衡,因为对于一些本应由设备独立性软件实现的功能,可能由于效率等诸多因素,实际上设计在设备驱动程序中。总的来说,设备独立性软件的主要功能可分为,以下,几,个方面:,设备驱动程序的统一接口,缓冲管理,差错控制,对独立设备的分配与回收,独立于设备的逻辑数据块,设备驱动程序的统一接口,为了使所有的设备驱动程序有着统一的接口,一方面要求每个设备驱动程序与,OS,之间都有着相同或相近的接口,另一方面要将抽象的设备名映射到适当的驱动程序上,此外还应对设备进行保护。,缓冲管理,对字符设备和块设备的缓冲区进行有效的管理,以提高,I/O,的,效率,缓冲区有多种形式,如单缓冲区、双缓冲区、循环缓冲区、公用缓冲池等,详见,6.7,节,差错控制,由于在,I/O,操作中的绝大多数错误都与设备无关,故主要由设备驱动程序处理,而设备独立性软件只处理那些设备驱动程序无法处理的,错误。,暂时性错误,可以通过重试操作来纠正,持久性错误,对独立设备的分配和回收,系统设备类型:独占设备和共享设备,独占设备必须有系统来统一分配,不允许进程自行使用,以避免诸进程对独占设备的争夺,申请,分配,等待,唤醒,独立于设备的逻辑数据块,不同类型的设备,其数据交换单位是不同的,读取和传输速率也各不相同,即使统一类型的设备,也有差异,设备独立性软件能够隐藏这些差异而被逻辑设备使用,并向高层软件提供大小统一的逻辑数据块,68,三、,设备分配,多道程序环境下,为防止诸异步进程对系统资源无序竞争产生问题,必须由系统统一分配,包括设备、控制器、通道的分配和回收。,设备,分配中的数据结构,设备,分配时应考虑的因素,独占,设备的分配,程序,69,1,、设备分配中的数据结构,设备控制,表,DCT,控制器控制表、通道控制表和系统设备表,70,2,、,设备分配时应考虑的因素,为了,使系统有条不紊地工作,系统在分配设备时,应考虑这样几个,因素,设备,的固有,属性,设备,分配,算法,设备,分配中的,安全性,设备,独立性,71,1),设备,的固有属性,独享设备:对于独占设备,应采用独享分配策略,即将一个设备分配给某进程后,便由该进程独占,直至该进程完成或释放该设备,然后,系统才能再将该设备分配给其他进程使用。这种分配策略的缺点是,设备得不到充分利用,而且还可能引起死锁。,共享,设备:对于共享设备,可同时分配给多个进程使用,此时须注意对这些进程访问该设备的先后次序进行合理的调度。,虚拟,设备:由于可虚拟设备是指一台物理设备在采用虚拟技术后,可变成多台逻辑上的所谓虚拟设备,因而说,一台可虚拟设备是可共享的设备,可以将它同时分配给多个进程使用,并对这些访问该,(,物理,),设备的先后次序进行控制。,72,2,) 设备,分配算法,先,来先服务:当有多个进程对同一设备提出,I/O,请求时,该算法是根据诸进程对某设备提出请求的先后次序,将这些进程排成一个设备请求队列,设备分配程序总是把设备首先分配给队首进程。,优先级,高者优先:在进程调度中的这种策略,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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