第五章 设备管理第五章 设备管理
5.1 概 述
5.2 I/O软件的组成
5.3 I/O硬件特点
5.4 I/O控制技术
5.5 设备有关技术
5.6 设备分配与设备处理
5.7 磁盘存储器管理
5.8 典型外部设备第五章 设备管理
5.1 概 述
1.I/O性能经常成为系统性能的瓶颈
(1)CPU性能不等于系统性能响应时间也是一个重要因素
(2)CPU性能越高,与 I/O差距越大弥补:更多的进程
(3)进程切换多,系统开销大
5.1.1 I/O的特点
2.操作系统庞大复杂的原因之一是:
资源多、杂,并发,均来自 I/O
外设种类繁多,结构各异输入输出数据信号类型不同速度差异很大
3.理解 I/O的工作过程与结构是理解操作系统的工作过程与结构的关键
4.与其他功能联系密切,特别是文件系统
1.按使用特性分存储型设备输入型设备( 外设?主机 )
输出型设备(主机?外设)
输入输出型设备(交互型设备 )
2.按数据组织分块设备以数据块为单位存储、传输信息字符设备以字符为单位存储、传输信息
5.1.2 设备的分类
系统设备指操作系统生成时,登记在系统中的标准设备
(如终端、打印机、磁盘机等)
用户设备指在系统生成时,未登记在系统中的非标准设备。对于这类设备的处理程序由用户提供,并将其纳入系统,由系统代替用户实施管理。
(如 A/D,D/A转换器,CAD所用专用设备)
3.按外部设备的从属关系分
1)独占设备在一段时间内只能有一个进程使用的设备,
一般为低速 I/O设备。(如打印机,磁带等)
2)共享设备在一段时间内可有多个进程共同使用的设备,多个进程以交叉的方式来使用设备,
其资源利用率高。(如硬盘)
3)虚设备
4.按资源分配角度分
在一类设备上模拟另一类设备,常用共享设备模拟独占设备,用高速设备模拟低速设备,被模拟的设备称为 虚设备
目的:将慢速的独占设备改造成多个用户可共享的设备,提高设备的利用率
实例,SPOOLing技术,利用虚设备技术
—— 用硬盘模拟输入输出设备)
3)虚设备为解决独立设备数量少,
速度慢,不能满足众多进程的要求,而且在进程独占设备期间,设备利用率比较低而提出的一种设备管理技术
SPOOLing技术
5.从程序使用角度分逻辑设备物理设备
6.按数据传输率分高速设备低速设备设备的分类(续 )
5.1.3 设计目标与任务
提高方便性
实现并行性
均衡性
设备独立性
1.设计目标
( 1)设备分配与回收记录设备的状态根据用户的请求和设备的类型,采用一定的分配算法,选择一条数据通路
( 2)建立统一的独立于设备的接口
( 3)完成设备驱动程序,实现真正的 I/O操作
( 4)处理外部设备的中断处理
( 5)管理 I/O缓冲区
2,设备管理的 功能
1)按照用户的请求,控制设备的各种操作,完成 I/O设备与内存之间的数据交换(包括设备分配与回收;设备驱动程序;设备中断处理;缓冲区管理),最终完成用户的 I/O请求
3.设备管理的目标和任务
2)向用户提供使用外部设备的方便接口,使用户摆脱繁琐的编程负担
方便性
友好界面
透明性逻辑设备与物理设备、屏蔽硬件细节(设备的物理细节,错误处理,不同 I/O的差异性)
3)充分利用各种技术(通道,中断,缓冲等)
提高 CPU与设备、设备与设备之间的并行工作能力,充分利用资源,提高资源利用率 ( 并行性,均衡性)
设备管理的目标和任务 (续)
4)保证在多道程序环境下,当多个进程竞争使用设备时,按一定策略分配和管理各种设备,使系统能有条不紊的工作
5)保护设备传送或管理的数据应该是安全的、不被破坏的、保密的设备管理的目标和任务 (续)
6) 与设备无关性(设备独立性)
用户在编制程序时,使用逻辑设备名,由系统实现从逻辑设备到物理设备的转换
用户能独立于具体物理设备而方便的使用设备
用户申请使用设备时,只需要指定设备类型,而无须指定具体物理设备,系统根据当前的请求,及设备分配的情况,在相同类别设备中,选择一个空闲设备,并将其分配给一个申请进程设备管理的目标和任务 (续)
统一性:
对不同的设备采取统一的操作方式,
在用户程序中使用的是逻辑设备。
优点:
设备忙碌或设备故障时,用户不必修改程序
改善了系统的可适应性和可扩展性第五章 设备管理
5.2 I/O软件的组成
I/ O软件的基本思想是按分层的思想构成,较低层软件要使较高层软件独立于硬件的特性,
较高层软件则要向用户提供一个友好的、清晰的、简单的、功能更强的接口
1,I/O软件的组成
在设计 I/ O软件时的一个关键概念是设备独立性。用户在编写使用软盘或硬盘上文件的程序时,无需为不同的设备类型而修改程序就可以使用
与设备独立性密切相关的是统一命名这一目标。一个文件或一个设备的名字只应是一个简单的字符串或一个整数,不应依赖于设备
出错处理是 I/ O软件的另一个目标。一般来说,数据传输中的错误应尽可能地在接近硬件层上处理
最后一个问题是可共享设备和独占设备的处理问题
2,I/ O软件的目标
每个进程在启动一个 I/ O操作后阻塞
直到 I/ O操作完成并产生一个中断
由操作系统接管 CPU后唤醒该进程为止
3,中断处理程序
与设备密切相关的代码放在设备驱动程序中,
每个设备驱动程序处理一种设备类型
每一个控制器都设有一个或多个设备寄存器,
用来存放向设备发送的命令和参数。设备驱动程序负责释放这些命令,并监督它们正确执行
一般,设备驱动程序的任务是接收来自与设备无关的上层软件的抽象请求,并执行这个请求
4,设备驱动程序在设备驱动程序的进程释放一条或多条命令后,系统有两种处理方式,多数情况下,执行设备驱动程序的进程必须等待命令完成,这样,在命令开始执行后,它阻塞自已,直到中断处理时将它解除阻塞为止。而在其它情况下,命令执行不必延迟就很快完成
4,设备驱动程序 (续)
虽然 I/ O软件中一部分是设备专用的,但大部分软件是与设备无关的。设备驱动程序与设备独立软件之间的确切界限是依赖于具体系统的
5,设备独立的软件
1)独立于设备的软件的基本任务是实现所有设备都需要的功能,并且向用户级软件提供一个统一的接口
2)如何给文件和设备这样的对象命名是操作系统中的一个主要课题。
独立于设备的软件负责把设备的符号名映射到正确的设备驱动上
3)设备保护系统如何防止无权存取设备的用户存取设备呢?
4)不同的磁盘可以采用不同的扇区尺寸。
向较高层软件掩盖这一事实并提供大小统一的块尺寸,这正是设备独立软件的一个任务。它可将若干扇区合成一个逻辑块。这样,较高层的软件只与抽象设备打交道,独立于物理扇区的尺寸而使用等长的逻辑块
5)缓冲技术
6)设备分配
7)出错处理
尽管大部分 I/ O软件都包含在操作系统中,但仍有一小部分是由与用户程序连接在一起的库过程,甚至完全由运行于核外的程序构成。系统调用,包括 I/ O
系统调用,通常由库过程实现
这些过程所做的工作只是将系统调用时所用的参数放在合适的位置,由其它的
I/ O过程实际实现真正的操作
6,用户空间的 I/ O软件
( 1)用户进程层执行输入输出系统调用,
对 I/ O数据进行格式化,为假脱机输入
/输出作准备
( 2)独立于设备的软件实现设备的命名、
设备的保护、成块处理、缓冲技术和设备分配
( 3)设备驱动程序设置设备寄存器、检查设备的执行状态
( 4)中断处理程序负责 I/ O完成时,唤醒设备驱动程序进程,进行中断处理
( 5)硬件层实现物理 I/ O的操作第五章 设备管理
5.3 I/O硬件特点
设备组成
I/ O设备一般由机械和电子两部分组成,把这两部分分开处理,以提供更加模块化,更加通用的设计
物理设备
机械部分是设备本身(物理装置)
设备控制器电子部分叫做设备控制器或适配器。
在小型和微型机中,它常采用印刷电路卡插入计算机中(接口)
完成设备与主机间的连接和通讯
1,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)。
头标是在对磁盘格式化时写上的,它包括柱面和扇区数,扇区的大小和类似的一些数据
控制器的任务 是把串行的位流转换为字节块,
并进行必要的错误修正。首先,控制器按位进行组装,然后存入控制器内部的缓冲区中形成以字节为单位的块。在对块验证检查和并证明无错误时,再将它复制到主存中
指 I/O设备与 CPU之间的连接方式,
亦即将设备连接到一个计算机系统上的方式
在一个确定的连接模式下,从 I/O
设备到 CPU间的所有连接成分构成了一条 I/O路径( I/O链)
3,设备连接模式四个要素:
设备接口形式
I/O指令形式
I/O地址空间分配及译码连线问题
4.设备与主机间最基本的连接方式
端口地址译码
按照主机与设备的约定格式和过程接受或发送数据和信号计算机 设备设备 计算机
将计算机的数字信号转换为机械部分能识别的模拟信号,或反过来
实现一些诸如设备内部硬件缓冲存储、数据加工的提高性能或增强功能的任务
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端口可占有较大的地址空间
缺点:占用内存空间
设备完成技术:系统如何知道设备的一次 I/O操作是否完成?
对 CPU编程的 I/O技术,CPU必须亲自完成 I/O的启动与完成的处理,亲自执行所有数据在内存和设备之间的实际物理传送
5,要考虑的几个问题
一次 I/O 传送过程:
准备?传送?后处理例:一个打印机有两个 I/O设备寄存器状态寄存器数据寄存器
设备的一次操作是否完成?
测试设备的一个硬件信号
几种测试模式:
( 1) I/O测试指令
( 2)中断技术
1) 设备完成技术
使 CPU利用率尽可能不被 I/O降低使 CPU尽可能摆脱 I/O
– 提高 I/O本身的绝对速度
– 减少或缓解速度差距
– 使 CPU不等待 I/O
提高设备利用率在设备与主机的硬连接上,引入总线,节省连线并提供配置扩充与改变时的灵活性;引入控制器,扩大设备与主机间的相互适用范围小结,控制器与设备的分离,循环测试到中断,
对 CPU编程式的 I/O到 DMA,联机 I/O到假脱机进一步改善第五章 设备管理
5.4 I/O控制技术
I/O控制的四种技术
程序控制
中断驱动
直接存储器存取( DMA)
通道
1.程序控制 I/O技术由处理器提供 I/O相关指令来实现
I/O处理单元处理请求并设置 I/O状态寄存器相关位
不中断处理器,也不给处理器警告信息
处理器定期轮询 I/O单元的状态,直到处理完毕
I/O软件包含直接操纵 I/O的指令
控制指令,用于激活外设,并告诉它做什么
状态指令,用于测试 I/O控制中的各种状态和条件
数据传送指令,用于设备和主存之间来回传送数据主要缺陷,处理器必须关注 I/O处理单元的状态,因而耗费大量时间轮询信息,严重地降低了系统性能
2.中断驱动 I/O技术为了解决程序控制 I/O方法的主要问题应该让处理器从轮询任务中解放出来使 I/O操作和指令执行并行起来具体作法:
当 I/O处理单元准备好与设备交互的时候通过物理信号通知处理器,即中断处理器
3,DMA技术中断的引入大大地提高了处理器处理 I/O的 效率当处理器和 I/O间 传送数据时,效率仍旧不高解决方法:
直接存储器访问 ( DMA,Direct Memory Access)
通过系统总线中一独立控制单元 ——DMA控制器
自动控制成块数据在内存和 I/O单元间的传送
大大提高处理 I/O的效能
DMA技术 (续 1)
当处理器需要读写一整块数据时给 DMA控制单元发送一条命令包含:是否请求一次读或写,I/O设备的编址,开始读或写的主存编址,需要传送的数据长度等信息处理器发送完命令后就可处理其它事情
DMA控制器将自动管理数据的传送
当这个过程完成后,它会给处理器发一个中断处理器只在开始传送和传送结束时关注一下就可
处理器和 DMA传送不完全并行
有时会有总线竞争的情况发生处理器用总线时可能稍作等待不会引起中断不引起程序上下文的保存
通常过程只有一个总线周期
在 DMA传送 时,处理器访问总线速度会变慢
对于大量数据 I/O传送,DMA技术是很有价值
DMA技术 (续 2)
程序 I/O 中断 I/O
DMA
4.通道独立于中央处理器,专门负责数据 I/O传输 的处理机
– 它对外设实现统一管理
– 代替 CPU对 I/O操作进行控制
– 使 CPU和 外设可以并行工作通道又称为 I/O处理机引入通道的目的,
为了使 CPU从 I/O事务中解脱出来
同时为了提高 CPU与设备、设备与设备之间的并行度第五章 设备管理
5.5 设备有关技术
5.5.1 Spooling(虚拟设备)技术一个虚拟设备一个资源转换技术
(用空间,如输入,输出等换取 CPU时间)
解决问题:
在进程所需物理设备不存在或被占用时使用该设备假若进程打开打印机特殊文件后几小时内无所事事,其他进程什么都打印不了!
解决方案:
创建值班进程,SPOOLing目录
进程首先生成要打印的文件,放入 SPOOLing
目录
值班进程:唯一获准使用打印机特殊文件的进程,用以打印 SPOOLing目录里的文件
通过禁止对特殊文件的直接使用、提高了使用效率
1.打印机的 SPOOLing值班进程
2,网络的 SPOOLing值班进程
SPOOLing技术今天仍被广泛使用
网络文件传送先把文件送到网络 SPOOLing目录,然后网络值班进程把它取出并传递到目标地址
Internet电子邮件系统为了寄邮,调用电子邮件程序待发信存在 SPOOLing中供以后传输
注意,SPOOLing只提高设备利用率,缩短用户程序执行时间,并不提高 CPU利用率
5.5.2.中断技术
1,中断的概念:
CPU对系统发生的某个事件作出的一种反应
CPU暂停正在执行的程序,保留现场后自动转去执行相应事件的处理程序,处理完成后返回断点,继续执行被打断的程序特点:
1) 中断随机的
2) 中断是可恢复的
3) 中断是自动处理的从用户角度看中断
解决主机与外设的并行工作问题
提高可靠性
实现多机联系
实现实时控制
2,引入中断的目的
3 中断类型强迫性中断正在运行的程序所不期望的,由于某种硬件故障或外部请求引起的自愿性中断用户在程序中有意识安排的中断,是由于用户在编制程序时因为要求操作系统提供服务,有意使用“访管”指令或系统调用,使中断发生
1)强迫性中断
输入 /输出 (I/O)中断:主要来自外部设备通道
程序性中断:运行程序中本身的中断
(如溢出,缺页中断,缺段中断,地址越界 )
时钟中断
控制台中断
硬件故障
2)自愿性中断
执行 I/O
创建进程
分配内存
信号量操作
发送 /接收消息
4,微机中的中断
1,可屏蔽中断 ( I/O中断 )
2,不可屏蔽中断 ( 机器内部故障,掉电中断 )
3,程序错误中断 ( 溢出,除法错等中断 )
4.软件中断 ( Trap指令或中断指令 INT)
有的计算机中,为了区分和不丢失中断信号,对应每个中断源分别用一固定触发器寄存中断信号规定值为 1时,表示有中断信号,为 0时表示无
这些触发器的全体称为中断寄存器
每个触发器称为一个中断位
所以中断寄存器是由若干个中断位组成
5,中断寄存器
6,中断响应
CPU如何响应中断,两个问题:
CPU何时响应中断?
通常在 CPU执行了一条指令以后,更确切地,在指令周期最后时刻接受中断请求,
或此时扫描中断寄存器
如何知道提出中断请求的设备或中断源?
因为只有知道中断源或中断设备,才能调用相应的中断处理程序开始 取下一条指令 执行指令 检查指令处理中断停止取周期 执行周期 中断周期不允许中断允许中断两种解决方法:
用软件指令去查询各设备接口这种方法比较费时
多数微型机对此问题的解决方法:
使用一种,向量中断,的硬件设施
,向量中断,,
当 CPU接受某中断请求时,该设备接口给处理器发送具有唯一性的,中断向量,,以标识该设备
,中断向量,在各计算机上实现方法差别比较 大
7,中断向量表在有的机器中:
将主存最低位 128个字保留作为中断向量表,
每个中断向量占两个字中断请求的设备接口为了标识自己,向处理器发送一个该设备在中断向量表中表目的地址指针
8,中断优先级在一些机器中,中断优先级按中断类型划分:
以机器故障中断的优先级最高
程序中断和访问管理程序中断次之
外部中断更次之
输入输出的优先级最低
9,中断屏蔽在 CPU上运行的程序,有时由于种种原因,
不希望其在执行过程中被别的事件所中断,称为中断屏蔽。
在 PSW中设置中断屏蔽码以屏蔽某些指定的中断类型
如果其 PSW的中断禁止位建立后,则屏蔽中断
(不包括不可屏蔽的那些中断)
如果 PSW中的中断禁止位未建立则可以接受其中断优先级高于运行程序中断优先级的那些中断
各设备接口中也有中断禁止位,以禁止该设备的中断
10,实时处理的中断
对于以实时处理为主要任务的机器,显然,
必须把具有重要意义传感器发出的中断作为高优先级,这样才能有较好的响应
现代实时系统中,中断优先级的设计是灵活可变的,允许用户根据应用需要,选择不同中断优先策略
11,中断处理简单的中断处理 - 典型的处理过程:
( 1) 设备给处理器发一个中断信号
( 2) 处理器处理完当前指令后响应中断,延迟非常短
( 要求处理器没有关闭中断 )
( 3) 处理器处理完当前指令后检测到中断,判断出中断来源并向发送中断的设备发送了确认中断信号,确认信号使得该设备将中断信号恢复到一般状态
( 4) 处理器开始为软件处理中断做准备:
保存中断点的程序执行上下文环境,这通常包括程 序状态字 PSW,程序计数器 PC中的下一条指令位置,一些寄存器的值,它们通常保存在系统控制栈中,
处理器状态被切换到管态
( 5)处理器根据中断源查询中断向量表,获得与该中断相联系的处理程序入口地址,并将 PC置成该地址,处理器开始一个新的指令周期,控制转移到中断处理程序
( 6)中断处理程序开始工作,包括检查 I/O相关的状态信息,操纵 I/O设备或者在设备和主存之间传送数据等等
( 7)中断处理结束时,处理器检测到中断返回指令,
被中断程序的上下文环境从系统堆栈中被恢复处理器状态恢复成原来的状态。
( 8) PSW和 PC被恢复成中断前的值,处理器开始一个新的指令周期,中断处理结束简单的中断处理过程
12,多个中断的处理若中断处理过程中又发生中断,引起多中断处理问题两种策略方法:
第一种:
处理一个中断时禁止中断,对任何新中断置之不理,
在这期间发生的中断将保持挂起状态当再次允许中断时,新中断信号被处理器检测到
软件实现方法:
在任何中断处理前使用禁止中断指令在处理结束后开放中断指令所有中断严格按照发生顺序处理不考虑中断紧急程度,无法达到较严格时间要求多中断处理第一种策略方法
第二种:
中断按照优先度分级允许优先级高中断打断优先级低的中断处理过程这样中断优先级技术将引起中断处理的嵌套只要合适地定义中断的优先级别方法一的弊端大都可以克服用户程序 低级中断高级中断多中断处理第二种策略方法
13.典型的中断处理
1)I/O中断由 I/O设备的控制器或者通道发出两类 I/O中断:
I/O操作正常结束如果要继续 I/O操作,需要在准备好以后重新启动 I/O,
若请求 I/O程序正处于等待 I/O状态,则应将其唤醒
I/O异常需要重新执行失败的 I/O操作重试次数有上限,次数过大,系统将判定硬件故障系统多道能力的重要推动力量,时钟中断处理程序通常做与系统运转,管理和维护相关的工作,包括:
维护软件时钟:系统有若干个软件时钟,控制定时任务以及进程的处理器时间配额,时钟中断需要维护,
定时更新这些软件时钟
处理器时间调度:维护当前进程时间片软件时钟,并在当前进程时间片到时以后运行调度程序选择下一个被调度的进程
控制系统定时任务:通过软件时钟和调度程序定时激活一些系统任务,如监测死锁,系统记帐,系统审计等
实时处理
2) 时钟中断
3) 硬件故障中断硬件故障中断处理程序一般需要做的工作:
保存现场,使用一定警告手段,提供些辅助诊断信息
在高可靠系统中,中断处理程序还要评估系统可用性,
尽可能恢复系统
如 Windows 2000/XP,关键硬件发生故障时,如显示卡损坏,出现系统蓝屏,系统实际上进入相应故障处理程序,发现故障不可恢复,则在屏幕上打印出发生故障时程序位置,并开始进行内存转储 ( 将一定范围的内存内容写上磁盘,是系统故障时的全系统,快照,),备日后故障诊断程序指令出错,指令越权或者指令寻址越界而引发两类处理方法:
只能由操作系统的相关扩展功能模块完成多为程序试图作不能做的操作引起的系统保护如访问合法的,但不在内存虚地址内,引发页故障页故障一般会引发 OS虚存模块作一个页面换入
可由程序自己完成,如一些算术运算错误不同程序可有不同处理方法,所以很多 OS提供由用户自己处理这类中断的,绿色通道,
系统调试中断 ( 断点中断,单步跟踪 ) 也可被用户程序处理,用以支持各种程序调试
4) 程序性中断
5) 系统服务请求(自愿性中断)
系统服务请求由处理器专用指令(访管指令)激发
如 x86处理器提供 int指令,用来激发软件中断
其他不少处理器则提供系统调用指令 syscall
执行专用指令的结果是系统被切换到管态,并且转移到一段专门 OS程序处开始执行指令格式通常是指令名加请求服务识别号(中断号)
OS利用处理器提供的这种接口建立系统服务体系
处理器一般不负责定义系统调用所传递的参数格式
DOS,21h号中断的系统服务功能以及参数列表现代操作系统一般不提供直接使用系统调用指令的接口,通常做法:提供一套方便,实用的应用程序函数库 ( 应用程序设计接口 API)
– 从应用层面重新封装系统调用
– 屏蔽复杂的系统调用传参问题
– 高级语言接口,有助于快速开发有的系统在更高层面提供系统程序设计模板库和类库如 Windows 2000/XP提供封装系统用 Win32 API和高层编程机制 MFC以及 ATL
Linux提供封装系统调用,符合 POSIX标准 API和
C运行库
6) 系统服务请求实例设备控制器或其他系统硬件发出中断处理器完成当前指令的执行处理器接受中断处理器将 PSW和
PC推入系统堆栈处理器根据中断类型读入新的 PC值中断系统硬件完成的工作保存进程状态的其余信息进程中断恢复进程状态信息从系统堆栈恢复原
PSW和 PC
中断系统软件完成的工作
P S W PC
......
P S W P C
......
......
程序状态字 指令计数器
①
②
系统堆栈
PSW1 PC1
PSW2 PC2
PSW3 PC3
PSW4 PC4
PSW5 PC5
PC1
PC2
PC3
强迫性中断事件 自愿性中断事件保存现场信息 保存现场信息取出中断码 取出访管号分析中断原因 分析何种系统调用转相应处理程序是否中断嵌套由系统恢复现场 由系统恢复现场 转低级调度程序返回上层中断 返回目态程序需要切换进程
T F
F T
定义,通道是独立于 CPU的专门负责数据输入 /
输出传输工作的处理机,对外部设备实现统一管理,代替 CPU对输入 /输出操作进行控制,从而使输入,输出操作可与 CPU并行操作。
通道 又称输入输出处理机,术语,通道,
专指专门用来负责输入输出工作的处理机 ( 简称IO处理机 ) 。 比起中央处理机CPU来,
通道是一个比CPU功能较弱,速度较慢,价格较为便宜的处理机 。 但,通道,一词在微型机中常指与DMA或与IO处理机相连设备的单纯的数据传送通路,它并不具有处理机的功能 。
5.5.3,通道技术
1,引入通道的目的为了使 CPU从 I/O事务中解脱出来,同时为了提高 CPU与设备,设备与设备之间的并行工作能力
2,通道类型
字节多路通道,通常按字节交叉的方式工作,适用于低速IO设备 。
数据选择通道,按成组方式进行数据传输,适用于高速IO设备 。
数组多路通道,综合前二个优点 ( 数据传送率和通道利用率都较高 ) 。
字节多路通道以字节为单位传输信息,它可以分时地执行多个通道程序。
当一个通道程序控制某台设备传送一个字节后,通道硬件就控制转去执行另一个通道程序,控制另一台设备传送信息主要连接以字节为单位的低速 I/O设备 。
如打印机,终端。
以字节为单位交叉传输,当一台传送一个字节后,立即转去为另一台传送字节
1) 字节多路通道选择通道是以成组方式工作的,
即每次传送一批数据,故传送速度很高。选择通道在一段时间内只能执行一个通道程序,只允许一台设备进行数据传输当这台设备数据传输完成后,再选择与通道连接的另一台设备,执行它的相应的通道程序主要连接磁盘,磁带等高速 I/O设备
2) 选择通道选择通道选择通道成组多路通道结合了选择通道传送速度高和字节多路通道能进行分时并行操作的优点。它先为一台设备执行一条通道指令,然后自动转接,为另一台设备执行一条通道指令主要连接高速设备这样,对于连接多台磁盘机的数组多路通道,它可以启动它们同时执行移臂定位操作,然后,按序交叉地传输一批批数据。数据多路通道实际上是对通道程序采用多道程序设计的硬件实现
3)成组多路通道
3,硬件连接结构通道,执行通道程序,向控制器发出命令,并具有向 CPU发中断信号的功能。
一旦 CPU发出指令,启动通道,则通道独立于 CPU工作。一个通道可连接多个控制器,一个控制器可连接多个设备,
形成树形交叉连接主要目的是启动外设时:
a 提高了控制器效率
b 提高可靠性
c 提高并行度交叉连接
5 通道相当于一个功能简单的处理机,包含通道指令(空操作,读操作,写操作,控制,
转移操作),并可执行用这些指令编写的通道程序
4,通道工作原理通道地址字 CAW:
记录通道程序在内存中的地址通道命令字 CCW:
保存正在执行的通道指令通道状态字 CSW:
存放通道执行后的返回结果通道数据字 CDW,存放传输数据通道和 CPU共用内存,通过周期窃取方式取得
1) 通道运算控制部件用于 I/O操作的命令主要有两种:
I/O指令:启动通道程序通道命令:对 I/O操作进行控制读、反读、写、测试设备状态的数据传输命令、用于设备控制的命令(磁带反绕、换页)、实现通道程序内部控制的转移命令
2) 通道命令命令格式一般包括:
操作码、数据传输内存地址、
特征位、计数器
3) 通道命令格式
CPU,执行用户程序,当遇到 I/O请求时,
可根据该请求生成通道程序放入内存(也可事先编好放入内存),并将该通道程序的首地址放入 CAW中;之后执行,启动 I/O”
指令,启动通道工作。
通道,接收到,启动 I/O”指令后,从 CAW中取出通道程序的首地址,并根据首地址取出第一条指令放入 CCW中,同时向 CPU发回答信号,使 CPU可继续执行其他程序,而通道则开始执行通道程序,完成传输工作。
4)工作原理
( 通道程序完成实际 I/O,启动 I/O设备,执行完毕后,如果还有下一条指令,则继续执行,否则表示传输完成)
当通道传输完成最后一条指令时,向
CPU发 I/O中断,并且通道停止工作 。
CPU接收中断信号,从 CSW中取得有关信息,决定下一步做什么
5,通道与 CPU的关系
主从关系
可并行工作
有通信方式
作用不同 ( 通道--I /O;
CPU--计算 )
6.通道的发展
新的通道思想综合了许多新的技术
在个人计算机中,芯片组中专门 I/O处理的芯片,
称为 IOP( IO Processor),发挥通道的作用
IBM 390 中,沿用了输入输出通道概念
IBM于 1998年推出光纤通道技术(称为
FICON),可通过 FICON 连接多达 127个大容量 I/O设备。传输速度是 333MHz/ s,未来将达到 1GHz/ s。
光纤通道技术具有数据传输速率高、传输距离远,可简化大型存储系统设计的优点在大容量高速存储,如大型数据库、多媒体、
数字影像等应用领域,有广泛前景。
5.5.4,DMA 技术
1,DMA 方式与中断的主要区别
中断方式是在数据缓冲寄存区满后,发中断请求,CPU进行中断处理
DMA方式则是在所要求传送的数据块全部传送结束时要求 CPU进行中断处理大大减少了 CPU进行中断处理的次数
中断方式的数据传送是由 CPU控制完成的而 DMA方式则是在 DMA控制器的控制下不经过 CPU控制完成的不用 DMA时,磁盘如何读:
首先,控制器从磁盘驱动器串行地一位一位地读一个块,直到将整块信息放入控制器的内部缓冲区中
其次,它做和校验计算,以核实没有读错误发生
然后控制器产生一个中断。 CPU响应中断,
控制转给操作系统。当操作系统开始运行时,它重复地从控制器缓冲区中一次一个字节或一个字地读这个磁盘块的信息,并将其送入内存中控制器按照指定存储器地址,把第一个字节送入主存然后,按指定字节数进行数据传送每当传送一个字节后,字节计数器值减 1,直到字节计数器等于 0
此时,控制器引发中断,通知操作系统,操作完成
CPU提供被读取块磁盘地址目标存储地址待读取字节数整块数据读进缓冲区核准校验
2.DMA工作示例
(以硬盘为例)
存放输入数据的内存起始地址、要传送的字节数送入 DMA控制器的内存地址寄存器和传送字节计数器,中断允许位和启动位置成 1,启动设备
发出传输要求的进程进入等待状态执行指令被暂时挂起,进程调度其他进程占据 CPU
输入设备不断窃取 CPU工作周期,数据不断写入内存
传送完毕,发出中断信号
CPU接到中断信号转入中断处理程序处理
中断处理结束,CPU返回原进程或切换到新的进程
3.DMA工作原理 ——窃取总线控制权
CPU向控制器发出启动 DMA通知和有关参数控制器向内存发出询问请求访问内存(读、写)
计数器减 1
结束否发中断
N
Y DMA的实现流程
1,缓冲技术的引入
凡是数据到达和离去速度不匹配的地方均可采用缓冲技术。
缓冲区:有一定容量、暂存信息的存贮装置。
在操作系统中采用缓冲是为了实现数据的 I/O操作,以缓解 CPU与外部设备之间速度不匹配的矛盾,提高资源利用率
5.5.5.缓冲技术
2,引入缓冲区的好处
提高硬件的并行操作能力;
减少了 I/O设备对处理器的中断请求次数
简化了中断机制
节省了系统开销
3,引入缓冲区的缺点
在系统区要设置相当大的缓冲池才能满足所有的I/O请求 。
从系统缓冲区传送数据到调用进程缓冲区要花费额外的时间,增加了系统的总开销 。
硬缓冲:
在设备中设置缓冲区,由硬件实现软缓冲:
在内存中开辟一个空间,用作缓冲区
4,缓冲区设置
5,几种缓冲技术
1)单缓冲
2)双缓冲 ( 如下图 a,b)
3)多缓冲:多个缓冲按顺序构成环形,先进先出队列的形式,设头尾,指针指向同一个缓冲区 。 头,尾指针读写时不能相互超越 。
4)缓冲池 。 缓冲池为多个设备共享,设备需要时才接上,用完归还 。
双缓冲( a)
双缓冲( b)
5) 缓冲池管理程序缓冲池管理程序负责缓冲池内的组织,管理摘链,挂链,
协调IO控制程序与用户程序的工作 。
终端输入软件中的键盘驱动程序任务之一:收集字符两种常见的字符缓冲方法:
公共缓冲池(驱动程序中)
终端数据结构缓冲
6 缓冲例子终端数据结构公共缓冲池终端
0
1
2
3
终端数据结构终端
0
1
终端 0
的缓冲区终端 1
的缓冲区公共缓冲池 终端固定缓冲区新一代计算机出现,带来了总线技术的更新
1.总线的基本概念:
在计算机系统内各种子系统,如 CPU、内存,I/O设备等之间构建公用的信号或数据传输通道,这种可共享连接的传输通道称为总线。
5.5.6.总线技术总线的分类
CPU-内存总线
I/O总线数据总线地址总线控制总线
(非本课程范围)
2,总线的分类微型计算机总线的种类和发展
PC/ XT总线
ISA总线
MCA总线
EISA总线
VESA总线
PCI总线
USB总线
…...
(?)
(?)
(过时 )
1394总线SCSI总线
USB( Universal Serial Bus)通用串行总线,是一种连接 I/O串行设备的技术标准
冲破了计算机技术发展的两个历史局限性:
( 1)由于 I/O设备的接口标准的不一致和有限的接口数量已无法满足各种应用迫切需要
( 2)传统的 I/O设备的接口无法满足实时数据传输与多媒体应用的需求
USB以 WDM( Windows Driver Model)模型为基础,WDM包含一套通用的 I/O服务和二进制兼容的设备驱动程序
3.USB技术
USB支持同步数据传输方式和异步数据传输方式,其数据传输率有低速
1,5Mbps和全速 12Mbps两种,比标准串口快 100倍,比标准并口快 10倍
USB可以主动为外部设备提供电源,允许外部设备快速连接,具有即插即用的功能
允许外部设备的热插拔
1) USB的结构
控制器:控制器主要负责执行由控制器驱动程序发出的命令
控制器驱动程序:控制器驱动程序在控制器与 USB设备之间建立通信信道
USB芯片驱动程序,USB芯片驱动程序提供了对 USB的支持
USB设备分为两类:
( 1) USB集线器:本身可再接其他 USB外围设备
( 2) USB设备:连接在计算机上用来完成特定功能并符合 USB规范的 I/O设备单元,如鼠标、键盘等
2) USB的传输方式
4种不同的数据传输方式:
( 1)等时传输方式以固定的传输速率,连续不断传输数据,发生错误时,USB不处理,而是继续传送新的数据。用于需要连续传输,且对数据的正确性要求不高而对时间极为敏感的外部设备,如麦克风、音箱以及电话等
( 2)中断传输方式该方式传送的数据量很小,但这些数据需要及时处理,以达到实时效果,此方式主要用在键盘、鼠标以及游戏手柄等外部设备上
( 3)控制传输方式处理主机的 USB设备的数据传输,包括设备控制指令、设备状态查询及确认命令。当 USB设备收到这些数据和命令后将按照先进先出的原则按队列方式处理到达的数据
( 4)批传输方式用来传输要求正确无误的数据。通常打印机、
扫描仪和数码相机以这种方式与主机连接
除等时传输方式外,其他 3种方式在数据传输发生错误时,都会试图重新发送数据以保证其准确性
USB的传输方式(续)
4,SCSI接口技术
小型计算机系统接口
( Small Computer System Interface)
一个 SCSI I/O设备控制器可将新型高速 I/O设备增加到计算机系统中
SCSI 设备控制器的智能化 I/O控制降低了计算机系统的负担使计算机系统具有更高的 I/O能力
SCSI系统结构
计算机系统 I/O设备与部件配置的应用技术
顾名思义:
插入就可用,不需要进行任何设置操作
5,即插即用技术 (Plug and Play)
由于一个系统可以配置多种外部设备,设备也经常变动和更换,
它们都要占有一定的系统资源,彼此间在硬件和软件上可能会产生冲突。因此在系统中要正确地对它们进行配置和资源匹配;当设备撤除、
添置和进行系统升级时,配置过程往往是一个困难的过程。
1) PnP技术的产生
( 1)支持 I/O设备及部件的自动配置,使用户能够简单方便地使用系统扩充设备
( 2)减少由制造商装入的种种用户支持和限制,简化部件的硬件跳接设置,使 I/O附加卡和部件不再具有人工跳接线设置电路
( 3)在主机板和附加卡上保存系统资源的配置参数和分配状态,有利于系统对整个 I/O
资源的分配和控制
( 4)支持和兼容各种操作系统平台,具有很强的扩展性和可移植性。
( 5)在一定程度上具有“热插入”、“热拼接”技术
2) PnP技术的特点功能:
( 1)附加卡的识别与确认
( 2)资源分配
( 3)附加卡自动配置多方面的支持,具有 PnP功能的操作系统、配置管理软件、软件安装程序、
设备驱动程序等;网络设备的 PnP支持;
系统平台的支持(如,PnP主机板、控制芯片组和 PnP BIOS等);各种支持
PnP规范的总线的 I/O控制卡和部件
3) PnP技术的功能及支持
6,网络 I/O设备网络计算已成为计算机发展的方向之一典型网络 I/O设备 ——网络打印
以往的打印模式打印机连接到网上 PC上,或连到文件服务器上,提供网络打印服务
新的网络打印采用网络打印服务器技术,打印机直接上网任何数据直接送到网络打印机输出
打印服务器还能实现多种网络自动切换:不同网络环境中的用户都可以直接向同一台打印机发送打印作业,打印服务器会自动识别
较强的打印管理功能:可以管理网络打印驱动,而且容易安装和管理;可以实现远程登录访问,进行远程打印机管理
提高工作效率
分布式的环境设置:可以安装在网络的任何地方,这种打印服务方式,就显得更加灵活和满足需要
QoS更好
7,网络打印设备第五章 设备管理
5.6设备分配与设备处理当某进程向系统提出 I/O请求时,设备分配程序按一定策略分配设备、控制器和通道,形成一条数据传输通路,以供主机和设备间信息交换
5.6.1 设备分配与回收
设备独立性,即不能因为设备的忙碌、
故障或更换而影响程序的运行,向用户屏蔽物理设备,呈现给用户的一个操作简单的逻辑设备
抽象的 I/O 操作,即设计一类通用的
I/O指令,它们的含义对不同类型的设备作不同解释。而且,在操作系统中,
提供了若干 I/O系统调用。由系统将抽象的 I/O 操作映射到专门的设备驱动程序
1,设备管理中的数据结构
在多通路的IO系统中,为了满足一个I
O请求,不仅仅是分配一个IO设备的问题,还应分配相应的控制器和通道,以确保CPU与IO设备之间能进行通信,在存储器与I /O设备之间能进行数据的直接存取 。
设备管理程序对IO设备进行分配和控制是借助于一些表格;表格中记录了对IO
设备控制所需之信息 。 它们是设备管理程序实现管理功能的数据结构 。
数据结构(续)
控制所需之信息 。 它们是设备管理程序实现管理功能的数据结构 。 如下表:
设备控制表(DCT) 每个设备一个控制器表(COCT) 每个控制器一个通道表(CMCT) 每个通道一个系统设备表(SDT) 整个系统一个整个系统一张表,记录系统中所有 I/O设备的信息,表目包括:
设备类型、设备标识符、进程标识符,DCT表指针等
1) 系统设备表 SDT
主要内容:设备类型、设备标识符、
设备状态、与此设备相连的 COCT、重复执行的次数或时间、等待队列的队首和队尾指针,I/O程序地址
3)COCT
4)CHCT
COCT和 CHCT与 DCT类似
2) 设备控制表 DCT
设备控制 通道控制 控制器控制块 (DCB) 块( CHCB) 块( COCB)
设备标示符 通道标示符 控制器标示符设备状态 通道状态 控制器状态与设备相连的控制器表与通道相连的控制器表与控制器相连的通道表等待此设备的进程表等待此通道的进程表等待控制器的进程表三种控制块由于在多道程序系统中,进程数多于资源数,引起资源的竞争。因此,
要有一套合理的分配原则考虑的因素:
* I/O设备的固有属性
* I/O设备的分配算法
* 设备分配的安全性
* 与设备的无关性
2,设备分配策略
1) 独享、共享、虚拟分配技术
独享分配方式,即一个设备分配给某作业后便由该作业独占,直到该作业完成并释放后,其它作业方能使用 。 大多数低度速IO设备都属于独享设备 。
共享分配方式,如磁盘,磁鼓之类的外存储器,
既具有很能大的存储容量,其定位操作的时间又短,因此,它们可为若干作业所共享 。
虚拟分配方式,把一台输入机虚拟为几台,虚拟,
的输入机 。 例如:为了提高设备利用率引入了脱机输入输出或采用SPOOLING技术,变一台为,多台设备,
要考虑充分发挥效率,避免由于不合理的分配策略造成死锁。
静态分配:在进程运行前,完成设备分配;
运行结束时,收回设备缺点:设备利用率低
动态分配:
在进程运行过程中,当用户提出设备要求时,
进行分配,一旦停止使用立即收回优点:效率好缺点:分配策略不好时,产生死锁独占设备的分配由于同时有多个进程同时访问,且访问频繁,就会影响整个设备使用效率,影响系统效率。因此要考虑多个访问请求到达时服务的顺序,使平均服务时间越短越好。
共享设备分配
2)I /O设备的分配算法
I /O设备的分配机制,除了与IO设备的固有属性有关外,还与系统所采用的分配策略有关 。 I /O设备的分配与进程调度很能相似,
同样可采用如下的一些算法:
先请求先服务:当有多个进程对同一设备提出
I /O请求时,该算法要求把所有发出I /O请求的进程,按其发出请求的先后次序排成一个等待该设备的队列 。 设备分配程序把I /O设备分配给队列中第一个进程 。
优先权最高者优先 。 对于何必先权相同的IO
请求,则按先请求先分配的原则排队 。
3) 设备分配的安全性为了能同时操作多个I /O设备以加速进程的推进,应使得某进程以命令形式发出I /O请求后,仍可继续运行,需要时又可发出第二个,第三个I /O请求 。
多请求方式的缺点是,设备分配不安全,
因为它具备请求和保持条件,因而有可能产生死锁的情况 。 由此可见,在多请求方式中,设备的分配程序应保证不发生进程死锁 。
4) 与设备无关性为了提高系统的可适应性和可扩展性,我们希望 所编制的用户程序与实际使用的物理设备无关,这就是所谓与设备无关性 。
为此,我们将逻辑设备与物理设备区分,并引入逻辑设备名称和物理设备名称的概念 。 为了实现与设备的无关性,系统中必须有一张联系逻辑设备名称和物理设备名称的映射表,( LUT表 )
3,系统的逻辑设备表逻辑设备号 物理设备号 驱动程序地址
1 7 20420
2 7 20420
3 2 20E00
4 4 1FC10
6 1 20D02
7 7 20420
15 10 1FC10
16 11 1FC120
… … ……
逻辑设备与物理设备这个LUT中为三个不同的逻辑设备号列出了同样的物理设备和驱动程序的地址 。 这说明逻辑设备1,2,7目前均得到同一个物理设备7的服务 ( 这或许是因为激光打印机及字母型打印机正在被修理,因此本来输出到这些设备上的请求都移到行式打印机 ) 。 在这个映射表中我们还可以看到物理设备4和10都是由同一个驱动程序服务的 。 这是假定它们是同一类型的终端 。 例如所有的128终端均由一个驱动程序服务 。
4,设备分配程序当系统中已经设置了数据结构,且确定了一定的分配原则后,如果某进程提出了IO请求,便可按下述步骤进行设备分配:
根据用户请求的 I/O设备的逻辑名,查找逻辑设备和物理设备的映射表;以物理设备为索引,查找 SDT,找到该设备所连接的 DCT;继续查找与该设备连接的 COCT和 CHCT,就找到了一条通路 。 即:
分配设备 - >分配控制器 ->分配通道为进程 P分配所需的 I/O设备从 SDT表查该类设备的控制表 DCT
由 DCT检查该设备忙否?
不忙检查分配此设备的安全性?
不安全分配此设备给进程 P
查此设备连接的 COCT忙否?
不忙不忙分配此控制器给进程 P
查此控制器连接的 CHCT忙否?
最后一个 DCT?
分配此通道给进程 P
启动 I/O,进行具体的 I/O操作忙进程 P的 PCB放入此设备的等待队列
Y
N
忙 最后一个 COCT?
最后一个 DCT?
进程 P 的 PCB 放入此控制器的等待队列
Y
N
Y
忙最后一个 CHCT?
Y最后一个 COCT?
进程 P 的 PCB 放入此通道的等待队列
N
Y
N
N
多通路设备分配流程示意图
5.6.2 设备处理
(1) 接收由 I/O进程发来的命令和参数,并将命令中的抽象要求转换为具体要求,例如,
将磁盘块号转换为磁盘的盘面,磁道号及扇
(2) 检查用户 I/O请求的合法性,了解 I/O设备的状态,传递有关参数,设置设备的工作方式 。
1,设备驱动程序的功能和特点
1) 设备驱动程序的功能
(3) 发出 I/O命令,如果设备空闲,便立即启动 I/O设备去完成指定的 I/O操作;如果设备处于忙碌状态,则将请求者的请求块挂在设
(4) 及时响应由控制器或通道发来的中断请求,并根据其中断类型调用相应的中断处理程序进行处理 。
(5) 对于设置有通道的计算机系统,驱动程序还应能够根据用户的 I/O请求,自动地构成通道程序 。
2) 设备处理方式
(1) 为每一类设备设置一个进程,专门用于执行这类设备的 I/O操作。
(2) 在整个系统中设置一个 I/O进程,专门用于执行系统中所有各类设备的 I/O操作。
(3) 不设置专门的设备处理进程,而只为各类设备设置相应的设备处理程序 (模块 ),供用户进程或系统进程调用 。
为了控制 I/O传输,系统为每类设备编制设备驱动程序
设备驱动程序 是一种低级的系统例程。它必须和系统的输入输出硬设备相互通信。
使用特权I /O指令来访问硬件,它通常是用汇编语言或系统编程语言写的。
任务:主要负责接收和分析从设备分配转来的信息,并根据设备分配的结果,结合具体物理设备特性完成以下具体工作。
3) 设备驱动程序
4) 设备驱动程序的特点
(1) 驱动程序主要是指在请求 I/O的进程与设备控制器之间的一个通信和转换程序。
(2) 驱动程序与设备控制器和 I/O设备的硬件特性紧密相关,因而对不同类型的设备应配置不同的驱动程序 。
(3) 驱动程序与 I/O设备所采用的 I/O控制方式紧密相关 。
(4) 由于驱动程序与硬件紧密相关,因而其中的一部分必须用汇编语言书写 。
2,设备驱动程序的处理过程
1.
2,检查 I/O
3,读出和检查设备的状态
4,传送必要的参数
5,工作方式的设置
6,启动 I/O设备中断现场保护示意图中断处理流程管理程序保护现场组织通道程序保存通道程序的始址于 CAW
启动 I/O指令分析条件码启动成功使
P阻塞,另选程序 q运行保护程序 q的现场分析中断原因处理 I/O中断选择可运行程序请求启动程序程序 q
程序 P
用户程序判断状态执行通道程序控制 I/O设备操作,执行情况记录在 CSW
出现中断事件
CSW=>主存通道号,设备号送特定寄存器通道程序执行规定的操作设备控制器和设备
1
2
3
4
5
I/O的操作全过程第五章 设备管理
5.7 磁盘存储器管理磁盘存储器管理的主要任务
为文件分配存储空间
合理地组织文件地存储方式,以提高访问速度
提高磁盘存储空间地利用率
提高磁盘 I/O速度,改善文件性能
确保文件系统的可靠性 ( 备份 )
5.7.1 磁盘性能简述
1,数据的组织和格式磁盘的格式化
1)
这种磁盘在每条磁道上都有一读 /写磁头,所有的磁头都被装在一刚性磁臂中 。 通过这些磁头可访问所有各磁道,并进行并行读 /写,有效地提高了磁盘的 I/O速度 。 这种结构的磁盘主要用于大容量磁盘上 。
2)
每一个盘面仅配有一个磁头,也被装入磁臂中 。
为能访问该盘面上的所有磁道,该磁头必须能移动以进行寻道 。 可见,移动磁头仅能以串行方式读 /写,
致使其 I/O速度较慢;但由于其结构简单,故仍广泛应用于中小型磁盘设备中 。
2,磁盘的类型
3,磁盘访问时间
1) 寻道时间 Ts
这是指把磁臂 (磁头 )移动到指定磁道上所经历的时间 。 该时间是启动磁臂的时间 s与磁头移动 n条磁道所花费的时间之和,
Ts=m× n+s
其中,m是一常数,与磁盘驱动器的速度有关,
对一般磁盘,m=0.2;对高速磁盘,m≤ 0.1,磁臂的启动时间约为 2 ms。 这样,对一般的温盘,其寻道时间将随寻道距离的增加而增大,大体上是 5~30
ms。
2) 旋转延迟时间 Tτ
这是指定扇区移动到磁头下面所经历的时间 。
对于硬盘,典型的旋转速度大多为 5400 r/min,
每转需时 11.1 ms,平均旋转延迟时间 Tτ为 5.55 ms;
对于软盘,其旋转速度为 300 r/min或 600 r/min,
这样,平均 Tτ为 50~100 ms。
3) 传输时间 Tt
把数据从磁盘读出或向磁盘写入数据所经历的时间 。 Tt
的大小与每次所读 /写的字节数 b和旋转速度有关:
其中,r为磁盘每秒钟的转数; N为一条磁道上的字节数,当一次读 /写的字节数相当于半条磁道上的字节数时,Tt与 Tτ相同,因此,
可将访问时间 Ta表示为,其中,r为磁盘每秒钟的转数; N为一条磁道上的字节数,当一次读 /写的字节数相当于半条磁道上的字节数时,Tt与 Tτ相同,因此,可将访问时间 Ta
表示为:
5.7.2 磁盘调度
1,先来先服务 FCFS(First-Come,First Served)
FCFS调度算法
2,最短寻道时间优先 SSTF
(Shortest Seek Time First)
SSTF调度算法
3,扫描 (SCAN)算法
SSTF算法虽然能获得较好的寻道性能,
但却可能导致某个进程发生,饥饿,(Starvation)现象。因为只要不断有新进程的请求到达,且其所要访问的磁道与磁头当前所在磁道的距离较近,这种新进程的 I/O请求必须优先满足。对 SSTF算法略加修改后所形成的 SCAN算法,即可防止老进程出现,饥饿,现象。
1) 进程,饥饿,现象
2) SCAN算法
SCAN调度算法示例
4,循环扫描 (CSCAN)算法
CSCAN调度算法示例
1) N-Step-SCAN
在 SSTF,SCAN及 CSCAN几种调度算法中,都可能出现磁臂停留在某处不动的情况,例如,有一个或几个进程对某一磁道有较高的访问频率,即这个 (些 )进程反复请求对某一磁道的 I/O操作,从而垄断了整个磁 盘 设 备 。 我 们 把 这 一 现 象 称 为,磁 臂 粘着,(Armstickiness)。 在高密度磁盘上容易出现此情况 。 N步 SCAN算法是将磁盘请求队列分成若干个长度为 N的子队列,磁盘调度将按 FCFS算法依次处理这些子队列 。 而每处理一个队列时又是按 SCAN算法,对一个队列处理完后,再处理其他队列 。 当正在处理某子队列时,如果又出现新的磁盘 I/O请求,便将新请求进程放入其他队列,这样就可避免出现粘着现象 。
当 N值取得很大时,会使 N步扫描法的性能接近于 SCAN
算法的性能;当 N=1时,N步 SCAN算法便蜕化为 FCFS
算法 。
5,N-Step-SCAN和 FSCAN调度算法
2) FSCAN
FSCAN算法实质上是 N步 SCAN算法的简化,
即 FSCAN只将磁盘请求队列分成两个子队列 。
一个是由当前所有请求磁盘 I/O的进程形成的队列,由磁盘调度按 SCAN算法进行处理 。 在扫描期间,将新出现的所有请求磁盘 I/O的进程,
放入另一个等待处理的请求队列 。 这样,所有的新请求都将被推迟到下一次扫描时处理 。
是指利用内存中的存储空间,来暂存从磁盘中读出的一系列盘块中的信息 。 因此,这里的高速缓存是一组在逻辑上属于磁盘,而物理上是驻留在内存中的盘块 。 高速缓存在内存中可分成两种形式 。
第一种是在内存中开辟一个单独的存储空间来作为磁盘高速缓存,其大小是固定的,不会受应用程序多少的影响;第二种是把所有未利用的内存空间变为一个缓冲池,供请求分页系统和磁盘 I/O时 (作为磁盘高速缓存 )共享 。 此时高速缓存的大小,显然不再是固定的 。 当磁盘 I/O的频繁程度较高时,该缓冲池可能包含更多的内存空间;而在应用程序运行得较多时,该缓冲池可能只剩下较少的内存空间 。
5.7.3 磁盘高速缓存 (Disk Cache)
1,磁盘高速缓存的形式系统可以采取两种方式,将数据交付给请求进程:
(1) 数据交付 。 这是直接将高速缓存中的数据,传送到请求者进程的内存工作区中 。
(2) 指针交付 。 只将指向高速缓存中某区域的指针,交付给请求者进程 。
后一种方式由于所传送的数据量少,因而节省了数据从磁盘高速缓存存储空间到进程的内存工作区的时间
2,数据交付方式由于请求调页中的联想存储器与高速缓存 (磁盘 I/O中 )的工作情况不同,因而使得在置换算法中所应考虑的问题也有所差异 。 因此,现在不少系统在设计其高速缓存的置换算法时,除了考虑到最近最久未使用这一原则外,
(1) 访问频率。
(2) 可预见性。
(3) 数据的一致性。
3,置换算法在 UNIX系统中专门增设了一个修改 (update)程序,使之在后台运行,该程序周期性地调用一个系统调用 SYNC。 该调用的主要功能是强制性地将所有在高速缓存中已修改的盘块数据写回磁盘 。 一般是把两次调用 SYNC的时间间隔定为 30 s。 这样,因系统故障所造成的工作损失不会超过 30 s的劳动量 。
而在 MS-DOS中所采用的方法是:只要高速缓存中的某盘块数据被修改,便立即将它写回磁盘,并将这种高速缓存称为,写穿透,高速缓存,(write-
through cache)。 MS-DOS所采用的写回方式,几乎不会造成数据的丢失,但须频繁地启动磁盘 。
4,周期性地写回磁盘
1,提前读 (Read-Ahead)
2,延迟写
3,优化物理块的分布
4,虚拟盘
5.7.4 提高磁盘 I/O速度的其它方法
5.7.5 廉价磁盘冗余阵列
1,并行交叉存取图 5-27 磁盘并行交叉存取方式第五章 设备管理
5.8 典型外部设备
1,磁带是用来记录和存取信息的物理介质,它是在塑胶带制成的载体上涂抹一层薄薄的磁性材料 。
磁层厚度通常在 0.2--0.5微米之间 。 磁带的宽度可以有几种不同的尺寸,常见的有1,1/2,
1/4英寸 。 带的长度也是可变的,目前国产磁带有600米,750米和900米等 。 磁带上信息的组织同磁带的使用方法有关,通常磁带的使用方法有两种:一是把它作为顺序性设备;另一是把它当成半顺序性设备 。
1) 顺序性磁带的信息组织所谓顺序性磁带是指磁带上信息的定位和存取严格按其上信息的物理位置顺序进行 。 其信息也是以块为单位存取的,
信息组织如下图所示,图中的带头标和尾标用来标识带的起始端和末端,这两个标志通常用两条金属箔贴在磁带反面以供光电系统识别 。 带标 ( 或称块尾标 ) 是一组供硬件识别的较短的特殊代码信息 块 。 相当于有效信息块的间隔符 。
顺序性磁带的信息组织
信息组织如下图所示带头标带标间隙信息块间隙带标间隙信息块带尾标
2) 半顺序性磁带的信息组织它与顺序性磁带的信息组织的差别主要在于信息块长度是相同的,一般为
512个字或 1024个字,一块称为一个信息组,并给每一组规定一个组号以标识和定位信息组 。 在磁带使用前,由磁带机将组号写出在每个信息组前,其信息组织如下图所示 。 由于这种带上存在唯一标识信息组位置和组号,所以只要把要读,写的信息组号和读,写长度通知磁带机,
半顺序性磁带的信息组织(续)
它即能从该信息组开始,顺序读,
写信息 。 所以称为半顺序性 。
带头标组号间隙信息组间隙组号间隙信息组间隙
…
…
带尾标
2.磁鼓是一种形状如鼓的设备,分为立式磁鼓和卧式磁鼓两种 。 主要根据转子轴是垂直于水平面,还是平行于水平面来分 。
磁转子是由鼓体上涂以磁层构成 。 其记录信息的原理与磁带相似 。 鼓表面被划分为许多条首尾相接的环形磁道,磁道密度一般为 4--5道/厘米 。 每条磁道上对应有一个固定的读写头,鼓上的信息就是由这些磁头写上和读出的 。
磁鼓 (续 )
对磁鼓上的一个物理记录定位,需要有两个参数:道号,物理记录号 。 作为旋转设备来说,磁鼓的容量比磁盘小,然而由于每个磁道有一个固定磁头,所以记录查找时间很小,数据传送速率较高,有些磁鼓为了进一步提高数据传送速率,每个磁道有两个或更多的读写磁头 。
3,时钟
时钟( clock),又称为定时器( timer)
(1) 时钟负责提供一天的时间
(2) 防止一个进程垄断 CPU
时钟既不是块设备,也不是字符设备,
但时钟软件通常也采用设备驱动程序的形式
1) 时钟硬件两种类型:
比较简单的时钟被连到 110V或 220V的电源线上,每个电压周期产生一个中断,频率是
50Hz或 60Hz
另一种时钟由三个部件构成:晶体振荡器、
计数器和存储寄存器石英晶体产生的精确的周期信号,典型的范围是 5到 100MHz
信号送到到计数器,使其递减计数至 0。当计数器变为 0时,产生一个 CPU中断信号
可编程时钟操作方式:在单脉冲方式( one-
shot mode)下,当时钟启动时,它把存储寄存器的值拷贝到计数器中,然后,晶体的每一个脉冲使计数器减 1。当计数器为 0时,产生一个中断,并停止工作,直到软件再一次显式启动它
在方波方式( square-wave mode)下,当计数器为 0并产生中断时,存储寄存器的值自动拷贝到计数器,这个过程不断地重复下去。周期性的中断称为时钟滴答( clock tick )
可编程时钟的优点是其中断频率可由软件控制
2) 时钟软件时钟硬件所做的工作是每隔一定的时间间隔产生一个中断涉及时间的其他所有工作都必须由软件 — 时钟驱动程序完成
3) 时钟软件 功能
1.维护日期时间
2.防止进程超时运行
3.对 CPU的使用情况记帐
4.处理用户进程提出的 ALARM系统调用
5.为系统本身各部分提供监视定时器
6.绘制 CPU运行直方图,完成监视和统计信息收集
系统的其他部分也需要定时器称为监视定时器( watchdog timer)。例如,使用软盘时,
系统必须驱动软盘的电机接通电源并等待大约 500毫秒,使电机达到稳定速度
4,终端输入:原始模式或加工模式缓冲、回送、填充字符、行编辑、特殊字符处理输出:光标的位置、转义字符
每台计算机都配有一个或多个终端与之通信
为了使操作系统中与设备无关部分和用户程序对于不同型号的终端不必重写,终端驱动程序隐藏了各种类型终端的差异
1) 终端硬件根据与操作系统的通信方法将终端分为两大类:
( 1) RS- 232标准接口
( 2)存储映像终端
RS- 232终端由键盘和显示器构成,通过串行接口一次一位地与计算机系统进行通信。这些终端使用 25针的连接器,其中一针用于发送数据,一针用于接收数据,一针接地,其余 22针用于各种控制功能(大部分未使用)
计算机和终端以字符作为处理对象,而通信时却是通过串行口一次一位地进行需要完成字符到位串与位串到字符的转换
智能 CRT终端实际是一微小型计算机它们带有一个 CPU和存储器,通常在
EPROM或 ROM中存储了复杂的程序
从操作系统的角度,玻璃终端和智能终端的主要不同点是:后者理解特殊的转义序列
最高档的智能终端中包含了与主计算机能力相同的 CPU,以及以兆字节为单位的内存,
可以从计算机系统下载任何程序终端硬件
2) 存储映像终端
本身是计算机的组成部分
通过专用存储器接口与计算机通信,称为视频 RAM( video RAM),是计算机地址空间的一部分,CPU对它的寻址与对其他存储器的寻址是一样
视频控制器 (video controller),从视频
RAM中取出字符,产生用于驱动显示器视频信号
当 CPU将一个字符写到视频 RAM时,在一帧显示周期内显示在屏幕上
速度快
交互最快,广泛使用位映像终端
视频 RAM每一位直接控制屏幕上的每一像素
800× 1024个像素的屏幕需 100k字节 RAM(彩色更多)
提供更加灵活的字符字体和尺寸
允许多窗口
可制作任意图形存储映像终端
5,输入软件键盘驱动程序的基本工作收集键盘的输入信息当用户程序要从终端读信息时,把收集的输入传给用户程序键盘驱动程序两种处理方式
( 1)面向字符,原始( raw)模式将接收的输入不加修改地向上层传送,从终端读信息的程序得到一系列原始的 ASCII码序
( 2)面向行,加工( cooked)模式键盘驱动程序负责处理一行内的编辑,并将修改过的行传送给用户程序
6,输出软件
RS- 232终端与存储终端的驱动程序完全不同
RS- 232终端
输出缓冲区与每个终端相关联
程序向终端写时,先将输出拷贝到缓冲区
需要回送的输入也拷贝到缓冲区
当输出全部复制到缓冲区(或者缓冲区满)
时,向终端输出第一个字符,驱动程序睡眠等待,产生中断时,输出下一个字符,如此循环,直到输出完成存储映像终端
从用户空间一次取出一个要打印的字符
然后,直接送入视频 RAM
7,一体化的输入输出
WINDOWS NT的输入输出系统在所有操作系统中是最具特色的 。 这是由于:
在高度抽象基础上建立起了统一一致的高层界面--I/O设备的虚拟界面,即把所有读写数据看成直接送往虚拟文件的字节流 。 从而把通常操作系统中完全不同的四部分--文件系统,高速缓冲存储器,
设备管理,网络管理--组织成为一个界面和操作一致的输入输出 ( I/O ) 系统 。
一体化的输入输出 (续 )
I/O系统是个层次结构 。 构成I/O系统的部件有:I/O管理程序,文件系统,缓冲存储管理器,设备驱动器,网络管理器 。
统一的驱动程序模型 。 所有的驱动程序是统一的结构;用同一方式建立;表现出相同的外貌 。
具有异步I/O操作 。
具有映象文件I/O功能 。
5.1 概 述
5.2 I/O软件的组成
5.3 I/O硬件特点
5.4 I/O控制技术
5.5 设备有关技术
5.6 设备分配与设备处理
5.7 磁盘存储器管理
5.8 典型外部设备第五章 设备管理
5.1 概 述
1.I/O性能经常成为系统性能的瓶颈
(1)CPU性能不等于系统性能响应时间也是一个重要因素
(2)CPU性能越高,与 I/O差距越大弥补:更多的进程
(3)进程切换多,系统开销大
5.1.1 I/O的特点
2.操作系统庞大复杂的原因之一是:
资源多、杂,并发,均来自 I/O
外设种类繁多,结构各异输入输出数据信号类型不同速度差异很大
3.理解 I/O的工作过程与结构是理解操作系统的工作过程与结构的关键
4.与其他功能联系密切,特别是文件系统
1.按使用特性分存储型设备输入型设备( 外设?主机 )
输出型设备(主机?外设)
输入输出型设备(交互型设备 )
2.按数据组织分块设备以数据块为单位存储、传输信息字符设备以字符为单位存储、传输信息
5.1.2 设备的分类
系统设备指操作系统生成时,登记在系统中的标准设备
(如终端、打印机、磁盘机等)
用户设备指在系统生成时,未登记在系统中的非标准设备。对于这类设备的处理程序由用户提供,并将其纳入系统,由系统代替用户实施管理。
(如 A/D,D/A转换器,CAD所用专用设备)
3.按外部设备的从属关系分
1)独占设备在一段时间内只能有一个进程使用的设备,
一般为低速 I/O设备。(如打印机,磁带等)
2)共享设备在一段时间内可有多个进程共同使用的设备,多个进程以交叉的方式来使用设备,
其资源利用率高。(如硬盘)
3)虚设备
4.按资源分配角度分
在一类设备上模拟另一类设备,常用共享设备模拟独占设备,用高速设备模拟低速设备,被模拟的设备称为 虚设备
目的:将慢速的独占设备改造成多个用户可共享的设备,提高设备的利用率
实例,SPOOLing技术,利用虚设备技术
—— 用硬盘模拟输入输出设备)
3)虚设备为解决独立设备数量少,
速度慢,不能满足众多进程的要求,而且在进程独占设备期间,设备利用率比较低而提出的一种设备管理技术
SPOOLing技术
5.从程序使用角度分逻辑设备物理设备
6.按数据传输率分高速设备低速设备设备的分类(续 )
5.1.3 设计目标与任务
提高方便性
实现并行性
均衡性
设备独立性
1.设计目标
( 1)设备分配与回收记录设备的状态根据用户的请求和设备的类型,采用一定的分配算法,选择一条数据通路
( 2)建立统一的独立于设备的接口
( 3)完成设备驱动程序,实现真正的 I/O操作
( 4)处理外部设备的中断处理
( 5)管理 I/O缓冲区
2,设备管理的 功能
1)按照用户的请求,控制设备的各种操作,完成 I/O设备与内存之间的数据交换(包括设备分配与回收;设备驱动程序;设备中断处理;缓冲区管理),最终完成用户的 I/O请求
3.设备管理的目标和任务
2)向用户提供使用外部设备的方便接口,使用户摆脱繁琐的编程负担
方便性
友好界面
透明性逻辑设备与物理设备、屏蔽硬件细节(设备的物理细节,错误处理,不同 I/O的差异性)
3)充分利用各种技术(通道,中断,缓冲等)
提高 CPU与设备、设备与设备之间的并行工作能力,充分利用资源,提高资源利用率 ( 并行性,均衡性)
设备管理的目标和任务 (续)
4)保证在多道程序环境下,当多个进程竞争使用设备时,按一定策略分配和管理各种设备,使系统能有条不紊的工作
5)保护设备传送或管理的数据应该是安全的、不被破坏的、保密的设备管理的目标和任务 (续)
6) 与设备无关性(设备独立性)
用户在编制程序时,使用逻辑设备名,由系统实现从逻辑设备到物理设备的转换
用户能独立于具体物理设备而方便的使用设备
用户申请使用设备时,只需要指定设备类型,而无须指定具体物理设备,系统根据当前的请求,及设备分配的情况,在相同类别设备中,选择一个空闲设备,并将其分配给一个申请进程设备管理的目标和任务 (续)
统一性:
对不同的设备采取统一的操作方式,
在用户程序中使用的是逻辑设备。
优点:
设备忙碌或设备故障时,用户不必修改程序
改善了系统的可适应性和可扩展性第五章 设备管理
5.2 I/O软件的组成
I/ O软件的基本思想是按分层的思想构成,较低层软件要使较高层软件独立于硬件的特性,
较高层软件则要向用户提供一个友好的、清晰的、简单的、功能更强的接口
1,I/O软件的组成
在设计 I/ O软件时的一个关键概念是设备独立性。用户在编写使用软盘或硬盘上文件的程序时,无需为不同的设备类型而修改程序就可以使用
与设备独立性密切相关的是统一命名这一目标。一个文件或一个设备的名字只应是一个简单的字符串或一个整数,不应依赖于设备
出错处理是 I/ O软件的另一个目标。一般来说,数据传输中的错误应尽可能地在接近硬件层上处理
最后一个问题是可共享设备和独占设备的处理问题
2,I/ O软件的目标
每个进程在启动一个 I/ O操作后阻塞
直到 I/ O操作完成并产生一个中断
由操作系统接管 CPU后唤醒该进程为止
3,中断处理程序
与设备密切相关的代码放在设备驱动程序中,
每个设备驱动程序处理一种设备类型
每一个控制器都设有一个或多个设备寄存器,
用来存放向设备发送的命令和参数。设备驱动程序负责释放这些命令,并监督它们正确执行
一般,设备驱动程序的任务是接收来自与设备无关的上层软件的抽象请求,并执行这个请求
4,设备驱动程序在设备驱动程序的进程释放一条或多条命令后,系统有两种处理方式,多数情况下,执行设备驱动程序的进程必须等待命令完成,这样,在命令开始执行后,它阻塞自已,直到中断处理时将它解除阻塞为止。而在其它情况下,命令执行不必延迟就很快完成
4,设备驱动程序 (续)
虽然 I/ O软件中一部分是设备专用的,但大部分软件是与设备无关的。设备驱动程序与设备独立软件之间的确切界限是依赖于具体系统的
5,设备独立的软件
1)独立于设备的软件的基本任务是实现所有设备都需要的功能,并且向用户级软件提供一个统一的接口
2)如何给文件和设备这样的对象命名是操作系统中的一个主要课题。
独立于设备的软件负责把设备的符号名映射到正确的设备驱动上
3)设备保护系统如何防止无权存取设备的用户存取设备呢?
4)不同的磁盘可以采用不同的扇区尺寸。
向较高层软件掩盖这一事实并提供大小统一的块尺寸,这正是设备独立软件的一个任务。它可将若干扇区合成一个逻辑块。这样,较高层的软件只与抽象设备打交道,独立于物理扇区的尺寸而使用等长的逻辑块
5)缓冲技术
6)设备分配
7)出错处理
尽管大部分 I/ O软件都包含在操作系统中,但仍有一小部分是由与用户程序连接在一起的库过程,甚至完全由运行于核外的程序构成。系统调用,包括 I/ O
系统调用,通常由库过程实现
这些过程所做的工作只是将系统调用时所用的参数放在合适的位置,由其它的
I/ O过程实际实现真正的操作
6,用户空间的 I/ O软件
( 1)用户进程层执行输入输出系统调用,
对 I/ O数据进行格式化,为假脱机输入
/输出作准备
( 2)独立于设备的软件实现设备的命名、
设备的保护、成块处理、缓冲技术和设备分配
( 3)设备驱动程序设置设备寄存器、检查设备的执行状态
( 4)中断处理程序负责 I/ O完成时,唤醒设备驱动程序进程,进行中断处理
( 5)硬件层实现物理 I/ O的操作第五章 设备管理
5.3 I/O硬件特点
设备组成
I/ O设备一般由机械和电子两部分组成,把这两部分分开处理,以提供更加模块化,更加通用的设计
物理设备
机械部分是设备本身(物理装置)
设备控制器电子部分叫做设备控制器或适配器。
在小型和微型机中,它常采用印刷电路卡插入计算机中(接口)
完成设备与主机间的连接和通讯
1,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)。
头标是在对磁盘格式化时写上的,它包括柱面和扇区数,扇区的大小和类似的一些数据
控制器的任务 是把串行的位流转换为字节块,
并进行必要的错误修正。首先,控制器按位进行组装,然后存入控制器内部的缓冲区中形成以字节为单位的块。在对块验证检查和并证明无错误时,再将它复制到主存中
指 I/O设备与 CPU之间的连接方式,
亦即将设备连接到一个计算机系统上的方式
在一个确定的连接模式下,从 I/O
设备到 CPU间的所有连接成分构成了一条 I/O路径( I/O链)
3,设备连接模式四个要素:
设备接口形式
I/O指令形式
I/O地址空间分配及译码连线问题
4.设备与主机间最基本的连接方式
端口地址译码
按照主机与设备的约定格式和过程接受或发送数据和信号计算机 设备设备 计算机
将计算机的数字信号转换为机械部分能识别的模拟信号,或反过来
实现一些诸如设备内部硬件缓冲存储、数据加工的提高性能或增强功能的任务
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端口可占有较大的地址空间
缺点:占用内存空间
设备完成技术:系统如何知道设备的一次 I/O操作是否完成?
对 CPU编程的 I/O技术,CPU必须亲自完成 I/O的启动与完成的处理,亲自执行所有数据在内存和设备之间的实际物理传送
5,要考虑的几个问题
一次 I/O 传送过程:
准备?传送?后处理例:一个打印机有两个 I/O设备寄存器状态寄存器数据寄存器
设备的一次操作是否完成?
测试设备的一个硬件信号
几种测试模式:
( 1) I/O测试指令
( 2)中断技术
1) 设备完成技术
使 CPU利用率尽可能不被 I/O降低使 CPU尽可能摆脱 I/O
– 提高 I/O本身的绝对速度
– 减少或缓解速度差距
– 使 CPU不等待 I/O
提高设备利用率在设备与主机的硬连接上,引入总线,节省连线并提供配置扩充与改变时的灵活性;引入控制器,扩大设备与主机间的相互适用范围小结,控制器与设备的分离,循环测试到中断,
对 CPU编程式的 I/O到 DMA,联机 I/O到假脱机进一步改善第五章 设备管理
5.4 I/O控制技术
I/O控制的四种技术
程序控制
中断驱动
直接存储器存取( DMA)
通道
1.程序控制 I/O技术由处理器提供 I/O相关指令来实现
I/O处理单元处理请求并设置 I/O状态寄存器相关位
不中断处理器,也不给处理器警告信息
处理器定期轮询 I/O单元的状态,直到处理完毕
I/O软件包含直接操纵 I/O的指令
控制指令,用于激活外设,并告诉它做什么
状态指令,用于测试 I/O控制中的各种状态和条件
数据传送指令,用于设备和主存之间来回传送数据主要缺陷,处理器必须关注 I/O处理单元的状态,因而耗费大量时间轮询信息,严重地降低了系统性能
2.中断驱动 I/O技术为了解决程序控制 I/O方法的主要问题应该让处理器从轮询任务中解放出来使 I/O操作和指令执行并行起来具体作法:
当 I/O处理单元准备好与设备交互的时候通过物理信号通知处理器,即中断处理器
3,DMA技术中断的引入大大地提高了处理器处理 I/O的 效率当处理器和 I/O间 传送数据时,效率仍旧不高解决方法:
直接存储器访问 ( DMA,Direct Memory Access)
通过系统总线中一独立控制单元 ——DMA控制器
自动控制成块数据在内存和 I/O单元间的传送
大大提高处理 I/O的效能
DMA技术 (续 1)
当处理器需要读写一整块数据时给 DMA控制单元发送一条命令包含:是否请求一次读或写,I/O设备的编址,开始读或写的主存编址,需要传送的数据长度等信息处理器发送完命令后就可处理其它事情
DMA控制器将自动管理数据的传送
当这个过程完成后,它会给处理器发一个中断处理器只在开始传送和传送结束时关注一下就可
处理器和 DMA传送不完全并行
有时会有总线竞争的情况发生处理器用总线时可能稍作等待不会引起中断不引起程序上下文的保存
通常过程只有一个总线周期
在 DMA传送 时,处理器访问总线速度会变慢
对于大量数据 I/O传送,DMA技术是很有价值
DMA技术 (续 2)
程序 I/O 中断 I/O
DMA
4.通道独立于中央处理器,专门负责数据 I/O传输 的处理机
– 它对外设实现统一管理
– 代替 CPU对 I/O操作进行控制
– 使 CPU和 外设可以并行工作通道又称为 I/O处理机引入通道的目的,
为了使 CPU从 I/O事务中解脱出来
同时为了提高 CPU与设备、设备与设备之间的并行度第五章 设备管理
5.5 设备有关技术
5.5.1 Spooling(虚拟设备)技术一个虚拟设备一个资源转换技术
(用空间,如输入,输出等换取 CPU时间)
解决问题:
在进程所需物理设备不存在或被占用时使用该设备假若进程打开打印机特殊文件后几小时内无所事事,其他进程什么都打印不了!
解决方案:
创建值班进程,SPOOLing目录
进程首先生成要打印的文件,放入 SPOOLing
目录
值班进程:唯一获准使用打印机特殊文件的进程,用以打印 SPOOLing目录里的文件
通过禁止对特殊文件的直接使用、提高了使用效率
1.打印机的 SPOOLing值班进程
2,网络的 SPOOLing值班进程
SPOOLing技术今天仍被广泛使用
网络文件传送先把文件送到网络 SPOOLing目录,然后网络值班进程把它取出并传递到目标地址
Internet电子邮件系统为了寄邮,调用电子邮件程序待发信存在 SPOOLing中供以后传输
注意,SPOOLing只提高设备利用率,缩短用户程序执行时间,并不提高 CPU利用率
5.5.2.中断技术
1,中断的概念:
CPU对系统发生的某个事件作出的一种反应
CPU暂停正在执行的程序,保留现场后自动转去执行相应事件的处理程序,处理完成后返回断点,继续执行被打断的程序特点:
1) 中断随机的
2) 中断是可恢复的
3) 中断是自动处理的从用户角度看中断
解决主机与外设的并行工作问题
提高可靠性
实现多机联系
实现实时控制
2,引入中断的目的
3 中断类型强迫性中断正在运行的程序所不期望的,由于某种硬件故障或外部请求引起的自愿性中断用户在程序中有意识安排的中断,是由于用户在编制程序时因为要求操作系统提供服务,有意使用“访管”指令或系统调用,使中断发生
1)强迫性中断
输入 /输出 (I/O)中断:主要来自外部设备通道
程序性中断:运行程序中本身的中断
(如溢出,缺页中断,缺段中断,地址越界 )
时钟中断
控制台中断
硬件故障
2)自愿性中断
执行 I/O
创建进程
分配内存
信号量操作
发送 /接收消息
4,微机中的中断
1,可屏蔽中断 ( I/O中断 )
2,不可屏蔽中断 ( 机器内部故障,掉电中断 )
3,程序错误中断 ( 溢出,除法错等中断 )
4.软件中断 ( Trap指令或中断指令 INT)
有的计算机中,为了区分和不丢失中断信号,对应每个中断源分别用一固定触发器寄存中断信号规定值为 1时,表示有中断信号,为 0时表示无
这些触发器的全体称为中断寄存器
每个触发器称为一个中断位
所以中断寄存器是由若干个中断位组成
5,中断寄存器
6,中断响应
CPU如何响应中断,两个问题:
CPU何时响应中断?
通常在 CPU执行了一条指令以后,更确切地,在指令周期最后时刻接受中断请求,
或此时扫描中断寄存器
如何知道提出中断请求的设备或中断源?
因为只有知道中断源或中断设备,才能调用相应的中断处理程序开始 取下一条指令 执行指令 检查指令处理中断停止取周期 执行周期 中断周期不允许中断允许中断两种解决方法:
用软件指令去查询各设备接口这种方法比较费时
多数微型机对此问题的解决方法:
使用一种,向量中断,的硬件设施
,向量中断,,
当 CPU接受某中断请求时,该设备接口给处理器发送具有唯一性的,中断向量,,以标识该设备
,中断向量,在各计算机上实现方法差别比较 大
7,中断向量表在有的机器中:
将主存最低位 128个字保留作为中断向量表,
每个中断向量占两个字中断请求的设备接口为了标识自己,向处理器发送一个该设备在中断向量表中表目的地址指针
8,中断优先级在一些机器中,中断优先级按中断类型划分:
以机器故障中断的优先级最高
程序中断和访问管理程序中断次之
外部中断更次之
输入输出的优先级最低
9,中断屏蔽在 CPU上运行的程序,有时由于种种原因,
不希望其在执行过程中被别的事件所中断,称为中断屏蔽。
在 PSW中设置中断屏蔽码以屏蔽某些指定的中断类型
如果其 PSW的中断禁止位建立后,则屏蔽中断
(不包括不可屏蔽的那些中断)
如果 PSW中的中断禁止位未建立则可以接受其中断优先级高于运行程序中断优先级的那些中断
各设备接口中也有中断禁止位,以禁止该设备的中断
10,实时处理的中断
对于以实时处理为主要任务的机器,显然,
必须把具有重要意义传感器发出的中断作为高优先级,这样才能有较好的响应
现代实时系统中,中断优先级的设计是灵活可变的,允许用户根据应用需要,选择不同中断优先策略
11,中断处理简单的中断处理 - 典型的处理过程:
( 1) 设备给处理器发一个中断信号
( 2) 处理器处理完当前指令后响应中断,延迟非常短
( 要求处理器没有关闭中断 )
( 3) 处理器处理完当前指令后检测到中断,判断出中断来源并向发送中断的设备发送了确认中断信号,确认信号使得该设备将中断信号恢复到一般状态
( 4) 处理器开始为软件处理中断做准备:
保存中断点的程序执行上下文环境,这通常包括程 序状态字 PSW,程序计数器 PC中的下一条指令位置,一些寄存器的值,它们通常保存在系统控制栈中,
处理器状态被切换到管态
( 5)处理器根据中断源查询中断向量表,获得与该中断相联系的处理程序入口地址,并将 PC置成该地址,处理器开始一个新的指令周期,控制转移到中断处理程序
( 6)中断处理程序开始工作,包括检查 I/O相关的状态信息,操纵 I/O设备或者在设备和主存之间传送数据等等
( 7)中断处理结束时,处理器检测到中断返回指令,
被中断程序的上下文环境从系统堆栈中被恢复处理器状态恢复成原来的状态。
( 8) PSW和 PC被恢复成中断前的值,处理器开始一个新的指令周期,中断处理结束简单的中断处理过程
12,多个中断的处理若中断处理过程中又发生中断,引起多中断处理问题两种策略方法:
第一种:
处理一个中断时禁止中断,对任何新中断置之不理,
在这期间发生的中断将保持挂起状态当再次允许中断时,新中断信号被处理器检测到
软件实现方法:
在任何中断处理前使用禁止中断指令在处理结束后开放中断指令所有中断严格按照发生顺序处理不考虑中断紧急程度,无法达到较严格时间要求多中断处理第一种策略方法
第二种:
中断按照优先度分级允许优先级高中断打断优先级低的中断处理过程这样中断优先级技术将引起中断处理的嵌套只要合适地定义中断的优先级别方法一的弊端大都可以克服用户程序 低级中断高级中断多中断处理第二种策略方法
13.典型的中断处理
1)I/O中断由 I/O设备的控制器或者通道发出两类 I/O中断:
I/O操作正常结束如果要继续 I/O操作,需要在准备好以后重新启动 I/O,
若请求 I/O程序正处于等待 I/O状态,则应将其唤醒
I/O异常需要重新执行失败的 I/O操作重试次数有上限,次数过大,系统将判定硬件故障系统多道能力的重要推动力量,时钟中断处理程序通常做与系统运转,管理和维护相关的工作,包括:
维护软件时钟:系统有若干个软件时钟,控制定时任务以及进程的处理器时间配额,时钟中断需要维护,
定时更新这些软件时钟
处理器时间调度:维护当前进程时间片软件时钟,并在当前进程时间片到时以后运行调度程序选择下一个被调度的进程
控制系统定时任务:通过软件时钟和调度程序定时激活一些系统任务,如监测死锁,系统记帐,系统审计等
实时处理
2) 时钟中断
3) 硬件故障中断硬件故障中断处理程序一般需要做的工作:
保存现场,使用一定警告手段,提供些辅助诊断信息
在高可靠系统中,中断处理程序还要评估系统可用性,
尽可能恢复系统
如 Windows 2000/XP,关键硬件发生故障时,如显示卡损坏,出现系统蓝屏,系统实际上进入相应故障处理程序,发现故障不可恢复,则在屏幕上打印出发生故障时程序位置,并开始进行内存转储 ( 将一定范围的内存内容写上磁盘,是系统故障时的全系统,快照,),备日后故障诊断程序指令出错,指令越权或者指令寻址越界而引发两类处理方法:
只能由操作系统的相关扩展功能模块完成多为程序试图作不能做的操作引起的系统保护如访问合法的,但不在内存虚地址内,引发页故障页故障一般会引发 OS虚存模块作一个页面换入
可由程序自己完成,如一些算术运算错误不同程序可有不同处理方法,所以很多 OS提供由用户自己处理这类中断的,绿色通道,
系统调试中断 ( 断点中断,单步跟踪 ) 也可被用户程序处理,用以支持各种程序调试
4) 程序性中断
5) 系统服务请求(自愿性中断)
系统服务请求由处理器专用指令(访管指令)激发
如 x86处理器提供 int指令,用来激发软件中断
其他不少处理器则提供系统调用指令 syscall
执行专用指令的结果是系统被切换到管态,并且转移到一段专门 OS程序处开始执行指令格式通常是指令名加请求服务识别号(中断号)
OS利用处理器提供的这种接口建立系统服务体系
处理器一般不负责定义系统调用所传递的参数格式
DOS,21h号中断的系统服务功能以及参数列表现代操作系统一般不提供直接使用系统调用指令的接口,通常做法:提供一套方便,实用的应用程序函数库 ( 应用程序设计接口 API)
– 从应用层面重新封装系统调用
– 屏蔽复杂的系统调用传参问题
– 高级语言接口,有助于快速开发有的系统在更高层面提供系统程序设计模板库和类库如 Windows 2000/XP提供封装系统用 Win32 API和高层编程机制 MFC以及 ATL
Linux提供封装系统调用,符合 POSIX标准 API和
C运行库
6) 系统服务请求实例设备控制器或其他系统硬件发出中断处理器完成当前指令的执行处理器接受中断处理器将 PSW和
PC推入系统堆栈处理器根据中断类型读入新的 PC值中断系统硬件完成的工作保存进程状态的其余信息进程中断恢复进程状态信息从系统堆栈恢复原
PSW和 PC
中断系统软件完成的工作
P S W PC
......
P S W P C
......
......
程序状态字 指令计数器
①
②
系统堆栈
PSW1 PC1
PSW2 PC2
PSW3 PC3
PSW4 PC4
PSW5 PC5
PC1
PC2
PC3
强迫性中断事件 自愿性中断事件保存现场信息 保存现场信息取出中断码 取出访管号分析中断原因 分析何种系统调用转相应处理程序是否中断嵌套由系统恢复现场 由系统恢复现场 转低级调度程序返回上层中断 返回目态程序需要切换进程
T F
F T
定义,通道是独立于 CPU的专门负责数据输入 /
输出传输工作的处理机,对外部设备实现统一管理,代替 CPU对输入 /输出操作进行控制,从而使输入,输出操作可与 CPU并行操作。
通道 又称输入输出处理机,术语,通道,
专指专门用来负责输入输出工作的处理机 ( 简称IO处理机 ) 。 比起中央处理机CPU来,
通道是一个比CPU功能较弱,速度较慢,价格较为便宜的处理机 。 但,通道,一词在微型机中常指与DMA或与IO处理机相连设备的单纯的数据传送通路,它并不具有处理机的功能 。
5.5.3,通道技术
1,引入通道的目的为了使 CPU从 I/O事务中解脱出来,同时为了提高 CPU与设备,设备与设备之间的并行工作能力
2,通道类型
字节多路通道,通常按字节交叉的方式工作,适用于低速IO设备 。
数据选择通道,按成组方式进行数据传输,适用于高速IO设备 。
数组多路通道,综合前二个优点 ( 数据传送率和通道利用率都较高 ) 。
字节多路通道以字节为单位传输信息,它可以分时地执行多个通道程序。
当一个通道程序控制某台设备传送一个字节后,通道硬件就控制转去执行另一个通道程序,控制另一台设备传送信息主要连接以字节为单位的低速 I/O设备 。
如打印机,终端。
以字节为单位交叉传输,当一台传送一个字节后,立即转去为另一台传送字节
1) 字节多路通道选择通道是以成组方式工作的,
即每次传送一批数据,故传送速度很高。选择通道在一段时间内只能执行一个通道程序,只允许一台设备进行数据传输当这台设备数据传输完成后,再选择与通道连接的另一台设备,执行它的相应的通道程序主要连接磁盘,磁带等高速 I/O设备
2) 选择通道选择通道选择通道成组多路通道结合了选择通道传送速度高和字节多路通道能进行分时并行操作的优点。它先为一台设备执行一条通道指令,然后自动转接,为另一台设备执行一条通道指令主要连接高速设备这样,对于连接多台磁盘机的数组多路通道,它可以启动它们同时执行移臂定位操作,然后,按序交叉地传输一批批数据。数据多路通道实际上是对通道程序采用多道程序设计的硬件实现
3)成组多路通道
3,硬件连接结构通道,执行通道程序,向控制器发出命令,并具有向 CPU发中断信号的功能。
一旦 CPU发出指令,启动通道,则通道独立于 CPU工作。一个通道可连接多个控制器,一个控制器可连接多个设备,
形成树形交叉连接主要目的是启动外设时:
a 提高了控制器效率
b 提高可靠性
c 提高并行度交叉连接
5 通道相当于一个功能简单的处理机,包含通道指令(空操作,读操作,写操作,控制,
转移操作),并可执行用这些指令编写的通道程序
4,通道工作原理通道地址字 CAW:
记录通道程序在内存中的地址通道命令字 CCW:
保存正在执行的通道指令通道状态字 CSW:
存放通道执行后的返回结果通道数据字 CDW,存放传输数据通道和 CPU共用内存,通过周期窃取方式取得
1) 通道运算控制部件用于 I/O操作的命令主要有两种:
I/O指令:启动通道程序通道命令:对 I/O操作进行控制读、反读、写、测试设备状态的数据传输命令、用于设备控制的命令(磁带反绕、换页)、实现通道程序内部控制的转移命令
2) 通道命令命令格式一般包括:
操作码、数据传输内存地址、
特征位、计数器
3) 通道命令格式
CPU,执行用户程序,当遇到 I/O请求时,
可根据该请求生成通道程序放入内存(也可事先编好放入内存),并将该通道程序的首地址放入 CAW中;之后执行,启动 I/O”
指令,启动通道工作。
通道,接收到,启动 I/O”指令后,从 CAW中取出通道程序的首地址,并根据首地址取出第一条指令放入 CCW中,同时向 CPU发回答信号,使 CPU可继续执行其他程序,而通道则开始执行通道程序,完成传输工作。
4)工作原理
( 通道程序完成实际 I/O,启动 I/O设备,执行完毕后,如果还有下一条指令,则继续执行,否则表示传输完成)
当通道传输完成最后一条指令时,向
CPU发 I/O中断,并且通道停止工作 。
CPU接收中断信号,从 CSW中取得有关信息,决定下一步做什么
5,通道与 CPU的关系
主从关系
可并行工作
有通信方式
作用不同 ( 通道--I /O;
CPU--计算 )
6.通道的发展
新的通道思想综合了许多新的技术
在个人计算机中,芯片组中专门 I/O处理的芯片,
称为 IOP( IO Processor),发挥通道的作用
IBM 390 中,沿用了输入输出通道概念
IBM于 1998年推出光纤通道技术(称为
FICON),可通过 FICON 连接多达 127个大容量 I/O设备。传输速度是 333MHz/ s,未来将达到 1GHz/ s。
光纤通道技术具有数据传输速率高、传输距离远,可简化大型存储系统设计的优点在大容量高速存储,如大型数据库、多媒体、
数字影像等应用领域,有广泛前景。
5.5.4,DMA 技术
1,DMA 方式与中断的主要区别
中断方式是在数据缓冲寄存区满后,发中断请求,CPU进行中断处理
DMA方式则是在所要求传送的数据块全部传送结束时要求 CPU进行中断处理大大减少了 CPU进行中断处理的次数
中断方式的数据传送是由 CPU控制完成的而 DMA方式则是在 DMA控制器的控制下不经过 CPU控制完成的不用 DMA时,磁盘如何读:
首先,控制器从磁盘驱动器串行地一位一位地读一个块,直到将整块信息放入控制器的内部缓冲区中
其次,它做和校验计算,以核实没有读错误发生
然后控制器产生一个中断。 CPU响应中断,
控制转给操作系统。当操作系统开始运行时,它重复地从控制器缓冲区中一次一个字节或一个字地读这个磁盘块的信息,并将其送入内存中控制器按照指定存储器地址,把第一个字节送入主存然后,按指定字节数进行数据传送每当传送一个字节后,字节计数器值减 1,直到字节计数器等于 0
此时,控制器引发中断,通知操作系统,操作完成
CPU提供被读取块磁盘地址目标存储地址待读取字节数整块数据读进缓冲区核准校验
2.DMA工作示例
(以硬盘为例)
存放输入数据的内存起始地址、要传送的字节数送入 DMA控制器的内存地址寄存器和传送字节计数器,中断允许位和启动位置成 1,启动设备
发出传输要求的进程进入等待状态执行指令被暂时挂起,进程调度其他进程占据 CPU
输入设备不断窃取 CPU工作周期,数据不断写入内存
传送完毕,发出中断信号
CPU接到中断信号转入中断处理程序处理
中断处理结束,CPU返回原进程或切换到新的进程
3.DMA工作原理 ——窃取总线控制权
CPU向控制器发出启动 DMA通知和有关参数控制器向内存发出询问请求访问内存(读、写)
计数器减 1
结束否发中断
N
Y DMA的实现流程
1,缓冲技术的引入
凡是数据到达和离去速度不匹配的地方均可采用缓冲技术。
缓冲区:有一定容量、暂存信息的存贮装置。
在操作系统中采用缓冲是为了实现数据的 I/O操作,以缓解 CPU与外部设备之间速度不匹配的矛盾,提高资源利用率
5.5.5.缓冲技术
2,引入缓冲区的好处
提高硬件的并行操作能力;
减少了 I/O设备对处理器的中断请求次数
简化了中断机制
节省了系统开销
3,引入缓冲区的缺点
在系统区要设置相当大的缓冲池才能满足所有的I/O请求 。
从系统缓冲区传送数据到调用进程缓冲区要花费额外的时间,增加了系统的总开销 。
硬缓冲:
在设备中设置缓冲区,由硬件实现软缓冲:
在内存中开辟一个空间,用作缓冲区
4,缓冲区设置
5,几种缓冲技术
1)单缓冲
2)双缓冲 ( 如下图 a,b)
3)多缓冲:多个缓冲按顺序构成环形,先进先出队列的形式,设头尾,指针指向同一个缓冲区 。 头,尾指针读写时不能相互超越 。
4)缓冲池 。 缓冲池为多个设备共享,设备需要时才接上,用完归还 。
双缓冲( a)
双缓冲( b)
5) 缓冲池管理程序缓冲池管理程序负责缓冲池内的组织,管理摘链,挂链,
协调IO控制程序与用户程序的工作 。
终端输入软件中的键盘驱动程序任务之一:收集字符两种常见的字符缓冲方法:
公共缓冲池(驱动程序中)
终端数据结构缓冲
6 缓冲例子终端数据结构公共缓冲池终端
0
1
2
3
终端数据结构终端
0
1
终端 0
的缓冲区终端 1
的缓冲区公共缓冲池 终端固定缓冲区新一代计算机出现,带来了总线技术的更新
1.总线的基本概念:
在计算机系统内各种子系统,如 CPU、内存,I/O设备等之间构建公用的信号或数据传输通道,这种可共享连接的传输通道称为总线。
5.5.6.总线技术总线的分类
CPU-内存总线
I/O总线数据总线地址总线控制总线
(非本课程范围)
2,总线的分类微型计算机总线的种类和发展
PC/ XT总线
ISA总线
MCA总线
EISA总线
VESA总线
PCI总线
USB总线
…...
(?)
(?)
(过时 )
1394总线SCSI总线
USB( Universal Serial Bus)通用串行总线,是一种连接 I/O串行设备的技术标准
冲破了计算机技术发展的两个历史局限性:
( 1)由于 I/O设备的接口标准的不一致和有限的接口数量已无法满足各种应用迫切需要
( 2)传统的 I/O设备的接口无法满足实时数据传输与多媒体应用的需求
USB以 WDM( Windows Driver Model)模型为基础,WDM包含一套通用的 I/O服务和二进制兼容的设备驱动程序
3.USB技术
USB支持同步数据传输方式和异步数据传输方式,其数据传输率有低速
1,5Mbps和全速 12Mbps两种,比标准串口快 100倍,比标准并口快 10倍
USB可以主动为外部设备提供电源,允许外部设备快速连接,具有即插即用的功能
允许外部设备的热插拔
1) USB的结构
控制器:控制器主要负责执行由控制器驱动程序发出的命令
控制器驱动程序:控制器驱动程序在控制器与 USB设备之间建立通信信道
USB芯片驱动程序,USB芯片驱动程序提供了对 USB的支持
USB设备分为两类:
( 1) USB集线器:本身可再接其他 USB外围设备
( 2) USB设备:连接在计算机上用来完成特定功能并符合 USB规范的 I/O设备单元,如鼠标、键盘等
2) USB的传输方式
4种不同的数据传输方式:
( 1)等时传输方式以固定的传输速率,连续不断传输数据,发生错误时,USB不处理,而是继续传送新的数据。用于需要连续传输,且对数据的正确性要求不高而对时间极为敏感的外部设备,如麦克风、音箱以及电话等
( 2)中断传输方式该方式传送的数据量很小,但这些数据需要及时处理,以达到实时效果,此方式主要用在键盘、鼠标以及游戏手柄等外部设备上
( 3)控制传输方式处理主机的 USB设备的数据传输,包括设备控制指令、设备状态查询及确认命令。当 USB设备收到这些数据和命令后将按照先进先出的原则按队列方式处理到达的数据
( 4)批传输方式用来传输要求正确无误的数据。通常打印机、
扫描仪和数码相机以这种方式与主机连接
除等时传输方式外,其他 3种方式在数据传输发生错误时,都会试图重新发送数据以保证其准确性
USB的传输方式(续)
4,SCSI接口技术
小型计算机系统接口
( Small Computer System Interface)
一个 SCSI I/O设备控制器可将新型高速 I/O设备增加到计算机系统中
SCSI 设备控制器的智能化 I/O控制降低了计算机系统的负担使计算机系统具有更高的 I/O能力
SCSI系统结构
计算机系统 I/O设备与部件配置的应用技术
顾名思义:
插入就可用,不需要进行任何设置操作
5,即插即用技术 (Plug and Play)
由于一个系统可以配置多种外部设备,设备也经常变动和更换,
它们都要占有一定的系统资源,彼此间在硬件和软件上可能会产生冲突。因此在系统中要正确地对它们进行配置和资源匹配;当设备撤除、
添置和进行系统升级时,配置过程往往是一个困难的过程。
1) PnP技术的产生
( 1)支持 I/O设备及部件的自动配置,使用户能够简单方便地使用系统扩充设备
( 2)减少由制造商装入的种种用户支持和限制,简化部件的硬件跳接设置,使 I/O附加卡和部件不再具有人工跳接线设置电路
( 3)在主机板和附加卡上保存系统资源的配置参数和分配状态,有利于系统对整个 I/O
资源的分配和控制
( 4)支持和兼容各种操作系统平台,具有很强的扩展性和可移植性。
( 5)在一定程度上具有“热插入”、“热拼接”技术
2) PnP技术的特点功能:
( 1)附加卡的识别与确认
( 2)资源分配
( 3)附加卡自动配置多方面的支持,具有 PnP功能的操作系统、配置管理软件、软件安装程序、
设备驱动程序等;网络设备的 PnP支持;
系统平台的支持(如,PnP主机板、控制芯片组和 PnP BIOS等);各种支持
PnP规范的总线的 I/O控制卡和部件
3) PnP技术的功能及支持
6,网络 I/O设备网络计算已成为计算机发展的方向之一典型网络 I/O设备 ——网络打印
以往的打印模式打印机连接到网上 PC上,或连到文件服务器上,提供网络打印服务
新的网络打印采用网络打印服务器技术,打印机直接上网任何数据直接送到网络打印机输出
打印服务器还能实现多种网络自动切换:不同网络环境中的用户都可以直接向同一台打印机发送打印作业,打印服务器会自动识别
较强的打印管理功能:可以管理网络打印驱动,而且容易安装和管理;可以实现远程登录访问,进行远程打印机管理
提高工作效率
分布式的环境设置:可以安装在网络的任何地方,这种打印服务方式,就显得更加灵活和满足需要
QoS更好
7,网络打印设备第五章 设备管理
5.6设备分配与设备处理当某进程向系统提出 I/O请求时,设备分配程序按一定策略分配设备、控制器和通道,形成一条数据传输通路,以供主机和设备间信息交换
5.6.1 设备分配与回收
设备独立性,即不能因为设备的忙碌、
故障或更换而影响程序的运行,向用户屏蔽物理设备,呈现给用户的一个操作简单的逻辑设备
抽象的 I/O 操作,即设计一类通用的
I/O指令,它们的含义对不同类型的设备作不同解释。而且,在操作系统中,
提供了若干 I/O系统调用。由系统将抽象的 I/O 操作映射到专门的设备驱动程序
1,设备管理中的数据结构
在多通路的IO系统中,为了满足一个I
O请求,不仅仅是分配一个IO设备的问题,还应分配相应的控制器和通道,以确保CPU与IO设备之间能进行通信,在存储器与I /O设备之间能进行数据的直接存取 。
设备管理程序对IO设备进行分配和控制是借助于一些表格;表格中记录了对IO
设备控制所需之信息 。 它们是设备管理程序实现管理功能的数据结构 。
数据结构(续)
控制所需之信息 。 它们是设备管理程序实现管理功能的数据结构 。 如下表:
设备控制表(DCT) 每个设备一个控制器表(COCT) 每个控制器一个通道表(CMCT) 每个通道一个系统设备表(SDT) 整个系统一个整个系统一张表,记录系统中所有 I/O设备的信息,表目包括:
设备类型、设备标识符、进程标识符,DCT表指针等
1) 系统设备表 SDT
主要内容:设备类型、设备标识符、
设备状态、与此设备相连的 COCT、重复执行的次数或时间、等待队列的队首和队尾指针,I/O程序地址
3)COCT
4)CHCT
COCT和 CHCT与 DCT类似
2) 设备控制表 DCT
设备控制 通道控制 控制器控制块 (DCB) 块( CHCB) 块( COCB)
设备标示符 通道标示符 控制器标示符设备状态 通道状态 控制器状态与设备相连的控制器表与通道相连的控制器表与控制器相连的通道表等待此设备的进程表等待此通道的进程表等待控制器的进程表三种控制块由于在多道程序系统中,进程数多于资源数,引起资源的竞争。因此,
要有一套合理的分配原则考虑的因素:
* I/O设备的固有属性
* I/O设备的分配算法
* 设备分配的安全性
* 与设备的无关性
2,设备分配策略
1) 独享、共享、虚拟分配技术
独享分配方式,即一个设备分配给某作业后便由该作业独占,直到该作业完成并释放后,其它作业方能使用 。 大多数低度速IO设备都属于独享设备 。
共享分配方式,如磁盘,磁鼓之类的外存储器,
既具有很能大的存储容量,其定位操作的时间又短,因此,它们可为若干作业所共享 。
虚拟分配方式,把一台输入机虚拟为几台,虚拟,
的输入机 。 例如:为了提高设备利用率引入了脱机输入输出或采用SPOOLING技术,变一台为,多台设备,
要考虑充分发挥效率,避免由于不合理的分配策略造成死锁。
静态分配:在进程运行前,完成设备分配;
运行结束时,收回设备缺点:设备利用率低
动态分配:
在进程运行过程中,当用户提出设备要求时,
进行分配,一旦停止使用立即收回优点:效率好缺点:分配策略不好时,产生死锁独占设备的分配由于同时有多个进程同时访问,且访问频繁,就会影响整个设备使用效率,影响系统效率。因此要考虑多个访问请求到达时服务的顺序,使平均服务时间越短越好。
共享设备分配
2)I /O设备的分配算法
I /O设备的分配机制,除了与IO设备的固有属性有关外,还与系统所采用的分配策略有关 。 I /O设备的分配与进程调度很能相似,
同样可采用如下的一些算法:
先请求先服务:当有多个进程对同一设备提出
I /O请求时,该算法要求把所有发出I /O请求的进程,按其发出请求的先后次序排成一个等待该设备的队列 。 设备分配程序把I /O设备分配给队列中第一个进程 。
优先权最高者优先 。 对于何必先权相同的IO
请求,则按先请求先分配的原则排队 。
3) 设备分配的安全性为了能同时操作多个I /O设备以加速进程的推进,应使得某进程以命令形式发出I /O请求后,仍可继续运行,需要时又可发出第二个,第三个I /O请求 。
多请求方式的缺点是,设备分配不安全,
因为它具备请求和保持条件,因而有可能产生死锁的情况 。 由此可见,在多请求方式中,设备的分配程序应保证不发生进程死锁 。
4) 与设备无关性为了提高系统的可适应性和可扩展性,我们希望 所编制的用户程序与实际使用的物理设备无关,这就是所谓与设备无关性 。
为此,我们将逻辑设备与物理设备区分,并引入逻辑设备名称和物理设备名称的概念 。 为了实现与设备的无关性,系统中必须有一张联系逻辑设备名称和物理设备名称的映射表,( LUT表 )
3,系统的逻辑设备表逻辑设备号 物理设备号 驱动程序地址
1 7 20420
2 7 20420
3 2 20E00
4 4 1FC10
6 1 20D02
7 7 20420
15 10 1FC10
16 11 1FC120
… … ……
逻辑设备与物理设备这个LUT中为三个不同的逻辑设备号列出了同样的物理设备和驱动程序的地址 。 这说明逻辑设备1,2,7目前均得到同一个物理设备7的服务 ( 这或许是因为激光打印机及字母型打印机正在被修理,因此本来输出到这些设备上的请求都移到行式打印机 ) 。 在这个映射表中我们还可以看到物理设备4和10都是由同一个驱动程序服务的 。 这是假定它们是同一类型的终端 。 例如所有的128终端均由一个驱动程序服务 。
4,设备分配程序当系统中已经设置了数据结构,且确定了一定的分配原则后,如果某进程提出了IO请求,便可按下述步骤进行设备分配:
根据用户请求的 I/O设备的逻辑名,查找逻辑设备和物理设备的映射表;以物理设备为索引,查找 SDT,找到该设备所连接的 DCT;继续查找与该设备连接的 COCT和 CHCT,就找到了一条通路 。 即:
分配设备 - >分配控制器 ->分配通道为进程 P分配所需的 I/O设备从 SDT表查该类设备的控制表 DCT
由 DCT检查该设备忙否?
不忙检查分配此设备的安全性?
不安全分配此设备给进程 P
查此设备连接的 COCT忙否?
不忙不忙分配此控制器给进程 P
查此控制器连接的 CHCT忙否?
最后一个 DCT?
分配此通道给进程 P
启动 I/O,进行具体的 I/O操作忙进程 P的 PCB放入此设备的等待队列
Y
N
忙 最后一个 COCT?
最后一个 DCT?
进程 P 的 PCB 放入此控制器的等待队列
Y
N
Y
忙最后一个 CHCT?
Y最后一个 COCT?
进程 P 的 PCB 放入此通道的等待队列
N
Y
N
N
多通路设备分配流程示意图
5.6.2 设备处理
(1) 接收由 I/O进程发来的命令和参数,并将命令中的抽象要求转换为具体要求,例如,
将磁盘块号转换为磁盘的盘面,磁道号及扇
(2) 检查用户 I/O请求的合法性,了解 I/O设备的状态,传递有关参数,设置设备的工作方式 。
1,设备驱动程序的功能和特点
1) 设备驱动程序的功能
(3) 发出 I/O命令,如果设备空闲,便立即启动 I/O设备去完成指定的 I/O操作;如果设备处于忙碌状态,则将请求者的请求块挂在设
(4) 及时响应由控制器或通道发来的中断请求,并根据其中断类型调用相应的中断处理程序进行处理 。
(5) 对于设置有通道的计算机系统,驱动程序还应能够根据用户的 I/O请求,自动地构成通道程序 。
2) 设备处理方式
(1) 为每一类设备设置一个进程,专门用于执行这类设备的 I/O操作。
(2) 在整个系统中设置一个 I/O进程,专门用于执行系统中所有各类设备的 I/O操作。
(3) 不设置专门的设备处理进程,而只为各类设备设置相应的设备处理程序 (模块 ),供用户进程或系统进程调用 。
为了控制 I/O传输,系统为每类设备编制设备驱动程序
设备驱动程序 是一种低级的系统例程。它必须和系统的输入输出硬设备相互通信。
使用特权I /O指令来访问硬件,它通常是用汇编语言或系统编程语言写的。
任务:主要负责接收和分析从设备分配转来的信息,并根据设备分配的结果,结合具体物理设备特性完成以下具体工作。
3) 设备驱动程序
4) 设备驱动程序的特点
(1) 驱动程序主要是指在请求 I/O的进程与设备控制器之间的一个通信和转换程序。
(2) 驱动程序与设备控制器和 I/O设备的硬件特性紧密相关,因而对不同类型的设备应配置不同的驱动程序 。
(3) 驱动程序与 I/O设备所采用的 I/O控制方式紧密相关 。
(4) 由于驱动程序与硬件紧密相关,因而其中的一部分必须用汇编语言书写 。
2,设备驱动程序的处理过程
1.
2,检查 I/O
3,读出和检查设备的状态
4,传送必要的参数
5,工作方式的设置
6,启动 I/O设备中断现场保护示意图中断处理流程管理程序保护现场组织通道程序保存通道程序的始址于 CAW
启动 I/O指令分析条件码启动成功使
P阻塞,另选程序 q运行保护程序 q的现场分析中断原因处理 I/O中断选择可运行程序请求启动程序程序 q
程序 P
用户程序判断状态执行通道程序控制 I/O设备操作,执行情况记录在 CSW
出现中断事件
CSW=>主存通道号,设备号送特定寄存器通道程序执行规定的操作设备控制器和设备
1
2
3
4
5
I/O的操作全过程第五章 设备管理
5.7 磁盘存储器管理磁盘存储器管理的主要任务
为文件分配存储空间
合理地组织文件地存储方式,以提高访问速度
提高磁盘存储空间地利用率
提高磁盘 I/O速度,改善文件性能
确保文件系统的可靠性 ( 备份 )
5.7.1 磁盘性能简述
1,数据的组织和格式磁盘的格式化
1)
这种磁盘在每条磁道上都有一读 /写磁头,所有的磁头都被装在一刚性磁臂中 。 通过这些磁头可访问所有各磁道,并进行并行读 /写,有效地提高了磁盘的 I/O速度 。 这种结构的磁盘主要用于大容量磁盘上 。
2)
每一个盘面仅配有一个磁头,也被装入磁臂中 。
为能访问该盘面上的所有磁道,该磁头必须能移动以进行寻道 。 可见,移动磁头仅能以串行方式读 /写,
致使其 I/O速度较慢;但由于其结构简单,故仍广泛应用于中小型磁盘设备中 。
2,磁盘的类型
3,磁盘访问时间
1) 寻道时间 Ts
这是指把磁臂 (磁头 )移动到指定磁道上所经历的时间 。 该时间是启动磁臂的时间 s与磁头移动 n条磁道所花费的时间之和,
Ts=m× n+s
其中,m是一常数,与磁盘驱动器的速度有关,
对一般磁盘,m=0.2;对高速磁盘,m≤ 0.1,磁臂的启动时间约为 2 ms。 这样,对一般的温盘,其寻道时间将随寻道距离的增加而增大,大体上是 5~30
ms。
2) 旋转延迟时间 Tτ
这是指定扇区移动到磁头下面所经历的时间 。
对于硬盘,典型的旋转速度大多为 5400 r/min,
每转需时 11.1 ms,平均旋转延迟时间 Tτ为 5.55 ms;
对于软盘,其旋转速度为 300 r/min或 600 r/min,
这样,平均 Tτ为 50~100 ms。
3) 传输时间 Tt
把数据从磁盘读出或向磁盘写入数据所经历的时间 。 Tt
的大小与每次所读 /写的字节数 b和旋转速度有关:
其中,r为磁盘每秒钟的转数; N为一条磁道上的字节数,当一次读 /写的字节数相当于半条磁道上的字节数时,Tt与 Tτ相同,因此,
可将访问时间 Ta表示为,其中,r为磁盘每秒钟的转数; N为一条磁道上的字节数,当一次读 /写的字节数相当于半条磁道上的字节数时,Tt与 Tτ相同,因此,可将访问时间 Ta
表示为:
5.7.2 磁盘调度
1,先来先服务 FCFS(First-Come,First Served)
FCFS调度算法
2,最短寻道时间优先 SSTF
(Shortest Seek Time First)
SSTF调度算法
3,扫描 (SCAN)算法
SSTF算法虽然能获得较好的寻道性能,
但却可能导致某个进程发生,饥饿,(Starvation)现象。因为只要不断有新进程的请求到达,且其所要访问的磁道与磁头当前所在磁道的距离较近,这种新进程的 I/O请求必须优先满足。对 SSTF算法略加修改后所形成的 SCAN算法,即可防止老进程出现,饥饿,现象。
1) 进程,饥饿,现象
2) SCAN算法
SCAN调度算法示例
4,循环扫描 (CSCAN)算法
CSCAN调度算法示例
1) N-Step-SCAN
在 SSTF,SCAN及 CSCAN几种调度算法中,都可能出现磁臂停留在某处不动的情况,例如,有一个或几个进程对某一磁道有较高的访问频率,即这个 (些 )进程反复请求对某一磁道的 I/O操作,从而垄断了整个磁 盘 设 备 。 我 们 把 这 一 现 象 称 为,磁 臂 粘着,(Armstickiness)。 在高密度磁盘上容易出现此情况 。 N步 SCAN算法是将磁盘请求队列分成若干个长度为 N的子队列,磁盘调度将按 FCFS算法依次处理这些子队列 。 而每处理一个队列时又是按 SCAN算法,对一个队列处理完后,再处理其他队列 。 当正在处理某子队列时,如果又出现新的磁盘 I/O请求,便将新请求进程放入其他队列,这样就可避免出现粘着现象 。
当 N值取得很大时,会使 N步扫描法的性能接近于 SCAN
算法的性能;当 N=1时,N步 SCAN算法便蜕化为 FCFS
算法 。
5,N-Step-SCAN和 FSCAN调度算法
2) FSCAN
FSCAN算法实质上是 N步 SCAN算法的简化,
即 FSCAN只将磁盘请求队列分成两个子队列 。
一个是由当前所有请求磁盘 I/O的进程形成的队列,由磁盘调度按 SCAN算法进行处理 。 在扫描期间,将新出现的所有请求磁盘 I/O的进程,
放入另一个等待处理的请求队列 。 这样,所有的新请求都将被推迟到下一次扫描时处理 。
是指利用内存中的存储空间,来暂存从磁盘中读出的一系列盘块中的信息 。 因此,这里的高速缓存是一组在逻辑上属于磁盘,而物理上是驻留在内存中的盘块 。 高速缓存在内存中可分成两种形式 。
第一种是在内存中开辟一个单独的存储空间来作为磁盘高速缓存,其大小是固定的,不会受应用程序多少的影响;第二种是把所有未利用的内存空间变为一个缓冲池,供请求分页系统和磁盘 I/O时 (作为磁盘高速缓存 )共享 。 此时高速缓存的大小,显然不再是固定的 。 当磁盘 I/O的频繁程度较高时,该缓冲池可能包含更多的内存空间;而在应用程序运行得较多时,该缓冲池可能只剩下较少的内存空间 。
5.7.3 磁盘高速缓存 (Disk Cache)
1,磁盘高速缓存的形式系统可以采取两种方式,将数据交付给请求进程:
(1) 数据交付 。 这是直接将高速缓存中的数据,传送到请求者进程的内存工作区中 。
(2) 指针交付 。 只将指向高速缓存中某区域的指针,交付给请求者进程 。
后一种方式由于所传送的数据量少,因而节省了数据从磁盘高速缓存存储空间到进程的内存工作区的时间
2,数据交付方式由于请求调页中的联想存储器与高速缓存 (磁盘 I/O中 )的工作情况不同,因而使得在置换算法中所应考虑的问题也有所差异 。 因此,现在不少系统在设计其高速缓存的置换算法时,除了考虑到最近最久未使用这一原则外,
(1) 访问频率。
(2) 可预见性。
(3) 数据的一致性。
3,置换算法在 UNIX系统中专门增设了一个修改 (update)程序,使之在后台运行,该程序周期性地调用一个系统调用 SYNC。 该调用的主要功能是强制性地将所有在高速缓存中已修改的盘块数据写回磁盘 。 一般是把两次调用 SYNC的时间间隔定为 30 s。 这样,因系统故障所造成的工作损失不会超过 30 s的劳动量 。
而在 MS-DOS中所采用的方法是:只要高速缓存中的某盘块数据被修改,便立即将它写回磁盘,并将这种高速缓存称为,写穿透,高速缓存,(write-
through cache)。 MS-DOS所采用的写回方式,几乎不会造成数据的丢失,但须频繁地启动磁盘 。
4,周期性地写回磁盘
1,提前读 (Read-Ahead)
2,延迟写
3,优化物理块的分布
4,虚拟盘
5.7.4 提高磁盘 I/O速度的其它方法
5.7.5 廉价磁盘冗余阵列
1,并行交叉存取图 5-27 磁盘并行交叉存取方式第五章 设备管理
5.8 典型外部设备
1,磁带是用来记录和存取信息的物理介质,它是在塑胶带制成的载体上涂抹一层薄薄的磁性材料 。
磁层厚度通常在 0.2--0.5微米之间 。 磁带的宽度可以有几种不同的尺寸,常见的有1,1/2,
1/4英寸 。 带的长度也是可变的,目前国产磁带有600米,750米和900米等 。 磁带上信息的组织同磁带的使用方法有关,通常磁带的使用方法有两种:一是把它作为顺序性设备;另一是把它当成半顺序性设备 。
1) 顺序性磁带的信息组织所谓顺序性磁带是指磁带上信息的定位和存取严格按其上信息的物理位置顺序进行 。 其信息也是以块为单位存取的,
信息组织如下图所示,图中的带头标和尾标用来标识带的起始端和末端,这两个标志通常用两条金属箔贴在磁带反面以供光电系统识别 。 带标 ( 或称块尾标 ) 是一组供硬件识别的较短的特殊代码信息 块 。 相当于有效信息块的间隔符 。
顺序性磁带的信息组织
信息组织如下图所示带头标带标间隙信息块间隙带标间隙信息块带尾标
2) 半顺序性磁带的信息组织它与顺序性磁带的信息组织的差别主要在于信息块长度是相同的,一般为
512个字或 1024个字,一块称为一个信息组,并给每一组规定一个组号以标识和定位信息组 。 在磁带使用前,由磁带机将组号写出在每个信息组前,其信息组织如下图所示 。 由于这种带上存在唯一标识信息组位置和组号,所以只要把要读,写的信息组号和读,写长度通知磁带机,
半顺序性磁带的信息组织(续)
它即能从该信息组开始,顺序读,
写信息 。 所以称为半顺序性 。
带头标组号间隙信息组间隙组号间隙信息组间隙
…
…
带尾标
2.磁鼓是一种形状如鼓的设备,分为立式磁鼓和卧式磁鼓两种 。 主要根据转子轴是垂直于水平面,还是平行于水平面来分 。
磁转子是由鼓体上涂以磁层构成 。 其记录信息的原理与磁带相似 。 鼓表面被划分为许多条首尾相接的环形磁道,磁道密度一般为 4--5道/厘米 。 每条磁道上对应有一个固定的读写头,鼓上的信息就是由这些磁头写上和读出的 。
磁鼓 (续 )
对磁鼓上的一个物理记录定位,需要有两个参数:道号,物理记录号 。 作为旋转设备来说,磁鼓的容量比磁盘小,然而由于每个磁道有一个固定磁头,所以记录查找时间很小,数据传送速率较高,有些磁鼓为了进一步提高数据传送速率,每个磁道有两个或更多的读写磁头 。
3,时钟
时钟( clock),又称为定时器( timer)
(1) 时钟负责提供一天的时间
(2) 防止一个进程垄断 CPU
时钟既不是块设备,也不是字符设备,
但时钟软件通常也采用设备驱动程序的形式
1) 时钟硬件两种类型:
比较简单的时钟被连到 110V或 220V的电源线上,每个电压周期产生一个中断,频率是
50Hz或 60Hz
另一种时钟由三个部件构成:晶体振荡器、
计数器和存储寄存器石英晶体产生的精确的周期信号,典型的范围是 5到 100MHz
信号送到到计数器,使其递减计数至 0。当计数器变为 0时,产生一个 CPU中断信号
可编程时钟操作方式:在单脉冲方式( one-
shot mode)下,当时钟启动时,它把存储寄存器的值拷贝到计数器中,然后,晶体的每一个脉冲使计数器减 1。当计数器为 0时,产生一个中断,并停止工作,直到软件再一次显式启动它
在方波方式( square-wave mode)下,当计数器为 0并产生中断时,存储寄存器的值自动拷贝到计数器,这个过程不断地重复下去。周期性的中断称为时钟滴答( clock tick )
可编程时钟的优点是其中断频率可由软件控制
2) 时钟软件时钟硬件所做的工作是每隔一定的时间间隔产生一个中断涉及时间的其他所有工作都必须由软件 — 时钟驱动程序完成
3) 时钟软件 功能
1.维护日期时间
2.防止进程超时运行
3.对 CPU的使用情况记帐
4.处理用户进程提出的 ALARM系统调用
5.为系统本身各部分提供监视定时器
6.绘制 CPU运行直方图,完成监视和统计信息收集
系统的其他部分也需要定时器称为监视定时器( watchdog timer)。例如,使用软盘时,
系统必须驱动软盘的电机接通电源并等待大约 500毫秒,使电机达到稳定速度
4,终端输入:原始模式或加工模式缓冲、回送、填充字符、行编辑、特殊字符处理输出:光标的位置、转义字符
每台计算机都配有一个或多个终端与之通信
为了使操作系统中与设备无关部分和用户程序对于不同型号的终端不必重写,终端驱动程序隐藏了各种类型终端的差异
1) 终端硬件根据与操作系统的通信方法将终端分为两大类:
( 1) RS- 232标准接口
( 2)存储映像终端
RS- 232终端由键盘和显示器构成,通过串行接口一次一位地与计算机系统进行通信。这些终端使用 25针的连接器,其中一针用于发送数据,一针用于接收数据,一针接地,其余 22针用于各种控制功能(大部分未使用)
计算机和终端以字符作为处理对象,而通信时却是通过串行口一次一位地进行需要完成字符到位串与位串到字符的转换
智能 CRT终端实际是一微小型计算机它们带有一个 CPU和存储器,通常在
EPROM或 ROM中存储了复杂的程序
从操作系统的角度,玻璃终端和智能终端的主要不同点是:后者理解特殊的转义序列
最高档的智能终端中包含了与主计算机能力相同的 CPU,以及以兆字节为单位的内存,
可以从计算机系统下载任何程序终端硬件
2) 存储映像终端
本身是计算机的组成部分
通过专用存储器接口与计算机通信,称为视频 RAM( video RAM),是计算机地址空间的一部分,CPU对它的寻址与对其他存储器的寻址是一样
视频控制器 (video controller),从视频
RAM中取出字符,产生用于驱动显示器视频信号
当 CPU将一个字符写到视频 RAM时,在一帧显示周期内显示在屏幕上
速度快
交互最快,广泛使用位映像终端
视频 RAM每一位直接控制屏幕上的每一像素
800× 1024个像素的屏幕需 100k字节 RAM(彩色更多)
提供更加灵活的字符字体和尺寸
允许多窗口
可制作任意图形存储映像终端
5,输入软件键盘驱动程序的基本工作收集键盘的输入信息当用户程序要从终端读信息时,把收集的输入传给用户程序键盘驱动程序两种处理方式
( 1)面向字符,原始( raw)模式将接收的输入不加修改地向上层传送,从终端读信息的程序得到一系列原始的 ASCII码序
( 2)面向行,加工( cooked)模式键盘驱动程序负责处理一行内的编辑,并将修改过的行传送给用户程序
6,输出软件
RS- 232终端与存储终端的驱动程序完全不同
RS- 232终端
输出缓冲区与每个终端相关联
程序向终端写时,先将输出拷贝到缓冲区
需要回送的输入也拷贝到缓冲区
当输出全部复制到缓冲区(或者缓冲区满)
时,向终端输出第一个字符,驱动程序睡眠等待,产生中断时,输出下一个字符,如此循环,直到输出完成存储映像终端
从用户空间一次取出一个要打印的字符
然后,直接送入视频 RAM
7,一体化的输入输出
WINDOWS NT的输入输出系统在所有操作系统中是最具特色的 。 这是由于:
在高度抽象基础上建立起了统一一致的高层界面--I/O设备的虚拟界面,即把所有读写数据看成直接送往虚拟文件的字节流 。 从而把通常操作系统中完全不同的四部分--文件系统,高速缓冲存储器,
设备管理,网络管理--组织成为一个界面和操作一致的输入输出 ( I/O ) 系统 。
一体化的输入输出 (续 )
I/O系统是个层次结构 。 构成I/O系统的部件有:I/O管理程序,文件系统,缓冲存储管理器,设备驱动器,网络管理器 。
统一的驱动程序模型 。 所有的驱动程序是统一的结构;用同一方式建立;表现出相同的外貌 。
具有异步I/O操作 。
具有映象文件I/O功能 。