操作系统——5.I/O管理
考纲
- 基本概念:文件和文件系统、目录、文件结构的物理结构和逻辑结构(顺序文件、索引顺序文件、索引文件、HASH 文件)、文件共享(基于索引节点、基于符号链接实现文件共享)
- 外存分配方法:连续分配、链接分配、索引分配
- 目录管理:单级目录、二级目录、多级目录
- 文件存储空间的管理技术:位示图、空闲链表、索引
一、I/O管理概述
1、I/O设备
定义、分类有几种
- 按使用特性分类:
- 人机交互类外部设备:用于与计算机用户之间交互的设备,以字节为单位交换,速度较慢。
- 存储设备:用于存储程序和数据的设备,以多字节组成的块为单位交换,速度较快。
- 网络通信设备:用于与远程设备通信的设备,速度一般。
- 按传输速率分类:
- 低速设备:传输速率仅每秒几字节到数百字节,eg.键盘、鼠标。
- 中速设备:数千至数万字节,eg.打印机。
- 高速设备:数百千至千兆字节,eg.磁带机。
- 按信息交换的单位分类:
- 块设备:存储信息的设备,属于有结构设备。基本特征:传输效率高、可寻址,可堆积读写任一块。
- 字符设备:用于数据输入/输出的设备,属于无结构设备。基本特征:传输速率低、不可寻址,在输入/输出时常采用中断驱动方式。
2、I/O控制方式
四种方式的基本定义、比较、原理,后两种重要。
- 程序直接控制方式:每读一个字CPU就对外设进行循环检查。优点:简单、易于实现;缺点:CPU利用率低(CPU和I/O设备只能单行工作)。
- 中断驱动方式:允许I/O设备主动打断CPU的运行并请求服务。优点:比程序直接控制方式有效;缺点:每个字在存储器和I/O控制器之间的传输必须经过CPU,会消耗较多CPU时间。
- DMA方式:在I/O设备和内存之间开辟直接的数据交换通路,彻底解放CPU。
- DMA方式特点:
①基本单位是数据块。
②设备直接送入内存。
③仅在传送的开始和结束才需CPU干预,整块数据的传送在DMA控制器的控制下完成。 - DMA控制器的组成:寄存器如下
①命令/状态寄存器CR:用于接收从CPU发来的I/O命令、有关控制信息、设备的状态。
②内存地址寄存器MAR:输入时它存放把数据从设备传送到内存的起始目标地址;输出时存放由内存或从内存到设备的数据。
③数据寄存器DR:暂存数据。
④数据计数器DC:存放本次要传送的字节数。 - DMA与中断驱动方式的主要区别:中断驱动方式在每个数据传输时中断CPU、由CPU控制完成;DMA控制方式在要求传送的一批数据传送结束才中断CPU、在DMA控制器下完成。
- DMA方式特点:
- 通道控制方式:进一步减少CPU的干预(减少为对一组数据块的读/写及有关控制和管理为单位的干预),实现CPU、通道、I/O设备三者的并行操作,提高整个系统的资源利用率。
- 较一般处理机的缺点:通道指令的类型单一,通道与CPU共享内存。
- 较DMA方式的优点:DMA需要CPU控制数据块大小、内存位置,与设备与内存传递数据一对一。通道方式中信息由通道控制,一对多。
3、I/O子系统的层次结构
- 层次结构:(记住,简单描述)
- 用户层I/O软件:实现与用户交互的接口,用户可直接调用在用户层提供的,与I/O操作有关的库函数,对设备进行操作。
- 设备独立性软件:用于实现用户程序与设备驱动器的统一接口、设备命令、设备保护及设备分配与分配等,同时为设备管理和数据传送提供必要的存储空间。
设备无关性/独立性:用户在编程序时使用的设备与实际设备无关。
设备独立性优点:①方便用户编程;②使程序运行不受具体机器环境的限制;③便于程序移植。
逻辑设备名好处:①增加设备分配灵活性;②易于实现I/O重定向。
设备独立性的功能:①执行所有设备的公有操作;②向用户层或文件曾提供统一接口。 - 设备驱动程序:与硬件直接相关,负责具体实现系统对设备发出的操作指令,驱动I/O设备工作的驱动程序。
- 中断处理程序:用于保存被中断进程的CPU环境,转入相应的终端处理程序进行处理,处理完后并恢复现场,返回被中断进程。
中断处理层的主要任务:进行进程上下文的切换,对处理中断信号源进行测试,读取设备状态和修改进程状态等。 - 硬件设备:I/O设备通常包括一个机械部件(设备本身)和一个电子部件(设备控制器/适配器)。
- 设备控制器:通过寄存器与CPU通信,OS通过向控制器寄存器写命令字来执行I/O功能。①寄存器占用内存地址的一部分时,称为内存映像I/O;②采用I/O专用地址时,寄存器独立编址。
- 设备控制器主要功能:(记)
- 接收和识别CPU或通道发来的命令;
- 实现数据交换,包括设备和控制器之间的数据传输;通过数据总线或通道,控制器和主存之间的数据传输。
- 发现和记录设备及自身的状态信息,供CPU处理使用。
- 设备地址识别
- 设备控制器组成部分
- 设备控制器与CPU的接口。含三类信号线:数据线(与数据寄存器和状态/控制寄存器相连)、地址线、控制线。
- 设备控制器与设备的接口。含三种信号:数据、控制、状态。
- I/O逻辑控制:用于实现对设备的控制。通过一组控制线与CPU交互,对从CPU收到的I/O设备进行编码。
- 设备控制器主要功能:(记)
二、I/O核心子系统
- I/O核心子系统提供的服务:I/O调度、缓冲与高速缓存、设备分配与回收、假脱机、设备保护和差错处理。
1、高速缓存与缓冲区。
分类,不同的定义+实现原理
(1)磁盘高速缓存
- 高速缓存技术:利用内存中的存储空间来暂存从磁盘中读出的一系列盘块中的信息。逻辑上属于磁盘,物理上是驻留在内存中的盘块。
- 在内存中的两种形式:
- 在内存中开辟一个单独的存储空间,大小固定。
- 把未利用的内存空间作为一个缓冲池,供请求分页系统和磁盘I/O时共享。
(2)缓冲区
- 引入缓冲区的主要目的:(简答)
- 缓和CPU与I/O设备间速度不匹配的矛盾
- 减少对CPU的中断频率,放款对CPU中断响应时间的限制。
- 解决基本数据单元大小/数据粒度不匹配的问题。
- 提高CPU和I/O设备之间的并行性。
- 实现方法:(了解)
- 采用硬件缓冲器,在关键部位。
- 采用缓冲区,在内存区域。(缓冲区空时充满数据,非空传出)
- 根据设置缓冲器个数,缓冲技术分类:
- 单缓冲:(含义、计算)
- 含义:在设备和处理机之间设置一个缓冲区,先写后取。
- 计算:初始状态:工作区满,缓冲区空,大小相等。从磁盘把一块数据输入缓冲区的时间T,操作系统将该缓冲区中的数据传送到用户区的时间M,CPU对这一块数据处理的时间C。
① T > C T>C T>C时,初始状态开始,工作区数据处理完C,缓冲区后充满T,再向工作区传送数据用时M,到达下一个开始状态,用时 M + T M+T M+T。
② T < C T<C T<C时,用时 M + C M+C M+C。
③综上,单缓冲区处理每块数据的用时 m a x ( C , T ) + M max(C,T)+M max(C,T)+M - 单缓冲工作示意图
- 双缓冲:(含义,计算)
- 含义:I/O设备输入数据时先装填到缓冲区1,装满后装填缓冲区2,1可取数据处理,2填满后取出2,装填1、跳过了处理机和输入设备的并行操作的程度。
- 计算:双缓冲区处理一块数据的用时 m a x ( C + M , T ) max(C+M,T) max(C+M,T)。
- 双缓冲工作示意图:
- M + C < T M+C<T M+C<T,块设备连续输入, C + M > T C+M>T C+M>T,CPU不必等待设备输入。
- 循环缓冲:含多个大小相等的缓冲区,每个缓冲区有一个链接指针指向下一个缓冲区,构成唤醒。输入输出时,还需要两个指针in/out,输入时,in指向可输入数据的第一个空缓冲区,out指向可以提取数据的第一个满缓冲区,输出相反。
- 缓冲池:由多个系统公用的缓冲区组成。缓冲区形成三个队列:空缓冲队列、装满输入数据的缓冲队列/输入队列、装满输出数据的缓冲队列/输出队列。四种缓冲区:收容输入、提取输入、收容输出、提取输出。
- 单缓冲:(含义、计算)
(3)高速缓存与缓冲区的对比
优缺点
4、设备分配与回收
(1)设备分配概述
- 设备特性分类:独占设备、共享设备、虚拟设备。
- 独占式使用设备、分时式共享使用设备、以SPOOLing方式使用外部设备。
- SPOOLing技术,即假脱机I/O技术(考多次):对I/O操作进行批处理,以空间换时间。
(2)设备分配的数据结构
简单了解各自概念
- 数据结构:设备控制表DCT(单个设备属性)、控制器控制表COCT、通道控制表CHCT、系统设备表SDT(记录已连接到系统中的所有物理设备情况)。
- DCT和COCT一一对应,COCT含指向相应CHCT指针,CHCT指向COCT表,一对多。
(3)设备分配的策略
理解、记忆
- 设备分配原则:既要充分发挥设备的使用效率,又要避免造成进程死锁,还要将用户程序和距离设备隔离开。
- 设备分配方式:
- 静态分配:主要用于对独占设备的分配,不会死锁、使用效率低,不符合总原则。
- 动态分配:在进程执行过程中根据执行需要进行。有利于提高设备的利用率,但可能造成进程死锁。
- 设备分配算法:常用动态设备分配算法有先请求先分配、优先级高者优先。
(4)设备分配的安全性
理解、记忆
- 安全性:设备分配中应防止发生进程死锁。
- 安全分配方式:每当发出I/O请求后便进入阻塞态,直到完成才被唤醒。优点:设备分配安全;缺点:CPU和I/O设备是串行工作(对同一进程而言)。
- 不安全分配方式:进程在发出I/O请求后继续运行,仅当请求设备被另一进程占用时才进入阻塞态。优点:一个进程可同时操作多个设备,从而推进进程;缺点:可能产生死锁。
(5)逻辑设备名到物理设备名的映射
- 逻辑设备表LUT(考多次):用于将逻辑设备名映射为物理设备名。系统通过查找LUT来寻找对应的物理设备和驱动程序。
- LUT表项:逻辑设备名、物理设备名、设备驱动程序入口地址。
- 建立逻辑设备表方式:
- 在整个系统中只设置一张LUT,主要使用于单用户系统。
- 为每个用户设置一张LUT,把表放入PCB。
5、SPOOLing技术(假脱机技术)
考多次,作用+结构
- SPOOLing:外部设备同时联机操作,也称假脱机输入/输出操作,OS中采用的一项将独占设备改造成共享设备的技术。
- SPOOLing系统的组成结构:
- 输入井和输出井:指在磁盘上开辟出的两个存储区域。分别容纳I/O设备输入数据和用户程序的输出数据。
- 输入缓冲区和输出缓冲区:内存中开辟的两个缓冲区。输入用于暂存输入设备送来的数据,以后再传送到输出井;输出暂存输出井,再传送到输出设备。
- 输入进程和输出进程:输入进程模拟脱机输入时的外围控制机,将数据从输入机通过输入缓冲区再送入到输入井。输出类似。
- 实例:共享打印机。请求打印输出时,SPOOLing系统只做两件事:
- 由输出进程在输出井中申请一个空闲磁盘块区,并将要打印的数据送入其中。
- 输出进程再为用户进程申请一张空白的用户打印表,并将用户的打印要求填入其中,再把表挂到请求打印队列上。
- SPOOLing系统的主要特点:提高了I/O速度;将独占设备改造为共享设备;实现了虚拟设备功能。