1.48k likes | 1.67k Views
Chapter5 设备管理. § 5.1 I/O 系统. § 5.2 I/O 控制方式. § 5.3 缓冲管理. § 5.4 设备分配. §5.5 设备处理. § 5.6 磁盘存储器管理. §5.1 I/O 系统. I/O 系统是用于实现数据输入、输出及数据存储的系统。 在 I/O 系统中,除了需要直接用于 I/O 和存储信息的设备外,还需要有相应的设备控制器和高速总线。在有的大、中型计算机系统中,还配置了 I/O 通道或 I/O 处理机。 I/O 设备 设备控制器 I/O 通道 总线系统. §5.1.1 I/O 设备.
E N D
Chapter5设备管理 §5.1I/O系统 §5.2I/O控制方式 §5.3缓冲管理 §5.4设备分配 §5.5设备处理 §5.6磁盘存储器管理
§5.1 I/O系统 • I/O系统是用于实现数据输入、输出及数据存储的系统。 • 在I/O系统中,除了需要直接用于I/O和存储信息的设备外,还需要有相应的设备控制器和高速总线。在有的大、中型计算机系统中,还配置了I/O通道或I/O处理机。 • I/O设备 • 设备控制器 • I/O通道 • 总线系统
§5.1.1I/O设备 • 在计算机系统中,除了CPU和内存之外,其他的大部分硬件设备称为外围设备。实现计算机系统输入/输出的外围设备大体上可分成以下三类: • 人可读的 适合与计算机用户通信,如打印机、视频显示终端、键盘,包括常用的I/O设备、外存设备以及终端设备等 • 机可读的 适合与电子设备通信,如磁带、磁盘、传感器等 • 通信 合与远程设备通信,如调制解调器、数字线路驱动器等
设备的分类 • 按传输速率分类 • 低速设备 该类设备的传输速率为每秒几个字节至每秒数百个字节。典型的低速设备有键盘、鼠标、语音输入和输出等设备。 • 中速设备 该类设备的传输速率为每秒几千字节至数十千个字节。典型的中速设备有行式打印机、激光打印机等。 • 高速设备 该类设备的传输速率为每秒数百千个字节至数兆个字节。典型的高速设备有磁带机、磁盘机、光盘机等。
设备的分类(续1) • 按信息交换的单位分类 • 块设备 用于存储信息。由于信息的存取是以数据块为单位,故称为块设备,属于有结构设备。块设备的基本特征是可寻址、可随机地读/写任意一块。块设备的另一特征是其CPU采用DMA方式。典型的块设备是磁盘,每个盘块的大小通常为512B-4KB。 • 字符设备 用于数据的输入输出.其基本单位是字符,故称字符设备。它属于无结构设备,其基本特征是不可寻址,即不能指定输入时的源地址及输出时的目标地址。此外,字符设备在I/O时常采用中断驱动方式。字符设备的种类较多。如交互式终端、打印机等。
设备的分类(续2) • 从资源分配角度分类 • 独占设备 是指在一段时间内只允许一个用户(进程)使用的设备。因此,系统一旦把该设备分配给某进程后,便让它独占直至释放。应当注意,独占设备的分配可能会引起进程死锁。 • 共享设备 是指在一段时间内允许多个进程同时访问的设备。显然,共享设备必须是可寻址的和可随机访问的设备。典型的共享设备是磁盘。共享设备不仅能获得良好的设备利用率,而且是实现文件和数据共享的物质基础。 • 虚拟设备 是指通过某种技术将一台独占设备变换为能供若干个用户共享的设备,因此可将它同时分配给多个用户,从而提高设备的利用率。SPOOLing技术是一类典型的虚拟设备技术。
I/O的特点 • I/O性能经常成为系统性能的瓶颈 • CPU性能不等于系统性能 响应时间也是一个重要因素 • CPU性能越高,与I/O差距越大 弥补:更多的进程 • 进程切换多,系统开销大
I/O的特点(续) • 操作系统庞大复杂的原因之一是: • 资源多、杂,并发,均来自I/O • 外设种类繁多,结构各异 • 输入输出数据信号类型不同 • 速度差异很大 • 理解I/O的工作过程与结构是理解操作系统的工作过程与结构的关键 • I/O技术很实用 • 与其他功能联系密切,特别是文件系统
§5.1.2 设备控制器 • I/O设备一般由电子和机械两部分组成,通常将这两部分分开处理,以提供更加模块化、更加通用的设计。 • 电子部分称作设备控制器或适配器在微型机和小型机中,控制器通常做成印刷电路卡形式.它可以插入计算机中。
设备控制器(续1) • 很多控制器可以处理两个、四个或八个相同的设备。如果控制器和设备之间的接口采用的是标准接口,符合ANSI、IEEE、ISO或者事实上的标准,那么各厂商就可以制造各种适合这个接口的控制器或设备。
设备控制器(续2) • 设备控制器是CPU与I/O设备之间的接口,它接收从CPU发来的I/O命令,并去控制I/O设备工作。 • 事实上,操作系统差不多总是处理控制器而不是处理设备,即操作系统只与控制器交互而并不直接与设备交互,这样可使处理器从繁杂的设备控制事务中解脱出来。
设备控制器功能 • 接收和识别命令 在控制器中应具有相应的控制寄存器,操作系统将命令写入控制器的寄存器中,实现输入/输出。 当控制器接收一条命令后,它可以独立于CPU完成命令指定的操作,CPU转去执行其他操作。 当命令完成后,控制器产生一个中断,使操作系统获得CPU的控制权,并测试操作结果。CPU通过读控制器寄存器中的一个或多个字节的信息,得到操作的结果和设备的状态。
设备控制器功能(续1) • 数据交换 实现CPU与控制器、控制器与设备之间的数据交换。 • 对于前者是通过数据总线,由CPU并行地把数据写入控制器,或从控制器中并行地读出数据; • 对于后者,是设备将数据输入到控制器,或从控制器传送给设备。为此,在控制器中要设置数据寄存器。
设备控制器功能(续2) • 设备状态的了解和报告 控制器应记下设备的状态供CPU了解。 例如,仅当该设备处于发送就绪状态时,CPU才能启动控制器从设备中读出数据。为此,在控制器中应设置一个状态寄存器,用其中的位来反映设备的某一种状态。当则将该寄存器的内容读入后,便可了解该设备的状态。
设备控制器功能(续3) • 地址识别 为使CPU能向(或从)寄存器中写入(或读出)数据,这些寄存器应具有惟一的地址。控制器应能正确识别这些地址,为此,在控制器中应配置地址译码器。
§5.1.3 I/O通道 • 其目的是使原来由CPU处理的I/O任务转由通道来承担,从而把CPU从繁杂的I/O任务中解脱出来。 • 为了建立独立的I/O操作,不仅使数据的传送能独立于CPU,而且也希望有关I/O操作的组织、管理及结束也尽量独立,以保证CPU有更多的时间去进行数据处理。
I/O通道实现 • 通常地,在计算机系统中,I/O通道是—种特殊的处理器,专门负责输入/输出。它具有自己的指令系统,但该指令系统比较简单, • 一般只有数据传送指令、设备控制指令等; • 通道没有自己的内存,通道所执行的程序(即通道程序)是存放在主机内存中的,它与CPU共享内存。
I/O通道分类 • 根据信息交换方式的不同,有三种类型的通道: • 字节多路通道 主要用来连接大量的低速设备,数据传送是以字节为单位的。该通道含有许多非分配型子通道,其数量可从几十到数百个,每一个子通道连接一台I/O设备。 这些子通道按时间片轮转方式共享主通道。当一个子通道控制其I/O设备完成一个字节的交换后,便立即腾出字节多路通道(主通道),以便让另一个子通道使用。 这样,只要字节多路通道扫描每个子通道的速率足够快,而连接到子通道上的设备的速率不是太高时,便不致丢失信息。
I/O通道分类(续2) • 数组选择通道 字节多路通道不适于连接高速设备,这推动了按数组方式进行数据传送的数组选择通道的出现。 该通道虽可以连接多台高速设备,但由于它只含有一个分配型子通道,在一段时间内只能执行一个通道程序、控制一台设备进行数据传送,致使当某台设备占用了该通道后,便一直由它独占,直至该设备传送完毕释放该通道。可见,这种通道的利用率很低。
I/O通道分类(续3) • 数组多路通道 数组选择通道虽然有很高的传输速率,但它每次只允许一个设备传输数据。数组多路通道是将数组选择通道传输速率高和字节多路通道能使各子通道(设备)分时并行操作的优点结合起来,而形成的一种新通道。 这样,使得这种通道既具有很高的数据传输速率,又能获得令人满意的通道利用率。数组多路通道被广泛地用于连接多台高、中速的外围设备,其数据是以块为单位传送的。
I/O通道“瓶颈” • 由于通道价格昂贵,致使机器中所设置的通道数量势必较少,这往往又使它成了I/O的瓶颈,进而造成整个系统吞吐量的下降。
I/O通道“瓶颈”(续) • 解决“瓶颈”间题的最有效的方法,便是增加设备到主机间的通路而不增加通道,就是把一个设备连接到多个控制器上,而一个控制器又连接到多个通道上。图中的设备都有4条通往存储器的通路。 • 多通路方式不仅解决了“瓶颈”间题,而且提高了系统的可靠性,因为个别通道或控制器的故障,不会使设备和存储器之间没有通路。
§5.2 I/O控制方式 • 设备管理的主要任务之一是控制设备和内存或CPU之间的数据传送,外围设备和内存之间常用的数据传送控制方式有四种。 • 程序I/O方式 • 中断驱动I/O控制方式 • 直接存储器存取方式-DMA
中断向量和地址映射 Addresses associated with devices Interrupt Vectors
§5.2.1程序I/O方式 • 在早期的计算机系统中,因没有中断机构,主机对I/O设备的控制采用程序I/O方式。 • 程序直接控制方式是指由程序直接控制内存或CPU和外围设备之间进行信息传送的方式。通常又称为“忙—等”方式或循环测试方式。 • 在数据传送过程中,必不可少的一个硬件设备是I/O控制器,它是操作系统软件和硬件设备之间的接口,它接收CPU的命令,并控制I/O设备进行实际的操作
程序I/O的工作过程 • 由于数据传送过程中输入和输出的情况比较类似,下面给出输出数据时的工作过程。 • 把一个启动位为“1”的控制字写入该设备的控制状态寄存器。 • 将需输出数据送到数据缓冲寄存器。 • 测试控制状态寄存中的“完成位”,若为0, 转②,否则转④。 • 输出设备将数据缓冲寄存器中的数据取走进行实际的输出。
程序I/O性能 • 程序I/O方式虽然控制简单,也不需要多少硬件支持,但CPU的利用率相当低。 • 因为CPU执行指令的速度高出I/O设备几个数量级,在循环测试过程中,浪费了大量的CPU时间。中断方式的引入可大大改变这种情况。
§5.2.2中断驱动I/O控制方式 • 程序启动I/O的问题是处理器关心I/O模块是否做好了接收或发送更多数据的准备,通常必须等待很长的时间。 • 中断驱动I/O方式是处理器给模块发送I/O指令,然后继续做其他一些有用的工作,当I/O模块准备好与处理器交换数据时,它将打断处理器并请求服务。处理器和前面一样执行数据传送,然后恢复它以前的处理。
中断驱动I/O工作流程 • 进程需要数据时,将允许启动和允许中断的控制字写入设备控制状态寄存器中,启动该设备进行输入操作。 • 该进程放弃处理机,等待输入的完成。操作系统进程调度程序调度其他就绪进程占用处理机。 • 当输入完成时,输入设备通过中断请求线向CPU发出中断请求信号。CPU接收到中断信号之后,转向中断处理程序。 • 中断处理程序首先保护现场,然后把输入缓冲寄存器中的数据传送到某一特定单元中去,同时将等待输入完成的那个进程唤醒,进入就绪状态,最后恢复现场,并返回到被中断的进程继续执行。 • 在以后的某一时刻,操作系统进程调度程序选中提出的请求并得到获取数据的进程,该进程从约定的内存特定单元中取出数据继续工作。
§5.2.3直接存储器存取方式-DMA • 尽管中断驱动I/O比程序控制I/O方式更有效,但在存储器和I/O模块之间传送数据时,处理器仍然需要积极干预,并且任何数据传送都必须完全通过处理器。因此,这两种I/O方式都有以下两方面固有的缺陷: • I/O传送速度受限于处理器调试设备和提供服务的速度。 • 处理器陷于管理I/O传送的工作中,对每次I/O传送,处理器都必须执行很多指令。
DMA的工作方式 • 工作方式如下说明,当处理器希望读或写一块数据时,它给DMA模块产生一条指令,发送以下信息: • 是否请求一次读或写; • 涉及的I/O设备的地址; • 开始读或写存储器单元; • 需要读或写的字数。 然后处理器继续其他工作,而把这个操作委托给DMA模块,由该模块处理。DMA模块直接从存储器中或者往存储器中传送整个数据块,每次传送一个字。当传送完成后,DMA模块给处理器发一个中断信号。 • 只有在开始传送和结束传送时才会用到处理器。
DMA方式的特点 • 它作为高速的外围设备与内存之间进行成批的数据交换,但不对数据做加工处理。数据传输的基本单位是数据块,I/O操作类型比较简单。 • 它需要使用一个专门的DMA控制器(DMAC),其中有控制、状态寄存器、传送字节计数器、内存地址寄存器和数据缓冲寄存器。 • 它采用盗窃总线控制权的方法,由DMAC送出内存地址和发出内存读、设备写或设备读、内存写的控制信号来完成内存与设备之间的直接数据传送,不用CPU的干预。 • 仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成的。
DMA方式之例(续) • Printing a string using DMA • code executed when the print system call is made • interrupt service procedure
§5.2.4 通道控制方式 • 通道控制方式与DMA方式相类似,也是一种内存和设备直接进行数据交换的方式。 • 与DMA方式不同的是,在通道控制方式中,数据传送方向存放数据的内存始址及传送的数据块长度均由一个专门负责输入/输出的硬件--通道来控制。 • 另外,DMA方式每台设备至少需要一个DMA控制器,而通道控制方式中,一个通道可控制多台设备与内存进行数据交换。
每条通道指令应包含以下的内容 • 操作码:它规定指令所执行的操作,如读、写等。 • 内存地址:标明数据传送时内存的首址。 • 计数:表示传送数据的字节数。 • 通道程序结束位R0,表示通道程序是否结束。 • 记录结束标志R1,表示所处理的记录是否结束。
通道控制方式的数据输入过程 • 当进程要求输入数据时,CPU发出驱动指令,指明I/O操作、设备号和相应的通道。 • 对应通道接收到CPU发来的驱动指令后,把存放在内存中的通道指令程序读出,并执行通道程序,控制设备将数据传送到内存指定的区域。 • 若数据传送结束,则向CPU发出中断请求。CPU收到中断信号后转中断处理程序,唤醒等待输入完成的进程.并返回被中断程序。 • 在以后的某个时刻,进程调度程序选中提出请求输入的进程,该进程从指定的内存始址取出数据做进一步处理。
通道程序之例 • 下面示出了一个由六条通道指令所构成的简单的通道程序.该程序的功能是将内存中不同地址的数据,写成多个记录。其中,前三条指令是分别将813-892单元中的80个字符和1034 - 1173单元中的140个字符及5830 - 5889单元中的60个字符写成一个记录;第4条指令是单独写一个具有300个字符的记录;第5、6条指令共写含500个字符的记录。
总 结 • I/O系统的功能、特点和分类 • 设备控制器的结构和功能 • I/O通道实现和分类 • 总线系统 • 程序I/O方式 • 中断驱动I/O控制方式 • 直接存储器存取方式-DMA • 通道控制方式
§5.3 缓冲管理 • 通道的建立虽然提供了CPU、通道和I/O设备并行操作助可能性,但往往由于通道数量不足而使并行程度受到限制。缓冲的引入可减少占用通道的时间,从而显着提高CPU、通道、I/O设备间的并行操作程度。