第二部分 4-6章
第四章 存储管理
存储管理的基本概念
4.1.1 存储管理研究的课题
解决的问题:
- 存储分配问题:重点是研究存储共享和各种分配算法
- 地址再定位问题:研究各种地址变化机构,以及静态和动态再定位方法
- 存储保护问题:研究保护各类程序、数据区的方法
- 存储扩充问题:主要研究虚拟存储器问题及其各种调度算法
4.1.2 地址再定位
一个逻辑地址空间的程序装入到物理地址空间时,由于两个空间不一致,就需要进行地址变换,即地址的再定位
4.2.1 单一连续分配
优点是:方法简单、易于实现
缺点是:仅仅适用于单道程序,因而不能使处理机和主存得到充分利用
4.2.2 分区分配
分区分配是能满足多道程序设计需要的一种最简单的存储管理技术,分区管理法也称界地址存储管理法。
有
- 固定式分区
- 可变式分区
- 可再定位式分区分配
- 多重分区分配
优点:
- 实现了主存的共享
- 所占存储容量较少,算法也相对简单
- 实现存储保护的措施也比较简单
- 多重分区分配方案也能实现对子程序、数据段的共享
缺点:
- 主存不能充分利用
- 不能实现对主存的扩充
- 要求一个作业在执行之前必须全部放入主存
- 采用靠拢方法,虽然能解决碎片问题,需要处理大量信息,损失了处理机时间
- 除多重分区外,几个共行作业不不能共享存入主存的单一信息副本
4.3 分页存储管理
页面变换表
4.3.2 地址变换机构
动态地址变换机构DAT:
通过页面变换表来查找块号,慢、简单
每个作业都有一个页面变换表,通常各作业的页面变换表放在操作系统的一个工作区中,由页面变换地址寄存器(PMTAR)指出作业的页面变换表的起始地址
高速页面变换寄存器:
采用硬件的高速寄存器来实现作业地址空间到物理地址空间的变换
联想存储器:
一种折中的办法,高速寄存器作为DAT的辅助机构来实行地址变换,速度中等,费用中等
4.3.3 分页存储管理算法
- 作业表(JT):整个系统一张表
- 存储分块表(MBT):整个系统一张表
- 页面变换表(PMT):每个作业一张表
当有一个作业进入系统时,就在作业表上登记页表的长度及状态信息,并为PMT表分配一个存储区,然后将PMT表的起始地址填入作业表中,最后搜索存储分块表,将存储块号填入PMT表中
4.3.4 分页存储管理方案的评价
优点:
- 不必像浮动分区法执行费时的靠拢操作
- 消除了碎片,便于多道程序设计
缺点:
- 采用动态地址变换会增加计算机成本和降低处理机的速度
- 各种表格占用了一定容量的主存空间,还需花费一定的处理机时间用来建立和管理这些表格
- 消除了碎片,但是每个作业的最后一页一般都有不能充分利用的空白区
- 存储扩充问题还是没有得到解决
4.4 请求分页存储管理
分页存储管理系统根据请求装入所需页面的方法,称为请求分页存储管理
将某一页从实存移到辅存称为“出页”,从辅存调入实存称为“入页”,入页和出页的操作称为“分页”操作
系统抖动:在请求分页系统中,从实存中刚刚移走某个页面后,根据请求有调入该页,这种反复进行入页和出页的现象称为“抖动”
发生系统抖动,在于页面置换算法和程序的问题
4.4.2 页面置换算法
先进先出算法(FIFO):
最近最久未使用算法(LRU):
当需要置换一页时,选择在最近一段时间最久未用的页予以淘汰
普遍适用于各种类型的程序,但是实现起来比较困难。因为要对先前的访问历史加以记录和更新,如果由软件来做,则系统开销过大,如果由硬件来完成,则会增加计算机成本,所以实际应用的推广的时一种简单而有效的LRU近似算法
LRU近似算法:
在存储分块表或页面变换表中设一“引用位”,当存储分块表中的页被访问时,该位由硬件自动置“1”,而由页面管理软件周期的把所有引用位置“0”。置换时,选择引用位为“0”的页
4.4.3 性能分析
程序设计的质量主要指程序的局部化程度,包括时间局部化和空间局部化
- 时间局部化:一旦某个位置——数据或指令——被访问了,它常常很快又要再次被访问。可以通过循环、变量、子程序来实现
- 空间局部化:一旦某个位置被访问到,那么她附近的位置很快也要用到
第五章 文件系统
5.1 文件系统概述
5.1.3 文件系统的基本功能
- 文件的结构及有关存取方法
- 文件的目录结构和有关处理
- 文件存储空间的管理
- 文件的共享和存取控制
- 文件的操作和使用
5.2 文件的结构和存取法(具体应用)
5.2.2 文件的物理结构
连续结构(类似于定长数组):
知道文件存储的起始块号和文件块数,可以立即找到所需的信息。缺点是,建立文件时,需要用户给出文件的最大长度;不便于记录的增、删操作,一般只能在末端进行
串联结构(类似于链表):
动态增删,不需要事先声明文件的最大长度。缺点是只适合顺序存取,不便于直接存取。设置链接字破坏了物理信息的完整性
索引文件:
具备串联结构的所有优点,还克服了它的缺点,可以随机存取。缺点是增加了索引表的空间开销,存取文件时需要区得索引表,增加了一次访盘操作,降低了文件访问的速度
多个索引表块的组织方式:串联文件方式和多重索引方式
在UNIX系统中,文件的物理结构就采用多重索引结构
系统把常规文件分成小型(0~9,直接)、中型(10,间接)、大型(11,二次间接)和巨型(12,三次间接)四种文件
5.2.4 存取方法
5.3 文件目录
5.3.1 简单的文件目录
存在以下几个问题:
- 存在“重名”问题
- 当系统文件数量过多时,目录项数会很大,查找起来就要花费较长时间(效率问题)
解决问题的方法是建立二级或多级目录
5.4 文件存储空间的管理
5.4.1 空白文件目录
我们把盘空间上一个连续的未分配区域称为“空白文件”。系统为所有这些“空白文件”单独建立一个目录
这种方法仅当有少量空白文件时才有较好的效果。如果存储空间中有大量的小的空白文件,则使该目录变得很大,因而效率降低。其次,这种管理技术仅适用于连续文件
5.4.2 空白块链
采用链接结构时,释放和分配的空白块都可以在链首处进行,其主要问题时修改几个有关的链接字。
采用指针,要读几个盘块,工作量较大;采用索引表,工作简单,存储空间较大,对系统来说也是一种负担
UNIX使用了空白块成组链接法
5.4.3 位示图
一位代表一个物理块
分配和释放都可以在内存的位示图上完成,而且速度较快。这一优点是它能被广泛采用的主要原因。其缺点是,尽管位示图较小,但还是要占用存储空间
5.5 文件的共享
同名共享
异名共享:文件的勾连
- 允许目录项链接到目录树的任一节点上
- 只允许链接到数据文件的叶子节点上
实现方法:
- 基于索引节点的共享方法
- 基于符号链的共享方法:能跨越文件系统共享
5.5.2 打开文件结构中的共享
5.5.3 管道文件
一种特殊的打开文件,有以下部分组成:
- 一个外存索引节点
- 相应的内存索引节点
- 两个系统打开文件表
5.6 文件的存取控制
5.6.1 文件存取控制法
- 存取控制矩阵:优点是简单,缺点是不够经济。矩阵本身将占据大量空间
- 存取控制表:一个文件只于几个用户有关
- 用户权限表:
- 口令:优点是,对每个需要保护的文件只须提供少量的保护信息,口令的管理简单易于实现。缺点是,别人存取你的文件,要告诉别人口令,操作系统和系统程序员可能会得到系统的全部口令
- 加密:具有保密性强,节省存储空间的优点,但是是以花费大量编码和译码的时间为代价换来的
第六章 输入/输出系统
6.1 I/O设备类型
6.1.3 I/O系统的硬件组织
- 循环I/O测试方式
- 程序中断I/O方式
- DMA方式
- 通道方式
6.1 I/O系统的软件组织
6.3.1 I/O系统软件的层次结构
6.4 缓冲技术
为什么要有缓冲:缓冲技术的引入可明显的提高CPU与外设的并行程度,提高系统的处理能力和设备利用率
缓冲技术的基本思想是在CPU和外设之间设立缓冲区,用于暂存CPU和外设之间交换的数据,从而缓和CPU和外设速度不匹配产生的矛盾
6.5 磁盘的驱动调度
- 先来先服务算法FCFS
- 最短查找时间优先法SSTF
- 电梯调度算法