下一页
计算机软件基础
The software basic
of computer
主讲,赵英良
西安交通大学计算机教学实验中

第 9单元
存储器与设备管理
下一页
上一页
停止放映
第 2 页
上节内容提示(一)
? 1.操作系统概述
? ( 1)概念、职能、分类和发展
? ( 2)相关技术(多道处理、通道技术、中
断技术)
? ( 3)常见操作系统简介
? 2.文件管理系统
? ( 1)文件的概念及分类
? ( 2)文件系统的功能和特点
? ( 3)文件系统的组织和存储结构
? ( 4) DOS,WINDOWS,UNIX的文件系
统简介
下一页
上一页
停止放映
第 3 页
上节内容提示(二)
? 3.进程管理
? ( 1)程序的有关概念(单道、多道、批处
理)
? ( 2)进程及有关概念(进程、特征、性质、
状态、线程)
? ( 3)进程的管理(进程的组成、进程控制
块的组织形式)
? ( 4)进程调度的任务及功能
? 4.用户接口和程序员接口 。
下一页
上一页
停止放映
第 4 页
第 9单元
操作系统的存储器管理和设备管理
下一页
上一页
停止放映
第 5 页
一、存储器管理
1.基本概念
( 1)定义,存储器( Memory) 能接收数据、保存数
据、并能根据命令提供这些数据的装置。
( 2) 存储器的分类:
? 内存储器 ( 简称内存, 主存, 物理存储器 ), 处理
机能直接访问的存储器, 用来存放系统和用户的程
序和数据 。 其 特点是,存取速度快, 存储方式是以
新换旧, 断电信息丢失 。
? 外存储器 ( 简称外存, 辅助存储器 ), 处理机不能
直接访问的存储器 。 用来存放用户的各种信息, 存
取速度相对内存而言要慢得多, 但它可用来长期保
存用户信息 。 如我们的磁盘 。
? 提示,存储器管理主要指内存的管理 。 所以, 以后
无特别说明, 存储器管理指的是内存的管理
下一页
上一页
停止放映
第 6 页
? ( 3) 内存的物理组织
? 物理地址:
? 把内存分成若干个大小相
等的存储单元, 每个单元给
一个编号, 这个编号称为 内
存地址 ( 物理地址, 绝对地
址, 实地址 ), 存储单元占 8
位, 称作字节 ( byte) 。
? 我们说的 256M内存指的是字

? 物理地址空间:
? 物理地址的集合称为物理
地址空间 ( 主存地址空间,
绝对地址空间 ), 它是一个
一维的线性空间 。
下一页
上一页
停止放映
第 7 页
2.存储器管理的功能
( 1)存储空间的地址转换:
将逻辑地址转换为物理地址
( 2)存储空间的分配和释放:
负责分配和回收内存
( 3)主存空间的扩充:
提供虚拟存储、程序覆盖技术,
目的是扩展运行大型程序的能力
( 4)存储保护:
保护系统程序和各用户程序的运行不
受干扰。
下一页
上一页
停止放映
第 8 页
( 1)存储空间的地址变换
? 几个相关概念
? 程序地址:
? 用户在程序中使用的是符号名, 编译系统在产生的目标程序中使
用的地址是相对于程序开始设置的, 称为逻辑地址 ( 或相对地址,
虚地址 ) ( 以 0为基址顺序编址 )
? 程序地址空间 ( 逻辑地址空间, 虚地址空间 ),
? 用户的程序地址的集合称为逻辑地址空间, 它的编址总是从 0开
始的, 可以是一维线性空间, 也可以是多维空间 。
? 物理地址:
? 而可执行程序在计算机中运行时使用的是内存的物理地址 (也叫
绝对地址 )。 (即前面定义的物理地址)
? 地址转换:
? 由程序的逻辑地址空间到运行时真正使用的物理地址空间转换叫
“地址转换”,也叫 地址重定位,或地址映射。
? 逻辑地址到物理地址的转换
下一页
上一页
停止放映
第 9 页
地址重定位示意图
int a;
float b;
char c;
a的绝对地址
b的绝对地址
c的绝对地址
0
X
a的逻辑地址
b的逻辑地址
c的逻辑地址
2FF0
3EC0
4DAA
源程序符号空间 目标程序地址空间 内存的存储空间
名空间 逻辑地址空间 物理地址空间
装入内存使用
物理地址编程时用的是符号地址 编译、链接产 生逻辑地址
下一页
上一页
停止放映
第 10页
地址重定位的方式
静态重定位
动态重定位
下一页
上一页
停止放映
第 11 页
静态地址重定位
? 原理,是指在作业执行之前进行的重定位。
地址转换工作主要靠重定位装入程序来完成。
? 特点,简单、容易实现,无需硬件的支持,
是早期计算机采用的一种方式。
? 缺点,
? 程序一经定位后就不能再在主存中移动,不
能重新分配内存,不利于内存的有效利用;
? 要求作业分配连续的主存空间,主存资源利
用率低;
? 不同用户难于共享主存中的同一程序。
下一页
上一页
停止放映
第 12页
静态重定位示意图
作业 A的地址空间 主存空间
??????
0
100
300
500
100
200
400
600
??????
INPUT 1,300
INPUT 1,400
1 3 5 7
?????? 1 3 5 7
??????
作业的逻辑地址 100处是一个输入语句,从逻辑地址 300处,读 1个
记录 。重定位到主存空间后,因为作业从物理地址 100处被装入,
输入语句的地址按序被定位在 200处,被读记录在 400处。
从逻辑地址 300处,读 1个记录
下一页
上一页
停止放映
第 13页
动态地址重定位
动态地址重定位 是在程序执行过程中进行的
重定位,更确切地说是在每次访问内存单元
前才进行地址变换。它是通过硬件的地址变
换机构实现的。
设置一个 重定位寄存器 ( RR),用来存放装
入主存空间时的起始地址。
作业访问主存空间的地址是由 逻辑地址 加 重
定位寄存器的地址 来确定。
主存实际地址 = 逻辑地址 + 重定位寄存器内容
下一页
上一页
停止放映
第 14页
动态地址重定位示意图
300
1000
+
0
100
300
600
??????
??????
0
1100
1300
1600
I 1,300
1 3 5 7
作业 A
地址空间
有效地址
重定位寄存器
主存空间
I 1,300
1 3 5 7

下一页
上一页
停止放映
第 15页
动态地址重定位的特点
?目标模块装入主存后,还可以很容易地进
行移动。有利于解决内存管理出现的中碎
块问题;
?多个相对独立的目标模块,可以分别装入
互不相邻的内存区域。这样便于内存的充
分利用和资源的共享。
?程序中不执行的程序,不做地址映射工作,
节省了 CPU的时间 。
?需要附加硬件的支持,增加了系统的开销。
(重定位寄存器,缺点)。
下一页
上一页
停止放映
第 16页
( 2)存储空间的分配和释放
? 在计算机中,无论是系统程序、还是用户程序,无
论是数据、还是文件,必须装入主存才能进行处理。
? 系统通过空间分配管理表,记录系统中可用的空间
及占用的空间状态,来管理内存的分配和释放。
? 过程是:
– A)应用程序提出空间申请
– B)若有足够内存,则装入程序执行;否则,等待或显示
内存空间不足。
– C)程序执行完毕,提出回收申请,系统回收内存。
下一页
上一页
停止放映
第 17页
存储分配方式
有三种
?直接分配 在源程序中直接使用主存的物理地址。 对用
户要求高、使用不方便、易出错。早期计算
机系统中使用。
?静态分配 在作业装入前,由程序一次性说明作业所包
含的地址空间。确定后在整个程序执行过程
中不再改变。 简单、利用率低、难于实现多
道程序对资源的共享。 (对应静态地址转换 )
?动态分配 在作业被装入主存或在执行过程中,才确定
其存储分配。 管理复杂、但利用率高,容易
实现主存的资源共享。在现代多道程序系统
中,主要采用动态分配方式。
下一页
上一页
停止放映
第 18页
( 3)存储空间的分区保护
? 在多道程序系统的主存
中 (环境),为了保护
系统程序的安全 (目
的),系统程序和用户
程序实际使用的区域是
隔开的 (方法) 。
? 这种分割是靠硬件实现
的。用户程序只能使用
用户区域的存储空间
(说明) 。
? 其他存储保护
? A)上下界保护
? B)基址、限长寄存器保护
系统
区域
用户
区域
主存空间的分区
保护示意图
下一页
上一页
停止放映
第 19页
( 4)主存空间的扩充
? 主存的空间是有限的
? 希望在有限的空间中运行大型程序
? 使用的技术有:
,自动覆盖” 技术
,虚拟存储” 技术
下一页
上一页
停止放映
第 20页
自动覆盖技术
? 思想,将大的程序划分为主存中可以容
纳的独立的逻辑处理段。每次只调入其
中的一段进行处理。
? 早期程序设计中,经常采用类似的方法
处理大的问题。例如,求解大型线性方
程组,就是采用,分块” 算法将大的系
数矩阵分为小块矩阵求解的。
下一页
上一页
停止放映
第 21页
虚拟存储器( Virtual Storage)
? 基本思想, 用户编程序时不需要考虑物
理内存的结构和容量,当程序较大时,
系统将一部分外存“虚拟”成内存来使
用,
? 386地址总线 32位,寻址 232=4GB,可管理 64TB
的虚拟存储器。
? 虚拟存储器技术是在硬件和软件的共同支持下
实现的( CPU和操作系统)。
? 硬件负责虚实地址的转换;软件负责实存(主
存)和虚存(外存)之间的信息调度管理。
下一页
上一页
停止放映
第 22页
内存扩充技术的比较
覆盖技术,一个作业的若干程序段, 或几个作业的某
些部分共享某一个存储空间 。
交换技术,当内存空间紧张时, 系统将内存中某些进
程暂时移到外存, 把外存中某些进程换进内存,
占据前者所占用的区域 ( UNIX)
比 较,交换技术不要求用户给出程序段之间的逻
辑覆盖结构 。 而且, 交换发生在进程或作业之间,
而覆盖发生在同一进程或作业内 。 此外, 覆盖只
能覆盖那些与覆盖段无关的程序段 。
虚拟存储器,程序, 数据, 堆栈的大小可以超过内存
的大小, 操作系统把程序当前使用的部分保留在
内存, 而把其它部分保存在磁盘上在需要时动态
交换 。
下一页
上一页
停止放映
第 23页
3.存储管理的方法
介绍 4种:
? 单一连续区分配法
? 多连续区分配法
? 分页管理法
? 分段管理法
下一页
上一页
停止放映
第 24页
( 1)单一连续区分配法
方法要点:
把主存分为两个固定的存储区域;一个固定
地分配给 OS,另一个分配给用户程序。 (通
过硬件寄存器实现)
硬件支持:
引入,篱笆( Fence)寄存器” (界限寄存
器),将 OS和用户的使用区域分开。
用户程序的重定位方法可以使用:
静态定位法,程序装入前一次将逻辑地址转换成绝
对地址,以后不再转换。
动态定位法,在程序执行过程中动态实现
下一页
上一页
停止放映
第 25页
单一连续区分配法示意图
2000
CPU +
操作系统
自由空间
0




主存空间定位寄存器
1500(逻辑地址) )
2000
3500
(绝对地址)
(动态重定位) 说明:
绝对地址 =基地址 +逻辑地址
基地址不同产生的绝对地址就不同。
下一页
上一页
停止放映
第 26页
单一连续区分配法特点
优点:
? 定位容易,使用简单
缺点:
? 但在多道程序处理
情况下,主存资源
利用率低,浪费大。
? 仅适用于单道程序
下一页
上一页
停止放映
第 27页
( 2)多连续区分配法
? 方法要点:
把主存空间划分为若干个连续的区域,建立空间
分区表进行管理。分区大小可以不同。
? 硬件支持:
增加新的保护装置 —— 边界寄存器 LOW,UP,限
制分块的上、下边界。
? 分类,
固定分区,也称静态法
变长分区,也称动态法
下一页
上一页
停止放映
第 28页
固定分区(多连续分区)
? a) 在作业前,把主存划分为几个固定
大小的连续区域;分区大小可以相同,
也可以不同。一旦划分好,在系统运行
期间不再重新划分 。 (分区)
? b) 建立一张分区说明表,记录每个分区
的大小、区号、起始地址、及占用标志
等信息。 (建 分区说明表)
? c) 在作业调度时,根据分区说明表来装
入程序和确定程序的重定位地址。 (通
过分区说明表管理)
下一页
上一页
停止放映
第 29页
固定分区示意图
区号 大小 起址 状态
1 10K 20K 已分
2 20K 30K 已分
3 30K 50K 已分
4 80K 80K 未分
分 区 表
操作系统
作业 A
作业 B
作业 C
第 1分区
第 2分区
第 3分区
未分区
20K
30K
50k
80K
主存“垃圾”
每个分区只能装一个作业,作业不一定占
满分区,所以会产生碎片、零头、垃圾
下一页
上一页
停止放映
第 30页
固定分区法特点
? 优点:
管理调度简单,分区策略适合于工作
负荷比较确定的系统。
? 缺点:
主存” 零头,太多,浪费严重;由
此而产生, 垃圾,回收问题。
下一页
上一页
停止放映
第 31页
变长分区(多连续分区 )
? 方法要点,
根据要装入作业的实际大小划分区域,且分区
个数也可以调整;需要建立两张表 (已分配分
区表 P、未分配分区表 F) 来管理主存空间。
? 特点:
优点:主存“零头”较小(但还有);
缺点:
? 选择剩下的空白区较小,无法使用;
? 寻找一个 较大 的空白区费时(从头找起);
? 归并主存“零头”,回收时费时。
下一页
上一页
停止放映
第 32页
多连续区分配法示意图






P






F
区号 长度 起始地址 状态
1 8K 20K 已分
2 16K 28K 已分
3 —— - —— 空表目
4 124K 108K 已分
区号 长度 起始地址 状态
1 64K 44K 可用
2 24K 232K 可用
3 —— - —— 空表目
4 ???? ??
5 ???? ??
操作系统
作业 1
作业 2
20K
28K
44K
可用分区 1
108K
可用分区 1
作业 3
可用分区 2
232K
若另有作业 4需要分配,分配算法:最先适应、最佳适应、归并小的空闲

存储区域
下一页
上一页
停止放映
第 33页
( 3)分页管理法
基本概念
? 页 ( Page) 将作业的地址空间划分为等长的单位,
称为页。
? 块 将主存的存储空间划分为等长的单位,称为块。
? 页表 记录着页号与该页在主存中的块号的对应关
系表。页表实际上是地址重定位表。 (记页与块的关系)
? 作业表 作业与页号管理对照表,每个作业有一个表
项;表项由作业号、页表长度、页表起始地址、状
态等信息组成。
? 动态地址变换机制 为了实现从作业的地址空间到主
存物理空间的映射而设置的一种硬件部件;地址结
构如下:
P W
P 为页号 W 为页内偏移量
下一页
上一页
停止放映
第 34页
分页管理法 算法描述
? 分页管理法是将作业在逻辑地址空间中划分为
页,每页在内存中分配一个块,块不要求连续。
通过页表进行寻址和管理。
? 作业中的逻辑地址通过 动态地址转换机制
转换:
页号,页内地址 块号,块内地址
例如:设页长 =块长 =1024k,则语句,LOAD 1, 2500” 在分页管
理中的寻址方法是,2500=2*1024+452,该地址应在第 2页内的
452处(页内地址从 0开始)。
自动
对应
下一页
上一页
停止放映
第 35页
分页管理法示意图
作业号 页表长 页表起址 状态
2 3 1032 已分
1 3 1024 已分
3 2 1040 已分
4 —— —— 空表目
作业表 JT 作业 A 作业 B
作业 C
页号 块号 页号 块号
页号 块号
0 4
1 5
2 6
0 7
1 10
0 2
1 3
2 8
页表
每个作业一个表项 每个作业
一张表
下一页
上一页
停止放映
第 36页
分页管理动态地址变换示意图
控制寄存器
作业地址空间
作业页表1 2 3 4
LOAD 1,2500
页表长度 页表始址
有效地址
2 452
页号 块号
0 4
1 6
2 8 8 452
物理地址 = 8452
页号
2500 = 2x1024+452
1
100
1K
2K
2500
3K
下一页
上一页
停止放映
第 37页
分页管理法特点
? 可以将作业分布在多个不连续的内存区域中
? 优点:
? 有效地解决了存储空间的,零头垃圾,问题;
? 易于实现代码段的共享;
? 用户可以连续编址。
? 缺点:
? 采用硬件的动态变址机构,
? 成本大、降低了 CPU速度;
? 各种管理表格占用了部分存储空间;
? 块内还有“零头”(与页长有关);
? 要求运行的作业必须全部装入主存。
下一页
上一页
停止放映
第 38页
( 4)分段管理
分页管理的物理位置不要求相邻,但逻辑位置必须相邻
1)基本概念
? 什么是段?
程序由模块组成,把各种独立的程序模块和数
据模块单独存放,称为段。
? 分段管理?
? 以段为基本单位进行存储的主存管理方法。
? 段表?
为识别和管理段,在主存中建立的一张表格,记
录段的:段号、长度和起始地址,称为段表。
段号 长度 起始地址段表格式:
下一页
上一页
停止放映
第 39页
2)分段管理原理
? 方法要点:
每个用户程序由若干段(模块)组成,
段内地址连续,段间地址可以不连续。
主存管理程序以段为单位为作业分配内
存。通过段表管理段和作业。
? 需要硬件支持:
地址映射机构自动将作业中的逻辑地址
转换为 段 和 段内偏移量 。
下一页
上一页
停止放映
第 40页
3)分段管理举例
有一个程序划分为 4段,如下图所示:
0
1K
0
500
0
300
0
200
主程序
子程序 SUB 数据块DATA
工作区
WORK
CALL[SUB] |<Y>
LOAD 1,[DATA]| 6
STORE 1,
[WORK]|<C>
每段有独立的逻辑地址
Y,6 C:
0段 1段 2段 3段
下一页
上一页
停止放映
第 41页
分段管理示意图
6
0
1K
0
100
500
0
300
0
200
LOAD 1,1|100
Y,12345
C:
0段
1段
2段
3段
段号长度 起始地址
0 1K 6K
1 500 8K
2 300 4K
3 200 9200
分段地址空间
分段表
每段一个记录
OS02K
4K
6k
8k
8292
9200
2.DATA
LOAD1,1
| 100 0.主程序
1.SUB
3.WORK
12345
地址转换,8292=1024x8+100
主存空间
6
C:
下一页
上一页
停止放映
第 42页
分段管理特点
优点:
? 便于模块化处理
? 便于动态连接
? 便于分段共享
缺点:
? 硬件成本高,地址转换花费 CPU时间;
? 要为表格提供主存空间;
? 分段的最大尺寸受主存大小的限制。
段页式存储管理
?为了获得分段在逻辑上的优点和分页在
管理存储空间方面的优点,兼用分段和分
页两种方法,即段页式存储管理。其基本
思想是:用分段的方法来分配和管理虚拟
存储器,而用分页方法来分配和管理实存
储器(主存)。
对用户程序:按
段式划分
对存储器:按页
式存储管理方案
内存分配:以页
为单位进行分配
通过段表和页表
管理
下一页
上一页
停止放映
第 43页
几种操作系统的存储器管理简介
(1) DOS的主存管理
? 采用单一连续分区的方法,但
却综合运用了多连续分区的管理技术 。 (覆盖)
? 系统占用低端内存,其余称为自由空间,由
用户使用。
? DOS内存以 16字节为基本单位,称为一节。
若干节作为一块,通过指针建立不同块间的
联系,以块为管理单位。通过内存控制块
( MCB)进行管理。
? 只能直接管理 640K的基本内存。
下一页
上一页
停止放映
第 44页
( 2) UNIX的主存管理
? 采用分段管理方法,存储分配
采用优先适应算法。
? UNIX不支持虚拟存储器。为运
行大程序,采用主存与外存调
入调出的对换技术。
下一页
上一页
停止放映
第 45页
( 3) Windows98的存储器管理
? Windows98 OS不仅 支持常规内存、扩展内存和扩
充内存管理,还 支持虚拟内存管理 ( VM)。
? 支持 4GB内存空间
? 当一个进程所需要的存储空间超过了可用的空间时,
虚拟内存管理器使用换页技术在物理内存和硬盘之间
交换数据,通过两个内存进程向应用程序提供大的虚
拟内存空间。
? 一个是换页进程,负责物理内存和硬盘之间移动数据;
另一个是地址转换进程,负责将物理内存地址翻译成
虚拟内存地址或映射文件。
? Windows通过句柄管理进程占用的内存 。
(段页式地址管理方法)
下一页
上一页
停止放映
第 46页
? 在 80486微处理器中,将 4GB物理存储器空间按 4k
为一页,分为 1048576个页,通过内部寄存器和两级
页表进行管理。从 0开始,每一组连续相邻的 l 024个
页为一个低级管理单位。每一页有一个起始地址 (低
12位全为 0),1024个地址集中排列存放,构成一个
页表,其中每一项称为一个页表项。每个页表项占 4
个字节,整个页表占 4k空间,由 10位地址与之映像。
在低级管理单位的上面是高级管理单位,对 1024个
低级管理单位实施管理。
? 地址转换,首先根据选择符在段描述符表中取段描
述符,将其中的段基址与偏移量相加,求出线性地
址。然后将线性地址按二级页表转换,取出页基地
址 (页框 ),再与偏移量相加,即可求出物理地址。
下一页
上一页
停止放映
第 47页
二、设备管理
计算机系统中的设备通常指 I/O(输入 /输出)设备。
?1,I/O设备分类
( 1)按设备使用方式分
? 输入设备 将信息由外部设备送入主机的设备。
? 输出设备 将信息由主机送到外部设备的设备。
( 2)按设备的从属关系分
? 系统设备 由 OS管理的标准设备;如显示器、打印
机、磁盘等。
? 用户设备 用户按特殊需要选装的、非标准设备;
如传真机、绘图仪等。
下一页
上一页
停止放映
第 48页
I/O设备分类(续)
( 3)按设备资源分配方式分
? 独享设备 为保证信息传送的连贯性,通常是在
该设备用完之后才分配给下一个作业。一般是
低速设备,像打印机、磁带机等。
? 共享设备 多用户可以同时使用的设备,如磁盘、
服务器等。
( 4)按数据组织和存取方式分
? 字符设备 以字符为单位存取数据的设备,如键
盘、鼠标、打印机等。
? 块设备 以数据块为单位存取数据的设备,如磁
盘、光盘等。
下一页
上一页
停止放映
第 49页
I/O设备分类(续)
( 5)按通讯方式分
? 串行设备 指每次按一位传送的设备,
如键盘,串行打印机等。
? 并行设备 指每次按多位传送的设备,
如并行打印机。
( 6)按处理速度分
? 低速设备 指传输速率较低的串行设备,
如键盘等。
? 高速设备 指传输速率较高的设备,
如网络设备等。
下一页
上一页
停止放映
第 50页
2.设备管理的目的
( 1)方便用户操作
( 2)保证 CPU与外部设备性能
的良好发挥。
相关四性:
( 1)方便性 (用户操作角度)
( 2)均衡性 (设备负载均衡)
( 3)并行性 (设备 CPU可以并行工作)
( 4)独立性 (编程与设备无关)
下一页
上一页
停止放映
第 51页
3.设备管理的任务和功能
1) 外部设备中断处理
2)外部设备接口程序设计和设备驱动
3)外部设备的分配与释放
4)虚拟设备的实现和管理
( 1)任务
按用户要求控制 I/O操作,减轻用户负担
下一页
上一页
停止放映
第 52页
3.设备管理的任务、功能和组成
? ( 2)功能:
? 1)动态掌握并记录设备的状态
? 2)按一定的规则,将 I/o设备分配给要求设备的进程
? 3)完成实际的 I/o操作
? ( 3)组成
? 硬件:设备、控制器、通道
? 软件:设备驱动、交通控制、通道控制
? 数据:系统设备表( SDT,System Devices Table)
? 设备控制表( DCT)
? 控制器控制表( COCT)
? 通道控制表( CHCT)
? 设备管理数据基
下一页
上一页
停止放映
第 53页
4,I/O设备与 CPU的通信方式
? CPU和 I/O设备之间交换信息的方式不同,
则效率也不同。
? 信息交换方式一般可分为以下几种方式:
循环检测方式
中断处理方式
直接内存存取( DMA)方式
通道方式
下一页
上一页
停止放映
第 54页
( 1)循环探测方式
? 通过一个触发器循环测试 I/O设备“忙 /闲”状态标
志。若它置“闲”,则执行 I/O操作,若它置
“忙”,则 CPU不断对它进行监测,直至设备
“闲”下来为止。
? 在早期计算机系统中主要采用这种方式。
? 由于 CPU速度比 I/O设备速度高得多,而循环测试
I/O方式使得 CPU与外部设备只能串行工作,因此
CPU绝大部分时间都处于等待 I/O设备完成的循环
测试中,CPU资源浪费极大。
优点,管理简单
缺点,浪费了 CPU资源
下一页
上一页
停止放映
第 55页
( 2)中断处理方式
? 为了克服循环测试方式的缺点( CPU必须不断主动
测试 I/O设备是否空闲),引入中断处理技术。
? 其核心是使 I/O设备具有主动“汇报”的能力;每
当完成 I/O操作后,便给 CPU发一个通告信号(中
断信号)。只有当 CPU接到 I/O设备中断请求后,
才处理 I/O操作。
优点,速度快,提高了资源的利用率。
缺点,I/O操作还依赖于 CPU,如果 I/O处理频繁,
CPU也将很忙。特别是对字符设备,传送一个字符,
就要响应一次中断处理;若字符 I/O设备很多、传
输量很大时,CPU可能完全陷入 I/O处理中而不能
自拔。
下一页
上一页
停止放映
第 56页
( 3) DMA方式 ( Direct Memory Access)
? 背景,中断方式只能提高 CPU的利用率,但在传送
数据量大、速度高的情况下,它的处理效率并不理
想。目前在块设备的 I/O系统中,采用 DMA方式。
? 简述,它是一种简单的通道方式,即在硬件的支持
下,通过占用总线控制权,实现信息交换。它并不
中断当前 CPU的工作,而只是在 CPU暂停的几个周
期内由 DMA控制器实现信息交换。
? 可以说 DMA为具有部分 CPU功能的装置。
优点,I/O操作处理速度快。
缺点,DMA方式只能完成简单的数据传输,不能
满足更复杂的 I/O操作要求,在大、中型计算机系统
中,普遍采用 I/O处理机 来管理外部设备和主存之间
的信息交换。
下一页
上一页
停止放映
第 57页
直接内存存取方式示意图
DMA1
设备 1
主存
CPU DMA2 DMAn
设备 n设备 2
…...
…...
占用总线控制权,直接存取内存
下一页
上一页
停止放映
第 58页
( 4)通道( Channel)方式
? 背景,想把 CPU从繁忙的杂务中解放出来,使
I/O设备的管理不再依赖于 CPU。
? 通道,是具有相对独立的 I/O处理能力的装置。
如大型机的前端机,PC机的 Intel 8090( I/O通
道)等。 在通道方式下,I/O处理变成了处理机
之间的通讯问题。
? 在采用通道方式的 I/O系统中,CPU有两个作用:
一是将 I/O操作任务下达给通道,由通道代替
CPU专门处理 I/O工作;
? 二是随时了解通道、控制器和设备工作的情况。
下一页
上一页
停止放映
第 59页
通道控制示意图
? 四级连接、三级控制
主存
CPU
通道通道
通道
控制器
控制器
控制器
控制器
设备 A
设备 A
设备 A
设备 A
设备 A
设备 A
设备 ACPU控制, 通道,,, 通道, 控制
,控制器,,, 控制器, 控制, 设备,
下一页
上一页
停止放映
第 60页
通道的分类
? ( 1)字节多路通道
– 以字节为单位传送信息,可以分时执行多个通
道程序,适用于中低速设备
? ( 2)选择通道
– 一次将一个通道德败坏程序执行完,再转向下
一个。适用于高速度设备,成批传送数据。
? ( 3)数组多路通道
– 分时执行多道程序,轮流为每道程序服务,每
条指令可以传送一批数据。
下一页
上一页
停止放映
第 61页
( 4)缓冲技术
? CPU与各种外部设备的速度上的差异很大, 设备与
设备之间的速度的差异也很大 。
? 系统有时会产生大量的数据需要 I/O,有时又会
很长时间没有 I/O。 造成 I/O负荷的不均匀
? 要解决这两个方面的问题就要引入缓冲的概念 。
? 缓冲 是用来在两种不同速度的设备之间传输信息
时平滑传输过程的常用手段 。
? 缓冲技术 是用来匹配 CPU与设备之间速度差异和负
荷的不均匀而采用的一种手段 。
? 常用的缓冲技术有三种:
? 双缓冲,系统设置两个缓冲区
? 环形缓冲,若干缓冲区形成了一个环
? 缓冲池, 多个缓冲区, 形成一个缓冲池
下一页
上一页
停止放映
第 62页
5,设备管理系统
( 1) 设备分配与回收
当某进程向系统提出 I/O请求时,设备分配程序按一
定策略分配设备、控制器和通道,形成一条数据传
输通路,以供主机和设备间信息交换。 I/O操作执
行完毕,系统回收设备、控制器、和通道控制权。
分配技术有 3种:
静态分配:作业执行前分配,用于独占设备
动态分配:作业执行中分配
虚拟分配:采用缓冲技术,将 I/O信息暂存到磁盘上。
下一页
上一页
停止放映
第 63页
( 2)设备管理的特性( 3种)
? 设备独立性,即不能因为设备的忙碌、故障或更换而
影响程序的运行,向用户屏蔽物理设备,呈现给用户的
一个操作简单的逻辑设备
? 抽象的 I/O操作,即设计一类通用的 I/O指令,它们
的含义对不同类型的设备作不同解释。由系统将抽象
的 I/O操作映射到专门的设备驱动程序
? 通过多种数据结构(表)进行管理:
设备控制块 DCB(设备控制表 DCT,设备标识、状态、相关控制器和进程)
控制器控制块 COCB(控制器控制表 COCT,控制器标识、状态、相
关通道、进程)
通道控制块 CHCB(通道控制表 CHCT,通道标识、状态、相关控制
器、进程)
系统设备表 SDT(设备名称、设备控制块地址)
根据用户请求的 I/O设备的逻辑名,查找逻辑设备和物理设备的映
射表;以物理设备为索引,查找 SDT,找到该设备所连接的 DCT;
继续查找与该设备连接的 COCT和 CHCT,就找到了一条通路
下一页
上一页
停止放映
第 64页
( 3) I/O设备分配策略及实现
? 在多道程序系统中,进程数往往多于
资源数,从而产生资源竞争。为使系
统有条不紊地工作,I/O设备分配管理
要遵循统一的、合理的分配原则。
下一页
上一页
停止放映
第 65页
分配策略考虑的因素
? I/O设备的固有属性
? I/O设备的分配算法
? 设备的安全性
? 与设备的无关性
下一页
上一页
停止放映
第 66页
① I/O设备的固有属性
? 独享设备, 是一些慢速的设备,它不允许
交叉使用,并在使用过程中需要人工干预。
因此,一旦占用,只能到用完才能释放、
收回。 (打印机)
? 共享设备, 如磁盘,其定位操作时间短,
可供直接存取操作,可由多进程共享使用,
所以采用共享分配方式。共享设备在系统
中主要用于存储文件。 (磁盘)
? 设备的属性不同要采用不同的分配方式。
下一页
上一页
停止放映
第 67页
② I/O设备的分配算法
? I/O调度程序的分配策略与进程调度策略基
本相同,但由于 I/O操作一旦启动,就不能
停止的特点,因此,不能采用进程调度的
时间片轮转法。
? 先请求先分配 当多个进程对同一个设
备提出 I/O请求时,系统按请求的先后次序
将进程排队。设备分配程序将 I/O设备分配
给队列中第 1个进程。
? 优先数最高优先 系统优先响应优先数最
高的进程对 I/O设备的请求。对优先数相同
的 I/O请求,则按先请求先分配的原则处理。
下一页
上一页
停止放映
第 68页
③ 设备分配的安全性
? 在有些系统下,出于安全的考虑,限定一
个进程只能提出一个 I/O设备请求,以防
止可能产生“死锁”,导致设备分配不安
全。
? 设备分配程序在多请求方式中,为保证不
发生死锁,一般要采取预防发生死锁的措
施。
? (如发出一个请求后,立即进入阻塞状态,
直到请求完成)
下一页
上一页
停止放映
第 69页
④ 与设备无关性
? 为提高系统的可适应性和可扩展性,应使用户
程序和实际使用的物理设备无关。引入逻辑设
备名和物理设备名的概念。规定,在用户程序
中只允许使用逻辑设备名。 ( DOS中的 PRN、
COM1,COM2等)
? 与设备无关性通常是通过系统提供的逻辑设备
和物理设备的映象表来实现的(也称为进程连
接表 PAT。若某逻辑设备已连接到相应的物理
设备上,则 PAT表中该物理设备表项由该类设
备的逻辑设备名和物理设备名组成)。
下一页
上一页
停止放映
第 70页
( 4) I/O设备分配的步骤
( 1) 分配设备 根据 I/O请求的逻辑设备名,找到其对
应的物理设备名,检索 SDT表,再找出其 DCT。判
别设备是否“忙”;若忙,则将该进程插入到等待
队列中排队;若闲,则调用分配程序进行分配。
( 2) 分配控制器 当系统把设备分配给某进程后,从
DCT中找出其对应的 COCT,判别可分配否。若忙,
则排队,否则,分配控制器。
( 3) 分配通道 通过 COCT可以找到 CHCT,也判别该
通道可分配否。不能分配,则排队等待;否则,就
可以执行 I/O操作了。
下一页
上一页
停止放映
第 71页
( 5)设备驱动程序
? 为了控制 I/O传输,系统必须为每类设备分别编
制一组 I/O处理程序,称这组程序为 设备驱动
程序 。其中包括:
? 设备预置程序 当系统启动 I/O设备传输时,
预置设备的初始状态。
? 启动 I/O程序 负责启动设备传输,包括启动
通道。
? 设备中断处理程序 负责处理设备发出的各
种中断,如 I/O传输过程中的“故障中断”等。
下一页
上一页
停止放映
第 72页
设备驱动程序的说明
设备驱动程序一般由 I/O设备的生产厂
家提供。现在大多数 I/O设备是按统一的标
准、规范生产的。基本上可以做到“即插即
用”。但是,仍有少部分 I/O设备是非标准
的。这些非标准的 I/O设备的驱动程序是不
能通用的。使用时要注意。
下一页
上一页
停止放映
第 73页
DOS操作系统的设备管理
? 普通文件
? 设备文件:
– CON:键盘 /显示器
– PRN,LPT1,打印机
– AUX,COM1,串口
? 设备管理的数据结构:
– 设备头,
? 设备头链接指针
? 设备属性
? 设备策略模块入口地址
? 设备中断模块入口地址
? 设备号 /部件号
? 设备驱动程序:设备头、设备策略模块、设备中
断模块。
I/O请求头:
请求头长度
请求的部件号
请求的命令码
驱动程序返回的状态
下一页
上一页
停止放映
第 74页
思考与作业
1,作业:
– OS存储管理的对象与任务是什么?
– 常用的主存管理方法有哪几种?各自的特点
是什么?
– OS设备管理包括哪些基本任务?
2,思考:
– 什么是实存储管理和虚存储管理?
– 主处理机与设备的信息交换有哪几种基本方
法,各有何特点?
– 什么是设备分配和驱动?
资源,//ctec.xjtu.edu.cn/teacher
下一页
上一页
停止放映
第 75页
SPOOLing技术
( Simultaneous Peripheral Operation On Line)
为解决高速 CPU和低速 I/O设备的矛盾,而采用的一种技术。
(直译为:联机同步外设操作)
早期采用脱机处理技术 如今采用假脱机处理技术
主机
小型机 输入机
输出机
输入数据来自输入机
输出数据送到输出机
磁盘
CPU输入机
输出机输入




通道 通道
下一页
上一页
停止放映
第 76页
什么是 VxD
? VxD是一个管理例如硬件设备或者已安装软件等
系统资源的 32位可执行程序,使得几个应用程序
可以同时使用这些资源。 Windows通过使用 VxD
允许基于 Windows的应用程序实现多任务。 VxD
在与 Windows的连接工作中处理中断,并在不影
响其它应用程序的执行的情况下为特定的应用程
序执行 I/O操作。
大多数 VxD管理硬件设备,也有一些 VxD管理
或代替与之相关的软件,例如 ROM BIOS例程。
VxD可以包含必须在相应设备上执行的设备相关
代码,也可以依靠其它软件去执行这些对设备的
操作。任何情况下,VxD都会为每一个应用程序
保留该设备状态的记录,保证无论何时一个应用
程序继续执行该设备均处于正确状态。
下一页
上一页
停止放映
第 77页
实地址模式和虚拟地址模式
? 80386的工作模式包括实地址模式 (real
mode) 和虚拟地址模式 (virtual address
mode ),又称保护模式 (protection mode)。
? 实地址模式与 8086完全兼容。这时,只能寻
址 1MB的地址空间、不能启用分页机制,不
区分特权级。分段功能也受到了极大的限制。
而在保护模式下,分段机制得到加强。虚地
? 址空间可 f达 16K个段,每个段的大小可变,
最大达到 4GB。