第6章设备管理 主要介绍I/0的控制方式和设备的分配和处理,具体包括I/0系统的硬件组成、I/0 的控制方式、缓冲技术、设备分配、 SPOOLing技术、设备驱动程序和I/0中断处理程序 磁盘存储器的管理等内容 6.1基本内容 6.1.1设备管理概述 1.设备管理的任务 设备管理是对计算机输入/输出设备的管理,是操作系统中最具有多样性和复杂性的部 分。其主要任务是 (1)按照用户的要求控制U0设备工作,完成用户所希望的I/0操作,以减轻用户编制程 序的负担。这是设备管理的基本任务。 (2)按照一定的算法把I/0设备分配给对该设备提出请求的进程,保证系统有条不紊地 工作。 (3)充分有效地使用I/0设备,尽可能提高这些设备的并行操作程度 2.设备管理的功能 为了完成上述任务,设备管理应具备以下功能 (1)设备分配按照设备类型和相应的分配算法决定将I/0设备分配给哪一个要求该设备 的进程。在分配设备的同时还要分配相应的控制器和通道,以保证I/0设备与CPU之间有传 递信息的通路。凡未分配到所需设备的进程被放入一个等待队列。实现这一功能的是设备 分配程序 (2)设备控制完成这一功能的是设备处理程序。为实现这一功能,设备处理程序首先根据 用户提出的I/0请求构成相应的通道程序,交给通道去执行:然后启动指定的设备进行I/0 操作;最后要对通道发来的中断请求作出及时的响应和处理。 (3)实现其他功能其他功能包括对缓冲区的管理功能。为改善系统的可适应性和可扩充 性,应使用户程序与实际使用的物理设备无关,即实现设备独立性。 6.1.2I/0系统的硬件结构 1.I/0系统的相关概念 (1)设备:是指计算机系统中除中央处理机、主存和系统控制台以外的所有设备。通常也 称为外部设备或I/0设备。 (2)输入输出操作:是主存与外设的介质之间的数据传输操作。多道程序设计技术引入系 统之后,I/0操作的能力不仅影响系统的通用性和扩充性,而且也成为系统综合处理能力及 性能价格比的重要因素 (3)通道:又称I/0处理机。它能完成主存和外设之间的信息传输,并能与中央处理机并 行操作。通道从属于中央处理机 (4)设备控制器:设备控制器是CPU与I/0设备之间的硬件接口,它接收从CPU发来的命 令,并去控制一个或多个设备。在微型机和小型机中,它通常是一块可以插入主板扩展槽的 印刷电路板,也叫接口卡 (5)总线系统:在计算机系统中的各部件,如CPU、存储器以及各种I/0设备之间的联 系,都是通过总线来实现的。它的性能是用总线的时钟频率、带宽和相应的总线传送速率等 指标来衡量的。随着计算机技术的发展,总线技术已由早期的ISA总线发展为EISA总线
第 6 章设备管理 主要介绍 I/0 的控制方式和设备的分配和处理,具体包括 I/O 系统的硬件组成、I/O 的控制方式、缓冲技术、设备分配、SPOOLing 技术、设备驱动程序和 I/O 中断处理程序、 磁盘存储器的管理等内容。 6.1 基本内容 6.1.1 设备管理概述 1.设备管理的任务 设备管理是对计算机输入/输出设备的管理,是操作系统中最具有多样性和复杂性的部 分。其主要任务是: (1)按照用户的要求控制 UO 设备工作,完成用户所希望的 I/0 操作,以减轻用户编制程 序的负担。这是设备管理的基本任务。 (2)按照一定的算法把 I/0 设备分配给对该设备提出请求的进程,保证系统有条不紊地 工作。 (3)充分有效地使用 I/0 设备,尽可能提高这些设备的并行操作程度。 2.设备管理的功能 为了完成上述任务,设备管理应具备以下功能: (1)设备分配按照设备类型和相应的分配算法决定将 I/0 设备分配给哪一个要求该设备 的进程。在分配设备的同时还要分配相应的控制器和通道,以保证 I/0 设备与 CPU 之间有传 递信息的通路。凡未分配到所需设备的进程被放入一个等待队列。实现这一功能的是设备 分配程序。 (2)设备控制完成这一功能的是设备处理程序。为实现这一功能,设备处理程序首先根据 用户提出的 I/O 请求构成相应的通道程序,交给通道去执行:然后启动指定的设备进行 I/0 操作;最后要对通道发来的中断请求作出及时的响应和处理。 (3)实现其他功能其他功能包括对缓冲区的管理功能。为改善系统的可适应性和可扩充 性,应使用户程序与实际使用的物理设备无关,即实现设备独立性。 6.1.2 I/0 系统的硬件结构 1.I/O 系统的相关概念 (1)设备:是指计算机系统中除中央处理机、主存和系统控制台以外的所有设备。通常也 称为外部设备或 I/0 设备。 (2)输入输出操作:是主存与外设的介质之间的数据传输操作。多道程序设计技术引入系 统之后,I/0 操作的能力不仅影响系统的通用性和扩充性,而且也成为系统综合处理能力及 性能价格比的重要因素。 (3)通道:又称 I/O 处理机。它能完成主存和外设之间的信息传输,并能与中央处理机并 行操作。通道从属于中央处理机。 (4)设备控制器:设备控制器是 CPU 与 I/O 设备之间的硬件接口,它接收从 CPU 发来的命 令,并去控制一个或多个设备。在微型机和小型机中,它通常是一块可以插入主板扩展槽的 印刷电路板,也叫接口卡。 (5)总线系统:在计算机系统中的各部件,如 CPU、存储器以及各种 I/O 设备之间的联 系,都是通过总线来实现的。它的性能是用总线的时钟频率、带宽和相应的总线传送速率等 指标来衡量的。随着计算机技术的发展,总线技术已由早期的 ISA 总线发展为 EISA 总线
VESA总线,进而又演变为当前广为流行的PCI总线 2.I/0设备类型 (1)按使用特性分类:存储设备;输入/输出设备;终端设备;脱机设备 (2)按所属关系分类:系统设备;用户设备。 (3)按资源分配角度分类:独占设备(如打印机、磁带机):共享设备(如磁盘):虚拟设 备(虚拟设备是指通过虚拟技术将一台独占的物理设备变战若干台逻辑设备,以供若干个进 程同时使用) 4)按传输数据数量分类:字符设备(如终端、打印机):块设备(如磁盘、磁带)。 (5)按传输速率分类:低速设备(如键盘、鼠标的传送速率仅为每秒钟几个字节至数百 个字节)、中速设备(如行式打印机、激光打印机的传送速率一般为每秒钟数千个字节至数 万个字节)和高速设备(如磁盘机、光盘机的传送速率可达每秒钟数百个字节至数十兆字 节) 3.I/0设备的物理特性 不同I/0设备具有不同的物理特性 (1)磁盘:磁盘是一种直接存取存储设备,可分为软盘和硬盘。磁盘的一个物理块的物 理地址由三部分组成:柱面号、磁道号和物理记录号。磁盘由若干个圆盘组成,每个圆盘有 上、下两个盘面,每个盘面有一个磁头,其中有一个称为伺服磁头,是用于控制定位的。磁盘 执行一次操作时,盘组旋转,由存取臂带动所有的磁头来回移动。盘组旋转一周,对应的磁头 在盘上的移动轨迹称磁道,一个磁道又可分许多扇区 (2)时钟:时钟也是一种外部设备,它既不是块设备,也不是字符设备。时钟可以以设 备驱动程序的形式进行工作 (3)终端:每台计算机都有一个或多个终端。终端的种类、型号较多。根据操作系统 如何与终端通信,终端可分为三类:(1)存储映像终端z(2)RS-232串行接口终端川3〉网络 接口终端。 4.I/0系统的硬件组织 (1)I/0控制方式:循环I/0测试方式:程序中断I/0方式:DMA方式:通道方式 (2)设备控制器:I/0设备通常由机械和电子部件组成。其中的电子部件称为设备控 制器,它处于CPU和设备之间,通常它由三部分组成:设备控制器与CPU的接口:设备控制 器与设备的接口:I/0逻辑。 6.1.3I/0控制方式 1.程序I/0方式 早期的计算机系统中,由于无中断机构,处理机对I/0设备的控制采用程序I/0方式,或 称"忙等”方式 2.中断驱动I/0控制方式 由于CPU可以与设备并行工作,比起程序I/0方式来,中断驱动方式成百倍地提高了CPU 的利用率,但它每传送几个字节(具体字节数由数据缓冲寄存器的大小决定)便请求一次中 断,故CPU仍需花费大量的时间来处理频繁的I/0中断。 3.直接存储器访问(DMA)I/0控制方式 在DMA控制方式下,仅在传送一个数据块的开始和结束时,才需CPU干预,整块数据的传 送是在DMA控制器的控制下直接完成的,因此,较之中断驱动方式,DMA控制方式又极大地提 高了CPU的利用率。但当我们需要一次传送多个数据块时,则仍须由CPU分别发出多条I/0 指令并进行多次中断处理。 4.I/0通道控制方式
VESA 总线,进而又演变为当前广为流行的 PCI 总线。 2.I/O 设备类型 (1)按使用特性分类:存储设备;输入/输出设备;终端设备;脱机设备。 (2)按所属关系分类:系统设备;用户设备。 (3)按资源分配角度分类:独占设备(如打印机、磁带机);共享设备(如磁盘);虚拟设 备(虚拟设备是指通过虚拟技术将一台独占的物理设备变战若干台逻辑设备,以供若干个进 程同时使用)。 (4)按传输数据数量分类:字符设备(如终端、打印机);块设备(如磁盘、磁带)。 (5)按传输速率分类:低速设备(如键盘、鼠标的传送速率仅为每秒钟几个字节至数百 个字节)、中速设备(如行式打印机、激光打印机的传送速率一般为每秒钟数千个字节至数 万个字节)和高速设备(如磁盘机、光盘机的传送速率可达每秒钟数百个字节至数十兆字 节)。 3.I/O 设备的物理特性 不同 I/0 设备具有不同的物理特性。 (1)磁盘:磁盘是一种直接存取存储设备,可分为软盘和硬盘。磁盘的一个物理块的物 理地址由三部分组成:柱面号、磁道号和物理记录号。磁盘由若干个圆盘组成,每个圆盘有 上、下两个盘面,每个盘面有一个磁头,其中有一个称为伺服磁头,是用于控制定位的。磁盘 执行一次操作时,盘组旋转,由存取臂带动所有的磁头来回移动。盘组旋转一周,对应的磁头 在盘上的移动轨迹称磁道,一个磁道又可分许多扇区。 (2)时钟:时钟也是一种外部设备,它既不是块设备,也不是字符设备。时钟可以以设 备驱动程序的形式进行工作。 (3)终端:每台计算机都有一个或多个终端。终端的种类、型号较多。根据操作系统 如何与终端通信,终端可分为三类:(1〉存储映像终端 z(2〉RS-232 串行接口终端川 3〉网络 接口终端。 4.I/0 系统的硬件组织 (1)I/0 控制方式:循环 I/0 测试方式;程序中断 I/0 方式;DMA 方式;通道方式。 (2)设备控制器:I/0 设备通常由机械和电子部件组成。其中的电子部件称为设备控 制器,它处于 CPU 和设备之间,通常它由三部分组成:设备控制器与 CPU 的接口;设备控制 器与设备的接口;I/O 逻辑。 6.1.3 I/O 控制方式 1.程序 I/0 方式 早期的计算机系统中,由于无中断机构,处理机对 I/0 设备的控制采用程序 I/O 方式,或 称"忙等"方式。 2.中断驱动 I/O 控制方式 由于CPU可以与设备并行工作,比起程序I/O方式来,中断驱动方式成百倍地提高了CPU 的利用率,但它每传送几个字节(具体字节数由数据缓冲寄存器的大小决定)便请求一次中 断,故 CPU 仍需花费大量的时间来处理频繁的 I/0 中断。 3.直接存储器访问(DMA)I/O 控制方式 在 DMA 控制方式下,仅在传送一个数据块的开始和结束时,才需 CPU 干预,整块数据的传 送是在 DMA 控制器的控制下直接完成的,因此,较之中断驱动方式,DMA 控制方式又极大地提 高了 CPU 的利用率。但当我们需要一次传送多个数据块时,则仍须由 CPU 分别发出多条 I/0 指令并进行多次中断处理。 4.I/O 通道控制方式
I/0通道方式比DMA方式进一步减少了CPU对I/0的干预,它把以一个数据块的读(或写) 为单位的干预,减少为以一组数据块的读(或写)为单位的干预,同时,又实现了CP、通道和 I/0设备三者的并行操作,从而更有效地提高了整个系统的资源利用率。 (1)通道类型 ①字节多路通道:是为连接大量慢速外围设备而设置的。它以字节为单位交叉地工作 ②选择通道:它用于连接磁带、磁鼓和磁盘等快速设备,以成组方式工作。每次传送一 批数据,但在一段时间内只能为一台设备服务 ③数组多路通道:它类似于选择通道又类似于字节多路通道,按次序交叉传送一批批 信息,实质上是对通道程序采用多道程序设计技术的硬件实现 (2)多通路I/0系统 ①由于通道的成本高,所以通道的数量远比设备少。这样,会因通道数量不足而产生 种″瓶颈″现象,影响整个系统的处理能力 ②为了使设备能得到充分利用,在通道、控制器和设备的连接上,采用一个I/0设备 与多个控制器相连,一个控制器与多个通道相连。这样,既实现了多通路I/0系统,提高了设 备利用的灵活性,也提高了系统的可靠性 ③设备管理程序通过对所有通路上状态信息的管理,找出一条能用的通路来使用所请 求的设备。 (3)通道命令和通道程序 通道命令分为数据传送类、设备控制类和转移类三类。 每条通道命令由四个字段组成z操作码、数据主存始址、特征位、字节计数 在通道进行输入/输出操作期间,要访问两个固定内存单元:通道地址字(CAW)和通道状 态字(CSW)。 ①通道地址字(CAW):由存储保护钥和通道程序的起始地址组成 ②通道状态宇(CSW):包含有通道状态的编码信息。 (4)CPU和通道间的通讯 输入/输出指令:是中央处理机的指令。在一般计算机中,这类指令均为特权指令,只能 在管态下运行 CPU和通道间的通讯CPU和通道之间的关系是主从关系,CPU是主设备,通道是从设备。 其通讯方式是 ①由CPU向I/O通道发I/0指令,命令通道工作,并检查其工作情况 ②通道以中断方式向CPU汇报,等候CPU处理。 6.1.4I/0系统的软件组织 1.I/0软件设计的目标 (1)与设备无关性。 (2)错误处理 (3)步/异步传输。 (4)能处理独占设备和共享设备的1/0操作 2.I/0采统的四个层次 为实现以上四个目标,I/0系统应组织成以下四个层次 (1)中断处理程序:它位于I/0系统的最低层。当进程需要进行I/0操作时,操作系统将 该进程挂起,即进入阻塞,直至I/0操作结束并发生中断 (2)设备驱动程序:它包括了所有与设备有关的代码。每一个设备驱动程序只处理一种设 备或一类密切相关的设备。其功能是从与设备无关的软件中接收抽象的请求,并执行该请
I/0通道方式比DMA方式进一步减少了CPU对I/0的干预,它把以一个数据块的读(或写) 为单位的干预,减少为以一组数据块的读(或写)为单位的干预,同时,又实现了 CPU、通道和 I/O 设备三者的并行操作,从而更有效地提高了整个系统的资源利用率。 (1)通道类型 ①字节多路通道:是为连接大量慢速外围设备而设置的。它以字节为单位交叉地工作。 ②选择通道:它用于连接磁带、磁鼓和磁盘等快速设备,以成组方式工作。每次传送一 批数据,但在一段时间内只能为一台设备服务。 ③数组多路通道:它类似于选择通道又类似于字节多路通道,按次序交叉传送一批批 信息,实质上是对通道程序采用多道程序设计技术的硬件实现。 (2)多通路 I/O 系统 ①由于通道的成本高,所以通道的数量远比设备少。这样,会因通道数量不足而产生一 种"瓶颈"现象,影响整个系统的处理能力。 ② 为了使设备能得到充分利用,在通道、控制器和设备的连接上,采用一个 I/0 设备 与多个控制器相连,一个控制器与多个通道相连。这样,既实现了多通路 I/0 系统,提高了设 备利用的灵活性,也提高了系统的可靠性。 ③设备管理程序通过对所有通路上状态信息的管理,找出一条能用的通路来使用所请 求的设备。 (3)通道命令和通道程序 通道命令分为数据传送类、设备控制类和转移类三类。 每条通道命令由四个字段组成 z 操作码、数据主存始址、特征位、字节计数。 在通道进行输入/输出操作期间,要访问两个固定内存单元:通道地址字〈CAW)和通道状 态字(CSW)。 ① 通道地址字(CAW):由存储保护钥和通道程序的起始地址组成。 ② 通道状态宇(CSW):包含有通道状态的编码信息。 (4)CPU 和通道间的通讯 输入/输出指令:是中央处理机的指令。在一般计算机中,这类指令均为特权指令,只能 在管态下运行。 CPU和通道间的通讯。CPU和通道之间的关系是主从关系,CPU是主设备,通道是从设备。 其通讯方式是: ①由 CPU 向 I/O 通道发 I/0 指令,命令通道工作,并检查其工作情况。 ②通道以中断方式向 CPU 汇报,等候 CPU 处理。 6.1.4 I/0 系统的软件组织 1.I/O 软件设计的目标 (1)与设备无关性。 (2)错误处理。 (3)步/异步传输。 (4)能处理独占设备和共享设备的 I/0 操作。 2.I/O 采统的四个层次 为实现以上四个目标,I/O 系统应组织成以下四个层次: (1)中断处理程序:它位于 I/O 系统的最低层。当进程需要进行 I/O 操作时,操作系统将 该进程挂起,即进入阻塞,直至 I/O 操作结束并发生中断。 (2)设备驱动程序:它包括了所有与设备有关的代码。每一个设备驱动程序只处理一种设 备或一类密切相关的设备。其功能是从与设备无关的软件中接收抽象的请求,并执行该请
求 (3)与设备无关的I/0软件:它提供适用于所有设备的常用I/0功能,并向用户层软件提 供一个一致的接口 (4)用户空间的I/0软件:这是与用户程序链接在一起的库例程,或是在核心外运行的程 序。系统调用包括I/0系统调用,通常是库例程调用 6.1.5缓冲技术 1.缓冲技术的基本思想 (1)缓冲技术的基本思想是在CPU和外设之间设立缓冲区,用于暂存CP和外设之间交换 的数据,从而缓和CPU与外设速度不匹配所产生的矛盾。 2)缓冲技术包括输入缓冲和输出缓冲 (3)缓冲区按使用方式分为专用缓冲区和通用缓冲区。 (4)缓冲区按组织方式分为单缓冲、双缓冲和缓冲池。 2.儿种缓冲区的特点与作用 (1)单缓冲:是指在操作系统中设置一个缓冲区,供用户进程和操作系统之间交换数据使 用 (2)双缓冲:就是在操作系统中为某一设备设置两个缓冲区,当一个缓冲区中的数据尚未 被处理时,可用另一缓冲区存放从设备读入的数据,以此来减小CPU和I/0设备之间速度的 差异。 (3)缓冲池:为了克服专用缓冲区的缺陷,可采用公用缓冲技术,即缓冲池。 缓冲池的组成:①空闲缓冲区;②装满输入数据的缓冲区;③装满输出数据的缓冲区。 缓冲池的工作方式有:①收容输入工作方式:②提取输入工作方式;③收容输出工作方式: ④提取输出工作方式 缓冲池管理的基本操作有 ① gets(type),从队列的队首摘下一个缓冲区。 ② putbus(type, number),将 number所指示的缓冲区,挂在type队列上 为了提高设备的读写效率,操作系统广泛采用了预先读与延迟写技术 6.1.7设备分配 每当进程提出I/0请求时,操作系统将按一定的策略把设备分配给它。在有的系统中 为了确保CPU和设各间能进行通信,还必须为进程分配相应的控制器和通道。 1.设备分配中的数据结构 在进行设备分配时,必须通过一些数据结构来了解系统中设备和控制器的情况。相应的 数据结构有:设备控制表(DCT)、控制器控制表(COCT)、通道控制表(CHCT)、和系统设备表 每个设备有一张设备控制表,用来记录相应设备的各种属性,其中的内容包括:设备的 类型、设备的标识符、设各的状态、设备等待队列指针、与设备连接的控制器的COCT指针 重复执行次数等。其中,设备的状态中有用来指示设备是否正在使用的”忙/闲″标志,以及设 备是否因相连的控制器或通道正在忙而无法启动的"等待/不等待"标志:设备等待队列指针 指向等待使用该设备的所有进程的PCB所组成的队列:重复次数则规定了设备在工作中发生 错误而未能成功传送数据时,可以重新传送的次数。 系统还为每个控制器都设置了一张用于记录相应控制器情况的控制器控制表,为每个 通道都设置了一张用于记录相应通道情况的通道控制表。 另外,整个系统中还设置了一张系统设备表,用来登记系统中所有设备的情况,每个设
求。 (3)与设备无关的 I/0 软件:它提供适用于所有设备的常用 I/0 功能,并向用户层软件提 供一个一致的接口。 (4)用户空间的 I/0 软件:这是与用户程序链接在一起的库例程,或是在核心外运行的程 序。系统调用包括 I/0 系统调用,通常是库例程调用。 6.1.5 缓冲技术 1.缓冲技术的基本思想 (1)缓冲技术的基本思想是在 CPU 和外设之间设立缓冲区,用于暂存 CPU 和外设之间交换 的数据,从而缓和 CPU 与外设速度不匹配所产生的矛盾。 (2)缓冲技术包括输入缓冲和输出缓冲。 (3)缓冲区按使用方式分为专用缓冲区和通用缓冲区。 (4)缓冲区按组织方式分为单缓冲、双缓冲和缓冲池。 2.儿种缓冲区的特点与作用 (1)单缓冲:是指在操作系统中设置一个缓冲区,供用户进程和操作系统之间交换数据使 用。 (2)双缓冲:就是在操作系统中为某一设备设置两个缓冲区,当一个缓冲区中的数据尚未 被处理时,可用另一缓冲区存放从设备读入的数据,以此来减小 CPU 和 I/O 设备之间速度的 差异。 (3)缓冲池:为了克服专用缓冲区的缺陷,可采用公用缓冲技术,即缓冲池。 缓冲池的组成:①空闲缓冲区;②装满输入数据的缓冲区;③装满输出数据的缓冲区。 缓冲池的工作方式有:①收容输入工作方式;②提取输入工作方式;③收容输出工作方式; ④提取输出工作方式。 缓冲池管理的基本操作有: ①getbd(type),从队列的队首摘下一个缓冲区。 ②putbuf(type,number),将 number 所指示的缓冲区,挂在 type 队列上。 为了提高设备的读写效率,操作系统广泛采用了预先读与延迟写技术。 6.1.7 设备分配 每当进程提出 I/O 请求时,操作系统将按一定的策略把设备分配给它。在有的系统中, 为了确保 CPU 和设各间能进行通信,还必须为进程分配相应的控制器和通道。 1.设备分配中的数据结构 在进行设备分配时,必须通过一些数据结构来了解系统中设备和控制器的情况。相应的 数据结构有:设备控制表(DCT)、控制器控制表(COCT)、通道控制表(CHCT)、和系统设备表 (SDT)。 每个设备有一张设备控制表,用来记录相应设备的各种属性,其中的内容包括:设备的 类型、设备的标识符、设各的状态、设备等待队列指针、与设备连接的控制器的 COCT 指针、 重复执行次数等。其中,设备的状态中有用来指示设备是否正在使用的"忙/闲"标志,以及设 备是否因相连的控制器或通道正在忙而无法启动的"等待/不等待"标志;设备等待队列指针 指向等待使用该设备的所有进程的 PCB 所组成的队列:重复次数则规定了设备在工作中发生 错误而未能成功传送数据时,可以重新传送的次数。 系统还为每个控制器都设置了一张用于记录相应控制器情况的控制器控制表,为每个 通道都设置了一张用于记录相应通道情况的通道控制表。 另外,整个系统中还设置了一张系统设备表,用来登记系统中所有设备的情况,每个设
备占一个表目,其中登记了相应设备的设备类型、设备标识符、设备控制表指针与设备驱动 程序入口地址等内容。 2.设备分配时应考虑的因素 (1)设备的固有属性 设备的固有属性决定了设各的使用方式,进而决定了设备的分配方式。某些设备的固有属 性要求相应设备在一段时间内只能被一个进程独享,对它们只能采用独享分配方式;而另 些设备则允许被多个进程同时共享,因此可将它们同时分配给多个进程使用;还有一些设备 虽然要求被独享,但可通过虚拟设备技术将它们改造成可同时共享的虚拟设备,此时便可将 它们同时分配给多个进程使用 (2)设备的分配算法 在一个系统中,请求设备的进程数目往往多于设备数目,故在多个进程竞争同个设备时, 系统必须按照某种算法将设备分配给其中的一个进程。常用的设备分配算法有先来先服务 和高优先权优先两种。 (3)设备分配中的安全性 在进程运行过程中,如果每当进程发出I/0请求后,它便进入阻塞状态,直到其I/0操作 完成时才被唤醒,则设备的分配不会引起死锁。如果进程发出I/0请求后仍可继续运行,需 要时又可发出下一个I/0请求,则可能会造成死锁,在这种分配方式下,设备分配程序应对每 次设备分配产生的新状态进行安全性检査,仅当检查结果是安全时,才能进行设备分配。 (4)设备独立性 设备的独立性是指应用程序独立于具体使用的物理设备,它可提高设备分配的灵活性 和设备的利用率。为了实现设备独立性,在应用程序中应使用逻辑设备名称来请求使用某类 设备:而系统中必须设置一张逻辑设备表LUT,其中每个表目中包含了逻辑设备名、物理设备 名和设备驱动程序入口地址三项:当应用程序用逻辑设备名请求分配I/0设备时,系统必须 为它分配相应的物理设备,并在L丌T中建立一个表目,以后进程利用该逻辑设备名请求U0操 作时,便可从中得到物理设各名和驱动程序入口地址 3独占设备的分配程序 在一个系统中,如果使用m通道并采用单通路的连接方式(即每个设备只与一个设备控 制器相连,而每个设备控制器又只与一个通道相连),则当某进程以物理设备名对一独占设 备提出Ⅰ/0请求时,系统的设备分配程序可按下述步骤进行设备分配。 (1)分配设备 根据进程给出的物理设备名,查找系统设备表SDT,从中找出该设备的设备控制表DCT 再检查DCT中的设备状态字段,若设备处于忙状态,则将请求I/0的进程插入设备等待队列; 否则,便按照一定的算法来计算本次设备分配的安全性。若分配不会导致系统进入不安全状 态,便将设备分配给请求进程:否则仍将该进程插入设备等待队列 (2)分配控制器 在系统把设备分配给请求进程后,再根据DCT中的与设备相连接的COCT指针找出对自 应的控制器控制表αCT,检査αoCT的状态字段。若控制器忙,便将请求进程插入控制器等待 队列:否则,便将该控制器分配给请求进程。 (3)分配通道 分配控制器后,通过C℃T又可找到与该控制器连接的通道的通道控制表CHCT检查CHCT 的状态字段。若通道忙,则将请求进程插入该通道的等待队列中;否则,便将该通道分配给进 为了获得设备独立性,进程应使用逻辑设备名来请求I/0,此时,系统先从SDT中找出第 个该类设备的DCT,若设备忙,则又可找出第二个该类设备的DCT,仅当所有该类设备都忙
备占一个表目,其中登记了相应设备的设备类型、设备标识符、设备控制表指针与设备驱动 程序入口地址等内容。 2.设备分配时应考虑的因素 (1)设备的固有属性 设备的固有属性决定了设各的使用方式,进而决定了设备的分配方式。某些设备的固有属 性要求相应设备在一段时间内只能被一个进程独享,对它们只能采用独享分配方式;而另一 些设备则允许被多个进程同时共享,因此可将它们同时分配给多个进程使用;还有一些设备 虽然要求被独享,但可通过虚拟设备技术将它们改造成可同时共享的虚拟设备,此时便可将 它们同时分配给多个进程使用。 (2)设备的分配算法 在一个系统中,请求设备的进程数目往往多于设备数目,故在多个进程竞争同个设备时, 系统必须按照某种算法将设备分配给其中的一个进程。常用的设备分配算法有先来先服务 和高优先权优先两种。 (3)设备分配中的安全性 在进程运行过程中,如果每当进程发出 I/O 请求后,它便进入阻塞状态,直到其 I/0 操作 完成时才被唤醒,则设备的分配不会引起死锁。如果进程发出 I/O 请求后仍可继续运行,需 要时又可发出下一个 I/O 请求,则可能会造成死锁,在这种分配方式下,设备分配程序应对每 次设备分配产生的新状态进行安全性检查,仅当检查结果是安全时,才能进行设备分配。 (4)设备独立性 设备的独立性是指应用程序独立于具体使用的物理设备,它可提高设备分配的灵活性 和设备的利用率。为了实现设备独立性,在应用程序中应使用逻辑设备名称来请求使用某类 设备:而系统中必须设置一张逻辑设备表 LUT,其中每个表目中包含了逻辑设备名、物理设备 名和设备驱动程序入口地址三项:当应用程序用逻辑设备名请求分配 I/0 设备时,系统必须 为它分配相应的物理设备,并在 LUT 中建立一个表目,以后进程利用该逻辑设备名请求 UO 操 作时,便可从中得到物理设各名和驱动程序入口地址 3.独占设备的分配程序 在一个系统中,如果使用 m 通道并采用单通路的连接方式(即每个设备只与一个设备控 制器相连,而每个设备控制器又只与一个通道相连),则当某进程以物理设备名对一独占设 备提出 I/O 请求时,系统的设备分配程序可按下述步骤进行设备分配。 (1)分配设备 根据进程给出的物理设备名,查找系统设备表 SDT,从中找出该设备的设备控制表 DCT。 再检查 DCT 中的设备状态字段,若设备处于忙状态,则将请求 I/O 的进程插入设备等待队列; 否则,便按照一定的算法来计算本次设备分配的安全性。若分配不会导致系统进入不安全状 态,便将设备分配给请求进程:否则仍将该进程插入设备等待队列。 (2)分配控制器 在系统把设备分配给请求进程后,再根据 DCT 中的与设备相连接的 COCT 指针找出对自 应的控制器控制表 COCT,检查 COCT 的状态字段。若控制器忙,便将请求进程插入控制器等待 队列:否则,便将该控制器分配给请求进程。 (3)分配通道 分配控制器后,通过COCT又可找到与该控制器连接的通道的通道控制表CHCT检查CHCT 的状态字段。若通道忙,则将请求进程插入该通道的等待队列中;否则,便将该通道分配给进 程。 为了获得设备独立性,进程应使用逻辑设备名来请求I/0,此时,系统先从SDT中找出第 一个该类设备的 DCT,若设备忙,则又可找出第二个该类设备的 DCT,仅当所有该类设备都忙
时,才把进程插入该类设备的等待队列中:而只要有一个该类设备可用,系统便可进一步计 算分配该设备的安全性。同样,对使用多通路连接以防止″瓶颈″现象的系统,控制器和通道 的分配也可能要经过几次反复。 只有在设备、控制器和通道三者都分配成功时,这次设备的分配才算成功,然后,系统便 可启动该设备进行数据传送。 6.1.8SP0Ling技术 SPOOLing技术,即同时联机外围操作技术,又称假脱机技术,是指在多道程序环境下, 利用多道程序中的一道或两道程序来模拟脱机输入输出中的外围控制机的功能,以达到"脱 机″输入输出的目的,即在联机的条件下,将数据从输入设备传送到磁盘,或从磁盘传送到输 出设备。通过它可以将一台独占的物理设备虚拟为多台逻辑设备,从而使该物理设备可被多 个进程共享 1. SPOOLing系统的组成 SPOOLing技术是对脱机输入、输出系统的模拟,它必须建立在具有多道程序功能的操作 系统上,而且还需要得到髙速随机外存(通常采用磁盘)的支持。SP0 OWing系统主要由以下三 部分组成: (1)输入井和输出井:这是在磁盘上开辟的两个大存储空间。输入井是模拟脱机输入时 的磁盘,用于暂存U0设备输入的数据:输出井是模拟脱机输出时的磁盘,用来暂存用户程序 的输出数据。 (2)输入缓冲区和输出缓冲区。这是在内存中开辟的两个缓冲区。输入缓冲区用于暂存 由输入设备送来的数据,以后再传送到输入井:输出缓冲区用来暂存从输出井送来的数据, 以后再传送给输出设备 (3)输入进程SPi和输出进程SR。这是内存中的两个进程。输入进程SPi模拟脱机输入 时的外围控制机,将用户要求的数据从输入设备通过输入缓冲区再送到输入井,当CPU需要 输入数据时,直接从输入井读入内存:输出进程SP。模拟脱机输出时的外围控制机,把用户要 求输出的数据,先从内存送到输出井,待输出设备空闲时,再将输出井中的数据经过输出缓 冲区送到输出设备上。 2.利用SP0 LIng技术共享打印机 利用 SPOOLing技术可将独占的打印机改造为一台供多个用户共享的设备,这种共享打 印机技术已被广泛地用于多用户系统和局域网络中。当用户进程请求打印输出时, SPOOLing 系统立即同意为它打印输出,但并不真正把打印机分配给该用户进程,而只为它做两件事: (1)由输出进程在输出井中为之申请一个空闲的磁盘块区,并将要打印的数据送入其中。 (2)输出进程再为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入 其中,然后将该表挂到打印机的请求打印队列上。 如果打印机空闲,输出进程将从请求打印队列的队首取出一张请求打印表,根据表中的 要求将要打印的数据从输出井传送到内存缓冲区,再由打印机进行打印。打印完后,输出进 程将再检查请求打印队列中是否还有待打印的请求表,若有则继续打印,否则便将自己阻塞 起来,并在下次再有打印请求时被唤醒 6.1.9设备处理 设备处理是指在系统为请求I/0的进程分配了设备及相应的数据通路之后,启动设备去 进行实际的Ij0操作,它通常由设备驱动程序和Ij0中断服务程序配合完成 1.设备驱动程序 设备驱动程序是1/0进程与设备控制器之间的通信程序,它接收来自上层软件的、抽象
时,才把进程插入该类设备的等待队列中:而只要有一个该类设备可用,系统便可进一步计 算分配该设备的安全性。同样,对使用多通路连接以防止"瓶颈"现象的系统,控制器和通道 的分配也可能要经过几次反复。 只有在设备、控制器和通道三者都分配成功时,这次设备的分配才算成功,然后,系统便 可启动该设备进行数据传送。 6.1.8 SPOOLing 技术 SPOOLing 技术,即同时联机外围操作技术,又称假脱机技术,是指在多道程序环境下, 利用多道程序中的一道或两道程序来模拟脱机输入输出中的外围控制机的功能,以达到"脱 机"输入输出的目的,即在联机的条件下,将数据从输入设备传送到磁盘,或从磁盘传送到输 出设备。通过它可以将一台独占的物理设备虚拟为多台逻辑设备,从而使该物理设备可被多 个进程共享。- 1.SPOOLing 系统的组成 SPOOLing 技术是对脱机输入、输出系统的模拟,它必须建立在具有多道程序功能的操作 系统上,而且还需要得到高速随机外存(通常采用磁盘)的支持。SPOOLing 系统主要由以下三 部分组成: (1)输入井和输出井:这是在磁盘上开辟的两个大存储空间。输入井是模拟脱机输入时 的磁盘,用于暂存 UO 设备输入的数据:输出井是模拟脱机输出时的磁盘,用来暂存用户程序 的输出数据。 (2)输入缓冲区和输出缓冲区。这是在内存中开辟的两个缓冲区。输入缓冲区用于暂存 由输入设备送来的数据,以后再传送到输入井:输出缓冲区用来暂存从输出井送来的数据, 以后再传送给输出设备。 (3)输入进程 SPi 和输出进程 SR。这是内存中的两个进程。输入进程 SPi 模拟脱机输入 时的外围控制机,将用户要求的数据从输入设备通过输入缓冲区再送到输入井,当 CPU 需要 输入数据时,直接从输入井读入内存:输出进程 SP。模拟脱机输出时的外围控制机,把用户要 求输出的数据,先从内存送到输出井,待输出设备空闲时,再将输出井中的数据经过输出缓 冲区送到输出设备上。 2.利用 SPOOLing 技术共享打印机 利用 SPOOLing 技术可将独占的打印机改造为一台供多个用户共享的设备,这种共享打 印机技术已被广泛地用于多用户系统和局域网络中。当用户进程请求打印输出时,SPOOLing 系统立即同意为它打印输出,但并不真正把打印机分配给该用户进程,而只为它做两件事: (1)由输出进程在输出井中为之申请一个空闲的磁盘块区,并将要打印的数据送入其中。 (2)输出进程再为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入 其中,然后将该表挂到打印机的请求打印队列上。 如果打印机空闲,输出进程将从请求打印队列的队首取出一张请求打印表,根据表中的 要求将要打印的数据从输出井传送到内存缓冲区,再由打印机进行打印。打印完后,输出进 程将再检查请求打印队列中是否还有待打印的请求表,若有则继续打印,否则便将自己阻塞 起来,并在下次再有打印请求时被唤醒。 6.1.9 设备处理 设备处理是指在系统为请求 I/0 的进程分配了设备及相应的数据通路之后,启动设备去 进行实际的 IjO 操作,它通常由设备驱动程序和 IjO 中断服务程序配合完成。 1.设备驱动程序 设备驱动程序是 I/O 进程与设备控制器之间的通信程序,它接收来自上层软件的、抽象
的I/0命令,再把它转换成具体要求后,发送给设备控制器,从而启动设备进行数据传送。设 备驱动程序的处理过程如下 1)将抽象要求转换成具体要求。操作系统对用户屏蔽了有关物理设备的具体细节,并提 供给用户一个一致的I/0接口。因此,用户进程或上层软件发出的I/0请求通常只能是一些 抽象的命令,驱动程序必须将这些命令按设备控制器所要求的格式转换成具体的命令,如将 read命令中的盘块号按地址寄存器的格式转换成盘面、磁道及扇区号 2)检査I/0请求的合法性。每种设备都只能完成→组特定的功能,设备驱动程序必须检 查用户提出的I/0请求,若相应设备不支持这次I/0请求,则认为这次I/0请求非法。对某 些设备,如磁盘上的文件操作,若它们的打开方式是读,则用户的写请求也必然被拒绝 (3)读出和检查设备的状态。在启动设备之前,驱动程序要从设备控制器的状态寄存器中 读出设备的状态,仅当它处于空闲状态时,才能启动其设备控制器,否则只能将相应的I/0请 求插入请求I/0的队列。 (4)传送必要的参数。对带有参数的I/0命令,驱动程序必须将这些参数,如读盘时的磁 盘地址、内存地址、本次要传送的字节数等,传送到设备控制器的相应寄存器中。对于字符 设备,若发出的是写命令,驱动程序还必须把输出数据写入控制器的数据寄存器 (5)工作方式的设置。有些设备可具有多种工作方式,典型的情况是利用RS-232接口进 行异步通信。在启动该接口之前,应先按通信规程设定下述参数:波特率、奇偶校验方式 停止位数及数据字节长度等。 (6)启动I/0设备。在完成上述各项准备工作后,驱动程序可以向控制器的命令寄存器传 送相应的命令,启动I/0设备开始I/0操作 驱动程序发出I/0命令后,基本的I/0操作是在设备控制器的控制下进行的。通常I/0 操作所要完成的工作较多,需要一定的时间,因此,执行驱动程序的进程把自己阻塞起来,直 到I/0中断到来时才被唤醒。 2.I/0申断处理程序 I/0设备完成I/0操作后,设备控制器便向CPU发送一I/0中断请求。CFU响应中断后 先保护被中断进程的CPU现场,然后分析中断原因转去执行相应的I/0中断处理程序。 I/0中断处理程序的工作过程如下 (1)检查本次I/0的执行结果。中断处理程序通过读设备控制器的状态寄存器来检查本 次Ⅰ/⑩0操作的完成情况。若本次操作成功,则进行结束处理:否则,根据发生异常的原因做相 应的处理,在允许时,还可按重复次数调用设备驱动程序重新传送数据。最终的I/0执行情 况,将由中断处理程序向上层软件汇报 (2)唤醒被阻塞的相应进程。I/0中断处理程序还必须唤醒等待本次I/0完成的相应进程, 以使它能继续向前推进。若请求I/0的队列中还有I/请求等待处理,则可调用设备驱动程 序进行新一轮的数据传送 当中断处理完成以后,便恢复被中断进程的现场,并通过执行中断返回指令,返回到断点 继续执行被中断的程序。 6.1.9磁盘存储管理 磁盘存储器不仅容量大,存取速度快,、而且可以随机存取,故在现代计算机系统中都配 置了磁盘,并以它为主来存放文件。磁盘I/0速度的高低和磁盘系统的可靠性,都将直接影 响到系统性能。因此,设法改善磁盘系统的性能,已成为现代操作系统的重要任务之 1.磁盘驱动调度的原则 磁盘驱动调度的原则为:先进行移臂调度,再进行旋转调度 2.移臂调度算法
的 I/0 命令,再把它转换成具体要求后,发送给设备控制器,从而启动设备进行数据传送。设 备驱动程序的处理过程如下: (1)将抽象要求转换成具体要求。操作系统对用户屏蔽了有关物理设备的具体细节,并提 供给用户一个一致的 I/0 接口。因此,用户进程或上层软件发出的 I/O 请求通常只能是一些 抽象的命令,驱动程序必须将这些命令按设备控制器所要求的格式转换成具体的命令,如将 read 命令中的盘块号按地址寄存器的格式转换成盘面、磁道及扇区号。 (2)检查 I/O 请求的合法性。每种设备都只能完成→组特定的功能,设备驱动程序必须检 查用户提出的 I/O 请求,若相应设备不支持这次 I/O 请求,则认为这次 I/O 请求非法。对某 些设备,如磁盘上的文件操作,若它们的打开方式是读,则用户的写请求也必然被拒绝。 (3)读出和检查设备的状态。在启动设备之前,驱动程序要从设备控制器的状态寄存器中 读出设备的状态,仅当它处于空闲状态时,才能启动其设备控制器,否则只能将相应的 I/O 请 求插入请求 I/0 的队列。 (4)传送必要的参数。对带有参数的 I/O 命令,驱动程序必须将这些参数,如读盘时的磁 盘地址、内存地址、本次要传送的字节数等,传送到设备控制器的相应寄存器中。对于字符 设备,若发出的是写命令,驱动程序还必须把输出数据写入控制器的数据寄存器。 (5)工作方式的设置。有些设备可具有多种工作方式,典型的情况是利用 RS-232 接口进 行异步通信。在启动该接口之前,应先按通信规程设定下述参数:波特率、奇偶校验方式、 停止位数及数据字节长度等。 (6)启动 I/O 设备。在完成上述各项准备工作后,驱动程序可以向控制器的命令寄存器传 送相应的命令,启动 I/0 设备开始 I/0 操作。 驱动程序发出 I/O 命令后,基本的 I/0 操作是在设备控制器的控制下进行的。通常 I/O 操作所要完成的工作较多,需要一定的时间,因此,执行驱动程序的进程把自己阻塞起来,直 到 I/0 中断到来时才被唤醒。 2.I/O 申断处理程序 I/O 设备完成 I/0 操作后,设备控制器便向 CPU 发送一 I/0 中断请求。CPU 响应中断后, 先保护被中断进程的 CPU 现场,然后分析中断原因转去执行相应的 I/O 中断处理程序。 I/0 中断处理程序的工作过程如下: (1)检查本次 I/0 的执行结果。中断处理程序通过读设备控制器的状态寄存器来检查本 次 I/O 操作的完成情况。若本次操作成功,则进行结束处理:否则,根据发生异常的原因做相 应的处理,在允许时,还可按重复次数调用设备驱动程序重新传送数据。最终的 I/0 执行情 况,将由中断处理程序向上层软件汇报。 (2)唤醒被阻塞的相应进程。I/0中断处理程序还必须唤醒等待本次I/O完成的相应进程, 以使它能继续向前推进。若请求 I/0 的队列中还有 I/O 请求等待处理,则可调用设备驱动程 序进行新一轮的数据传送。 当中断处理完成以后,便恢复被中断进程的现场,并通过执行中断返回指令,返回到断点 继续执行被中断的程序。 6.1.9 磁盘存储管理 磁盘存储器不仅容量大,存取速度快,、而且可以随机存取,故在现代计算机系统中都配 置了磁盘,并以它为主来存放文件。磁盘 I/O 速度的高低和磁盘系统的可靠性,都将直接影 响到系统性能。因此,设法改善磁盘系统的性能,已成为现代操作系统的重要任务之一 1.磁盘驱动调度的原则 磁盘驱动调度的原则为:先进行移臂调度,再进行旋转调度。 2.移臂调度算法
(1)先来先服务算法(FCFS):FCFS按照输入/输出请求到达的顺序,逐一完成访问请求。 (2)最短查找时间优先法(SSTF):SSTF总是先完成距当前存取臂距离最近的柱面上的输入 /输出请求 (3)扫描法(SCAN):采用扫描法时,存取臂从磁盘的一端出发,向另一端移动,遇到访问的 柱面就完成访问请求,直至到达磁盘的另一端,再倒转过来,继续完成这一方向上的访问请 求 4)电梯调度算法:电梯调度算法是改进的扫描法。当存取臂仅需移到一个方向最远的所 请求的柱面后,如果没有访问请求了,存取臂就改变方向。 3.提高磁盘I/0速度的方法 磁盘的Ⅰ⑩0速度远低于对内存的访问速度,通常要低上4-6个数量级,这使得磁盘存储 系统很容易成为计算机系统的瓶颈。因此,人们便千方百计地去提高磁盘I/0的速度。下面 将介绍几种提高磁盘I/0速度的常用方法 (1)磁盘高速缓存( Disk cache):磁盘高速缓存是在内存中为磁盘块设置的一个缓冲区, 其中存放有磁盘中某些盘块的副本。当有一进程请求访问某个盘块中的数据时,系统首先检 査该盘块是否在磁盘高速缓存中,如果在,则无需读盘而可直接从高速缓存中提取数据交付 给请求进程,从而使本次的访问速度提高4-6个数量级:否则,应先从磁盘中将所要访问的数 据读入并交付给请求进程,同时也将数据送高速缓存 ()提前读:提前读是指在读当前盘块的同时,将下一个可能要访问到的盘块中的数据也 读入缓冲区。这样,当要读下一个盘块中的数据时,由于它们己被提前读入缓冲区,便可直接 从缓冲区中取得所需数据,而无需启动磁盘。用户对文件进行访问时,经常采用顺序访问的 方式,因此,可采用提前读来有效地减少读数据的时间,从而提高磁盘I/0的速度 (3)延迟写:在写盘块时,本应将对应缓冲中的数据立即写盘,但考虑到该盘块中的数据 在不久之后可能还会被再次访问,因而并不立即将对应缓神区中的数据写入磁盘,而只是将 它置上”延迟写”标志并挂到空闲缓冲队列的末尾b当该缓冲医移到空闲缓冲队列的首部,并 作为空闲缓冲被分配出去时,才将缓冲区中的数据写入磁盘。只要延迟写块仍在空闲缓冲队 列中,任何要求访问该盘块的进程,都可直接从其中读出数据或将数据写入其中,而不必去 访问磁盘,因此,可有效地提高磁盘I/0的速度 (4)优化物理块布局:优化文件物理块的分布,从而使访问文件时磁头的移动距离尽量的 小。例如,操作系统中经常将同一条磁道上的若干个盘块组成一簇,并以簇为单位来分配文 件存储空间,这样就可以保证在访问这几个盘块时不必移动磁头,从而减少了磁头的平均移 动距离,提高了磁盘存取的速度 (5)虚拟盘:虚拟盘,又称为RAM盘,它是指利用内存空间去仿真磁盘。该盘的设备驱动 程序,可以接受所有标准的磁盘操作,但这些操作的执行,不是在磁盘上而是在内存中,因此 它们的速度也更快。用户可完全像使用真正的磁盘一样使用虚拟盘。由于虚拟盘是易失性 存储器,当系统或电源发生故障或者系统重新启动时,其中的数据将会丢失,因此,虚拟盘通 常只用来存放临时性的文件。 (6)廉价磁盘冗余阵列(RAID) 廉价磁盘冗余阵列RAID是利用一台磁盘阵列控制器,来统一管理和控制一组(几台到几 十台)磁盘驱动器,从而组成一个高度可靠的、快速的大容量磁盘系统 操作系统将RAID中的一组物理磁盘驱动器看作是一个单个的逻辑磁盘驱动器。用户数 据和系统数据可分布在阵列的所有磁盘中,并可采取并行传输的方式,因此可大大地减少数 据的传输时间。RAID的另一特点是它的高可靠性。 6.2重点难点学习提示
(1)先来先服务算法(FCFS):FCFS 按照输入/输出请求到达的顺序,逐一完成访问请求。 (2)最短查找时间优先法(SSTF):SSTF 总是先完成距当前存取臂距离最近的柱面上的输入 /输出请求。 (3)扫描法(SCAN):采用扫描法时,存取臂从磁盘的一端出发,向另一端移动,遇到访问的 柱面就完成访问请求,直至到达磁盘的另一端,再倒转过来,继续完成这一方向上的访问请 求。 (4)电梯调度算法:电梯调度算法是改进的扫描法。当存取臂仅需移到一个方向最远的所 请求的柱面后,如果没有访问请求了,存取臂就改变方向。 3.提高磁盘 I/0 速度的方法 磁盘的 I/O 速度远低于对内存的访问速度,通常要低上 4-6 个数量级,这使得磁盘存储 系统很容易成为计算机系统的瓶颈。因此,人们便千方百计地去提高磁盘 I/0 的速度。下面 将介绍几种提高磁盘 I/O 速度的常用方法: (1)磁盘高速缓存(Disk Cache):磁盘高速缓存是在内存中为磁盘块设置的一个缓冲区, 其中存放有磁盘中某些盘块的副本。当有一进程请求访问某个盘块中的数据时,系统首先检 查该盘块是否在磁盘高速缓存中,如果在,则无需读盘而可直接从高速缓存中提取数据交付 给请求进程,从而使本次的访问速度提高 4-6 个数量级:否则,应先从磁盘中将所要访问的数 据读入并交付给请求进程,同时也将数据送高速缓存。 (2)提前读:提前读是指在读当前盘块的同时,将下一个可能要访问到的盘块中的数据也 读入缓冲区。这样,当要读下一个盘块中的数据时,由于它们己被提前读入缓冲区,便可直接 从缓冲区中取得所需数据,而无需启动磁盘。用户对文件进行访问时,经常采用顺序访问的 方式,因此,可采用提前读来有效地减少读数据的时间,从而提高磁盘 I/0 的速度。 (3)延迟写:在写盘块时,本应将对应缓冲中的数据立即写盘,但考虑到该盘块中的数据 在不久之后可能还会被再次访问,因而并不立即将对应缓神区中的数据写入磁盘,而只是将 它置上"延迟写"标志并挂到空闲缓冲队列的末尾 b 当该缓冲医移到空闲缓冲队列的首部,并 作为空闲缓冲被分配出去时,才将缓冲区中的数据写入磁盘。只要延迟写块仍在空闲缓冲队 列中,任何要求访问该盘块的进程,都可直接从其中读出数据或将数据写入其中,而不必去 访问磁盘,因此,可有效地提高磁盘 I/0 的速度。 (4)优化物理块布局:优化文件物理块的分布,从而使访问文件时磁头的移动距离尽量的 小。例如,操作系统中经常将同一条磁道上的若干个盘块组成一簇,并以簇为单位来分配文 件存储空间,这样就可以保证在访问这几个盘块时不必移动磁头,从而减少了磁头的平均移 动距离,提高了磁盘存取的速度。 (5)虚拟盘:虚拟盘,又称为 RAM 盘,它是指利用内存空间去仿真磁盘。该盘的设备驱动 程序,可以接受所有标准的磁盘操作,但这些操作的执行,不是在磁盘上而是在内存中,因此 它们的速度也更快。用户可完全像使用真正的磁盘一样使用虚拟盘。由于虚拟盘是易失性 存储器,当系统或电源发生故障或者系统重新启动时,其中的数据将会丢失,因此,虚拟盘通 常只用来存放临时性的文件。 (6)廉价磁盘冗余阵列(RAID) 廉价磁盘冗余阵列 RAID 是利用一台磁盘阵列控制器,来统一管理和控制一组(几台到几 十台)磁盘驱动器,从而组成一个高度可靠的、快速的大容量磁盘系统。 操作系统将 RAID 中的一组物理磁盘驱动器看作是一个单个的逻辑磁盘驱动器。用户数 据和系统数据可分布在阵列的所有磁盘中,并可采取并行传输的方式,因此可大大地减少数 据的传输时间。RAID 的另一特点是它的高可靠性。 6.2 重点难点学习提示
本章的目的是使学生了解操作系统处理用户1/O请求的基本过程,为此应对以下儿个 重点、难点问题作认真的学习。 1.I/0控制方式 I/O控制方式随着计算机技术的发展而不断地由低效的方式演变为高效的方式,故应了 解Ⅰ/0控制方式的演变过程,每种I/0控制方式是如何进行控制的,又是如何提高CPU的利 用率的。 (1)程序I/0方式:因为当时尚未出现中断机构,所以在进行1/0时,CPU不得不花费大 量的时间去测试I/0设备的工作状态,此时CPU完全陷入I/0工作中。 (2)中断驱动Ⅰ/0控制方式:应清楚地了解和掌握在中断机构的支持下,其I/0控制是如 何实现的,CPU的利用率提高了多少 (3)DMAI/O控制方式:应很好地了解此时I/O控制是如何实现的,CPU的效率提高了多少 (4)I/0通道控制方式:系统中配置了通道控制器后,在通道程序的控制下,其传输的基本 单位由一个数据块增为一组数据块。读者应了解什么是通道程序,它是如何实现I/0控制的。 2.缓冲管理 在现代操作系统中,几乎所有的I/0设备在与处理机交换数据时,都使用了缓冲区。因 此,应对下述问题作认真的学习和理解: (1)缓冲的引入是为了提高CPU和I/0设备的并行性。在学习时,读者应了解如果没有缓 冲区,CP和IJ0设备应如何工作:而引入缓冲后,可带来哪些好处。 (2)单缓冲是如何提高I/0速度的,它存在着哪些不足,而双缓冲、循环缓冲又是如何进 步提高CPU和I/O设备的并行性的。 (3)缓冲池是为了解决什么问题而引入的,引入缓冲池后系统将如何处理I/0设备和CPU 间的数据传输 3.设备独立性 者应较深刻地理解下述几个问题 (1)什么是设备独立性:应了解为什么设备独立性能提高设备分配的灵活性?并使I/0重 定向的实现变得更为容易。 2)如何实现设备独立性:应了解该层软件有哪些功能,它是如何实现逻辑设备名到实际 使用的物理设备名之间的转换的 4.虚拟设备和 SPOoLing技术 虚拟性是0的四大特征之-,而实现虚拟设备最常用的技术便是 SPOOLing技术,因此, 必须对下列问题有较清晰的认识和掌握 (1)什么是虚拟设备技术:虚拟设备技术是指把每次仅允许一个进程使用的物理设备,改 造为能同时供多个进程共享的虚拟设备的技术,或者说将一个物理设备变换为多个对应的 逻辑设备。必须了解实现虚拟设备技术的关键是什么。 (2)什么是 SPOOLing技术: SPOOLing也称作假脱机操作,是指在多道程序的环境下,利用多 道程序中的一道或两道程序来模拟外围控制机,从而在联机的条件下实现脱机I/O的功能 应了解 SPOOLing系统由哪几部分组成,并注意对假脱机和脱机两种I/0技术加以比较。 (3)如何共享打印机:应了解在 SPOoLing系统中,当用户申请打印机时,系统将如何为之服 务,并可以通过这个例子来说明为什么 SPOOLing技术可加快I/0的速度,为什么它可以把 台独占的设备变换成可供多个进程共享的虚拟设备 5.设备处理 必须清楚地了解下述内容 (1)设备驱动程序:应了解为了完成任务,设备驱动程序应具备哪些功能。 (2)Ⅰ/0中断处理程序:应了解这些结束处理通常应包含哪些工作
本章的目的是使学生了解操作系统处理用户 I/O 请求的基本过程,为此应对以下儿个 重点、难点问题作认真的学习。 1.I/O 控制方式 I/O 控制方式随着计算机技术的发展而不断地由低效的方式演变为高效的方式,故应了 解 I/0 控制方式的演变过程,每种 I/0 控制方式是如何进行控制的,又是如何提高 CPU 的利 用率的。 (1)程序 I/O 方式:因为当时尚未出现中断机构,所以在进行 I/0 时,CPU 不得不花费大 量的时间去测试 I/0 设备的工作状态,此时 CPU 完全陷入 I/0 工作中。 (2)中断驱动 I/0 控制方式:应清楚地了解和掌握在中断机构的支持下,其 I/0 控制是如 何实现的,CPU 的利用率提高了多少。 (3)DMA I/O控制方式:应很好地了解此时I/0控制是如何实现的,CPU的效率提高了多少。 (4)I/O 通道控制方式:系统中配置了通道控制器后,在通道程序的控制下,其传输的基本 单位由一个数据块增为一组数据块。读者应了解什么是通道程序,它是如何实现 I/0 控制的。 2.缓冲管理 在现代操作系统中,几乎所有的 I/0 设备在与处理机交换数据时,都使用了缓冲区。因 此,应对下述问题作认真的学习和理解: (1)缓冲的引入是为了提高 CPU 和 I/O 设备的并行性。在学习时,读者应了解如果没有缓 冲区,CPU 和 IJO 设备应如何工作:而引入缓冲后,可带来哪些好处。 (2)单缓冲是如何提高 I/O 速度的,它存在着哪些不足,而双缓冲、循环缓冲又是如何进一 步提高 CPU 和 I/O 设备的并行性的。 (3)缓冲池是为了解决什么问题而引入的,引入缓冲池后系统将如何处理 I/0 设备和 CPU 间的数据传输。 3.设备独立性 者应较深刻地理解下述几个问题: (1)什么是设备独立性:应了解为什么设备独立性能提高设备分配的灵活性?并使 I/O 重 定向的实现变得更为容易。 (2)如何实现设备独立性:应了解该层软件有哪些功能,它是如何实现逻辑设备名到实际 使用的物理设备名之间的转换的。 4.虚拟设备和 SPOOLing 技术 虚拟性是 OS 的四大特征之-,而实现虚拟设备最常用的技术便是 SPOOLing 技术,因此, 必须对下列问题有较清晰的认识和掌握: (1)什么是虚拟设备技术:虚拟设备技术是指把每次仅允许一个进程使用的物理设备,改 造为能同时供多个进程共享的虚拟设备的技术,或者说将一个物理设备变换为多个对应的 逻辑设备。必须了解实现虚拟设备技术的关键是什么。 (2)什么是SPOOLing技术:SPOOLing也称作假脱机操作,是指在多道程序的环境下,利用多 道程序中的一道或两道程序来模拟外围控制机,从而在联机的条件下实现脱机 I/0 的功能。 应了解 SPOOLing 系统由哪几部分组成,并注意对假脱机和脱机两种 I/0 技术加以比较。 (3)如何共享打印机:应了解在 SPOOLing 系统中,当用户申请打印机时,系统将如何为之服 务,并可以通过这个例子来说明为什么 SPOOLing 技术可加快 I/0 的速度,为什么它可以把一 台独占的设备变换成可供多个进程共享的虚拟设备。 5.设备处理 必须清楚地了解下述内容: (1)设备驱动程序:应了解为了完成任务,设备驱动程序应具备哪些功能。 (2)I/0 中断处理程序:应了解这些结束处理通常应包含哪些工作
(3)设备处理的过程:应了解CPU是如何响应I/0中断的,以及一次完整的I/操作是如 何在设备驱动程序和I/0中断的配合下完成的。 6.磁盘调度 当有多个进程要求访问磁盘时,系统根据某种算法决定先为哪个请求服务的过程称为磁 盘调度,它的目标是使各进程对磁盘的访问时间最小。应对下述问题有较好的理解: (1)对移动头磁盘,磁盘访问时间应由哪几部分组成,各部分又分别是如何进行计算的, 它可使我们自然地理解,为什么磁盘调度的主要目标是优化平均寻道时间 2)FCFS、SSTF、SCAN、 CSCAN、N-Step-SCAN以及 FSCAN等算法分别是如何进行磁盘调度 的,以及在这些调度算法的演变过程中,分别解决了哪些问题。 7.磁盘高速缓存和廉价磁盘冗余阵列队 磁盘是现代计算机系统中主要的文件存储设备,它的性能好坏将直接影响到整个计算机 系统的性能。而磁盘高速缓存是提高磁盘I/0速度最常用的技术,磁盘冗余阵列队不仅能有 效地提高磁盘I/0的速度,还能很好地改善磁盘系统的可靠性 (1)磁盘高速缓存:磁盘高速缓存是开辟在内存中,专门用来暂存一系列磁盘块信息的缓 冲区。应了解采用磁盘高速缓存后系统应如何访问磁盘,其磁盘I/0的速度提高了多少,当 磁盘高速缓存己满时应如何进行磁盘块的置换,为保证磁盘块中数据的一致性应采取哪些 措施 2)廉价磁盘冗余阵列RAID:应了解RAID是通过什么技术来提高磁盘I/0的速度,又是通 过什么技术来改善磁盘系统的可靠性的,RAID可以分为哪儿级,它带来了哪些好处 6.3典型问题分析和解答 1.什么是设备?按使用特性,设备可以分为哪几类? 答:设备是计算机系统中除中央处理机、主存和系统控制台以外的所有设备,也称为外 部设备或I/0设备。设备按使用特性可以分为存储设备、输入/输出设备、终端设备和脱机 设备。 2.数据传送控制方式有哪兀种?试比较它们各自的优缺点 答:数据传送控制方式有程序直接控制方式、中断控制方式、DMA方式和通道方式4种 程序直接控制方式就是由用户进程来直接控制内存或CPU和外围设备之间的数据传送。它 的优点是控制简单,也不需要多少硬件支持。它的缺点是:CPU和外围设备只能串行工作,设 备之间只能串行工作,无法发现和处理由于设备或其他硬件所产生的错误 中断控制方式是利用向CPU发送中断的方式控制外围设备和CP之间的数据传送。它 的优点是大大提高了CPU的利用率且能支持多道程序和设备的并行操作。它的缺点是:由于 数据缓冲寄存器比较小,如果中断次数较多,仍然占用了大量CPU时间在外围设备较多时,由 于中断次数的急剧增加,可能造成CPU无法响应中断而出现中断丢失的现象如果外围设备速 度比较快,可能会出现C門U来不及从数据缓冲寄存器中取走数据而丢失数据的情况。 DMA方式是在外围设备和内存之间开辟直接的数据交换通路进行数据传送。它的优点 是除了在数据块传送开始时需要CPU的启动指令,在整个数据块传送结束时需要发中断通知 CPU进行中断处理之外,不需要CPU的频繁干涉。它的缺点是在外围设备越来越多的情况下, 多个DMA控制器的同时使用,会引起内存地址的冲突并使得控制过程进一步复杂化。 通道方式是使用通道来控制内存或CPU和外围设备之间的数据传送。通道是一个独立 与CPU的专管输入/输出控制的机构,它控制设备与内存直接进行数据交换。它有自己的通 道指令,这些指令受CPU启动,并在操作结束时向CPU发中断信号。该方式的优点是进一步 减轻TCPU的工作负担,增加了计算机系统的并行工作程度。缺点是增加了额外的硬件,造 价昂贵
(3)设备处理的过程:应了解 CPU 是如何响应 I/0 中断的,以及一次完整的 I/O 操作是如 何在设备驱动程序和 I/0 中断的配合下完成的。 6.磁盘调度 当有多个进程要求访问磁盘时,系统根据某种算法决定先为哪个请求服务的过程称为磁 盘调度,它的目标是使各进程对磁盘的访问时间最小。应对下述问题有较好的理解: (1)对移动头磁盘,磁盘访问时间应由哪几部分组成,各部分又分别是如何进行计算的, 它可使我们自然地理解,为什么磁盘调度的主要目标是优化平均寻道时间。 (2)FCFS、SSTF、SCAN、CSCAN、N-Step-SCAN 以及 FSCAN 等算法分别是如何进行磁盘调度 的,以及在这些调度算法的演变过程中,分别解决了哪些问题。 7.磁盘高速缓存和廉价磁盘冗余阵列队 磁盘是现代计算机系统中主要的文件存储设备,它的性能好坏将直接影响到整个计算机 系统的性能。而磁盘高速缓存是提高磁盘 I/0 速度最常用的技术,磁盘冗余阵列队不仅能有 效地提高磁盘 I/0 的速度,还能很好地改善磁盘系统的可靠性。 (1)磁盘高速缓存:磁盘高速缓存是开辟在内存中,专门用来暂存一系列磁盘块信息的缓 冲区。应了解采用磁盘高速缓存后系统应如何访问磁盘,其磁盘 I/O 的速度提高了多少,当 磁盘高速缓存己满时应如何进行磁盘块的置换,为保证磁盘块中数据的一致性应采取哪些 措施。 (2)廉价磁盘冗余阵列 RAID:应了解 RAID 是通过什么技术来提高磁盘 I/0 的速度,又是通 过什么技术来改善磁盘系统的可靠性的,RAID 可以分为哪儿级,它带来了哪些好处。 6.3 典型问题分析和解答 1.什么是设备?按使用特性,设备可以分为哪几类? 答:设备是计算机系统中除中央处理机、主存和系统控制台以外的所有设备,也称为外 部设备或 I/0 设备。设备按使用特性可以分为存储设备、输入/输出设备、终端设备和脱机 设备。 2.数据传送控制方式有哪兀种?试比较它们各自的优缺点。 答:数据传送控制方式有程序直接控制方式、中断控制方式、DMA 方式和通道方式 4 种。 程序直接控制方式就是由用户进程来直接控制内存或 CPU 和外围设备之间的数据传送。它 的优点是控制简单,也不需要多少硬件支持。它的缺点是:CPU 和外围设备只能串行工作,设 备之间只能串行工作,无法发现和处理由于设备或其他硬件所产生的错误。 中断控制方式是利用向 CPU 发送中断的方式控制外围设备和 CPU 之间的数据传送。它 的优点是大大提高了 CPU 的利用率且能支持多道程序和设备的并行操作。它的缺点是:由于 数据缓冲寄存器比较小,如果中断次数较多,仍然占用了大量 CPU 时间在外围设备较多时,由 于中断次数的急剧增加,可能造成 CPU 无法响应中断而出现中断丢失的现象如果外围设备速 度比较快,可能会出现 CPU 来不及从数据缓冲寄存器中取走数据而丢失数据的情况。 DMA 方式是在外围设备和内存之间开辟直接的数据交换通路进行数据传送。它的优点 是除了在数据块传送开始时需要 CPU 的启动指令,在整个数据块传送结束时需要发中断通知 CPU 进行中断处理之外,不需要 CPU 的频繁干涉。它的缺点是在外围设备越来越多的情况下, 多个 DMA 控制器的同时使用,会引起内存地址的冲突并使得控制过程进一步复杂化。 通道方式是使用通道来控制内存或 CPU 和外围设备之间的数据传送。通道是一个独立 与 CPU 的专管输入/输出控制的机构,它控制设备与内存直接进行数据交换。它有自己的通 道指令,这些指令受 CPU 启动,并在操作结束时向 CPU 发中断信号。该方式的优点是进一步 减轻 T CPU 的工作负担,增加了计算机系统的并行工作程度。缺点是增加了额外的硬件,造 价昂贵