Download presentation
Presentation is loading. Please wait.
1
第七章设备管理 概述 I/O软件的组成 I/O硬件特点 有关技术 设备处理 典型外部设备
2
(1)I/O性能经常成为系统性能的瓶颈 一、概述 1、I/O的特点 CPU性能不等于系统性能 响应时间也是一个重要因素
CPU性能越高,与I/O差距越大 弥补:更多的进程 进程切换多,系统开销大
3
1、I/O的特点 (2)操作系统庞大复杂的原因之一是:资源多、杂,并发,均来自I/O 外设种类繁多,结构各异 输入输出数据信号类型不同
速度差异很大 (3)理解I/O的工作过程与结构是理解操作系统的工作过程与结构的关键 I/O技术很实用 (4)与其他功能联系密切,特别是文件系统
4
2、设备的分类 (1)按使用特性分 存储型设备 输入型设备(外设主机) 输出型设备(主机外设) 输入输出型设备(交互型设备)
5
(2)按数据组织分 块设备 以数据块为单位存储、传输信息 字符设备 以字符为单位存储、传输信息
6
(3)按外部设备的从属关系分 系统设备 指操作系统生成时,登记在系统中的标准设备 (如终端、打印机、磁盘机等)
7
用户设备 指在系统生成时,未登记在系统中的非标准设备。对于这类设备的处理程序由用户提供,并将其纳入系统,由系统代替用户实施管理。 (如A/D,D/A转换器,CAD所用专用设备)
8
(4)按资源分配角度分 独占设备 在一段时间内只能有一个进程使用的设备,一般为低速I/O设备(如打印机,磁带等) 共享设备 在一段时间内可有多个进程共同使用的设备,多个进程以交叉的方式来使用设备,其资源利用率高(如硬盘)
9
在一类设备上模拟另一类设备,常用共享设备模拟独占设备,用高速设备模拟低速设备,被模拟的设备称为虚设备
目的:将慢速的独占设备改造成多个用户可共享的设备,提高设备的利用率 (实例:SPOOLing技术,利用虚设备技术 ——用硬盘模拟输入输出设备)
10
SPOOLing技术 为解决独立设备数量少,速度慢,不能满足众多进程的要求,而且在进程独占设备期间,设备利用率比较低而提出的一种设备管理技术
11
(5)从程序使用角度分 逻辑设备、物理设备 (6)按数据传输率分 高速设备、低速设备 (7)按接口分 与用户交流:显示器,键盘,鼠标,打印机等 与电子设备交流:磁盘、磁带等 通信:与远程设备通信:调制解调器
12
各类设备的差别: 数据传输率 应用 控制的复杂性 传输单位 数据表示 出错条件
13
3.设备管理的目标和任务 (1)按照用户的请求,控制设备的各种操作,完成I/O设备与内存之间的数据交换(包括设备分配与回收;设备驱动程序;设备中断处理;缓冲区管理),最终完成用户的I/O请求
14
功能 设备分配与回收 记录设备的状态 根据用户的请求和设备的类型,采用一定的分配算法,选择一条数据通路 建立统一的独立于设备的接口
完成设备驱动程序,实现真正的I/O操作 处理外部设备的中断处理 管理I/O缓冲区
15
(2)向用户提供使用外部设备的方便接口,使用户摆脱繁琐的编程负担 方便性 友好界面 透明性
逻辑设备与物理设备、屏蔽硬件细节(设备的物理细节,错误处理,不同I/O的差异性)
16
(3)充分利用各种技术(通道,中断,缓冲等)提高CPU与设备、设备与设备之间的并行工作能力,充分利用资源,提高资源利用率
并行性 均衡性(使设备充分忙碌)
17
(4)保证在多道程序环境下,当多个进程竞争使用设备时,按一定策略分配和管理各种设备,使系统能有条不紊的工作
(5)保护 设备传送或管理的数据应该是安全的、不被破坏的、保密的
18
(6)与设备无关性(设备独立性) 用户在编制程序时,使用逻辑设备名,由系统实现从逻辑设备到物理设备(实际设备)的转换 用户能独立于具体物理设备而方便的使用设备
19
用户申请使用设备时,只需要指定设备类型,而无须指定具体物理设备,系统根据当前的请求,及设备分配的情况,在相同类别设备中,选择一个空闲设备,并将其分配给一个申请进程
统一性: 对不同的设备采取统一的操作方式,在用户程序中使用的是逻辑设备
20
优点: 设备忙碌或设备故障时,用户不必修改程序 改善了系统的可适应性和可扩展性
21
二、I/O软件的组成 I/O软件的基本思想是按分层的思想构成,较低层软件要使较高层软件独立于硬件的特性,较高层软件则要向用户提供一个友好的、清晰的、简单的、功能更强的接口
22
1. I/O软件的目标 在设计I/O软件时的一个关键概念是设备独立性。用户在编写使用软盘或硬盘上文件的程序时,无需为不同的设备类型而修改程序就可以使用 与设备独立性密切相关的是统一命名这一目标。一个文件或一个设备的名字只应是一个简单的字符串或一个整数,不应依赖于设备
23
出错处理是I/O软件的另一个目标。一般来说,数据传输中的错误应尽可能地在接近硬件层上处理
最后一个问题是可共享设备和独占设备的处理问题
24
2.中断处理程序 每个进程在启动一个I/O操作后阻塞 直到I/O操作完成并产生一个中断 由操作系统接管CPU后唤醒该进程为止
25
3.设备驱动程序 与设备密切相关的代码放在设备驱动程序中,每个设备驱动程序处理一种设备类型
每一个控制器都设有一个或多个设备寄存器,用来存放向设备发送的命令和参数。设备驱动程序负责释放这些命令,并监督它们正确执行
26
一般,设备驱动程序的任务是接收来自与设备无关的上层软件的抽象请求,并执行这个请求
在设备驱动程序的进程释放一条或多条命令后,系统有两种处理方式,多数情况下,执行设备驱动程序的进程必须等待命令完成,这样,在命令开始执行后,它阻塞自已,直到中断处理时将它解除阻塞为止。而在其它情况下,命令执行不必延迟就很快完成
27
4.设备独立的软件 虽然I/O软件中一部分是设备专用的,但大部分软件是与设备无关的。设备驱动程序与设备独立软件之间的确切界限是依赖于具体系统的
29
1.独立于设备的软件的基本任务是实现所有设备都需要的功能,并且向用户级软件提供一个统一的接口
2.如何给文件和设备这样的对象命名是操作系统中的一个主要课题。独立于设备的软件负责把设备的符号名映射到正确的设备驱动上 3.设备保护 系统如何防止无权存取设备的用户存取设备呢?
30
4.不同的磁盘可以采用不同的扇区尺寸。向较高层软件掩盖这一事实并提供大小统一的块尺寸,这正是设备独立软件的一个任务。它可将若干扇区合成一个逻辑块。这样,较高层的软件只与抽象设备打交道,独立于物理扇区的尺寸而使用等长的逻辑块 5.缓冲技术 6.设备分配 7.出错处理
31
5.用户空间的I/O软件 尽管大部分I/O软件都包含在操作系统中,但仍有一小部分是由与用户程序连接在一起的库过程,甚至完全由运行于核外的程序构成。系统调用,包括I/O系统调用,通常由库过程实现 这些过程所做的工作只是将系统调用时所用的参数放在合适的位置,由其它的I/O过程实际实现真正的操作
33
(1)用户进程层执行输入输出系统调用,对I/O数据进行格式化,为假脱机输入/输出作准备
(2)独立于设备的软件实现设备的命名、设备的保护、成块处理、缓冲技术和设备分配 (3)设备驱动程序设置设备寄存器、检查设备的执行状态 (4)中断处理程序负责I/O完成时,唤醒设备驱动程序进程,进行中断处理 (5)硬件层实现物理I/O的操作
34
三、I/O硬件特点 1.设备组成 I/O设备一般由机械和电子两部分组成 把这两部分分开处理,以提供更加模块化,更加通用的设计
35
(1)物理设备 机械部分是设备本身(物理装置) (2)设备控制器 电子部分叫做设备控制器或适配器。 在小型和微型机中,它常采用印刷电路卡插入计算机中(接口) 完成设备与主机间的连接和通讯
36
控制器卡上通常有一个插座,通过电缆与设备相连 控制器和设备之间的接口是一个标准接口,它符合ANSI、IEEE或ISO这样的国际标准
CPU 外 部 设 备 控 制 逻 辑 电 路 控制寄存器 状态寄存器 数据寄存器
37
I/O设备特点: (1)操作异步性 (2)设备自治性 (3)接口通用性 关注点:对该硬件如何进行程序设计,不考虑设备内部如何工作 程序员:软件接口 即硬件所接受的命令,它所完成的功能,报回的错误
38
2.设备接口 一个I/O过程由四步组成: 准备 启动 测试和等待 结果检查和错误处理 通过对设备接口寄存器组的读写完成 设备接口复杂繁琐
39
操作系统将命令写入控制器寄存器中,以实现输入/输出
例如:IBM PC的软盘控制器可接收15条命令,READ、WRITE、FORMAT、SEEK、RECALIBRATE,命令可以带参数。它们被一起送入控制器的寄存器中
40
当控制器接受一条命令后,可独立于CPU完成指定操作,CPU可以转去执行其它运算。命令完成时,控制器产生一个中断,CPU响应中断,控制转给操作系统。CPU通过读控制器寄存器中的信息,获得操作结果和设备状态
41
控制器与设备之间的接口常常是一个低级接口。例如磁盘,可以按每个磁道8扇区,每个扇区512个字节进行格式化。然而,实际从驱动器出来的却是一连串的位流,以一个头标(preamble)开始,然后是一个扇区的4096位(512×8),最后是检查和或错误校验码(Error—C一C:ECC)。头标是在对磁盘格式化时写上的,它包括柱面和扇区数,扇区的大小和类似的一些数据
42
控制器的任务是把串行的位流转换为字节块,并进行必要的错误修正。首先,控制器按位进行组装,然后存入控制器内部的缓冲区中形成以字节为单位的块。在对块验证检查和并证明无错误时,再将它复制到主存中
43
指I/O设备与CPU之间的连接方式,亦即将设备连接到一个计算机系统上的方式
3.设备连接模式 指I/O设备与CPU之间的连接方式,亦即将设备连接到一个计算机系统上的方式 在一个确定的连接模式下,从I/O设备到CPU间的所有连接成分构成了一条I/O路径(I/O链)
44
设备与主机间最基本的连接方式 四个要素: 设备接口形式 I/O指令形式 I/O地址空间分配及译码 连线问题
45
(1)设备接口形式 * 端口地址译码 * 按照主机与设备的约定格式和过程接受或发送数据和信号 计算机 设备 设备 计算机 * 将计算机的数字信号转换为机械部分能识别的模拟信号,或反过来 * 实现一些诸如设备内部硬件缓冲存储、数据加工的提高性能或增强功能的任务
46
(2)端口编址方法 接口电路中:多个寄存器 一个寄存器有唯一的一个地址,每个地址为I/O端口,该地址称为I/O端口地址。 I/O指令形式与I/O地址是相互关联的,主要有两种形式: 内存映像编址(内存映像I/O模式) I/O独立编址(I/O专用指令)
47
I/O独立编址 分配给系统中所有端口的地址空间是完全独立的,与内存的地址空间没有关系 主机使用专门的I/O指令对端口进行操作 优点
外部设备不占用内存的地址空间 程序设计时,易于区分是对内存操作还是对I/O端口操作 缺点:对I/O端口操作的指令类型少,操作不灵活 例子:8086/8088,分配给I/O端口的地址空间64K,0000H~0FFFFH,只能用IN和OUT指令对其进行读写操作
49
存储映像编址 分配给系统中所有端口的地址空间与内存的地址空间统一编址
主机把I/O端口看作一个存储单元,对I/O的读写操作等同于对存储器的操作 优点 凡是可对存储器操作的指令都可对I/O端口操作 不需要专门的I/O指令 I/O端口可占有较大的地址空间 缺点:占用内存空间
50
4.要考虑的几个问题 设备完成技术:系统如何知道设备的一次I/O操作是否完成?
对CPU编程的I/O技术:CPU必须亲自完成I/O的启动与完成的处理,亲自执行所有数据在内存和设备之间的实际物理传送
51
设备完成技术 一次I/O 传送过程: 准备传送后处理 例:一个打印机有两个I/O设备寄存器 状态寄存器 数据寄存器
52
设备的一次操作是否完成? 测试设备的一个硬件信号 几种测试模式: (1)I/O测试指令 (2)中断技术
53
进一步改善 使CPU利用率尽可能不被I/O降低 使CPU尽可能摆脱I/O 提高I/O本身的绝对速度 减少或缓解速度差距
减少或缓解速度差距 使CPU不等待I/O
54
提高设备利用率 在设备与主机的硬连接上,引入总线,节省连线并提供配置扩充与改变时的灵活性;引入控制器,扩大设备与主机间的相互适用范围 小结:控制器与设备的分离,循环测试到 中断,对CPU编程式的I/O到DMA,联机I/O 到假脱机
55
四、设备有关技术 1.Spooling(虚拟设备)技术 一个虚拟设备 一个资源转换技术 (用空间,如输入,输出等换取CPU时间) 解决问题:
在进程所需物理设备不存在或被占用时使用该设备
56
打印机的SPOOLing值班进程 假若进程打开打印机特殊文件后几小时内无所事事,其他进程什么都打印不了! 解决方案:
创建值班(精灵)进程(daemon)、SPOOLing目录 进程首先生成要打印的文件,放入SPOOLing目录 值班进程:唯一获准使用打印机特殊文件的进程 用以打印SPOOLing目录里的文件 通过禁止对特殊文件的直接使用、提高了使用效率
57
网络的SPOOLing值班进程 SPOOLing技术今天仍被广泛使用 网络文件传送
Internet电子邮件系统 为了寄邮,调用电子邮件程序 待发信存在SPOOLing中供以后传输 注意:SPOOLing只提高设备利用率,缩短用户程序执行时间,并不提高CPU利用率
58
2.通道技术 (1)定义:通道是独立于CPU的专门负责数据输入/输出传输工作的处理机,对外部设备实现统一管理,代替CPU对输入/输出操作进行控制,从而使输入,输出操作可与CPU并行操作。 可以执行通道程序
59
(2)引入通道的目的 为了使CPU从I/O事务中解脱出来,同时为了提高CPU与设备,设备与设备之间的并行工作能力
60
(3)分类 字节多路通道 字节多路通道以字节为单位传输信息,它可以分时地执行多个通道程序。当一个通道程序控制某台设备传送一个字节后,通道硬件就控制转去执行另一个通道程序,控制另一台设备传送信息 主要连接以字节为单位的低速I/O设备。如打印机,终端。 以字节为单位交叉传输,当一台传送一个字节后,立即转去为另一台传送字节
62
选择通道 选择通道是以成组方式工作的,即每次传送一批数据,故传送速度很高。选择通道在一段时间内只能执行一个通道程序,只允许一台设备进行数据传输
63
当这台设备数据传输完成后,再选择与通道连接的另一台设备,执行它的相应的通道程序
主要连接磁盘,磁带等高速I/O设备 选择通道
64
它结合了选择通道传送速度高和字节多路通道能进行分时并行操作的优点。它先为一台设备执行一条通道指令,然后自动转接,为另一台设备执行一条通道指令
成组多路通道 它结合了选择通道传送速度高和字节多路通道能进行分时并行操作的优点。它先为一台设备执行一条通道指令,然后自动转接,为另一台设备执行一条通道指令 主要连接高速设备 这样,对于连接多台磁盘机的数组多路通道,它可以启动它们同时执行移臂定位操作,然后,按序交叉地传输一批批数据。数据多路通道实际上是对通道程序采用多道程序设计的硬件实现
65
(4)硬件连接结构
66
通道:执行通道程序,向控制器发出命令,并具有向CPU发中断信号的功能。 一旦CPU发出指令,启动通道,则通道独立于CPU工作。一个通道可连接多个控制器,一个控制器可连接多个设备,形成树形交叉连接
主要目的是启动外设时: 提高了控制器效率 提高可靠性 提高并行度
68
交叉连接
69
(5)通道工作原理 通道相当于一个功能简单的处理机,包含通道指令(空操作,读操作,写操作,控制,转移操作),并可执行用这些指令编写的通道程序
70
通道运算控制部件 通道地址字 CAW: 记录通道程序在内存中的地址 通道命令字 CCW: 保存正在执行的通道指令 通道状态字 CSW:
存放通道执行后的返回结果 通道数据字 CDW:存放传输数据 通道和CPU共用内存,通过周期窃取方式取得
71
通道命令及格式 用于I/O操作的命令主要有两种: I/O指令:启动通道程序 通道命令:对I/O操作进行控制 读、反读、写、测试设备状态的数据传输命令、用于设备控制的命令(磁带反绕、换页)、实现通道程序内部控制的转移命令
72
命令格式一般包括:操作码、数据传输内存地址、特征位、计数器
编制一个通道程序,从磁带机上读入200字节的信息,送入内存(1000)16 开始的单元。 通道命令码:“07”反绕 “02”读 CCW1 X “07” * X “40” 1; CCW2 X “02” 1000 X “00” 200;
73
工作原理 CPU:执行用户程序,当遇到I/O请求时,可根据该请求生成通道程序放入内存(也可事先编好放入内存),并将该通道程序的首地址放入CAW中;之后执行“启动I/O”指令,启动通道工作
74
通道:接收到“启动I/O”指令后,从CAW中取出通道程序的首地址,并根据首地址取出第一条指令放入CCW中,同时向CPU发回答信号,使CPU可继续执行其他程序,而通道则开始执行通道程序,完成传输工作
75
(通道程序完成实际I/O,启动I/O设备,执行完毕后,如果还有下一条指令,则继续执行, 否则表示传输完成)
当通道传输完成最后一条指令时,向 CPU发I/O中断,并且通道停止工作。 CPU接收中断信号,从CSW中取得有关 信息,决定下一步做什么
76
通道的发展 新的通道思想综合了许多新的技术
在个人计算机中,芯片组中专门I/O处理的芯片,称为IOP(IO Processor),发挥通道的作用 IBM 390 中,沿用了输入输出通道概念 IBM于1998年推出光纤通道技术(称为FICON),可通过 FICON 连接多达127个大容量I/O设备。传输速度是333MHz/s,未来将达到1GHz/s。 光纤通道技术具有数据传输速率高、传输距离远,可简化大型存储系统设计的优点 在大容量高速存储,如大型数据库、多媒体、数字影像等应用领域,有广泛前景
77
3.DMA技术 数据在内存与I/O设备间的直接成块传送
CPU在开始时向设备发“传送一块”命令,结束时进行相应处理,实际操作由DMA硬件直接完成 DMA能够通过系统总线代替CPU管理数据的存入或取出 当CPU不需要系统总线时可以使用总线 DMA可以强迫CPU暂时延迟其他操作,获取一个总线周期(周期窃取)
78
DMA方式与中断的主要区别 中断方式是在数据缓冲寄存区满后,发中断请求,CPU进行中断处理
而DMA方式则是在DMA控制器的控制下不经过CPU控制完成的
79
不用DMA时,磁盘如何读: 首先,控制器从磁盘驱动器串行地一位一位地读一个块,直到将整块信息放入控制器的内部缓冲区中 其次,它做和校验计算,以核实没有读错误发生 然后控制器产生一个中断。CPU响应中断,控制转给操作系统。当操作系统开始运行时,它重复地从控制器缓冲区中一次一个字节或一个字地读这个磁盘块的信息,并将其送入内存中
80
采用DMA方式时,允许DMA控制器接管地址线的控制权,直接控制DMA控制器与内存的数据交换。从而使磁盘设备与储器之间的数据传送不需要CPU介入,因而减轻了CPU负担
81
当DMA硬件控制磁盘与存储器之间进行信息交换时,每当磁盘把一个数据读入控制器的数据缓冲区时,DMA控制器取代CPU,接管地址总线的控制权,并按照DMA控制器中的存储器地址寄存器内容把数据送入相应的内存单元中。然后,DMA硬件自动地把传送字节计数器减1,把存储器地址寄存器加1,并恢复CPU对内存的控制权,DMA控制器对每一个传送的数据重复上述过程,直到传送字节计数器为“0”时,向CPU产生一个中断信号。当操作系统接管CPU控制权时,再无需做块复制的工作了
82
DMA工作示例 (以硬盘为例) CPU提供 被读取块磁盘地址 目标存储地址 待读取字节数 整块数据读进缓冲区 核准校验
控制器按照指定存储器地址,把第一个字节送入主存 然后,按指定字节数进行数据传送 每当传送一个字节后,字节计数器值减1,直到字节计数器等于0 此时,控制器引发中断,通知操作系统,操作完成
83
DMA工作原理——窃取总线控制权 存放输入数据的内存起始地址、要传送的字节数 送入DMA控制器的内存地址寄存器和传送字节计数器
中断允许位和启动位置成1,启动设备 发出传输要求的进程进入等待状态 执行指令被暂时挂起,进程调度其他进程占据CPU 输入设备不断窃取CPU工作周期,数据不断写入内存 传送完毕,发出中断信号 CPU接到中断信号转入中断处理程序处理 中断处理结束,CPU返回原进程或切换到新的进程
84
CPU向控制器发出启动DMA通知和有关参数
控制器向内存发出询问请求 访问内存(读、写) 计数器减1 N 结束否 Y DMA的实现流程 发中断
85
4. 缓冲技术 (1)缓冲技术的引入 凡是数据到达和离去速度不匹配的地方均可采用缓冲技术。
在操作系统中采用缓冲是为了实现数据的I/O操作,以缓解CPU与外部设备之间速度不匹配的矛盾,提高资源利用率 减少了I/O设备对处理器的中断请求次数 简化了中断机制 节省了系统开销
86
(2)缓冲区设置 硬缓冲: 在设备中设置缓冲区,由硬件实现 软缓冲: 在内存中开辟一个空间,用作缓冲区
87
(3)缓冲区管理 单缓冲 双缓冲 缓冲池: 多个缓冲区连接起来统一管理,常采用多缓冲管理
88
(4)例子 终端输入软件中的键盘驱动程序 任务之一:收集字符 两种常见的字符缓冲方法: 公共缓冲池(驱动程序中) 终端数据结构缓冲
89
终端 数据结构 公共 缓冲池 1 2 3 终端0 的缓冲区 终端1 公共缓冲池 终端固定缓冲区
90
5. 总线技术 新一代计算机出现,带来了总线技术的更新 (1)总线的基本概念: 在计算机系统内各种子系统 如CPU、内存、I/O设备等之间
构建公用的信号或数据传输通道 这种可共享连接的传输通道称为总线
91
(2)总线的分类 CPU-内存总线 (非本课程范围) 总线的分类 数据总线 I/O总线 地址总线 控制总线
92
微型计算机 总线的种类和发展 PC/XT总线 ISA总线 MCA总线 EISA总线 VESA总线 PCI总线 USB总线 SCSI总线
…... (?) (过时) 微型计算机 总线的种类和发展 SCSI总线 1394总线
93
6. USB技术 USB(Universal Serial Bus)通用串行总线,是一种连接I/O串行设备的技术标准
冲破了计算机技术发展的两个历史局限性: (1)由于I/O设备的接口标准的不一致和有限的接口数量已无法满足各种应用迫切需要 (2)传统的I/O设备的接口无法满足实时数据传输与多媒体应用的需求 USB以WDM(Windows Driver Model)模型为基础,WDM包含一套通用的I/O服务和二进制兼容的设备驱动程序
94
USB支持同步数据传输方式和异步数据传输方式,其数据传输率有低速1.5Mbps和全速12Mbps两种,比标准串口快100倍,比标准并口快10倍
允许外部设备的热插拔
95
USB的结构 控制器:控制器主要负责执行由控制器驱动程序发出的命令 控制器驱动程序:控制器驱动程序在控制器与USB设备之间建立通信信道
USB芯片驱动程序:USB芯片驱动程序提供了对USB的支持 USB设备分为两类: (1)USB集线器:本身可再接其他USB外围设备 (2)USB设备:连接在计算机上用来完成特定功能并符合USB规范的I/O设备单元,如鼠标、键盘等
96
USB的传输方式 4种不同的数据传输方式: (1)等时传输方式
(2)中断传输方式 该方式传送的数据量很小,但这些数据需要及时处理,以达到实时效果,此方式主要用在键盘、鼠标以及游戏手柄等外部设备上
97
USB的传输方式 (3)控制传输方式 处理主机的USB设备的数据传输,包括设备控制指令、设备状态查询及确认命令。当USB设备收到这些数据和命令后将按照先进先出的原则按队列方式处理到达的数据 (4)批传输方式 用来传输要求正确无误的数据。通常打印机、扫描仪和数码相机以这种方式与主机连接 除等时传输方式外,其他3种方式在数据传输发生错误时,都会试图重新发送数据以保证其准确性
98
6. SCSI接口技术 小型计算机系统接口 (Small Computer System Interface)
一个SCSI I/O设备控制器 可将新型高速I/O设备增加到计算机系统中 SCSI 设备控制器的智能化I/O控制 降低了计算机系统的负担 使计算机系统具有更高的I/O能力
99
SCSI系统结构
100
7. 即插即用技术(Plug and Play) 计算机系统I/O设备与部件配置的应用技术 顾名思义: 插入就可用,不需要进行任何设置操作
101
PnP技术的产生 由于一个系统可以配置多种外部设备,设备也经常变动和更换,它们都要占有一定的系统资源,彼此间在硬件和软件上可能会产生冲突。因此在系统中要正确地对它们进行配置和资源匹配;当设备撤除、添置和进行系统升级时,配置过程往往是一个困难的过程
102
PnP技术的特点 (1)支持I/O设备及部件的自动配置,使用户能够简单方便地使用系统扩充设备
103
(3)在主机板和附加卡上保存系统资源的配置参数和分配状态,有利于系统对整个I/O资源的分配和控制
(4)支持和兼容各种操作系统平台,具有很强的扩展性和可移植性。 (5)在一定程度上具有“热插入”、“热拼接”技术
104
PnP技术的功能: (1)附加卡的识别与确认 (2)资源分配 (3)附加卡自动配置
105
多方面的支持:具有PnP功能的操作系统、配置管理软件、软件安装程序、设备驱动程序等;网络设备的PnP支持;系统平台的支持(如:PnP主机板、控制芯片组和PnP BIOS等);各种支持PnP规范的总线的I/O控制卡和部件
106
8. 网络I/O设备 网络计算已成为计算机发展的方向之一 典型网络I/O设备——网络打印 以往的打印模式
打印机连接到网上PC上,或连到文件服务器上,提供网络打印服务 新的网络打印 采用网络打印服务器技术,打印机直接上网 任何数据直接送到网络打印机输出
107
网络打印设备 打印服务器还能实现多种网络自动切换:不同网络环境中的用户都可以直接向同一台打印机发送打印作业,打印服务器会自动识别
较强的打印管理功能:可以管理网络打印驱动,而且容易安装和管理;可以实现远程登录访问,进行远程打印机管理 提高工作效率 分布式的环境设置:可以安装在网络的任何地方,这种打印服务方式,就显得更加灵活和满足需要 QoS更好
108
五、设备处理 1. 设备分配与回收 当某进程向系统提出I/O请求时,设备分配程序按一定策略分配设备、控制器和通道,形成一条数据传输通路,以供主机和设备间信息交换
109
设备独立性,即不能因为设备的忙碌、故障或更换而影响程序的运行, 向用户屏蔽物理设备, 呈现给用户的一个操作简单的逻辑设备
抽象的I/O 操作,即设计一类通用的I/O指令,它们的含义对不同类型的设备作不同解释。而且,在操作系统中,提供了若干I/O系统调用。由系统将抽象的I/O 操作映射到专门的设备驱动程序
110
(1)数据结构: 设备控制块DCB(设备控制表DCT) 控制器控制块COCB (控制器控制表COCT) 通道控制块CHCB (通道控制表CHCT) 系统设备表SDT
111
系统设备表SDT 整个系统一张表,记录系统中所有I/O设备的信息,表目包括: 设备类型、设备标识符、进程标识符、DCT表指针等
112
设备控制表DCT 主要内容:设备类型、设备标识符、设备状态、与此设备相连的COCT、重复执行的次数或时间、等待队列的队首和队尾指针、I/O程序地址 COCT、CHCT与DCT类似
113
根据用户请求的I/O设备的逻辑名,查找逻辑设备和物理设备的映射表;以物理设备为索引,查找SDT,找到该设备所连接的DCT;继续查找与该设备连接的COCT和CHCT,就找到了一条通路
114
2.设备分配策略 由于在多道程序系统中,进程数多于资源数,引起资源的竞争。因此,要有一套合理的分配原则 考虑的因素: I/O设备的固有属性
设备分配的安全性 与设备的无关性
115
独占设备的分配 要考虑充分发挥效率,避免由于不合理的分配策略造成死锁 静态分配:在进程运行前, 完成设备分配;运行结束时,收回设备 缺点:设备利用率低
116
动态分配: 在进程运行过程中,当用户提出设备要求时,进行分配,一旦停止使用立即收回 优点:效率好 缺点:分配策略不好时, 产生死锁
117
共享设备分配 由于同时有多个进程同时访问,且访问频繁,就会影响整个设备使用效率,影响系统效率。因此要考虑多个访问请求到达时服务的顺序,使平均服务时间越短越好
118
2.设备驱动程序 为了控制I/O传输,系统为每类设备编制设备驱动程序
任务:主要负责接收和分析从设备分配转来的信息,并根据设备分配的结果,结合具体物理设备特性完成以下具体工作
119
(1) 预置设备的初始状态 (2) 根据请求传输的数据量,组织I/O缓冲队列,利用I/O缓冲对数据进行加工,包括数据格式处理和编码转换 (3) 构造I/O程序(在有通道系统中,是通道程序) (4) 启动设备进行I/O操作
120
3. I/O中断处理程序 处理来自设备或通道的中断
121
不同操作系统处理I/O事务所采用的形式不同,主要有三种处理方式:
(3) 为各类设备设置相应的设备处理程序供外部调用 I/O进程:专门处理系统中的I/O请求和I/O中断工作
122
(1)I/O请求的进入 用户程序:调用send将I/O请求发送给I/O进程;调用block将自己阻塞,直到I/O任务完成后被唤醒 系统:利用wakeup唤醒I/O进程,完成用户所要求的I/O处理 (2)I/O中断的进入 当I/O中断发生时,内核中的中断处理程序发一条消息给I/O进程,由I/O进程负责判断并处理中断
123
(3)I/O进程 是系统进程,一般赋予最高优先级。一旦被唤醒,它可以很快抢占处理机投入运行 I/O进程开始运行后,首先关闭中断,然后用receive去接收消息。两种情形:
124
没有消息,则开中断,将自己阻塞; 有消息,则判断消息(I/O请求或I/O中断); a.I/O请求 准备通道程序,发出启动I/O指令,继续判断有无消息 b.I/O中断,进一步判断正常或异常结束 正常:唤醒要求进行I/O操作的进程 异常:转入相应的错误处理程序
125
为进程P分配所需的I/O设备 从SDT表查该类设备的控制表DCT 由DCT检查该设备忙否? 检查分配此设备的安全性? 分配此设备给进程P
N 由DCT检查该设备忙否? 不忙 不安全 最后一个DCT? 检查分配此设备的安全性? Y 进程P的PCB放入 此设备的等待队列 分配此设备给进程P 忙 N 查此设备连接的COCT忙否? 最后一个COCT? 不忙 分配此控制器给进程P Y N 最后一个DCT? 忙 查此控制器连接的CHCT忙否? N Y 最后一个CHCT? 不忙 进程 P 的 PCB 放入 此控制器的等待队列 N Y 分配此通道给进程P 最后一个COCT? Y 启动I/O,进行具体的I/O操作 进程 P 的 PCB 放入 此通道的等待队列 多通路设备分配流程示意图
126
I/O的操作全过程 4 1 2 5 3 6 用户程序 管理程序 通道程序 设备控制器和设备 程序P 保护现场 组织通道程序 保存通道程序
的始址于CAW 启动I/O指令 分析条件码 启动成功使 P阻塞, 另选 程序q运行 保护程序q的 现场 分析中断原因 处理I/O中断 选择可运行程序 执行规定 的操作 判断状态 执行通道程序 控制I/O设备 操作,执行情 况记录在CSW 出现中断事件 CSW=>主存通 道号, 设备号 送特定寄存器 4 1 请求 启动程序 2 5 3 程序q 6 I/O的操作全过程
127
六、典型外部设备 硬盘 时钟 终端
128
1. 磁盘 几乎所有计算机都使用磁盘来存储信息。从存储角度,与内存比较起来,磁盘有三个主要的优点: (1)可用的存储容量非常大
(2)每位的价格非常低 (3)电源关掉后信息不会丢失
129
磁盘硬件 实际的硬盘都组织成许多柱面,每一个柱面上的磁道数和垂直放置的磁头个数相同
磁道又被分成许多扇区,每条磁道上扇区数目典型为8至32,每个扇区包含相同的字节数 磁盘驱动程序有重要设备特性:控制器可以同时控制两个或多个驱动器进行寻道,这就是重叠寻道(overlapped seeks) 当控制器和软件等待一个驱动器完成寻道时,控制器可以启动另一个驱动器进行寻道。许多控制器也可以在对一个或多个其他驱动器寻道的同时在一个驱动器上进行读写操作 但是控制器不能同时读写两个驱动器(读写数据要求控制器在微秒级范围传输数据,所以一个传输就基本用完了所有的计算能力)
130
磁盘硬件 RAM 盘 RAM盘的思想很简单,它使用预先分配的主存来存储数据块。RAM盘具有立即存取的优点(没有寻道和旋转延迟),适用于存储需要频繁存取的程序和数据 实现RAM盘的思想:根据为RAM盘分配内存大小,RAM盘被分成n块,每块的大小与实际磁盘块的大小相同 当驱动程序接收到一条读写一块的消息时,它只计算被请求的块在RAM盘存储区的位置,并读出或写入该块,而不对软盘或硬盘进行读写
131
2. 时钟 时钟(clock),又称为定时器(timer) (1) 时钟负责提供一天的时间 (2) 防止一个进程垄断CPU
时钟既不是块设备,也不是字符设备,但时钟软件通常也采用设备驱动程序的形式
132
时钟硬件 两种类型: 比较简单的时钟被连到110V或220V的电源线上,每个电压周期产生一个中断,频率是50Hz或60Hz
另一种时钟由三个部件构成:晶体振荡器、计数器和存储寄存器 石英晶体产生的精确的周期信号,典型的范围是5到100MHz 信号送到到计数器,使其递减计数至0。当计数器变为0时,产生一个CPU中断信号
133
可编程时钟操作方式:在单脉冲方式(one-shot mode)下,当时钟启动时,它把存储寄存器的值拷贝到计数器中,然后,晶体的每一个脉冲使计数器减1。当计数器为0时,产生一个中断,并停止工作,直到软件再一次显式启动它 在方波方式(square-wave mode)下,当计数器为0并产生中断时,存储寄存器的值自动拷贝到计数器,这个过程不断地重复下去。周期性的中断称为时钟滴答(clock tick ) 可编程时钟的优点是其中断频率可由软件控制
134
时钟软件 时钟硬件所做的工作是每隔一定的时间间隔产生一个中断 涉及时间的其他所有工作都必须由软件—时钟驱动程序完成
135
时钟软件功能: 1.维护日期时间 2.防止进程超时运行 3.对CPU的使用情况记帐 4.处理用户进程提出的ALARM系统调用
5.为系统本身各部分提供监视定时器 6. 绘制CPU运行直方图,完成监视和统计信息收集 系统的其他部分也需要定时器称为监视定时器(watchdog timer)。例如,使用软盘时,系统必须驱动软盘的电机接通电源并等待大约500毫秒,使电机达到稳定速度
136
3. 终端 输入:原始模式或加工模式 缓冲、回送、填充字符、行编辑、特殊字符处理 输出:光标的位置、转义字符
每台计算机都配有一个或多个终端与之通信 为了使操作系统中与设备无关部分和用户程序对于不同型号的终端不必重写,终端驱动程序隐藏了各种类型终端的差异
137
终端硬件 根据与操作系统的通信方法将终端分为两大类: (1)RS-232标准接口 (2)存储映像终端
计算机和终端以字符作为处理对象,而通信时却是通过串行口一次一位地进行 需要完成字符到位串与位串到字符的转换
138
终端硬件 智能CRT终端实际是一微小型计算机 它们带有一个CPU和存储器,通常在EPROM或ROM中存储了复杂的程序
从操作系统的角度,玻璃终端和智能终端的主要不同点是:后者理解特殊的转义序列 最高档的智能终端中包含了与主计算机能力相同的CPU,以及以兆字节为单位的内存,可以从计算机系统下载任何程序
139
存储映像终端 本身是计算机的组成部分 通过专用存储器接口与计算机通信,称为视频RAM(video RAM),是计算机地址空间的一部分,CPU对它的寻址与对其他存储器的寻址是一样 视频控制器(video controller),从视频RAM中取出字符,产生用于驱动显示器视频信号 当CPU将一个字符写到视频RAM时,在一帧显示周期内显示在屏幕上
140
存储映像终端 速度快 交互最快,广泛使用 位映像终端 视频RAM每一位直接控制屏幕上的每一像素
800×1024个像素的屏幕需100k字节RAM(彩色更多) 提供更加灵活的字符字体和尺寸 允许多窗口 可制作任意图形
141
输入软件 键盘驱动程序的基本工作 收集键盘的输入信息 当用户程序要从终端读信息时,把收集的输入传给用户程序 键盘驱动程序两种处理方式
(1)面向字符,原始(raw)模式 将接收的输入不加修改地向上层传送,从终端读信息的程序得到一系列原始的ASCII码序 (2)面向行,加工(cooked)模式 键盘驱动程序负责处理一行内的编辑,并将修改过的行传送给用户程序
142
输出软件 RS-232终端与存储终端的驱动程序完全不同 RS-232终端 输出缓冲区与每个终端相关联 程序向终端写时,先将输出拷贝到缓冲区
需要回送的输入也拷贝到缓冲区 当输出全部复制到缓冲区(或者缓冲区满)时,向终端输出第一个字符,驱动程序睡眠等待,产生中断时,输出下一个字符,如此循环,直到输出完成 存储映像终端 从用户空间一次取出一个要打印的字符 然后,直接送入视频RAM
Similar presentations