2.15k likes | 2.37k Views
第五章 设备管理. 第五章 设备管理. 5.1 概 述 5.2 I/O 软件的组成 5.3 I/O 硬件特点 5.4 I/O 控制技术 5.5 设备有关技术 5.6 设备分配与设备处理 5.7 磁盘存储器管理 5.8 典型外部设备. 第五章 设备管理. 5.1 概 述. 5.1.1 I/O 的特点. 1.I/O 性能经常成为系统性能的瓶颈 (1)CPU 性能不等于系统性能 响应时间也是一个重要因素 (2)CPU 性能越高,与 I/O 差距越大 弥补:更多的进程 (3) 进程切换多,系统开销大.
E N D
第五章 设备管理 5.1 概 述 5.2 I/O软件的组成 5.3 I/O硬件特点 5.4 I/O控制技术 5.5 设备有关技术 5.6 设备分配与设备处理5.7 磁盘存储器管理 5.8 典型外部设备
第五章 设备管理 5.1 概 述
5.1.1I/O的特点 1.I/O性能经常成为系统性能的瓶颈 (1)CPU性能不等于系统性能 响应时间也是一个重要因素 (2)CPU性能越高,与I/O差距越大 弥补:更多的进程 (3)进程切换多,系统开销大
2.操作系统庞大复杂的原因之一是:资源多、杂,并发,均来自I/O2.操作系统庞大复杂的原因之一是:资源多、杂,并发,均来自I/O 外设种类繁多,结构各异 输入输出数据信号类型不同 速度差异很大 3.理解I/O的工作过程与结构是理解操作系统的工作过程与结构的关键 4.与其他功能联系密切,特别是文件系统
5.1.2设备的分类 1.按使用特性分 存储型设备 输入型设备(外设主机) 输出型设备(主机外设) 输入输出型设备(交互型设备) 2.按数据组织分 块设备 以数据块为单位存储、传输信息 字符设备 以字符为单位存储、传输信息
3.按外部设备的从属关系分 • 系统设备 指操作系统生成时,登记在系统中的标准设备 (如终端、打印机、磁盘机等) • 用户设备 指在系统生成时,未登记在系统中的非标准设备。对于这类设备的处理程序由用户提供,并将其纳入系统,由系统代替用户实施管理。 (如A/D,D/A转换器,CAD所用专用设备)
4.按资源分配角度分 1)独占设备 在一段时间内只能有一个进程使用的设备,一般为低速I/O设备。(如打印机,磁带等) 2)共享设备 在一段时间内可有多个进程共同使用的设备,多个进程以交叉的方式来使用设备,其资源利用率高。(如硬盘) 3)虚设备
3)虚设备 • 在一类设备上模拟另一类设备,常用共享设备模拟独占设备,用高速设备模拟低速设备,被模拟的设备称为虚设备 • 目的:将慢速的独占设备改造成多个用户可共享的设备,提高设备的利用率 • 实例:SPOOLing技术,利用虚设备技术 ——用硬盘模拟输入输出设备)
SPOOLing技术 为解决独立设备数量少,速度慢,不能满足众多进程的要求,而且在进程独占设备期间,设备利用率比较低而提出的一种设备管理技术
设备的分类(续) 5.从程序使用角度分 逻辑设备 物理设备 6.按数据传输率分 高速设备 低速设备
5.1.3 设计目标与任务 1.设计目标 • 提高方便性 • 实现并行性 • 均衡性 • 设备独立性
2. 设备管理的功能 (1)设备分配与回收 记录设备的状态 根据用户的请求和设备的类型,采用一定的分配算法,选择一条数据通路 (2)建立统一的独立于设备的接口 (3)完成设备驱动程序,实现真正的I/O操作 (4)处理外部设备的中断处理 (5)管理I/O缓冲区
3.设备管理的目标和任务 1)按照用户的请求,控制设备的各种操作,完成I/O设备与内存之间的数据交换(包括设备分配与回收;设备驱动程序;设备中断处理;缓冲区管理),最终完成用户的I/O请求
设备管理的目标和任务(续) 2)向用户提供使用外部设备的方便接口,使用户摆脱繁琐的编程负担 • 方便性 • 友好界面 • 透明性 逻辑设备与物理设备、屏蔽硬件细节(设备的物理细节,错误处理,不同I/O的差异性) 3)充分利用各种技术(通道,中断,缓冲等)提高CPU与设备、设备与设备之间的并行工作能力,充分利用资源,提高资源利用率( 并行性、 均衡性)
设备管理的目标和任务(续) 4)保证在多道程序环境下,当多个进程竞争使用设备时,按一定策略分配和管理各种设备,使系统能有条不紊的工作 5)保护 设备传送或管理的数据应该是安全的、不被破坏的、保密的
设备管理的目标和任务(续) 6)与设备无关性(设备独立性) • 用户在编制程序时,使用逻辑设备名,由系统实现从逻辑设备到物理设备的转换 • 用户能独立于具体物理设备而方便的使用设备 • 用户申请使用设备时,只需要指定设备类型,而无须指定具体物理设备,系统根据当前的请求,及设备分配的情况,在相同类别设备中,选择一个空闲设备,并将其分配给一个申请进程
统一性: 对不同的设备采取统一的操作方式,在用户程序中使用的是逻辑设备。 优点: • 设备忙碌或设备故障时,用户不必修改程序 • 改善了系统的可适应性和可扩展性
第五章 设备管理 5.2 I/O软件的组成
1. I/O软件的组成 I/O软件的基本思想是按分层的思想构成,较低层软件要使较高层软件独立于硬件的特性,较高层软件则要向用户提供一个友好的、清晰的、简单的、功能更强的接口
2. I/O软件的目标 • 在设计I/O软件时的一个关键概念是设备独立性。用户在编写使用软盘或硬盘上文件的程序时,无需为不同的设备类型而修改程序就可以使用 • 与设备独立性密切相关的是统一命名这一目标。一个文件或一个设备的名字只应是一个简单的字符串或一个整数,不应依赖于设备 • 出错处理是I/O软件的另一个目标。一般来说,数据传输中的错误应尽可能地在接近硬件层上处理 • 最后一个问题是可共享设备和独占设备的处理问题
每个进程在启动一个I/O操作后阻塞 直到I/O操作完成并产生一个中断 由操作系统接管CPU后唤醒该进程为止 3. 中断处理程序
与设备密切相关的代码放在设备驱动程序中,每个设备驱动程序处理一种设备类型与设备密切相关的代码放在设备驱动程序中,每个设备驱动程序处理一种设备类型 每一个控制器都设有一个或多个设备寄存器,用来存放向设备发送的命令和参数。设备驱动程序负责释放这些命令,并监督它们正确执行 一般,设备驱动程序的任务是接收来自与设备无关的上层软件的抽象请求,并执行这个请求 4. 设备驱动程序
在设备驱动程序的进程释放一条或多条命令后,系统有两种处理方式,多数情况下,执行设备驱动程序的进程必须等待命令完成,这样,在命令开始执行后,它阻塞自已,直到中断处理时将它解除阻塞为止。而在其它情况下,命令执行不必延迟就很快完成在设备驱动程序的进程释放一条或多条命令后,系统有两种处理方式,多数情况下,执行设备驱动程序的进程必须等待命令完成,这样,在命令开始执行后,它阻塞自已,直到中断处理时将它解除阻塞为止。而在其它情况下,命令执行不必延迟就很快完成 4. 设备驱动程序(续)
虽然I/O软件中一部分是设备专用的,但大部分软件是与设备无关的。设备驱动程序与设备独立软件之间的确切界限是依赖于具体系统的虽然I/O软件中一部分是设备专用的,但大部分软件是与设备无关的。设备驱动程序与设备独立软件之间的确切界限是依赖于具体系统的 5. 设备独立的软件
1)独立于设备的软件的基本任务是实现所有设备都需要的功能,并且向用户级软件提供一个统一的接口1)独立于设备的软件的基本任务是实现所有设备都需要的功能,并且向用户级软件提供一个统一的接口 2)如何给文件和设备这样的对象命名是操作系统中的一个主要课题。独立于设备的软件负责把设备的符号名映射到正确的设备驱动上 3)设备保护 系统如何防止无权存取设备的用户存取设备呢?
4)不同的磁盘可以采用不同的扇区尺寸。向较高层软件掩盖这一事实并提供大小统一的块尺寸,这正是设备独立软件的一个任务。它可将若干扇区合成一个逻辑块。这样,较高层的软件只与抽象设备打交道,独立于物理扇区的尺寸而使用等长的逻辑块4)不同的磁盘可以采用不同的扇区尺寸。向较高层软件掩盖这一事实并提供大小统一的块尺寸,这正是设备独立软件的一个任务。它可将若干扇区合成一个逻辑块。这样,较高层的软件只与抽象设备打交道,独立于物理扇区的尺寸而使用等长的逻辑块 5)缓冲技术 6)设备分配 7)出错处理
尽管大部分I/O软件都包含在操作系统中,但仍有一小部分是由与用户程序连接在一起的库过程,甚至完全由运行于核外的程序构成。系统调用,包括I/O系统调用,通常由库过程实现尽管大部分I/O软件都包含在操作系统中,但仍有一小部分是由与用户程序连接在一起的库过程,甚至完全由运行于核外的程序构成。系统调用,包括I/O系统调用,通常由库过程实现 这些过程所做的工作只是将系统调用时所用的参数放在合适的位置,由其它的I/O过程实际实现真正的操作 6. 用户空间的I/O软件
(1)用户进程层执行输入输出系统调用,对I/O数据进行格式化,为假脱机输入/输出作准备(1)用户进程层执行输入输出系统调用,对I/O数据进行格式化,为假脱机输入/输出作准备 (2)独立于设备的软件实现设备的命名、设备的保护、成块处理、缓冲技术和设备分配 (3)设备驱动程序设置设备寄存器、检查设备的执行状态 (4)中断处理程序负责I/O完成时,唤醒设备驱动程序进程,进行中断处理 (5)硬件层实现物理I/O的操作
第五章 设备管理 5.3 I/O硬件特点
1. I/O硬件特点 • 设备组成 I/O设备一般由机械和电子两部分组成, 把这两部分分开处理,以提供更加模块化,更加通用的设计 • 物理设备 • 机械部分是设备本身(物理装置) • 设备控制器 电子部分叫做设备控制器或适配器。在小型和微型机中,它常采用印刷电路卡插入计算机中(接口) 完成设备与主机间的连接和通讯
控制器卡上通常有一个插座,通过电缆与设备相连控制器卡上通常有一个插座,通过电缆与设备相连 控制器和设备之间的接口是一个标准接口,它符合ANSI、IEEE或ISO这样的国际标准 CPU 外 部 设 备 控 制 逻 辑 电 路 控制寄存器 状态寄存器 数据寄存器
(1)操作异步性 (2)设备自治性 (3)接口通用性 关注点:对该硬件如何进行程序设计,不考虑设备内部如何工作 程序员:软件接口 即硬件所接受的命令,它所完成的功能,报回的错误 1.I/O设备特点(续)
一个I/O过程由四步组成: 准备 启动 测试和等待 结果检查和错误处理 通过对设备接口寄存器组的读写完成 设备接口复杂繁琐 2. 设备接口
操作系统将命令写入控制器寄存器中,以实现输入/输出操作系统将命令写入控制器寄存器中,以实现输入/输出 例如:IBM PC的软盘控制器可接收15条命令,READ、WRITE、FORMAT、SEEK、RECALIBRATE,命令可以带参数。它们被一起送入控制器的寄存器中 当控制器接受一条命令后,可独立于CPU完成指定操作,CPU可以转去执行其它运算。命令完成时,控制器产生一个中断,CPU响应中断,控制转给操作系统。CPU通过读控制器寄存器中的信息,获得操作结果和设备状态
控制器与设备之间的接口常常是一个低级接口。例如磁盘,可以按每个磁道8扇区,每个扇区512个字节进行格式化。然而,实际从驱动器出来的却是一连串的位流,以一个头标(preamble)开始,然后是一个扇区的4096位(512×8),最后是检查和或错误校验码(Error—C一C:ECC)。头标是在对磁盘格式化时写上的,它包括柱面和扇区数,扇区的大小和类似的一些数据控制器与设备之间的接口常常是一个低级接口。例如磁盘,可以按每个磁道8扇区,每个扇区512个字节进行格式化。然而,实际从驱动器出来的却是一连串的位流,以一个头标(preamble)开始,然后是一个扇区的4096位(512×8),最后是检查和或错误校验码(Error—C一C:ECC)。头标是在对磁盘格式化时写上的,它包括柱面和扇区数,扇区的大小和类似的一些数据 • 控制器的任务是把串行的位流转换为字节块,并进行必要的错误修正。首先,控制器按位进行组装,然后存入控制器内部的缓冲区中形成以字节为单位的块。在对块验证检查和并证明无错误时,再将它复制到主存中
3. 设备连接模式 • 指I/O设备与CPU之间的连接方式,亦即将设备连接到一个计算机系统上的方式 • 在一个确定的连接模式下,从I/O设备到CPU间的所有连接成分构成了一条I/O路径(I/O链)
4.设备与主机间最基本的连接方式 四个要素: 设备接口形式 I/O指令形式 I/O地址空间分配及译码 连线问题
端口地址译码 按照主机与设备的约定格式和过程接受或发送数据和信号 计算机 设备 设备 计算机 将计算机的数字信号转换为机械部分能识别的模拟信号,或反过来 实现一些诸如设备内部硬件缓冲存储、数据加工的提高性能或增强功能的任务 1) 设备接口形式
接口电路中:多个寄存器 一个寄存器有唯一的一个地址,每个地址为I/O端口,该地址称为I/O端口地址。 I/O指令形式与I/O地址是相互关联的,主要有两种形式: 内存映像编址(内存映像I/O模式) I/O独立编址(I/O专用指令) 2) 端口编址方法
3) I/O独立编址 • 分配给系统中所有端口的地址空间是完全独立的,与内存的地址空间没有关系 • 主机使用专门的I/O指令对端口进行操作 • 优点 • 外部设备不占用内存的地址空间 • 程序设计时,易于区分是对内存操作还是对I/O端口操作 • 缺点:对I/O端口操作的指令类型少,操作不灵活 • 例子:8086/8088,分配给I/O端口的地址空间64K,0000H~0FFFFH,只能用IN和OUT指令对其进行读写操作
4) 存储映像编址 • 分配给系统中所有端口的地址空间与内存的地址空间统一编址 • 主机把I/O端口看作一个存储单元,对I/O的读写操作等同于对存储器的操作 • 优点 • 凡是可对存储器操作的指令都可对I/O端口操作 • 不需要专门的I/O指令 • I/O端口可占有较大的地址空间 • 缺点:占用内存空间
5. 要考虑的几个问题 • 设备完成技术:系统如何知道设备的一次I/O操作是否完成? • 对CPU编程的I/O技术:CPU必须亲自完成I/O的启动与完成的处理,亲自执行所有数据在内存和设备之间的实际物理传送
1) 设备完成技术 • 一次I/O 传送过程: 准备传送后处理 例:一个打印机有两个I/O设备寄存器 状态寄存器 数据寄存器 • 设备的一次操作是否完成? 测试设备的一个硬件信号 • 几种测试模式: (1)I/O测试指令 (2)中断技术
进一步改善 • 使CPU利用率尽可能不被I/O降低使CPU尽可能摆脱I/O • 提高I/O本身的绝对速度 • 减少或缓解速度差距 • 使CPU不等待I/O • 提高设备利用率 在设备与主机的硬连接上,引入总线,节省连线并提供配置扩充与改变时的灵活性;引入控制器,扩大设备与主机间的相互适用范围 小结:控制器与设备的分离,循环测试到中断,对CPU编程式的I/O到DMA,联机I/O到假脱机
第五章 设备管理 5.4 I/O控制技术
I/O控制的四种技术 • 程序控制 • 中断驱动 • 直接存储器存取(DMA) • 通道