资源描述
edit Master title style,Click to edit Master text styles,Second Level,Third Level,Fourth Level,Fifth Level,*,第13章,I/O,系统,I/O,设备的多样性,Os,管理和控制,I/O,操作和,I/O,设备。,13.1,I/O,管理,概述,外设管理目的,提高效率:,提高,I/O,访问效率,匹配,CPU,和多种不同处理速度的外设,方便使用:,方便用户使用,对不同类型的设备统一使用方法,协调对设备的并发使用,方便控制:,方便,OS,内部对设备的控制:增加和删除设备,适应新的设备类型,外设管理功能,提供设备使用的用户接口,:命令接口和编程接口,设备分配和释放:,使用设备前,需要分配设备和相应的通道、控制器。,设备的访问和控制:,包括并发访问和差错处理(虚拟设备)。,I/O,缓冲和调度:,目标是提高,I/O,访问效率,按交互对象分类,人机交互设备:,视频显示设备、键盘、鼠标、打印机,与计算机或其他,电子设备交互,的设备:磁盘、磁带、传感器、控制器,计算机间的,通信设备,:网卡、调制解调器,按交互方向分类,输入,(可读):键盘、扫描仪,输出,(可写):显示设备、打印机,输入/输出,(可读写):磁盘、网卡,按外设特性分类,使用特征:,存储、输入/输出、终端,数据传输率:,低速(如键盘)、中速(如打印机)、高速(如网卡、磁盘),信息组织特征:,单个字符或数据块,字符设备,(如打印机):通常的输入输出型设备,,以字符为单位存储、传输信息;不可寻址,块设备,(如磁盘):,以数据块为单位存储、传输信息。可寻址,13.1,I/O,管理,外部设备类型和特征,按资源分配角度分类,独占设备,在一段时间内只能有一个进程使用的设备,一般为低速,I/O,设备。如打印机,磁带等。,共享设备,在一段时间内可有多个进程共同使用的设备,多个进程以交叉的方式来使用设备,其资源利用率高。如硬盘,虚拟设备,在一类设备上模拟另一类设备,常用共享设备模拟独占设备,用高速设备模拟低速设备,被模拟的设备称为虚设备(实例:,SPOOLing,技术),从程序使用角度分,逻辑设备:,用户程序中使用的设备,物理设备:,实际完成,I/O,操作的设备,13.1,I/O,管理,外部设备类型和特征,13.2,I/O,控制技术,程序控制,I/O(,轮询):,CPU,代表进程给,I/O,模块发送一个命令,,CPU,进入忙等待(输入输出完全由,CPU,控制),中断驱动,I/O:,CPU,代表进程给,I/O,模块发送一个命令,然后,CPU,继续执行后续指令,;,当,I/O,模块完成后,,CPU,被该模块(,CPU,和,I/O,设备可以共同工作)中断。,直接存储器存取,(DMA):,CPU,给,DMA,模块发请求,只有当,DMA,将整个数据块传送结束后,,CPU,才被中断(数据在内存和外设之间传输时不需要,CPU,干预)。,设备绝对号和相对号,设备绝对号:,计算机系统为每一台设备确定的编号,用来区分和识别设备;,用户在编写程序时不能通过设备的绝对编号来使用设备,设备类型号:,操作系统为每类设备规定的一个编号,设备相对号:,用户自己规定的所用的同类设备中的第几台。,如,Unix,中,,rfd0,和,rfd1,分别表示第1个和第2个软盘驱动器;,设备独立性,如果用户程序中直接使用真实的物理设备,那么会出现这样的问题:用户指定的设备因故障不能使用,或者该设备正忙于为其他进程服务,只有等待或者修改程序,重新指定设备。,为了实现用户程序与物理设备的无关性,在用户程序中不要直接使用物理设备名(或者设备的物理地址),而只能使用逻辑设备名。逻辑设备是实际物理设备的抽象,它不限于某类具体设备。逻辑设备究竟和哪一个具体的物理设备相对应,还要由系统根据当时的设备忙、闲情况来决定或者由系统管理员指定。,IO,软件的基本思想是,按分层的思想构成,:,较低层软件要使较高层软件独立于硬件的特性,,较高层软件则要向用户提供一个友好的、清晰的、简单的、功能更强的接口,13.3 设备管理系统的组织,13.3,设备管理分层模型,User Process,Logical I/O,Device I/O,Scheduling&,Control(Device Driver),Hardware,Communications Architecture,逻辑,I/O:,将设备当作一个逻辑资源,不涉及实际的设备控制的细节:,针对,用户接口,,提供抽象的命令,如:,Open,Close,Read,针对,通信设备,,则是通信体系结构如网络协议栈,;,针对,文件存储设备,,是文件系统的逻辑结构控制;,设备,I/O:,逻辑设备与物理设备间的过渡协调机构。,用户命令到设备操作序列的,转换。,请求的操作和数据被转换成适当的,I/O,指令序列、通道命令和控制器指令。,可以用,I/O,缓冲,提高,I/O,效率,调度和控制:,是,I/O,模块和设备,硬件真正发生交互,的软件层,,直接面对硬件设备的控制细节。,如,I/O,操作的排队,设备,控制和状态维护、中断处理。,这部分通常体现为,设备驱动程序;,13.3 设备管理分层模型,进行,I/O,调用,格式化,I/O;Spooling,命名,保护,阻塞,缓冲,分配,建立设备寄存器;检查状态,当,I/O,结束时,唤醒驱动器,执行,I/O,操作,I/O,系统的层次结构及每层的主要功能,用户进程层,执行输入输出系统调用,对,I/O,数据进行格式化,独立于设备的软件,实现设备的命名、设备的保护、成块处理、缓冲技术和设备分配;(逻辑,I/O),设备驱动程序,设置设备寄存器、检查设备的执行状态,中断处理程序,负责,IO,完成时,唤醒设备驱动程序进程,进行中断处理,硬件层,实现物理,IO,的操作,I/O,系统的层次结构及每层的主要功能,练习题,描述设备管理软件的层次结构,并说明以下的工作各在,I/0,软件层次的哪一层?,维护一个最近使用的块的缓冲。,为一个磁盘读操作计算磁道、扇区、磁头。,向设备寄存器写命令。,设备保护,各类,I/O,库函数,缓冲技术的,基本思想,:在,CPU,和外设之间设置缓冲区,用于暂存,CPU,与外设之间交换的数据,从而缓和,CPU,与外设速度不匹配的矛盾。,缓冲区所在的位置:,内存,控制器或外设(,多级缓冲机制),硬件缓冲,,如,I/O,控制器,中的数据缓冲寄存器,软件缓冲:,在,内存,画出一个具有,n,个单元的专用缓冲区。,根据方向:,分为输入缓冲和输出缓冲,根据用途:,分为专用缓存(为一个设备独占,如键盘缓存)和公用缓存(为多个设备公用),缓冲区,CPU,外设,13.4 缓冲,13.4 缓冲,无缓冲时问题分析:,设备直接向进程地址空间传送数据(如用户从磁带中读数据块的操作),则进程要么忙等待,要么阻塞。,如果用,忙等待方式,,则浪费大量,CPU,时间;,如果是,阻塞方式,,则进程阻塞在设备的,I/O,请求队列中。这时,,不能将进程全部换出,还可能出现单进程,死锁,。(进程在等待,I/O,操作结果之前被换出,等待,I/O,事件,而,I/O,操作也被阻塞,等待该进程被换入。),缓冲技术,的用途,可以在发出请求之前就开始执行输入操作(预输入),在发出请求一段时间后才开始执行输出操作(缓输出)。,匹配,CPU,或用户应用进程与外设的不同处理,速度,减少对,CPU,的中断次数:,提高,CPU,和,I/O,设备之间以及各个,I/O,设备之间的处理,并行性,。,多道程序环境中提高,OS,效率和单个进程的工具(技术)之一。,13.4 缓冲,用途,单缓冲(,single buffer):,当一个用户进程发出,I/O,请求时,,OS,给该操作分配一个位于主存中系统部分的缓冲区,。以面向块的设备为例:输入先传送至系统缓冲区,当传送完成时,,进程将该块移动到用户空间,,并立即请求另一块,预读,(对于输出,则称为,延迟写,),。,好处:,用户可以在下一块数据正在读入时,处理这块数据(用户进程处理某个数据块的同时,下一个数据块正在读入)。由于输入发生功能在系统存储空间而不是用户进程存储区,因此,OS,可以将该进程换出。,增加了,OS,的逻辑复杂度:,OS,必须直到用户进程的缓冲区的分配情况,交换逻辑受到影响。,13.4 缓冲,单缓冲区,13.4 缓冲,双缓冲和循环缓冲,双缓冲(,double buffer):,两个缓冲区,,CPU,和外设都可以连续处理而无需等待对方。当一个进程往一个缓冲区中写数据时(取数据)时,,OS,正在清空(填充)另一个缓冲区。,循环缓冲(,circular buffer):,多个缓冲区,,CPU,和外设的处理速度可以相差较大,如这个进程突然快速执行了大量的,I/O。,13.4 I/O,缓冲,13.4 I/O,缓冲,由于外设资源的有限,需解决进程间的外设共享问题,以提高外设资源的利用率。设备分配是对进程使用外设过程的管理。这里有两种作法:,1)在进程间,切换使用,外设,如键盘和鼠标;,2)通过一个,虚拟设备,把外设与应用进程隔开,只由虚拟设备来使用设备。,13.4,设备分配,13.4.1 设备分配,数据结构,系统设备表,(,SDT,System Device Table):,系统内一张,反映,系统中设备资源的状态,,记录所有设备的状态及其设备控制表的入口。,设备控制表,(,DCT,Device Control Table):,每个设备一张,,描述设备特性和状态,。反映设备的特性、设备和控制器的连接情况。,控制器控制表,(,COCT,COntroller Control Table):,每个设备控制器一张,描述,I/O,控制器的配置和状态,。如,DMA,控制器所占用的中断号、,DMA,数据通道的分配。,通道控制表,(,CHCT,CHannel Control Table):,每个通道一张,描述通道工作状态,。,各表间的关系,系统设备表,表项1,表项,i,设备类型,设备标识,获得设备的进程号,DCT,指针,设备控制表(,DCT),设备类型,设备标识,设备忙/闲标记,COCT,指针,设备等待队列首指针,设备等待队列尾指针,控制器控制表,COCT,控制器标识,控制器忙/闲标记,CHCT,指针,控制器,等待队列首指针,控制器,等待队列尾指针,通道控制表,CHCT,通道标识,通道忙/闲标记,COCT,指针,通道,等待队列首指针,通道,等待队列尾指针,13.4.2 设备分配,原则,设备分配的原则,合理使用外设(公平和避免死锁),提高设备利用率,应用程序与设备无关,与设备分配有关的,设备属性,:,独享设备:,打印机等;,共享设备:,磁盘、网卡等;,设备,分配技术,:,独占分配,:不会出现死锁;但设备利用率不高;,共享分配,:利用率高,但控制复杂,虚拟分配,:,利用共享设备去实现独占设备的功能;有利于提高设备利用率,先来先服务(,FCFS):,按,I/O,请求的先后顺序,排成,I/O,请求命令队列,队首指向被请求设备的,DCT;,按,FCFS,分配设备;,基于优先级:,依据进程的优先级,指定,I/O,请求的优先级,排成不同优先级队列;按优先级高低分配设备;,13.4.2 设备分配,算法,先回顾一下设备分类问题,按资源分配角度分类,独占设备,在一段时间内只能有一个进程使用的设备,一般为低速,I/O,设备。如打印机,磁带等。因,数量有限,会成为系统中的“瓶颈”资源,使进程经常处于阻塞状态;设备利用率比较低,共享设备,在一段时间内可有多个进程共同使用的设备,多个进程以交叉的方式来使用设备,其资源利用率高(如硬盘),13.5 Spooling,系统,13.5,虚拟设备,虚拟设备技术,多道程序系统中,进程对设备的需求频繁,尤其是独占设备数量有限、效率低,故引入虚拟设备管理技术。,基本思想:用大容量的快速设备(磁盘)模拟慢速度的独占设备,把一台物理上的独占设备变为逻辑上的多台共享设备。,通过,共享型设备来模拟独占型设备的动作,,使独占型设备成为共享型设备,,提高设备的利用率和系统的效率。,实例:,SPOOLing,技术,(,Simultaneously Peripheral Operation On Line,,外围设备同时联机操作),,是用程序模拟脱机,I/O,的功能,故又称为假脱机技术。,输入设备,输出设备,虚拟设备,虚拟设备,虚拟设备,输入井,输出井,虚拟设备,用户进程,用户进程,虚拟设备,13.5 Spooling,系统,13.5 SPOOLing,系统,工作原理,作业执行前用慢速设备将作业预先输入到输入井中,称为,预输入,(,输入井和输出井是某,共享设备(磁盘)上的一部分存储空间)。,作业运行后,使用数据时,从输入井中取出,作业执行不必直接启动外设输出数据,只需将这些数据写入输出井中,作业全部运行完毕,再由外设输出全部数据和信息,称为,缓输出,实现了对作业输入、组织调度和输出的统一管理使外设在,CPU,直接控制下,与,CPU,并行工作(称为假脱机),输入装置,输入装置,通,道,通,道,输出装置,输出装置,通 道,主机系统,输入管 输出管,理模块 理模块,外 设,输入井 输出井,SPOOLing,系统,13.5 SPOOLing,系统,举例,假设系统中全部打印机采用了,Spooling,技术,当某进程要求打印输出时,并不是将某台打印机分配给该进程,而是在某共享设备(磁盘)上的输出井中,为其分配一块存储区,同时为该进程的输出数据建立一个,文件,,该进程的输出数据实际上并未从打印机上输出,只是以文件形式输出,并输出存放在输出井中。,这个输出文件实际相当于虚拟的打印机。这些输出井中的文件形成了一个输出队列,然后调度输出,用户进程并未真正分到打印机,,用户进程被分配的只是,共享设备中的一个存储区,打印请求队列,打印机,打印,服务进程,以,spooling,方式使用外设,思考:,以打印机为例,简述,Spooling,技术的工作原理,它是如何使一台打印机虚拟成多台打印机的?,13.5 SPOOLing,系统,举例,13.5 SPOOLing,系统,优点,Spooling,技术优点:,高速虚拟,I/O,操作:,应用程序的虚拟,I/O,比实际,I/O,速度提高,缩短了应用程序的执行时间。另一方面,程序的虚拟,I/O,操作时间和实际,I/O,操作时间分离开来。,实现对独享设备的共享:,由,Spooling,程序提供虚拟设备,可以对独享设备共享使用。,思考题,什么是缓冲?为什么要引入缓冲?,区分独占设备、共享设备、虚拟设备;,理解对共享设备可同时使用的含义;,简述实现虚拟设备的基本条件,虚拟设备的实现原理,解释,Spooling,系统及其组成;输入井和输出井的位置及作用,设备独立性的含义,设备的分配方法,
展开阅读全文