《操作系统ppt课件第7章.ppt》由会员分享,可在线阅读,更多相关《操作系统ppt课件第7章.ppt(51页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第7章章 I/O设备管理设备管理本章知识点:本章知识点:7.1 I/O系统硬件系统硬件7.2 I/O软件软件7.3 磁盘调度磁盘调度7.4 系统举例系统举例 17.1 I/O系统硬件系统硬件在计算机系统中,使用了许多I/O设备,它们的特点和操作方式不完全一样。但是,所有的I/O设备都是通过设备管理程序来管理的。设备管理是计算机操作系统中最繁杂且与硬件紧密相关的部分。要把大量的I/O设备精减成一个单一模块的I/O系统,必须全面地适应已有设备的需求,这些设备包括从简单的鼠标到键盘、打印机、图形显示终端、硬盘驱动器、CD-ROM驱动器,以至于网络等,同时也必须考虑到未来的存储和输入/输出技术的发展
2、。27.1.1 I/O设备设备计算机所管理的I/O外部设备按输入输出对象的不同可以分为以下3类:用户可读设备,用于用户与计算机通信。机器可读设备,用于电子装置与计算机通信。通信设备,用于与远程设备通信。37.1.1 I/O设备设备所有这些设备其属性和类别有很大的区别,其主要的区别在于:数据传输速度。应用。控制的复杂性。信息组织方式。数据描述。错误条件。47.1.2 设备控制器设备控制器I/O设备一般由机械和电子两部分组成,通常将这两部分分开处理,以提供更加模块化、更加通用的设计。电子部分称作设备控制器或适配器(Device Controller或Adapter)。机械部分就是设备本身,控制器通
3、过电缆与设备内部相连。57.1.2 设备控制器设备控制器设备控制器的主要作用有:接收和识别CPU发来的多种不同命令;实现CPU与控制之间、控制器和设备之间的数据交换;记录和报告设备的状态。地址识别。识别控制器控制的每个设备的地址。67.1.2 设备控制器设备控制器设备控制器的组成:77.1.3 I/O技术技术1.I/O技术简介目前,操作系统中的I/O技术大致有以下3种:(1)程序I/O(2)中断驱动I/O(3)直接存储器存储(DMA)87.1.3 I/O技术技术随着计算机系统的发展,单个部件也越来越复杂。最明显的例子就是I/O技术的发展。处理器直接控制边缘设备。增加一个控制器或I/O模块。使用
4、了如阶段的设置,但增加了中断。I/O模块通过DMA直接控制内存。I/O模块由一个单独处理器处理,有专门用于I/O的指令集。I/O模块有本地存储器,事实上,有其自己的计算机。97.1.3 I/O技术技术2.DMADMA是一种优于中断方式的I/O控制方式,其特点为:数据传输的基本单位是数据块,即CPU与I/O设备之间,每次至少传送一个数据块;所传送的数据是从设备直接送入内存的,或者相反;仅在传送一个或多个数据块的开始和结束时,向CPU发中断信号,请求CPU干预,整块数据的传送是在控制器的控制下完成的。107.1.3 I/O技术技术DMA控制器组成:117.1.3 I/O技术技术3.I/O通道 计算
5、机中设计了一个专门负责外设I/O的处理器,置于CPU和设备控制器之间,称这个I/O处理器为I/O通道。设计目的是:建立独立的I/O操作,使数据的传送独立于CPU,并尽量使有关I/O操作的组织、管理及结束也独立,以保证CPU有更多时间进行数据处理。127.1.3 I/O技术技术I/O通道是DMA方式的发展,它的程序是由通道指令组成的,称为通道程序。I/O处理器和CPU共享主存储器。在微型计算机中,其I/O处理器并不完全具有前述I/O通道的所有功能,因此,就称为I/O处理器。137.1.3 I/O技术技术在大型计算机中常有多个I/O通道,而在一般的微型计算机中则可以配置1-2个I/O处理器(或更多
6、)。这些I/O处理器和中央处理器共享主存储器和总线(微型机中采用总线结构),在大型机中就可能出现几条通道和中央处理器同时争相访问主存储器的情况。为此给通道和中央处理器规定了不同的优先次序。147.1.3 I/O技术技术通道通过执行通道程序,并与设备控制器一起共同实现对I/O设备的控制。通道程序是由一系列的通道指令(或称为通道命令)所构成。通道指令和一般的机器指令不同,在它的每条指令中通常包含下列信息:操作码,内存地址,计数,通道程序结束位P,记录结束标志R。157.1.3 I/O技术技术一般I/O通道有3种类型:(1)字节多路通道(2)数组选择通道(3)数组多路通道I/O通道方式的发展,既可进
7、一步减少CPU的干预,又可实现CPU、通道和I/O设备3者的并行工作,从而更有效地提高了整个系统的资源利用率。167.2 I/O软件软件I/O软件的总体目标是,按分层的思想构造软件,较低层的软件要使较高层的软件独立于硬件,较高层的软件则要向用户提供一个友好、规范、清晰的界面。I/O软件设计的具体目标是:设备独立性。统一命名。同步/异步传输。出错处理。设备共享与独占。177.2 I/O软件软件根据I/O软件的设计目标,将I/O软件组织成以下4个层次:(1)中断处理程序;(2)设备驱动程序;(3)与设备无关的操作系统软件;(4)用户层软件。187.2.1 中断处理程序中断处理程序在现代计算机系统中
8、,对I/O设备的控制,广泛采用中断驱动(Interrupt-driven)方式,即当某进程要启动某个I/O设备工作时,便由CPU向相应的设备控制器发出一条I/O命令,然后立即返回继续执行原来的任务。设备控制器便按照该命令的要求去控制I/O设备,此时,CPU与I/O设备并行操作。197.2.1 中断处理程序中断处理程序无论是哪种I/O设备,其中断处理程序的处理基本相同,其步骤为:唤醒被阻塞的驱动进程。保护被中断进程的CPU环境。分析中断原因,转入相应的中断处理程序。进行中断处理。恢复现场。207.2.2 设备驱动程序设备驱动程序 所有与设备相关的代码放在设备驱动程序中。它是I/O进程与设备控制器
9、之间的通信程序,因为它常以进程的形式存在,故也可以称为设备驱动进程。由于驱动程序与设备硬件密切相关,故应为每一类设备配置一种驱动程序,或为一类密切相关的设备配置一个驱动程序。217.2.2 设备驱动程序设备驱动程序1设备驱动程序的功能设备驱动程序的功能 将接收到的来自它上一层的与设备无关的抽象请求转为具体请求。检查用户I/O请求的合法性,了解I/O设备的状态,传递有关参数、设置设备的工作方式。发出I/O命令,启动分配到的I/O设备,完成指定的I/O操作。及时响应控制器或通道发来的中断请求,并调用相应的中断处理程序处理。对于有通道的计算机系统,驱动程序还应能根据用户I/O请求构成通道程序。227
10、.2.2 设备驱动程序设备驱动程序2.设备驱动程序的处理过程设备驱动程序的处理过程一般地说,设备驱动程序的任务是接收来自它上面一层的与设备无关软件的请求,并执行这个请求。一个典型的请求是“读第n块”,如果请求到来时驱动程序是空闲的,则立即开始执行该请求;若驱动程序正在执行一个请求,则将新到来的请求插到一个等待处理I/O请求队列中。237.2.3 与设备无关的与设备无关的I/O软件软件 大部分I/O软件是与设备无关的,设备驱动程序与设备独立软件之间的确切界限依赖于具体系统,因为对于一些本来应按照设备独立方式实现的功能,出于效率和其他原因,实际上还是由设备驱动来实现的。与设备无关软件层通常应实现的
11、功能为:设备驱动程序的统一接口、设备命名、提供一个与设备无关的块大小、缓冲、块设备的存储分配、分配和释放独占设备、错误报告等。247.2.3 与设备无关的与设备无关的I/O软件软件与设备无关的I/O软件系统称为I/O子系统。I/O子系统执行着与设备无关的操作。同时I/O子系统为用户应用程序提供一个统一的接口。下面讨论I/O子系统所需完成的主要功能。257.2.3 与设备无关的与设备无关的I/O软件软件1.设备命名与设备无关的软件(即I/O子系统)负责把设备的符号名映射到相应的设备驱动程序。设备命名后,所有设备的名字的集合称做设备的名字空间。UNIX系列有3种不同的名字空间。(1)主次设备号(2
12、)内部号与外部号(3)设备文件与路径名267.2.3 与设备无关的与设备无关的I/O软件软件2.设备保护与设备命名机制密切相关的是设备保护。在大多数大型计算机系统中,用户进程对I/O设备的访问是完全禁止的。277.2.3 与设备无关的与设备无关的I/O软件软件3.与设备无关的块及存储设备的块分配不同的磁盘可以采用不同的扇区尺寸,与设备无关软件的一个任务是向较高层软件屏蔽并给上一层提供大小统一的块尺寸。287.2.3 与设备无关的与设备无关的I/O软件软件4.设备分配一些设备,如磁盘驱动器,在任一时刻只能被单个进程使用。因此,操作系统需要对设备使用请求进行检查,并根据申请设备的可用状况决定是接收
13、该请求还是拒绝该请求。297.2.3 与设备无关的与设备无关的I/O软件软件5.出错处理出错处理是由设备驱动程序完成的。大多数错误是与设备密切相关的,因此,只有驱动程序知道应如何处理(是重试、忽略,还是报警)。307.2.4 用户空间的用户空间的I/O软件软件虽然大部分I/O软件都包合在OS内核之中,但也有一小部分I/O软件是由与用户程序连接在一起的库过程构成,它们可能完全运行在OS之外。例如,下列一个C程序调用了write库过程,并包含在运行时的二进制程序代码中:count=write(fd,buffer,nbytes);显然,write库过程是I/O系统的组成部分。上面描述的是第一类用户空
14、间I/O软件,第二类用户空间I/O软件为spooling(simultaneous peripheral operation on line)系统,即假脱机系统。spooling系统是多道程序设计系统中处理独占I/O设备的一种方法。317.2.4 用户空间的用户空间的I/O软件软件spooling系统的作用如下:(1)实现了虚拟设备功能(2)将独占型设备变成共享设备(3)提高了I/O效率327.2.5 缓冲技术缓冲技术系统为达到如下目的需要使用缓冲技术:(1)缓和CPU与I/O设备间速度不匹配的矛盾(2)减少CPU的中断频率,放宽对中断响应的限制(3)提高CPU和I/O设备之间的并行性337.
15、2.5 缓冲技术缓冲技术根据系统设置的缓冲区的个数,可以把缓冲技术分为单缓冲、双缓冲和循环缓冲以及缓冲池几种。单缓冲 34双缓冲 多缓冲 7.2.5 缓冲技术缓冲技术357.2.5 缓冲技术缓冲技术1单缓冲单缓冲是OS提供的一种最简单的缓冲。当用户进程发出一个I/O请求时,OS便在主存中分配一个缓冲区。对于单缓冲,缓冲区属于临界资源,即不允许多个进程同时对一个缓冲区进行操作。因此,单缓冲虽然能匹配设备和CPU的处理速度,但无法实现设备与设备之间的并行操作。367.2.5 缓冲技术缓冲技术2.双缓冲 双缓冲提供两个缓冲区。但双缓冲只是一种说明设备与设备、CPU与设备并行操作的简单模型,并不能用于
16、实际系统中的并行操作。377.2.5 缓冲技术缓冲技术3.循环缓冲由于双缓冲并不能真正解决实际系统中的并行操作,于是引入了多缓冲。通过增加缓冲区的个数,可使并行程度得到明显提高。多缓冲是把多个缓冲区连接起来组成两部分:一部分专门用于输入;另一部分专门用于输出。循环缓冲包括以下两部分。(1)多个缓冲区(2)多个指针387.2.5 缓冲技术缓冲技术4.缓冲池 上述的循环缓冲区仅适用于某特定的I/O进程和计算进程,因而属于专用缓冲。为了提高缓冲区的利用率,目前广泛流行公用缓冲池,池中的缓冲区可供多个进程共享。(1)缓冲池的结构相同类型的缓冲区链成一个队列,于是可形成以下3个队列:空缓冲队列emq。输
17、入队列inq。输出队列outg。397.2.5 缓冲技术缓冲技术缓冲池中的工作缓冲区:407.2.5 缓冲技术缓冲技术(2)缓冲池的管理一般,管理缓冲池的步骤如下:take-buf(type):从3种缓冲区队列中按一定的规则取出一个缓冲区。add-buf(type,number):把缓冲区按一定的规则插入相应的缓冲队列。get-buf(type,number):申请缓冲区。put-buf(type,work-buf):将缓冲区放入相应缓冲区队列。其中,type为缓冲队列类型,number为缓冲区号,work-buf为工作缓冲区类型。417.3 磁盘调度磁盘调度近30年来,处理器和主存速度的增加
18、远远把磁盘抛在了后面。因为磁盘的相对低速,使得磁盘子系统的性能变得至关重要,许多人也在积极探索提高磁盘子系统性能的方法,改进调度策略,降低查找时间。427.3.1 调度策略调度策略磁盘调度策略有很多,常见的有随机调度、先进先出、进程优先级、后进先出等。1.先进先服务策略(FCFS)顾名思义,它是将各进程对磁盘请求的等待队列按提出请求的时间进行排序,并按此次序给予服务的一种策略。这个策略对各进程是公平的,它不管进程优先级多高,只要是新来到的访问请求,都被排在队尾。437.3.1 调度策略调度策略2最短服务时间优先策略(SSTF)这是将请求队列中柱面号最接近于磁头当前所在柱面的访问要求,作为一个服
19、务对象的一种策略。3扫描策略扫描策略(SCAN)也叫电梯策略(Elevator Algorithm)。大多数电梯保持按一个方向移动,直到没有请求为止,然后改变方向。447.3.1 调度策略调度策略4.循环扫描策略(CSCAN)对SCAN算法稍作改进可以进一步减少响应时间。方法是:总是按同一方向移动磁臂,处理完最高编号柱面上的请求后,磁臂移动到具有读/写请求的最低编号的柱面,然后继续向上移动。457.3.1 调度策略调度策略磁盘调度策略很多,各有利弊。如何选择相应调度策略与磁盘的使用环境因素有关。磁盘调度的另一个趋势是使多个磁盘(磁盘阵列)一起工作,特别对高端系统很有用。廉价冗余磁盘陈列(Red
20、undant Array of Inexpensive Disks,简称RAID)的特点是:RAID是一个物理磁盘集合,但被OS认为是一个逻辑盘。数据分布存放在不同磁盘上。具有较强的纠错能力。467.3.2 磁盘高速缓存磁盘高速缓存Cache存储器是在主存和处理器之间插入的一个更快、更小但更昂贵的存储器,其作用是减少主存的平均存取时间。同样的原理也可应用到磁盘存储器。关于磁盘Cache,有几个设计问题值得说明。(1)Cache中的数据传送当一个I/O请求能由Cache提供服务时,Cache中的数据必须传送到请求进程中。有两种方法传送数据:一是通过共享存储器将数据所在的指针传送到请求进程;二是传
21、送Cache中的数据到用户进程的存储空间中。477.3.2 磁盘高速缓存磁盘高速缓存(2)Cache中数据的替换策略当一个新的扇区装入Cache中时,一个原先在Cache中的扇区数据必须替换出去。经常使用的算法是最近最少使用算法(Least Recently Used,LRU)。Cache中没有被使用时间最长的那个块将被替换。替换Cache中最少被访问的块的算法是最少使用算法(Least Frequently Used,LFU)。487.3.2 磁盘高速缓存磁盘高速缓存有必要在考虑最近最久未使用这一原则的同时,注意到以下三点内容:访问频率。通常,联想存储器的访问频率远高于高速缓存的访问频率。可预见性。预见哪些内容在不久将来会再次被访问,哪些则可能很久都不再被访问。数据一致性。必须保持高速缓存、内存和磁盘间数据的一致性。基于以上的考虑,提出了一个新的技术基频率的替换(Frequency-Based Replacement)。497.3.2 磁盘高速缓存磁盘高速缓存(3)Cache的失效率一般而言,在同样的替换策略下,Cache越大,失效率越少。因此,必须设计好Cache的大小和替换策略,减少失效率。50 The endThanks!51
限制150内