下一页
计算机软件基础
The software basic
of computer
主讲:刘志强
西安交通大学
计算机教学实验中心
第 9单元
存储器与设备管理
下一页
上一页
停止放映
第 2 页
教学目标
了解存储器与设备管理的
? 概念、任务及采用的方法和技术
下一页
上一页
停止放映
第 3 页
学习要求
通过本单元的学习,了解、弄清、掌握:
? 存储器与 设备 管理的概念、目的、任务
功能、存储分配、地址重定位、虚拟存储器
? 存储器与设备管理的常用方法和技术
单一连续区、多连续区、页式、段式等管理方法
? I/O设备的分类及用途
? I/O设备与 CPU的通信方式
— 循环测试、中断,DMA、通道方式
? 设备分配、管理的常用方法和技术
— SDT,DCT,COCT,CHCT表在设备管理机制
中的作用
下一页
上一页
停止放映
第 4 页
一、存储器管理
存储器( Memory) 能接收数据、保存
数据、而且能根据命令提供这些数据的装置。
存储管理 存储管理是针对的。主存是
CPU直接存取指令和数据的设备,所以,它
是系统程序和用户程序共享的重要系统资源。
如何 分配和管理有限的存储资源,是设计
人员甚至用户要研究、考虑的问题。
下一页
上一页
停止放映
第 5 页
存储器管理的目的
? 尽量方便用户
? 提高主存的利用率
下一页
上一页
停止放映
第 6 页
存储管理的主要功能
?存储分配 主存的分配和回收。为管理主存而设
置的相应的组织机制,记录主存的状态信息、已分
配、未分配块、分配策略等。
?存储容量 当用户所需存储空间大于可用主存容
量时,系统采用存储器的多级机制、虚拟存储、自
动覆盖等技术。
?地址变换 程序语言的符号地址空间到进程的物
理地址的转换。
?存储保护 在多道程序系统中,系统进程和用户
进程间、用户和用户进程间的存储空间的保护。
下一页
上一页
停止放映
第 7 页
存储空间的分配和释放
? 在计算机中,无论是系统程序、还是用户程序,无论
是数据、还是文件,凡要处理必须装入主存。如何管
理分配存储空间?
? 需要考虑和解决的问题:
? 在多层次存储结构中,如何确定存储位置?
? 系统程序和用户程序如何管理?
? 大于主存的程序能否运行?
? 多道程序处理系统如何管理各个程序的存储空间?
? 如何分配存储器?采用何种分配策略?
下一页
上一页
停止放映
第 8 页
多存储层次结构示意图
CPU
寄存器
高速缓冲存储器
主存储器
后援存储器
磁盘
外存储器
用于内、外存之间交换暂存。
内存储器
存放主存中程序的副本,再调用
该程序时,从高速缓存读取。
靠近 CPU的存储器,存取速度快。
由触发器组成;存放一个 Byte
( Bit,Word)
下一页
上一页
停止放映
第 9 页
存储分配方式
?直接分配 在源程序中直接使用主存的物理地址。对用
户要求高、使用不方便、易出错。早期计算
机系统中使用。
?静态分配 在作业装入前,由程序一次性说明作业所包
含的地址空间。确定后在整个程序执行过程
中不再改变。简单、利用率低、难于实现多道
程序对资源的共享。
?动态分配 在作业被装入主存或在执行过程中,才确定
其存储分配。管理复杂、但利用率高,容易实
现主存的资源共享。在现代多道程序系统中,
主要采用动态分配方式。
下一页
上一页
停止放映
第 10页
存储空间的地址变换
? 用户在程序中使用的是 符号名,编译系统在产生的目标程序中使
用的是 逻辑地址 (相对地址 ),而可执行程序在计算机中运行时使用
的是 物理地址 (绝对地址 )。由程序的符号名空间到运行时真正使
用的物理地址空间转换叫,地址转换,,
也称为程序的重定位。
int a;
float b;
char c;
源程序符号空间 目标程序地址空间 内存的存储空间
2FF0a的绝对地址
3EC0b的绝对地址
c的绝对地址 4DAA
0
X
a的逻辑地址
b的逻辑地址
c的逻辑地址
下一页
上一页
停止放映
第 11 页
地址重定位
? 将一个作业从它的逻辑地址变换成它要装入
的、或要重定位的主存地址的过程。在多道
程序系统中,为了方便用户的使用,对于每
个作业的主存空间可以看成是由地址 0开始
的连续的地址空间,称之为逻辑地址空间。
但作业运行是在主存,因此,要进行地址的
转换;称之为, 地址重定位”(地址映射)。
? 重定位两种方式,静态重定位 和 动态重定位 。
下一页
上一页
停止放映
第 12页
静态地址重定位
? 是指在作业执行之前进行的重定位。地址
转换工作主要靠 重定位装入程序 来完成。
这种方式简单、容易实现,无需硬件的支
持,是早期计算机采用的一种方式。
?缺点 是:
? 程序一经定位后就不能再在主存中移动;
? 要求作业分配连续的主存空间,主存资
源利用率低;
? 难于实现主存的资源共享。
下一页
上一页
停止放映
第 13页
静态重定位示意图
作业 A的地址空间 主存空间
??????
0
100
300
500
100
200
400
600
??????
INPUT 1,300
1 3 5 7
??????
INPUT 1,400
1 3 5 7
??????
作业的逻辑地址 100处是一个输入语句,从逻辑地址 300处,读 1个
记录。重定位到主存空间后,因为作业从物理地址 100处被装入,
输入语句的地址按序被定位在 200处,被读记录在 400处。
下一页
上一页
停止放映
第 14页
动态地址重定位
动态地址重定位 是在程序执行过程中进行的重定
位,更确切地说是在每次访问内存单元前才进行地
址变换。它是通过硬件的地址变换机构实现的。
设置一个 重定位寄存器 ( RR),用来存放装入主
存空间时的起始地址。
作业访问主存空间的地址是由 有效地址 加 重定位
寄存器的地址 来确定。
主存实际地址 = 有效地址 + 重定位寄存器内容
下一页
上一页
停止放映
第 15页
动态地址重定位示意图
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
下一页
上一页
停止放映
第 16页
动态地址重定位的特点
?目标模块装入主存时无需任何修改,因
而装入之后再移动也不会影响其正确运
行,这对存储管理时解决碎块问题极为
有利;
? 若一个模块由若干个相对独立的目标模
块组成,每个分别装入互不相邻的内存
区域,只要各模块有自己对应的重定位
寄存器。这样便于内存的充分利用和资
源的共享。
? 但是需要附加硬件的支持,增加了系统
的开销 。
下一页
上一页
停止放映
第 17页
存储空间的分区保护
? 在多道程序系统
的主存中,为了
保护系统程序的
安全,系统程序
和用户程序实际
使用的区域是隔
开的。
? 这种分割是靠硬
件实现的。用户
程序只能使用用
户区域的存储空
间。
系统
区域
用户
区域
主存空间的分区
保护示意图
下一页
上一页
停止放映
第 18页
主存空间的扩充
在计算机中,主存总是常数,要想
处理大、多的作业,就要想办法扩充主
存的空间。主导思想是:如何在有限的
主存空间中,处理大于主存的作业。
,自动覆盖” 技术和, 虚拟存储”
技术是扩充主存常用的、有效的方法。
下一页
上一页
停止放映
第 19页
自动覆盖技术
? 这种方法的主要作法是将大的程序划分
为主存中可以容纳的独立的逻辑处理段。
每次只调入其中的一段进行处理。早期
程序设计中,经常采用类似的方法处理
大的问题。例如,求解大型线性方程组,
就是采用,分块” 算法将大的系数矩阵
分为小块矩阵求解的。
下一页
上一页
停止放映
第 20页
虚拟存储器( Virtual Storage)
? 它的基本思想是把作业的地址空间和物理地址空
间视为两个不同的概念,采用内、外存结合的办
法,把部分外存作为主存使用,以此为用户提供
了足够大的地址空间 ——虚存空间 。用户可以在
这个地址空间内编程,而完全不考虑主存的大小。
虚拟存储器技术 是在硬件和软件的共同支持下实
现的。 硬件 负责虚实地址的转换; 软件 负责实存
(主存)和虚存(外存)之间的信息调度管理。
下一页
上一页
停止放映
第 21页
存储管理方法
常用的存储管理方法有:
? 单一连续区分配法
? 多连续区分配法
? 分页管理法
? 分段管理法
下一页
上一页
停止放映
第 22页
单一连续区分配法
方法要点:
把主存分为两个固定的存储区域;一个固定
地分配给 OS,另一个分配给用户程序。
硬件支持:
引入,篱笆( Fence)寄存器”,将 OS和用
户的使用区域分开。
用户程序定位(地址转换)方法:
采用,静态,法和,动态, 法;前者是在程
序装入前,一次性定位,之后不再改变。后
者是采用硬件的 定位寄存器,在程序执行过
程中实现动态定位。
下一页
上一页
停止放映
第 23页
单一连续区分配法示意图
已分配空间
OS
区域
用户
区域
自由空间
特点:
? 定位容易,使用简单
? 但在多道程序处理
情况下,主存资源
利用率低,浪费大。
下一页
上一页
停止放映
第 24页
单一连续区分配法示意图
2000
CPU +
操作系统
自由空间
用
户
区
域
主存空间定位寄存器
1500(逻辑地址) )
2000
3500
(绝对地址)
说明:
绝对地址 =基地址 +逻辑地址
基地址不同产生的绝对地址就不同。
下一页
上一页
停止放映
第 25页
多连续区分配法
? 方法要点,
把主存空间划分为若干个连续的区域,建立空
间分区表进行管理。
? 硬件支持,
增加新的保护装置 ——边界寄存器 LOW,UP,
限制分块的上、下边界。
? 方法分类,
采用,固定分区,和,变长分区,法。
下一页
上一页
停止放映
第 26页
固定分区(多连续分区)
? 在作业前,把主存划分为几个固定大小
的连续区域;
? 建立一个分配表,记录每个分区的大小、
区号、起始地址、及占用标志等信息。
? 在作业调度时,根据作业表来确定程序
的重定位地址。
下一页
上一页
停止放映
第 27页
固定分区示意图
区号 长度 起址 状态
1 8K 20K 已分
2 14K 30K 已分
3 28K 50K 已分
4 76K 80K 未分
分 区 表
操作系统
作业 A
作业 B
作业 C
第 1分区
第 2分区
第 3分区
未分区
20K
30K
50k
80K
主存“垃圾”
下一页
上一页
停止放映
第 28页
固定分区法特点
? 优点:
管理调度简单、分区策略适合于工作
负荷比较确定的系统。
? 缺点:
主存” 零头,太多,浪费严重;由
此而产生, 垃圾,回收问题。
下一页
上一页
停止放映
第 29页
变长分区(多连续分区 )
? 方法要点,
根据要装入作业的实际大小划分区域,且分区
个数也可以调整;建立两张表:已分配分区表 P
和未分配分区表 F,来管理主存空间。
? 特点:
作为优点来说,主存“零头”较小(但还有);
作为缺点来说:
? 选择剩下的空白区较小,无法使用;
? 寻找一个较大的空白区费时(从头找起);
? 归并主存“零头”,回收时费时。
下一页
上一页
停止放映
第 30页
多连续区分配法示意图
已
分
配
分
区
表
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
下一页
上一页
停止放映
第 31页
分页管理法基本概念
? 页 ( Page) 将作业的地址空间划分为等长的单位,
称为页。
? 块 将主存的存储空间划分为等长的单位,称为块。
? 页表 每个页在页表中有一个表项,记录着页号与
该页在主存中的块号的对应关系;页表实际上是地
址重定位表。
? 作业表 作业与页号管理对照表,每个作业有一个表
项;表项由作业号、页表长度、页表起始地址、状
态等信息组成。
? 动态地址变换机制 为了实现从作业的地址空间到主
存物理空间的映射而设置的一种硬件部件;地址结
构如下:
P W
P 为页号 W 为页内偏移量
下一页
上一页
停止放映
第 32页
分页管理法
? 方法要点:
将主存空间按定长划分为页、与存储空
间的存储块一一对应。通过对页表和作
业表的管理,实现对作业管理的目的。
? 硬件支持:
自动将地址空间划分为两部分:
页号 +页内偏移
下一页
上一页
停止放映
第 33页
分页管理法算法描述
? 分页管理法是将作业在逻辑地址空间中划分为
页,通过页表与主存空间的块一一对应起来。
作业中的逻辑地址通过 动态地址转换机制
转换为:
页号,页内地址 块号,块内地址
从而实现存储空间的管理。
? 分页管理可以处理不连续的地址空间和物理空
间。
自动
对应
下一页
上一页
停止放映
第 34页
分页管理法示意图
作业号 页表长 页表起址 状态
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
下一页
上一页
停止放映
第 35页
动态地址变换示意图
控制寄存器
作业地址空间
作业页表1 2 3 4
LOAD 1,2500
页表长度 页表始址
有效地址
2 452
页号 块号
0 4
1 6
2 8 8 452
物理地址 = 8644
页号
2500 = 2x1024+452
1
100
1K
2K
2500
3K
下一页
上一页
停止放映
第 36页
分页管理法特点
? 优点:
? 有效地解决了存储空间的,零头垃圾,问题;
? 易于实现代码段的共享;
? 用户可以连续编址。
? 缺点:
? 采用硬件的动态变址机构,
? 成本大、降低了 CPU速度;
? 各种管理表格占用了部分存储空间;
? 块内还有“零头”;
? 要求运行的作业必须全部装入主存。
下一页
上一页
停止放映
第 37页
分段管理的基本概念
? 段
将程序划分为相互独立、具有一定逻辑功能的模
块、且分别按名单独存放,称这些模块为段。
? 段表
为便于作业管理,系统建立的表格;每个作业一
个表项。表项由段号、段长度、段起始地址组成。
? 二维地址空间
用两个参数才能唯一确定地址的空间。
? 地址映射
两个不同空间地址的一一对应的转换。
下一页
上一页
停止放映
第 38页
分段管理
? 方法要点:
将作业分段后,段内的逻辑地址是二维
空间的地址(段,段内偏移量)。通过
分段表以及地址映射机构将二维地址空
间的逻辑地址转换为一维主存空间中的
物理地址。
? 硬件支持:
地址映射机构:自动将作业中的逻辑地
址划分为 段 和 段内偏移量 。
下一页
上一页
停止放映
第 39页
分段管理举例
有一个程序划分为 4段,如下图所示:
0
1K
0
500
0
300
0
200
主程序
子程序 SUB 数据块DATE
工作区
WORK
CALL[SUB] |<Y>
LOAD 1,[DATA]| 6
STORE 1,
[WORK]|<C>
CALL[SUB] |<Y> 转到子程序 SUB中的入口处,Y”;
LOAD 1,[DATA]| 6 将数据区 DATA的第 6单元的值读入寄存器 1;
STORE 1,[WORK]|<C>将寄存器 1的内容存入 WORK中 C单元。
Y,6 C:
下一页
上一页
停止放映
第 40页
分段管理示意图
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
DATA
LOAD1,1
| 100 主程序
SUB
WORK
12345
8292=1024x8+100
主存空间
下一页
上一页
停止放映
第 41页
分段管理特点
优点:
? 便于模块化处理
? 便于动态连接
? 便于分段共享
缺点:
? 硬件成本高,地址转换花费 CPU时间;
? 要为表格提供主存空间;
? 分段的最大尺寸受主存大小的限制。
下一页
上一页
停止放映
第 42页
分配算法简介
?首次适应算法 从第 1个空白区开始查寻,
直到找到第 1个适应要求的空白区为止。
?最佳适应算法 空白区按大小递增顺序链
接,指针总是指向最小的一个;因此总是从
最小的一个开始。这样,第 1次找到的满足
要求的空白区必然是最合适的。
下一页
上一页
停止放映
第 43页
段页式存储管理
? 为了获得分段在逻辑上的优点和分页在管理存储空间
方面的优点,兼用分段和分页两种方法,即是段页式
存储管理。这种技术的基本思想是:用分段的方法来
分配和管理虚拟存储器,而用分页方法来分配和管理
实存储器(主存)。
这样一来,新的地址空间结构就变成由三个部分
组成:
段号 页号 页内位移量
S P W
下一页
上一页
停止放映
第 44页
段页式存储管理示意图
段表长度 段表始址
控制寄存器
段号 状态 页表长度 页表始址
0
1
2
3
1
0
0
1
L0
L4
页号 状态 存储块号
页号 状态 存储块号
0
1
2
1
1
1
1
1
1
0
1
2
3 1
OS
下一页
上一页
停止放映
第 45页
段页式存储管理说明
必须指出的是程序的分段,可由程序员
根据信息的逻辑结构来划分,而分页和
程序员无关,是系统自动进行的。也即
程序员使用的编址方式给出的目标程序
的地址形式仍然是二维的,即段号加段
内相对地址。而只是由地址变换机构把
段内相对地址的高位解释为页号,低位
解释为页内相对地址。
下一页
上一页
停止放映
第 46页
DOS的主存管理
? 采用单一连续分区的方法,
但却综合运用了多连续分区
的管理技术。
下一页
上一页
停止放映
第 47页
UNIX的主存管理
? 采用分段管理方法,存储分
配采用优先适应算法。
下一页
上一页
停止放映
第 48页
Windows‘98 存储器管理
? Windows98 OS不仅支持常规内存、扩展内存和扩
充内存管理,还支持虚拟内存管理( VM)。
? VM是 Win98内存管理的核心,它是通过硬盘来完成
与物理内存相关的功能;
? 它能够寻址 4GB空间,包括硬盘空间;
? 通过两个内存进程向应用程序提供大的虚拟内存空
间;一个是 换页进程,负责物理内存和硬盘之间移
动数据;另一个是 地址转换进程,负责将物理内存
地址翻译成虚拟内存地址或映射文件;
? 当一个进程所需要的存储空间超过了剩下可用的
RAM时,虚拟内存管理器便开始使用换页技术,在
物理内存和硬盘之间交换数据。
下一页
上一页
停止放映
第 49页
二、设备管理
? 计算机系统中的设备通常指 I/O(输入 /输出)
设备。由于计算机技术的飞速发展,I/O设
备的种类越来越多,设备管理和分配也越
来越复杂。与设备管理有关的概念有:
? I/O设备分类
? I/O设备与 CPU的通信方式
? 设备管理中使用的数据结构
? I/O设备分配的策略
下一页
上一页
停止放映
第 50页
1,I/O设备分类
从不同角度、按不同的方式,可对 I/O设备进行分类。
( 1)按设备使用方式分
? 输入设备 将信息由外部设备送入主机的设备。
? 输出设备 将信息由主机送到外部设备的设备。
( 2)按设备的从属关系分
? 系统设备 由 OS管理的标准设备;如显示器、打印
机、磁盘等。
? 用户设备 用户按特殊需要选装的、非标准设备;
如传真机、绘图仪等。
下一页
上一页
停止放映
第 51页
I/O设备分类(续)
( 3)按设备资源分配方式分
? 独享设备 为保证信息传送的连贯性,通常是在该设备用
完之后才分配给下一个作业。一般是低速设备,像打印机、
磁带机等。
? 共享设备 多用户可以同时使用的设备,如磁盘、
服务器等。
( 4)按数据组织和存取方式分
? 字符设备 以字符为单位存取数据的设备,如键盘、
鼠标、打印机等。
? 块设备 以数据块为单位存取数据的设备,如磁盘、
光盘等。
下一页
上一页
停止放映
第 52页
I/O设备分类(续)
( 5)按通讯方式分
? 串行设备 指每次按一位传送的设备,如键盘、
串行打印机等。
? 并行设备 指每次按多位传送的设备,如并行打印机。
( 6)按处理速度分
? 低速设备 指传输速率较低的串行设备,如键盘等。
? 高速设备 指传输速率较高的设备,如网络设备等。
下一页
上一页
停止放映
第 53页
设备管理的目的
? 方便性 方便用户使用和操作。
? 并行性 要求 I/O设备与 CPU之间、设备与通道之间、
通道于通道之间能并行处理,以提高系统的处理效
率。
? 均衡性 使 I/O设备的使用保持平衡,这样才能最大
限度的发挥设备的潜力和功效。解决设备均衡性的
最好方法是利用 SPOOLing技术和缓冲技术;例如
将共享磁盘作为虚拟设备。
? 与设备无关性 用户使用的设备与实际使用的设备
无关。即用户在程序中使用的是逻辑设备名,即使
在设备不开机或设备故障时,程序也能正常使用。
而要使用物理设备时,再通过命令等方式完成逻辑
设备到物理设备的转换。
下一页
上一页
停止放映
第 54页
SPOOLing技术
( Simultaneous Peripheral Operation On Line)
为解决高速 CPU和低速 I/O设备的矛盾,而采用的一种技术。
(直译为:联机同步外设操作)
早期采用脱机处理技术 如今采用假脱机处理技术
主机
小型机 输入机
输出机
输入数据来自输入机
输出数据送到输出机
磁盘
CPU输入机
输出机输入
流
输
出
流
通道 通道
下一页
上一页
停止放映
第 55页
设备管理的任务
1) 外部设备中断处理
2)外部设备接口程序设计和设备驱动
3)外部设备的分配与释放
4)虚拟设备的实现和管理
下一页
上一页
停止放映
第 56页
设备管理程序的任务
? 设备管理是由 设备管理程序 实现的,其
任务是:
( 1)按照用户需要控制 I/O设备工作,完成用户
所希望的 I/O操作。
( 2)按照分配策略将 I/O设备分配给对该设备提
出请求的进程。
( 3)在大、中型计算机系统中,I/O设备种类繁
多,其投资可占整个系统的 50%~80%。因此,
充分而有效的使用这些设备,尽可能提高它们
的并行操作程度是设备管理程序复杂而重要的
任务 。
下一页
上一页
停止放映
第 57页
设备管理的功能
? 记录系统中设备、控制器、通道的状态信息。
? 根据用户请求按分配策略分配 I/O设备、控制
器、通道。
? 实现 I/O操作。在操作、控制过程中,要对通
道发来的中断请求作出响应和处理。
? 其它功能。包括,对缓冲区进行有效的管理,
以提高 CPU和 I/O设备之间的并行操作,减少
中断;为改善系统的可适应性和可扩展性,应
使用户程序与实际使用的 I/O物理设备无关等。
下一页
上一页
停止放映
第 58页
2,I/O与 CPU的通信方式
? CPU和 I/O设备之间交换信息的方式不同,
也决定了信息交换的效率不同。选用何
种通信方式是需要考虑综合因素的。
信息交换方式一般可分为:
查询方式
中断处理方式
直接内存存取( DMA)方式
通道方式
下一页
上一页
停止放映
第 59页
( 1)循环探测 I/O方式
? 通过设置一个测试 I/O设备“忙 /闲”状态标志的触
发器。若它置“闲”,则执行 I/O操作,若它置
“忙”,则 CPU不断对它进行监测,直至设备
“闲”下来为止。在早期计算机系统中主要采用
这种方式。
? 由于 CPU速度比 I/O设备速度高得多,而循环测试
I/O方式使得 CPU与外部设备只能串行工作,因此
CPU绝大部分时间都处于等待 I/O设备完成的循环
测试中,CPU资源浪费极大。
优点,管理简单
缺点,浪费了 CPU资源
下一页
上一页
停止放映
第 60页
( 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处理中而不能
自拔。
下一页
上一页
停止放映
第 61页
( 3) DMA方式 ( Direct Memory Access)
? 中断方式只能提高 CPU的利用率,但在传送数据量
大、速度高的情况下,它的处理效率就不理想了。
? 目前在块设备的 I/O系统中,采用 DMA方式。它是
一种简单的通道方式,即在硬件的支持下,通过占
用总线控制权,实现信息交换。这种方法并不中断
当前 CPU的工作,而只是在 CPU暂停的几个周期内
由 DMA控制器实现信息交换。即 DMA为具有部分
CPU功能的装置。
优点,I/O操作处理速度快。
缺点,DMA方式只能完成简单的数据传输,不能
满足更复杂的 I/O操作要求,在大、中型计算机系统
中,普遍采用 I/O处理机来管理外部设备和主存之间
的信息交换。
下一页
上一页
停止放映
第 62页
直接内存存取方式示意图
DMA1
设备 1
主存
CPU DMA2 DMAn
设备 n设备 2
…...
…...
下一页
上一页
停止放映
第 63页
( 4)通道( Channel)方式
? 要想把 CPU从繁忙的杂务中解放出来,必
须使 I/O设备的管理不再依赖于 CPU。
,通道,是具有相对独立的 I/O处理能力
的装置。如大型机的前端机,PC机的
Intel 8090( I/O通道)等。在通道方式下,
I/O处理变成了处理机之间的通讯问题。
? 在采用通道方式的 I/O系统中,CPU有两
个作用:一是将 I/O操作任务下达给通道,
由通道代替 CPU专门处理 I/O工作;二是
随时了解通道、控制器和设备工作的情况。
下一页
上一页
停止放映
第 64页
1、按通道的结构分
( 1)结合型通道 早期计算机采用的一种通道结构,
为了节省设备,通道的大部分硬件和 CPU结合在一
起使用,所以其独立性、并行性都较差。
( 2)独立型通道 通道和 CPU完全分开,通道和
CPU的并行性、独立性都较强,但成本较高。
2、按 I/O信息传送方式分
( 1)字符多路通道
( 2)选择通道
( 3)数组多路通道
通道的分类
下一页
上一页
停止放映
第 65页
通道连接方式
? 由于通道的引入,使得 CPU和通道、通道和通道、以及通
道和设备之间充分并行,从此 I/O系统就形成了一个完整的、
独立的系统结构。通道的连接方式有两种:
( 1)单通道连接 ( 2)多通道连接
CPU
浪费、不可靠
CU1CH1
CPU
CH2
CH1
CH2
CU1
CU2
CU2
DV1
DV2
DV3
DV4
DV1
DV2
DV1DV3
DV4可靠、资源充分利用
通道 控制器
I/O设备
下一页
上一页
停止放映
第 66页
① 字节多路通道
? 以字节为单位、按字节交叉方式传送信息
的通道,即每次当前子通道控制 I/O设备交
换完一个字节后,便立即空出字节多路通
道,让另一个子通道使用。
? 因为字节多路通道速度很高,I/O设备速度
低(如键盘、打印机),所以一个字节多
路通道可以连接多个低速的 I/O设备。
优点,通道利用率高
缺点,数据传输的速率低(字符设备)
下一页
上一页
停止放映
第 67页
② 数据选择通道
? 按成组方式传输数据,每次传送一批,故传送速
率很高。
? 选择通道只有一个分配型子通道,该子通道可以
连接多台 I/O设备,但在一段时间内,只允许一
台 I/O设备进行数据传输操作。当某一台设备的
操作占用了该子通道后,它将以独占的方式运行,
直到释放为止。因此这种方式的通道利用率很低。
优点,传输数据的速度快
缺点,通道利用率低
下一页
上一页
停止放映
第 68页
③ 数组多路通道
? 字符多路 通道和选择通道各有利弊,数组
多路通道就是结合前两者的优点而形成的
通道方式。
? 数组多路通道有多个非分配型子通道,它
可以连接多台高速 I/O设备,数据传输按成
组方式进行,几个通道程序分时并行工作。
因此,这种方式被广泛用来连接高、中速
I/O设备。
优点,较高传输速率和较高的通道利用率。
缺点,成本较高
下一页
上一页
停止放映
第 69页
3、设备管理系统
? 当某进程发出 I/O操作申请后,具体 I/O
操作的实现是由设备分配程序来完成
的。这其中包括:根据分配策略对 I/O
设备进行分配、分配相应的控制器和
通道、形成数据传输的通路、完成主
存和设备之间的信息交换等。
? 设备分配程序由 I/O交通管制程序和 I/O
调度程序构成。
下一页
上一页
停止放映
第 70页
( 1)设备管理有关的数据结构
? 为了对系统中的设备实行有效的管理,
设置了一整套数据结构,包括,系统设
备表( SDT)、设备控制表( DCT)、
控制器控制表( COCT) 以及 通道控制
表( CHCT),称这些表格的数据为
,设备管理数据基,。
? 也可以说,设备的管理,实际上是对这
些相关数据的表格的管理。
下一页
上一页
停止放映
第 71页
SDT 系统设备表 ( System Device Table)
? SDT表记录着系统中全部标准 I/O设备,一种设备一
个表项。 内容包括:
设备 1
设备 i
…...
SDT 设备 i特征信息
设备类
设备标识符
进程标识符
设备接口模块标识符
每一种设备又建立相应的设备控制块、控制器控
制块和通道控制块。
下一页
上一页
停止放映
第 72页
DCT 设备控制表 ( Device Control Table)
? 为了实现对设备的控制,每一种设备都在 DCT表中
有一个表项,内容包括:
DCT
DCT1
DCTi
……
设备类型
设备标识符
设备状态 (忙 /闲 )
与设备连接的控制器表指针
重复执行次数或时间 **
设备队列队头指针
设备队列队尾指针注,表示若出错,重复
执行的次数或时间。
下一页
上一页
停止放映
第 73页
COCT控制器控制表 ( COntroller Control Table)
? 为了实现对控制器的控制,每一个控制器
都在 COCT表中有一个表项,内容包括:
COCT
COCT1
COCTi
……
控制器标识符
控制器状态 (忙 /闲 )
与控制器连接的通道表指针
控制器队列队头指针
控制器队列队尾指针
下一页
上一页
停止放映
第 74页
CHCT 通道控制表 ( CHannel Control Table)
? 为了实现对通道的控制,每一个通道都在 CHCT表
中有一个表项,内容包括:
CHCT
CHCT1
CHCTi
……
通道标识符
通道状态 (忙 /闲 )
与通道连接的控制器表指针
通道队列队头指针
通道队列队尾指针
下一页
上一页
停止放映
第 75页
基于数据基的管理示意图
设备管理程序
SDT
DCT COCT CHCT
申请 I/O 申请控制器 申请通道
队列 队列 队列
下一页
上一页
停止放映
第 76页
( 2) I/O设备分配策略及实现
? I/O设备分配程序( I/O调度程序)的主
要功能是为了满足用户的 I/O请求,确
定设备、控制器和通道的分配策略。
? 在多道程序系统中,进程数往往多于
资源数,从而产生资源竞争。为使系
统有条不紊地工作,I/O设备分配管理
要遵循统一的、合理的分配原则。
下一页
上一页
停止放映
第 77页
与分配策略有关的因素
?I/O设备的固有属性
?I/O设备的分配算法
? 设备的安全性
? 与设备的无关性
下一页
上一页
停止放映
第 78页
① I/O设备的固有属性
? 设备的属性不同要采用不同的分配方式。
? 独享设备 是一些慢速的设备,它不允许交
叉使用,并在使用过程中需要人工干预。
因此,一旦占用,只能到用完才能释放、
收回。
? 共享设备 如磁盘,其定位操作时间短,可
供直接存取操作,可由多进程共享使用,
所以采用共享分配方式。共享设备在系统
中主要用于存储文件。
下一页
上一页
停止放映
第 79页
② I/O设备的分配算法
? I/O调度程序的分配策略与进程调度策略基本相同,
但由于 I/O操作一旦启动,就不能停止的特点,因
此,不能采用进程调度的时间片轮转法。
? 先请求先分配 当多个进程对同一个设备提出
I/O请求时,系统按请求的先后次序将进程排队。
设备分配程序将 I/O设备分配给队列中第 1个进程。
? 优先数最高优先 系统优先响应优先数最高的
进程对 I/O设备的请求。对优先数相同的 I/O请求,
则按先请求先分配的原则处理。
下一页
上一页
停止放映
第 80页
③ 设备分配的安全性
? 在有些系统下,出于安全的考虑,限定一
个进程只能提出一个 I/O设备请求,以防
止可能产生“死锁”,导致设备分配不安
全。
? 设备分配程序在多请求方式中,为保证不
发生死锁,一般要采取预防发生死锁的措
施。
下一页
上一页
停止放映
第 81页
④ 与设备无关性
? 为提高系统的可适应性和可扩展性,应使用户
程序和实际使用的物理设备无关。为此引入逻
辑设备名和物理设备名的概念。系统规定,在
用户程序中只允许使用逻辑设备名。
? 与设备无关性通常是通过系统提供的逻辑设备
和物理设备的映象表来实现的(也称为进程连
接表 PAT。若某逻辑设备已连接到相应的物理
设备上,则 PAT表中该物理设备表项由该类设
备的逻辑设备名和物理设备名组成)。
下一页
上一页
停止放映
第 82页
( 3) I/O设备分配的步骤
( 1) 分配设备 根据 I/O请求的逻辑设备名,找到其对
应的物理设备名,检索 SDT表,再找出其 DCT。判
别设备是否“忙”;若忙,则将该进程插入到等待
队列中排队;若闲,则调用分配程序进行分配。
( 2) 分配控制器 当系统把设备分配给某进程后,从
DCT中找出其对应的 COCT,判别可分配否。若忙,
则排队,否则,分配控制器。
( 3) 分配通道 通过 COCT可以找到 CHCT,也判别该
通道可分配否。不能分配,则排队等待;否则,就
可以执行 I/O操作了。
下一页
上一页
停止放映
第 83页
设备驱动程序
? 为了控制 I/O传输,系统必须为每类设备分别编
制一组 I/O处理程序,称这组程序为 设备驱动
程序 。驱动程序包括:
? 设备预置程序 当系统启动 I/O设备传输时,
预置设备的初始状态。
? 启动 I/O程序 负责启动设备传输,包括启动
通道。
? 设备中断处理程序 负责处理设备发出的各
种中断,如 I/O传输过程中的“故障中断”等。
下一页
上一页
停止放映
第 84页
设备驱动程序的说明
设备驱动程序一般由 I/O设备的生产厂
家提供。现在大多数 I/O设备是按统一的标
准、规范生产的。基本上可以做到“即插即
用”。但是,仍有少部分 I/O设备是非标准
的。这些非标准的 I/O设备的驱动程序是不
能通用的。使用时要注意。
下一页
上一页
停止放映
第 85页
思考与作业
1,思考:
– OS存储管理的对象与任务是什么?
– 什么是实存储管理和虚存储管理?
– 常用的主存管理方法有哪几种?各自的特点
是什么?
– OS设备管理包括哪些基本任务?
– 主处理机与设备的信息交换有哪几种基本方
法,各有何特点?
– 什么是设备分配和驱动?
2,作业:
下一页
上一页
停止放映
第 86页
结束语
谢谢,再见!
计算机软件基础
The software basic
of computer
主讲:刘志强
西安交通大学
计算机教学实验中心
第 9单元
存储器与设备管理
下一页
上一页
停止放映
第 2 页
教学目标
了解存储器与设备管理的
? 概念、任务及采用的方法和技术
下一页
上一页
停止放映
第 3 页
学习要求
通过本单元的学习,了解、弄清、掌握:
? 存储器与 设备 管理的概念、目的、任务
功能、存储分配、地址重定位、虚拟存储器
? 存储器与设备管理的常用方法和技术
单一连续区、多连续区、页式、段式等管理方法
? I/O设备的分类及用途
? I/O设备与 CPU的通信方式
— 循环测试、中断,DMA、通道方式
? 设备分配、管理的常用方法和技术
— SDT,DCT,COCT,CHCT表在设备管理机制
中的作用
下一页
上一页
停止放映
第 4 页
一、存储器管理
存储器( Memory) 能接收数据、保存
数据、而且能根据命令提供这些数据的装置。
存储管理 存储管理是针对的。主存是
CPU直接存取指令和数据的设备,所以,它
是系统程序和用户程序共享的重要系统资源。
如何 分配和管理有限的存储资源,是设计
人员甚至用户要研究、考虑的问题。
下一页
上一页
停止放映
第 5 页
存储器管理的目的
? 尽量方便用户
? 提高主存的利用率
下一页
上一页
停止放映
第 6 页
存储管理的主要功能
?存储分配 主存的分配和回收。为管理主存而设
置的相应的组织机制,记录主存的状态信息、已分
配、未分配块、分配策略等。
?存储容量 当用户所需存储空间大于可用主存容
量时,系统采用存储器的多级机制、虚拟存储、自
动覆盖等技术。
?地址变换 程序语言的符号地址空间到进程的物
理地址的转换。
?存储保护 在多道程序系统中,系统进程和用户
进程间、用户和用户进程间的存储空间的保护。
下一页
上一页
停止放映
第 7 页
存储空间的分配和释放
? 在计算机中,无论是系统程序、还是用户程序,无论
是数据、还是文件,凡要处理必须装入主存。如何管
理分配存储空间?
? 需要考虑和解决的问题:
? 在多层次存储结构中,如何确定存储位置?
? 系统程序和用户程序如何管理?
? 大于主存的程序能否运行?
? 多道程序处理系统如何管理各个程序的存储空间?
? 如何分配存储器?采用何种分配策略?
下一页
上一页
停止放映
第 8 页
多存储层次结构示意图
CPU
寄存器
高速缓冲存储器
主存储器
后援存储器
磁盘
外存储器
用于内、外存之间交换暂存。
内存储器
存放主存中程序的副本,再调用
该程序时,从高速缓存读取。
靠近 CPU的存储器,存取速度快。
由触发器组成;存放一个 Byte
( Bit,Word)
下一页
上一页
停止放映
第 9 页
存储分配方式
?直接分配 在源程序中直接使用主存的物理地址。对用
户要求高、使用不方便、易出错。早期计算
机系统中使用。
?静态分配 在作业装入前,由程序一次性说明作业所包
含的地址空间。确定后在整个程序执行过程
中不再改变。简单、利用率低、难于实现多道
程序对资源的共享。
?动态分配 在作业被装入主存或在执行过程中,才确定
其存储分配。管理复杂、但利用率高,容易实
现主存的资源共享。在现代多道程序系统中,
主要采用动态分配方式。
下一页
上一页
停止放映
第 10页
存储空间的地址变换
? 用户在程序中使用的是 符号名,编译系统在产生的目标程序中使
用的是 逻辑地址 (相对地址 ),而可执行程序在计算机中运行时使用
的是 物理地址 (绝对地址 )。由程序的符号名空间到运行时真正使
用的物理地址空间转换叫,地址转换,,
也称为程序的重定位。
int a;
float b;
char c;
源程序符号空间 目标程序地址空间 内存的存储空间
2FF0a的绝对地址
3EC0b的绝对地址
c的绝对地址 4DAA
0
X
a的逻辑地址
b的逻辑地址
c的逻辑地址
下一页
上一页
停止放映
第 11 页
地址重定位
? 将一个作业从它的逻辑地址变换成它要装入
的、或要重定位的主存地址的过程。在多道
程序系统中,为了方便用户的使用,对于每
个作业的主存空间可以看成是由地址 0开始
的连续的地址空间,称之为逻辑地址空间。
但作业运行是在主存,因此,要进行地址的
转换;称之为, 地址重定位”(地址映射)。
? 重定位两种方式,静态重定位 和 动态重定位 。
下一页
上一页
停止放映
第 12页
静态地址重定位
? 是指在作业执行之前进行的重定位。地址
转换工作主要靠 重定位装入程序 来完成。
这种方式简单、容易实现,无需硬件的支
持,是早期计算机采用的一种方式。
?缺点 是:
? 程序一经定位后就不能再在主存中移动;
? 要求作业分配连续的主存空间,主存资
源利用率低;
? 难于实现主存的资源共享。
下一页
上一页
停止放映
第 13页
静态重定位示意图
作业 A的地址空间 主存空间
??????
0
100
300
500
100
200
400
600
??????
INPUT 1,300
1 3 5 7
??????
INPUT 1,400
1 3 5 7
??????
作业的逻辑地址 100处是一个输入语句,从逻辑地址 300处,读 1个
记录。重定位到主存空间后,因为作业从物理地址 100处被装入,
输入语句的地址按序被定位在 200处,被读记录在 400处。
下一页
上一页
停止放映
第 14页
动态地址重定位
动态地址重定位 是在程序执行过程中进行的重定
位,更确切地说是在每次访问内存单元前才进行地
址变换。它是通过硬件的地址变换机构实现的。
设置一个 重定位寄存器 ( RR),用来存放装入主
存空间时的起始地址。
作业访问主存空间的地址是由 有效地址 加 重定位
寄存器的地址 来确定。
主存实际地址 = 有效地址 + 重定位寄存器内容
下一页
上一页
停止放映
第 15页
动态地址重定位示意图
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
下一页
上一页
停止放映
第 16页
动态地址重定位的特点
?目标模块装入主存时无需任何修改,因
而装入之后再移动也不会影响其正确运
行,这对存储管理时解决碎块问题极为
有利;
? 若一个模块由若干个相对独立的目标模
块组成,每个分别装入互不相邻的内存
区域,只要各模块有自己对应的重定位
寄存器。这样便于内存的充分利用和资
源的共享。
? 但是需要附加硬件的支持,增加了系统
的开销 。
下一页
上一页
停止放映
第 17页
存储空间的分区保护
? 在多道程序系统
的主存中,为了
保护系统程序的
安全,系统程序
和用户程序实际
使用的区域是隔
开的。
? 这种分割是靠硬
件实现的。用户
程序只能使用用
户区域的存储空
间。
系统
区域
用户
区域
主存空间的分区
保护示意图
下一页
上一页
停止放映
第 18页
主存空间的扩充
在计算机中,主存总是常数,要想
处理大、多的作业,就要想办法扩充主
存的空间。主导思想是:如何在有限的
主存空间中,处理大于主存的作业。
,自动覆盖” 技术和, 虚拟存储”
技术是扩充主存常用的、有效的方法。
下一页
上一页
停止放映
第 19页
自动覆盖技术
? 这种方法的主要作法是将大的程序划分
为主存中可以容纳的独立的逻辑处理段。
每次只调入其中的一段进行处理。早期
程序设计中,经常采用类似的方法处理
大的问题。例如,求解大型线性方程组,
就是采用,分块” 算法将大的系数矩阵
分为小块矩阵求解的。
下一页
上一页
停止放映
第 20页
虚拟存储器( Virtual Storage)
? 它的基本思想是把作业的地址空间和物理地址空
间视为两个不同的概念,采用内、外存结合的办
法,把部分外存作为主存使用,以此为用户提供
了足够大的地址空间 ——虚存空间 。用户可以在
这个地址空间内编程,而完全不考虑主存的大小。
虚拟存储器技术 是在硬件和软件的共同支持下实
现的。 硬件 负责虚实地址的转换; 软件 负责实存
(主存)和虚存(外存)之间的信息调度管理。
下一页
上一页
停止放映
第 21页
存储管理方法
常用的存储管理方法有:
? 单一连续区分配法
? 多连续区分配法
? 分页管理法
? 分段管理法
下一页
上一页
停止放映
第 22页
单一连续区分配法
方法要点:
把主存分为两个固定的存储区域;一个固定
地分配给 OS,另一个分配给用户程序。
硬件支持:
引入,篱笆( Fence)寄存器”,将 OS和用
户的使用区域分开。
用户程序定位(地址转换)方法:
采用,静态,法和,动态, 法;前者是在程
序装入前,一次性定位,之后不再改变。后
者是采用硬件的 定位寄存器,在程序执行过
程中实现动态定位。
下一页
上一页
停止放映
第 23页
单一连续区分配法示意图
已分配空间
OS
区域
用户
区域
自由空间
特点:
? 定位容易,使用简单
? 但在多道程序处理
情况下,主存资源
利用率低,浪费大。
下一页
上一页
停止放映
第 24页
单一连续区分配法示意图
2000
CPU +
操作系统
自由空间
用
户
区
域
主存空间定位寄存器
1500(逻辑地址) )
2000
3500
(绝对地址)
说明:
绝对地址 =基地址 +逻辑地址
基地址不同产生的绝对地址就不同。
下一页
上一页
停止放映
第 25页
多连续区分配法
? 方法要点,
把主存空间划分为若干个连续的区域,建立空
间分区表进行管理。
? 硬件支持,
增加新的保护装置 ——边界寄存器 LOW,UP,
限制分块的上、下边界。
? 方法分类,
采用,固定分区,和,变长分区,法。
下一页
上一页
停止放映
第 26页
固定分区(多连续分区)
? 在作业前,把主存划分为几个固定大小
的连续区域;
? 建立一个分配表,记录每个分区的大小、
区号、起始地址、及占用标志等信息。
? 在作业调度时,根据作业表来确定程序
的重定位地址。
下一页
上一页
停止放映
第 27页
固定分区示意图
区号 长度 起址 状态
1 8K 20K 已分
2 14K 30K 已分
3 28K 50K 已分
4 76K 80K 未分
分 区 表
操作系统
作业 A
作业 B
作业 C
第 1分区
第 2分区
第 3分区
未分区
20K
30K
50k
80K
主存“垃圾”
下一页
上一页
停止放映
第 28页
固定分区法特点
? 优点:
管理调度简单、分区策略适合于工作
负荷比较确定的系统。
? 缺点:
主存” 零头,太多,浪费严重;由
此而产生, 垃圾,回收问题。
下一页
上一页
停止放映
第 29页
变长分区(多连续分区 )
? 方法要点,
根据要装入作业的实际大小划分区域,且分区
个数也可以调整;建立两张表:已分配分区表 P
和未分配分区表 F,来管理主存空间。
? 特点:
作为优点来说,主存“零头”较小(但还有);
作为缺点来说:
? 选择剩下的空白区较小,无法使用;
? 寻找一个较大的空白区费时(从头找起);
? 归并主存“零头”,回收时费时。
下一页
上一页
停止放映
第 30页
多连续区分配法示意图
已
分
配
分
区
表
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
下一页
上一页
停止放映
第 31页
分页管理法基本概念
? 页 ( Page) 将作业的地址空间划分为等长的单位,
称为页。
? 块 将主存的存储空间划分为等长的单位,称为块。
? 页表 每个页在页表中有一个表项,记录着页号与
该页在主存中的块号的对应关系;页表实际上是地
址重定位表。
? 作业表 作业与页号管理对照表,每个作业有一个表
项;表项由作业号、页表长度、页表起始地址、状
态等信息组成。
? 动态地址变换机制 为了实现从作业的地址空间到主
存物理空间的映射而设置的一种硬件部件;地址结
构如下:
P W
P 为页号 W 为页内偏移量
下一页
上一页
停止放映
第 32页
分页管理法
? 方法要点:
将主存空间按定长划分为页、与存储空
间的存储块一一对应。通过对页表和作
业表的管理,实现对作业管理的目的。
? 硬件支持:
自动将地址空间划分为两部分:
页号 +页内偏移
下一页
上一页
停止放映
第 33页
分页管理法算法描述
? 分页管理法是将作业在逻辑地址空间中划分为
页,通过页表与主存空间的块一一对应起来。
作业中的逻辑地址通过 动态地址转换机制
转换为:
页号,页内地址 块号,块内地址
从而实现存储空间的管理。
? 分页管理可以处理不连续的地址空间和物理空
间。
自动
对应
下一页
上一页
停止放映
第 34页
分页管理法示意图
作业号 页表长 页表起址 状态
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
下一页
上一页
停止放映
第 35页
动态地址变换示意图
控制寄存器
作业地址空间
作业页表1 2 3 4
LOAD 1,2500
页表长度 页表始址
有效地址
2 452
页号 块号
0 4
1 6
2 8 8 452
物理地址 = 8644
页号
2500 = 2x1024+452
1
100
1K
2K
2500
3K
下一页
上一页
停止放映
第 36页
分页管理法特点
? 优点:
? 有效地解决了存储空间的,零头垃圾,问题;
? 易于实现代码段的共享;
? 用户可以连续编址。
? 缺点:
? 采用硬件的动态变址机构,
? 成本大、降低了 CPU速度;
? 各种管理表格占用了部分存储空间;
? 块内还有“零头”;
? 要求运行的作业必须全部装入主存。
下一页
上一页
停止放映
第 37页
分段管理的基本概念
? 段
将程序划分为相互独立、具有一定逻辑功能的模
块、且分别按名单独存放,称这些模块为段。
? 段表
为便于作业管理,系统建立的表格;每个作业一
个表项。表项由段号、段长度、段起始地址组成。
? 二维地址空间
用两个参数才能唯一确定地址的空间。
? 地址映射
两个不同空间地址的一一对应的转换。
下一页
上一页
停止放映
第 38页
分段管理
? 方法要点:
将作业分段后,段内的逻辑地址是二维
空间的地址(段,段内偏移量)。通过
分段表以及地址映射机构将二维地址空
间的逻辑地址转换为一维主存空间中的
物理地址。
? 硬件支持:
地址映射机构:自动将作业中的逻辑地
址划分为 段 和 段内偏移量 。
下一页
上一页
停止放映
第 39页
分段管理举例
有一个程序划分为 4段,如下图所示:
0
1K
0
500
0
300
0
200
主程序
子程序 SUB 数据块DATE
工作区
WORK
CALL[SUB] |<Y>
LOAD 1,[DATA]| 6
STORE 1,
[WORK]|<C>
CALL[SUB] |<Y> 转到子程序 SUB中的入口处,Y”;
LOAD 1,[DATA]| 6 将数据区 DATA的第 6单元的值读入寄存器 1;
STORE 1,[WORK]|<C>将寄存器 1的内容存入 WORK中 C单元。
Y,6 C:
下一页
上一页
停止放映
第 40页
分段管理示意图
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
DATA
LOAD1,1
| 100 主程序
SUB
WORK
12345
8292=1024x8+100
主存空间
下一页
上一页
停止放映
第 41页
分段管理特点
优点:
? 便于模块化处理
? 便于动态连接
? 便于分段共享
缺点:
? 硬件成本高,地址转换花费 CPU时间;
? 要为表格提供主存空间;
? 分段的最大尺寸受主存大小的限制。
下一页
上一页
停止放映
第 42页
分配算法简介
?首次适应算法 从第 1个空白区开始查寻,
直到找到第 1个适应要求的空白区为止。
?最佳适应算法 空白区按大小递增顺序链
接,指针总是指向最小的一个;因此总是从
最小的一个开始。这样,第 1次找到的满足
要求的空白区必然是最合适的。
下一页
上一页
停止放映
第 43页
段页式存储管理
? 为了获得分段在逻辑上的优点和分页在管理存储空间
方面的优点,兼用分段和分页两种方法,即是段页式
存储管理。这种技术的基本思想是:用分段的方法来
分配和管理虚拟存储器,而用分页方法来分配和管理
实存储器(主存)。
这样一来,新的地址空间结构就变成由三个部分
组成:
段号 页号 页内位移量
S P W
下一页
上一页
停止放映
第 44页
段页式存储管理示意图
段表长度 段表始址
控制寄存器
段号 状态 页表长度 页表始址
0
1
2
3
1
0
0
1
L0
L4
页号 状态 存储块号
页号 状态 存储块号
0
1
2
1
1
1
1
1
1
0
1
2
3 1
OS
下一页
上一页
停止放映
第 45页
段页式存储管理说明
必须指出的是程序的分段,可由程序员
根据信息的逻辑结构来划分,而分页和
程序员无关,是系统自动进行的。也即
程序员使用的编址方式给出的目标程序
的地址形式仍然是二维的,即段号加段
内相对地址。而只是由地址变换机构把
段内相对地址的高位解释为页号,低位
解释为页内相对地址。
下一页
上一页
停止放映
第 46页
DOS的主存管理
? 采用单一连续分区的方法,
但却综合运用了多连续分区
的管理技术。
下一页
上一页
停止放映
第 47页
UNIX的主存管理
? 采用分段管理方法,存储分
配采用优先适应算法。
下一页
上一页
停止放映
第 48页
Windows‘98 存储器管理
? Windows98 OS不仅支持常规内存、扩展内存和扩
充内存管理,还支持虚拟内存管理( VM)。
? VM是 Win98内存管理的核心,它是通过硬盘来完成
与物理内存相关的功能;
? 它能够寻址 4GB空间,包括硬盘空间;
? 通过两个内存进程向应用程序提供大的虚拟内存空
间;一个是 换页进程,负责物理内存和硬盘之间移
动数据;另一个是 地址转换进程,负责将物理内存
地址翻译成虚拟内存地址或映射文件;
? 当一个进程所需要的存储空间超过了剩下可用的
RAM时,虚拟内存管理器便开始使用换页技术,在
物理内存和硬盘之间交换数据。
下一页
上一页
停止放映
第 49页
二、设备管理
? 计算机系统中的设备通常指 I/O(输入 /输出)
设备。由于计算机技术的飞速发展,I/O设
备的种类越来越多,设备管理和分配也越
来越复杂。与设备管理有关的概念有:
? I/O设备分类
? I/O设备与 CPU的通信方式
? 设备管理中使用的数据结构
? I/O设备分配的策略
下一页
上一页
停止放映
第 50页
1,I/O设备分类
从不同角度、按不同的方式,可对 I/O设备进行分类。
( 1)按设备使用方式分
? 输入设备 将信息由外部设备送入主机的设备。
? 输出设备 将信息由主机送到外部设备的设备。
( 2)按设备的从属关系分
? 系统设备 由 OS管理的标准设备;如显示器、打印
机、磁盘等。
? 用户设备 用户按特殊需要选装的、非标准设备;
如传真机、绘图仪等。
下一页
上一页
停止放映
第 51页
I/O设备分类(续)
( 3)按设备资源分配方式分
? 独享设备 为保证信息传送的连贯性,通常是在该设备用
完之后才分配给下一个作业。一般是低速设备,像打印机、
磁带机等。
? 共享设备 多用户可以同时使用的设备,如磁盘、
服务器等。
( 4)按数据组织和存取方式分
? 字符设备 以字符为单位存取数据的设备,如键盘、
鼠标、打印机等。
? 块设备 以数据块为单位存取数据的设备,如磁盘、
光盘等。
下一页
上一页
停止放映
第 52页
I/O设备分类(续)
( 5)按通讯方式分
? 串行设备 指每次按一位传送的设备,如键盘、
串行打印机等。
? 并行设备 指每次按多位传送的设备,如并行打印机。
( 6)按处理速度分
? 低速设备 指传输速率较低的串行设备,如键盘等。
? 高速设备 指传输速率较高的设备,如网络设备等。
下一页
上一页
停止放映
第 53页
设备管理的目的
? 方便性 方便用户使用和操作。
? 并行性 要求 I/O设备与 CPU之间、设备与通道之间、
通道于通道之间能并行处理,以提高系统的处理效
率。
? 均衡性 使 I/O设备的使用保持平衡,这样才能最大
限度的发挥设备的潜力和功效。解决设备均衡性的
最好方法是利用 SPOOLing技术和缓冲技术;例如
将共享磁盘作为虚拟设备。
? 与设备无关性 用户使用的设备与实际使用的设备
无关。即用户在程序中使用的是逻辑设备名,即使
在设备不开机或设备故障时,程序也能正常使用。
而要使用物理设备时,再通过命令等方式完成逻辑
设备到物理设备的转换。
下一页
上一页
停止放映
第 54页
SPOOLing技术
( Simultaneous Peripheral Operation On Line)
为解决高速 CPU和低速 I/O设备的矛盾,而采用的一种技术。
(直译为:联机同步外设操作)
早期采用脱机处理技术 如今采用假脱机处理技术
主机
小型机 输入机
输出机
输入数据来自输入机
输出数据送到输出机
磁盘
CPU输入机
输出机输入
流
输
出
流
通道 通道
下一页
上一页
停止放映
第 55页
设备管理的任务
1) 外部设备中断处理
2)外部设备接口程序设计和设备驱动
3)外部设备的分配与释放
4)虚拟设备的实现和管理
下一页
上一页
停止放映
第 56页
设备管理程序的任务
? 设备管理是由 设备管理程序 实现的,其
任务是:
( 1)按照用户需要控制 I/O设备工作,完成用户
所希望的 I/O操作。
( 2)按照分配策略将 I/O设备分配给对该设备提
出请求的进程。
( 3)在大、中型计算机系统中,I/O设备种类繁
多,其投资可占整个系统的 50%~80%。因此,
充分而有效的使用这些设备,尽可能提高它们
的并行操作程度是设备管理程序复杂而重要的
任务 。
下一页
上一页
停止放映
第 57页
设备管理的功能
? 记录系统中设备、控制器、通道的状态信息。
? 根据用户请求按分配策略分配 I/O设备、控制
器、通道。
? 实现 I/O操作。在操作、控制过程中,要对通
道发来的中断请求作出响应和处理。
? 其它功能。包括,对缓冲区进行有效的管理,
以提高 CPU和 I/O设备之间的并行操作,减少
中断;为改善系统的可适应性和可扩展性,应
使用户程序与实际使用的 I/O物理设备无关等。
下一页
上一页
停止放映
第 58页
2,I/O与 CPU的通信方式
? CPU和 I/O设备之间交换信息的方式不同,
也决定了信息交换的效率不同。选用何
种通信方式是需要考虑综合因素的。
信息交换方式一般可分为:
查询方式
中断处理方式
直接内存存取( DMA)方式
通道方式
下一页
上一页
停止放映
第 59页
( 1)循环探测 I/O方式
? 通过设置一个测试 I/O设备“忙 /闲”状态标志的触
发器。若它置“闲”,则执行 I/O操作,若它置
“忙”,则 CPU不断对它进行监测,直至设备
“闲”下来为止。在早期计算机系统中主要采用
这种方式。
? 由于 CPU速度比 I/O设备速度高得多,而循环测试
I/O方式使得 CPU与外部设备只能串行工作,因此
CPU绝大部分时间都处于等待 I/O设备完成的循环
测试中,CPU资源浪费极大。
优点,管理简单
缺点,浪费了 CPU资源
下一页
上一页
停止放映
第 60页
( 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处理中而不能
自拔。
下一页
上一页
停止放映
第 61页
( 3) DMA方式 ( Direct Memory Access)
? 中断方式只能提高 CPU的利用率,但在传送数据量
大、速度高的情况下,它的处理效率就不理想了。
? 目前在块设备的 I/O系统中,采用 DMA方式。它是
一种简单的通道方式,即在硬件的支持下,通过占
用总线控制权,实现信息交换。这种方法并不中断
当前 CPU的工作,而只是在 CPU暂停的几个周期内
由 DMA控制器实现信息交换。即 DMA为具有部分
CPU功能的装置。
优点,I/O操作处理速度快。
缺点,DMA方式只能完成简单的数据传输,不能
满足更复杂的 I/O操作要求,在大、中型计算机系统
中,普遍采用 I/O处理机来管理外部设备和主存之间
的信息交换。
下一页
上一页
停止放映
第 62页
直接内存存取方式示意图
DMA1
设备 1
主存
CPU DMA2 DMAn
设备 n设备 2
…...
…...
下一页
上一页
停止放映
第 63页
( 4)通道( Channel)方式
? 要想把 CPU从繁忙的杂务中解放出来,必
须使 I/O设备的管理不再依赖于 CPU。
,通道,是具有相对独立的 I/O处理能力
的装置。如大型机的前端机,PC机的
Intel 8090( I/O通道)等。在通道方式下,
I/O处理变成了处理机之间的通讯问题。
? 在采用通道方式的 I/O系统中,CPU有两
个作用:一是将 I/O操作任务下达给通道,
由通道代替 CPU专门处理 I/O工作;二是
随时了解通道、控制器和设备工作的情况。
下一页
上一页
停止放映
第 64页
1、按通道的结构分
( 1)结合型通道 早期计算机采用的一种通道结构,
为了节省设备,通道的大部分硬件和 CPU结合在一
起使用,所以其独立性、并行性都较差。
( 2)独立型通道 通道和 CPU完全分开,通道和
CPU的并行性、独立性都较强,但成本较高。
2、按 I/O信息传送方式分
( 1)字符多路通道
( 2)选择通道
( 3)数组多路通道
通道的分类
下一页
上一页
停止放映
第 65页
通道连接方式
? 由于通道的引入,使得 CPU和通道、通道和通道、以及通
道和设备之间充分并行,从此 I/O系统就形成了一个完整的、
独立的系统结构。通道的连接方式有两种:
( 1)单通道连接 ( 2)多通道连接
CPU
浪费、不可靠
CU1CH1
CPU
CH2
CH1
CH2
CU1
CU2
CU2
DV1
DV2
DV3
DV4
DV1
DV2
DV1DV3
DV4可靠、资源充分利用
通道 控制器
I/O设备
下一页
上一页
停止放映
第 66页
① 字节多路通道
? 以字节为单位、按字节交叉方式传送信息
的通道,即每次当前子通道控制 I/O设备交
换完一个字节后,便立即空出字节多路通
道,让另一个子通道使用。
? 因为字节多路通道速度很高,I/O设备速度
低(如键盘、打印机),所以一个字节多
路通道可以连接多个低速的 I/O设备。
优点,通道利用率高
缺点,数据传输的速率低(字符设备)
下一页
上一页
停止放映
第 67页
② 数据选择通道
? 按成组方式传输数据,每次传送一批,故传送速
率很高。
? 选择通道只有一个分配型子通道,该子通道可以
连接多台 I/O设备,但在一段时间内,只允许一
台 I/O设备进行数据传输操作。当某一台设备的
操作占用了该子通道后,它将以独占的方式运行,
直到释放为止。因此这种方式的通道利用率很低。
优点,传输数据的速度快
缺点,通道利用率低
下一页
上一页
停止放映
第 68页
③ 数组多路通道
? 字符多路 通道和选择通道各有利弊,数组
多路通道就是结合前两者的优点而形成的
通道方式。
? 数组多路通道有多个非分配型子通道,它
可以连接多台高速 I/O设备,数据传输按成
组方式进行,几个通道程序分时并行工作。
因此,这种方式被广泛用来连接高、中速
I/O设备。
优点,较高传输速率和较高的通道利用率。
缺点,成本较高
下一页
上一页
停止放映
第 69页
3、设备管理系统
? 当某进程发出 I/O操作申请后,具体 I/O
操作的实现是由设备分配程序来完成
的。这其中包括:根据分配策略对 I/O
设备进行分配、分配相应的控制器和
通道、形成数据传输的通路、完成主
存和设备之间的信息交换等。
? 设备分配程序由 I/O交通管制程序和 I/O
调度程序构成。
下一页
上一页
停止放映
第 70页
( 1)设备管理有关的数据结构
? 为了对系统中的设备实行有效的管理,
设置了一整套数据结构,包括,系统设
备表( SDT)、设备控制表( DCT)、
控制器控制表( COCT) 以及 通道控制
表( CHCT),称这些表格的数据为
,设备管理数据基,。
? 也可以说,设备的管理,实际上是对这
些相关数据的表格的管理。
下一页
上一页
停止放映
第 71页
SDT 系统设备表 ( System Device Table)
? SDT表记录着系统中全部标准 I/O设备,一种设备一
个表项。 内容包括:
设备 1
设备 i
…...
SDT 设备 i特征信息
设备类
设备标识符
进程标识符
设备接口模块标识符
每一种设备又建立相应的设备控制块、控制器控
制块和通道控制块。
下一页
上一页
停止放映
第 72页
DCT 设备控制表 ( Device Control Table)
? 为了实现对设备的控制,每一种设备都在 DCT表中
有一个表项,内容包括:
DCT
DCT1
DCTi
……
设备类型
设备标识符
设备状态 (忙 /闲 )
与设备连接的控制器表指针
重复执行次数或时间 **
设备队列队头指针
设备队列队尾指针注,表示若出错,重复
执行的次数或时间。
下一页
上一页
停止放映
第 73页
COCT控制器控制表 ( COntroller Control Table)
? 为了实现对控制器的控制,每一个控制器
都在 COCT表中有一个表项,内容包括:
COCT
COCT1
COCTi
……
控制器标识符
控制器状态 (忙 /闲 )
与控制器连接的通道表指针
控制器队列队头指针
控制器队列队尾指针
下一页
上一页
停止放映
第 74页
CHCT 通道控制表 ( CHannel Control Table)
? 为了实现对通道的控制,每一个通道都在 CHCT表
中有一个表项,内容包括:
CHCT
CHCT1
CHCTi
……
通道标识符
通道状态 (忙 /闲 )
与通道连接的控制器表指针
通道队列队头指针
通道队列队尾指针
下一页
上一页
停止放映
第 75页
基于数据基的管理示意图
设备管理程序
SDT
DCT COCT CHCT
申请 I/O 申请控制器 申请通道
队列 队列 队列
下一页
上一页
停止放映
第 76页
( 2) I/O设备分配策略及实现
? I/O设备分配程序( I/O调度程序)的主
要功能是为了满足用户的 I/O请求,确
定设备、控制器和通道的分配策略。
? 在多道程序系统中,进程数往往多于
资源数,从而产生资源竞争。为使系
统有条不紊地工作,I/O设备分配管理
要遵循统一的、合理的分配原则。
下一页
上一页
停止放映
第 77页
与分配策略有关的因素
?I/O设备的固有属性
?I/O设备的分配算法
? 设备的安全性
? 与设备的无关性
下一页
上一页
停止放映
第 78页
① I/O设备的固有属性
? 设备的属性不同要采用不同的分配方式。
? 独享设备 是一些慢速的设备,它不允许交
叉使用,并在使用过程中需要人工干预。
因此,一旦占用,只能到用完才能释放、
收回。
? 共享设备 如磁盘,其定位操作时间短,可
供直接存取操作,可由多进程共享使用,
所以采用共享分配方式。共享设备在系统
中主要用于存储文件。
下一页
上一页
停止放映
第 79页
② I/O设备的分配算法
? I/O调度程序的分配策略与进程调度策略基本相同,
但由于 I/O操作一旦启动,就不能停止的特点,因
此,不能采用进程调度的时间片轮转法。
? 先请求先分配 当多个进程对同一个设备提出
I/O请求时,系统按请求的先后次序将进程排队。
设备分配程序将 I/O设备分配给队列中第 1个进程。
? 优先数最高优先 系统优先响应优先数最高的
进程对 I/O设备的请求。对优先数相同的 I/O请求,
则按先请求先分配的原则处理。
下一页
上一页
停止放映
第 80页
③ 设备分配的安全性
? 在有些系统下,出于安全的考虑,限定一
个进程只能提出一个 I/O设备请求,以防
止可能产生“死锁”,导致设备分配不安
全。
? 设备分配程序在多请求方式中,为保证不
发生死锁,一般要采取预防发生死锁的措
施。
下一页
上一页
停止放映
第 81页
④ 与设备无关性
? 为提高系统的可适应性和可扩展性,应使用户
程序和实际使用的物理设备无关。为此引入逻
辑设备名和物理设备名的概念。系统规定,在
用户程序中只允许使用逻辑设备名。
? 与设备无关性通常是通过系统提供的逻辑设备
和物理设备的映象表来实现的(也称为进程连
接表 PAT。若某逻辑设备已连接到相应的物理
设备上,则 PAT表中该物理设备表项由该类设
备的逻辑设备名和物理设备名组成)。
下一页
上一页
停止放映
第 82页
( 3) I/O设备分配的步骤
( 1) 分配设备 根据 I/O请求的逻辑设备名,找到其对
应的物理设备名,检索 SDT表,再找出其 DCT。判
别设备是否“忙”;若忙,则将该进程插入到等待
队列中排队;若闲,则调用分配程序进行分配。
( 2) 分配控制器 当系统把设备分配给某进程后,从
DCT中找出其对应的 COCT,判别可分配否。若忙,
则排队,否则,分配控制器。
( 3) 分配通道 通过 COCT可以找到 CHCT,也判别该
通道可分配否。不能分配,则排队等待;否则,就
可以执行 I/O操作了。
下一页
上一页
停止放映
第 83页
设备驱动程序
? 为了控制 I/O传输,系统必须为每类设备分别编
制一组 I/O处理程序,称这组程序为 设备驱动
程序 。驱动程序包括:
? 设备预置程序 当系统启动 I/O设备传输时,
预置设备的初始状态。
? 启动 I/O程序 负责启动设备传输,包括启动
通道。
? 设备中断处理程序 负责处理设备发出的各
种中断,如 I/O传输过程中的“故障中断”等。
下一页
上一页
停止放映
第 84页
设备驱动程序的说明
设备驱动程序一般由 I/O设备的生产厂
家提供。现在大多数 I/O设备是按统一的标
准、规范生产的。基本上可以做到“即插即
用”。但是,仍有少部分 I/O设备是非标准
的。这些非标准的 I/O设备的驱动程序是不
能通用的。使用时要注意。
下一页
上一页
停止放映
第 85页
思考与作业
1,思考:
– OS存储管理的对象与任务是什么?
– 什么是实存储管理和虚存储管理?
– 常用的主存管理方法有哪几种?各自的特点
是什么?
– OS设备管理包括哪些基本任务?
– 主处理机与设备的信息交换有哪几种基本方
法,各有何特点?
– 什么是设备分配和驱动?
2,作业:
下一页
上一页
停止放映
第 86页
结束语
谢谢,再见!