1、第10章 设备管理,本章基本内容与要求,基本内容 设备管理的有关概念 I/O请求的检测与控制 缓冲技术 设备管理程序 虚拟设备技术,本章基本内容与要求,要求 掌握设备管理的有关概念 掌握I/O请求的检测与控制 掌握缓冲技术、设备管理程序、虚拟设备技术,10.1 设备管理的有关概念,1.设备分类 (1) 从数据组织的角度分类 块设备 以块为单位组织和传送数据,每块的大小一般是512的倍数,如磁盘是一种典型的块设备。 字符设备 以字符为单位组织和传送数据,如键盘、打印机等。 (2) 从资源分配的角度分类 独占设备 在系统运行期间,在某一段时间内,为某一进程所独占的设备。大多数低速设备属于独占设备,
2、如纸带输入机、打印机等。 共享设备 允许若干用户或进程同时共同使用的设备,如磁盘等。 虚拟设备 通过软件技术(如假脱机技术),把原来的独占设备改造成共享设备。,10.1设备管理的有关概念,2.设备管理的任务 (1) 设备管理器的主要任务 根据各类设备的特点确定相应的分配策略 按照进程的请求把进程需要的输入/输出设备分配给进程。 启动设备完成实际的输入/输出操作 向用户提供一个统一的、友好的使用界面,使用户能方便地利用外部设备资源。 优化设备的调度、提高设备的利用率,使各种外部设备与主机以及各外部设备之间能协调地工作,以充分合理地利用系统资源,尽量提高并行程度。,10.1设备管理的有关概念,2.
3、设备管理的任务 (2) 设备管理的主要内容 设备管理的主要内容是: I/O请求的检测与控制 解决设备的低速性与CPU高速性之间的矛盾,提高CPU的利用率 设备分配策略,10.2 I/O请求的检测与控制,循环测试I/O方式 中断驱动方式 直接内存存取(DMA)方式 I/O通道方式,1. 循环测试I/O方式,利用I/O测试指令测试设备的忙与闲。若设备处于闲状态,则执行输入输出指令;若设备处于忙状态,则I/O测试指令不断对设备进行测试,直到设备空闲为止。 这种方式的缺点是CPU要花费大量时间进行设备忙/闲测试,造成CPU资源的极大浪费。,2.中断驱动方式,在现代操作系统中,广泛采用中断驱动方式进行I
4、/O检测与设备控制. 当进程需要启动某个I/O设备工作时,便由CPU向相应的设备控制器发出一条I/O指令,然后立即返回继续执行原来的任务,而设备控制器便按照该指令的要求去控制I/O设备。 每当设备完成I/O操作,便以中断请求方式通知CPU,然后转向相应的中断处理程序进行相应处理。,2.中断驱动方式,3.直接内存存取(DMA)方式,DMA方式主要用于块设备与主存之间进行批量数据传输。 它使用一个专用DMA控制器,使用截取总线控制权的方法,由DMA控制器送出内存地址,发出内存读、设备写或设备读、内存写的控制信号来完成内存与设备之间的直接数据传输,而不用CPU干预。 当一次DMA传送的数据全部完成时
5、,才产生中断,告诉CPU数据传输完毕。,3.直接内存存取(DMA)方式,4. I/O通道方式,通道控制结构,4. I/O通道方式,通道工作原理 通道方式有独立的I/O管理机制,这时只要发一条I/O指令给通道,告诉通道执行I/O操作要访问的设备,通道便从内存储器中读取通道程序以完成I/O控制管理。 通道控制设备的工作过程是由通道程序来实现的。通道程序由通道指令组成,一般包括操作码、交换信息数及信息在内存的首地址。,4. I/O通道方式,通道程序的执行步骤: 1)当进程要求设备输入时,CPU发指令指明I/O操作、设备号和对应通道。 2)对应通道收到CPU发来的启动指令后,读出内存中的通道指令程序、
6、设置对应设备的控制状态寄存器的初值。 3)设备按通道指令的要求,把数据送往内存指定区域。 4)若传送结束,I/O控制器通过中断请求线发中断信号,请求CPU做中断处理。 5)中断处理结束后,CPU返回到被中断进程处继续执行。 6)当进程调度程序选中这个已得到数据的进程后,才能进行加工处理。 当通道或外设发生需要向CPU报告的事件时,通道就向CPU发出中断请求,这时就产生外部设备中断事件。外部设备中断的中断源主要有操作正常结束、操作中发生故障或错误以及人工输入控制命令等。,10.3 缓冲技术,单缓冲区和双缓冲区 多缓冲区 缓冲池,1. 单缓冲区和双缓冲区,单缓冲区中系统仅设置一个缓冲区,当进程要输
7、入数据时,外设先把数据输入到缓冲区,再由CPU把数据从缓冲区取走;而当进程要输出数据时,先把数据送入缓冲区,再由外设输出。 在单缓冲区情况下,当某一外设占用缓冲区后,必须等缓冲区中数据被取空后才能放入新数据,因此单缓冲区的工作方式是串行的。 如果开设两个缓冲区,并且配合合理,就有可能使两个外设并行工作,设备利用率可以提高。,2.多缓冲区,当进程输入输出数据量很大或很不均匀时,为使外设与CPU能很好地并行工作,应设置多缓冲区,一般将输入、输出缓冲区分别连接成环形多缓冲区。,对输入缓冲区,指针P指示进程下次可取用的缓冲区地址,指针q指示输入设备输入时可用的缓冲区地址。对输出缓冲区来说,进程把输出数
8、据按指针q依次输入缓冲区,而输出设备则按指针P依次输出。,3.缓冲池,把输入输出缓冲区统一起来,形成一个既能用于输入又能用于输出的缓冲区,称为缓冲池。在缓冲池中存在三种类型缓冲区: 1)输入数据缓冲区 2)输出数据缓冲区 3)空白缓冲区 每一种缓冲区都通过指针分别链成三个队列,称为输入队列(in),输出队列(out)和空白队列(em) 。,3.缓冲池,当输入设备要求输入数据时,系统从空白缓冲队列中取出一个缓冲区,收集输入数据,并将它挂在输入队列末尾。 当进程要求输出数据时,系统从空白队列中取出一个空白缓冲区,作为收容输出缓冲区,并将它挂在输出队列末尾。 当进程取用完输入数据或外设处理完输出数据
9、后,就将该数据缓冲区挂到空白缓冲区队列的末尾。,10.4 设备管理程序,逻辑设备与物理设备 设备分配程序 设备驱动程序,1.逻辑设备与物理设备,设备的无关性:用户可不必指定特定设备,而代之指定逻辑设备,使得用户程序与实际使用的物理设备无关,可以脱离具体的物理设备来使用设备。又称为“设备独立性”系统对块设备和字符设备进行统一命名。对每台设备按某种原则进行编号,称做设备的绝对号。操作系统还为每一类设备规定一个类型号。 为了方便用户使用设备,通常用符号名代替设备的类型名称其为逻辑设备名。如LPT表示打印机等。 实现建立联系逻辑设备和物理设备名称的映射表。设备分配程序获得逻辑设备号,然后通过映射表找到
10、的物理设备及其驱动程序,调用设备驱动程序,完成实际的操作。,2.设备分配程序,当多个进程同时要求使用同一类或同一台设备时,设备分配程序按照一定的算法,决定把某台设备分配给某一个要求该设备的进程。若系统不能立即满足进程的申请时,应把它们排成一个等待队列,使这些进程按一定的次序使用设备。进程提出I/O请求后,设备分配程序根据进程所提出的物理设备名,查看该设备忙闲情况。若该设备当时处于“忙”的状态,则将申请I/O的进程插入等待该设备的队列中,若该设备当时为“空”,则测试判断分配的安全性后把设备分配给此进程。然后检查设备控制器状态的忙闲,若“忙”,则将进程插入等待控制器的队列中,否则再判断通道的忙闲。
11、若相应的设备、控制器、通道均为“闲”状态,则可启动设备,进行信息传递。,2.设备分配程序,先到先服务算法当有多个进程请求同一设备时,谁先请求,就先给谁服务。具体做法是将请求设备服务的进程排成一个普通队列。 优先级算法给重要的进程赋予较高的优先级,不重要的进程赋予较低的优先级。根据进程的优先级将所有请求同一设备服务的进程按优先级排成队列,将优先级高的进程排在队列的前面,优先级低的进程排在队列的后面。,3.设备驱动程序,功能 )使CPU通过发I/O指令,去启动指定的I/O设备,进行I/O操作。 )当I/O操作完成或发生其他事件时,I/O设备向CPU发出中断请求,要求处理机进行相应处理。 执行过程设
12、备管理程序是一个进程,平时该进程处于阻塞状态,仅当有I/O请求或I/O中断时,才被唤醒。唤醒后,首先分析被唤醒的原因,若是中断请求则进一步判别中断的原因后转入相应的中断处理程序;若唤醒的原因是用户的I/O请求,则转入通道处理程序,然后启动指定的I/O设备进行I/O操作。当I/O操作完成后,它又回到起始位置收集信息,若无新的信息,则把自己阻塞起来。,10.5 虚拟设备技术,所谓虚拟设备,实际上是一个软件子系统,使用这个软件子系统,可以将独占设备变成共享设备。这个软件子系统一般由外存储空间、相应的数据结构和控制代码三部分内容构成:比较著名的虚拟设备技术是所谓的SPOOLing(Simultaneo
13、us Peripheral Operation On-Line)技术,习惯上称其为假脱机技术。 其基本含义是,当在外围设备和计算机处理器之间传送数据时,为了减少处理的延时,把辅助存储器作为缓冲存储器来使用的一种方法或技术。,10.5 虚拟设备技术,虚拟设备的引入 SPOOLing系统的组成 SPOOLing技术的特点,1.虚拟设备的引入,脱机外围设备技术使用一台外围计算机,它的功能是以最大速度从读卡机上读取信息并记录到输入磁盘上。然后,将包含有输入信息的输入磁盘人工移动到主处理机上。在多道程序环境下,可让作业从磁盘上读取各自的数据,把运行的结果信息写入到输出磁盘上。最后,把输出磁盘移动到另一台
14、外围计算机上,其任务是以最大速度读出信息并从打印机上输出。 SPOOLing技术的思路取消外围计算机,在主计算机中创建两个进程SPI和SPO,SPI用于处理输入,SPO用于处理输出,在外存上开辟两个区域,分别作为输入池和输出池。,2. SPOOLing系统的组成,1)输入井和输出井 2)输入缓冲区(输入队列)和输出缓冲区(输出队列) 3)输入进程SPI和输出进程,3. SPOOLing技术的特点,1)提高了I/O速度 从对低速I/O设备进行的I/O操作变为对输入井或输出井的操作,如同脱机操作一样,提高了I/O速度,缓和了CPU与低速I/O设备速度不匹配的矛盾。 2)设备并没有分配给任何进程 在输入井或输出井中,分配给进程的是一个存储区和建立的一张I/O请求表。 3)实现了虚拟设备功能 多个进程同时使用同一独享设备,而对每一进程而言,都认为自己独占这一设备,不过,该设备是逻辑上的设备。,