46
第第第 第第第 第第第 第第第 I/O I/O 第第 第第 设设设设设设 设设设设设设设 IO 设设设 设设设 设设设 设设设 (、、、 DMA 设设设设设设设 设设设设 设设设设 设设设设 设设设设

第八章 设备与 I/O 管理

  • Upload
    gilon

  • View
    142

  • Download
    10

Embed Size (px)

DESCRIPTION

第八章 设备与 I/O 管理. 设备及其分类 设备的物理特性 IO 传输方式(查询、中断、通道、 DMA ) 设备分配与去配 设备驱动 设备调度 缓冲技术 虚拟设备. 8.1 设备及其分类. 用途 存储型设备 磁盘,磁带,光盘 IO 型设备 扫描仪,打印机, mouse , keyboard , monitor ,网卡, etc. 管理 共享型设备(块型) 多个进程的 IO 操作以块为单位可以交叉 独占型设备(块型) 多个进程的 IO 操作以块为单位不宜交叉 独占型设备(字符型) 多个进程的 IO 操作以字符为单位不能交叉. 间隙. - PowerPoint PPT Presentation

Citation preview

Page 1: 第八章  设备与 I/O 管理

第八章 设备与第八章 设备与 I/OI/O 管理管理设备及其分类设备的物理特性IO 传输方式(查询、中断、通道、 DMA )设备分配与去配设备驱动设备调度缓冲技术虚拟设备

Page 2: 第八章  设备与 I/O 管理

8.1 8.1 设备及其分类设备及其分类 用途

– 存储型设备 磁盘,磁带,光盘

– IO 型设备 扫描仪,打印机, mouse , keyboard , monitor ,网卡,

etc.

管理– 共享型设备(块型)

多个进程的 IO 操作以块为单位可以交叉– 独占型设备(块型)

多个进程的 IO 操作以块为单位不宜交叉– 独占型设备(字符型)

多个进程的 IO 操作以字符为单位不能交叉

Page 3: 第八章  设备与 I/O 管理

IO 设备的物理特性传输一字节发生一次中断存储设备的物理特性磁带的物理特性

头标 信息块 信息块 信息块 …………… . 尾标间隙

操作:反绕,正向查找,反向查找,读,写,…地址:一维文件:顺序结构(一个文件占若干连续块)

8.2 8.2 设备的物理特性设备的物理特性

Page 4: 第八章  设备与 I/O 管理

...

磁盘组的物理特性

...

...… …

盘面 0

盘面 1

盘面 2

盘面 m-1

扇区 n-1扇区 0

扇区 1

柱面 0柱面 l-1

...

引臂

Page 5: 第八章  设备与 I/O 管理

柱面号 i

盘面号 j

扇区号k

块号 b (一维地址)(三维地址)编址方法:使相邻块物理上最近例子: l=2; m=3; n=3

柱面号: 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1

盘面号: 0 0 0 1 1 1 2 2 2 0 0 0 1 1 1 2 2 2

扇区号: 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2

块 号: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

Page 6: 第八章  设备与 I/O 管理

三维地址一维地址: b=imn+jn+k

一维地址三维地址: i=b(mn)

j=b mod (mn) n

k=b mod (mn) mod n

Page 7: 第八章  设备与 I/O 管理

未考虑读写延迟的扇区编号:

扇区0

扇区7

扇区6

扇区5

扇区4

扇区3

扇区2

扇区1

Page 8: 第八章  设备与 I/O 管理

扇区0

扇区7

扇区3

扇区6

扇区2

扇区5

扇区1

扇区4

考虑读写延迟的扇区编号 ( 单交错 ) :

Page 9: 第八章  设备与 I/O 管理

扇区0

扇区5

扇区2

扇区7

扇区4

扇区1

扇区6

扇区3

考虑读写延迟的扇区编号 ( 双交错 ) :

Page 10: 第八章  设备与 I/O 管理

8.3 I/O 8.3 I/O 传输方式传输方式程序查询方式 (programmed IO)

CPU and Device can not work in parallel 中断方式 (interrupt)

CPU and device can work in parallel, too many interrupts for CPU

通道方式 (channel)special processor for dealing with io operations

直接内存方式 (DMA)DMA controller in charge of block io

Page 11: 第八章  设备与 I/O 管理

8.3.1 8.3.1 程序控制查询方式程序控制查询方式CPU 启动设备

完成F T

缺点 :

处理机与设备串行工作 ;

消耗大量处理机时间 .

Page 12: 第八章  设备与 I/O 管理

8.3.2 8.3.2 中断驱动方式中断驱动方式CPU

– 计算– 启动设备– 计算– …– 计算– 中断处理– 计算

设备 :

工作

特点 : CPU 与设备并行工作 设备多时对 CPU 打扰多

Page 13: 第八章  设备与 I/O 管理

8.3.3 DMA8.3.3 DMA 方式方式

③ 数据传输

CPU

DMA控制器 内存地 址计 数控 制

缓冲

磁盘

⑤ 中断 ② DMA 请求

总线

磁盘控制器

④ 回答 ① DMA 编程

Page 14: 第八章  设备与 I/O 管理

8.3.4 8.3.4 通道方式通道方式通道

– 负责 IO 操作的处理机 指令系统

– 基本操作:读、写、控制、转移、结束– 指令格式:(操作码,传输量,特征位,地址)

运控部件– CAW , CCW , CSW , CDW

存储区域(与 CPU 共用内存 , 通道内有缓冲区)– 通道程序, IO 数据( channel does have its buffers )

Page 15: 第八章  设备与 I/O 管理

通道程序执行过程:按 CAW 取通道命令 CCW

( CAW ) +1 CAW

是通道结束命令执行此命令

F

向 CPU 发中断一个通道程序可以控制若干设备进行多次 IO 传输。

T

Page 16: 第八章  设备与 I/O 管理

通道类型 :

1. 字节多路通道 (byte multiplexer channel)

多个非分配型子通道,连接低速外围设备 2. 数组选择通道 (block selector channel)

一个分配型子通道,连接多台高速设备 3. 数组多路通道 (block multiplexer channel)

多个非分配型子通道,连接多台高速设备

Page 17: 第八章  设备与 I/O 管理

设备、通道、内存连接设备、通道、内存连接

选择通道

磁盘

字节多路通道

打印机输入机

内存储器处理机

磁带

数组多路通道

Page 18: 第八章  设备与 I/O 管理

8.4 8.4 设备的分配与去配设备的分配与去配独占型设备的分配与去配

– 块型独占– 字符型独占

共享型设备的分配与去配– 块型共享

Page 19: 第八章  设备与 I/O 管理

数据结构设备控制块 (UCB) 通道控制块 (CCB)

设备标识设备状态占有设备进程通道标识通道状态通道类型占有通道进程

系统设备表 (SDT)

设备类 总数 设备等待队列 UCB 表指针… … … …

lp m Sm … … … …

UCB

UCB

…UCB

Page 20: 第八章  设备与 I/O 管理

独占型设备的分配与去配用户使用独占型设备活动: 申请,使用,使用,…,使用,释放

申请: (1) 根据设备类查 SDT 表 (2) P(Sm)

(3) 查 UCB 表找一空闲设备并分配 使用: (1) IO 传输 释放: (1) 找 SDT 表对应入口 (2) 查 UCB 表,去配 (3) V(Sm)

Page 21: 第八章  设备与 I/O 管理

8.4 8.4 设备的分配与去配设备的分配与去配共享型设备的分配与去配

– 用户使用共享型设备活动– 使用,使用,…,使用

– 特征– 来自文件系统;– 每次读(写)一块;– 通常经过缓冲;– 排队优化。

Page 22: 第八章  设备与 I/O 管理

8.5 8.5 设备驱动设备驱动通道程序

– CCW 指令序列– 静态编制或动态生成

设备启动– 通道启动

中断处理– 通道向 CPU 发的中断

Page 23: 第八章  设备与 I/O 管理

8.5 设备驱动

设备CAWCCWCDWCSW

CCW1CCW2…CCWi...CCWn

数据区

...形成通道程序...地址 CAW...启动通道...中断处理...

启动

中断

内存CPU通道

Page 24: 第八章  设备与 I/O 管理

8.6 8.6 设备调度设备调度优化服务顺序考虑因素

– 公平性 防止饿死

– 高效性 减少磁盘引臂移动量

Page 25: 第八章  设备与 I/O 管理

磁盘引臂调度磁盘引臂调度 (disk head scheduling)(disk head scheduling)

先到先服务( FCFS )– 请求序列: 130 , 42 , 180 , 15 , 108 , 68 , 97

0 15 42 53 68 97 108 130 180 199

移动量 : (130-53)+(130-42)+(180-42)+(180-15)+(108-15)+(108-68)+(97-68)=630

Page 26: 第八章  设备与 I/O 管理

磁盘引臂调度磁盘引臂调度 (disk head scheduling)(disk head scheduling)

最短寻找时间优先( SSTF )– 请求序列: 130 , 42 , 180 , 15 , 108 , 68 , 97

0 15 42 53 68 97 108 130 180 199

移动量 : (53-42)+(180-42)+(180-15)=314

Page 27: 第八章  设备与 I/O 管理

磁盘引臂调度磁盘引臂调度 (disk head scheduling)(disk head scheduling)

SCAN ( LOOK )– 请求序列: 130 , 42 , 180 , 15 , 108 , 68 , 9

7

SCAN 移动量 : (53-0)+(180-0)=233

LOOK 移动量 : (53-15)+(180-15)=203

0 15 42 53 68 97 108 130 180 199

Look Scan

Page 28: 第八章  设备与 I/O 管理

磁盘引臂调度磁盘引臂调度 (disk head scheduling)(disk head scheduling)

C-SCAN ( C-LOOK )– 请求序列: 130 , 42 , 180 , 15 , 108 , 68 , 9

7

特点:所有磁道地位最长等待时间相同

0 15 42 53 68 97 108 130 180 199

C-Look C-Scan

Page 29: 第八章  设备与 I/O 管理

8.7 8.7 缓冲技术缓冲技术 处理数据到达与离开速度不一致所采用的技术。

– 硬缓冲与软缓冲 硬缓冲区通常设在设备中 软缓冲区通常设在内存系统空间中

– 私用缓冲与公共缓冲 一个缓冲区与一个固定设备相联系,不同设备使用不同的缓冲区

– 利用率低 缓冲区由系统统一管理,按需要动态与分派给正在进行 I/O 传输的设备

Page 30: 第八章  设备与 I/O 管理

空缓冲 空缓冲 空缓冲...head

共 n个Var buf_num:semaphore; (init n) mutex:semaphore; (init 1)1. 申请 2. 释放(1) P(buf_num) P(mutex)(2) P(mutex) 空缓冲入链头(3) 取链头空缓冲 V(mutex)(4) V(mutex) V(buf_num)

缓冲池管理

Page 31: 第八章  设备与 I/O 管理

8.7.5 缓冲技术实现:输入设备

进程空间缓冲

输入设备缓冲

缓冲...

io 链

Page 32: 第八章  设备与 I/O 管理

进程方面: 中断方面:IO 链空设备忙

申请空缓冲启动设备

等待由 io 链取一缓冲信息进程空间

释放空缓冲

缓冲入 io 链有等待进程

唤醒传输完毕

申请空缓冲启动设备

FT

FTF T

T F

Page 33: 第八章  设备与 I/O 管理

8.7.5 缓冲技术实现:输出设备

进程空间缓冲

输出设备缓冲

缓冲...

io 链

Page 34: 第八章  设备与 I/O 管理

进程方面: 中断方面:

申请一空缓冲信息缓冲

设备忙启动设备 缓冲入 io链

传输完

TF

F T

释放空缓冲io 链空

取一缓冲启动设备

TF

Page 35: 第八章  设备与 I/O 管理

8.7.5 输入输出设备:( 磁带、磁盘 )

缓冲区头

缓冲区体

设备块号IO 标识等待进程

块型缓冲区: 进程空间

缓冲IO 设备缓冲

缓冲...

io 链

Page 36: 第八章  设备与 I/O 管理

进程方面 ( 输入 ) : 进程方面 ( 输出 ) : 中断方面:申请空缓冲

填写头部设备工作

入 io 链尾启动设备

信息进程释放缓冲

申请空缓冲填写头部

信息缓冲设备工作

启动设备 入 io链

输入唤醒等待者

释放空缓冲io 链空

取一缓冲启动设备

FT

FTTF

F T

等待

Page 37: 第八章  设备与 I/O 管理

8.10 8.10 虚拟设备虚拟设备 概念

– 利用共享型设备实现的数量较多、速度较快的独占型设备 引入

– 用户直接使用独占型设备效率低 实现

– 输入型虚拟设备– 输出型虚拟设备– 虚拟设备的例子

SPOOLing 输入 SPOOLing 输出

Page 38: 第八章  设备与 I/O 管理

8.7.1 8.7.1 虚拟设备引入虚拟设备引入用户使用独占型设备活动:

– 申请,使用,使用,…,使用,释放

缺点:– 速度: CPU 与设备速度不匹配– 设备利用率:占有期间不一定一直使用

进程独占此设备

Page 39: 第八章  设备与 I/O 管理

方法:– 在进程与独占型设备之间增加共享设备缓冲

虚拟设备 虚拟设备虚拟设备 虚拟设备

进程 独占设备

共享设备(如磁盘)

间断传输 连续传输…

Page 40: 第八章  设备与 I/O 管理

8.10.2 8.10.2 虚拟设备的实现虚拟设备的实现输入型虚拟设备的实现

– 申请: 分配一虚设备 分配一实设备 信息由实设备虚设备 去配该实设备

– 使用: 信息由虚设备进程空间

– 释放: 去配虚设备

Page 41: 第八章  设备与 I/O 管理

输出型虚拟设备的实现– 申请:

分配一虚设备– 使用:

信息由进程空间虚设备– 释放:

分配一实设备 信息由虚设备实设备 去配实设备 去配虚设备

8.10.2 8.10.2 虚拟设备的实现虚拟设备的实现

Page 42: 第八章  设备与 I/O 管理

8.10.3 8.10.3 虚拟设备的例子虚拟设备的例子SPOOLing 输入

– 作业预输入(输入机输入井)SPOOLing 输出

– 作业缓输出(输出井输出机)SPOOLing

– Simultaneous Peripheral Operation On-Line– 由 SPOOLing 程序控制通道完成

Page 43: 第八章  设备与 I/O 管理

... ...job11

job1m

...

输入井

预输入进程输入机

输入机预输入进程

通道

通道

内存

...

SPOOLing 输入程序( 1 ) vs. SPOOLing 输入进程( n )

Page 44: 第八章  设备与 I/O 管理

有待输入作业

有空闲作业表等待

等待取一“空闲”作业表为 JCB作业状态改为“提交”申请输入井空间

作业内容输入井填写 JCB

作业状态改为“后备”作业调度 1 等待 “后备”作业唤醒

SPOOLing 输入程序

F T

F T

FT

Page 45: 第八章  设备与 I/O 管理

... ...通道

通道

job11

job1n

...

输出井

缓输出进程

缓输出进程

内存

输出机

输出机

SPOOLing 输出程序( 1 ) vs. SPOOLing 输出进程( n )

Page 46: 第八章  设备与 I/O 管理

输出作业结果释放输出井空间状态改为“空闲”有等空闲 JCB 的预输入进程唤醒一个

输出井有“完成”作业取一“完成”作业状态改为“退出”

等待

SPOOLing 输出程序

F

T

T

F