第章输入输出系统_第1页
第章输入输出系统_第2页
第章输入输出系统_第3页
第章输入输出系统_第4页
第章输入输出系统_第5页
已阅读5页,还剩103页未读 继续免费阅读

下载本文档

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

文档简介

第六章输入输出系统6.1I/O系统的功能、模型和接口6.2I/O设备和设备控制器6.3中断机构和中断处理程序6.4设备驱动程序6.5与设备无关的I/O软件6.6用户层的I/O软件6.7缓冲区管理6.8磁盘存储器的性能和调度基本任务:完成用户提出的I/O请求,提高I/O速率以及改善I/O设备的利用率主要功能:缓冲区管理、设备分配、设备处理、虚拟设备及设备独立性等现在是1页\一共有108页\编辑于星期五

6.1I/O系统的功能、模型和接口6.1.1I/O系统的基本功能隐藏物理设备的细节与设备的无关性(设备独立性)提高处理机和I/O设备的利用率

对I/O设备进行控制

确保对设备的正确共享错误处理现在是2页\一共有108页\编辑于星期五6.1.2I/O系统的层次结构和模型

1. I/O软件的层次结构

现在是3页\一共有108页\编辑于星期五

I/O系统中各种模块之间的层次视图

1) I/O系统的上、下接口

2) I/O系统的分层现在是4页\一共有108页\编辑于星期五6.1.3I/O系统接口

在I/O系统与高层之间的接口中,根据设备类型的不同,又进一步分为若干个接口:块设备接口、流设备接口和网络接口。

1.块设备接口

2.流设备接口(字符设备接口)

3.网络通信接口

现在是5页\一共有108页\编辑于星期五

6.2I/O设备和设备控制器I/O设备:执行I/O操作的机械部分,执行控制I/O的电子部件执行I/O操作的机械部分——一般的I/O设备执行控制I/O的电子部件则称为设备控制器或适配器在微型机和小型机中的控制器常做成印刷电路卡形式,因而也常称为控制卡、接口卡或网卡大、中型计算机系统中,还配置了I/O通道或I/O处理机。现在是6页\一共有108页\编辑于星期五6.2.1I/O设备一、I/O设备的类型

1.按操作特性分类

(1)存储设备(辅存)(2)输入/输出(I/O)设备

2.按信息交换的单位分类

(1)字符设备(慢)(2)块设备(快)3.按设备的共享属性分类

(1)独占设备

(2)共享设备(3)虚拟设备

4.按设备的传输速率分类

(1)低速设备(2)中速设备(3)高速设备指通过虚拟技术将一台独占设备变换为若干台逻辑设备,供若干个用户(进程)同时使用现在是7页\一共有108页\编辑于星期五2.设备与控制器之间的接口

通常,设备并不是直接与CPU进行通信,而是与设备控制器通信,因此,在I/O设备中应含有与设备控制器间的接口,在该接口中有三种类型的信号(

所示),各对应一条信号线。

现在是8页\一共有108页\编辑于星期五4/21/20236.2.2设备控制器设备控制器职责:控制一个或者多个I/O设备,以实现I/O设备和计算机之间的数据交换。

CPU–控制器-设备微机小型机中控制器——接口卡现在是9页\一共有108页\编辑于星期五一、设备控制器的基本功能接收和识别命令数据交换标识和报告设备的状态地址识别数据缓冲差错控制I/O系统现在是10页\一共有108页\编辑于星期五I/O系统二、设备控制器的组成设备控制器与处理机的接口设备控制器与设备的接口I/O逻辑I/O逻辑控制器与设备接口1控制器与设备接口i数据寄存器控制/状态寄存器数据线地址线控制线CPU与控制器接口控制器与设备接口数据数据状态控制状态控制设备控制器与处理机的接口该接口用于实现CPU与设备控制器之间的通信。共有三类信号线:数据线、地址线和控制线。设备控制器与设备的接口在一个设备控制器上,可以连接一个或多个设备。相应地,在控制器中便有一个或多个设备接口,一个接口连接一个设备。在每个接口中都存在数据、控制和状态三种类型的信号。I/O逻辑:用于实现对设备的控制。它通过一组控制线与处理机交互,处理机利用该逻辑向控制器发送I/O命令,I/O逻辑对收到的命令进行译码。每当CPU要启动一个设备时,一方面将启动命令发送给控制器;另一方面又同时通过地址线把地址发送给控制器,由控制器的I/O逻辑对收到的地址进行译码,再根据所译出的命令对所选设备进行控制。现在是11页\一共有108页\编辑于星期五6.2.3内存映像I/O在早期的计算机中,包括大型计算机,为实现CPU和设备控制器之间的通信,为每个控制寄存器分配一个I/O端口

=编址上不再区分内存单元地址和设备控制器中的寄存器地址,都采用kk值处于0~n-1范围时:内存地址k大于等于n时:某个控制器的寄存器地址。现在是12页\一共有108页\编辑于星期五6.2.4I/O通道一、I/O通道设备的引入实际上I/O通道是一种特殊的处理机,它具有执行I/O指令的能力,并通过执行通道程序来控制I/O操作。与一般处理机不同于两方面:

1.指令类型单一,只用于I/O操作;

2.通道没有内存,它与CPU共享内存。引入目的 解脱CPU对I/O的组织、管理。

CPU只需发送I/O命令给通道,通道通过调用内存中的相应通道程序完成任务。I/O系统现在是13页\一共有108页\编辑于星期五I/O系统二、

通道类型

字节多路通道的工作原理1.字节多路通道:各子通道以时间片轮转方式共享通道,适用于低、中速设备。现在是14页\一共有108页\编辑于星期五2.数组选择通道:无子通道,仅一主通道,某时间由某设备独占,适于高速设备。但通道未共享,利用率低。3.数组多路通道:多子通道不是以时间片方式,而是“按需分配”,综合了前面2种通道类型的优点。选择通道I/O系统现在是15页\一共有108页\编辑于星期五选择通道磁盘字节多路通道打印机输入机内存储器处理机磁带数组多路通道现在是16页\一共有108页\编辑于星期五硬件连接结构现在是17页\一共有108页\编辑于星期五三、“瓶颈”问题单通路I/O系统I/O系统存储器I/O通道1I/O通道2控制器1控制器2控制器3控制器4设备1设备2设备3设备4设备5设备6设备7设备8CPU总线现在是18页\一共有108页\编辑于星期五

多通路I/O系统I/O系统I/O通道1I/O通道2控制器控制器控制器控制器设备1设备2设备3设备4设备5设备6设备7设备8存储器CPU总线现在是19页\一共有108页\编辑于星期五

6.3中断机构和中断处理程序中断在操作系统中有着特殊重要的地位:是多道程序得以实现的基础:进程之间的切换是通过中断来完成的中断也是设备管理的基础,为了提高处理机的利用率和实现CPU与I/O设备并行执行,也必需有中断的支持中断处理程序:I/O系统中最低的一层,整个I/O系统的基础现在是20页\一共有108页\编辑于星期五6.3.1中断简介

1.中断和陷入

1)中断

CPU对I/O设备发来的中断信号的一种响应。

2)陷入

CPU内部事件引起中断:非法指令,地址越界,运算上溢或下溢现在是21页\一共有108页\编辑于星期五

2.中断向量表和中断优先级1)中断向量表

记录中断程序的入口地址、中断号(每一个设备的中断请求规定一个)

2)中断优先级

多个中断信号源,不同的优先级现在是22页\一共有108页\编辑于星期五

3.对多中断源的处理方式

1)屏蔽(禁止)中断

处理一个中断时,屏蔽所有中断

顺序处理中断简单不能用于实时性要求高

2)嵌套中断优先响应最高优先级高优先级抢占低优先级现在是23页\一共有108页\编辑于星期五中断处理程序处理过程:

1.测定是否有未响应的中断信号

2.保护被中断进程的CPU环境

3.转入相应的设备处理程序

4.中断处理

5.恢复被中断进程的现场

现在是24页\一共有108页\编辑于星期五现在是25页\一共有108页\编辑于星期五

6.4设备驱动程序设备驱动程序通常又称为设备处理程序。

主要任务:接收上层软件发来的抽象I/O要求(read或write)转换为具体要求后,发送给设备控制器,启动设备去执行也将由设备控制器发来的信号传送给上层软件由于驱动程序与硬件密切相关,故应为每一类设备配置一种驱动程序现在是26页\一共有108页\编辑于星期五6.4.1设备驱动程序概述1.设备驱动程序的功能

(1)接收由设备独立性软件发来的命令和参数,并将命令中的抽象要求转换为具体要求,例如,将磁盘块号转换为磁盘的盘面、磁道号及扇区号。

(2)检查用户I/O请求的合法性,了解I/O设备的状态,传递有关参数,设置设备的工作方式。

(3)发出I/O命令。如果设备空闲,便立即启动I/O设备去完成指定的I/O操作;如设备,则将请求者的请求块挂在设备队列上等待。

(4)及时响应由控制器或通道发来的中断请求,并根据其中断类型调用相应的中断处理程序进行处理。

(5)自动地构成通道程序。现在是27页\一共有108页\编辑于星期五

2.设备驱动程序的特点(1)驱动程序主要是指在请求I/O的进程与设备控制器之间的一个通信和转换程序。(2)不同类型的设备应配置不同的驱动程序。(3)驱动程序与I/O设备所采用的I/O控制方式紧密相关(中断驱动和DMA方式)(4)由于驱动程序与硬件紧密相关,因而其中的一部分必须用汇编语言书写。目前有很多驱动程序的基本部分,已经固化在ROM中。(5)驱动程序应允许可重入。一个正在运行的驱动程序常会在一次调用完成前被再次调用。现在是28页\一共有108页\编辑于星期五

3.设备处理方式

为每一类设备设置一个进程,专门用于执行此类设备的I/O操作整个系统设置一个I/O进程,用于执行所有I/O操作不设备专门的设备处理进程,只为各类设备设置相应的设备驱动程序,供用户或系统进程调用(应用最广)现在是29页\一共有108页\编辑于星期五6.4.2设备驱动程序的处理过程1)将抽象要求转换为具体要求2)检查I/O请求的合法性3)读出和检查设备的状态4)传送必要的参数:字节数,内存地址

5)工作方式的设置:波特率,校验方式

6)启动I/O设备:阻塞自己现在是30页\一共有108页\编辑于星期五6.4.3对I/O设备的控制方式程序I/O方式(programmedI/O)(使用轮询)CPUandDevicecannotworkinparallel中断方式(interrupt)CPUanddevicecanworkinparallel,toomanyinterruptsforCPU通道方式(channel)specialprocessorfordealingwithi/ooperations直接存储器访问方式(DMA)DMAcontrollerinchargeofblocki/o现在是31页\一共有108页\编辑于星期五I/O控制方式向I/O控制器发读命令CPU→I/O读I/O控制器的状态I/O→CPU检查状态出错从I/O控制器中读入字I/O→CPU未就绪向存储器中写字CPU→内存传送完成?未完成下条指令1.程序I/O方式查询方式:CPU需花代价不断查询I/O状态。CPU资源浪费极大。注:程序I/O方式也称作程序查询方式或轮询方式。现在是32页\一共有108页\编辑于星期五2.中断驱动I/O方式向I/O发命令——返回——执行其它任务。I/O中断产生——CPU转相应中断处理程序。如:读数据,读完后以中断方式通知CPU,CPU完成数据从I/O——内存I/O控制方式现在是33页\一共有108页\编辑于星期五CPU计算启动设备计算…计算中断处理计算设备:工作特点:CPU与设备并行工作设备多时对CPU打扰多现在是34页\一共有108页\编辑于星期五I/O控制方式向I/O控制器发读命令CPU→I/O读I/O控制器的状态I/O→CPU检查状态出错从I/O控制器中读入字I/O→CPU向存储器中写字CPU→内存传送完成?未完成下条指令2.中断驱动I/O控制方式CPU做其它事中断现在是35页\一共有108页\编辑于星期五3.直接存储器访问DMAI/O控制方式一、引入中断I/O,CPU“字节”干预一次,即每“字节”传送产生一次中断。DMA:由DMA控制器直接控制总线传递数据块。DMA控制器完成从I/O——内存。二、组成一组寄存器+控制逻辑。CR(命令/状态);DR(数据);MAR(内存地址);DC(计数)I/O控制方式现在是36页\一共有108页\编辑于星期五二、DMA控制器的组成DMA控制器由三部分组成:主机与DMA控制器的接口;DMA控制器与块设备的接口;I/O控制逻辑。

I/O控制方式现在是37页\一共有108页\编辑于星期五DMA控制器的示意图countI/O控制逻辑DRMARDCCRCPU内存主机—控制器接口控制器与块设备接口系统总线DMA控制器命令命令/状态寄存器CR:接收从CPU发来的I/O命令或有关控制和状态信息数据寄存器DR:用于暂存设备到内存或从内存到设备的数据内存地址寄存器MAR:存放把数据从设备传送到内存的起始目标地址或内存原地址数据计数器DC:存放本次CPU要读或写的字(节)数I/O控制方式现在是38页\一共有108页\编辑于星期五I/O控制方式③数据传输CPUDMA控制器内存地址计数控制缓冲磁盘⑤中断②DMA请求总线磁盘控制器④回答①DMA编程CPU设置DMA控制器实现DMA编程,同时启动磁盘控制器由磁盘读入数据到内部缓冲区;DMA控制器向磁盘控制器发出读请求;磁盘控制器将字节传到内存指定单元;磁盘控制器向DMA控制器发送回答;DMA控制器将MAR加1,DC减1,重复上述过程直至DC为0,DMA控制器向CPU发出中断请求。现在是39页\一共有108页\编辑于星期五I/O控制方式向I/O控制器发读命令CPU→DMA读I/O控制器的状态DMA→CPU下条指令直接存储器访问DMA控制方式CPU做其它事中断该方式的特点是:数据传输的基本单位是数据块;所传送的数据是从设备直接送入内存的,或者相反;仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成的。现在是40页\一共有108页\编辑于星期五三.DMA工作过程DMA方式的工作流程I/O控制方式设置MAR和DC初值启动DMA传送命令传送数据字MAR=MAR+1DC=DC-1DC=0?请求中断在继续执行用户程序的同时,准备又一次传送现在是41页\一共有108页\编辑于星期五4.I/O通道控制方式DMA方式:对需多个离散块的读取仍需要多次中断。通道方式:CPU只需给出(1)通道程序首址。(2)要访问I/O设备I/O控制方式现在是42页\一共有108页\编辑于星期五I/O控制方式通道程序

通道是通过执行通道程序,并与设备控制器共同实现对I/O设备的控制的。通道程序由一系列通道指令所构成的。道指令一般包含下列信息:操作码。规定指令所执行的操作。内存地址。计数。表示本指令所要操作的字节数。通道程序结束位P。用以表示程序是否结束。记录结束标志R。表示该指令是否与下条指令有关。现在是43页\一共有108页\编辑于星期五操作PR计数内存地址WRITE0080813WRITE001401034WRITE01605830WRITE013002000WRITE002501650WRITE112502720I/O控制方式优点:执行一个通道程序可以完成几批I/O操作。现在是44页\一共有108页\编辑于星期五

6.5与设备无关的I/O软件

提高OS的可适应性和可扩展性,在现代OS中都毫无例外地实现了设备独立性(DeviceIndependence),也称为设备无关性基本含义:应用程序独立于具体使用的物理设备逻辑设备和物理设备类似于物理地址和逻辑地址的概念。使用逻辑设备名称来请求使用某类设备;系统实际执行时,必须使用物理设备名称。现在是45页\一共有108页\编辑于星期五为了实现应用程序中所使用的设备与系统的设备变换无关,设置一张逻辑设备表LUT主设备号逻辑设备名驱动程序入口地址3/dev/tty1(键盘输入设备1)30003/dev/tty2(键盘输入设备2)30005(针式打印机)/dev/lp(打印机)50006/dev/ethN(网卡)4000

用激光打印机替换针式打印机后的LUT表:主设备号逻辑设备名驱动程序入口地址3/dev/tty1(键盘输入设备1)30003/dev/tty2(键盘输入设备2)30007(激光打印机)/dev/lp(打印机)70006/dev/ethN(网卡)4000现在是46页\一共有108页\编辑于星期五有利用设备分配时的灵活性易于实现I/O重定向I/O重定向指用于I/O操作的设备可以更换(重定向),而不必改变应用程序。设备独立性的优点现在是47页\一共有108页\编辑于星期五6.5.3设备分配

1.设备分配中的数据结构

包括:对设备、设备控制器、通道的分配系统为每一设备都配置了一张设备控制表,用于记录本设备的情况DCT1DCT2DCTn设备类型type设备标识符deviceid设备状态:等待/不等待忙/闲指向控制器表的指针重复执行次数或时间设备队列的队首指针设备控制表集合现在是48页\一共有108页\编辑于星期五I/O通道1I/O通道2控制器控制器设备1设备2设备3设备4控制器控制表COCT控制器标识符控制器状态:等待/不等待与控制器相连的通道表指针控制器队列的队首指针控制器队列的队尾指针存储器CPU总线通道控制表CHCT通道标识符通道状态:忙/闲与通道相连的控制器表指针通道队列的队首指针通道队列的队尾指针现在是49页\一共有108页\编辑于星期五系统设备表SDT。如图所示:表目1表目i设备类型设备标识符DCT驱动程序入口系统设备表设备分配现在是50页\一共有108页\编辑于星期五2.设备分配时应考虑的因素设备的固有属性设备分配算法设备分配中的安全性设备独立性独占设备共享设备(3)虚拟设备设备分配(1)先来先服务(2)优先级高者优先安全分配方式不安全分配方式现在是51页\一共有108页\编辑于星期五3.独占设备的分配程序基本的设备分配程序分配设备分配控制器分配通道基本设备分配程序存在的问题进程以物理设备名提出I/O请求采用单通路的I/O系统结构,产生“瓶颈”设备分配设备分配程序的改进增加设备的独立性考虑多通路情况现在是52页\一共有108页\编辑于星期五

6.6用户层的I/O软件大部分的I/O软件都在操作系统内部

有一小部分在用户层(与用户程序链接在一起的库函数等)用户层软件必须通过一组系统调用来取得操作系统服务在现代的高级语言以及C语言中,通常提供了与各系统调用一一对应的库函数,用户程序通过调用对应的库函数使用系统调用(如C语言中的库函数write等)

Spooling系统及网络传输文件时使用的守护进程等,运行在内核之外,归属于I/O系统现在是53页\一共有108页\编辑于星期五6.6.2假脱机(Spooling)系统如前所述,虚拟性是OS的四大特征之一通过多道程序技术将一台物理CPU虚拟为多台逻辑CPU,从而允许多个用户共享一台主机通过SPOOLing技术便可将一台物理I/O设备虚拟为多台逻辑I/O设备,同样允许多个用户共享一台物理I/O设备。现在是54页\一共有108页\编辑于星期五引入:在多道程序系统中,专门利用一道程序(SPOOLing程序)来完成对设备的I/O操作。无需使用外围I/O处理机。1.SPOOLing技术设备分配现在是55页\一共有108页\编辑于星期五什么是SPOOLing通过共享设备来模拟独占设备,将独占设备改造成共享设备,从而提高了设备利用率和系统效率,这种技术被称为Spooling技术。同时外围联机操作(SimultaneousPeripheralOperatingOn—Line),或称为假脱机操作。设备分配现在是56页\一共有108页\编辑于星期五2.SPOOLing系统的组成主要有三大部分:输入井和输出井:是磁盘上开辟的两个大存储空间。输入井模拟脱机输入的磁盘设备,输出井模拟脱机输出时的磁盘。输入缓冲区和输出缓冲区:输入缓冲区暂存由输入设备送来的数据,后送输入井;输出缓冲区暂存从输出井送来的数据,后送输出设备输入进程和输出进程:利用两个进程模拟脱机I/O时的外围处理机。设备分配现在是57页\一共有108页\编辑于星期五SPOOLing系统的组成输入进程SPi

输出进程SP0输入缓冲区Bi输出缓冲区B0输入井输出井输入设备输出设备磁盘内存设备分配现在是58页\一共有108页\编辑于星期五SPOOLing系统的处理过程设备分配用进程Spi模拟脱机输入时的外围控制机,将用户要求的数据从输入机通过输入缓冲区再送到输入井。当CPU需要输入数据时,直接从输入井读入内存用SPO进程模拟脱机输出时的外围控制机,把用户要求输出的数据先从内存送到输出井,待输出设备空闲时,再将输出井中的数据经过输出缓冲区送到输出设备上现在是59页\一共有108页\编辑于星期五SPOOLing系统的特点

提高了I/O的速度:利用输入输出井模拟脱机输入输出,缓和了CPU和I/O设备速度不匹配的矛盾

将独占设备改造为共享设备:并没有为进程分配设备,而是为进程分配一存储区和建立一张I/O请求表

实现了虚拟设备功能:多个进程同时使用一台独占设备设备分配现在是60页\一共有108页\编辑于星期五

6.7缓 冲 区 管 理6.7.1缓冲的引入引入缓冲区的主要原因归结为以下几点:1.缓和CPU与I/O设备间速度不匹配的矛盾。2.减少对CPU的中断频率,放宽对CPU中断响应时间的限制。3.提高CPU和I/O设备之间的并行性。现在是61页\一共有108页\编辑于星期五6.7.2单缓冲和双缓冲1.单缓冲(SingleBuffer)I/O设备系统单缓冲buf用户buf用户进程输入(T)传送(M)计算(C)工作示意图TMCTMCTMCTMCt①②③④缓冲管理一个缓冲区,CPU和外设轮流使用,一方处理完之后接着等待对方处理。C和T可并行,M和C或M和T不能并行,因此处理一块数据时间:Max(C,T)+M现在是62页\一共有108页\编辑于星期五2.双缓冲(DoubleBuffer)效率有所提高,且进一步平滑了传输峰值。系统处理一块数据的时间约为:MAX(C,T)收发可双向同时传送。缓冲管理两个缓冲区,CPU和外设都可以连续处理而无需等待对方。要求CPU和外设的速度相近。现在是63页\一共有108页\编辑于星期五双机通讯时缓冲区的设置缓冲区A机缓冲区B机单缓冲发送缓冲区接收缓冲区A机

接收缓冲区发送缓冲区B机双缓冲缓冲管理现在是64页\一共有108页\编辑于星期五6.7.3循环缓冲1.循环缓冲的组成输入进程下一个可用空缓冲区R计算进程下一个可用缓冲区C缓冲管理计算进程当前正在使用缓冲区C指针current类型:R:空缓冲;G:满缓冲;C:当前缓冲现在是65页\一共有108页\编辑于星期五2.循环缓冲区的使用(1)Getbuf过程。输入进程计算进程nextinextinextgcurrentnextgC缓冲管理G现在是66页\一共有108页\编辑于星期五2.循环缓冲区的使用(2)(2)Releasebuf过程。输入进程计算进程nexticurrentnextgCRG缓冲管理现在是67页\一共有108页\编辑于星期五3.进程同步Nexti指针追赶上Nextg指针。(2)Nextg指针追赶上Nexti指针。nextinextgGGGGRR165423nextinextiGG缓冲管理现在是68页\一共有108页\编辑于星期五6.7.4缓冲池(BufferPool)1.缓冲池的组成

1.缓冲池的组成缓冲池EmEmEmEmEmInInInInOutOutOutOut缓冲管理现在是69页\一共有108页\编辑于星期五4/21/202370缓冲区的工作方式缓冲区可以工作在下列四种方式下:收容输入。输入进程需要输入时,取得空缓冲区,装满后放入输入队列。提取输入。计算进程需要输入时,在输入队列取缓冲区,提取数据后挂在空缓冲区队列上。收容输出。计算进程需要输出时,取空缓冲区,装满数据后挂在输出缓冲队列上。提取输出。输出进程从输出队列取缓冲区,提取完数据后挂在空缓冲区上。1.收容输入hin;2.提取输入sin3.收容输出;4.提取输出缓冲管理hin=getbuf(emq);putbuf(inq,hin)sin=getbuf(inq);putbuf(emq,sin)

sout=getbuf(outq)putbuf(emq,sout)hout=getbuf(emq)putbuf(outq,hout)

现在是70页\一共有108页\编辑于星期五1.hin=getbuf(emq);putbuf(inq,hin)2.sin=getbuf(inq); 计算;putbuf(emq,sin)3.hout=getbuf(emq);putbuf(outq,hout)4.sout=getbuf(outq);输出;putbuf(emq,sout)Getbuf(type)Beginwait(RS(type));wait(MS(type));B(number):=takebuf(type);signal(MS(type));endPutbuf(type)Beginwait(MS(type));addbuf(type,number);signal(MS(type));signal(RS(type));end缓冲管理现在是71页\一共有108页\编辑于星期五

6.8磁盘存储器的性能和调度6.8.1磁盘性能简述数据的组织磁盘的类型访问时间现在是72页\一共有108页\编辑于星期五磁盘的格式化现在是73页\一共有108页\编辑于星期五

2.磁盘的类型1)固定头磁盘这种磁盘在每条磁道上都有一读/写磁头,所有的磁头都被装在一刚性磁臂中。通过这些磁头可访问所有各磁道,并进行并行读/写,有效地提高了磁盘的I/O速度。这种结构的磁盘主要用于大容量磁盘上。

2)移动头磁盘

每一个盘面仅配有一个磁头,也被装入磁臂中。为能访问该盘面上的所有磁道,该磁头必须能移动以进行寻道。可见,移动磁头仅能以串行方式读/写,致使其I/O速度较慢;但由于其结构简单,故仍广泛应用于中小型磁盘设备中。现在是74页\一共有108页\编辑于星期五信息记录在磁道上,多个盘片,正反两面都用来记录信息,每面一个磁头所有盘面中处于同一磁道号上的所有磁道组成一个柱面每个扇区大小为600字节(数据512字节)物理地址形式:柱面号 磁头号扇区号柱面、磁头、扇区磁盘存储器管理现在是75页\一共有108页\编辑于星期五由三个动作组成:寻道:磁头移动定位到指定磁道旋转延迟:等待指定扇区从磁头下旋转经过数据传输:数据在磁盘与内存之间的实际传输磁盘的访问过程磁盘存储器管理现在是76页\一共有108页\编辑于星期五寻道时间Ts:大约几ms到几十msTs=启动磁臂时间S+磁头移动磁道数n×磁头移道速度m旋转延迟时间Tr:对于7200转/分,平均延迟时间为4.2ms数据传输时间Tt:目前磁盘的传输速度一般有几十M/s,传输一个扇区的时间小于0.05ms磁盘的访问时间现在是77页\一共有108页\编辑于星期五思考设磁盘的转速为3000转/分,盘面划分成10个扇区,计算读取一个扇区的时间?1分钟内,磁盘可以转动3000转1秒内磁盘转50转1秒磁头读取了50×10=500个扇区读取一个扇区的时间:1/500=0.002s=2ms现在是78页\一共有108页\编辑于星期五磁盘访问时间假设有4个记录A、B、C、D存放在磁盘的某个磁道上,该磁道被划分为4块,每块存放一个记录,安排如下表所示:现在要顺序处理这些记录,如果磁盘旋转速度为20ms转一周,处理程序每读一个记录后5ms进行处理。试问处理完这个4个记录的总时间是多少?为了缩短处理时间应进行优化分布,试问应如何安排这些记录,并计算机处理的总时间。块号1234记录号ABCD现在是79页\一共有108页\编辑于星期五思考要提高磁盘的数据访问速度,主要应在哪方面下功夫?磁盘存储器管理现在是80页\一共有108页\编辑于星期五分析要提高磁盘的访问速度主要应从以下两方面入手:数据的合理组织磁盘的调度算法磁盘存储器管理现在是81页\一共有108页\编辑于星期五磁盘调度算法当多个访盘请求在等待时,采用一定的策略,对这些请求的服务顺序调整安排,旨在降低平均磁盘服务时间,达到公平、高效公平:一个I/O请求在有限时间内满足高效:减少设备机械运动所带来的时间浪费先来先服务FCFS最短寻道时间优先SSTF扫描算法SCAN单向扫描调度算法CSCAN磁盘存储器管理现在是82页\一共有108页\编辑于星期五按访问请求到达的先后次序服务优点:简单,公平;缺点:效率不高,相邻两次请求可能会造成最内到最外的柱面寻道,使磁头反复移动,增加了服务时间,对机械也不利先来先服务FCFS磁盘存储器管理现在是83页\一共有108页\编辑于星期五假设磁盘访问序列:98,183,37,122,14,124,65,67读写头起始位置:53安排磁头服务序列计算磁头移动总距离(道数)先来先服务FCFS磁盘存储器管理现在是84页\一共有108页\编辑于星期五磁盘存储器管理磁盘访问序列:98,183,37,122,14,124,65,67先来先服务FCFS143753656798122124183458514685108110592磁头走过的总道数:640平均寻道长度:8098,183,37,122,14,124,65,67现在是85页\一共有108页\编辑于星期五优先选择距当前磁头最近的访问请求进行服务,主要考虑寻道优先优点:改善了磁盘平均服务时间;缺点:造成某些访问请求长期等待得不到服务最短寻道时间优先SSTF磁盘存储器管理现在是86页\一共有108页\编辑于星期五磁盘存储器管理磁盘访问序列:65,67,37,14,98,122,124,183最短寻道时间优先SSTF14375365679812212418312230238424259磁头走过的总道数:236平均寻道长度:29.598,183,37,122,14,124,65,67现在是87页\一共有108页\编辑于星期五克服了最短寻道优先的缺点,既考虑了距离,同时又考虑了方向具体做法:当设备无访问请求时,磁头不动;当有访问请求时,磁头按一个方向移动,在移动过程中对遇到的访问请求进行服务,然后判断该方向上是否还有访问请求,如果有则继续扫描;否则改变移动方向,并为经过的访问请求服务,如此反复扫描算法(电梯算法)SCAN磁盘存储器管理现在是88页\一共有108页\编辑于星期五磁盘存储器管理磁盘访问序列:37,14,65,67,98,122,124,183扫描算法(电梯算法)SCAN14375365679812212418351216233124259磁头走过的总道数:208平均寻道长度:2698,183,37,122,14,124,65,67假设此时磁头向内移动现在是89页\一共有108页\编辑于星期五也称循环扫描算法。电梯算法杜绝了饥饿,但当请求对磁道的分布是均匀时,磁头回头,近磁头端的请求很少(因为磁头刚经过),而远端请求较多,这些请求等待时间要长一些。总是自里向外移动。移动臂到达最后个一个柱面后,立即带动读写磁头快速返回到最里的欲访问磁道。返回时不为任何的等待访问者服务。返回后可再次进行扫描单向扫描调度算法CSCAN磁盘存储器管理现在是90页\一共有108页\编辑于星期五磁盘存储器管理磁盘访问序列:65,67,98,122,124,183,14,37单向扫描算法CSCAN143753656798122124183122169233124259磁头走过的总道数:352平均寻道长度:4498,183,37,122,14,124,65,67现在是91页\一共有108页\编辑于星期五调度算法的选择实际系统相当普遍采用最短寻道时间优先算法,因为它简单有效,性价比好。扫描算法更适于磁盘负担重的系统。磁盘负担很轻的系统也可以采用先来先服务算法一般要将磁盘调度算法作为操作系统的单独模块编写,利于修改和更换。磁盘存储器管理现在是92页\一共有108页\编辑于星期五序号柱面号磁头号扇区号1963275631520649445209567152调度算法的选择假定磁盘的存储臂现在处于8号柱面上,有如下表所示的6个请求等待访问磁盘,试列出最省时间的响应顺序。2→6→4→1→3→5磁盘存储器管理现在是93页\一共有108页\编辑于星期五例题例1:简述设备分配的过程。答:设备分配程序要用到系统设备表、设备控制表、控制器控制表和通道控制表。其主要过程是:按指定方式扫描SDT,找出该类设备DCT链的起始地址。依DCT开始扫描,找出可以工作的设备,检查设备分配的合理性,从而进行设备的预分配。根据预分配设备的DCT,找出与之相连的COCT表,从所有相连的控制器中找出一个可以分配而且分配合理的控制器。从所分配的COCT出发,根据CHCT链,找出一个可用的通道。当找到一个可用的通路后,才实施真正的分配,把设备、控制器、通道一并分配给申请设备的进程。现在是94页\一共有108页\编辑于星期五例2:DMA方式和中断方式有什么不同?答:DMA方式和中断方式的主要不同点是:中断方式在每个数据传送完成后中断CPU,而DMA方式则是在所要求传送的一批数据全部传送结束时中断CPU;中断方式的数据传送是在中断处理时由CPU控制完成,而DMA方式则是在DMA控制器的控制下完成。不过,DMA方式仍存在一定局限性。如数据传送的方向、存放数据的内存始址及传送数据的长度等都由CPU控制,并且每台设备需一个DMA控制器,当设备增加时,多个DMA控制器的使用也不经济。现在是95页\一共有108页\编辑于星期五例3:DMA方式和通道方式有什么不同?答:DMA方式中,在DMA控制器控制下,设备和主存之间可成批地进行数据交换,而不用CPU干预,这种方式应用于块设备的数据传输。通道控制方式与DMA方式类似,也是一种以内存为中心,实现设备与内存直接交换数据的控制方式。在通道控制方式中,CPU只需发出启动指令,指出通道相应的操作和I/O设备,该指令就可启动通道并使该通道从内存中调出相应的通道指令执行。与DMA方式相比,通道方式所需的CPU干预更少,且可以做到一个通道控制多台设备,从而更进一步减轻了CPU的负担。现在是96页\一共有108页\编辑于星期五例4:在某计算机系统中,其屏幕显示分辨率为640*480,若要存储一屏256彩色的图像,需要多少字节存储空间?解:屏幕信息的显示是以像素为单位进行的。由于屏幕显示分辨率为640*480,故屏幕上有像素:

640*480=300*210个当用256彩色显示时,每个像素需要8位二进制数(28=256)表示,因此一屏信息需要存储空间:

8*300*210位=300*210字节

=300K字节所以需要300K字节存储空间。现在是97页\一共有108页\编辑于星期五例5:某软盘有40个磁道,磁头从一个磁道移至另一磁道需要6ms。文件在磁盘上非连续存放,逻辑上相邻数据块的平均距离为13磁道,每块的旋转延迟时间及传输时间分别为100ms、25ms,问读取一个100块的文件需要多少时间?如果系统对磁盘进行了整理,让同一个文件的磁盘块尽可能靠拢,从而使逻辑上相邻数据块的平均距离降为2磁道,这时读取一个100块的文件需要多少时间?解:磁盘整理前,逻辑上相邻数据块的平均距离为13磁道,读一块数据需要的时间为:13*6+100+25=203ms因此,读取一个100块的文件需要时间:203*100=20300ms磁盘整理后,逻辑上相邻数据块的平均距离为2磁道,读一块数据需要的时间为:2*6+100+25=137ms因此,读取一个100块的文件需要时间:137*100=13700ms现在是98页\一共有108页\编辑于星期五例6:若磁头的当前位置为100磁道,磁头正向磁道号增加方向移动。现有一磁盘读写请求队列:23,376,205,132,19,61,190,398,29,4,18,40。若采用先来先服务、最短寻道时间优先和扫描算法,试计算出平均寻道长度各为多少?解:(1)先来先服务:从100磁道开始,磁盘调度顺序为:23->376->205->132->19->61->190->398->29->4->18->40。移动磁道数总数为1596,平均寻道长度为:133。(2)最短寻道时间优先:从100磁道开始,磁盘调度顺序为:132->190->205->61->40->29->23->19->18->4->376->398。移动磁道数总数为700,平均寻道长度

温馨提示

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

最新文档

评论

0/150

提交评论