os-第5章设备管理_第1页
os-第5章设备管理_第2页
os-第5章设备管理_第3页
os-第5章设备管理_第4页
os-第5章设备管理_第5页
已阅读5页,还剩184页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

南昌大学信息管理系

NanChangUniversityDepartmentofinformationmanager操作系统OperatingSystem第四部分IO系统(设备管理)OS的主要功能之一是控制所有的输入/输出设备。

它必须向设备发布命令,捕获中断并进行错误处理,它还要提供一个设备与系统其余部分之间的简单易用的界面。该界面应对所有设备尽可能地一致(设备无关性)。

不同的人对I/O硬件有不同的理解。在电气工程师看来,I/O硬件就是一堆芯片、电线、电源、马达和其他设备的集合体。程序员则主要注意它为软件提供的接口,即硬件能够接收的命令、它能够完成的功能、以及能报告的各种错误等。OS的重点是如何对硬件编程

设备管理程序便是用于对这类设备进行控制和管理的一组程序。4.1I/O系统I/O设备一个机械部分:设备本身一个电子部件:设备控制器或适配器;在PC中,它往往是一块可插入主板扩展槽的印刷电路板。之所以区分设备和设备控制器是因为OS大多与控制器打交道,而非设备本身。一.微型机I/O系统总线I/O系统结构CPU存储器磁盘控制器打印机控制器其他控制器磁盘驱动器打印机…系统总线二.主机I/O系统计算机I/O通道I/O通道控制器控制器控制器控制器设备4.1.1I/O设备一.I/O设备的类型

⒈按传输速率分类低速中速高速2.按信息交换的单位分类块设备:将信息存储在可寻址的固定大小的数据块中。主要特征:能独立读写单个的数据块。字符设备:可以发送和接收一个字符流。主要特征:无法遍址,也不存在任何寻址操作。磁盘、磁带打印机、网络接口、鼠标⒊按设备的共享属性分类

a.独占设备。这是指在一段时间内只允许一个用户(进程)访问的设备,及临界资源。c.虚拟设备。这是指通过虚拟技术将一台独占设备变换为若干台逻辑设备,供若干个用户(进程)同时使用。b.共享设备。这是指在一段时间内允许多个进程同时访问的设备。

控制器与设备之间的接口通常是一种很低层次的接口。二.设备与控制器之间的接口

设备并不是直接与CPU进行通信,而是与设备控制器进行通信,在设备与设备控制器之间应有一接口。

例如,一个磁盘,可能被格式化为每道16个512字节的扇区。实际从驱动器读出来的是一个比特流,以一个前缀开始,随后是一个扇区的4096比特,最后是一个检查和(纠错码ECC)。其中的前缀是格式化时写进磁盘的,里面包含有柱面数和扇区数、扇区大小之类的数据。

磁盘控制器的任务是将这个串行的比特流转换成字节块并在需要时进行纠错。通常该字节块是在控制器中的一个缓冲区中逐个比特汇集而成。在对检查和进行校验证实数据正确之后,该块数据随后被拷贝到主存中。CRT终端控制器是一个比特串行设备。

它从内存中读取要显示字节的字节流,然后产生用来调制CRT射线的信号,最后将结果显示在屏幕上。控制器还产生当水平方向扫描结束后的折返信号以及当整个屏幕被扫描后的垂直方向折返信号。OS只需通过几个参数对控制器进行初始化、输入参数,控制器就将自行控制扫描波束。二.设备与控制器之间的接口

至设备控制器

缓冲转换器控制逻辑信号数据数据信号线状态信号线控制信号线I/O设备设备与控制器间的接口

接口中有三种类型的信号,各对应一条信号线。

缓冲转换器控制逻辑信号数据数据信号线状态信号线控制信号线I/O设备(1)数据信号线。这类信号线用于在设备与设备控制器之间传送数据信号

缓冲转换器控制逻辑信号数据数据信号线状态信号线控制信号线I/O设备(2)控制信号线。由设备控制器向I/O设备发送控制信号时的通路(3)状态信号线。该信号线用于传送指示设备当前状态的信号

缓冲转换器控制逻辑信号数据数据信号线状态信号线控制信号线I/O设备7.1.2设备控制器

其主要职责是控制一个或多个I/O设备,以实现I/O设备和计算机之间的数据交换。

它是CPU与I/O设备之间的接口,它接收从CPU发来的命令,并去控制I/O设备工作,以使处理机从繁杂的设备控制事务中解脱出来。可编址设备设备控制器分成两类:

1、用于控制字符设备的控制器;

2、用于控制块设备的控制器。一.设备控制器的基本功能⒈接收和识别命令

CPU可以向控制器发送多种不同的命令,设备控制器应能接收并识别这些命令。控制寄存器:存放接收的命令、参数及译码⒉数据交换是实现CPU与控制器之间、控制器与设备之间的数据交换。数据寄存器

⒊设备状态的了解和报告控制器应记下设备的状态供CPU了解。

状态寄存器

⒋地址识别系统中的每一个设备都有一个地址,而设备控制器又必须能够识别它所控制的每个设备的地址。地址译码器⒌数据缓冲:设置数据缓冲器⒍差错控制:

由I/O设备传来的数据进行差错检测

OS通过向控制器寄存器写命令字来执行I/O功能。某设备控制器接收到一条命令后,CPU可以转向其他工作,而让该设备控制器自行完成具体的I/O操作。当命令执行完毕后,控制器发出一个中断信号,以便使OS重新获得CPU的控制权并检查执行结果。CPU仍旧是通过从控制器寄存器中读取若干字节信息来获得执行结果和设备的状态信息。二.组成:状态控制数据地址线数据寄存器控制/状态寄存器I/O逻辑控制器与设备接口1控制器与设备接口i……CPU与控制器接口控制器与设备接口数据状态控制数据线控制线设备控制器的组成⒈设备控制器与处理机的接口

该接口用于实现CPU与设备控制器之间的通信。共有三类信号线:数据线、地址线和控制线。状态控制数据地址线数据寄存器控制/状态寄存器I/O逻辑控制器与设备接口1控制器与设备接口i……CPU与控制器接口控制器与设备接口数据状态控制数据线控制线⒉设备控制器与设备的接口一个设备接口连接一台设备状态控制数据地址线数据寄存器控制/状态寄存器I/O逻辑控制器与设备接口1控制器与设备接口i……CPU与控制器接口控制器与设备接口数据状态控制数据线控制线⒊I/O逻辑

用于实现对设备的控制。它通过一组控制线与处理机交互,处理机利用该逻辑向控制器发送I/O命令;I/O逻辑对收到的命令进行译码。状态控制数据地址线数据寄存器控制/状态寄存器I/O逻辑控制器与设备接口1控制器与设备接口i……CPU与控制器接口控制器与设备接口数据状态控制数据线控制线7.1.3I/O通道一.引入

在CPU和设备控制器之间增设通道,其目的是使一些原来由CPU处理的I/O任务转由通道来承担,把CPU从繁杂的I/O任务中解脱出来。I/O通道与一般的处理机不同:一、其指令类型单一;二、通道没有自己的内存,通道与CPU共享内存。I/O通道是一种特殊的处理机二.通道类型根据信息交换方式的不同,通道可分为三种类型:·字节多路通道

·数组选择通道

·数组多路通道⒈字节多路通道这是一种按字节交叉方式工作的通道。它通常都含有许多非分配型子通道,每一个子通道连接一台I/O设备,并控制该设备的I/O操作。子通道按时间片轮转方式共享主通道。A1B1C1…A2B2C2…A1A2A3…子通道A控制器A控制器B控制器C控制器D控制器NB1B2B3子通道BC1C2C3子通道CN1N2N3子通道N…………设备字节多路通道的工作原理字节多路通道有多个非分配型子通道按字节交叉方式数据传送速率低字节多路通道不适于连接高速设备。⒉数组选择通道只含有一个分配型子通道,在一段时间内只能执行一道通道程序,控制一台设备进行数据传送。通道利用率极差

数组选择通道虽有很高的传输速率,但它却每次只允许一个设备传输数据。⒊数组多路通道数组多路通道是将数组选择通道传输速率高和字节多路通道能使各子通道(设备)分时并行操作的优点相结合而形成的一种新通道。含有多个非分配型子通道。三.“瓶颈”问题

存储器通道1通道2控制器1控制器2控制器3控制器4设备1设备2设备3设备4设备5设备6设备7单通路I/O系统通道不足

为了解决通道不足问题,最简单的方法是:配置足够的通道和控制器。但更经济的方法是:(1)减少使用通道的时间;(2)增加通路,提高通路的灵活性。最有效的方法增加设备独立性,由外围设备或控制器提供缓冲

解决“瓶颈”问题的最有效的方法,便是增加设备到主机间的通路而不增加通道,就是把一个设备连接到多个控制器上,而一个控制器又连接到多个通道上。存储器通道1通道2控制器2I/O设备I/O设备I/O设备I/O设备控制器1多通路I/O系统7.1.4总线系统

总线的性能是用总线的时钟频率、带宽和相与的总线传输速率等指标来衡量的。总线I/O系统结构CPU存储器磁盘控制器打印机控制器其他控制器磁盘驱动器打印机…系统总线一.ISA和EISA总线1.ISA总线2.EISA总线

扩展ISA(EISA)总线,带宽为32位,传输速率高达32Mb/s。

这是为了1984年推出的80286型微机而设计的总线结构,之后又推出了16位的(EISA)总线。IndustryStandardArchitectureExtendedISA二.局部总线LocalBus

多媒体技术的兴起,要求总线具有更高的传输速率。局部总线:指将多媒体卡、高速LAN网、高性能图形板等,从ISA总线上卸下来,再通过局部总线控制器直接接到CPU总线上,使之与高速CPU总线相匹配,而打印机、CD-ROM等仍挂在ISA总线上。1.VESA总线VideoElectronicStandardAssociationVESA总线带宽为32位,最高传输速率为132Mb/s。但存在严重缺点。

2.PCI总线PeripheralComponentInterfaceIntel公司分别在1992年和1995年颁布了PCI总线的V1.0和V2.0规范。PCI在CPU和外设间插入一复杂的管理层,用于协调数据传输和提供一致的接口。7.2I/O控制方式

随着计算机技术的发展,I/O控制方式也在不断的发展。程序I/O方式中断驱动方式引入中断机制DMA通道

尽量减少主机对I/O控制的干预,把主机从繁杂的I/O控制事务中解脱出来,以便更多的去完成数据处理任务。I/O控制的整个发展中,贯穿着一条宗旨:7.2.1程序I/O方式在处理机向控制器发出一条I/O指令启动输入设备输入数据时,要同时把状态寄存器中的忙/闲标志busy置为1,然后便不断地循环测试busy。忙—等待方式程序I/O方式向I/O控制器发读命令检查状态?向存储器中写字读I/O控制器的状态从I/O控制器中读入字传送完成?未就绪完成下条指令出错CPUI/OI/OCPUI/OCPUCPU内存就绪未完

由于CPU的高速性和I/O设备的低速性,致使CPU的绝大部分时间都处于等待I/O设备的循环测试中。CPU中无中断机构7.2.2中断驱动I/O控制方式

引入了中断机构,当某进程要启动某个I/O设备工作时,便由CPU向相应的设备控制器发出一条I/O命令,然后立即返回继续执行原来的任务。设备控制器于是按照该命令的要求去控制指定I/O设备。CPU与I/O设备并行操作。向I/O控制器发读命令检查状态?向内存中写字读I/O控制器的状态从I/O控制器中读字传送完成?完成下条指令出错CPUI/OI/OCPUI/OCPUCPU内存就绪未完CPU做其它事中断中断驱动方式

例如,从终端输入一个字符的时间约为100ms,将字符送入终端缓冲区的时间小于0.1ms。采用程序I/O方式,99.9ms处于忙—等待中。采用中断驱动方式,CPU可利用这99.9ms的时间去做其它事情,仅用0.1ms的时间来处理由控制器发来的中断请求。

中断驱动方式仍是以字(节)为单位进行I/O的,每当完成一个字(节)的I/O时,控制器便要向CPU请求一次中断。例如,为了从磁盘中读出1KB的数据块,需要中断CPU1K次。7.2.3直接存储器访问DMAI/O控制方式向I/O控制器发读块命令读DMA控制器的状态下条指令CPUDMACPU做其它事中断DMACPUDMA方式该方式的特点是:(3)仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整个数据的传送是在控制器的控制下完成的。(2)所传送的数据是从设备直接送入内存的。(1)数据传输的基本单位是数据块。一.DMA控制器的组成⒈主机与DMA控制器的接口;⒉DMA控制器与块设备的接口;⒊I/O控制逻辑。DMA控制器的组成DRMARDCCR…控制逻辑I/Ocount命令CPU内存主机—控制器接口控制器与块设备接口系统总线DMA控制器⒈命令/状态寄存器CR;⒊数据寄存器DR;⒉内存地址寄存器MAR;⒋数据计数器DC二.DMA工作过程启动DMA传送命令设置AR和DC初值挪用存储器周期传送数据字存储器地址增1字计数寄存器减1DC=0?请求中断在继续执行用户程序的同时,准备又一次传送否是7.2.4I/O通道控制方式I/O通道控制方式的引入DMA方式以数据块为单位,需要一次去读多个数据块且将它们分别传送到不同的内存区域,须由CPU分别发出多条I/O指令及进行多次中断处理,才能完成。

I/O通道方式是DMA方式的发展,干预的单位从对一个数据块的读(或写)变为对一组数据块的读(或写)及有关的控制和管理。

可实现CPU、通道和I/O设备三者的并行操作。提高了整个系统的资源利用率二.通道程序通道程序是由一系列通道指令(或称为通道命令)所构成的。通道指令与一般的机器指令不同,包含下列诸信息:(1)操作码(2)内存地址(3)计数(4)通道程序结束位P(5)记录结束标志R操作PR计数内存地址WRITE0080813WRITE001401034WRITE01605830WRITE013002000WRITE002501850WRITE112507207.3缓冲管理7.3.1缓冲的引入主要原因:

(1)缓和CPU和I/O设备间速度不匹配的矛盾。凡在数据到达速率与其离去速率不同的地方都可设置缓冲区。

(2)减少对CPU的中断缓冲,放宽对CPU中断响应时间的限制。

从远地终端发来的数据仅用一位缓冲来接收,在每收到一位数据时便中断一次CPU,对于速率为9.6Kb/s的数据通信来说,中断CPU的频率也为9.6Kb/s,CPU必须在100μs内予以响应。具有8位的缓冲(移位)寄存器,使CPU被中断的频率降低为原来的1/8。设置一个8位寄存器,可把CPU对中断的响应时间放宽到800μs。(a)9.6Kb/s1位缓冲(b)9.6Kb/s8位缓冲寄存器送内存(c)9.6Kb/s8位缓冲寄存器送内存利用缓冲寄存器实现缓冲(3)提高CPU和I/O设备之间的并行性。主要原因:7.3.2单缓冲和双缓冲

一.单缓冲(SingleBuffer)单缓冲是在设备和CPU之间设置一个缓冲区。

当用户进程发出I/O请求时,OS便在内存为它分配一个缓冲区。

在块设备输入时,假定从磁盘把一块数据输入到缓冲区的时间为T,操作系统将该缓冲区中的数据传送到用户区的时间为M,CPU对这一块数据处理(计算)的时间为C。(a)工作区缓冲区处理(C)传送(M)输入(T)I/O设备用户进程(b)tT1M1C1T2M2C2T3M3C3T4单缓冲工作示意图(a)工作区缓冲区处理(C)传送(M)输入(T)I/O设备用户进程Max(C,T)+M

数据块传送到用户区后,CPU处理数据与从磁盘读入数据块并行。

在字符设备输入时,缓冲区用于暂存用户输入的一行数据。把一叠卡片读入并打印出来。设读卡机速度为每读一张100ms,打印机每打印需100ms。100ms读卡1100ms打印1100ms读卡2100ms打印2100ms读卡3100ms打印3打印机和读卡机完全串行工作

单缓冲区是一个临界资源,不允许多个进程同时对一个缓冲区操作。

单缓冲区能匹配CPU和I/O的处理速度,但不能是设备和设备达到并行操作。为了提高设备利用率,引进了双缓冲。二.双缓冲(DoubleBuffer)用户进程工作区缓冲区1缓冲区2I/O设备(a)从磁盘读入数据块到缓冲区T数据块从缓冲区传送到用户区CPU对数据进行处理M+C并行用户进程工作区缓冲区1缓冲区2I/O设备(a)(b)T1(缓冲1)M1C1M2C2T2(缓冲2)T3(缓冲3)M3C3T4(缓冲4)M4C4双缓冲工作示意图Max(C,T)在字符设备输入时100ms读卡1打印机和读卡机完全并行工作读卡2打印1100ms打印2读卡3100ms读卡4打印3100ms打印4读卡5100ms读卡6打印5100ms

在实现两台机器之间的通信时,若配置了单缓冲,它们之间在任意时刻只能实现单方向的数据传输。A机B机缓冲区缓冲区a.单缓冲发送缓冲区接收缓冲区接收缓冲区发送缓冲区A机B机b.双缓冲

实现双向数据传输,必须在两台机器中都设置两个缓冲区,一个用作发送缓冲区,另一个用作接收缓冲区。

双缓冲只是一种说明设备与设备、CPU与设备并行操作的简单模型,不能用于实际系统中的并行操作。因为计算机的外围设备较多,双缓冲区很难匹配设备和处理机的处理速度。

当输入与输出或生产者与消费者的速度基本相匹配时,采用双缓冲能获得较好的效果,可使生产者和消费者基本上能并行操作。但若两者的速度相差甚远,双缓冲的效果则不够理想。多缓冲7.3.3循环缓冲多缓冲把多个缓冲区连接起来组成两部分:一部分专门用于输入;另一部分专门用于输出。一.循环缓冲的组成

1.多个缓冲区

作为输入的多缓冲区:(1)用于装输入数据的空缓冲区R;(2)已装满数据的缓冲区G;(3)正在使用的现行工作缓冲区C。RGGGRG123456NextiNextg循环缓冲RGGGRC123456NextiNextgCurrent2.多个指针输入的缓冲区可设置三个指针:指示计算进程下一个可用缓冲区G的指针Nextg输入进程下次可用的空缓冲区R的指针Nexti指示计算进程正在使用的缓冲区C的指针Current

二.循环缓冲区的使用

计算进程和输入进程可利用下述两个过程来使用循环缓冲区。Getbuf过程Releasebuf过程RGGGRG123456NextiNextgRGGGRC123456NextiNextgCurrent计算进程调用Getbuf过程RGGGRC123456NextiNextgCurrentRGGGRR123456NextiNextg计算进程调用Releasebuf过程三.进程同步Nexti指针追赶上Nextg指针。

输入进程输入数据的速度大于计算进程处理数据的速度。2.Nextg指针追赶上Nexti指针。输入数据的速度低于计算进程处理数据的速度。系统受I/O限制系统受计算限制

上述的缓冲区仅适用于某特定的I/O进程和计算进程,因而它们属于专用缓冲。当系统较大时,会有许多这样的循环缓冲。消耗大量内存,利用率不高7.3.4缓冲池

池中设置了多个可供若干个进程共享的缓冲区。一.缓冲池的组成缓冲池由多个缓冲区组成。一个缓冲区由两部分组成:缓冲体:存放数据缓冲首部:标识该缓冲区和用于管理一一对应缓冲首部由设备号、数据块号、缓冲号、互斥标识号、连接指针组成

对于既可用于输入又可用于输出的公用缓冲池,至少应包含以下三种类型的缓冲区:空(闲)缓冲区装满输入数据的缓冲区装满输出数据的缓冲区

将相同类型的缓冲区链成一个队列,形成三个队列:空缓冲队列emq。输入队列inq。输出队列outq。四个工作缓冲区:用于收容输入数据的工作缓冲区;用于提取输入数据的工作缓冲区;用于收容输出数据的工作缓冲区;用于提取输出数据的工作缓冲区。

系统或用户进程从3个队列中申请和取出缓冲区,并用得到的缓冲区存数或取数,存、取数操作完后再将缓冲区放入相应的队列,这些缓冲区称工作缓冲区。二.Getbuf过程和Putbuf过程Addbuf(type,number)过程。2.Takebuf(type)过程。

因为缓冲池中的队列本身是临界资源,多个进程在访问一个队列时,既应互斥,且须同步。该过程用于将由number所指示的缓冲区,挂在type队列上它用于从type所指示的队列的队首摘下一缓冲区

为每一队列设置一个互斥信号量MS(type)又为每个缓冲队列设置一个资源信号量RS(type)ProcedureGetbuf(type)beginWait(RS(type));Wait(MS(type));B(number):=Takebuf(type);Signal(MS(type));endProcedurePutbuf(type,number)beginWait(MS(type));Addbuf(type,number);Signal(MS(type));Signal(RS(type));end

既可实现互斥又可保证同步的Getbuf过程和Putbuf过程描述如下:三.缓冲区的工作方式缓冲区的工作方式hinhoutsoutsin收容输入提取输出提取输入收容输出缓冲池用户程序1.收容输入。

在输入进程需要输入数据时,调用Getbuf(emp)过程,从emp的队首摘下一空缓冲区,作为收容输入工作缓冲区hin。装满数据后,调用Putbuf(inq,hin)过程,挂在输入队列inq队列上。hinhoutsoutsin收容输入提取输出提取输入收容输出缓冲池用户程序2.提取输入。

当计算进程需要输入数据时,调用Getbuf(inq)过程,从输入队列inq的队首取得一缓冲区,作为提取输入工作缓冲区(sin)。计算进程从中提取数据。计算进程用完数据后,调用Putbuf(emq,sin)过程,挂到空缓冲队列emq上。hinhoutsoutsin收容输入提取输出提取输入收容输出缓冲池用户程序3.收容输出。

当计算进程需要输出时,调用Getbuf(emq)过程,从空缓冲队列emq的队首取得一空缓冲,作为收容输出工作缓冲区hout。当装满输出数据后,调用Putbuf(outq,hout)过程,挂到outq末尾。hinhoutsoutsin收容输入提取输出提取输入收容输出缓冲池用户程序4.提取输出

输出进程调用Getbuf(outq)过程,从输出队列队首取得一缓冲区,作为提取输出工作缓冲区sout。数据提取完后,调用Putbuf(emq,sout)过程,挂到空缓冲队列末尾。hinhoutsoutsin收容输入提取输出提取输入收容输出缓冲池用户程序4.4设备管理系统设备不允许用户自行使用,必须由系统统一分配。4.4.1设备分配中的数据结构设备控制器控制器控制表通道控制表系统设备表一.设备控制表DCT

系统为每一个设备都配置了一张设备控制表,用于记录本设备的情况。1.设备队列队首指针2.设备状态3.与设备连接的控制器表指针4.重复执行次数设备队列的队首指针重复执行次数或时间指向控制器表的指针设备状态:等待/不等待忙/闲设备标识符:deviceid设备类型typeDCT1DCT3DCT2设备控制表集合设备控制表二.控制器控制表、通道控制表和系统设备表1.控制器控制表COCT

系统为每一个控制器都设置了一张用于记录本控制器情况的控制器控制表。控制器队列的队尾指针控制器队列的队首指针与控制器连接的通道表指针控制器状态:忙/闲控制器标识符:controlleid2.通道控制表CHCT每个通道都配有一张通道控制表。通道队列的队尾指针通道队列的队首指针与通道连接的控制器表首址通道状态:忙/闲通道标识符:channelid3.系统设备表SDT

这是系统范围的数据结构,记录了系统中全部设备的情况。驱动程序入口DCT设备标识符设备类表目1表目i……7.4.2设备分配时应考虑的因素一.设备的固有属性

在分配设备时,首先应考虑与设备分配有关的三种设备属性:独占性;共享性;可虚拟设备。独占设备;共享设备;虚拟设备。二.设备分配算法1.先来先去服务。2.优先级高者优先。三.设备分配中的安全性1.安全分配方式

每当进程发出I/O请求后,便进入阻塞状态,直到其I/O操作完成时。2.不安全分配方式

进程在发出I/O请求后仍继续运行,需要时发出第二个I/O请求、第三个I/O请求等。仅当进程所请求的设备已被另一进程占用时,请求进程才进入阻塞状态。摒弃了“请求和保持”条件7.4.3设备独立性一.设备独立性(DeviseIndependence)的概念设备无关性:应用程序独立于具体使用的物理设备

程序员编写的程序无须修改就能读出软盘、硬盘及CD-ROM等不同设备上的文件。不同设备之间的差异由操作系统来处理,操作系统会调用不同的设备驱动程序来真正地将数据读进来。

在应用程序中,使用逻辑设备名称来请求使用某类设备。系统在实际执行时,使用物理设备名称。为实现设备独立性,引入了逻辑设备和物理设备的概念。系统须具有将逻辑设备名称转换为物理设备名称的功能

在实现了设备独立性的功能后,可带来以下两方面的好处:1.设备分配时的灵活性2.易于实现I/O重定向

所谓I/O重定向,是指用于I/O操作的设备可以更换(即重定向),而不必改变应用程序。二.设备独立性软件

驱动程序是一个与硬件(或设备)紧密相关的软件。为实现设备独立性,须在驱动程序上设置一层软件,称为设备独立性软件。对设备驱动程序的接口设备命名设备保护提供一个独立于设备的块大小缓冲块设备的存储分配分配和释放独占设备错误报告设备独立性软件的功能

设备独立性软件的基本功能是执行适用于所有设备的常用I/O功能,并向用户层软件提供一个一致的接口。其主要功能为:1.执行所以设备的公有操作对独立设备的分配与回收将逻辑设备名映射为物理设备名对设备进行保护缓冲管理差错控制2.向用户层(或文件层)软件提供统一接口三.逻辑设备名到物理设备名映射的实现1.逻辑设备名

逻辑设备表LUT用于将应用程序中所使用的逻辑设备名映射为物理设备名。逻辑设备名物理设备名驱动程序入口地址/dev/tty31024/dev/printer52046.........逻辑设备名物理设备名设备驱动程序的入口地址该表包含:2.LUT的设置(1)在整个系统中只设置一张LUT,不允许在LUT中具有相同的逻辑设备名。(2)是为每个用户设置一张LUT,并放入进程的PCB中。逻辑设备名系统设备表指针/dev/tty3/dev/printer5...7.4.4独占设备的分配程序一.基本的设备分配程序1.分配设备2.分配控制器3.分配通道根据I/O请求中的物理设备名,查找系统设备表SDT,从中找出该设备的DCT把设备分配给请求I/O的进程后,再到其DCT中找出与该设备连接的控制器COCT在COCT中又可找到与该控制器连接的通道的CHCT,再根据CHCT内的状态信息,可知该通道是否忙碌

可发现:进程是以物理设备名来提出I/O请求的采用的是单通路的I/O系统结构容易产生“瓶颈”现象二.设备分配程序的改进改进办法:1.增加设备的独立性进程应使用逻辑设备名请求I/O。2.考虑多通路情况为了防止在I/O系统中出现“瓶颈”现象,通常都采用多通路的I/O系统结构。用户空间的I/O软件

大部分I/O软件属于OS,但有一小部分是与用户程序链接在一起的库例程,它们可能完全运行在OS之外。系统调用,包括I/O系统调用通常先是库例程调用。例如C语句:count=write(fd,buffer,nbytes)

所调用的库函数Write将与程序链接在一起,并包含在运行时的二进制代码中。

此类库函数的主要功能是提供参数给相应的系统调用并调用之。是I/O系统的一部分C语言的printf函数

它以一个输入串和一些变量作为输入,它随后调用write,输出格式化后的一个ASCII码串。解决输出格式化

上面描述的是第一类的用户层I/O软件,第二类用户层I/O软件就是Spooling系统。7.4.5SPOOLing技术(SimultaneausPeriphernalOperationsonLine)

通过多道程序技术可将一台物理CPU虚拟为多台逻辑CPU。通过SPOOLing技术可将一台物理I/O设备虚拟为多台逻辑I/O设备。Spooling系统是多道程序设计系统中处理独占I/O设备的一种方法。

通过共享设备来模拟独占设备的动作,使独占型设备成为共享设备,从而提高了设备利用率和系统的效率。什么是SPOOLing技术

为了缓和CPU的高速性与I/O设备低速性间的矛盾而引入了脱机输入、脱机输出技术。

输入设备外围机磁盘磁盘主机磁盘磁盘外围机输出设备

输入设备外围机磁盘磁盘主机磁盘磁盘外围机输出设备当系统引入了多道程序技术后利用一道程序模拟利用另一道程序模拟

这样就可在主机的直接控制下,实现脱机输入、脱机输出功能。把这种在联机情况下实现的同时外围操作称为SPOOLing,或称为假脱机操作。一.SPOOLing系统的组成1.输入井和输出井。输入井是模拟脱机输入时的磁盘设备;输出井是模拟脱机输出时的磁盘;2.输入缓冲区和输出缓冲区输入缓冲区用于暂存由输入设备送来的数据;输出缓冲区用于暂存由输出井送来的数据;3.输入进程SPi和输出进程SPo进程SPi模拟脱机输入时的外围控制机;进程SPo模拟脱机输出时的外围控制机;这是在磁盘上开辟的两个大存储空间这是在内存上开辟的两个缓冲区4.请求打印队列输入进程SPi输出进程SPo输入缓冲区Bi输入缓冲区Bo输入井输出井磁盘输入设备输出设备SPOOLing系统的组成共享打印机

当用户进程请求打印输出时,SPOOLing系统为它做两件事:1.由输出进程在输出井中为之申请一个空闲磁盘块区,并将要打印的数据送入其中。2.输出进程再为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入其中,再将该表挂到请求打印队列上。打印机属于独占设备,可改造为一台可供多个用户共享的设备。请求打印表实际上相当于虚拟的行式打印机二.SPOOLing系统的特点1.提高了I/O的速度2.将独占设备改造为共享设备3.实现了虚拟设备功能实际分给用户进程的不是打印设备,而是共享输出井中的存储区域将独占设备变成多台独占的虚拟设备。Spooling不仅可以应用在打印机上,还可以应用在其他场合。网络上传送文件:发送前,将其放在一特定目录下,由网络精灵进程将其取出发送。7.5设备处理

设备处理程序通常又称为设备驱动程序,它是I/O进程与设备控制器之间的通信程序,又由于它常以进程的形式存在,故以后就简称为设备驱动进程。包括了所有与设备相关的代码。

其主要任务是接收上层软件发来的抽象要求,再把它转换为具体要求后,发送给设备控制器,启动设备去执行;此外,它也由设备控制器发来的信号传送给上层的软件。7.5.1设备驱动程序的功能和特点一.设备驱动程序的功能1.接收由I/O进程发来的命令和参数,并将命令中的抽象要求转换为具体要求。例如:磁盘驱动程序计算出所请求块的物理地址2.检查用户I/O请求的合法性,了解I/O设备的状态,传递有关参数,设置设备的工作方式。例如:磁盘驱动程序检查驱动器电机是否在运转,检测磁头臂是否定位在正确的柱面。3.发出I/O命令

向控制器发送命令,驱动程序向控制器的设备寄存器中写入这些命令。控制命令发出后有两种可能:

1、驱动程序需等待控制器完成一些操作,驱动程序阻塞,直到中断信号到达。

2、操作没有延迟,驱动程序无须阻塞。4.及时响应由控制器或通道发来的中断请求,并根据其中断类型调用相应的中断处理程序。5.对于设置有通道的计算机系统驱动程序还应能够根据用户的I/O请求,自动地构成通道程序。

错误检查后,驱动程序将数据传送给上层的设备无关性软件。最后,它将向它的调用者返回一些关于错误报告的状态信息。二.设备处理方式1.为每一类设备设置一个进程,专门用于执行这类设备的I/O操作。2.在整个系统中设置一个I/O进程,专门用于执行系统中所有各类设备的I/O操作。3.不设置专门的设备处理进程,而只为各类设备设置相应的设备处理程序(模块)。三.设备驱动程序的特点它与一般的应用程序及系统程序之间有下述明显差异:1.驱动程序主要是指在请求I/O的进程与设备控制器之间的一个通信和转换程序。2.驱动程序与设备控制器和I/O设备的硬件特性紧密相关,因而对不同的设备应配置不同的驱动程序。3.驱动程序与I/O设备所采用的I/O控制方式紧密相关。4.由于驱动程序与硬件紧密相关,因而其中的一部分必须用汇编语言书写。7.5.2设备驱动程序的处理过程

能使I/O设备工作的驱动程序和设备中断处理程序。设备驱动程序的处理过程:将抽象要求转换为具体要求检查I/O请求的合法性读出和检查设备的状态传送必要的参数工作方式的设置启动I/O设备设备驱动程序的主要任务是启动指定设备。7.5.3中断处理程序的处理过程

I/O设备完成I/O操作后,设备控制器便向CPU发送一中断请求,CPU响应后,便转向中断处理程序。中断处理程序的处理过程分成以下几个步骤:唤醒被阻塞的驱动(程序)进程保护被中断进程的CPU环境3.转入相应的设备处理程序4.中断处理5.恢复被中断进程的现场线指针PSWRnPC(N+1)R0TYT+MPSWPC(N+1)R0…Rn…程序状态字程序计数器用户程序中断服务子例程中断栈……开始返回NN-1寄存器中断现场保护示意图唤醒被阻塞的驱动程序进程对被中断进程的CPU环境进行保护分析中断原因,转入相应的中断处理程序终端中断处理程序打印机中断处理程序磁盘中断处理程序中断请求信号恢复被中断进程的CPU现场返回被中断的进程,继续执行……中断处理流程7.6磁盘存储器管理7.6.1磁盘性能简述一.磁盘的组织和格式

在每条磁道上可存储相同数目的二进制位。磁道密度即每英寸所存储的位数。内层磁道的密度较外层磁道的密度高。每个扇区包括两个字段:标识符字段数据字段SynchByteBytes1211315122

SectorPhysicalSector0PhysicalSector1PhysicalSector29BytesGap1Gap2Gap3Gap1Gap2Gap3Gap1Gap2Gap3IDField0DataField0IDField29IDField29DataField29DataField29600

Bytes/Sector177415152017741515201774151520Track#Head#Sector#CRCSynchByteDataCRC磁盘的格式化二.磁盘的类型1.固定头磁盘

每条磁道上都有一读/写磁头,所有的磁头都被装在一钢性磁臂中。2.移动头磁盘每一个盘面仅配有一个磁头,也被装入磁臂中。三.磁盘访问时间1.寻道时间TsTs=m×n+s把磁臂(磁头)移动到指定磁道上所经历的时间。2.旋转延迟时间Tτ是指定扇区移动到磁头上面所经历的时间。3.传输时间Tt把数据从磁盘读出或向磁盘写入数据所经历的时间。Tt=brN

当一次读/写的字节数相当于半条磁道上的字节数时,Tt与Tτ相同,因此,可将访问时间Ta表示为:Ta=Ts++2r1brNr为磁盘每秒钟的转速;N为一条磁道上的字节数

例如,寻道时间和旋转延迟时间平均为20ms,磁道的传输速率为10MB/s。如果要传输10KB?7.6.2磁盘调度1.先来先服务FCFS(First-come,FirstServed)

它根据进程请求访问磁盘的先后次序进行调度。平均寻道长度:55.35545583391918219072160701501038112184146

被访问的下移动距离一个磁道号(磁道数)(从100号磁道开始)二.最短寻道时间优先SSTF(ShortestSeekTimeFirst)

该算法选择这样的进程,其要求访问的磁道,与当前磁头所在的磁道距离最近,以使每次的寻道时间最短。平均寻道长度:27.590105832553391638118201501321601018424

被访问的下移动距离一个磁道号(磁道数)(从100号磁道开始)三.扫描(SCAN)算法1.进程“饥饿”现象SSTF算法可导致某个进程发生“饥饿”(Starvation)现象。2.SCAN算法

该算法不仅考虑到欲访问的磁道与当前磁道间的距离,更优先考虑的是磁头当前的移动方向。由于在这种算法中磁头移动的规律颇似电梯的运行,因而又常称之为电梯调度算法。平均寻道长度:27.81505016010184249094583255339163811820

被访问的下移动距离一个磁道号(磁道数)(从100#磁道开始,向磁道号增加的方向访问)SCAN调度算法示例四.循环扫描(CSCAN)算法SCAN算法存在的问题

当磁头刚从里向外移动而越过了某一磁道时,恰好又有一进程请求访问此磁道,这时,该进程必须等待,待磁头继续从里向外,然后再从外向里扫描完所有要访问的磁道后,才处理该进程的请求。CSCAN算法规定磁头单向移动平均寻道长度:27.515050160101842418166382039155165839032

被访问的下移动距离一个磁道号(磁道数)(从100#磁道开始,向磁道号增加的方向访问)CSCAN调度算法示例五.N-Step-SCAN和FSCAN调度算法1.N-Step-SCAN算法

在SSTF、SCAN和CSCAN几种调度算法中,都可能出现磁臂停留在某处不动。N步SCAN算法是将磁盘请求队列分成若干个长度为N的子队列,磁盘调度将按FCFS算法依次处理这些子队列。而每处理一个队列时又是按照SCAN算法。磁臂粘着2.FSCAN算法

将磁盘请求队列分成两个子队列。一个是由当前所有请求磁盘I/O的进程形成的队列,由磁盘调度按SCAN算法进行处理;在扫描期间将新出现的所有请求磁盘I/O的进程,放入另一个等待处理的请求队列。N步SCAN算法的简化7.6.3磁盘高速缓存一.磁盘高速缓存的形式

磁盘高速缓存指利用内存中的存储空间,来暂存从磁盘中读出的一系列盘块中的信息。高速缓存是一组在逻辑上属于磁盘,物理上是驻留在内存中的盘块。在内存中开辟一个单独的存储空间来作为磁盘高速缓存,其大小是固定的。把所有未利用的内存空间变为一个缓冲池,供请求分页系统和磁盘I/O时(作为磁盘高速缓存)共享。提高磁盘I/O的速度二.数据交付方式

数据交付是指将磁盘高速缓存中的数据传送给请求者进程。数据交付。这是直接将高速缓存中的数据,传送到请求者进程的内存工作区中。指针交付。只将指向高速缓存中某区域的指针,交付给请求者进程。

在将磁盘中的盘块数据读入高速缓存时,因高速缓存中已装满盘块数据而需将高速缓存中的数据换出。

除了考虑到最近最久未使用这一原则外还考虑了以下几点:访问频率可预见性数据的一致性三.置换算法

那些经常要被访问的盘块数据,可能会一直保留

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论