资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第八章 输入输出管理,8.1,I/O,管理概念,8.2,缓冲技术,8.3,设备分配技术,8.4,I/O,控制,8.1,输入,/,输出管理概念,一、引言,设备分类,1.,存储设备,:,是存储信息的设备,如:磁盘、磁鼓。(以块为单位传输信息)。,2.,输入输出设备,:,能将信息从计算机外部输入到机内,或反之,如:键盘、显示器、打印机。,3.,传输设备,负责计算机之间的信息传输,如调制调节器、网卡。,设备按传输信息的特点来分:字符设备、块设备,2,8.1,输入,/,输出管理概念,设备,管理的设计目标,1.,提高设备利用率(关键是实现设备的并行操作),合理分配设备,提高设备与,CPU,、各外部设备之间的并行性(通道和中断),2.,方便用户使用,独立于设备:用户使用的设备与物理设备无关,建立虚拟环境,3.,设备处理的一致性,设备品种繁多、用法各异,逐一管理十分复杂;,输入输出系统应将设备的特性与处理它们的程序分开。,3,8.1,输入,/,输出管理概念,二、输入,/,输出,管理功能,1.,状态跟踪,动态地记录各种设备的状态(保留在设备控制块中),2.,确定设备分配策略,决定设备分配策略,确定谁、何时存取设备、使用多长时间。,3.,设备分配与回收,作业级,静态分配:作业进入系统时就进行分配,退出系统时就收回全部资源。,进程级,动态分配:进程需要使用某设备而提出申请时进行分配,使用完毕后立即将其收回。,4.,设备控制,负责将用户,I/O,请求转换为设备能识别的,I/O,指令,实施设备驱动和中断处理的工作。,4,三,.,设备独立性,1.,设备独立性概念,(1),什么是设备独立性,:,所谓设备独立性是指,用户在编制程序时所使用的设备与实际使用的设备无关,也就是在用户程序中仅使用逻辑设备名。,(2),逻辑设备名,:,逻辑设备名,是用户自己指定的设备名,(,或设备号,),,它是暂时的、可更改的。,(3),物理设备名,:,物理设备名是系统提供的设备的标准名称,它是永久的、不可更改的。,8.1,输入,/,输出管理概念,5,2.,设备独立性的实现,(1),在高级语言中用软通道实现,使用高级语言提供的指派语句,通过指派一个逻辑设备名(通道号)来定义一个设备或文件。,如:,fd,=open(“/dev/,lp,”,mode),;,number1=write,(,fd,,,buf,,,count1,);,(2),在批处理系统中,用连接说明语句来定义,如:,OUTPUT1=LPT,(3),在交互系统中,用指派命令来定义,如:,PDP,系列机上的,RT11,系统,ASSIGN,设备物理名 设备逻辑名,8.1,输入,/,输出管理概念,6,逻辑设备描述器,ldd,(,logic-device-descriptor),是一种数据结构,进程控制块中有一个指针指向它。,3.,实现设备独立性的优点,方便用户,改善设备利用率,提高系统的可扩展性和可适应性,8.1,输入,/,输出管理概念,ldd_ptr,pcb,I1,sr1,dcb_ptr,O,1,lp3,dcb_ptr,ldd1,ldd2,Ldd,包括:,设备逻辑名,设备物理名,设备控制块,dcb,指针,逻辑设备描述器队列勾链字,7,8.1,输入,/,输出管理概念,四,.,设备控制块,1.,什么是设备控制块,(DCB),系统为每一台设备都配置了一个用来记录设备的硬件特性、连接和使用情况的一组数据,称为设备控制块。,2.,设备转换表,进程的每个,I/O,请求都要转换成调用一个能执行,I/O,操作的设备例程。通过操作码检索“设备转换表”以找到相应的设备例程地址。,8,2.,设备控制块的内容,表,8.1,设备控制块,dcb,1,.,设备名:是设备的系统名,即设备的物理名。,2,.,设备属性:描述设备现行状态的一组属性,3,.,命令转换表:转换表包含设备特定的,I/O,例程地址,不具备相应功能的设备在其例程地址上可以填“,1”,。,设备名,设备属性,指向命令转换表的指针,在,I,/,O,总线上的设备地址,设备状态,当前用户进程指针,I/O,请求队列指针,8.1,输入,/,输出管理概念,9,一,.,缓冲概念,1.,什么是缓冲,缓冲是两种不同速度的设备之间传输信息时平滑传输过程的常用手段。,2.,缓冲器,是以硬件的方式来实现缓冲,容量较小,是用来暂时存放数据的一种存储装置。,3.,软件缓冲区,用来保存在两设备之间或在设备和应用程序之间所传数据的内存区域。,8.2,缓冲技术,10,4.,为什么引入缓冲,(1),处理数据流的生产者与消费者间的速度差异,如:从调制解调器收到一个文件,并保存到硬盘上。,(2),协调传输数据大小不一致的设备,在计算机网络中用来处理消息的分段和重组。,(3),应用程序的拷贝语义,如:操作系统为保证系统调用,write,的正确语义,即应用程序要写入磁盘的数据就是,write,系统调用发生时的版本。,方法:在系统调用返回前将应用程序缓冲区复制到内核缓冲区。,8.2,缓冲技术,11,二,.,常用的缓冲技术,双缓冲、环形缓冲、缓冲池,.,双缓冲,在双缓冲方案下,为输入或输出分配两个缓冲区,buf,1,、,buf,2,。,(1),输入数据时,如何利用双缓冲,(2),输出数据时,如何利用双缓冲,(3),缓冲区既用于输入,也用于输出数据时,如何利用双缓冲,8.2,缓冲技术,12,(1),输入、输出数据时,如何利用双缓冲,输入设备,BUF,1,进程,BUF,2,输出设备,BUF,1,进程,BUF,2,8.2,缓冲技术,13,说明使用双缓冲可以提高,I/O,的效率的例,sio,,,读一张卡片到,buf,1,等待卡片输入机结束,等待打印机就绪,sio,,,打印,buf,1,的内容,sio,,,读一张卡片到,buf,2,等待卡片输入机结束,等待打印机就绪,sio,,,打印,buf,2,的内容,读卡机、打印机可并行操作,读卡机、打印机可并行操作,8.2,缓冲技术,14,一、设备分配原则,1.,静态分配和动态分配,独占设备,静态分配;共享设备,动态分配,2.I/O,设备分配算法,先请求先服务,优先级最高者优先,3.,设备分配的安全性,防止发生死锁。,对独占设备一般采用静态分配,不会产生死锁。若采用动态分配,如一个进程只提出一个,I/O,请求,则也不会产生死锁,但如一个进程可同时操作多个外设时,就有可能产生死锁。,8.3,设备分配,15,设备分配的主要技术,独享、共享、虚拟技术,二,.,独享分配,1.,什么是独享设备,让一个作业在整个运行期间独占使用的设备。,2.,什么是独享分配,在一个作业执行前,将它所要使用的设备分配给它;当它结束撤离时,将分配给它的这类设备收回。,三,.,共,享分配,1.,什么是共享设备,由多个作业、进程共同使用的设备称为共享设备(磁盘)。,2.,什么是共享分配,共享分配就是动态分配。当进程提出资源申请时,由设备管理模块进行分配,进程使用完毕后,立即归还。,8.3,设备分配,16,三,.,虚拟,分配,虚拟分配:分配虚拟设备,使用,SPOOLing,系统。,1.,SPOOL(Simultaneous,Peripheral Operation On,Line)ing,系统,即外部设备联机同时操作,实现思想:用常驻内存的进程去模拟一台外围机,从而用一台主机就可完成脱机技术中需要多台计算机完成的工作。,该系统在作业执行前将作业信息通过独占设备预先输入到辅存上一个特定的区域(称为“井”)存放好,称为预输入。,作业执行中,不必直接启动独占设备输出数据,而只要将作业输出数据写入磁鼓或磁盘中存放,在作业执行完毕后,由操作系统来组织信息输出,称为缓输出。,Spool,系统利用通道和中断技术,在主机控制之下,由通道完成输入,/,输出工作。系统包括预输入程序、缓输入程序和预输入表、缓输出表等数据结构。,8.3,设备分配,17,8.3,设备分配,2.,虚拟设备和虚拟分配,通过外部设备联机操作技术后,一台设备可以和辅存中若干个存储区域相对应,所以在形式上就好像把一台输入设备(或输出设备)变成了许多虚拟的输入设备(或输出设备)。即:把一台不能共享的输入输出设备转换成了一台可以共享的缓冲输入输出设备。,虚拟设备:通常把用来代替独占型设备的那部分外存空间(包括有关的控制表格)称为虚拟设备。,虚拟分配技术:当某进程需要与独占型设备交换信息时,,Spool,系统就将与该独占设备所对应的那部分磁盘、磁鼓的一部分存储空间分配给它。,18,虚拟,设备,虚宽行,1,虚宽行,2,进程,A,进程,B,进程,C,进程,D,输入井,输出井,光字符,阅读机,打印机,虚光字符,阅读机,虚光字符,阅读机,8.3,设备分配,19,3.,虚拟打印功能,4.SPOOLING,系统的优点,(1),提供虚拟设备,(2),加快作业处理速度,(3),外围设备同时联机操作,输入机,1,输入机,2,作业,1,作业,2,打印机,磁盘输入井,磁盘输出井,内存,8.3,设备分配,20,8.4,输入,/,输出控制,一、,I/O,硬件,端口(,port,):计算机端口是设备与计算机通信的一个连接点。,总线:如果一个或多个设备使用一组共同的线,这种连接称为总线(,bus,)。,总线是一组线和可以描述在线上传输信息的协议。,控制器:,OS,软件和硬件设备之间接口,它接收,CPU,的命令,并控制,I/O,设备进行实际的操作;,控制器通常有四种寄存器:状态、控制、数据输入、数据输出寄存器;,21,二,.,输入,/,输出,控制方式,CPU,一般通过,I,/,O,控制器与物理设备打交道。按照,I,/,O,控制器智能化程度的高低,将,I,/,O,设备的控制方式分为四类:,循环测试,I,/,O,方式,I,/,O,中断方式,DMA,方式,通道方式,8.4,输入,/,输出控制,22,1.,循环测试,I/O,方式,该方式中,I/O,控制器是操作系统和软件和硬件设备之间的接口,它接收,CPU,的命令,并控制,I/O,设备进行实际操作。,循环测试,I/O,工作过程。假如一个程序要从某一输入设备输入一个数据,那么将按如下步骤进行:,把一个启动位为“,1”,的控制字写入该设备的控制状态寄存器,从而启动该设备进行输入操作。,反复读控制寄存器的内容,并,测试其中的完成位,,若为,0,,转,否则转。,把数据缓冲区中的数据读入,CPU,或主存单元。,优点:控制简单,无须太多硬件支持;,缺点:,CPU,利用率低;,8.4,输入,/,输出控制,23,8.4,输入,/,输出控制,2.I/O,中断方式,I/O,中断方式实现了,CPU,与,I/O,设备并行工作,提高了,CPU,利用率。它要求在控制状态寄存器中有一位“中断允许位”:,在,I/O,中断方式下,数据的输入按如下步骤进行:,要求输入数据的进程把一个启动和中断允许位为“,1”,的控制字写入设备控制状态寄存器中,从而启动该设备进行物理操作。,上述进程因等待输入操作的完成而进入等待状态。于是进程调度程序调另一进程运行。,当输入完成时,输入设备通过中断申请线向,CPU,发中断请求信号,通过中断进入,,CPU,转向该设备的中断处理程序。,24,8.4,输入,/,输出控制,中断处理程序首先保护被中断程序的现场,然后把输入缓冲寄存器中的输入数据转送到某一特定单元中去,以便要输入的进程使用。同时,还把等待输入完成的那个进程唤醒,最后中断处理程序恢复被中断程序的现场,并返回到被中断的进程继续执行。,在以后某个时刻,进程调度程序将调度到要求输入的进程,该进程从约定的特定单元中取出做进一步处理。,优点:,CPU,的利用率大大提高;,缺点:每台设备每次输入输出都会产生中断,中断次数太多,影响,CPU,的有效计算时间;,25,8.4,输入,/,输出控制,3.,通道方式,通道:一个独立于,CPU,的专管输入,/,输出控制的处理机,它控制设备和内存,直接,进行数据交换,它有自己的通道指令,这些通道指令受,CPU,启动,并在操作结束时向,CPU,发中断信号;通道也被称为“,I/O,处理机”。,通道的三种类型:字节多路通道(多个通道程序轮流执行);选择通道(一个通道程序从头到尾执行);数组多路通道(分时方式执行几个通道程序);,优点:有关,I/O,工作,,CPU,委托通道去做,使,CPU,基本摆脱了,I/O,控制工作,大大提高了,CPU,和外设的并行工作程度。,26,8.4,输入,/,输出控制,.,.,.,.,.,27,8.4,输入,/,输出控制,4.DMA,方式,在外设和主存之间开辟直接的数据交换通路;,DMA,控制器取代,I/O,控制器,控制外设和主存之间成批的进行数据交换,而不用,CPU,干预;,DMA,控制器中包含有:控制状态寄存器、数据缓冲寄存器、传送字节数寄存器、内存地址寄存器;,CPU,只在两处参与数据传输工作:,数据块传送开始时发启动命令;,整个数据块传输结束时发中断信号请求,CPU,进行中断处理;,DMA,控制器与,CPU,、主存及,I/O,设备这间的关系如图:,28,8.4,输入,/,输出控制,.,.,.,29,三、,I/O,子系统,为了对不同的设备按统一的标准方式来处理,为用户建立虚拟环境,,I/O,子系统采用了抽象、包装与软件分层的方法。每个通用类型都可以通过一组标准函数(接口)来访问。,8.4,输入,/,输出控制,软件,硬件,30,8.4,输入,/,输出控制,1.,各类设备的接口,块设备接口,块设备接口规定了访问磁盘驱动器和其他基本块设备所需要的各方面。,一般而言设备应提供,read,和,write,命令,随机访问还提供,seek,命令,它们描述了块存储设备的基本特点,应用程序就不必关注这些设备的低层细节差别。,主存映射接口,主存映射接口不提供,read,和,write,操作,而是通过主存中的字节数组来访问磁盘存储信息。系统调用将文件映射在主存上,并返回一个字符数组的虚拟主存地址,该字符数组包含了文件的拷贝。实际数据的传输在需要时才执行。,31,8.4,输入,/,输出控制,字符流设备接口,这类设备的基本系统调用使应用程序可,get,或,put,字符。,网络套接字接口,基于套接字,(,套接字,简单的说就是通信的两方的一种约定,),接口的系统调用可以让应用程序创建一个套接字,连接本地套接字和远程地址(将本地应用程序与由远程应用程序创建的套接字相连),监听要与本地套接字相连的远程应用程序。连接后可以发送和接收数据。,套接字接口还提供了,select,函数,用来管理一组套接字。,32,2.I/O,子系统功能,I/O,子系统使进程能与外部设备及网络进行通信,主要功能:,(1),解释用户的,I/O,系统调用,(2),设备驱动,(3),中断处理,设备处理程序,设备处理程序是能直接控制设备运转的程序,它根据各类设备的特点和性能来编写。每一类设备有一个相应的设备处理程序,能控制同类中多台物理设备同时工作。,8.4,输入,/,输出控制,33,3.,调用,I/O,核心模块的方式,控制设备,I/O,工作的核心模块通常称为设备驱动程序,该核心模块有以下两种实现方式:,(1),以设备处理进程的方式,为每一类设备设置一个设备处理进程,(,对应的程序就是设备处理程序,),该进程当有,I/O,请求来到时,被唤醒,进行设备驱动工作,当没有,I/O,请求时,就睡眠,I/O,控制模块的接口程序:负责解释用户的,I/O,系统调用;转换成,I/O,控制模块认识的命令形式;将,I/O,请求发给对应的,设备处理进程。,(2),将设备与文件一样对待,将设备与文件一样对待,使用文件系统的系统调用命令进行设备的读、写。,8.4,输入,/,输出控制,34,四,.I/O,控制的例,I/O,接口程序,(I/O,过程,),1.,将逻辑设备转换为物理设备,根据,I/O,系统调用中给出的逻辑设备名,(,ldev,),根据逻辑设备描述器,将逻辑设备名转换为物理设备名,2.,合法性检查,对所需进行的操作进行合法性检查。,根据,I/O,系统调用中给出的操作模式,mode,根据,DCB,中命令转换表中允许的操作,3.,形成,I/O,请求块,发消息给对应的设备处理进程,将请求的参数输入到,I/O,请求块,(IORB),将,I/O,请求块,(IORB),挂到对应的设备请求队列上,8.4,输入,/,输出控制,35,I/O,请求接口程序的描述,算法,doio,输入:设备的逻辑名,ldev,操作类型,mode,传送数据数目,amount,传送数据地址,addr,输出:如果传送出错,则带错误码返回,否则正确返回,while (,该进程的逻辑设备描述器队列不空,),if (,与,ldev,相联结的物理设备找到,),break,;,/*,找到*,/,if (,该进程的逻辑设备描述器队列为空,)return(,错误码,),;,/*,设备逻辑名错*,/,检查参数与该设备特性是否一致,;,if (,不一致,)return(,错误码,),;,/*,传送参数错*,/,构造,iorb,;,把,iorb,插入到该设备的请求队列中;,唤醒因等待,I/O,请求块而睡眠的进程;,8.4,输入,/,输出控制,36,设备处理进程,process,io,l,:,while (,设备请求队列不空,),取一个,iorb,;,提取请求的详细信息;,启动,I/O,操作;,sleep (,事件:,I/O,完成,)/*I/O,操作*,/,/*,等,I/O,完成后,进入中断处理程序,并在那里唤醒设备处理进程*,/,if(,出错,),将错误信息写在该设备的,dcb,中;,传送数据到目的地;,唤醒请求此,I/O,操作的进程;,删除,iorb,;,sleep (,事件:因无,I/O,请求,),;,goto,l,;,8.4,输入,/,输出控制,37,请求,I/O,的进程、,I/O,过程、设备处理进程、中断处理程序之间的同步关系,8.4,输入,/,输出控制,38,一,.,设备管理的基本概念,1.I/O,管理的功能,2.,设备独立性 定义 优点,3.,设备控制块 定义,二,.,缓冲技术,1.,什么是缓冲,2.,常用的缓冲技术,3.,双缓冲技术,第八章 小 结,39,三,.,设备分配,1.,常用的设备分配技术,2.,独享设备 独享分配 定义,3.,共享设备 共享分配 定义,4.,虚拟设备 虚拟技术 定义,四,.I/O,控制,1.I/O,控制的主要功能,2.,请求,I/O,的进程、,I/O,过程、设备处理进程、中断处理程序之间的同步关系,第八章 小 结,40,
展开阅读全文