Upload
jewel
View
95
Download
0
Embed Size (px)
DESCRIPTION
第 4 单元 设备管理. 设备特点各异,如何管? 用户如何使用设备?. 输入∕输出管理 —— 设备管理概述. 2. 设备管理的目标 提高设备利用率 合理分配设备 提高设备与 CPU 、各外部设备之间的并行性 方便用户的使用 提供使用方便且独立于设备的界面 统一:对各种不同的设备提供一致的界面 独立于设备:用户使用的设备与物理设备无关. 3. 内核. 软件. 内核 I / O 子系统. SCSI 设备驱动器. 鼠标 设备驱动器. 软盘 设备驱动器. 键盘 设备驱动器. PCI 总线 设备驱动器. …. 键盘 设备控制器. - PowerPoint PPT Presentation
Citation preview
第 4 单元 设备管理 设备特点各异,如何管? 用户如何使用设备?
2
3
2. 设备管理的目标 提高设备利用率
合理分配设备 提高设备与 CPU 、各外部设备之间的并行性
方便用户的使用 提供使用方便且独立于设备的界面
统一:对各种不同的设备提供一致的界面 独立于设备:用户使用的设备与物理设备无关
输入∕输出管理——设备管理概述
3
37
2. I/O 子系统
输入∕输出管理——设备控制
内核
内核 I/O 子系统
SCSI设备驱动器
键盘设备驱动器
鼠标设备驱动器
PCI 总线设备驱动器
软盘设备驱动器 …
SCSI设备控制器
键盘设备控制器
鼠标设备控制器
PCI 总线设备控制器
软盘设备控制器 …
SCSI设备
键盘 鼠标 PCI总线
软盘驱动器 …
软件
硬件
4
42
I/O 接口程序 (I/O 过程 )
将逻辑设备转换为物理设备 获得 I/O 系统调用中给出的逻辑设备名 (ldev)
根据逻辑设备描述器,将逻辑设备名转换为物理设备名
合法性检查 获得 I/O 系统调用中给出的操作模式 mode
根据 DCB 中命令转换表中允许的操作,检查操作的合法性
形成 I/O 请求块,发消息给对应的设备处理进程 根据请求的参数形成 I/O 请求块 (IORB)
将 I/O 请求块 (IORB) 挂到对应的设备请求队列
输入∕输出管理——设备控制
5
39
设备处理 ( 驱动 ) 程序 设备处理程序是能直接控制设备运转的程序,它根据各类
设备的特点和性能来编写。每一类设备有一个相应的设备处理程序,能控制同类中多台物理设备同时工作。
输入∕输出管理——设备控制
设备驱动程序层的作用是为内核 I/O 子系统隐藏设备控制器之间的差异。将 I/O 子系统与硬件分离,简化了操作系统开发人员的任务,也有利于设备的设计与制造。
I/0 过程中各层工作分工
6
输入
控制器寄存器组
用户数据区缓冲区相关层 无关层
输出
控制器寄存器组
用户数据区缓冲区相关层 无关层
7
图 5-16 I/O 系统的层次及功能
Óû§²ãÈí¼þ
É豸¶ÀÁ¢ÐÔÈí¼þ
É豸Çý¶¯³ÌÐò
Öжϴ¦Àí³ÌÐò
Ó²¼þ
I/OÓ¦´ð
²úÉúI/OÇëÇ󡢸ñʽ»¯I/O¡¢Spooling
Ó³Éä¡¢±£»¤¡¢·Ö¿é¡¢»º³å¡¢·ÖÅä
ÉèÖÃÉ豸¼Ä´æÆ÷£¬¼ì²é¼Ä´æÆ÷״̬
Ö´ÐÐI/O²Ù×÷
相关
层
无关
层
操作系统设备管理功能的内部结构设计一般是基于分层的思想,因此,通常将 I/O 软件组织成四个层次:用户应用层软件、中断处理程序、独立于设备的软件和设备驱动程序。采用分层思想的主要目的是 _(1)__ 。当用户进程提出 T/O 请求访问硬件时:需要按“ __(2)__ ” 的层次结构进行。(1)
A .便于即插即用 B .减少系统占用的空间C .便于系统修改、扩充和移植 D .提高处理速度
(2)A .进程请求 I/O 一独立于设备的软件一中断处理程序一设备驱动程序一硬件 B .进程请求 I/O 一独立于设备的软件—设备驱动程序一中断处理程序一硬件 C .进程请求 I/O 一设备驱动程序一中断处理程序一独立于设备的软件一硬件 D .进程请求 I/O 一设备驱动程序一独立于设备的软件一中断处理程序一硬件
8
9
4
3. 设备管理功能 状态跟踪
动态地记录各种设备的状态 设备分配与回收
作业级——静态分配 作业进入系统时进行分配,退出系统时收回全部资源。 进程级——动态分配
进程提出设备申请时进行分配,使用完毕后立即收回。 设备控制
实施设备驱动和中断处理的工作
输入∕输出管理——设备管理概述
设备控制块 什么是设备控制块 (DCB )
系统为每一台设备都配置了一个用来记录设备的硬件特性、连接和使用情况的一组数据,称为设备控制块。
11
9
设备控制块的内容
设备名
设备属性
指向命令转换表的指针
在 I/O 总线上的设备地址
设备状态
当前用户进程指针
I/O 请求队列指针
设备名设备的系统名,即设备的物理名。
设备属性是描述设备现行状态的一组属性
命令转换表 转换表包含设备特定的 I/O 例程地 址,不具备相应功能的设备在其 例程地址上可以填“- 1”
输入∕输出管理——设备管理概述
12
13
设备分类 存储设备
又称块设备,是存储信息的设备,如:磁盘、磁鼓。 ( 以块为单位传输信息 )
输入输出设备 又称字符设备,能将信息从计算机外部输入到机内, 或反之,如:键盘、显示器、打印、调制解调器、网
卡等
输入∕输出管理——设备管理概述
14
I/O 子系统与驱动交互方式 以设备处理进程的方式
将设备与文件一样对待
输入∕输出管理——设备控制
以设备处理进程的方式
为每一类设备设置一个设备处理进程 ( 对应的程序就是设备处理程序 ) ;
当有 I/O 请求来到时,该进程被唤醒,进行设备驱动工作;
当没有 I/O 请求时,该进程睡眠。由 I/O 控制模块的接口程序负责解释用户的 I/O 系统调用,将其转
换成 I/O 控制模块认识的命令形式后,将 I/O 请求发给对应的设备 处理进程。
15
16
请求 I/O 的进程、 I/O 过程、设备处理进程、中断处理程序之间的同步关系
输入∕输出管理——设备控制
中断处理程序
doio(ldev,mode,
amount,addr);
/* 等 I/O 完成*/
标识设备;执行出错检查;构成 iocb;
将 iocb 送入设备请求队列;唤醒因等待 I/O 请求块而睡眠的 I/O
进程;
取 iocb;
如无 iocb 则等待;启动 I/O 操作;/* 等 I/O 完成 */
执行出错检查;
唤醒等待 I/O 的进程;
I/O 设备
中断服务; 唤醒 I/O 处理进程;
用户进程 I/O 子系统 I/O 驱动进程启动设备
中断信号
控制关系
同步关系
17
3. 输入 / 输出控制的例 用户进程请求 I/O 的系统功能调用 系统功能调用的形式为: doio(ldev,mode,amount,addr);
ldev :逻辑设备名 mode :操作模式 amount :传输数据的数目 addr :传送地址
输入∕输出管理——设备控制
18
I/O 接口程序的描述 算法 doio
输入:设备的逻辑名 ldev
操作类型 mode
传送数据数目 amount
传数数据地址 addr
输出:如果传送出错,则带错误码返回,否则正确返回
输入∕输出管理——设备控制
19
{ while ( 该进程的逻辑设备描述器队列不空 )
{
if ( 与 ldev 相联结的物理设备找到 )
break ; / * 找到 * /
}
if ( 该进程的逻辑设备描述器队列为空 )
return( 错误码 ) ; / * 设备逻辑名错 * /
检查参数与该设备特性是否一致 ;
if ( 不一致 )
return ( 错误码 ) ; / * 传送参数错 * /
构造 iorb ; 把 iorb 插入到该设备的请求队列中; 唤醒因等待 I/O 请求块而睡眠的进程; }
输入∕输出管理——设备控制
20
设备处理进程 process io
{ l : while ( 设备请求队列不空 )
{ 取一个 iorb ; 提取请求的详细信息; 启动 I/O 操作; sleep ( 事件: I/O 完成 ) / * I/O 操作 * /
/ * 等 I/O 完成后,进入中断处理程序,并在那里唤醒设备处理进程 * /
if ( 出错 ) 将错误信息写在该设备的 dcb 中; 传送数据到目的地; 唤醒请求此 I/O 操作的进程; 删除 iorb ; }
sleep ( 事件:因无 I/O 请求 ) ; goto l ; }
输入∕输出管理——设备控制
21
I/O 子系统与驱动交互方式 以设备处理进程的方式
将设备与文件一样对待
输入∕输出管理——设备控制
设备当文件处理
• 将设备与文件一样对待,使用文件系统的系统调用命令进行设备的读、写。
22
打开设备
• 与文件系统统一: open(“/dev/pt”)• FCB( 存放文件属性信息的数据结构 ) 中设置标志位来
区分是设备或文件• 打开一个设备文件,得到该文件的 FCB ,不过同普
通文件的 FCB 不同,包含内容• 主设备号:索引设备开关表• 次设备号:作为参数传递给设备驱动程序
23
24
写设备
25
I/0 过程中各层工作分工
26
输入
控制器寄存器组
用户数据区缓冲区相关层 无关层
输出
控制器寄存器组
用户数据区缓冲区相关层 无关层
读设备
27
28
I/0 过程中各层工作分工
29
输入
控制器寄存器组
用户数据区缓冲区相关层 无关层
输出
控制器寄存器组
用户数据区缓冲区相关层 无关层
讨论 缓冲 分配
31
1. 缓冲概念 什么是缓冲 缓冲是两种不同速度的设备之间传输信息时平滑传输过程 的常用手段。 缓冲类别
缓冲器 缓冲器是用来暂时存放数据的一种存储装置,它容量 较小,存取速度快。
软件缓冲 在 I/O 操作期间用来临时存放 I/O 数据的一块存储区域。
输入∕输出管理——缓冲技术
32
为什么要引入缓冲 处理数据流的生产者与消费者间的速度差异
如:从调制解调器收到一个文件,并保存到硬盘上。 协调传输数据大小不一致的设备
如:在计算机网络中用来处理消息的分段和重组。 应用程序的拷贝语义
如:操作系统为保证系统调用 write 的正确语义 ( 应用程
序要写入磁盘的数据就是 write 系统调用发生时的版本 ) 。
方法:在系统调用返回前将应用程序缓冲区复制到内
核缓冲区。对于磁盘缓冲而言还有另外的好处
输入∕输出管理——缓冲技术
33
UNIX 缓冲管理算法 缓冲读、写示意图
缓冲读
高速缓冲
用户数据区
用户进程磁盘
预先缓存
缓冲写
高速缓冲
用户数据区
用户进程
磁盘
延迟发送
输入∕输出管理——缓冲技术
. 常用的缓冲技术 双缓冲、环形缓冲、缓冲池
35
2. 利用缓冲技术如何进行 I/O 操作 进程活动期间,请求从某字符设备读入数据
进程请求从输入设备进行读操作的图示
输入∕输出管理——缓冲技术
输入设备
BUF
进程
①
②
③
②与③需要同步
36
进程活动期间,请求从输出设备输出数据 进程请求从输出设备进行写操作的图示
输入∕输出管理——缓冲技术
②与③需要同步
①
② ③
输出设备
BUF
进程
37
输入数据时,如何利用双缓冲
输入∕输出管理——缓冲技术
输入设备
BUF1
进程
① ②
③
BUF2
②
③
38
输出数据时,如何利用双缓冲
输入∕输出管理——缓冲技术
输出设备
BUF1
进程
①
②
③
BUF2
②
③
39
19
缓冲区既用于输入,也用于输出数据时,如何利用双缓冲
输入∕输出管理——缓冲技术
输入设备
BUF1
①②③
BUF2
②
③
输出设备
输入∕输出管理——缓冲技术
4. UNIX 系统的缓冲区管理 UNIX 系统缓冲管理的目的
加快系统响应、增强系统吞吐量 减少对磁盘的 I/O 操作次数
UNIX 系统缓冲管理的思路 当进程要从磁盘读数据时,首先考虑从高速缓冲中读 预先缓存 当进程要写数据到磁盘时,先写入高速缓冲中 延迟发送
UNIX 缓冲管理算法 缓冲读、写示意图
缓冲读
高速缓冲
用户数据区
用户进程磁盘
预先缓存
缓冲写
高速缓冲
用户数据区
用户进程
磁盘
延迟发送
输入∕输出管理——缓冲技术
缓冲管理数据结构 缓冲区的组成
缓存数组 —— 含有磁盘上的数据的存储器数组 缓存首部 —— 描述缓冲区特性的数据结构
缓存首部结构
输入∕输出管理——缓冲技术
缓存首部结构设备号 dev
块号 blkno
状态 flag
指向数据区域的指针传送字节数返回的 I/O 出错信息b_forw 设备缓冲区队列前向指针b_back 设备缓冲区队列后向指针av_forw 空闲缓冲区队列前向指针 av_back 空闲缓冲区队列后向指针
设备号 dev 缓冲区所包含的信息所属设备的设备号
块号 blkno 由设备号指出的设备上相对于第 0 块的块
号 状态 flag—— 描述了缓冲区当前的状态
忙标志 BUSY :缓冲区当前正“忙” 有效位 AVE :缓冲包含的数据有效 延迟写 DELWR :核心在某缓冲区重新分
配出去之前必须把缓冲区内容写到磁盘上 写标志 WRITE : 核心当前正把缓冲区的内
容写到磁盘 读标志 READ :核心当前正从磁盘往缓冲
区写信息 等待位 WAIT : 一个进程当前正在等候缓
冲区变为空闲
输入∕输出管理——缓冲技术
44
23
缓冲区队列结构 设备缓冲区队列 与某类设备有关的所有缓冲区组成的队列称为设备缓冲
区队列,简称 b链。 空闲缓冲区队列 可供重新分配使用的缓冲区组成的队列称为空闲缓冲区
队列,简称 av链。
av_forw
av_backav_forw
av_back
av_forw
av_back
av_forw
av_back
空闲缓冲区队列
输入∕输出管理——缓冲技术
45
24
缓冲区队列指针 b 链指针
b_forw :指向设备缓冲区队列上的下一个缓冲区的指针 b_back : 指向设备缓冲区队列上的上一个缓冲区的指针
av 链指针 av_forw :指向空闲缓冲区队列上的下一个缓冲区的指针 av_back : 指向空闲缓冲区队列上的上一个缓冲区的指针
b_forw
b_back b_forw
b_back
b_forw
b_back
b_forw
b_back
设备缓冲区队列
输入∕输出管理——缓冲技术
46
26
UNIX 缓冲管理算法 缓冲管理算法
一个 buf 被分配用于读 / 写某设备上的块时 置 B_ BUSY=1 ,位于 b链上,不在 av链上;
当读 / 写操作结束时 释放该 buf ,置 B_BUSY=0 ,仍留在 b链上,并送
入 av链尾;
若进程需要的信息在 buf 中时 在该设备的 b链上找到,置 B_BUSY=1;从 av链
上摘 除,使用完后,又送入 av链,链入队尾。
输入∕输出管理——缓冲技术
47
27
对空闲 buf 空队列的处理 当需要一个空闲 buf 时,总是取空闲 buf 队列 (av 链 )
的 首元素; 一个使用过的 buf释放时,插入到空闲 buf 队列 (av
链 )
的队尾。 实现了精确的最久未使用淘汰算法 (LRU 算法 )
对延迟写的处理 当一个具有延迟写标记的 buf 移到 av链头,要用于
分 配时,立即进行写操作。从 av链上摘除,使用完后 又送入 av头部。
输入∕输出管理——缓冲技术
讨论 缓冲 分配
28
1. 独享分配 常用的设备分配技术:独享分配、共享分配和虚拟分配 • 独享设备– 让一个作业在整个运行期间独占使用的设备。– 特点
• 临界资源• 费时的 I/O 操作或需人工干预
• 独享分配 在一个作业执行前,将它所要使用的设备分配给它;当它
结束撤离时,将分配给它的这类设备收回。
输入∕输出管理——设备分配
29
2. 共享分配 • 共享设备– 由多个作业、进程共同使用的设备称为共享设备。– 特点
• 旋转设备,可直接或随机访问• 便于共享,转接简单,耗费较少 +
输入∕输出管理——设备分配
51
30
3. 虚拟分配 虚拟技术 所谓虚拟技术,是在一类物理设备上模拟另一类物理设备
的技术,是将独占设备转化为共享设备的技术。 虚拟设备 通常把用来代替独占型设备的那部分外存空间 (包括有关
的控制表格 ) 称为虚拟设备。
输入∕输出管理——设备分配
52
31
虚拟分配 当进程需要与独占型设备交换信息时,系统将分配磁盘空
间,并建立相应的数据结构,这种分配方法称为设备的虚拟分配。
输入∕输出管理——设备分配
虚宽行 1
虚宽行 2
进程 A
进程 B
进程 C
进程 D
输入井
输出井
输入机
打印机
虚输入机 1
虚输入机 2
53
32
4. SPOOLING 系统 SPOOLING 系统提供外围设备同时联机操作的功能。 设计思想
预输入 在作业需要数据前, OS已将所需数据预先输入到辅存输入井存放。 当作业 ( 或进程 ) 需要数据时,可直接从辅存中读入主存。
缓输出 在在作业执行时,将输出数据写入辅存输出井中。当作业 ( 或进
程 )
执行完毕 ( 或需要数据时 ) ,由操作系统将数据输出。
输入∕输出管理——设备分配
54
33
什么是 SPOOLING 系统利用通道和中断技术,在主机控制之下,由通道完成输入输出工作。系统提供一个软件系统 ( 包括预输入程序、缓输出程序、井管理程序、预输入表、缓输出表 ) 。它提供输入收存和输出发送的功能,使外部设备可以并行操作。这一软件系统称为 SPOOLING 系统。
SPOOLING 系统的优点 提供虚拟设备 外围设备同时联机操作 加快作业处理速度
输入∕输出管理——设备分配
55
34
实现 SPOOLING 系统的基础 大容量的辅存空间
在辅存上需开辟两个较大的输入井和输出井,用以存放多作业的 输入信息和输出信息。
硬件基础 通道装置、中断系统
数据结构预输入表、缓输出表:描述辅存输入井和输出井的状态变化。
如: 输入信息从哪台设备输入,存放在辅存输入井什么位置; 输出信息存放在辅存输出井什么位置,从哪台输出设备输出。
输入∕输出管理——设备分配
56
35
所需的软件程序 输入程序 控制信息从独占设备输入到辅存 缓输出程序 控制信息从辅存输出到独占设备 井管理程序
控制用户程序和辅存之间的信息交换
输入∕输出管理——设备分配
输入机 1
输入机 2
作业 1
作业 2
打印机
磁盘输入井 磁盘输出井主存
57
5
4. 设备独立性 设备独立性概念
什么是设备独立性所谓设备独立性是指,用户在编制程序时所使用的设备与实际使
用的设备无关,也就是在用户程序中仅使用逻辑设备名。
逻辑设备名 逻辑设备名,是用户自己指定的设备名 ( 或设备号 ) ,它是暂时
的、可更改的。
物理设备名 物理设备名,是系统提供的设备的标准名称,它是永久的、不可 更改的。
输入∕输出管理——设备管理概述
58
6
两种类型的设备独立性 一个程序独立于分配给它的某种类型的具体设备
系统可以根据设备的使用情况,动态地分配给程序某 类设备中的任一台物理设备,程序都能正确地执行。 程序应尽可能与它所使用的 I/O 设备类型无关 在输入 ( 或输出 ) 信息时,信息可以从不同类型的输入 ( 或输出 ) 设备上输入 ( 或输出 ) ,若要改变输入 ( 或输
出 )
设备的类型,程序只需进行最少的修改。
输入∕输出管理——设备管理概述
59
7
设备独立性的实现 标准设备 逻辑名
输入∕输出管理——设备管理概述
60
8
设备独立性的优点 方便用户 改善设备利用率 提高系统的可扩展性和可适应性
输入∕输出管理——设备管理概述
61
37
2. I/O 子系统
输入∕输出管理——设备控制
内核
内核 I/O 子系统
SCSI设备驱动器
键盘设备驱动器
鼠标设备驱动器
PCI 总线设备驱动器
软盘设备驱动器 …
SCSI设备控制器
键盘设备控制器
鼠标设备控制器
PCI 总线设备控制器
软盘设备控制器 …
SCSI设备
键盘 鼠标 PCI总线
软盘驱动器 …
软件
硬件
设备管理是分层管理的,分为硬件相关部分和硬件无关部分。操作系统可以只做无关部分,硬件相关部分即设备驱动程序,这部分操作系统可以不做,但是会提供一种方式让其作为操作系统的一部分运行