《操作系统、实验》第七章设备管理操作系统课程组第2页一、引言设备的概念一个计算机系统就是由大量的设备构成的,例如:CPU,磁盘,显卡、显示器、鼠标、键盘等。这些设备的特点和功能各不相同。在这些设备中,有一类是作为计算机系统与外界交互的工具使用的,它具体负责计算机与外部的输入输出工作,我们称这类设备为外部设备简称为外设,本章重点研究的就是操作系统中对这类设备的管理策略。设备管理的目标如何提高设备的利用率:就是提高CPU与I/O设备之间的并行操作程度。为用户提供方便统一的界面:方便是指用户能独立于具体设备的复杂物理特性之外而方便地使用设备;统一是指对不同的设备尽量使用统一的操作方式。第3页一、引言设备管理的任务动态地掌握并记录设备的状态设备分配和释放缓冲区管理实现物理I/O设备的操作提供设备使用的用户接口设备的访问和控制I/O缓冲和调度第4页二、I/O系统概述I/O系统的结构单总线结构具有通道系统的I/O系统bus第5页二、I/O系统概述I/O系统的控制方式直接控制方式CPU优点:简单。缺点:CPU的大部分时间都用于对硬件进行测试,效率低下。第6页二、I/O系统概述中断驱动I/OCPU启动外设data发出中断优点:在外设进行数据处理时,CPU不必等待,可以继续执行该程序或其他程序。提高了CPU的利用率。中断技术使得CPU和外设之间的并行工作成为可能。缺点:数据仍然需要通过CPU进行传输,由于CPU每次处理的数据量少,因此这种方式只适于数据传输率较低的设备。第7页二、I/O系统概述直接存储访问I/O(DMA,DirectMemoryAccess)CPU启动外设data发出中断DMA控制器启动指令中断优点:CPU只需干预I/O操作的开始和结束,而其中的数据读写无需CPU控制,适于高速设备。第8页CPU二、I/O系统概述通道控制方式I/OI/O处理机一个CPU可以连接若干个通道,一个通道可以连接若干个控制器,一个控制器可以连接若干个设备。优点:解决了I/O操作的独立性和各部件工作的并行性。通道把中央处理机从繁琐的输入输出操作中解放出来。采用通道技术后,不仅能实现CPU和通道的并行操作,而且通道与通道之间也能实现并行操作,各通道上的外围设备也能实现并行操作,从而可达到提高整个系统的效率的根本目的。第9页二、I/O系统概述I/O设备的分类按数据组织分类块设备(BlockDevice):指以数据块为单位来组织和传送数据信息的设备。这类设备用于存储信息,有磁盘和磁带等。它属于有结构设备。磁盘设备的基本特征是:①传输速率较高,通常每秒钟为几兆位;②它是可寻址的,即可随机地读/写任意一块;③磁盘设备的I/O采用DMA方式。字符设备(CharacterDevice):指以单个字符为单位来传送数据信息的设备。这类设备一般用于数据的输入和输出,有交互式终端、打印机等。它属于无结构设备。字符设备的基本特征是:①传输速率较低;②不可寻址,即不能指定输入时的源地址或输出时的目标地址;③字符设备的I/O常采用中断驱动方式。第10页二、I/O系统概述从资源分配角度分类独占设备:指在一段时间内只允许一个用户(进程)访问的设备,大多数低速的I/O设备,如用户终端、打印机等属于这类设备。因为独占设备属于临界资源,所以多个并发进程必须互斥地进行访问。共享设备:指在一段时间内允许多个进程同时访问的设备。典型的共享设备是磁盘。共享设备不仅可以获得良好的设备利用率,而且是实现文件系统和数据库系统的物质基础。虚拟设备:指通过虚拟技术将一台独占设备变换为若干台供多个用户(进程)共享的逻辑设备。一般可以利用假脱机技术(SPOOLing技术)实现虚拟设备。第11页二、I/O系统概述按数据传输率分类低速设备:指传输速率为每秒钟几个字节到数百个字节的设备。典型的设备有键盘、鼠标、语音的输入等;中速设备:指传输速率在每秒钟数千个字节至数十千个字节的设备。典型的设备有行式打印机、激光打印机等;高速设备:指传输速率在数百千个字节至数兆字节的设备。典型的设备有磁带机、磁盘机、光盘机等。第12页三、I/O软件的组成设备管理软件的组成部分I/O交通管制程序:负责各I/O设备之间的协调工作;I/O调度程序:负责设备的分配和调度;I/O设备处理程序:负责每类设备的具体操作。I/O软件的设计目标设备独立性(deviceindependence)通过某种技术使得软件和硬件彼此相对比较独立。这样,除了直接与设备打交道的低层软件之外,其他部分的软件并不依赖于硬件。优点:①降低操作系统和底层硬件之间的耦合性,增强了操作系统的适应能力。②方便了用户的使用。第13页三、I/O软件的组成统一命名系统中,每种设备都是有名称的,如何命名以方便系统管理和用户使用是一个重要的问题。这里的统一命名是指在系统中采取预先设计的、统一的逻辑名称,对各类设备进行命名,并且应用在同设备有关的全部软件模块中。命名方式:通常的做法是,用一个序列字符串或一个整数来表征一个输入输出设备的名字。这个统一命名不依赖于设备,也就是说在同一个名称,其对应的物理设备可能发生了变化,但它并不在该名称上体现。例如在UNIX中,设备采用统一命名和处理的方式。第14页三、I/O软件的组成I/O软件的结构外部I/O设备用户设备驱动程序与设备无关的系统软件用户级软件分层设计思想中断处理程序第15页三、I/O软件的组成中断处理程序中断机制原理设备管理程序与中断的关系设置中断的目的:解决高速处理设备和低速输入输出设备之间的矛盾,提高系统工作效率。设备管理程序外设启动指令中断请求data第16页三、I/O软件的组成设备驱动程序设备驱动程序是直接同硬件打交道的软件模块。一般而言,设备驱动程序的任务为:接受来自与设备无关的上层软件的抽象请求;进行与设备相关的处理。具体说来,其功能主要有:控制和监督各I/O控制器的正确执行,并进行必要的错误处理。处理和设备相关的操作,如排队、挂起、唤醒等。缓冲区管理。进行一些较为底层的和具体设备相关的处理工作。第17页三、I/O软件的组成设备驱动程序的特点与I/O设备的硬件结构密切联系,是操作系统底层中唯一知道各种输入输出设备的控制器细节及其用途的部分。例如,只有磁盘驱动程序具体了解磁盘的区段、磁道、柱面、磁头、磁臂的运动、交错访问系数、马达驱动器、磁头定位次数以及所有保证磁盘正常工作的机制,其他软件根本不过问这些硬件操作的细节。第18页三、I/O软件的组成设备驱动程序的结构由于驱动程序和硬件的结构有着密切的联系,因此不同的硬件其启动程序的结构以也不同。但是对于略有差异的同一类设备,为了方面使用,系统往往会提供一个通用的设备驱动程序。当然为了追求更好的性能,用户可以使用厂家提供的专门为该设备编写的设备驱动程序。第19页三、I/O软件的组成与设备无关的系统软件是建立在设备驱动程序之上的,与具体设备无关的I/O功能的集合(例如所有设备都需要的I/O功能)。功能:统一命名:将设备的符号名映射到相应的设备驱动程序上,对外提供同一的命名方式。设备保护:对设备进行必要的保护,防止无授权的应用或用户的非法使用。提供与设备无关的逻辑块:屏蔽底层各种I/O设备空间大小、处理速度和传输速率的差异,只向上层提供大小统一的逻辑块尺寸。缓冲管理第20页三、I/O软件的组成存储设备的块分配:查找一个存储设备的空闲块并进行分配。独占设备的分配和释放出错处理:一般来说I/O错误有两种①操作故障:由驱动程序处理。②非操作故障:如磁盘受损而不能再读,由与设备无关的系统软件处理,并向上层返回出错信息。用户空间的I/O软件常见的主要有I/O系统调用Spooling系统:构成虚拟设备。第21页三、I/O软件的组成I/O系统的层次结构与每层的主要功能第22页四、具有通道的设备管理通道CPUI/O处理机第23页四、具有通道的设备管理通道的类型字节多路通道(ByteMultiplexorChannel)数组选择通道(BlockSelectorChannel)主通道子通道1子通道2子通道n设备1…设备2设备n低速设备,传输单位为字节可以获得较好的通道利用率可分配型通道设备1设备2设备n高速设备,一次传输一组数据可以获得较好的数据传输速率第24页四、具有通道的设备管理数组多路通道(BlockMultiplexorChannel)“瓶颈”问题主通道子通道1子通道2子通道n设备1…设备2设备n高速设备,一次传输一组数据即具有很高的数据传输速率,又能获得令人满意的通道利用率。CPU第25页四、具有通道的设备管理术语:通道命令(ChannelCommandWord,CCW):通道又称为I/O处理机,具有自己的指令系统,常常把I/O处理机的指令称通道命令。通道程序:用通道命令编写的程序称通道程序,通道通过执行通道程序控制I/O设备运行。通道地址字(ChannelAddressWord,CAW):用来存放通道程序首地址的内存单元称通道地址字。通道状态字(ChannelStatusWord,CSW):是通道向操作系统报告工作情况的状态汇集。第26页四、具有通道的设备管理通道的工作原理第27页五、与设备管理有关的技术DMA技术(DirectMemoryAccess,DMA)CPU启动外设data发出中断DMA控制器启动指令中断优点:CPU只需干预I/O操作的开始和结束,而其中的数据读写无需CPU控制,适于高速设备。内存传送一个数据块高速设备第28页五、与设备管理有关的技术缓冲技术缓冲区是一种交换数据的区域。缓冲技术的分类单缓冲技术(singlebuffer)只设置一个缓冲,CPU和外设轮流使用。CPU第29页五、与设备管理有关的技术双缓冲(doublebuffer)适合于外设速度较高的情况。第30页五、与设备管理有关的技术环形缓冲用于低速I/O设备结构第31页五、与设备管理有关的技术环形缓冲的两种现象系统受限计算:Nexti追上Nextg系统受限I/O:Nextg追上Nexti第32页五、与设备管理有关的技术缓冲池(bufferpool)可供多个进程共享的双向缓冲技术。缓冲池空缓冲队列输入队列输出队列第33页五、与设备管理有关的技术总线技术总线的定义:计算机中连接各个部件的一组线路。优点:便于部件和设备的扩充,使不同设备间的互连更加容易。总线的结构单总线bus优点:简单缺点:总线只能分时工作,使信息传送的吞吐量受到限制。第34页五、与设备管理有关的技术双总线bus存储总线在双总线结构中,因为CPU可以通过存储总线访问主存,故减轻了系统总线的负担,同时加大了信息传送的吞吐量。第35页五、与设备管理有关的技术三总线三总线结构采用了通道(I/O处理机),它减轻了CPU的数据的I/O控制,是整个系统的效率得到了很大的提高,所以,在中型、大型计算机系统中采用三总线结构。第36页五、与设备管理有关的技术总线的类型内部总线计算机内部各外围芯片与处理器之间的总线,用于芯片一级的互连。系统总线系统总线是计算机中各插件板与系统板之间的总线,用于插件板一级的互连。外部总线计算机和外部设备之间的总线,它用于设备一级的互连。第37页六、UNIX设备管理UNIX的设备种类块设备字符设备UNIX设备管理的主要特点块设备与字符设备具有相似的层次结构。这是指对它们的控制方法和所采用的数据结构、层次结构几乎相同。将设备作为一个特殊文件,并赋予一个文件名。这样,对设备的使用类似于对文件的存取,具有统一的接口。采用完善的缓冲区管理技术。引入“预先读”、“异步写”和“延迟写”方式,进一步提高系统效率。第38页六、UNIX设备管理UNIX设备管理用到的主要数据结构缓存与缓存控制块缓冲池容量:512/2048字节structbuf{intb_flage;/*缓冲区标志*/structbuf*b_forw;/*设备队列前向指针*/structbuf*b