操作系统 设备管理_第1页
操作系统 设备管理_第2页
操作系统 设备管理_第3页
操作系统 设备管理_第4页
操作系统 设备管理_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

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

文档简介

1、第五章,设备管理,第五章 设备管理,5.1 I/O系统,引述 在计算机系统中,除了处理机和存储器外,还有用于实现信息输入、输出和存储的设备,以及相应的设备控制器,I/O通道或I/O处理机等。 设备管理的对象 主要是I/O设备,另外还有设备控制器和I/O通道。 设备管理的基本任务 完成用户提出的I/O请求,提高I/O速率以及提高I/O设备的利用率。 I/O设备种类多,且特性和操作方式相差很大,使得设备管理成为OS中最繁杂且与硬件最紧密相关的部分。 I/O性能经常成为系统性能的瓶颈。,5.1 I/O系统,5.1.1 I/O设备 1、I/O设备的类型 (1)按使用特性分类 存储设备:如磁盘。 输入/

2、输出设备: 输入:如键盘、鼠标、扫描仪、摄像头、传感器 输出:如打印机显示器、音响输出。 (2)按传输速率分类 低速设备:速度每秒几字节至数百个字节 如键盘、 鼠标器、语音的输入输出等设备。 中速设备:每秒数千个字节至数十万个字节 如行式打印机、激光打印机等。 高速设备:每秒数百个千字节至千兆字节 如磁带机、 磁盘机、 光盘机等。,5.1 I/O系统,5.1.1 I/O设备 1、I/O设备的类型 (3)按信息交换的单位分类 块设备:以数据块为单位存取信息,如磁盘。 传输速率高几兆位每秒,可寻址 字符设备:以字符为单位存取信息,如键盘、打印机等。 传输速率低,几百至几千字节,不可寻址,常采用中断

3、驱动方式进行输入输出。 (4)按共享属性分类 独占设备:一段时间内存只允许一个进程访问的设备。 共享设备:一段时间内允许多个进程同时访问的设备。 虚拟设备:通过虚拟技术将一台独占设备变幻成多台逻辑设备,供多个进程同时使用。,5.1 I/O系统,5.1.1 I/O设备 2、I/O设备与控制器之间的接口 通常,设备并不是直接与CPU进行通信,而是与设备控制器通信。因此,在设备与设备控制器之间应有一接口。 数据信号线:传输数据信号 控制信号线:发送控制信号,规定设备执行的操作 状态信号线:指示设备当前状态信号,5.1 I/O系统,5.1.2 设备控制器 1、基本概念 设备控制器是CPU与I/O设备间

4、的接口 设备控制器接收从CPU发来的命令,并控制I/O设备工作,使处理机从繁杂的设备控制事务中解脱出来。 设备控制器常做成印刷电路卡形式,称为接口卡,如显卡、声卡等。 设备控制器可控制一个或多个同类I/O设备。,5.1 I/O系统,5.1.2 设备控制器 2、基本功能 (1)接收和识别命令 (2)数据交换 (3)标识和报告设备的状态 (4)地址识别 (5)数据缓冲 (6)差错控制,5.1 I/O系统,5.1.2 设备控制器 3、设备控制器的组成 设备控制器处于CPU与设备之间,它既要与CPU通信,又要与设备通信,还应具有 按照CPU所发来的命令去控制设备工作的功能。 由以下三部分组成: 设备控

5、制器与CPU的接口 设备控制器与设备的接口 I/O逻辑,5.1 I/O系统,5.1.2 设备控制器 3、设备控制器的组成,设备控制器,设备1,设备i,C P U,5.1 I/O系统,5.1.3 I/O通道 1、I/O通道的引入 虽然在CPU与I/O设备之间增加了设备控制器,但当外设很多时,CPU的负担仍很重。为此,在CPU和设备控制器之间又增设了I/O通道。其目的是使一些原来由CPU处理的I/O任务转由通道来承担,从而进一步把CPU从繁杂的I/O任务中解脱出来。 I/O通道是一种特殊的处理机,专门负责数据的输入输出操作。具有执行I/O指令的能力,I/O指令用来控制I/O操作。,5.1 I/O系

6、统,5.1.3 I/O通道 2、I/O通道的类型 字节多路通道 主通道以字节为单位传送数据,多个子通道与每个设备连接,子通道按时间片轮转方式共享主通道。抢占式。 数组选择通道 主通道按数组方式传送数据,只有一个子通道连接设备,子通道非抢占式使用通道传输数据。 数组多路通道 主通道按数组方式传送数据,多个子通道与设备连接,子通道按时间片轮转方式共享主通道。,5.1 I/O系统,5.1.3 I/O通道 2、I/O通道的类型 字节多路通道的工作原理,5.1 I/O系统,5.1.3 I/O通道 3、“瓶颈”问题 由于通道价格昂贵,致使机器中所设置的通道数量势必较少,这又往往使它成为I/O 的瓶颈,进而

7、造成整个系统吞吐量的下降。,5.1 I/O系统,5.1.3 I/O通道 3、“瓶颈”问题 解决方案:增加设备到主机间的通路而不增加通道。,5.1 I/O系统,5.1.4 总线系统 计算机系统中的各部件,如cpu、存储器及各种I/O设备之间的联系,都是通过总线实现的。,5.1 I/O系统,5.1.4 总线系统 与主板连接的接口主要ISA、EISA、VESA、PCI、AGP等几种。 ISA和EISA总线带宽窄、速度慢,VESA总线扩展能力差,这三种总线已经被市场淘汰。 现在常见的是PCI和AGP接口。 PCI总线接口,以1/2或1/3的系统总线频率工作,如果要在处理图像数据的同时处理其它数据,那么

8、流经PCI总线的全部数据就必须分别地进行处理,这样势必存在数据滞留现象,在数据量大时,PCI总线就显得很紧张。 AGP接口可以解决这个问题,它是一种专用的显示接口,具有独占总线的特点,只有图像数据才能通过AGP端口,数据传输率高。,5.1 I/O系统,5.1.4 总线系统,5.1 I/O系统,5.1.4 总线系统,5.1 I/O系统,5.1.4 总线系统,第五章 设备管理,5.2 I/O控制方式,随着计算机技术的发展,I/O控制方式也在不断地发展。 I/O控制方式的发展经历了以下四个阶段: 5.2.1 程序I/O方式 5.2.2 中断驱动I/O控制方式 5.2.3 直接存储器访问(DMA)I/

9、O控制方式 5.2.4 I/O通道控制方式,5.2 I/O控制方式,5.2.1 程序I/O方式 又称忙等待方式。 在该方式中,由于CPU的高速性和I/O设备的低速性,致使CPU的绝大部分时间都处于等待I/O设备完成数据I/O的循环测试中,造成对CPU的极大浪费。,5.2 I/O控制方式,5.2.2 中断驱动I/O控制方式 在I/O设备输入每个数据过程中,无须CPU干预,可使CPU与I/O设备并行工作。仅当传输完一个数据时,才需CPU花极短时间处理中断。 这样可使CPU和I/O设备都处于忙碌状态,从而提高了整个系统的资源利用率及吞吐量。 这种方式适用于打印机、键盘等以字符为单位传送的字符设备。,

10、5.2 I/O控制方式,5.2.3 直接存储器访问(DMA)I/O控制方式 虽然中断驱动I/O比程序I/O方式更有效,但它是以字(节)为单位进行I/O的,若将这种方式用于块设备的I/O,显然将会是极其低效的。 为进一步减少CPU对I/O的干预,引入了直接存储器访问(Direct Memory Access)方式。 DMA控制方式适用于磁盘等块设备的I/O。,5.2 I/O控制方式,5.2.3 直接存储器访问(DMA)I/O控制方式 特点 数据传输的基本单位是数据块; 所传送的数据是从设备直接送入内存的,或者相反; 仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器

11、的控制下完成的。 可见,DMA方式较之中断驱动方式,又是成百倍地减少了CPU对I/O的干预,进一步提高了CPU与I/O设备的并行操作程度。,5.2 I/O控制方式,5.2.3 直接存储器访问(DMA)I/O控制方式 DMA控制器的组成 主机与DMA控制器的接口; DMA控制器与块设备的接口; I/O控制逻辑;,5.2 I/O控制方式,5.2.3 直接存储器访问(DMA)I/O控制方式 DMA从处理器那里取得控制权,通过系统总线在主存和设备之间传输数据 DMA使用“周期挪用技术”挪用一个总线周期来传输数据,使得CPU的执行变得慢了。,5.2 I/O控制方式,5.2.4 I/O通道控制方式 采用D

12、MA方式可一次性读取一个数据块的内容,但当我们需要一次去读多个数据块且将它们分别传送到不同的内存区域时,则需要CPU进行多次中断来处理。 I/O通道方式是DMA方式的发展,可一次完成多个数据块的读/写及有关的控制和管理,期间不需要CPU的干预,从而实现CPU、通道、I/O设备三者并行操作,提高系统资源利用率。 例如,当CPU要完成一组相关的读(或写)操作及有关控制时,只需向I/O通道发送一条I/O指令,以给出其所要执行的通道程序的首址和要访问的I/O设备,通道接到该指令后,通过执行通道程序便可完成CPU指定的I/O任务。,第五章 设备管理,5.3 缓冲管理,5.3.1 缓冲的引入 目的 (1)

13、缓和CPU与I/O设备间速度不匹配的矛盾。 (2)减少对CPU的中断频率, 放宽对CPU中断响应时间的限制。 (3)提高CPU和I/O设备之间的并行性。 缓冲技术 单缓冲 双缓冲 循环缓冲 缓冲池,5.3 缓冲管理,5.3.2 单缓冲和双缓冲 1、单缓冲 单缓冲是OS提供的最简单的一种缓冲形式。每当一个用户进程发出一I/O请求时,操作系统便在主存中为之分配一缓冲区。 在块设备输入时,缓冲区用于暂存块设备输入的一块数据; 在字符设备输入时,缓冲区用于暂存用户输入的一行数据。,5.3 缓冲管理,5.3.2 单缓冲和双缓冲 1、单缓冲 系统对每一块数据的处理时间表示为Max(C,T)+M。,5.3

14、缓冲管理,5.3.2 单缓冲和双缓冲 2、双缓冲 为了加快输入、输出速度和提高设备利用率,又引入了双缓冲工作方式,也称为缓冲对换(Buffer Swapping)方式。 在设备输入时,先将数据输入第一缓冲区,装满后便转向第二缓冲区。 此时操作系统可从第一缓冲区中移出数据送用户进程区,接着由CPU对数据进行计算。,5.3 缓冲管理,5.3.2 单缓冲和双缓冲 2、双缓冲 在双缓冲时,系统处理一块数据的时间可粗略地认为是Max(C,T)。,5.3 缓冲管理,5.3.2 单缓冲和双缓冲 2、双缓冲 当两台机器之间通信时,如果采用单缓冲技术,它们之间的任一时刻都只能实现单方向的数据传输。为了实现双向数

15、据传输,必须在两台机器中都设置两个缓冲区。,5.3 缓冲管理,5.3.3 循环缓冲 当输入、输出或生产者-消费者的速度相差甚远时,双缓冲的效果则不够理想,但可以增加缓冲区数量而使情况有所改善。因此,引入了多缓冲,并将多缓冲组织成循环缓冲形式。,5.3 缓冲管理,5.3.3 循环缓冲 循环缓冲的组成 多个缓冲区:每个缓冲区大小相同,分成三类: 空缓冲区R、已装满数据的缓冲区G、现行工作缓冲区C 多个指针 Nextg指示计算进程下一个可用的缓冲区G; Nexti指示输入进程下次可用的空缓冲区R; Current指示计算进程正在使用的缓冲区单元。,5.3 缓冲管理,5.3.4 缓冲池(Buffer

16、Pool) 1、缓冲池的组成 循环缓冲属专用缓冲。当系统较大时,为了提高缓冲区的利用率,目前广泛流行公用缓冲池,池中的缓冲区可供多个进程共享。 由以下部分组成 多个缓冲区队列 四种工作缓冲区,5.3 缓冲管理,5.3.4 缓冲池(Buffer Pool) 1、缓冲池的组成 多个缓冲区队列 空缓冲队列emq 输入队列inq 装满输入数据 输出队列outq 装满输出数据 四种工作缓冲区 用于收容输入数据的工作缓冲区; 用于提取输入数据的工作缓冲区; 用于收容输出数据的工作缓冲区; 用于提取输出数据的工作缓冲区。,5.3 缓冲管理,5.3.4 缓冲池(Buffer Pool) 2、工作方式 缓冲区可

17、以工作在收容输入、提取输入、收容输出、提取输出四种工作方式。,第五章 设备管理,5.4 I/O软件,5.4.1 I/O软件的设计目标 I/O软件的总体目标是高效率和通用性 高效率:确保I/O设备和CPU的并发性 通用性:尽量提供简单抽象、清晰统一的接口。 通常将I/O软件组织成层次结构 低层:用于实现与硬件相关的操作,屏蔽硬件细节 高层:向用户提供一个简洁、友好、规范的接口。,5.4 I/O软件,5.4.1 I/O软件的设计目标 I/O软件的具体目标 (1)设备无关性:屏蔽细节,与具体设备无关 (2)统一命名:使用逻辑名称访问设备,逻辑名称在不同情况下可能对应不同具体的物理设备。 (3)对错误

18、的处理:尽量在接近硬件的低层,低层能解决的错误高层不需要知道。 (4)缓冲技术:缓解CPU和设备的速度,不论以块还是字节为单位,都屏蔽,使高层与抽象设备交互。 (5)设备的分配和释放:对共享设备、独占设备等需要妥善解决。 (6) I/O控制方式:对不同传输速率设备采取不同I/O控制方式,低速采用中断驱动,高速采取DMA等。,5.4 I/O软件,5.4.1 I/O软件的设计目标 I/O软件的层次结构 通常分为四层层次 5.4.5 用户层软件:用户可直接调用的对设备操作的函数。 5.4.4 设备独立性软件:实现前述I/O软件具体的目标 5.4.3 设备驱动程序:对设备发出操作指令,调用驱动程序 5

19、.4.2 中断处理程序:保存中断现场,进行处理,恢复现场,5.4 I/O软件,5.4.2 中断处理程序 一般分成以下几个步骤 (1)唤醒被阻塞的驱动程序 (2)保护被中断进程的CPU环境 (3)转入相应的设备处理程序 (4)中断处理 (5)恢复被中断进程的现场,5.4 I/O软件,5.4.3 设备驱动程序 I/O进程与设备控制器之间的通信程序。 接收上层软件发来的抽象I/O请求,如read/write,转换成为具体要求,发给设备控制器,启动设备去执行。 将由设备控制器发来的信号传给上层软件。 由于驱动程序与硬件密切相关,故应为每类设备设置一种驱动程序。有时也为类似几类设备设置一个驱动程序。,5

20、.4 I/O软件,5.4.4 设备独立性软件 为了提高OS的可适应性和可扩展性,OS都实现了设备独立性(Device Independence),也称为设备无关性。 含义:应用程序独立于具体使用的物理设备。 在应用程序中,使用逻辑设备名称来请求使用某类设备;而在系统实际执行时,还必须使用物理设备名称。因此,系统须具有将逻辑设备名称转换为某物理设备名称的功能,类似于存储器管理中介绍的逻辑地址和物理地址的概念。,5.4 I/O软件,5.4.4 设备独立性软件 设备独立性带来的好处: 设备分配时的灵活性; 以逻辑名称请求某类设备,系统可将该类中任一台分配给进程,如果使用物理名称则只能分配某一台。 易

21、于实现I/O重定向 I/O重定向:指更改I/O时的设备,而不需要改应用程序。如:调试程序时输出送屏幕,正式运行时可改成打印机。,5.4 I/O软件,5.4.5 用户层的I/O软件 一般来说,大部分的I/O软件都在os内部,还有一部分在用户层,如程序相关的库函数等。 用户层软件如果想调用os内部的I/O服务,必须通过系统调用来进行。 高级语言一般提供了与各系统调用对应的库函数,如与read对应的scanf、fread等,与write对应的printf,fwrite等。 形式上,系统调用与库函数类似。并且由于系统调用多数都采用c语言编写,所以用户程序除了调用库函数外还可以直接调用系统调用。,第五章

22、 设备管理,5.5 设备分配,5.5.1 设备分配中的数据结构 多道程序环境下,设备供所有进程共享,并由系统统一分配。 进程向系统提出I/O请求,只要是可能和安全的,设备分配程序就按照一定的策略,把设备分配给进程。 设备一般通过设备控制器或通道与CPU通信,所以还要给进程分配使用相应的控制器和通道。 为了实现设备分配,必须设置相应的数据结构。 设备控制表、控制器控制表、通道控制表、系统设备表,5.5 设备分配,5.5.1 设备分配中的数据结构 设备控制表(DCT) 每个设备一张,记录本设备情况,5.5 设备分配,5.5.1 设备分配中的数据结构 控制器控制表(COCT) 每个控制器一张,记录本

23、控制情况,5.5 设备分配,5.5.1 设备分配中的数据结构 通道控制表(CHCT) 每个通道一张,5.5 设备分配,5.5.1 设备分配中的数据结构 系统设备表(SDT) 系统中所有设备的情况,每个设备一个表目。,5.5 设备分配,5.5.2 设备分配时应考虑的因素 为使系统有条不紊工作,设备分配时应考虑 (1)设备的固有属性 独占设备:只有一个进程用完才能分给另一进程 共享设备:多个进程共享,注意先后次序的调度 虚拟设备:多个进程共享,注意先后次序的调度 (2)设备分配算法 先来先服务 优先级高者优先 (3)设备分配的安全性 安全分配方式 不安全分配方式,5.5 设备分配,5.5.3 SP

24、OOLing技术 1、基本概念 SPOOLing技术就是将一台独占设备改造成共享设备的技术。 2、引入 第一章曾介绍过,为了缓和CPU的高速性与I/O设备低速性间的矛盾而引入了脱机输入、 脱机输出技术。 该技术是利用专门的外围控制机,将低速I/O设备上的数据传送到高速磁盘上;或者相反。,5.5 设备分配,5.5.3 SPOOLing技术 2、引入 当系统中引入了多道程序技术后,完全可以利用其中的一道程序,来模拟脱机输入时的外围控制机功能,把低速I/O设备上的数据传送到高速磁盘上;再用另一道程序来模拟脱机输出时外围控制机的功能,把数据从磁盘传送到低速输出设备上。这样,便可在主机的直接控制下,实现

25、脱机输入、 输出功能。 此时的外围操作与CPU对数据的处理同时进行, 把这种在联机情况下实现的同时外围操作称为SPOOLing (Simultaneaus Periphernal Operating On-Line),或称为假脱机操作。,5.5 设备分配,5.5.3 SPOOLing技术 3、SPOOLing系统的组成 输入井和输出井 输入缓冲区和输出缓冲区 输入进程Spi和输出进程SPo,5.5 设备分配,5.5.3 SPOOLing技术 4、举例:共享打印机 SPOOLing技术可将一台打印机改造成可供多个用户使用。 当用户进程请求打印输出时,SPOOLing系统同意为它打印输出,但并不真

26、正立即把打印机分配给该用户进程, 而只为它做两件事: 由输出进程在输出井中为之申请一个空闲磁盘块区, 并将要打印的数据送入其中; 输出进程再为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入其中, 再将该表挂到请求打印队列上。 若打印机空闲,输出进程将从请求打印队列的对首取出一张请求打印表,根据表中的要求将要打印的数据从输出井传送到内存缓冲区,再由打印机打印。,5.5 设备分配,5.5.3 SPOOLing技术,5.5 设备分配,5.5.3 SPOOLing技术 5、SPOOLing系统的特点 提高了I/O的速度 将独占设备改造为共享设备 实现了虚拟设备功能,第五章 设备管理,5.

27、6 磁盘存储器管理,5.6.1 磁盘性能简述 1、磁盘简介 磁盘容量大,存取速度快,可以随即存取,用来存放程序和数据等文件。 对文件的操作,都涉及对磁盘的访问,因此磁盘I/O速度的高低和磁盘系统的可靠性,都将直接影响系统性能。,5.6 磁盘存储器管理,5.6.1 磁盘性能简述 2、数据的组织和格式 磁盘设备可以包含一或多个物理盘片,每个磁盘片分一个或两个存储面(surface)。,5.6 磁盘存储器管理,5.6.1 磁盘性能简述 2、数据的组织和格式 磁盘设备可以包含一或多个物理盘片,每个磁盘片分一个或两个存储面(surface)。,5.6 磁盘存储器管理,5.6.1 磁盘性能简述 2、数据的

28、组织和格式 磁盘设备可以包含一或多个物理盘片,每个磁盘片分一个或两个存储面(surface)。,5.6 磁盘存储器管理,5.6.1 磁盘性能简述 2、数据的组织和格式 每个磁盘面被组织成若个同心环,称为磁道(track),各磁道间留有间隙。 每条磁道大小相同,内层磁道密度高。 每条磁道被逻辑上划分成若干扇区(sectors),也称为盘块,一般512字节,软盘大约832个,硬盘可多达数百个,各扇区之间保留间隙。,5.6 磁盘存储器管理,5.6.1 磁盘性能简述 2、数据的组织和格式 例如,一个10GB容量的磁盘,有8个双面可存储盘片,供10个存储面,每面有16383个磁道,每个磁道63个扇区。,

29、5.6 磁盘存储器管理,5.6.1 磁盘性能简述 2、数据的组织和格式 为了在磁盘上存储数据,必须先将磁盘格式化。 每个扇区容量600个字节,其中512字节存放数据。,5.6 磁盘存储器管理,5.6.1 磁盘性能简述 3、磁盘的类型 可以从多个角度对磁盘分类,如硬盘和软盘,单片盘和多片盘,固定头磁盘和活动头磁盘。 固定头磁盘 每条磁道有一个磁头,所有磁头被装在一个刚性磁臂上,可以进行并行读/写,I/O速度快,主要用在大容量磁盘上。 活动头磁盘 每个盘面配一个磁头,为了能访问盘面上所有磁道,磁头必须能移动,只能以串行读/写,I/O速度慢,但结构简单,广泛应用与中小型磁盘设备中。,5.6 磁盘存储

30、器管理,5.6.1 磁盘性能简述 4、磁盘访问时间 磁盘访问时间寻道时间+旋转延迟时间+数据传输时间 寻道时间Ts 将磁头定位于相应磁道上的时间。当代磁盘平均5-10ms。 旋转延迟时间Tr 相应扇区旋转到磁头处的时间。与磁盘转速有关,硬盘转速7200-10000r/m,软盘转速300-600r/m。 传输时间Tt 把数据从磁盘读出或写入数据所经历的时间,速度较快。 对于一个典型磁盘,平均寻道时间为10ms,旋转延迟时间3ms,读一个扇区所花时间0.01875ms,可见寻道时间对磁盘性能影响较大。,5.6 磁盘存储器管理,5.6.2 磁盘调度 磁盘是可供多个进程共享的设备,由于磁盘是串行I/O

31、,当有多个进程要求访问磁盘时,应采用一种调度算法,以使各进程对磁盘的平均访问时间尽可能少。 磁盘调度的目标:使磁盘的平均寻道时间最少。 常用的调度算法有: 先来先服务FCFS 最短寻道时间优先SSTF 扫描算法SCAN 循环扫描算法CSCAN 其他:N-Step-SCAN算法、FSCAN算法,5.6 磁盘存储器管理,5.6.2 磁盘调度 例如:某磁盘共200个磁道,编号为0-199。某时刻磁头刚从96磁道移动到100磁道,目前正停在第100磁道上。之后该磁盘依次接收到的磁道请求分别为:55,58,39,18,90,160,150,38,184。请采用各种磁盘调度算法进行调度。,5.6 磁盘存储

32、器管理,5.6.2 磁盘调度 1、先来先服务FCFS First-Come, First Served 最简单 根据进程请求访问磁盘的先后次序进行调度。 仅用于请求磁盘I/O的进程数目比较少的场合 磁头访问次序 :55,58,39,18,90,160,150,38,184 磁头移动距离 :45, 3,19, 21,72,70,10,112,146 平均寻道长度 :55.3,5.6 磁盘存储器管理,5.6.2 磁盘调度 2、最短寻道时间优先SSTF Shortest Seek Time First 要求访问的磁道与当前磁头位置距离最近 每次的寻道时间最短。 磁头访问次序 :90,58,55,39

33、,38,18,150,160,184 磁头移动距离 :10,32,3,16,1,20,132,10,24 平均寻道长度 :27.5,5.6 磁盘存储器管理,5.6.2 磁盘调度 3、扫描算法SCAN SSTF算法虽然能获得较好的寻道性能,但却可能导致某个进程发生“饥饿”(Starvation)现象。因为只要不断有新进程的请求到达,且其所要访问的磁道与磁头当前所在磁道的距离较近,这种新进程的I/O请求必须优先满足。 对SSTF算法略加修改,可防止老进程出现“饥饿”现象。 按磁头移动方向,依次按距离移动,直到前方没有磁道需要访问时,转向。 电梯调度算法。 磁头访问次序 :150,160,184,9

34、0,58,55,39,38,18 磁头移动距离 :50, 10, 24, 94,32, 3, 16, 1, 20 平均寻道长度 :27.8,5.6 磁盘存储器管理,5.6.2 磁盘调度 4、循环扫描算法CSCAN 磁头单向移动,如只是自里向外。 按磁头移动方向,依次按距离移动,最边的磁道,然后又回到起始磁道重新开始扫描。 (此时磁头刚从96磁道移动到100磁道) 磁头访问次序 :150,160,184,18,38,39,55,58,90 磁头移动距离 :50, 10, 24,166,20,1, 16, 3, 32 平均寻道长度 :35.8,5.6 磁盘存储器管理,5.6.2 磁盘调度 练习题

35、设某移动头磁盘有200道,编号为0-199,磁头当正处在130道上,且正向0磁道方向移动,对于如下访盘请求序列(磁道号): 70,120,80,160,60,150 请在下面写出在FCFS、SSTF(最短寻道时间优先)、SCAN调度算法下,磁头移动顺序及移动总量(以磁道数计)。,5.6 磁盘存储器管理,5.6.3 磁盘高速缓存(Disk Cache) 目前磁盘的I/O速度远低于对内存的访问速度,通常要低46个数量级。 为了解决磁盘I/O速度的瓶颈问题,在内存中开辟了缓冲区,暂存从磁盘读出的信息。 高速缓存形式 形式一:内存中开辟大小固定的空间 形式二:内存所有未利用空间作为缓冲池,供请求分页和

36、磁盘高速缓存共享。,5.6 磁盘存储器管理,5.6.3 磁盘高速缓存(Disk Cache) 数据访问过程: 当有进程请求访问某个盘块数据时,先查看磁盘高速缓存 如果存在则直接拷贝使用,避免访问磁盘,提高速度。 如果不在,则从磁盘拷贝使用,同时也送往磁盘高速缓存。 置换算法 如同请求调页一样,在将磁盘盘块数据读入高速缓存时,也会有高速缓存满需要置换出其他数据的问题,也需要使用置换算法置换。 周期写回磁盘 有些经常被访问的盘块数据,可能会一致保留在高速缓存中,长期不会写回磁盘,如果出现问题,则最新的数据就会丢失,所以要将数据周期写回磁盘。,5.6 磁盘存储器管理,5.6.4 提高磁盘I/O速度的其他方法 1、提前读(Read-Ahead) 在读当前块的同时,将下一个盘块也读入缓冲区 2、延迟写 在缓冲区中的数据,本应立即写回磁盘,但考虑到该数据可能还会被本进程或

温馨提示

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

评论

0/150

提交评论