Presentation is loading. Please wait.

Presentation is loading. Please wait.

操作系统原理与设计 Operating Systems: Design and Implementation

Similar presentations


Presentation on theme: "操作系统原理与设计 Operating Systems: Design and Implementation"— Presentation transcript:

1 操作系统原理与设计 Operating Systems: Design and Implementation
系别:计算机科学技术学院 主讲:熊焰 电话: 邮箱: 2019/4/5

2 第五章 设备管理 5.1 概述 设备:泛指计算机系统中的外部设备,即除主机以外的其他所有设备。
设备的分类:可以从不同的角度对外部设备进行分类。 (1)基于设备的从属关系,可以把系统中的设备分为: 1.系统设备:在os生成时已登记于系统中的标准设备。 2.用户设备:在os生成时未已登记于系统中的非标准设备。 (2)基于设备的分配特性,可以把系统中的设备分为: 1.独享设备:临界资源,使用时有排它性,例如打印机; 2019/4/5

3 第五章 设备管理 2.共享设备:一段时间内允许多个进程同时访问,例如磁盘。
3.虚拟设备:通过虚拟技术将一台独占设备变换为若干台逻辑设备,供若干用户(进程)使用,例如spooling 技术。 4.spooling 技术:人们常通过共享设备来模拟独占型设备的动作,使独占型设备成为共享设备,从而提高了设备利用率和系统的效率,这种技术被称为虚拟设备技术,实现这一技术的硬件和软件系统被称为SPOOL,或称为假脱机系统。假定某系统的全部行式打印机采用了虚拟设备技术(即使用了SPOOL技术),当某进程要求打印输出时,输出SPOOL并不是把某台打印机分配给该进程,而是在某共享设备(磁盘)上的输出SPOOL存储区中,为其分配一块存储空间,同时为该进程的输出数据 2019/4/5

4 第五章 设备管理 建立一个文件。该进程的输出数据实际上并未从打印机上输出,而只是以文件形式输出,并暂存放在输出SPOOL存储区中。这个输出文件实际上相当于虚拟的行式打印机。各进程的输出都以文件形式暂时存放在输出SPOOL存储区中并形成了一个输出队列,由输出SPOOL控制打印机进程,依次将输出队列中的各进程的输出文件最后实际地打印输出。 5.SPOOL系统的特点: 1)用户进程并未真正分得打印机,或者说打印机并未分给某个进程独占地使用。 2)用户进程实际被分配的不是打印设备,而是共享设备中的一个存储区,即虚拟设备。 3)独享设备使用效率提高了,从而系统效率也提高了。 2019/4/5

5 第五章 设备管理 6.SPOOL的程序结构大致可描述如下:
begin repeat if “输出队列为空” then WAIT “从输出队列取下一个文件”; “打开该文件”; begin repeat “从磁盘缓冲区中读一文件行”; “打印该文件输出行”; “等待打印机完成中断”; until (end of file) end forever end 2019/4/5

6 第五章 设备管理 本程序中主要是输出SPOOL的打印发送部分 ––– 将输出队列中的文件逐个打印输出。通常还应有接收部分 ––– 将用户进程的输出放入输出队列,并为之建立输出文件。这部分可与文件系统结合,在此从略。 (3)基于设备的工作特性,可以把系统中的设备分为: 1.输入/输出设备:键盘、鼠标、打印机等。 2.存储设备:硬盘、磁带机、U盘、移动硬盘等。 (4)基于设备的传输速率,可以把系统中的设备分为: 1.低速:如键盘、鼠标等; 2.中速(每秒数千至数万字节):如打印机等; 3.高速:如光盘机、磁盘机等。 2019/4/5

7 第五章 设备管理 (5)基于信息交换的单位,可以把系统中的设备分为:
1.块设备(Block Device):存取信息以数据块为单位,存取可寻址,属于有结构设备,如磁盘; 2.字符设备(Character Device):属于无结构设备,速率较低,不可寻址,如打印机等。 设备管理的目标、任务与功能: (1)设备管理的目标: 1.提高外部设备的利用率; 2.为用户提供便利、统一的使用界面; (2)设备管理的任务: 1.按照用户的请求,控制设备的各种操作,完成I/O设备与内存之间的数据交换(包括设备分配与回收;设备驱动程序;设备中断处理;缓冲区管理),最终完成用户的I/O请求。 1) 选择和分配I/O设备,以便进行数据传输操作; 2) 控制I/O设备与内存之间交换数据。 2019/4/5

8 第五章 设备管理 2.向用户提供使用外部设备的方便接口,使用户摆脱繁琐的编程负担。 1)方便性; 2)友好界面; 3)透明性。
3.充分利用各种技术(通道,中断,缓冲等)提高CPU与设备、设备与设备之间的并行工作能力,充分利用资源。 1)并行性;为了提高设备利用率和系统效率,设备管理的设计应能使各设备的数据传输与CPU运行能高度重叠,使各设备充分地并行工作。 2)均衡性(使设备充分忙碌):由于输入输出操作往往成为计算机系统中的“瓶颈”部分,因此设备管理设计应尽可能地使设备有效地工作。 2019/4/5

9 第五章 设备管理 4.保证在多道程序环境下,当多个进程竞争使用设备时,按一定策略分配和管理各种设备,使系统能有条不紊的工作。
5.与设备无关性(设备独立性),用户在编制程序时,使 用逻辑设备名,由系统实现从逻辑设备到物理设备(实际设备)的转换,用户能独立于具体物理设备而方便的使用设备。用户申请使用设备时,只需要指定设备类型,而无须指定具体物理设备,系统根据当前的请求,及设备分配的情况,在相同类别设备中,选择一个空闲设备,并将其分配给一个申请进程。 6.对不同的设备采取统一的操作方式,以方便用户程序中使用逻辑设备。 7.设备忙碌或设备故障时,用户不必修改程序,改善了系统的可适应性和可扩展性。 (3)设备管理的功能: 2019/4/5

10 第五章 设备管理 1.提供一组统一的且独立于设备的I/O命令,以便用户进程能够在程序一级发出所需要的I/O请求,这就是用户使用外部设备的“界面”; 2.进行设备的分配与回收; 3.对缓冲区管理; 4.实现真正的I/O操作; 5.处理外部设备的中断。 设备的物理特性差异: (1)数据传输率; (2)数据表示方式; (3)传输单位; (4)出错条件; 2019/4/5

11 第五章 设备管理 设备绝对号、相对号、类型号:
(1)绝对号:一个计算机系统中的可配置有多种类型的外设,而同一类型的外设又可有多台。通常将系统中的每一台设备按某种原则进行编号,这些编号就作为硬件 区分和识别设备的代号,称为设备的绝对号。 (2)类型号:因为用户不可能知道哪一台正被使用,那台空闲,所以为提高利用率,避免多道程序中用户使用设备时发生矛盾,把调度和管理外设的工作交给os完成,用户使用外设时,只需向系统说明所需使用的设备类型即可,至于实际使用的该类设备的那一台,由os去调度,引出设备类型号-为每一类外设规定的编号。 (3)相对号:标识的方法类似于存储管理中的相对地址,是用户自己规定并使用系统能了解他要使用的是这 2019/4/5

12 第五章 设备管理 台同类设备中的哪一台(通常用一个整数来表示)。例如Lp 代表行式打印机,Lp1 代表行式打印机第一台。优点:方便用户编程,提高了设备的利用率。 5.2 I/O系统 I/O系统:是实现数据输入、输出及数据存储的系统。也是计算机系统的一个重要组成部分。包括实现信息输入、输出和存储功能的设备和相应设备控制器;在有些大型系统中,还有I/O通道或I/O处理机,设备管理的对象主要是I/O设备,还可能涉及设备控制器和I/O通道。 I/O 操作:计算机的主存和外围设备的介质之间的信息传送操作。 设备与CPU之间的接口:通常设备并不与CPU直接通信,而是通过设备控制器,接口示意图如下: 2019/4/5

13 第五章 设备管理 缓冲 转换器 控制逻辑 I/O设备 数据信号线 状态信号线 控制信号线 信号数据 至设备控制器 2019/4/5

14 第五章 设备管理 (1)数据信号线:用于传送数据信号。 (2)控制信号线:由设备控制器向I/O设备发送控制信号的通路。
(3)状态信号线:传送当前设备状态信号。状态有:读、写、读(写)完成并准备好新的数据传送。 5.3 设备控制器: 设备控制器: I/O设备包括一个机械部件和一个电子部件。为了达到设计的模块性和通用性,一般将其分开。机械部件则是设备本身,而电子部件称为设备控制器或适配器,在微机和小型机中,它通常是一块可插入主板扩展槽的印刷电路板,也叫接口卡。它是CPU与I/O设备之间的硬件接口,它接收从CPU发来的命令,并去控制一个或多个设备。 设备控制器的基本功能: 2019/4/5

15 第五章 设备管理 (1)接收和识别命令:设备控制器应能接收和识别CPU发来的命令,由于命令可能带有参数,所以控制器应设有寄存器(当然必须要有命令译码器)。 (2)数据交换:控制器设有数据寄存器用于双向数据交换。 (3)标识和报告设备状态:控制器设有状态寄存器,用于记录设备状态,供CPU使用。 (4)地址识别:控制器应配有地址译码器以识别设备地址。 (5)数据缓冲:由于CPU和设备间速度不匹配,所以控制器应具有缓冲功能。 (6)差错控制:对I/O设备送来的数据进行差错检测,并向CPU报告。 设备控制器的组成: 2019/4/5

16 第五章 设备管理 (1)命令寄存器及译码器, (2)数据寄存器, (3)状态寄存器, (4)地址译码器,
(5)用于对设备操作进行控制的I/O逻辑。 操作系统与控制器打交道,而非设备本身。多数PC的CPU和控制器之间的通信采用单总线模型,CPU直接控制设备控制器进行I/O;而大型主机则采用多总线结构和通道方式,以提高CPU与输入输出的并行程度。 控制器的工作过程: (1)设备的I/O地址分配由控制器上的总线解码逻辑完成。 (2)控制器通过中断通知CPU已经做好准备,寄存器可以读写。 2019/4/5

17 第五章 设备管理 2019/4/5

18 第五章 设备管理 2019/4/5

19 第五章 设备管理 (3)OS通过向控制器寄存器写命令字来执行I/O功能。
(4)控制器接受一条命令后,CPU可以转向其它工作,而设备控制器自行完成具体的I/O操作。 (5)当命令执行完毕后,控制器发出一个中断信号,以便OS重新获得CPU的控制权并检查执行结果。 (6)设备控制器是CPU和设备之间的一个接口,它接收从CPU发来的命令,控制I/O设备操作,实现主存和设备之间的数据传输。 (7)设备控制器是一个可编址设备,当它连接多台设备时,则应具有多个设备地址。 5.4 总线系统 计算机系统中的各部件如CPU、内存以及各种I/O设备之间的联系,都是通过总线来实现的。总线性能是用时钟频率、带宽和相应的总线传输速率来衡量。 (1)ISA(Industry Standard Architecture):早期带宽 2019/4/5

20 第五章 设备管理 8位,2Mb/s速率,后为16位,16Mb/s速率。
2.EISA(Extended ISA):带宽32位,速率32Mb/s。 3.局部总线:是指将多媒体卡、高速LAN网卡、高性能显示卡等,从总线上分离,通过局部总线控制器,直接接到CPU总线上,使之具有高速数据交换能力。 4.VESA(Video Electronic Standard Association):32位,可达132Mb/s,但控制器无缓冲,且连Pentium也不支持。 5.PCI(Peripheral Component Interface):支持64位系统,它在CPU和外设之间加了一层复杂的管理系统,用于协调数据传输和提供一致的接口。能适应高频率的CPU。 新一代计算机出现,带来了总线技术的更新: 2019/4/5

21 SCSI总线 USB总线 (1)微型计算机总线的种类和发展: PCI总线 VESA总线 EISA总线 MCA总线 ISA总线 PC/XT总线
(?) (过时) (1)微型计算机总线的种类和发展: 2019/4/5

22 第五章 设备管理 USB技术:USB(Universal Serial Bus)通用串行总线,是一种连接I/O串行设备的技术标准。
(1)由于I/O设备的接口标准的不一致和有限的接口数量已无法满足各种应用迫切需要;传统的I/O设备的接口无法满足实时数据传输与多媒体应用的需求。 (2)USB以WDM(Windows Driver Model)模型为基础,WDM包含一套通用的I/O服务和二进制兼容的设备驱动程序。 (3)USB支持同步数据传输方式和异步数据传输方式,其数据传输率有低速1.5Mbps和全速12Mbps两种,比标准串口快100倍,比标准并口快10倍。 2019/4/5

23 第五章 设备管理 (4)USB可以主动为外部设备提供电源,允许外部设备快速连接,具有即插即用的功能。 (5)允许外部设备的热插拔。
(6)控制器的功能:控制器主要负责执行由控制器驱动程序发出的命令。 (7)控制器驱动程序:控制器驱动程序在控制器与USB设备之间建立通信信道。 (8)USB芯片驱动程序:USB芯片驱动程序提供了对USB的支持。 (9)USB设备分为两类: 1.USB集线器:本身可再接其他USB外围设备。 2.USB设备:连接在计算机上用来完成特定功能并符合USB规范的I/O设备单元,如鼠标、键盘等。 (10)4种不同的数据传输方式: 2019/4/5

24 第五章 设备管理 1.等时传输方式:以固定的传输速率,连续不断传输数据,发生错误时,USB不处理,而是继续传送新的数据。用于需要连续传输,且对数据的正确性要求不高而对时间极为敏感的外部设备,如麦克风、音箱以及电话等。 2.中断传输方式:该方式传送的数据量很小,但这些数据需要及时处理,以达到实时效果,此方式主要用在键盘、鼠标以及游戏手柄等外部设备上。 3.控制传输方式:主机控制USB设备的数据传输,包括设备控制指令发布、设备状态查询及确认命令。当USB设备收到这些数据和命令后将按照先进先出的原则按队列方式处理到达的数据。 4.批传输方式:用来传输要求正确无误的数据。通常打印机、扫描仪和数码相机以这种方式与主机连接。除等时传输方式外,其他3种方式在数据传输发生错误时,都会试图重新发送数据以保证其准确性。 2019/4/5

25 第五章 设备管理 SCSI接口技术: (1)小型计算机系统接口(Small Computer System Interface):一个SCSI I/O设备控制器,可将新型高速I/O设备增加到计算机系统中。 (2)SCSI 设备控制器的智能化I/O控制:降低了计算机系统的负担,使计算机系统具有更高的I/O能力。 2019/4/5

26 第五章 设备管理 2019/4/5

27 第五章 设备管理 5.5 I/O控制方式 程序I/O控制方式:即CPU不断测试,等待数据的到来。当用户进程输入数据时,CPU将设备状态寄存器忙/闲busy位置成1,并向设备控制器发出指令。然后不断测试busy位,直至设备将数据送入控制器并将busy置0后,才将数据取走。 中断驱动I/O控制方式:进程要求启动某I/O设备进行输入时,由CPU向相应设备控制器发出一条I/O指令,然后阻塞用户进程;当相应I/O设备完成输入工作时,设备控制器向CPU发送中断信号,CPU响应中断,并将数据送至内存指定单元中,唤醒被阻塞的进程。虽然CPU与设备并行工作,但CPU响应中断要有开销。 直接存储控制访问(DMA)I/O控制方式:进程要求设备输入数据时,CPU将I/O命令及有关信息发到DMA控制器,等待阻塞用户进程,然后CPU调度给其它进程。DMA 2019/4/5

28 第五章 设备管理 通过挪用CPU存储器周期,将数据传送到内存指定位置,传送完毕后,发出中断,CPU响应中断,进行处理,并唤醒用户进程。
I/O通道控制方式:进程发出I/O请求时,CPU向I/O通道发出一条I/O指令,用户进程阻塞等待I/O完成。通道完成任务后发出中断,CPU响应中断,进行处理并唤醒用户进程。DMA以数据块为单位传送数据,而I/O通道以一组数据块为单位。 5.6 I/O通道(Channel) 为减轻CPU的负担,引入I/O通道,由其负责控制外围设备,CPU只要向它发命令即可。I/O通道也是一种I/O处理机,但指令类型单一,硬件较简单与CPU共享内存。 通道类型:由于外围设备有多种类型,所以根据信息交换方式,可把通道分成三类: 2019/4/5

29 第五章 设备管理 (1)字节多路通道(Byte Multiplexor Channel):按字节交叉方式工作,每个通道完成一个字节交换后便让出通道。 控制器A 控制器B 控制器C 控制器n A1A2A3... B1B2B3... C1C2C3... A1B1C1…A2B2C2 ... 设备 2019/4/5

30 第五章 设备管理 (2)数组选择通道(Block Selector Channel):字节多路通道不适于连接高速设备,推动了按数组方式进行数据传送的数组选择通道的形成。这种通道虽然可以连接多台高速设备,但只含有一个分配型子通道,在一段时间内只能执行一道通道程序,且独占方式,直至该设备传送完毕释放该通道。 (3)数组多路通道(Block Multiplexor Channel):这是将数组选择通道的高速和字节多路通道的分时并行结合起来的一种新通道。 瓶颈问题:通道比设备少,因而造成数据交换阻塞。 5.7 I/O软件原理 I/O软件的设计目标: (1)高效率。 (2)通用性。 2019/4/5

31 第五章 设备管理 I/O软件设计需考虑的问题: (1)设备无关性。 (2)出错处理。 (3)同步(阻塞)—异步(中断驱动)传输。
(4)独占性外围设备和共享性外围设备。 I/O软件的四个层次: (1)I/O中断处理程序。 (2)设备驱动程序。 (3)与设备无关的操作系统I/O软件。 (4)用户层I/O软件。 I/O中断处理程序: (1)输入输出中断的类型: 1.通知用户程序I/O操作沿链推进程; 2019/4/5

32 第五章 设备管理 2.通知用户程序I/O操作正常结束; 3.通知用户程序发现的I/O操作异常; 4.通知程序外围设备上重要的异步信号。
(2)输入输出中断事件处理: 1.操作正常结束处理; 2.操作发生故障或特殊事件的中断处理; 3.人为要求而产生的中断处理; 4.外围设备的异步信号处理。 设备驱动程序: (1)设备驱动程序包括与设备相关的代码,它的工作是:把用户提交的逻辑I/O请求转化为物理I/O操作的启动和执行,如设备名转化为端口地址、逻辑记录转化为物理记录、逻辑操作转化为物理操作等。 2019/4/5

33 第五章 设备管理 (2)设备驱动程序从与设备无关的软件中接收抽象的I/O请求,一条典型的请求是读第n块。
(3)如果请求到来时驱动程序空闲,则立即执行。如果它正在处理另一条请求,它将该请求挂在等待队列中。 与硬件无关的操作系统I/O软件: (1)设备无关软件完成的功能: 1.设备驱动程序的统一接口; 2.设备命名; 3.设备保护; 4.提供独立于设备的块大小; 5.缓冲区管理; 6.块设备的存储分配; 7.独占性外围设备的分配和释放; 2019/4/5

34 第五章 设备管理 8.错误报告; 9.文件和I/O设备的命名方式; 10.禁止设备的未授权访问;
11.屏蔽不同磁盘扇区大小并向高层软件提供统一大小的逻辑块; 12.块设备和字符设备需要缓冲技术; 13.错误处理多数由驱动程序完成。 用户空间的I/O软件: (1)库例程实现的I/O系统调用:I/O系统调用通常先是库例程调用 (2)非库例程实现的I/O系统调用:spooling系统 I/O系统各层软件及其功能: 2019/4/5

35 第五章 设备管理 用户进程 进行I/O调用;格式化I/O;SPOOLING 设备无关软件 命名;保护;阻塞;缓冲;分配 设备驱动程序
建立设备寄存器;检查状态 硬件 执行I/O操作 中断处理程序 当I/O结束时,唤醒驱动程序 层次 I/O应答 I/O功能 I/O请求 2019/4/5

36 第五章 设备管理 5.8 具有通道的I/O系统管理 具有通道的计算机系统,I/O程序设计涉及:CPU执行I/O指令,通道执行通道命令,以及CPU和通道之间的通信。 通道命令和通道程序: (1)通道命令: 1.通道具有自己的指令系统,它的指令常称通道命令。 2.通道命令CCW是通道从主存取出并控制I/O设备执行I/O操作的命令字,用CCW编写的程序称通道程序,通道程序由多条通道命令组成,每次启动可以完成复杂的I/O控制。 3. IBM370系统的通道命令: 命令码 数据主存地址 标志码 传送字节个数 2019/4/5

37 第五章 设备管理 4.通道命令字段:命令码;数据主存地址;标志码 ;传送字节个数。
5.标志码:定义通道程序的链接方式,32位至33位为:数据链、命令链。32和33位均为0,称无链;为01时,称命令链;32位为1时,称数据链。 6.汇编格式通道程序例子: CCW X’02’ ,inarea , X’40’ , 80 CCW X’02’ , * , X’40’ , 80 CCW X’02’ ,inarea +80, X’40’ , 80 CCW X’02’ , * , X’40’ , 80 CCW X’02’ ,inarea +160, X’40’ , 80 inarea DS CL240 通道地址字和通道状态字:采用通道方式进行I/O时,要使用这两个固定存储单元。 2019/4/5

38 第五章 设备管理 (1)通道地址字CAW(Channel Address Word);用来存放通道程序的首地址的单元称通道地址字。
(2)通道状态字CSW(Channel Status Word):是通道向操作系统报告情况的汇集。通道利用通道状态字可以提供通道和外围设备执行I/O操作的情况和状态。 (3)通道状态字的字段:通道命令地址;设备状态;通道状态;剩余字节个数。 I/O指令和主机I/O程序: (1)I/O指令:启动I/O(Start I/O,SIO);查询I/O(Test I/O,TIO);查询通道(Test Channel,TCH);停止I/O(Halt I/O,HIO) 和停止设备(Halt Device,HDV);它们都是特权指令。 (2)执行一次I/O操作的步骤: 1.确定I/O任务,了解使用何种设备,属于哪个通道,操 2019/4/5

39 第五章 设备管理 作方法如何等。 2.确定算法,决定例外情况处理方法。 3.编写通道程序,完成相应I/O操作。
5.采用双缓冲把磁带上的记录在打印机上输出: START BALR 11,0 USING *,11 SSM = X’00’ /*开中断 LA 8,READ0 ST 8,CAW SIO X’0182’ /*启动磁带机反绕 BC 7,* /*循环直到启动 TIO X’0182’ 2019/4/5

40 第五章 设备管理 LA 8,READ2 BC 7,*-4 /*测试直到磁带完成反绕 LOOP LA 8,READ1 ST 8,CAW
SIO X’0182’ /*启动磁带读入缓冲1 BC 7,*-4 TIO X’0182’ BC 7,* /*测试直到磁带完成 LA 8,PRINT1 TIO X’00E’ BC 7,* /*测试直到缓冲2打印完 SIO X’00E’ /*启动行印机印缓冲1的内容 LA 8,READ2 SIO X’0182’ /*启动磁带读入缓冲2 2019/4/5

41 第五章 设备管理 通道启动和I/O操作过程:
BC 7,*-4 TIO X’0182’ BC 7,* /*测试直到磁带完成 LA 8,PRINT2 ST 8,CAW TIO X’00E’ /*查询行印机 BC 7,* /*测试直到缓冲1打印完 SIO X’00E’ /*启动行印机印缓冲1的内容 B LOOP READ0 CCW X’07’ , * , X’20’ ,1 READ1 CCW X’02’ ,BUFFER1, X’00’ ,512 READ2 CCW X’02’ ,BUFFER2, X’00’ ,512 通道启动和I/O操作过程: (1)CPU是主设备,通道是从设备,CPU和设备之间是主从关系,需要相互配合协调才能完成I/O操作。 2019/4/5

42 第五章 设备管理 (2)通道方式I/O过程三个阶段:I/O启动阶段;I/O操作阶段;I/O结束阶段。 (3)通道方式I/O:见图。
5.9 缓冲技术 引入缓冲技术的目的: (1)改善中央处理器与外围设备之间速度不配的矛盾; (2)协调逻辑记录大小与物理记录大小不一致, (3)提高CPU和I/O设备的并行性。 缓冲区设置: (1)硬缓冲:在设备中设置缓冲区,由硬件实现; (2)软缓冲:在内存中开辟一个空间,用作缓冲区。 缓冲技术实现基本思想: (1)进程执行写操作输出数据时,向系统申请一个缓冲 2019/4/5

43 第五章 设备管理 中央处理器 通道 用户程序 操作系统 执行规定 I/O操作 控制器和 设备结束 中断 I/O控制器和设备 进程j 进程k
组织CCW CCW首址送CAW 发SIO 分析条件码 出错进行处理 启动成功进程j等待 选进程K运行 保护进程K现场 分析中断文件 处理I/O中断 选择进程运行 判断状态形成 条件码 执行CCW 控制设备操作 记录操作状态 到CSW 产生中断事件 CSW存入主存 通道号、设备号 存入主存特定 单元 发I/O中断 执行规定 I/O操作 控制器和 设备结束 中断 通道 I/O控制器和设备 请求I/O 进程j 进程k 进程j或k 2019/4/5

44 第五章 设备管理 区,若为顺序写请求,则不断把数据填到缓冲区,直到被装满。此后,进程继续它的计算,系统将缓冲区内容写到I/O设备上。
(2)进程执行操作输入数据时,向系统申请一个缓冲区,系统将一个物理记录的内容读到缓冲区,根据进程要求,把当前需要的逻辑记录从缓冲区中选出并传送给进程。 (3)在输出数据时,只有在系统还来不及腾空缓冲而进程又要写数据时,它才需要等待; (4)在输入数据时,仅当缓冲区空而进程又要从中读取数据时,它才被迫等待。 5.9.1 单缓冲 单缓冲机制如下:在请求I/O的用户进程和设备之间设置一个缓冲区。在块设备输入时,CPU对前一块数据的处理可与设备将下一块数据输入到缓冲区并行执行。字 2019/4/5

45 第五章 设备管理 符设备输入时,缓冲区用来存一行数据(或一个字符),输入期间,进程被挂起;输出时,用户进程将一行数据(或一个字符)放入缓冲区后,可继续执行程序,在缓冲区数据未取完而进程又要输出时,进程将被挂起。 5.9.2 双缓冲 输入数据时,首先填满缓冲区1,操作系统可从缓冲区1把数据送到用户进程区,用户进程便可对数据进行加工计算;与此同时,输入设备填充缓冲区2;当缓冲区1空出后,输入设备再次向缓冲区1输入。操作系统又可把缓冲区2的数据传送到用户进程区,用户进程开始加工缓冲2的数据。 5.9.3 循环缓冲 如果CPU处理数据的速度大于数据输入/输出的速度,即使在双缓冲情况下,用户进程也常因等待操作的完成而 2019/4/5

46 第五章 设备管理 阻塞,通常使用多于两个的缓冲区来改善这种情况,由于它们常被组成成环形,故称其为循环缓冲。 5.9.4 缓冲池
单缓冲、双缓冲和循环缓冲,仅适用某特定的I/O进程和计算机进程,都属于专用缓冲。缓冲池中设置有若干缓冲区,每个缓冲区既可输入也可输出,且供各进程共享。通常缓冲池排成空闲缓冲区队列、输入队列和输出队列三个队列。输入(输出)数据装入空闲缓冲区后,挂到输入(输出)队列,而输入(输出)队列的缓冲区数据得到交换后,缓冲区排入空闲队列。Unix I/O字符缓存队列: 2019/4/5

47 第五章 设备管理 5.10 即插即用技术(Plug and Play)
PnP技术:是计算机系统I/O设备与部件配置的应用技术。顾名思义:插入就可用,不需要进行任何设置操作。 PnP技术的产生:由于一个系统可以配置多种外部设备,设备也经常变动和更换,它们都要占有一定的系统资源,彼此间在硬件和软件上可能会产生冲突。因此在系统中要正确地对它们进行配置和资源匹配;当设备撤除、添置和进行系统升级时,配置过程往往是一个困难的过程。 PnP技术的特点: (1)支持I/O设备及部件的自动配置,使用户能够简单方便地使用系统扩充设备; (2)减少由制造商装入的种种用户支持和限制,简化部件的硬件跳接设置,使I/O附加卡和部件不再具有人工 2019/4/5

48 第五章 设备管理 跳接线设置电路。 (3)在主板和附加卡上保存系统资源的配置参数和分配状态,有利于系统对整个I/O资源的分配和控制。
(4)支持和兼容各种操作系统平台,具有很强的扩展性和可移植性。 (5)在一定程度上具有“热插入”、“热拼接”技术。 PnP技术的功能: (1)附加卡的识别与确认。 (2)资源分配。 (3)附加卡自动配置。 多方支持:具有PnP功能的操作系统、配置管理软件、软件安装程序、设备驱动程序等;网络设备的PnP支持;系统平台的支持(如PnP主板、控制芯片组和PnP BIOS等);各种支持PnP规范总线的I/O控制卡和部件。 2019/4/5

49 第五章 设备管理 5.11 驱动调度技术 驱动调度能减少多个I/O请求服务所需的总时间,提高系统效率、除了I/O请求的优化排序外,信息在辅助存储器上的排列方式,存储空间分配方法都能影响存取访问速度。 存储设备的物理结构: (1)顺序存取存储设备是严格依赖信息的物理位置进行定位和读写的存储设备; (2)具有存储容量大、稳定可靠、卷可装卸和便于保存等优点 。 始点 1 2 3 i i+1 末点 … … 磁头(正走,反走,正读,反读,正写,反写,倒带) 2019/4/5

50 第五章 设备管理 (3)直接存取存储设备: 1.磁盘是一种直接(随机)存取存储设备。每个物理记录有确定的位置和唯一的地址,存取任何一个物理块所需的时间几乎不依赖于此信息的位置。访问磁盘记录参数:柱面号、磁头号、块号。 2.查找时间:磁盘根据柱面号控制臂作机械横向移动,带动读写磁头到达指定柱面。 3.搜索延迟:从磁头号可确定数据所在的盘面,等待被访问信息块旋转到读写头下,按块号进行存取。 4.磁盘机实现操作的通道命令:查找、搜索、转移和读写。 循环排序: (1)考虑磁道保存4个记录的旋转型设备,假定收到四个I/O请求: 2019/4/5

51 第五章 设备管理 请求次序 记录号 1 读记录4 2 读记录3 3 读记录2 4 读记录1 (2)多种I/O请求排序方法:
请求次序 记录号 读记录4 读记录3 读记录2 读记录1 (2)多种I/O请求排序方法: 方法1:按照I/O请求次序读记录4、3、2、1,平均用1/2周定位,逆时针旋转,1/4周读出记录,总处理时间等于3周,即60毫秒。1/2+1/4+1/2+1/4+1/2+1/4+1/2+1/4 方法2:如果次序为读记录1、2、3、4。总处理时间等于1.5周,即30毫秒。1/2+1/4+1/4+1/4+1/4=1.5 方法3:如果知道当前读位置是记录3尾部,则采用次序为读记录4、1、2、3。总处理时间等于1周,即20毫秒。 2019/4/5

52 第五章 设备管理 优化分布: (1)信息在存储空间的排列方式会影响存取等待时间。考虑10个逻辑记录A,B……,J被存于旋转型设备上,每道存放10个记录,安排如下: 物理块 逻辑纪录 A-J (2)处理10个记录的总时间:10毫秒(移动到记录A的平均时间)+ 2毫秒(读记录A)+4毫秒(处理记录A)+9×[16毫秒(访问下一记录) +2毫秒(读记录)+4毫秒(处理记录)]=214毫秒。A BC DEFGHIJ (3)按照下面方式对信息优化分布: 物理块 逻辑纪录 A H 2019/4/5

53 第五章 设备管理 E B I F C J G D (4)处理10个记录的总时间为:10毫秒(移动到记录A的平均时间)+10×[2毫秒(读记录)+4毫秒(处理记录)]=70毫秒。 交替地址: (1)每个记录重复记录在设备的多个区域,读相同的数据,有几个交替地址,也称为多重副本或折迭。 2019/4/5

54 第五章 设备管理 (2)成功与否取决于下列因素:数据记录总是读出使用,不需修改写入;数据记录占用的存储空间总量不太大;数据使用极为频繁。
搜索定位: (1)移臂调度有若干策略: 1.“电梯调度”算法 2.“最短查找时间优先”算法 3.“扫描”算法 4.“分步扫描”算法 5.“单向扫描”算法 (2)“电梯调度”算法: 1.选择沿臂的移动方向最近的柱面,如果同一柱面上有多个请求,还需进行旋转优化。 2.如果这个方向没有访问请求时,就改变臂的移动方向, 2019/4/5

55 第五章 设备管理 并使移动频率极小化,处理所迂到的最近的I/O请求,非常类似于电梯的调度规则。 B 电梯调 度算法 否 结束
有等待 请求? 结束 请求与当前 柱面相同? 处理有最近块号的请求 启动 C 向里或 向外移? 向外 向里 有比当前柱 面小的请求? 改变移动方向 A 面大的请求? 处理大于当前柱面号请求中柱面号最小的请求 B 处理小于当前柱面号请求中的柱面号最大的请求 移动磁头到指定柱面,登记当前位置 2019/4/5

56 第五章 设备管理 (3)“最短查找时间优先”算法:本算法考虑了各个请求之间的区别,总是先执行查找时间最短的那个磁盘请求,从而,较“先来先服务”算法有较好的寻道性能。 (4)“扫描”算法:磁盘臂每次沿一个方向移动,扫过所有柱面,遇到最近的I/O请求便进行处理,直到最后一个柱面后,再向相反方向移动回来。 (5)“分步扫描”算法:将I/O请求分成组,每组不超过N个请求,每次选一个组进行扫描,处理完一组后再选下一组。 (6)“循环扫描”算法:移动臂总从0号柱面至最大号柱面顺序扫描,然后,直接返回0号柱面重复进行,归途中不再服务,构成了一个循环。 (7)算法比较:(2)(3)两种算法,单位时间内处理的I/O请求多即吞吐量大,但请求的等待时间较长。“扫描”算法适宜于磁盘负载重的系统,它不分具体情况扫过所 2019/4/5

57 第五章 设备管理 有柱面造成性能不够好。“分步扫描”算法使得I/O请求等待时间之间的差距最小,吞吐量适中。“电梯调度”算法杜绝饥饿,性能适中。“循环扫描”算法适应不断有大批量柱面均匀分布的I/O请求,且磁道上存放记录数量较大的情况。 独立磁盘冗余阵列: (1)独立磁盘冗余阵列RAID:利用一台磁盘阵列控制器统一管理和控制一组磁盘驱动器,组成一个速度快 、可靠性高、性能价格比好的大容量磁盘系统。RAID填补了CPU速度快与磁盘设备速度慢之间的间隙。 (2)RAID共同特性: 1.RAID是一组物理磁盘驱动器,可被操作系统看作是单一逻辑磁盘驱动器; 2.数据被分布存储在阵列横跨的物理驱动器上; 2019/4/5

58 第五章 设备管理 3.冗余磁盘的作用是保存奇偶校验信息,当磁盘出现错误时它能确保数据的恢复。 (3)RAID level 0:
1.数据划成条块被分布存储在横跨阵列中的所有磁盘上; 2.逻辑上连续的数据条块,在物理上可被依次存储在横向相邻的磁盘驱动器上; 3.通过阵列管理软件进行逻辑地址空间到物理地址空间的映射。 Strip0 Strip4 Strip8 Strip12 Strip1 Strip5 Strip9 Strip13 Strip10 Strip3 Strip7 Strip15 Strip11 Strip2 Strip6 Strip14 RAID Level 0 2019/4/5

59 第五章 设备管理 . Data mapping for a RAID Level0 Array Strip0 Strip4 Strip8
Management software 2019/4/5

60 第五章 设备管理 (4)RAID level 1:双份数据,每个盘都有一个包含相同数据的镜像盘。
1.读请求能通过包含相同请求数据中的任何一个磁盘提供服务,其中的一个所花费的查找和搜索时间最少; 2.写操作时,要求改写对应的两个数据子块,可采用并行操作,写操作的性能由并行操作中较慢的一个决定; 3.一个驱动器出现故障,数据可以从镜像盘获得。 (5)RAID level 2 : 1.采用并行存取技术,驱动器的移动臂同步工作,每个磁盘的磁头都在相同位置。纠错码按照横跨的每个数据盘的相应位计算,并存储在多个奇偶校验盘的相应位的位置。 2.奇偶校验磁盘的数量与数据盘的多少成比例。 2019/4/5

61 第五章 设备管理 RAID Level 1 (Mirrored) Strip0 Strip4 Strip8 Strip12 Strip1
2019/4/5

62 第五章 设备管理 RAID Level 2 (Redundancy through Hamming Code) b0 b1 b2 b3
f0(b) f1(b) f2(b) RAID Level 2 (Redundancy through Hamming Code) 2019/4/5

63 第五章 设备管理 (6)RAID level 3: (1)RAID3仅使用一只冗余盘, 出现故障时,使用奇偶校验盘的信息校验,数据可用剩下的磁盘的信息重新构造,若X0到X3存放数据,X4为奇偶盘,对于第i位的奇偶校验位可如下计算: X4(i)=X3(i)⊕X2(i)⊕X1(i)⊕X0(i) 假定驱动器X1出故障,如果把X4(i),X1(i)加到上面等式两边,得到 X1(i)=X4(i)⊕X3(i)⊕X2(i)⊕X0(i) (7)RAID level 4: 1.RAID4和RAID5使用独立存取技术,在一个独立存取的磁盘阵列中,每个驱动器都可以独立地工作,所以,多个独立的I/O请求可以被并行地得到满足。因此独立存取阵列适合于有频繁I/O请求的应用。 2019/4/5

64 第五章 设备管理 2.每当执行一个小数据量写操作时,阵列管理软件不旦要修改用户数据,而且也要修改对应的奇偶校验位。
3.考虑驱动器阵列,X0到X3存储数据,X4是奇偶校验磁盘。假如执行一个涉及磁盘X1上数据的写操作。开始对每个二进位i,有下列关系式: X4(i)=X3(i)⊕X2(i)⊕X1(i)⊕X0(i) 在数据修改之后,对于改变了的二进位用’符号来指出,得到:X4’(i)=X3(i)⊕X2(i)⊕X1’(i)⊕X0(i) =X3(i)⊕X2(i)⊕X1’(i)⊕X0(i)⊕X1(i)⊕X1(i)=X4(i)⊕X1(i)⊕X1’(i)。为计算新的奇偶校验位,必须读出老的用户数据子块和老的奇偶校验码,每个数据写操作包含了两次读操作和两次写操作。 2019/4/5

65 第五章 设备管理 RAID Level 3 (Bit interleaved Parity) b0 b1 b2 b3 P(b)
2019/4/5

66 第五章 设备管理 RAID Level 4 (Block level Parity) block0 block1 block3 block7
90 P(8-11) P(12-15) RAID Level 4 (Block level Parity) 2019/4/5

67 第五章 设备管理 (9)RAID level 5: 1.RAID5的奇偶校验码是分布横跨轮转存放在所有的磁盘上,设有n个磁盘的阵列,则开头的n个奇偶校验码螺旋式地位于n个磁盘上,能避免RAID4发生的奇偶校验盘瓶颈口问题。 (10)RAID level 6和RAID level 7: 1.增强型RAID。RAID6中设置了专用快速的异步校验磁盘,具有独立的数据访问通路,比低级RAID性能更好,但价格昂贵。 2.RAID7对RAID6作了改进,该阵列中的所有磁盘都有较高传输速率,性能优异,但价格也很高。 2019/4/5

68 第五章 设备管理 RAID Level 5 (Block level Distributed parity) block1 block5
2019/4/5

69 第五章 设备管理 5.12 设备分配 在多道程序环境下,系统中的设备供所有进程共享。为防止诸进程对系统资源无序的竞争,规定系统设备不允许用户自行使用,须由系统统一分配。由于设备、控制器和通道资源的有限性,不是每个进程随时随地都能得到这些资源。因此,进程必须首先向设备管理程序提出资源申请,然后,由设备分配程序根据相应的分配算法为进程分配资源(设备、控制器和通道),形成一条数据传输通路,以供主机和设备间信息交换。如果申请进程得不到它所申请的资源时,将被放入资源等待队列,直到所需要的资源被释放。 设备分配的数据结构:在进行设备分配时,通常都需要借助于一些数据结构即表格的帮助。在表格中记录了相应设备或控制器的状态及对设备或控制器进行控制所需的信息。 2019/4/5

70 第五章 设备管理 (1)设备控制表DCT:每个设备都有设备控制表,用于记录本设备的情况。DCT包括的内容: 1.设备标识符;
2.设备类型:反映设备特性,如块设备、字符设备等; 3.设备地址或设备号:这个地址可以是和内存统一编址的,也可以是单独编址的; 4.设备状态:设备处于使用状态时,应将忙/闲标志置“1”。若与该设备相连接的控制器或通道正忙,设备等待标志置“1”; 5.等待队列指针:因请求本设备而未得以满足的进程,其PCB将排成一个等待队列,此指针指向等待队列队首PCB; 6.I/O控制器指针:指向该设备所连接的控制器的控制表。 7.重复执行次数:数据传送出错时允许重传的次数,超限 2019/4/5

71 第五章 设备管理 视为传送失败。 (2)系统设备表SDT:整个系统一张表,记录系统中所有I/O设备的信息,表目包括设备类型、设备标识符、正在使用设备的进程标识符、DCT表指针(指向有关设备的设备控制表)等。 (3)控制器表COCT:COCT也是每个控制器一张,它反映I/O控制器的使用状态以及和通道的连接情况等。在DMA方式下,没有控制器表。 (4)通道控制表CHCT:该表只在通道控制方式的系统中存在,也是每个通道一张。CHCT包括通道标识符;通道忙/空闲标识;等待通道的进程队列指针。 根据用户请求的I/O设备的逻辑名,查找逻辑设备和物理设备的映射表;以物理设备为索引,查找SDT,找到 2019/4/5

72 第五章 设备管理 CHCT SDT 通道标识 通道忙/闲标记 通道等待队列首 设备类型 表目1 控制器等待队列尾 设备标识 获得设备的进程
DCT指针 表目1 表目i 2019/4/5

73 第五章 设备管理 DCT COCT 设备类型 控制器标识 设备标识 控制器忙/闲标记 设备忙/闲标记 CHCT指针 COCT指针
控制器等待队列首 控制器等待队列尾 控制器标识 控制器忙/闲标记 CHCT指针 控制器等待队列首 控制器等待队列尾 COCT 2019/4/5

74 第五章 设备管理 该设备所连接的DCT;继续查找与该设备连接的COCT和CHCT,就找到了一条通路。 设备分配时应考虑的因素:
(1)设备的固有属性: 1.独享性:有此特性的即为临界资源,对于独占设备,只能采用独享分配的策略。 2.共享性:对于共享设备,可同时分配多个进程使用,访问次序要合理调度。 3.虚拟性:采用虚拟技术后,一台物理设备变成多台虚拟设备,可供多个进程共享使用,并对访问次序进行控制。 2019/4/5

75 第五章 设备管理 (2)设备分配算法:比进程调度相对简单。 1.先来先服务:对提出某设备使用要求的进程进行排队,按先来者先服务进行分配。
2.优先高者优先:利用该算法形成队列时,优先级高的进程将排在队列的前面,优先级相同的I/O请求,按先来先服务原则排队。 (3)设备分配中的安全性: 1.安全分配方式:这种分配方式中,每当进程发出I/O请求后,便进入阻塞状态,直到其I/O操作完成才被唤醒。此算法中,由于进程获得某种资源后(设备)后便阻塞,它不可能再申请别的资源,则必须不会导致死锁,所以设备分配是安全的。 2.不安全分配方式:进程发出I/O请求后继续运行,还可发出多个I/O请求,直至设备已被用而阻塞。 2019/4/5

76 第五章 设备管理 设备分配原则: (1)静态分配:在一个作业(或进程)运行前,根据作业要求的设备,系统如果能满足,则将其要求的设备全部分配给它,然后开始运行,运行完成释放其占用的所有设备。这种分配方式的优点是系统绝不会出现死锁,缺点是设备利用率太低。 (2)动态分配:这种分配方法是在作业(或进程)运行的过程中,需要使用设备时,就向系统申请,系统根据某种分配策略进行分配。这种方法的优点是设备的利用率高,缺点是系统有出现死锁的可能。 设备独立性的概念:也称设备无关性,是指应用程序独立于具体使用的物理设备。于是引出了逻辑设备和物理 2019/4/5

77 第五章 设备管理 设备两个概念,好处: 1.设备分配时灵活:用物理名来申请设备时有指定性,而逻辑名申请时,系统可在几台同样设备中选择一台进行分配。 2.易于实现I/O重定向:是指用于I/O操作的设备可以更换(重定向),而不必改变应用程序。 设备独立性软件:驱动程序是与硬件(或设备)紧密相关的软件。为实现设备独立性,必须再在驱动程序之上设置一层软件,称设备独立性软件---系统I/O软件。 1.执行所有设备的共有操作:分配回收、设备保护、名称映射(逻辑—物理)、缓冲管理、差错控制(处理控制驱动程序无法处理的错误)。 2.向用户层或文件层软件提供统一接口:无论何种设 2019/4/5

78 第五章 设备管理 备。向用户提供相同接口(如read、write等)。 逻辑名到物理名映射的实现:
1.逻辑设备表:LUT(Logical Unit Tables)用于名称映射。 2.LUT设置方式:第一方式,在整个系统中只设一张LUT,此时逻辑设备名不得相同;第二种方式,为每个用户设置一张LUT。由于多用户系统中,都配置了系统设备表,故逻辑设备表可以采用图中的格式。 独享设备的分配: “独享设备”即是在使用上具有排它性的设备。当一个作业进程在使用某种设备时,别的作业进程就只能等到该进程使用完毕后才能用,那么这种设备就是独享设备。键盘输入机、磁带机和打印机等都是典型的独享设备。 2019/4/5

79 第五章 设备管理 逻辑设备名 物理设备名 驱动程序 入口地址 /dev/tty 3 1024 /dev/printer 5 2046 逻辑设备名 系统映射表指针 /dev/tty 3 /dev/printer 5 由于独享设备的使用具有排它性,因此对这类设备可以采取“静态分配”的策略。也就是说,在一个作业运行前,就必须把这类设备分配给作业,直到作业运行结束才将它归还给系统。所以在作业的整个执行期间,它都独占使用该设备,即使它暂时不用,别的作业也不 逻辑设备表 2019/4/5

80 第五章 设备管理 能够去使用。 计算机系统中配置有各种不同类型的外部设备,每一类外部设备也可能有多台。为了管理起见,系统在内部对每一台设备进行编号,以便相互识别。设备的这种内部编号称为设备的“绝对号”。 在多道程序设计环境下,一个用户并不知道当前哪一台设备已经被其他用户占用,哪一台设备仍然空闲可用。因此一般情况下,用户在请求I/O时,都不是通过设备的绝对号来特别指定某一台设备,而是只能指明要使用哪一类设备。至于实际使用哪一台,应该根据当时系统设备的分配情况来定。 另一方面,有时用户可能会同时要求使用几台相同类型的设备。为了便于区分,避免混乱,允许用户对自己要求使用的几台相同类型的设备进行编号。由于这种 2019/4/5

81 第五章 设备管理 编号出自于用户,因此称为设备的“相对号”。于是,用户是通过“设备类,相对号”来提出使用设备的请求的。很显然,操作系统的设备管理必须要提供一种映射机制,以便建立起用户给出的“设备类,相对号”与物理设备的“绝对号”之间的对应。 独占设备的分配程序: (1)分配设备:根据I/O请求中的物理设备名查找SDT,从中找出该设备的DCT,再由其中设备状态字段知其是否忙。若忙,便将请求I/O的进程挂在设备队列上;否则考虑计算机设备分配的安全性,若不会导致进入不安全状态,则分配之;否则将其插入设备等待队列。 (2)分配控制器:把设备分配给进程后,再到其DCT中找出与该设备连接的控制器的COCT,从COCT的状态字段中可知控制器是否忙,不忙则分配,否则挂在控制器等待队列上。 2019/4/5

82 第五章 设备管理 (3)分配通道:在COCT中找通道的CHCT,知其是否忙,
不忙分配,忙则等待。只有在设备、控制器、通道三者都成功分配时,设备分配才算成功,可进行数据传送。 (4)设备分配程序的改进: 1.增加设备独立性:使用逻辑名请求。系统从SDT中找出第一个该类不忙设备的DCT,进入下一步。 2.考虑多通路情况:此时对控制器和通道的分配,同样要经过几次反复。 3.增加设备分配的安全性:对于共享设备,不论采用静态分配还是采用动态分配都不会出现死锁。对于独占设备,采用动态分配有可能造成死锁。 共享设备的分配:所谓共享设备是指允许多个用户共同使用的设备。如磁盘、磁鼓等设备,可由多个进程同时进行访问。设备的共享有两层含义:一是指对设备介质 2019/4/5

83 第五章 设备管理 的共享,如磁盘上的各扇区。二是指对磁盘等驱动器的共享,多个用户访问这些设备上的信息是通过驱动器来实现的。对共享设备的分配一般采用动态分配。 5.13 虚拟设备管理 系统中独占型设备的数量是有限的,往往不能满足诸多进程的需求,成为系统中的“瓶颈”资源,使许多进程由于等待某些独占设备成为可用而被阻塞。而另一方面,这些设备的利用率很低。 为了克服这种缺点,人们常通过共享设备来模拟独占型设备的动作,使独占型设备成为共享设备,从而提高了设备利用率和系统的效率,这种技术被称为虚拟设备技术,实现这一技术的硬件和软件系统被称为SPOOL系统(或Spooling系统),或称为假脱机系统。 2019/4/5

84 第五章 设备管理 虚拟设备:利用大容量的共享设备—磁盘作为后援,用软件技术来模拟独享设备的工作,使得每个用户都认为获得了供自己独占使用的输入设备或输出设备,并且它们的传输速度与磁盘一样快。但这仅仅是一种“幻觉”,系统中并不存在多个独享设备。这种用一类物理设备模拟出的另一类物理设备,被称为“虚拟设备”。在提供虚拟设备的系统中,用户进行I/O时,不是直接面对物理的独享设备,而是面对虚拟的独享设备。 为了实现虚拟设备,要在磁盘上划分出两块存储空间,一块用来预先存放多个作业的全部信息,这块存储空间被称为“输入井”;另一块用来暂时存放每个运行作业的输出信息,这块存储空间被称为“输出井”,为了真正提供虚拟设备,还要有相应的软件,这就是建筑在多道程序设计基础上的“联机的外围设备同时操作”。实现虚拟设备的软件功能模块由预输入程序、缓输出程序和井管理程序所组成。 2019/4/5

85 第五章 设备管理 预输入程序:预输入程序的任务是预先把作业的全部信息输入到磁盘的输入井中存放,以便在需要作业信息以及作业运行过程中需要数据时,都可以从输入井中直接得到,而无须与输入机交往,避免了等待使用输入机的情况发生。 缓输出程序:总是定期查看“输出井”中是否有等待输出的作业信息。如果有,就启动输出设备(比如打印机)进行输出。因此,由于作业的输出信息都暂时存放在输出井中,输出设备有一空就去输出,不会出现作业因为等待输出而阻塞。 井管理程序:井管理程序分为“井管理读程序”和“井管理写程序”。当请求输入设备工作时,操作系统就调用井管理读程序,它把让输入设备工作的任务,转换成从输入井中读取所需要的信息;当作业请求打印输出时,操作系统就调用井管理写程序,它把让输出设备工作的任务,转换成为往输出井里输出。 2019/4/5

86 第五章 设备管理 2019/4/5

87 第五章 设备管理 虚拟设备的分配:所谓虚拟设备是指代替独享设备的那部分存储空间及有关的控制结构。对虚拟设备采用的是虚拟分配,其过程是:当进程中请求独享设备时,系统将共享设备的一部分存储空间分配给它。进程与设备交换信息时,系统把要交换的信息存放在这部分存储空间,在适当的时候对信息作相应的处理。如打印时,把要打印的信息送到某个存储空间中,在打印机空闲时将存储空间上的信息送到打印机上打印出来。 假脱机技术:通过共享设备来模拟独享设备所采用的操作是假脱机操作,即在联机情况下外部设备同时操作。它是对脱机输入输出系统的模拟,它必须建立在具有多道程序功能的操作系统上,而且还需要得到高速随机外存(通常采用磁盘)的支持。 (1) SPOOLing系统的组成: 1.输入井和输出井:这是在磁盘上开辟的两个大存储空 2019/4/5

88 第五章 设备管理 间。分别用来存用户数据的输入和输出。 2.输入缓冲区和输出缓冲区:输入缓冲区用来缓冲到输入井的数据。输出类同。
3.输入进程SPi和输出进程SPj:分别模拟输入和输出。 2019/4/5

89 第五章 设备管理 利用SPOOLing技术实现共享打印机即将独占打印机变成共享设备:
(1)由输出进程在输出井中申请一块空闲磁盘块区,将要打印的数据送入其中。 (2)输出进程再为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入其中,然后将该表挂到打印机的请求打印队列上。所有打印完成后,输出进程将阻塞,下次打印请求将之唤醒。 假脱机系统的特点: (1)提高了I/O速度。从对低速I/O设备进行的I/O操作变为对输入井或输出井的操作,如同脱机操作一样,提高了I/O速度,缓和了CPU与低速I/O设备速度不匹配的矛盾。 (2)设备并没有分配给任何进程。在输入井或输出井中,分配给进程的是一存储区和建立一张I/O请求表。 2019/4/5

90 第五章 设备管理 (3)实现了虚拟设备功能。多个进程同时使用一独享设备,而对每一进程而言,都认为自己独占这一设备,不过,该设备是逻辑上的设备。 2019/4/5


Download ppt "操作系统原理与设计 Operating Systems: Design and Implementation"

Similar presentations


Ads by Google