1.05k likes | 1.22k Views
操作系统 Operating System. 教学目的. 通过对本章地讲解是学生理解并掌握设备管理的功能、 I/O 控制方式、缓冲区管理、设备管理,以及磁盘存储管理。. 本章重点:. 输入输出控制方式 缓冲区的管理 设备分配和设备处理 磁盘调度 虚拟设备. 本章难点:. 对通道的理解 Spooling 技术。. 第 5 章 I/O 系统. §5.1 I/O 系统概述 §5.2 I/O 软件的组成 §5.3 Linux 输入 / 输出 §5.4 Windows 2000 输入 /. 第 5 章 I/O 系统. 1. 基本概念
E N D
教学目的 • 通过对本章地讲解是学生理解并掌握设备管理的功能、I/O控制方式、缓冲区管理、设备管理,以及磁盘存储管理。
本章重点: • 输入输出控制方式 • 缓冲区的管理 • 设备分配和设备处理 • 磁盘调度 • 虚拟设备
本章难点: • 对通道的理解 • Spooling技术。
第5章 I/O系统 §5.1 I/O系统概述 §5.2 I/O软件的组成 §5.3 Linux输入/输出 §5.4 Windows 2000输入/
第5章 I/O系统 • 1.基本概念 • I/O系统:在操作系统中负责管理输入输出设备的部分称为I/O系统。 • I/O系统的基本功能:是为数据传输选择输入输出设备;在选定的输入输出设备和CPU(或主存)之间交换数据。 • 操作系统内核通过设备驱动程序与外部设备进行交互。驱动程序是设备与内核其他部分之间的唯一接口。 • 文件系统是对设备操作的组织与抽象,而设备操作则是对文件操作的最终实现。
第5章 I/O系统 • 2.I/O设备分类 字符设备(character device) 按信息组织方式 块设备(block device) 有结构,可寻址 时钟设备 独占设备 按设备使用的可共享性 共享设备 虚拟设备
5.1 IO系统概述 • 5.1.1 I/O体系结构 • 5.1.2 I/O系统的功能 • 5.1.3 I/O系统的实现
§ 5.1.1 I/O体系结构 1.总线 在计算机系统中,数据信息是通过数据通道在CPU、RAM 和I/O设备之间流动的。这些数据通道又称为总线。 数据总线:指用来并行传送数据的一组线。 地址总线:指用来并行传送地址的一组线。 总线 控制总线:指用来并行传送控制信息的一组线。
I/O总线 CPU I/O设备 I/O端口 I/O端口 I/O接口 I/O控制器 图5-1 PC的I/O体系结构 § 5.1.1 I/O体系结构 2.I/O 总线 I/O总线是用来连接CPU和I/O设备的总线。每个I/O设备都依次连接到I/O总线上,这种连接使用了有3个元素的硬件构件层次:I/O端口、I/O接口和设备控制器。
§ 5.1.1 I/O体系结构 (1)I/O端口(I/O port),即为连接到I/O总线上的设备的I/O地址。 例IBM PC 体系结构中的I/O地址空间,一共有65536个8位的I/O端口。CPU在执行指令时,使用地址总线选择所请求的I/O端口,使用数据总线在CPU寄存器和I/O端口之间传送数据。若I/O端口能被映射到内存物理地址空间,CPU和I/O设备之间的通信就可以通过使用对内存进行操作的汇编语言指令(如,mov、and、or等等)来实现。现代的硬件设备倾向于把I/O端口映射到内存物理地址空间。 为了实现起来方便,操作系统设计者把每个设备的I/O端口都组织成一组专用寄存器:控制寄存器、状态寄存器、输入寄存器、输出寄存器。
§ 5.1.1 I/O体系结构 (2)I/O接口起翻译器的作用:把I/O端口中的值转换成设备所需要的命令和数据;检测设备状态的变化,并对设备状态寄存器(某一I/O端口)进行相应地更新。I/O接口通过一条IRQ线连接到可编程中断控制器上,以使它代表相应的设备发出中断请求。有两种类型的接口:专用I/O接口和通用I/O接口。 专用I/O接口:专用于特定的硬件设备。有时专用I/O接口与设备控制器处于同一块卡中。 通用I/O接口:是用于连接外部设备的。并口可用于连接打印机、可移动磁盘、扫描仪、备份设备、其他计算机等等。
§ 5.1.1 I/O体系结构 (3)设备控制器的主要作用:对从I/O接口接收到的高级命令进行解释,并通过向设备发送适当的电信号序列强制设备执行特定的操作;对从设备接收到的电信号进行转换和适当地解释,并通过I/O接口修改状态寄存器的值。复杂的设备通常需要设备控制器来驱动,而较简单的设备可以没有设备控制器,如可编程中断控制器、可编程间隔定时器。 所有的PC机都包含DMAC(Direct Memory Access Controller)辅助处理器。DMA(直接内存访问)作为一种输入输出方式,主要用来连接高速外围设备,如磁盘、磁带等,控制数据在RAM和I/O设备之间传送。
§5.1.2 I/O系统的功能 • 1.概述 在计算机系统中,I/O设备是人机对话的界面和接口,而计算机系统的I/O设备种类繁多,千差万别。另外,CPU性能高,而I/O设备性能低,属于低速设备,因此I/O设备的性能常常成为系统性能的瓶颈。 用户对I/O设备的使用要求是方便、高效、安全和正确。I/O系统的功能也就应该在计算机硬件结构提供的既定设备范围及其连接模式下,完成用户对I/O设备的使用要求。
§5.1.2 I/O系统的功能 • 2.I/O系统的功能 (1)方便性:为了让用户能方便使用I/O设备,提供简便易用的对逻辑设备进行逻辑操作的抽象接口;实现抽象接口到物理接口的转化,即将高级逻辑操作转化为低级物理操作。 抽象接口除了掩蔽硬件细节外还要掩蔽依赖于硬件的软件技术细节。 设备抽象接口是由设备管理功能接口和文件系统功能接口共同提供的,更准确地说,设备抽象接口包含在文件系统统一接口中。
§5.1.2 I/O系统的功能 抽象接口使广义的设备独立性成为可能,向用户展示一个大大简化了的计算环境观点,同时,抽象接口也是提高效率技术的前提。 广义的I/O设备独立性是指整个设备管理功能的抽象接口,程序不关心物理设备的操作和组织细节,而只看到具有逻辑名称和逻辑性质的逻辑设备和逻辑操作,不关心具体I/O设备是哪一个具体设备或是哪一个文件,设备改变而程序不变,不必修改,也不必重新编译。用户不必关心设备的改变,这一事实所带来的问题应该由操作系统来管理。所使用的设备的变化对程序是透明的。块设备的设备独立性是由文件系统的文件目录概念提供的。
(2)效率:非系统用户关心其程序的运行效率,系统用户关心系统的利用率;非系统用户不希望程序等待设备,系统用户不希望设备等待程序。(2)效率:非系统用户关心其程序的运行效率,系统用户关心系统的利用率;非系统用户不希望程序等待设备,系统用户不希望设备等待程序。 在现代操作系统中,已引入了大量的技术以提高设备与CPU的效率,例如中断、缓冲、DMA、通道等。因此,操作系统设备管理的一个主要功能是采用各种纯软件或与硬件配合的软件技术来提高设备效率和与此相关的系统效率,提供物理I/O设备的共享并优化这些设备的使用,同时借助抽象接口使得这些优化技术得以在内部实施而对用户透明。
§5.1.2 I/O系统的功能 (3)保护:用户希望能安全正确地使用设备,即希望由设备传送或管理的数据应该是安全的,不被破坏和泄密。 另外,对设备拥有所有权的用户希望设备不能被破坏。 系统如何阻止用户访问他们无权访问的设备呢?微机系统多半不设保护,任何进程能做它想做的任何事情。在大多数主机系统中,用户进程对I/O设备的访问完全被禁止。在UNIX系统中,对应于I/O设备的特别文件受一般的rwx位保护。系统管理员据此为每台设备确定适当的授权。
§5.1.2 I/O系统的功能 • 2.设备管理技术: (1)输入/输出控制方式 计算机系统对I/O设备的控制方式有: • 程序轮询方式 • 程序中断方式 • DMA(直接存储器访问)控制方式 • 通道控制方式。
发命令 CPU 执行 A进程 I/O 控制器 外设 传数据 【输入/输出控制-程序直接控制方式】 • 程序直接控制方式是指由程序直接控制内存或CPU和外围设备之间进行信息传送的方式。通常又称为“忙—等”方式或循环测试方式。 • 在数据传送过程中,必不可少的一个硬件设备是I/O控制器,它是操作系统软件和硬件设备之间的接口,它接收CPU的命令,并控制I/O设备进行实际的操作。
程序直接控制方式下输出数据时的工作过程。 • ① 把一个启动位为“1”的控制字写入该设备的控制状态寄存器。 • ② 将需输出数据送到数据缓冲寄存器。 • ③测试控制状态寄存中的“完成位”,若为0,转② ,否则转④。 • ④ 输出设备将数据缓冲寄存器中的数据取走进行实际的输出。
程序直接控制方式优缺点 在程序I/O方式中,由于CPU的高速性和I/O设备的低速性, 致使CPU的绝大部分时间都处于等待I/O设备完成数据I/O的循环测试中, 造成对CPU的极大浪费。 该方式优点:简单,易于理解。
【输入/输出控制-中断控制方式】 • (1)进程需要数据时,将允许启动和允许中断的控制字写入设备控制状态寄存器中,启动该设备进行输入操作。 • (2)该进程放弃处理机,等待输入的完成。操作系统进程调度程序调度其他就绪进程占用处理机。 • (3)当输入完成时,输入设备通过中断请求线向CPU发出中断请求信号。CPU在接收到中断信号之后,转向中断处理程序。 • (4)中断处理程序首先保护现场,然后把输入缓冲寄存器中的数据传送到某一特定单元中去,同时将等待输入完成的那个进程唤醒,进入就绪状态,最后恢复现场,并返回到被中断的进程继续执行。 • (5)在以后的某一时刻,操作系统进程调度程序选中提出的请求并得到获取数据的进程,该进程从约定的内存特定单元中取出数据继续工作。
在I/O设备输入每个数据的过程中,由于无须CPU干预,因而可使CPU与I/O设备并行工作。仅当输完一个数据时,才需CPU花费极短的时间去做些中断处理。可见,这样可使CPU和I/O设备都处于忙碌状态,从而提高了整个系统的资源利用率及吞吐量。 例如,从终端输入一个字符的时间约为100 ms, 而将字符送入终端缓冲区的时间小于 0.1 ms。 若采用程序I/O方式,CPU约有 99.9 ms的时间处于忙—等待中。 采用中断驱动方式后,CPU可利用这 99.9 ms的时间去做其它事情,而仅用 0.1 ms的时间来处理由控制器发来的中断请求。 可见,中断驱动方式可以成百倍地提高CPU的利用率。
【输入/输出控制- DMA方式】 • DMA方式又称直接存储器访问(Direct Memory Access)方式。其基本思想是在外设和主存之间开辟直接的数据交换通路。DMA方式的特点是: • (1)数据传送的基本单位是数据块。 • (2)所传送的数据是从设备送内存,或者相反。 • (3)仅在传送一个或多个数据块的开始和结束时,才需中断CPU,请求干预,整块数据的传送是在DMA控制器控制下完成的。 • 可见,DMA方式较之中断驱动方式,又是成百倍地减少了CPU对I/O的干预,进一步提高了CPU与I/O设备的并行操作程度。
DMA控制器的组成 图 5-8 DMA控制器的组成
为了实现在主机与控制器之间成块数据的直接交换, 必须在DMA控制器中设置如下四类寄存器: (1) 命令/状态寄存器CR。用于接收从CPU发来的I/O命令或有关控制信息, 或设备的状态。 (2) 内存地址寄存器MAR。在输入时,它存放把数据从设备传送到内存的起始目标地址;在输出时,它存放由内存到设备的内存源地址。 (3) 数据寄存器DR。用于暂存从设备到内存,或从内存到设备的数据。 (4) 数据计数器DC。 存放本次CPU要读或写的字(节)数。
DMA工作过程 图 5-9 DMA方式的工作流程
【输入/输出控制-通道控制方式】 • 通道是专门负责输入/输出的硬件——I/O处理器 I/O通道方式是DMA方式的发展,它可进一步减少CPU的干预,即把对一个数据块的读(或写)为单位的干预,减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预。 同时,又可实现CPU、通道和I/O设备三者的并行操作,从而更有效地提高整个系统的资源利用率。 例如,当CPU要完成一组相关的读(或写)操作及有关控制时,只需向I/O通道发送一条I/O指令,以给出其所要执行的通道程序的首址和要访问的I/O设备,通道接到该指令后,通过执行通道程序便可完成CPU指定的I/O任务。
通道控制方式的数据传输过程如下: (1)当进程要求设备输入时,CPU发指令指明I/O操作、设备号和对应通道。 (2)对应通道收到CPU发来的启动指令后,读出内存中的通道指令程序、设置对应设备的控制状态寄存器的初值。 (3)设备按通道指令的要求,把数据送往内存指定区域。 (4)若传送结束,I/O控制器通过中断请求线发中断信号请求CPU做中断处理。 (5)中断处理结束后,CPU返回到被中断进程处继续执行。 (6)当进程调度程序选中这个已得到数据的进程后,才能进行加工处理。
§5.1.2 I/O系统的功能 • (2)缓冲技术 • 在现代OS中,几乎所有的I/O设备在与处理机(内存)交换数据时,都使用了缓冲区。缓冲就是在通信问题中为了通信双方的速度匹配而引入的一个中间层次,这个层次的速度比通信双方中较慢的一方快,而与较快的一方更匹配。 • 引入缓冲的主要目的有以下几点。 • ①缓和处理机和I/O设备间速度不匹配的矛盾 • ②减少对CPU的中断次数 • ③提高CPU和I/O设备之间的并行性
Cache 设备缓冲区 缓冲区 实现 I/O缓冲 区个数 §5.1.2 I/O系统的功能 缓冲区分类: 单缓冲 双缓冲 循环缓冲 缓冲池 纯硬件缓冲区 软件缓冲区 • 按照缓冲所在的位置分,缓冲区可分为: • ① CACHE;②I/O设备或控制器内部的纯硬件缓冲区,如打印机内部的硬件缓冲区; • ③I/O在内存开设的缓冲区,如OS在内存开设的I/O缓冲区和文件系统缓冲区; • ④脱机与假脱机技术实质上也属于缓冲技术,它是为慢速I/O设备在外存开设的缓冲区。
缓冲技术-单缓冲 • 单缓冲是操作系统提供的最简单的一种缓冲形式。单缓冲是指在设备和处理机之间设置一个缓冲。设备和处理机交换数据时,先把被交换数据写入缓冲区,之后需要数据的设备或处理机再从缓冲区取走数据。设备和处理机对缓冲区的操作是串行的。单缓冲工作示意如下图
缓冲技术-双缓冲 双缓冲是指在应用程序进程发出I/O请求时,在内存为之分配两个缓冲区,以便加快I/O速度并提高设备利用率。 • 双缓冲方式和单缓冲方式相比,虽然双缓冲方式能进一步提高CPU和外设的并行程度,并能使输入设备和输出设备并行工作,但是在实际系统中很少采用这一方式,这是因为在计算机系统中的外设很多,又有大量的输入和输出,同时双缓冲很难匹配设备和CPU的处理速度。因此现代计算机系统中一般使用环形缓冲或缓冲池结构。
缓冲技术-环形缓冲 循环缓冲是指引入多个缓冲区并将之组织成环形。用作输入的循环缓冲,输入进程不断地向环形缓冲中的下一个空缓冲输入数据,计算进程不断地从中取走数据并计算。循环缓冲也仅适用于某个特定的输入输出进程和计算进程,属于专用缓冲。
缓冲技术-缓冲池 • 现代的操作系统通常将多个缓冲区组织成缓冲池,供多个进程在I/O操作时共享,以提高缓冲区的利用率。在缓冲池中,可能有的缓冲区为空,有的缓冲区装满输入数据,有的缓冲区装满输出数据。为了便于管理,操作系统内核可将相同类型的缓冲区链接在一起,从而形成多个缓冲队列 。
①缓冲池的组成 空闲缓冲区、装输入数据的缓冲区和装输出数据的缓冲区。 图5.4 缓冲区队列缓冲区
②缓冲池的工作方式 • 缓冲区可以在收容输入、提取输入、收容输出和提取输出四种方式下工作。 图5.5 缓冲池的 工作缓冲区
§5.1.2 I/O系统的功能 (3)设备分配技术 设备依据使用特性可分为共享设备技术、独占设备技术和虚拟设备技术。共享设备技术适用于可共享设备,独占设备技术适用于可共享设备和独占设备,虚拟设备技术适用于独占设备。具体内容如下: 独占设备技术:对独享设备,系统一般采用静态分配方式。即在一个作业执行前,将它所需要使用的这类设备分配给它,当作业结束撤离时,才将分配给它的独享设备收回。 独占设备每次只能分配给一个进程使用,这种使用特性隐含着死锁的必要条件,所以在考虑独占设备的分配时,一定要结合有关防止和避免死锁的安全算法。
共享设备技术:对共享设备的分配一般采用动态分配这一方式 。在解决设备与CPU的速度匹配问题上,为了使设备和CPU的利用率达到最大程度,系统希望根据每个设备的特征来全局调度设备的操作。 §5.1.2 I/O系统的功能 • 常见的设备分配方法有两种。 • 1.先来先服务 • 2.优先级高者优先
§5.1.2 I/O系统的功能 虚拟设备技术:系统中的独占设备是有限的,往往不能满足诸多进程的要求,会引起大量进程由于等待某些独占设备而阻塞。另一方面,申请到独占设备的进程在其整个运行期间虽然占有设备,利用率却常常很低,设备经常处于空闲状态。解决的办法,就是用共享设备操作来模拟独占设备的操作,以提高系统效率和设备利用率。这种技术就称为虚拟设备技术,实现这一技术的软、硬件系统被称为假脱机(Simultaneous Peripheral Operation On Line, SPOOL)系统,又叫SPOOLing系统.
脱机输入输出技术 • 为了解决人机矛盾及CPU和I/O设备间速度不匹配的矛盾,50年代末出现了该技术。 • 事先将装有用户程序和数据的纸带(卡片)装入纸带输入机,在一台外围机的控制下把纸带上的数据(程序)输入到磁带上。当CPU需要这些数据时再从磁带上高速的调入内存。 • 类似的,当CPU需要输出时可由CPU直接高速的把数据从内存送到磁带上,然后再在另一台外围机的控制下,将磁带上的结果通过相应的输出设备输出。
磁盘 输入设备 外围机 磁盘 磁盘 主机 磁盘 输出设备 外围机 脱机I/O示意图 由于程序和数据的输入和输出都是在外围机的控制下完成的,或者说他们是在脱离主机的情况下进行的,所以称为脱机输入输出方式。