第五章 设 备 管 理第五章 设备管理
5.1 I/O系统
5.2 I/O控制方式
5.3 缓冲管理
5.4 设备分配
5.5 设备处理
5.6 磁盘存储器管理第五章 设 备 管 理
5.1 I/O 系 统
5.1.1 I/O设备
1,I/O设备的类型
1)
按传输速度的高低,可将 I/O设备分为三类 。 第一类是低速设备,这是指其传输速率仅为每秒钟几个字节至数百个字节的一类设备 。 属于低速设备的典型设备有键盘,鼠标器,语音的输入和输出等设备 。 第二类是中速设备,这是指其传输速率在每秒钟数千个字节至数万个字节的一类设备 。 典型的中速设备有行式打印机,激光打印机等 。 第三类是高速设备,这是指其传输速率在数百千个字节至数十兆字节的一类设备 。 典型的高速设备有磁带机,磁盘机,光盘机等 。
第五章 设 备 管 理
2)
可将 I/O设备分成两类 。 第一类是块设备 (Block Device),
这类设备用于存储信息 。 由于信息的存取总是以数据块为单位,故而得名 。 它属于有结构设备 。 典型的块设备是磁盘,
每个盘块的大小为 512 B~4 KB。 磁盘设备的基本特征是其传输速率较高,通常每秒钟为几兆位;另一特征是可寻址,即对它可随机地读 /写任一块;此外,磁盘设备的 I/O常采用
DMA方式 。 第二类是字符设备 (Character Device),用于数据的输入和输出 。 其基本单位是字符,故称为字符设备 。
第五章 设 备 管 理
3)
这种分类方式可将 I/O
(1) 独占设备。
(2) 共享设备。
(3) 虚拟设备。
第五章 设 备 管 理
2,设备与控制器之间的接口图 5-1 设备与控制器间的接口缓冲 转换器控制逻辑信号数据数据信号线状态信号线控制信号线至设备控制器
I / O 设备第五章 设 备 管 理
5.1.2 设备控制器
1,设备控制器的基本功能
1) 接收和识别命令
2) 数据交换
3) 标识和报告设备的状态
4) 地址识别
5) 数据缓冲
6) 差错控制第五章 设 备 管 理
2,设备控制器的组成图 5-2 设备控制器的组成数据寄存器控制/ 状态寄存器数据线
I / O 逻辑
控制器与设备接口1
控制器与设备接口 i
数据状态控制数据状态控制
地址线控制线
C P U 与控制器接口 控制 器与设 备接口第五章 设 备 管 理
5.1.3 I/O通道
1,I/O通道 (I/O Channel)设备的引入实际上,I/O通道是一种特殊的处理机 。 它具有执行 I/O
指令的能力,并通过执行通道 (I/O)程序来控制 I/O操作 。 但
I/O通道又与一般的处理机不同,主要表现在以下两个方面:
一是其指令类型单一,这是由于通道硬件比较简单,
其所能执行的命令,主要局限于与 I/O操作有关的指令; 再就是通道没有自己的内存,通道所执行的通道程序是放在主机的内存中的,换言之,是通道与 CPU共享内存 。
第五章 设 备 管 理
2,通道类型
1) 字节多路通道 (Byte Multiplexor Channel)
图 5-3 字节多路通道的工作原理控制器 A
控制器 B
控制器 C
控制器 D
控制器 N
A
1
A
2
A
3
子通道 A
B
1
B
2
B
3
子通道 B
C
1
C
2
C
3
子通道 C
N
1
N
2
N
3
子通道 N
A
1
B
1
C
1
A
2
B
2
C
2

设备第五章 设 备 管 理
2) 数组选择通道 (Block Selector Channel)
字节多路通道不适于连接高速设备,这推动了按数组方式进行数据传送的数组选择通道的形成 。 这种通道虽然可以连接多台高速设备,但由于它只含有一个分配型子通道,在一段时间内只能执行一道通道程序,控制一台设备进行数据传送,致使当某台设备占用了该通道后,便一直由它独占,
即使是它无数据传送,通道被闲置,也不允许其它设备使用该通道,直至该设备传送完毕释放该通道 。 可见,这种通道的利用率很低 。
第五章 设 备 管 理
3) 数组多路通道 (Block Multiplexor Channel)
数组选择通道虽有很高的传输速率,但它却每次只允许一个设备传输数据 。 数组多路通道是将数组选择通道传输速率高和字节多路通道能使各子通道 (设备 )分时并行操作的优点相结合而形成的一种新通道 。 它含有多个非分配型子通道,因而这种通道既具有很高的数据传输速率,又能获得令人满意的通道利用率 。 也正因此,才使该通道能被广泛地用于连接多台高,中速的外围设备,其数据传送是按数组方式进行的 。
第五章 设 备 管 理
3.,瓶颈”问题图 5-4 单通路 I/O系统设备 1
设备 2
设备 3
设备 4
设备 5
设备 6
设备 7
控制器 1
控制器 2
控制器 3
控制器 4
通道 1
通道 2
存储器第五章 设 备 管 理图 5-5 多通路 I/O系统
I / O 设备控制器 1
控制器 2
通道 1
通道 2
存储器
I / O 设备
I / O 设备
I / O 设备第五章 设 备 管 理
5.1.4 总线系统图 5-6 总线型 I/O系统结构
C P U 存储器磁盘控制器打印机控制器
其它控制器磁盘驱动器打印机系统总线第五章 设 备 管 理
1,ISA和 EISA总线
1) ISA(Industry Standard Architecture)
这是为了 1984年推出的 80286型微机而设计的总线结构 。
其总线的带宽为 8位,最高传输速率为 2 Mb/s。 之后不久又推出了 16位的 (EISA)总线,其最高传输速率为 8 Mb/s,后又升至 16 Mb/s,能连接 12台设备 。
2) EISA(Extended ISA)
到 80年代末期,ISA总线已难于满足带宽和传输速率的要求,于是人们又开发出扩展 ISA(EISA)总线,其带宽为 32位,
总线的传输速率高达 32 Mb/s,同样可以连接 12台外部设备 。
第五章 设 备 管 理
2,局部总线 (Local Bus)
1) VESA(Video Electronic Standard Association)总线
2) PCI(Peripheral Component Interface)
第五章 设 备 管 理
5.2 I/O控制方式
5.2.1 程序 I/O方式在程序 I/O方式中,由于 CPU的高速性和 I/O设备的低速性,致使 CPU的绝大部分时间都处于等待 I/O设备完成数据
I/O的循环测试中,造成对 CPU的极大浪费 。 在该方式中,
CPU之所以要不断地测试 I/O设备的状态,就是因为在 CPU
中无中断机构,使 I/O设备无法向 CPU报告它已完成了一个字符的输入操作 。
第五章 设 备 管 理图 5-7 程序 I/O和中断驱动方式的流程向 I / O 控制器发读命令读 I / O 控制器的状态检查状态?
从 I / O 控制器中读入字向存储器中写字传送完成?
未就绪就绪出错
C P U →I/ O
I / O →C P U
I / O →C P U
C P U → 内存下条指令完成未完向 I / O 控制器发读命令读 I / O 控制器的状态检查状态?
从 I / O 控制器中读字向内存中写字传送完成?
就绪出错
C P U →I/ O
I / O →C P U
I / O →C P U
C P U → 内存下条指令完成未完中断
C P U 做其它事向 I / O 控制器发布读块命令
C P U →D M A
C P U 做其它事读 D MA 控制器的状态中断
D M A →C P U
下条指令
( a ) 程序 I / O 方式 ( b ) 中断驱动方式
( c ) D M A 方式第五章 设 备 管 理
5.2.2 中断驱动 I/O控制方式在 I/O设备输入每个数据的过程中,由于无须 CPU干预,
因而可使 CPU与 I/O设备并行工作 。 仅当输完一个数据时,才需 CPU花费极短的时间去做些中断处理 。 可见,这样可使
CPU和 I/O设备都处于忙碌状态,从而提高了整个系统的资源利用率及吞吐量 。 例如,从终端输入一个字符的时间约为 100
ms,而将字符送入终端缓冲区的时间小于 0.1 ms。 若采用程序 I/O方式,CPU约有 99.9 ms的时间处于忙 —等待中 。 采用中断驱动方式后,CPU可利用这 99.9 ms的时间去做其它事情,
而仅用 0.1 ms的时间来处理由控制器发来的中断请求 。 可见,
中断驱动方式可以成百倍地提高 CPU的利用率 。
第五章 设 备 管 理
5.2.3 直接存储器访问 DMA I/O控制方式
1,DMA(Direct Memory Access)控制方式的引入该方式的特点是,① 数据传输的基本单位是数据块,即在
CPU与 I/O设备之间,每次传送至少一个数据块; ② 所传送的数据是从设备直接送入内存的,或者相反; ③ 仅在传送一个或多个数据块的开始和结束时,才需 CPU干预,整块数据的传送是在控制器的控制下完成的 。 可见,DMA方式较之中断驱动方式,又是成百倍地减少了 CPU对 I/O的干预,进一步提高了 CPU与 I/O设备的并行操作程度 。
第五章 设 备 管 理
2,DMA控制器的组成图 5-8 DMA控制器的组成
DR
M A R
DC
CR
I / O
控制逻辑

主机—控制器接口 控制器与块设备接口
c o u n t
内存C P U
命令系统总线 D M A 控制器第五章 设 备 管 理为了实现在主机与控制器之间成块数据的直接交换,必须在 DMA
(1) 命令 /状态寄存器 CR。 用于接收从 CPU发来的 I/O命令或有关控制信息,或设备的状态 。
(2) 内存地址寄存器 MAR。 在输入时,它存放把数据从设备传送到内存的起始目标地址;在输出时,它存放由内存到设备的内存源地址 。
(3) 数据寄存器 DR。 用于暂存从设备到内存,或从内存到设备的数据 。
(4) 数据计数器 DC。 存放本次 CPU要读或写的字 (节 )数。
第五章 设 备 管 理
3,DMA工作过程图 5-9 DMA方式的工作流程设置 AR 和 DC 初值启动 D M A 传送命令挪用存储器周期传送数据字存储器地址增 1
字计数寄存器减 1
DC = 0?
请求中断在继续执行用户程序的同时,准备又一次传送否是第五章 设 备 管 理
5.2.4 I/O通道控制方式
1,I/O通道控制方式的引入
I/O通道方式是 DMA方式的发展,它可进一步减少 CPU
的干预,即把对一个数据块的读 (或写 )为单位的干预,减少为对一组数据块的读 (或写 )及有关的控制和管理为单位的干预 。 同时,又可实现 CPU,通道和 I/O设备三者的并行操作,
从而更有效地提高整个系统的资源利用率 。 例如,当 CPU要完成一组相关的读 (或写 )操作及有关控制时,只需向 I/O通道发送一条 I/O指令,以给出其所要执行的通道程序的首址和要访问的 I/O设备,通道接到该指令后,通过执行通道程序便可完成 CPU指定的 I/O任务 。
第五章 设 备 管 理
2,通道程序
(1) 操作码。
(2) 内存地址。
(3) 计数。
(4) 通道程序结束位 P。
(5) 记录结束标志 R。
第五章 设 备 管 理操作 P R 计数 内存地址
WRITE 0 0 80 813
WRITE 0 0 140 1034
WRITE 0 1 60 5830
WRITE 0 1 300 2000
WRITE 0 0 250 1850
WRITE 1 1 250 720
第五章 设 备 管 理
5.3 缓 冲 管 理
5.3.1 缓冲的引入
(1) 缓和 CPU与 I/O设备间速度不匹配的矛盾。
(2) 减少对 CPU的中断频率,放宽对 CPU中断响应时间的限制。
(3) 提高 CPU和 I/O设备之间的并行性。
第五章 设 备 管 理图 5-10 利用缓冲寄存器实现缓冲
1 位缓冲
9,6 K b / s
8 位缓冲寄存器送内存
9,6 K b / s
8 位缓冲寄存器
9,6 K b / s
送内存
( b )
( a )
( c )
第五章 设 备 管 理
5.3.2 单缓冲和双缓冲
1,单缓冲 (Single Buffer)
工作区处理 ( C )
缓冲区传送 ( M ) 输入 ( T )
I / O 设备
( a )
T
1
M
1
C
1
T
2
M
2
C
2
T
3
M
3
C
3
T
4
t
( b )
用户进程图 5-11 单缓冲工作示意图第五章 设 备 管 理
2,双缓冲 (Double Buffer)
工作区用户进程缓冲区 1
缓冲区 2
I / O 设备
T
1
( 缓冲 1)
M
1
C
1
M
2
C
2
M
3
C
3
T
2
( 缓冲 2) T
3
( 缓冲 3)
M
4
C
4
T
4
( 缓冲 4)
( a )
( b )
图 5-12 双缓冲工作示意图第五章 设 备 管 理图 5-13 双机通信时缓冲区的设置缓冲区 缓冲区
A 机 B 机
( a ) 单缓冲发送缓冲区接收缓冲区接收缓冲区发送缓冲区
A 机 B 机
( b ) 双缓冲第五章 设 备 管 理
5.3.3 循环缓冲
1,循环缓冲的组成图 5-14 循环缓冲
R
G
G
G
R
G
1
6
5
4
2
3
N e x t i
N e x t g
R
G
G
G
R
C
1
6
5
4
2
3
N e x t i
N e x t g
c u r r e n t
第五章 设 备 管 理
2,
(1) Getbuf过程。
(2) Releasebuf过程。
第五章 设 备 管 理
3,进程同步
(1) Nexti指针追赶上 Nextg指针。
(2) Nextg指针追赶上 Nexti指针。
第五章 设 备 管 理
5.3.4 缓冲池 (Buffer Pool)
1,缓冲池的组成
1,缓冲池的组成对于既可用于输入又可用于输出的公用缓冲池,其中至少应含有以下三种类型的缓冲区,① 空 (闲 )缓冲区; ②
装满输入数据的缓冲区; ③ 装满输出数据的缓冲区 。 为了管理上的方便,可将相同类型的缓冲区链成一个队列,于是可形成以下三个队列:
( 1) 空缓冲队列 emq。
(2) 输入队列 inq。
(3) 输出队列 outq。
第五章 设 备 管 理
2,Getbuf过程和 Putbuf过程
Procedure Getbuf(type)
begin
Wait(RS(type));
Wait(MS(type));
B(number) ∶ [KG-*3]= Takebuf(type);
Signal(MS(type));
end
Procedure Putbuf(type,number)
begin
Wait(MS(type));
Addbuf(type,number);
Signal(MS(type));
Signal(RS(type));
end
第五章 设 备 管 理
3,缓冲区的工作方式图 5-15 缓冲区的工作方式
h i n
s o u t
s i n
h o u t
收容输入提取输出用户程序提取输入收容输出缓冲池第五章 设 备 管 理
5.4 设 备 分 配
5.4.1 设备分配中的数据结构
1,设备控制表 DCT
设备类型 t y p e
设备标识符,d e v i c e i d
设备状态:等待/ 不等待 忙/ 闲指向控制器表的指针重复执行次数或时间设备队列的队首指针
D C T 1
D C T 2
D C T n
设备控制表集合图 5-16 设备控制表第五章 设 备 管 理
2,控制器控制表,通道控制表和系统设备表图 5-17 COCT,CHCT和 SDT表
( c ) 系统 设备 表 S D T
控制器标识符,c o n t r o l l e r i d
控制器状态:忙/ 闲与控制器连接的通道表指针控制器队列的队首指针控制器队列的队尾指针通道标识符,c h a n n e l i d
通道状态:忙/ 闲与通道连接的控制器表首址通道队列的队首指针通道队列的队尾指针
( a ) 控制器表 C O C T ( b ) 通道表 C H C T
表目 1
表目 i
设备类设备标识符
D C T
驱动程序入口第五章 设 备 管 理
5.4.2
1,设备的固有属性
(1) 独享设备。
(2) 共享设备。
(3) 虚拟设备。
第五章 设 备 管 理
2,
(1) 先来先服务。
(2) 优先级高者优先。
第五章 设 备 管 理
3,设备分配中的安全性
1) 安全分配方式
2) 不安全分配方式第五章 设 备 管 理
5.4.3 设备独立性
1,设备独立性 (Device Independence)
为了提高 OS的可适应性和可扩展性,在现代 OS中都毫无例外地实现了设备独立性,也称为设备无关性 。 其基本含义是,应用程序独立于具体使用的物理设备 。 为了实现设备独立性而引入了逻辑设备和物理设备这两个概念 。 在应用程序中,使用逻辑设备名称来请求使用某类设备;而系统在实际执行时,还必须使用物理设备名称 。 因此,系统须具有将逻辑设备名称转换为某物理设备名称的功能,这非常类似于存储器管理中所介绍的逻辑地址和物理地址的概念 。
第五章 设 备 管 理在实现了设备独立性的功能后,可带来以下两方面的好处 。
1) 设备分配时的灵活性
2) 易于实现 I/O
第五章 设 备 管 理
2,设备独立性软件
1)
这些公有操作包括,① 对独立设备的分配与回收;
② 将逻辑设备名映射为物理设备名,进一步可以找到相应物理设备的驱动程序; ③ 对设备进行保护,禁止用户直接访问设备; ④ 缓冲管理,即对字符设备和块设备的缓冲区进行有效的管理,以提高 I/O的效率; ⑤ 差错控制 。
由于在 I/O操作中的绝大多数错误都与设备无关,故主要由设备驱动程序处理,而设备独立性软件只处理那些设备驱动程序无法处理的错误 。
第五章 设 备 管 理
2) 向用户层 (或文件层 )
无论何种设备,它们向用户所提供的接口应该是相同的。 例如,对各种设备的读操作,在应用程序中都使用 read; 而对各种设备的写操作,也都使用 write。
第五章 设 备 管 理
3,逻辑设备名到物理设备名映射的实现
1) 逻辑设备表
2) LUT的设置问题图 5-18 逻辑设备表逻辑设备名 物理设备名驱动程序入口地址
/ d e v / t t y
/ d e v / p r i n t e r
3
5
1 0 2 4
2 0 4 6

逻辑设备名
/ d e v / t t y
/ d e v / p r i n t e r
系统设备表指针
3
5
( a ) ( b )
第五章 设 备 管 理
5.4.4 独占设备的分配程序
1,基本的设备分配程序
1) 分配设备
2) 分配控制器
3) 分配通道第五章 设 备 管 理
2,设备分配程序的改进
1) 增加设备的独立性
2) 考虑多通路情况第五章 设 备 管 理
5.4.5 SPOOLing技术
1,什么是 SPOOLing
为了缓和 CPU的高速性与 I/O设备低速性间的矛盾而引入了脱机输入,脱机输出技术 。 该技术是利用专门的外围控制机,
将低速 I/O设备上的数据传送到高速磁盘上;或者相反 。 事实上,
当系统中引入了多道程序技术后,完全可以利用其中的一道程序,来模拟脱机输入时的外围控制机功能,把低速 I/O设备上的数据传送到高速磁盘上;再用另一道程序来模拟脱机输出时外围控制机的功能,把数据从磁盘传送到低速输出设备上 。 这样,
便可在主机的直接控制下,实现脱机输入,输出功能 。 此时的外围操作与 CPU对数据的处理同时进行,我们把这种在联机情况 下 实 现 的 同 时 外 围 操 作 称 为 SPOOLing(Simultaneaus
Periphernal Operating On-Line),或称为假脱机操作 。
第五章 设 备 管 理
2,SPOOLing系统的组成图 5-19 SPOOLing系统的组成输入进程 SP
i
输入进程 SP
o
输入缓冲区 B
i
输出缓冲区 B
o
输入井输出井磁盘输入设备输出设备第五章 设 备 管 理
3,共享打印机共享打印机技术已被广泛地用于多用户系统和局域网络中 。 当用户进程请求打印输出时,SPOOLing系统同意为它打印输出,但并不真正立即把打印机分配给该用户进程,
而只为它做两件事,① 由输出进程在输出井中为之申请一个空闲磁盘块区,并将要打印的数据送入其中; ② 输出进程再为用户进程申请一张空白的用户请求打印表,并将用户的打印要求填入其中,再将该表挂到请求打印队列上 。
第五章 设 备 管 理
4,SPOOLing系统的特点
(1) 提高了 I/O的速度。
(2) 将独占设备改造为共享设备。
(3) 实现了虚拟设备功能。
第五章 设 备 管 理
5.5 设 备 处 理
5.5.1 设备驱动程序的功能和特点
1,设备驱动程序的功能
(1) 接收由 I/O进程发来的命令和参数,并将命令中的抽象要求转换为具体要求,例如,将磁盘块号转换为磁盘的盘面,磁道号及扇区号 。
(2) 检查用户 I/O请求的合法性,了解 I/O设备的状态,传递有关参数,设置设备的工作方式 。
第五章 设 备 管 理
(3) 发出 I/O命令,如果设备空闲,便立即启动 I/O设备去完成指定的 I/O操作;如果设备处于忙碌状态,则将请求者的请求块挂在设备队列上等待 。
(4) 及时响应由控制器或通道发来的中断请求,并根据其中断类型调用相应的中断处理程序进行处理 。
(5) 对于设置有通道的计算机系统,驱动程序还应能够根据用户的 I/O请求,自动地构成通道程序 。
第五章 设 备 管 理
2,设备处理方式
(1) 为每一类设备设置一个进程,专门用于执行这类设备的 I/O操作,
(2) 在整个系统中设置一个 I/O进程,专门用于执行系统中所有各类设备的 I/O操作。
(3) 不设置专门的设备处理进程,而只为各类设备设置相应的设备处理程序 (模块 ),供用户进程或系统进程调用 。
第五章 设 备 管 理
3,设备驱动程序的特点
(1) 驱动程序主要是指在请求 I/O的进程与设备控制器之间的一个通信和转换程序。
(2) 驱动程序与设备控制器和 I/O设备的硬件特性紧密相关,
因而对不同类型的设备应配置不同的驱动程序 。
(3) 驱动程序与 I/O设备所采用的 I/O控制方式紧密相关 。
(4) 由于驱动程序与硬件紧密相关,因而其中的一部分必须用汇编语言书写 。
第五章 设 备 管 理
5.5.2 设备驱动程序的处理过程
1.
2,检查 I/O
3,读出和检查设备的状态
4,传送必要的参数
5,工作方式的设置
6,启动 I/O设备第五章 设 备 管 理图 5-20 中断现场保护示意图
P S W
程序状态字
P C ( N + 1)
程序计数器
R
0
R
n
寄存器
开始返回用户程序 中断服务子例程
P S W
P C ( N + 1)
中断栈
T
T + M
线指针
Y
N
N - 1
R
0
R
n
第五章 设 备 管 理唤醒被阻塞的驱动程序进程对被中断进程的
C P U 环境进行保护分析中断原因,转入相应的中断处理程序终端中断处理程序打印机中断处理程序磁盘中断处理程序
恢复被中断进程的 C P U 现场
返回被中断的进程,继续执行中断请求信号图
5-
21
中断处理流程第五章 设 备 管 理
5.6 磁盘存储器管理
5.6.1 磁盘性能简述
1,
G a p
1 0 2 0 3 1 29 2 29 3
F i e l d G a p F i e l d G a p G a p F i e l d G a p F i e l d G a p
17 7 41 5 1 5 20 17 7 41 5 1 5 20
ID D a t a ID D a t a
G a p
1 29 2 29 3
F i e l d G a p F i e l d
17 7 41 5 1 5 20
ID D a t a
S e c t o r P h y s i c a l S e c t o r 0 P h y s i c a l S e c t o r 1 P h y s i c a l S e c t o r 2 9
B y t e s
S y n c h
B y t e
T r a c k
#
H e a d
#
S e c t o r
#
B y t e s 1 2 1 1
C R C
3
S y n c h
B y t e
D a t a C R C
1 5 1 2 2
6 0 0 B y t e s / S e c t o r
G a p
图 5-22 磁盘的格式化第五章 设 备 管 理
2,磁盘的类型
1)
这种磁盘在每条磁道上都有一读 /写磁头,所有的磁头都被装在一刚性磁臂中 。 通过这些磁头可访问所有各磁道,并进行并行读 /写,有效地提高了磁盘的 I/O速度 。 这种结构的磁盘主要用于大容量磁盘上 。
2)
每一个盘面仅配有一个磁头,也被装入磁臂中 。 为能访问该盘面上的所有磁道,该磁头必须能移动以进行寻道 。 可见,移动磁头仅能以串行方式读 /写,致使其 I/O速度较慢;但由于其结构简单,故仍广泛应用于中小型磁盘设备中 。
第五章 设 备 管 理
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和旋转速度有关:
rN
bT
t?
其中,r为磁盘每秒钟的转数; N为一条磁道上的字节数,
当一次读 /写的字节数相当于半条磁道上的字节数时,Tt与
Tτ相同,因此,可将访问时间 Ta表示为:
rN
b
rTT sa 2
1
第五章 设 备 管 理
5.6.2 磁盘调度
1,先来先服务 FCFS(First-Come,First Served)

5-
23F
CF
S
调度算法第五章 设 备 管 理
2,最短寻道时间优先 SSTF(Shortest Seek Time First)
图 5-24 SSTF调度算法第五章 设 备 管 理
3,扫描 (SCAN)算法
1) 进程“饥饿”现象
SSTF算法虽然能获得较好的寻道性能,但却可能导致某个进程发生,饥饿,(Starvation)现象 。 因为只要不断有新进程的请求到达,且其所要访问的磁道与磁头当前所在磁道的距离较近,这种新进程的 I/O请求必须优先满足 。
对 SSTF算法略加修改后所形成的 SCAN算法,即可防止老进程出现,饥饿,现象 。
第五章 设 备 管 理
2) SCAN算法图
5-
25S
CA
N
调度算法示例第五章 设 备 管 理
4,循环扫描 (CSCAN)算法图
5-
26C
SC
AN
调度算法示例第五章 设 备 管 理
5,N-Step-SCAN和 FSCAN调度算法
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算法 。
第五章 设 备 管 理
2) FSCAN
FSCAN算法实质上是 N步 SCAN算法的简化,即
FSCAN只将磁盘请求队列分成两个子队列 。 一个是由当前所有请求磁盘 I/O的进程形成的队列,由磁盘调度按 SCAN
算法进行处理 。 在扫描期间,将新出现的所有请求磁盘 I/O
的进程,放入另一个等待处理的请求队列 。 这样,所有的新请求都将被推迟到下一次扫描时处理 。
第五章 设 备 管 理
5.6.3 磁盘高速缓存 (Disk Cache)
1,磁盘高速缓存的形式是指利用内存中的存储空间,来暂存从磁盘中读出的一系列盘块中的信息 。 因此,这里的高速缓存是一组在逻辑上属于磁盘,
而物理上是驻留在内存中的盘块 。 高速缓存在内存中可分成两种形式 。 第一种是在内存中开辟一个单独的存储空间来作为磁盘高速缓存,其大小是固定的,不会受应用程序多少的影响;第二种是把所有未利用的内存空间变为一个缓冲池,供请求分页系统和磁盘 I/O时 (作为磁盘高速缓存 )共享 。 此时高速缓存的大小,显然不再是固定的 。 当磁盘 I/O的频繁程度较高时,该缓冲池可能包含更多的内存空间;而在应用程序运行得较多时,该缓冲池可能只剩下较少的内存空间 。
第五章 设 备 管 理
2,数据交付方式系统可以采取两种方式,将数据交付给请求进程:
(1) 数据交付 。 这是直接将高速缓存中的数据,传送到请求者进程的内存工作区中 。
(2) 指针交付 。 只将指向高速缓存中某区域的指针,
交付给请求者进程 。
后一种方式由于所传送的数据量少,因而节省了数第五章 设 备 管 理
3,置换算法由于请求调页中的联想存储器与高速缓存 (磁盘 I/O中 )
的工作情况不同,因而使得在置换算法中所应考虑的问题也有所差异 。 因此,现在不少系统在设计其高速缓存的置换算法时,除了考虑到最近最久未使用这一原则外,还考
(1) 访问频率。
(2) 可预见性。
(3) 数据的一致性。
第五章 设 备 管 理
4,周期性地写回磁盘在 UNIX系统中专门增设了一个修改 (update)程序,使之在后台运行,该程序周期性地调用一个系统调用 SYNC。 该调用的主要功能是强制性地将所有在高速缓存中已修改的盘块数据写回磁盘 。 一般是把两次调用 SYNC的时间间隔定为 30 s。 这样,因系统故障所造成的工作损失不会超过 30 s
的劳动量 。 而在 MS-DOS中所采用的方法是:只要高速缓存中的某盘块数据被修改,便立即将它写回磁盘,并将这种高速缓存称为,写穿透,高速缓存,(write-through cache)。
MS-DOS所采用的写回方式,几乎不会造成数据的丢失,
但须频繁地启动磁盘 。
第五章 设 备 管 理
5.6.4 提高磁盘 I/O速度的其它方法
1,提前读 (Read-Ahead)
2,延迟写
3,优化物理块的分布
4,虚拟盘第五章 设 备 管 理
5.6.5 廉价磁盘冗余阵列
1,并行交叉存取图 5-27 磁盘并行交叉存取方式
1 2 3

N
第五章 设 备 管 理
2,RAID
(1) RAID 0级。
(2) RAID 1级。
(3) RAID 3级。
(4) RAID 5级。
(5) RAID 6级和 RAID 7级。
第五章 设 备 管 理
3,RAID的优点
(1) 可靠性高。
(2) 磁盘 I/O速度高。
(3) 性能 /价格比高。