您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 操作系统设备管理课件(PPT-62页)
第六章设备管理管理和控制所有的外部设备(I/O设备),是操作系统的主要功能之一。本章介绍:外部设备分类及控制方式设备使用方法、I/O子系统的层次结构及缓冲技术辅存及磁盘请求调度技术6.1I/O系统1、I/O设备的类型1)按传输速率分类低速设备:这是指其传输速率仅为每秒钟几个字节至数百个字节的一类设备。典型设备有键盘、鼠标器、语音的输入和输出等设备。中速设备:这是指其传输速率在每秒钟数千个字节至数万个字节的一类设备。典型设备有:行式打印机、激光打印机等。高速设备:这是指其传输速率在数百千个字节至数十兆字节的一类设备。典型的高速设备有磁带机、磁盘机、光盘机等。2)按信息交换的单位分类块设备(BlockDevice),这类设备用于存储信息。由于信息的存取总是以数据块为单位,故而得名。典型的块设备是磁盘,每个盘块的大小为512B~4KB。磁盘设备的基本特征是:1)传输速率较高,通常每秒钟为几兆位;2)可寻址,即对它可随机地读/写任一块;字符设备(CharacterDevice),用于数据的输入和输出。其基本单位是字符,故称为字符设备。如交互式终端、打印机等。传输速率低。字符设备在I/O时,常采用中断驱动方式。3)按设备的共享属性分类这种分类方式可将I/O设备分为如下三类:独占设备:它是指在一段时间内只允许一个用户(进程)访问的设备,即临界资源;因而,对多个并发进程而言,应互斥地访问这类设备,系统一旦把这类设备分配给某进程后,便由该进程独占,直至用完释放,应当注意,独占设备的分配有可能引起进程死锁。共享设备:它是指在一段时间内允许多个进程同时访问的设备,当然,对于每一时刻而言,该类设备仍然只允许一个进程访问。虚拟设备:它是指通过虚拟技术将一台独占设备变换为若干台逻辑设备,供若干个用户(进程)同时使用,通常把这种经过虚拟技术处理后的设备,称为虚拟设备。2.设备控制器(I/O部件)设备控制器是计算机中的一个实体,其主要职责是控制一个或多个I/O设备,以实现I/O设备与和计算机之间的数据交换。它是CPU与I/O设备的接口,它接收从CPU发来的命令,并去控制I/O设备工作。操作系统一般只与控制器打交道,而非设备本身。早期CPU是直接控制外部设备的,在引入设备控制器之后,I/O指令功能加强,才将CPU逐渐从与外设的交互细节中解放出来。PCI总线控制器处理机内存显卡外设光盘磁盘IDE总线控制器外设控制器控制器控制器连接CPU、内存、设备控制器和I/O设备模型每个控制器都有一些用来与CPU通讯的I/O寄存器。操作系统通过向这些寄存器写命令字来实现I/O功能。键盘060-063硬盘320–32F打印机378–37F软盘3F0–3F7彩色显示器3D0–3DFIBMPC的I/O地址6.2I/O控制方式所谓I/O操作的控制方式也就是外围设备和内存之间的数据传送控制方式,经历了程序直接控制方式,中断控制方式,DMA方式和通道方式四种。它们之间的不同主要在与I/O交互过程中CPU的干预程度。一、程序直接控制方式CPU直接控制I/O操作的全过程,包括发送读写命令、传输数据、测试设备状态。设备控制器接收到相应的命令后,将I/O状态寄存器的相应位置上。随着操作的执行更改状态位,由CPU执行相应指令读取I/O完成状态。在该方式中,CPU还负责从主存中取出需要输出的数据,送到设备控制器寄存器;或从设备控制器寄存器取出输入数据,将输入数据存入主存。CPU向设备控制器发读命令读设备控制器状态寄存器检查状态从设备控制器读字数据到CPU寄存器中将该字写入内存未OKOK出错该块读完?OK下一指令未OK缺点:在这种方式中CPU的大量时间用在了等待输入输出的循环测试上,使主机不能充分发挥效率,外设也不能得到合理使用,整个系统效率很低。二、中断控制方式CPU向I/O部件发出命令后,转去做其他有用的工作。当I/O部件准备好数据后,利用中断通知CPU,再由CPU完成数据传输。CPU不必反复测试寄存器状态,节约了时间。向设备控制器发读命令读设备控制器状态寄存器检查状态从设备控制器读字数据将该字写入内存OK出错处理该块读完?OK下一指令未OK中断缺点:虽然中断的引入改善了中央处理机的利用率,但I/O操作毕竟还是由CPU控制的,此时每传输一个字或字符,往往就要做一次中断处理,每个字的数据传输都必须经过CPU寄存器转发。由此可见,当I/O设备很多时,CPU可能完全陷入I/O处理中。三、DMA方式前两种方式的缺陷:•I/O的传输速率受CPU测试或中断响应的速度限制•CPU为管理I/O耗费大量时间。DMA(直接内存存取)负责完成整个I/O操作,无需再经CPU寄存器转发,并在全部传输结束后向CPU发中断信号。CPU向DMA部件发送I/O命令后,即可进行其他工作。当传送完成后,DMA部件向CPU发中断信号。因此仅在数据块传送的开始和结束涉及到CPU。四、通道方式I/O通道方式是DMA方式的发展,它可进一步减少CPU的干预,即把对一个数据块的读(或写)为单位的干预,减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预。同时,又可实现CPU、通道和I/O设备三者的并行操作,从而更有效地提高整个系统的资源利用率。通道又称I/O处理机,它能完成主存储器和外设之间的信息传输,并与中央处理机并行操作。通道技术解决了I/O操作的独立性和各部件的并行性。通道是一个具有特殊功能的处理器,可以实现对外围设备的统一管理和外围设备与内存之间的数据传输。CPU直接控制外部设备CPU直接控制设备控制器程序直接控制方式中断驱动方式DMA控制方式I/O通道控制方式输入输出控制方式的发展过程引入设备控制器6.3.1I/O层次结构通常,操作系统将设备管理系统划分并组织成四个层次:•用户层I/O•设备无关的I/O(设备独立性软件)•设备驱动程序•中断处理程序用户层I/O设备驱动及中断处理硬件系统调用接口,设备无关的操作系统软件6.3设备I/O子系统用户进程用户层I/O设备无关的I/O设备驱动及中断处理硬件设备管理子系统逻辑结构图核心态运行一、用户层I/O实现与用户交互的接口,用户可直接调用在用户层提供的、与I/O操作有关的库函数,对设备进行操作。它将所有的设备看作逻辑资源,为用户进程提供各类I/O函数。用户以设备标识符和一些简单的函数来使用设备,如打开、关闭、读、写等。如C库中的函数open();read();write();close()等。设备相关系统调用简介申请设备。该系统调用中有参数说明了要申请的设备名称,操作系统处理该系统调用时,会按照设备特性(是独占还是共享式使用)及设备的占用情况来分配设备,返回申请是否成功标志。将数据写入设备。从设备读取数据。释放设备。这是申请设备的逆操作。在UNIX中,你也可以用如下的系统调用将数据直接写入软盘中:fd=open(“/dev/fd0”,O_RDRW);申请软盘,/dev/fd0代表软盘。iseek(fd,1024,0);将软盘当前I/O位置定位到1024字节位置。write(fd,buffer,36);将用户缓冲区buffer中的36个字节写入软盘1024-1059字节。…close(fd);释放软盘。二、设备无关的I/O(设备独立性软件)设备独立性的概念设备独立性,也称为设备无关性。其基本含义是:应用程序独立于具体使用的物理设备。I/O系统中有许多不同种类的设备,作为程序员,只需要知道如何使用这些资源来完成所需的操作,而无需了解设备的有关具体实现细节。这一层的基本功能:向上层提供统一的系统调用接口,对下通过设备驱动程序接口调用设备驱动程序。主要任务:•设备命名及与设备驱动程序的映射。在UNIX中,如/dev/fd0唯一地确定了一个inode数据结构,其中包含了主设备号,通过主设备号可以找到相应的设备驱动程序。•统一命名:在系统中对各类设备采取预先设计的、统一的逻辑名称进行命名,所有软件都以逻辑名称访问设备。在应用程序中,使用逻辑设备名称来请求使用某类设备;而系统在实际执行时,还必须使用物理设备名称。因此,系统须具有将逻辑设备名称转换为某物理设备名称的功能,这非常类似于存储器管理中所介绍的逻辑地址和物理地址的概念。逻辑设备名物理设备名驱动程序入口地址/dev/tty31024/dev/printer52046…..…..…..三、设备驱动程序•设备驱动程序包括了所有与设备相关的代码,其功能是从与设备无关的软件中接收I/O请求并执行。与硬件直接相关,负责具体实现系统对设备发出的操作命令,驱动I/O设备工作的驱动程序。•中断处理用于保存被中断进程的CPU环境,转入相应的中断处理程序进行处理,处理完后恢复被中断进程的线程后返回被中断进程。中断处理层的主要工作有:进行进程上下文的切换,对处理中断信号源进行测试,读取设备状态和修改进程状态等。四、中断处理程序1、独占式使用设备所谓独占式使用设备是指在一段时间内只允许一个用户(进程)访问的设备。通常以一次设备使用过程为单位使用设备。在申请设备时,如果设备空闲,就将其独占,不再允许其它进程申请使用,一直等到该设备被释放,才允许被其它进程申请使用。6.3.2.设备的使用方法2、分时共享式使用设备独占式使用设备时,设备利用率很低。分时共享式设备是指在一段时间内允许多个进程同时访问的设备,当然,对于每一时刻而言,该类设备仍然只允许一个进程访问。3、可虚拟设备可虚拟设备是指一台物理设备采用虚拟技术后,可变成多台逻辑上的所谓虚拟设备。一台可虚拟设备是可共享的设备,可以将它同时分配给多个进程使用,并对这些访问该设备的先后次序进行控制。SPOOLing技术SPOOLing技术是在批处理操作系统时代引入的,即所谓假脱机输入输出技术。把这种技术用于对设备的使用实质就是对输入/输出数据成批处理。对于有些设备必须进行独占式使用,如打印机,通常往打印机输出的数据不是独立的字符行,而是一批关联的字符行。当输出这批关联字符行时,必须独占打印机设备,才能使关联的字符行打印出来。如果在进程执行中一边生成输出结果一边调用写打印机系统调用输出,则打印机在独占期间因为等输出结果而未被充分利用。因此必须避免边生成边打印,可以将输出数据边生成边写入文件中,文件相当于虚拟打印设备,待全部输入完成,在独占打印机把文件内容从打印机上打印出来。例如:同一进程所有输出数据在进程运行时被写到同一文件当中,文件排到打印输出队列,打印进程申请占用打印机后,成批读出文件中数据,并送打印机打印出去。打印请求队列(含要打印文件)打印daemon进程打印机Spooling技术能将()改造成可以共享的虚拟设备。A.内存B.独占设备C.CPUD.I/O设备虚拟设备:指通过虚拟技术将一台独占设备变换为若干台供多个用户(进程)共享的逻辑设备。一般可以利用假脱机(SPOOLing)技术实现虚拟设备。Spooling技术可以实现设备的()分配。A.独占B.虚拟C.物理6.3.3.缓冲技术虽然中断、DMA和通道控制技术使得系统中设备和设备、设备和CPU等得以并行工作,但是外围设备和CPU的处理速度不匹配的问题是客观存在的。外围设备和CPU处理速度不匹配的问题极大地制约了计算机系统性能的进一步提高和限制了系统的应用范围。例如,当计算进程阵发性地把大批量数据输出到打印机上打印时,由于CPU输出数据的速度大大高于打印机的打印速度,因此,CPU只好停下来等待。反之,在计算进程进行计算时,打印机又因无数据输出而空闲无事。6.3.3.缓冲技术外围设备与处理机速度不匹配的问题可以采用设置缓冲区的方法解决。缓冲技术提高CPU与设备之间的并行程度。在系统主存空间开辟一片区域,将要从外部设备读的数据预先读到这片主存区,将要输出到外部设备的数据先写到这片主存区,以后再择机写到外部设备。在设置了缓冲区之后,计算进程可把数据首先输出到缓冲区,然后继续执行,而打印机则可以从缓冲区取出数据慢慢打印。主存速度远高于外部设备,因此缓冲技术的引入,匹配了外设与CPU之间的处理速
本文标题:操作系统设备管理课件(PPT-62页)
链接地址:https://www.777doc.com/doc-4974074 .html