概述
什么是操作系统
对于现代操作系统中,人们常用四种观点来描述操作系统:
*用户环境的观点
计算机用户分为三类:
终端用户
程序员
系统设计者
操作系统为计算机用户提供了两种接口:
用户接口(User Interface)
编程接口 (Application Programming Interface,简称API)
*虚拟机的观点
*资源管理的观点
资源管理的观点是目前对操作系统描述的主要观点,
操作系统资源管理的主要功能如下:
(1)跟踪资源状态(2)分配资源(3)回收资源(4)保护资源。
*作业组织的观点
定义:操作系统是计算机系统中的一个系统软件,管理和控制计算机系统中的硬件和软件资源,合理地组织计算机的工作流程,以便有效利用这些资源为用户提供一个功能强大、使用方便的工作环境,从而在计算机与用户之间起接口的作用
操作系统的功能
*接口功能
1.命令接口:联机命令、脱机命令
2.程序接口
3.图形用户接口
*处理机管理:进程控制、进程同步、进程通信和进程调度。
*存储器管理
1、内存分配:静态分配、动态分配
2、内存保护
3、地址映射
逻辑地址:是指由目标程序所限定的地址范围称为该程序的地址空间,
该地址空间中的地址成为逻辑地址。
物理地址:是指描述内存空间的地址。
4、内存扩充
*设备管理
1、缓冲管理
2、设备分配
3、虚拟设备功能
独占设备:一次仅允许一个进程使用的设备称为独占设备。
*文件管理
1、文件目录管理
2、文件的逻辑组织与文件访问方式
堆文件、顺序文件、索引顺序文件、索引文件、直接访问文件(哈希文件)
3、文件存储空间的管理
4、文件共享与安全
现代操作系统的特征和基本概念
1、任务共行性:宏观和微观
2、资源共享性:宏观和微观
资源共享的两种方式:
*互斥共享
指多个进程使用资源时,在一段时间内只允许一个进程访问。比如:打印机、绘图仪等等
*同时共享
指系统资源允许在一段时间内由多个进程同时访问。这里的同时是宏观的,微观上还是交替访问系统资源,比如:硬盘等
3、虚拟性:将一个物理上的实体变为(映射为)若干个逻辑上的对应物。
4、不确定性:程序结果不确定、进程的执行和运行时间不确定
分布式系统和计算机网络的区别:
分布式系统的所有资源是共享的,由分布式操作系统进行集中、统一管理。整个系统对用户是透明的。
计算机网络中允许每台计算机配置自己的操作系统,通过网络协议实现网络资源的统一管理。网络操作系统不要求对网络资源进行透明访问。
存储器管理
3.1 存储管理的任务
3.1.1 存储分配
* 分配基本内存空间
* 增加新的内存空间
* 回收内存空间
3.1.2 地址映射
* 物理地址:
内存中的每个存储单元都有一个唯一的地址,这个地址就是物理地址(绝对地址)
* 逻辑地址:
描述程序空间的地址,叫逻辑地址(相对地址)。
* 逻辑地址向物理地址的转换
地址映射:在程序装入内存时,根据程序实际装入的物理地址来修改其逻辑地址
(将装入起始点的物理地址+逻辑地址)的过程叫地址映射(重定位)
* 实现地址映射的方法有两种
A、静态映射(静态重定位)
指地址变换只在程序装入时一次完成,程序运行时不再改变程序的物理地址。
优点:实现简单。
缺点:不适合分页式存储技术;不允许系统执行内存的碎片整理;无法实现虚拟存储管理。
B、动态映射(动态重定位)
指操作系统将程序装入内存以后,并不立即把目标程序中的逻辑地址转换为物理地址,
而是再处理机执行每一条指令时进行地址转换。
3.1.3 存储保护
* 防止地址越界 * 防止操作越权
存储保护说明:1.执行过程中动态执行 2.检查指针 3.由硬件完成,软件只是辅助
3.1.4 存储共享
存储共享的目的:* 进程之间相互通信;* 系统节约内存空间。
3.1.5 存储扩充
内存特点:速度快、容量较小、价格贵;
外存特点:速度慢、容量大、价格便宜。
3.2 内存划分与分配技术
* 静态划分 * 动态划分
3.2.1 静态划分:固定分区、分页技术
1、固定分区式划分:
* 等长分区:等长分区的各个分区的长度相同。
优点:分配简单;
缺点:浪费存储空间,可能出现内零头;无法运行超过分区大小的程序;无法精确确定分区的大小。
* 异长分区:等长分区的各个分区的长度不相同。
优点:A、在一定程度上提高了存储空间的利用率,减少浪费;
B、使长程序不能装入运行问题得到了一定缓解。
缺点:A、无法精确确定分区的大小;
B、仍然会浪费存储空间,可能出现内零头;
C、仍然存在大程序无法运行问题。
2、分页式划分
系统预先将内存空间划分为若干较小的,固定大小的页框,每个进程可以占用多个页框。
优点: A、缓解了内零头的浪费;
B、解决了大程序不能运行的问题;
C、存储分配简单。
缺点:未能彻底解决内零头问题。
3.2.2 动态划分与分配算法
动态分区管理的分区分配算法:
1) 首次适应算法(FFA, First Fit Algorithm)紧凑技术
空闲分区链以地址递增的顺序链接,分配时从链首开始查找,找到第一个大小可以满足的分区为止,从其中划分出所需空间分配给申请的进程,剩余部分仍旧作为一个分区保留在空闲分区链中,否则给出无法分配的提示。
优点:尽量使用低地址空间,因而在高地址空间可能会保留较大的空闲分区,以适应大进程的需要;
解决了静态划分的内零头。
缺点:出现外零头,使内存不能充分利用。
2) 下次适应算法(NFA: Next-Fit Algorithm)
增加一个起始查寻指针,指向下一次开始查寻时的起始分区,在查寻过程中,该指针向后移动,当移动到最后一个空闲分区后,重新回到链首。找到适当分区后,按首次适应算法的划分分区方式进行。
优点: * 均衡利用空闲分区;
* 加快大分区的查找速度。
缺点: * 使内存缺乏大分区。
* 出现外零头,使内存不能充分利用。
3) 最佳适应算法(BFA: Best Fit Algorithm)
空闲分区链按照分区容量递增的方式形成,分配时从链首开始查找,这样找到的
第一个大小可以满足的分区肯定是与进程申请空间大小最接近,甚至是完全吻合的分区,
而且平均查找次数为分区数的一半,也就是说它是“最佳适应”的。
优点:* 尽量使用小分区,保留大分区;
缺点:* 出现很小外零头,使内存不能充分利用。
4) 最差适应算法
空闲分区链按照分区容量递减的方式形成,分配时从链首开始,若链首分区大小不满足,
则可以肯定不存在能够满足要求的分区;否则对链首分区进行划分,剩余空间成为“碎片”
的可能性肯定是最小的。
优点: * 尽量避免产生小分区;
缺点: * 消耗了大分区,不利于大进程;
* 仍然会外零头,使内存不能充分利用。
3.2.3 伙伴系统
3. 3 程序装入技术
3.3.1 可执行程序的生成步骤
3.3.2 可执行程序的装入
1. 绝对装入方式(Absolute Loading Mode)
2. 可重定位装入方式(Relocation Loading Mode)
优点: * 有利于程序代码和数据的共享;
缺点: * 不允许程序在内存中的移动,因此不利于进程交换和紧凑,难实现多道程序环境。
3. 动态运行时装入方式(Denamle Run-time Loading)
在执行过程中,当发现一个被调用模块尚未装入内存时,立即由OS去找到该模块并将之装入内存, 把它链接到调用者模块上。
优点:允许程序在内存中的移动,因此,有利于进程交换,紧凑和多道程序环境。
3.3.3 可执行程序的链接形式
1. 静态链接方式(Static Linking)
指程序被装入内存之前,必须完全链接成一个装入模块,将其中的存储引用全部转换为
逻辑地址跳转语句。
在将这几个目标模块装配成一个装入模块时,须解决以下两个问题:
(1) 对相对地址进行修改;
(2) 变换外部调用符号。
缺点: * 花费处理时间;* 花费空间。
2. 装入时动态链接(Load time Dynamic Linking)
优点:* 便于修改和更新 *便于实现对目标模块的共享。
缺点:* 花费处理时间;* 花费空间。
3. 运行时动态链接(Run-time Dynamic Linking)
将对某些模块的链接推迟到执行时才执行,亦即,在执行过程中,当发现一个被调用模块尚未装入内存时,立即由OS去找到该模块并将之装入内存, 把它链接到调用者模块上。
3. 4 简单存储管理技术
3.4.1 简单存储管理概述
简单存储相对于虚拟存储而言,指为了实现简单,执行之前,操作系统必须将待
执行的程序全部装入内存。
3.4.2 连续存储管理
指进程和数据存储在内存的一个连续区域中。
3.4.3 简单分页存储管理
1、基本原理
将一个进程的逻辑地址空间分成若干个大小相等的片,称为页面或页,并为各页
加以编号,从0开始,如第0页、第1页等。
相应地,也把内存空间分成与页面相同大小的若干个存储块,称为(物理)块或页框(frame), 也同样为它们加以编号,如0#块、1#块等等。
在为进程分配内存时,以块为单位将进程中的若干个页分别装入到多个可以不相邻接的物理块中。由于进程的最后一页经常装不满一块而形成了不可利用的碎片,称之为“页内碎片”。
3、页面与页框大小
* 分页系统中,页面的大小总是与页框的大小相等;
* 页框的大小则有计算机的硬件逻辑定义,常常是2的幂次个字节;
* 页框的大小主要受三个因素: 页内零头、地址转换速度、页面交换效率
4、对分页存储管理的评价
优点:消除了外零头,仅存在很少的外零头,提高了内存利用率。
缺点:每个物理页面不能实现逻辑功能,对于系统而言,逻辑地址是二维的,
对于用户而言,是一维的。
3.4.4 简单分段存储管理
分页和分段的主要区别:
(1) 页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头, 提高内存的利用率。或者说, 分页仅仅是由于系统管理的需要而不是用户的需要。段则是信息的逻辑单位,它含有一组其意义相对完整的信息。 分段的目的是为了能更好地满足用户的需要。 (2) 页的大小固定且由系统决定,由系统把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现的,因而在系统中只能有一种大小的页面;而段的长度却不固定, 决定于用户所编写的程序,通常由编译程序在对源程序进行编译时,根据信息的性质来划分。
(3) 分页的作业地址空间是一维的,即单一的线性地址空间,程序员只需利用一个记忆符,即可表示一个地址; 而分段的作业地址空间则是二维的,程序员在标识一个地址时,既需给出段名, 又需给出段内地址。
(4) 分页活动源于系统管理物理内存的需要,在系统内部进行,由系统实施,用户看不见;分段活动源于用户进行模块化程序设计的需要,在系统外部进行,由用户实施,用户知道的。3.4.5 简单段页式存储管理
综合了分段和分页技术的优点,有效利用了存储空间,又能方便用户进行程序设计;但增加了硬件成本,系统的复杂度和管理开销大大增加;适合大型、中型计算机系统,不太适合小型、微型计算机系统。
3.5 虚拟存储管理技术
简单存储技术要求将一个进程所需的程序和数据全部装入内存才能执行,这种方式有两个严重的问题:大于内存容量的程序可能不能运行 ;限制了驻留内存的进程数量。3.5.1 虚拟存储技术概述
虚拟存储器定义:
所谓虚拟存储器, 是指具有请求调入功能和置换功能, 能从逻辑上对内存容量加以扩充的一种存储器系统。其逻辑容量由内存容量和外存容量之和所决定,其运行速度接近于
内存速度,而每位的成本却又接近于外存。可见,虚拟存储技术是一种性能非常优越的
存储器管理技术,故被广泛地应用于大、 中、 小型机器和微型机中。
3.5.2 虚拟存储器的特征
多次性、对换性、虚拟性
3.6 请求分段存储管理方式
3.6.1 请求分段中的硬件支持
1. 段表机制
2. 缺段中断机构
3. 地址变换机构
3.7 虚拟存储系统的软件策略
虚拟存储管理系统涉及到的软件策略主要包括:
* 驻留集管理* 放置策略* 获取策略* 置换策略* 清除策略 * 负载控制
1、驻留集管理
进程驻留集:虚拟存储系统中,每个进程驻留在内存的页面集合,或进程分到的物理页框集合.
驻留集管理主要解决的问题是:
系统应当为每个活跃进程分配多少个页框.
现代操作系统通常采用两种基本的驻留集管理策略:
* 固定分配策略
* 可变分配策略
2、页面放置策略
页面放置策略主要解决这样一个基本问题:
系统应当在内存的什么位置为活跃进程分配页框.
对于分页系统或段页式系统,其放置在什么地方无关紧要,对于特殊的分页系统,比如:不一致存储访问(NUMA),要考虑其访问效率,提高整个系统的效率.
对于分段系统中要考虑其段所存放的分区.
3、页面获取策略
页面获取策略主要解决的问题是:
系统应当在何时把一个不在内存中的页面装入内存.
常见的获取策略有:
* 请求调页
* 预调页
4、页面置换策略
页面置换策略主要解决两个相关的基本问题:
当系统欲把一个页面装入内存时,应当在什么范围内判断已经没有空闲页框分配给新的页面;
当系统在指定范围内发现已经没有空闲页框分配给新的页面时,系统应当从指定的范围内选择哪个页面移出内存.
第一个问题涉及到进程页面的置换范围,可以采用两种策略:
* 局部置换策略
* 全局置换策略
页面置换策略与进程驻留集管理策略的关系:
固定分配策略将导致系统必须使用局部置换策略;
全局置换策略将导致系统必须使用可变分配策略.
第二个问题的解决取决于页面置换算法.
置换算法常用的有:
* 最佳置换算法(optimal)
* 最近最少使用置换算法(LRU)
* 先进先出置换算法(FIFO)
* 时钟置换算法(Clock)
5、页面清除策略
将由页面置换算法选择的被修改的置换 页面保存到外存.
请求清除策略:
只有当一个页被选中作为置换页时,才被写回外存.
页缓冲技术:
被选中的置换页暂时保留在内存的一个缓冲区,在以后某个合适的时候将这些被置换页批量写出到外存,这样减少磁盘I/O次数,提高处理机的利用率.
6、负载控制
负载控制主要解决系统应当保持多少个活动进程驻留在内存的问题,即控制多道程序度.
判断系统负载的方法:
* L=S准则
* 50%准则
* 在Clock置换算法中采用全局置换策略, 通过监视扫描指针的移动速率来调整系 统负载.
当需要减少驻留在内存的活动进程数时,可以挂起某个或某些进程,通常选择以下六类进程:
* 优先级最低的进程
* 缺页进程
* 最后一个被激活的进程
* 驻留集最小的进程
* 最大的进程
* 剩余执行时间最多的进程
设备管理
4.1 设备管理概述
4.1.1 设备管理的主要功能
(1)设备分配
指设备分配程序按照一定的策略,为申请设备的用户进程分配设备,记录设备的使用情况。
(2)设备映射
设备无关性:应用程序所引起的、用于实现I/O操作的设备与物理I/O系统中实际安装的设备没有固定的联系。
逻辑设备:应用软件所引用的用于实现I/O操作的设备。
物理设备:物理I/O系统中实际安装的设备.
(3)设备驱动
指对物理设备进行控制,以实现真正的I/O操作。
其主要任务接收上层软件发来的抽象服务请求,转换为具体要求,通过一系列的I/O指令,控制设备完成请求的操作;同时,还将设备发来的有关信号传送给上层软件。
(4)I/O缓冲管理
为了缓和处理机于外部设备间的速度不匹配的矛盾,以及提高处理机和外部设备间的并行性,引入了I/O缓冲。
I/O缓冲管理的任务是组织I/O缓冲区,并为使用者提供获得和释放I/O缓冲区的手段。
4.1.2 设备管理分层模型
用户进程、设备硬件无关层、设备硬件相关层、设备硬件
I/O连接的全连通问题
全连通:即将一个设备与说有的控制器相连,将一个控制器与所有的通道相连.
全连通不可能实现的原因:
* 硬件连线过于复杂,设备较多时就无法连线;
* 设备控制器以及通道间相互不兼容,一个控制器只能控制一类设备,一个通道只能驱动一类控制器
4.2.2 设备的控制
(1) 设备的寻址与操作
从处理机的角度看,各种外部设备可以看作是由一组设备寄存器组成的;
常见的设备寄存器由:
* 操作方式寄存器;
* 命令寄存器;
* 数据寄存器;
* 状态寄存器.
I/O端口地址的编址方式
* 设备寄存器与内存物理存储单元统一编址;
* 独立于内存物理存储地址空间单独为上述设备寄存器编址.
4.2.3 I/O控制方式
(1) 程序I/O方式
(2) 中断方式
(3) DMA方式
(4) I/O通道方式
4.3 设备分类
* 输入/输出型设备与存储型设备
* 块型设备与字符型设备
* 独占型设备与共享型设备
4.4 设备分配
4.4.3 设备分配算法
(1) 先来先服务
(2) 优先级高者优先服务
4.4.4 独占型设备的分配
独占型设备的特点:在任意时间段内最多只能有一个进程占有并使用它.
(1) 申请设备(2) 使用设备(3) 释放设备
4.4.5 共享型设备的分配
共享型设备的特点:多个进程的I/O传输可以以I/O基本传输单位为界交叉进行.但是,当某个进程正在输入/输出数据期间,其它共享的进程只能等待.
4.5 I/O缓冲技术
4.5.2 硬件缓冲和软件缓冲
4.5.3 缓冲区的组织形式
缓冲区技术可以分为:
* 单缓冲
* 双缓冲
* 循环缓冲
* 缓冲池
4.6虚拟设备
4.6.1 虚拟设备的引入:虚拟设备是利用共享型设备实现的数量较多,速度较快的独占型设备.
虚拟设备技术的基本思想是:在独占型设备与进程之间加入一个共享型设备作为过渡.
4.6.3 SPOOLing系统
(1) 什么是SPOOLing系统
SPOOLing(Simultaneous Peripheral Operations On-Line),即联机情况下同时进行的外围设备操作,常称假脱机.
(2) SPOOLing系统的组成
* 输入/输出设备和通道;
* 输入井和输出井;
* 输入井和输出井程序;
* 假脱机输入程序;
* 假脱机输出程序;
4.7 磁盘设备的管理
(1)磁盘的物理结构
(2)磁盘磁头的工作方式
根据磁盘磁头的设置方式的不同,磁盘可以分为:
* 固定头磁盘
* 移动头磁盘
(3) 影响磁盘I/O性能的技术指标
1) 寻道时间Ts
启动磁臂的时间s与磁头移动n条磁道所花费的时间
Ts=m×n+s
2) 旋转延迟时间Tτ
这是指定扇区移动到磁头下面所经历的时间
3) 传输时间Tt
这是指把数据从磁盘读出或向磁盘写入数据所经历的时间。 Tt的大小与每次所读/写的字节数b和旋转速度有关:
Tt = b/rN
其中,r为磁盘每秒钟的转数;N为一条磁道上的字节数, 当一次读/写的字节数相当于半条磁道上的字节数时,Tt与Tτ相同, 因此, 可将访问时间Ta表示为:
Ta = Ts + b/rN + 1/2r
4) 缓存
较大缓存对磁盘的I/O性能有较大的影响,但不是决定性的.
4.7.3 调整磁盘I/O性能
提高磁盘的I/O性能本质是缩短寻道时间和旋转延迟.
(1) 磁盘调度算法
* 先来先服务FCFS(First-Come, First Served)
* 最短寻道时间优先SSTF(Shortest Seek Time First)
* 扫描(SCAN)算法
* N步扫描(N-SCAN)算法
(2) 磁盘高速缓存
指操作系统利用内存实现的,专门针对磁盘I/O操作的缓冲区.
磁盘机本身所带的缓存以及磁盘控制器所带的缓存与磁盘高速缓存的关系:
* 磁盘机本身所带的缓存以及磁盘控制器所带的缓存较小,但进行数据提前读和延后写操作能与主机并行工作;
* 磁盘高速缓存容量较大,但进行数据提前读和延后写操作需要主机的管理,增加了主机的负担.
* 磁盘高速缓存在遇到坏扇区时,系统效率反而会降低.由于有提前读的功能.
磁盘高速缓存在内存中有两种实现形式:
* 在内存中单独开辟一个大小固定的存储空间作为磁盘高速缓存;
* 把系统中所有未使用的内存空间变为一个缓冲池,供请求分页系统和磁盘高速缓存共享,其大小不固定
磁盘高速缓存选择写时机策略:
* 在系统空闲或需要淘汰被写的缓存空间时写,风险最大,效率最高;
* 周期性地写操作;
* 立即回写(写穿透高速缓存),相当于没有写缓存.
(3) 优化数据的物理存储结构
* 磁盘高速缓存的效率取决于命中率;
* 使用缓存需要基于两个因素:
1) 访问频率;
2) 基于局部性原理的提前读技术,(关键).
为了提高其命中率,磁盘上的数据存放应尽量连续存放,如果很离散,磁盘高速缓存反而会降低系统效率.
4.7.4 磁盘容错技术
磁盘容错技术大体分为三个级别:
1) SFT-I是低级磁盘容错技术
主要用于防止磁盘表面介质缺陷所引起的数据丢失.
2) SFT-II是中级磁盘容错技术
主要用于防止磁盘驱动器和磁盘控制器故障所引起的数据丢失.
3) SFT-III是高级磁盘容错技术
双服务器技术.
4.7.5 RAID技术
(1) RAID技术的基本概念
RAID有两部分构成:
* 一组可以并行工作的磁盘所构成的磁盘阵列;
*在磁盘子系统中执行的或者在主机系统中执行的磁盘阵列管理软件.
根据实现RAID的软件存放的地方,可以分为
* 硬件实现RAID;
* 软件实现的RAID.
* RAID5和RAID3类似
二者的主要区别是:
RAID3使用一个磁盘专门存储奇偶校验数据,RAID5将奇偶校验数据分布到每一个磁盘中,没有专门的奇偶校验盘,克服了RAID3的缺点;RAID5使用了粗粒度的条带; RAID5比RAID3复杂.
文件管理
5.3 文件
5.3.1 文件的概念
文件:是一种具有符号名的,相关联元素的有序集合.
文件名是文件系统和用户之间的联系纽带.
(1) 基本数据项。这是用于描述一个对象的某种属性的字符集,是数据组织中可以命名的最小逻辑数据单位, 即原子数据,又称为数据元素或字段。由数据项的名字和类型两者共同定义了一个数据项的“型”。而表征一个实体在数据项上的数据则称为“值”。
2. 记录
记录是一组相关数据项的集合,用于描述一个对象在某方面的属性。一个记录应包含哪些数据项,取决于需要描述对象的哪个方面。而一个对象,由于他所处的环境不同可把他作为不同的对象。
3. 文件
文件是指由创建者所定义的、 具有文件名的一组相关元素的集合,可分为有结构文件和无结构文件两种。
在有结构的文件中,文件由若干个相关记录组成;
而无结构文件则被看成是一个字符流。文件在文件系统中是一个最大的数据单位,它描述了一个对象集。
5.3.2 文件的类型
1. 按照文件的逻辑结构分类
* 有结构文件
* 无结构文件
2. 按照文件的物理组织结构分类
* 连续文件
* 链接文件
* 索引文件
3. 按照文件的保护级别分类
* 只读文件
* 执行文件
* 读/写文件
* 不保护文件
4. 按照文件的性质和用途分类
* 系统文件
* 用户文件
* 库文件
5. 按照文件的数据形式分类
* 源文件
* 目标文件
* 可执行文件
5.3.3 对文件的操作
对文件的操作包含两个方面的含义:
* 指对整个文件的操作;
* 指对文件中的数据项的操作.
5.4 文件目录
5.4.1 文件目录的内容
文件目录的内容:
* 基本信息
* 地址信息
* 访问控制信息
* 使用信息
5.4.3 目录结构
目录结构:
* 单级目录结构
* 两级目录结构
* 层次目录结构(多级目录结构)
5.5 文件的逻辑组织与访问
5.5.1 有结构文件与文件系统
有结构文件系统: 文件系统直接支持控制管理有结构文件的文件系统,也称高级文件系统.
根据有结构文件中的记录组织形式不同,可以将有结构文件分为:
* 堆文件
* 顺序文件
* 索引文件
索引方式:
* 完备索引
* 部分索引
* 索引顺序文件
* 直接(哈希)文件
对于直接文件,则可根据给定的记录键值,直接获得指定记录的物理地址。换言之,记录键值本身就决定了记录的物理地址。这种由记录键值到记录物理地址的转换被称为键值转换(Key to address transformation)。组织直接文件的关键, 在于用什么方法进行从记录值到物理地址的转换。
5.6 文件的物理组织-存储空间的管理
5.6.1 文件存储空间分配的有关问题
1. 预分配与动态分配
预分配方式:要求文件创建时必须申明需要的最大空间;
动态分配方式:给文件分配的空间根据文件的大小动态的变化.
2. 分区大小
文件分区:将物理上连续的若干数据块组织在一起,形成一个分区.
5.6.2 文件存储空间的分配技术
1. 连续分配
连续分配的主要优点如下:顺序访问容易。
(2) 顺序访问速度快。
连续分配的主要缺点如下:
要求有连续的存储空间。
(2) 必须事先知道文件的长度。
2.链接分配
3.索引分配
* 单级索引分配
* 多级索引分配
索引分配的优点:
索引分配方法支持文件的直接存取;
(2) 索引分配能满足文件的动态增长;
(3) 利用多级索引可以支持大型文件的存取.
索引分配的不足:
对于文件过小,索引节点的利用率较低;
(2) 如果文件太大,建立多级索引会花费很长时间而且需要海量存储.
5.6.3 空闲空间的管理
常用的空闲分区组织方式:
* 空闲分区表
* 空闲分区链
* 索引
* 位图
5.7 逻辑文件与物理数据块之间的转换
5.7.1 字节流,记录与数据块之间的转换
* 字节流和数据块之间的转换;
* 记录和数据块之间的转换.
5.7.2 记录如何组成数据块
记录组块方法:
1) 固定组块法
数据块由若干条固定长度的记录组成,一条记录必须完整地存储在一个数据块中.
此种方法会出现内部碎片,从而浪费空间.
2) 可变长跨块组块法
数据块允许被划分存储在不同数据块中.
* 技术实现很难;
* 读写访问效率降低;
* 修改也非常困难.
3) 可变长非跨块组块法
数据块由变长记录组成,不允许一条记录跨越两个数据块存储.
但还是不可避免会存在内部碎片.
5.8 文件共享
文件共享:就是指多个用户(进程)访问同一个文件.
5.8.1 文件共享的控制
文件共享的有效控制包括两个方面:
* 同时存取
* 存取权限
5.8.2 文件共享的实现
根据实现文件共享的方式不同可以分为:
* 利用链接目录项实现共享
* 利用基本文件目录实现文件共享
* 利用索引节点实现共享
* 利用URL实现文件共享
5.9 文件保护与安全
5.9.1 文件保护
影响文件安全性的主要因素是:
* 数据丢失
* 非法侵入
解决因数据丢失而导致文件系统不安全的主要解决方案由:
* 系统容错技术
* 系统备份
5.9.2 安全性管理
文件系统安全性管理的四个级别:
* 系统级安全管理
防止未授权用户进入系统,以保证系统资源不被非法使用.
* 用户级安全管理
* 对用户分类
* 为用户分配文件访问权限
* 目录级安全管理
* 文件级安全管理
用户对文件的访问权由用户访问权与目录访问权及文件属性三者求交集而确定.
5.10 文件系统的可靠性
保护文件的方法:
* 定期备份文件
* 保护文件系统数据的一致性
* 磁盘块的一致性检查
* 文件的一致性检查