《第6章文件管理.ppt》由会员分享,可在线阅读,更多相关《第6章文件管理.ppt(88页珍藏版)》请在三一文库上搜索。
1、第 6 章 文件管理,操作系统(第3版),第 6 章 文件管理,6.1 概述 6.2 文件的结构和存取方式 6.3 文件目录 6.4 文件系统的实现 6.5 文件的使用 6.6 文件系统的安全性和数据一致性 6.7 磁盘调度 6.8 Linux的文件系统,6.1 概述,文件和文件系统 定义 文件是在逻辑上具有完整意义的信息集合,它有一个名字作标识 文件系统是操作系统中负责管理和存取文件的程序模块,也称为信息管理系统 文件的基本特征 文件的内容为一组相关信息 文件具有保存性 文件可按名存取,文件系统的功能 完成文件存储空间的管理 实现文件名到物理地址的映射 实现文件和目录的操作管理 提供文件共享
2、能力和安全可靠措施 文件系统向用户提供了有关文件和目录操作的接口,6.1 概述,文件的分类 按文件的性质和用途:系统文件、库文件、用户文件 按文件的组织形式:普通文件 、目录文件、特殊文件 根据使用和管理情况:临时文件、永久文件、档案文件 按文件系统提出的保护级别:读文件、读写文件、不保护文件 按文件的数据流向:输入型文件、输出型文件、输入输出文件,6.1 概述,6.2 文件的结构和存取方式,文件的组织结构是指文件的构造方式,用户和文件系统往往从不同的角度对待同一个文件。因此对于任何一个文件都存在若两种形式的结构: - 文件的逻辑结构:用户按自己对信息的使用要求组织文件,这种文件是独立于物理环
3、境而构造的,因此把用户概念中的文件称为文件的逻辑结构,或称逻辑文件。 - 文件的物理结构:又称为文件的存储结构,是指文件在辅存上的存储组织形式,这与存储介质的性质有关。 无论是文件的逻辑结构还是物理结构,其构造方式都会影响对文件的处理速度。,6.2 文件的结构和存取方式,文件的存取方式 顺序存取 顺序存取是按照文件的逻辑地址顺序存取 随机存取 随机存取法允许用户根据记录的编号存取文件的任一记录,或者是根据存取命令把读写指针移到欲读写处来读写 按键存取 按键存取是一种用在复杂文件系统,特别是数据库管理系统中的存取方法,6.2 文件的结构和存取方式,文件的逻辑结构 设计文件系统时,选择逻辑结构应遵
4、循的原则 便于修改 提高检索效率 使文件信息占据最小的存储空间 便于用户进行操作 文件的逻辑结构分类: 流式文件 记录式文件,流式文件(无结构文件) 无结构的流式文件是相关的有序字符的集合 字符是构成文件的基本单位 查找困难、管理简单 记录式文件(有结构文件) 记录式文件在逻辑上被看成一组连续有序的记录的集合 根据记录的长度分类:定长记录文件、变长记录文件 记录式文件可把文件中的记录按各种不同的方式排列,构成不同的逻辑结构:顺序文件、索引文件、索引顺序文件,6.2 文件的结构和存取方式,存储介质 一盘磁带、一个磁(或温)盘组或一张软盘都称为一卷。卷是存储介质的物理单位 块是存储介质上连续信息所
5、组成的一个区域,也叫做物理记录。块是内存储器和辅助存储设备进行信息交换的物理单位,每次总是交换一块或整数块信息。块大小要考虑用户使用方式、数据传输效率和存储设备等因素 -文件的存储结构密切地依赖于存储设备的物理特性。存储设备的特性也决定了文件的存取方法。,6.2 文件的结构和存取方式,顺序存储设备 顺序存储存储设备是严格依赖信息的物理位置进行定位和读/写的存储设备 磁带机是一种典型的顺序存储设备 磁带上的物理块没有确定的物理地址,只是由带上的物理标志来识别。 如果带速高,信息密度大,且所需块间隙小的话,则磁带存取速度和数据传输率高。 带的一个突出优点是物理块长的变化范围较大,块可以很小,也可以
6、很大。 磁带作为顺序存储介质,具有存储容量大、稳定可靠、文件卷可拆卸、便于保存和块长变化范围较大等优点。,6.2 文件的结构和存取方式,6.2 文件的结构和存取方式,直接存储设备 直接存储设备又叫随机存储设备。允许文件系统直接存取对应存储介质上的任意物理块 磁盘机是一种典型直接存储存储设备,6.2 文件的结构和存取方式,各磁盘块的编号按柱面顺序(零号柱面开始),每个柱面按磁道顺序,每个磁道又按扇区顺序进行排序,假定用t表示每个柱面上的磁道数,用s表示每个盘面上的扇区数,则第i柱面,j磁头,k扇区所对应的块号b可有如下公式确定: b=k+s(j+it) 根据块号也可确定该块在磁盘上的位置。每个柱
7、面上有D =st个磁盘块,设M=P/D,N=P%D。于是,第P块在磁盘上位置为 柱面号=M 磁头号=N/S 扇区号=N % S,6.2 文件的结构和存取方式,- 直接读写的性质,并且物理块的大小固定不变,所以在这种介质上可以按照多种物理结构组织信息,并且不一定要求信息按逻辑记录的顺序存储。 - 由于定位时间远远小于磁带设备的定位时间,因此广泛用于信息存储,并且作为虚拟存储器和虚拟设备使用。 - 存储介质的容量逐渐增大,并且有些可像磁带一样随时更换,因而也作为保存档案材料之用,成为一种高速、大容量、可拆卸的海量存储器。 软盘 光盘 闪存,6.2 文件的结构和存取方式,文件的物理结构 磁带文件的物
8、理结构 磁带机是一种顺序存取的设备,一切组织在磁带上的文件都采用顺序结构,也就是将一个文件在逻辑上连续的信息存放到存储介质的依次相邻的块上,便形成顺序结构,磁带上的每个文件都有文件头标、文件信息和文件尾标三个组成部分,6.2 文件的结构和存取方式,磁盘文件的物理结构 连续文件 定义:将一个文件中逻辑上连续的信息存放到磁盘上的依次相邻的块上便形成顺序结构,这类文件叫顺序文件,又称连续文件 优点:顺序访问容易、速度快 缺点:要求有连续的存储空间、必须事先知道文件的长度,6.2 文件的结构和存取方式,链接文件 定义:顺序的逻辑记录被存放在不连续的磁盘块上,用指针把这些磁盘块按逻辑记录的顺序链接起来,
9、则形成了文件的链接结构,链接结构的文件称为“链接文件”或“串联文件” -采取离散分配方式,从而消除了外部碎片,故可显著地提高辅存空间的利用率,且也无需事先知道文件的长度。磁盘上的所有空闲块都可以被利用,6.2 文件的结构和存取方式,分类: 隐式链接,在每个盘块中部含有一个指向下一个盘块的指针 ;,6.2 文件的结构和存取方式,FAT表的计算 假定磁盘n块,则若2m-1n2m,则FAT表的每项至少m位,但多数情况取整字节倍数,有时取半个字节倍数; 假定文件分配表每项t位,至少占用n*t/8字节,若每块大小为s,则该文件分配表能管理的最大磁盘空间为s*t 例:假定盘块的大小为1KB,硬盘的大小为5
10、00MB,采用显示链接分配方式时,该硬盘共有500K个盘块,故FAT中共有500K个表项;如果盘块从1开始编号,为了能保存最大的盘块号500K,该FAT表项最少需要19位,将它扩展为半个字节的整数倍后,可知每个FAT表项需20位,即2.5个字节。因此,FAT需占用的存储空间的大小为:2.5500K=1250KB。,6.2 文件的结构和存取方式,显示链接,把用于链接文件物理块的指针显式地存放在外存的一张链接表(FAT)中 优点:消除了外部碎片、显著地提高外存空间的利用率、无需事先知道文件的长度 、插入删除记录容易 缺点:隐式链接,只适合于顺序访问、直接访问低效 、可靠性较差 ;隐式连接,不能支持
11、高效地直接存取、存放链接指针的表会占用较大的内存空间,6.2 文件的结构和存取方式,索引文件 定义:为每个文件分配一个索引块(用来存放索引的盘块),把分配给该文件的所有盘块号都记录在该索引块中,按照这种分配方式存储的文件就是索引文件 一级索引、两级索引或多级索引结构,6.2 文件的结构和存取方式,6.2 文件的结构和存取方式,优点:支持直接访问 缺点:索引要花费较多的外存空间 混合索引分配方式 :指将多种不同级的索引分配方式结合而形成的一种分配方式,有效且实用 - 索引文件的文件最大长度的计算 在UNIX中,其索引结构有10项直接地址,1项一级索引,1项二级索引,1项三级索引。假如每个盘块的大
12、小为4KB,一个盘块号占用4字节 则直接地址项登记文件10个盘块,一级索引可登记1K个盘块,二级索引可登记1K1K=1M个盘块,三级索引可登记1K1K 1K =1G个盘块,允许文件长达1G4KB十1M4KB十1K4KB十40KB4TB,应该足可以满足需求了。,6.2 文件的结构和存取方式,直接文件 定义:在直接存取存储设备上,记录的关键字与其地址之间可以通过某种方式建立对应关系,利用这种关系实现记录存取的文件称为直接文件 “冲突”问题:地址的总数和记录的关键字之间并不存在一一对应的关系,不同的关键字经过变换可能会得到相同的地址 解决“冲突”方法:设计出好的变换函数,并且还要求有好的处理冲突的方
13、法 优点:存取速度较快,存储空间不必连续,逻辑记录与物理记录之间不存在对应或顺序关系 缺点:对冲突的处理需要时间和空间的开销,6.2 文件的结构和存取方式,6.2 文件的结构和存取方式,NTFS文件系统的物理文件 NTFS是一个可恢复的,安全高效的文件系统,NTFS在设计时还考虑到了支持多数据流,西欧字符集名称和坏簇重定向功能 NTFS文件系统与FAT文件系统相比最大的特点是安全性,NTFS提供了服务器或工作站所需的安全保障。 磁盘组织 元数据文件 文件的组织,6.3 文件目录,文件目录管理应达到的要求 实现“按名存取” 提高对目录的检索速度 文件共享 允许文件重名,6.3 文件目录,文件控制
14、块 概念 文件系统在创建每个文件时为其建立了一个文件目录,也称为文件说明或文件控制块FCB。文件目录是为文件设置用于文件描述和文件控制的数据结构,它与文件一一对应,它是随着文件的建立而诞生,随着文件的删除而消失,某些内容随着文件的使用而动态改变 文件控制块包括的内容 有关文件存取控制的信息 有关文件结构的信息 有关文件管理的信息,文件目录结构 文件系统把若干个文件的文件目录组织成一个独立的文件,这个全部由文件目录组成的文件称为目录文件 一级目录结构 实现方式:最简单的文件目录,在操作系统中构造一张线性表,与每个文件有关的说明信息占用一个目录项 优点 :实现容易、管理简单、实现了按文件名存取 缺
15、点:搜索范围宽、不允许文件重名、 难于实现文件共享,6.3 文件目录,二级目录 实现方式:第一级为主文件目录,用于管理所有用户文件目录,它的目录项登记了系统用户的名字及该用户文件目录的地址。第二级为用户文件目录,它为该用户的每个文件保存一登记栏,其内容与一级目录的目录项相同 优点:实现了对文件的保密和保护、允许不同用户使用相同的文件名、可以实现文件共享,6.3 文件目录,6.3 文件目录,多级文件目录结构 实现方式:主文件目录演变为根目录。根目录项既可以表示一个普通文件,也可以是下一级目录的目录文件一个说明项。如此层层类推,形成了一个树型层次结构 优点:解决了文件重名问题、有利于文件的分类、便
16、于制定保护文件的存取权限,有利于文件的保密 思考:在分别采用连续文件、链接文件和索引文件时,文件控 制块中只是要包括哪些内容,才能找到文件?,6.3 文件目录,6.3 文件目录,目录查找和目录的改进 目录的查找 线性检索法 一级目录结构采用顺序查找法,依次扫描文件目录的目录项,将目录项中的名字与欲查找的文件名相比较 在多级目录中,采用绝对路径和相对路径的查找方法,使用相对路径名查找速度要快于绝对路径 - 假设要查找绝对路径名为usrincludeuser.h的文件,从根目录查起,线性检索查找过程如下:,6.3 文件目录,第一步:从根目录查起,把根目录文件信息读到内存缓冲区。按给定的路径名中第一
17、个分量usr依次与缓冲区中每个目录项比较,若找不到名为usr的目录项,则继续读入根目录文件的后续信息再比较,直到找到usr目录项或查完根目录都没有找到。 第二步:找到usr后,再根据这个目录项内容把usr目录文件信息读到内存缓冲区。按第一步的过程,查找到include目录项。 第三步:找到include后,再根据这个目录项内容把include目录文件信息读到内存缓冲区。按第一步的过程,查找到user.h目录项。,6.3 文件目录,哈希检索 目录项信息存放在一个哈希表中。进行目录检索时,首先根据目录名来计算一个哈希值,然后得到一个指向哈希表目录项的指针。 - 哈希检索算法的难点,在于选样合适的哈
18、希表长度和哈希函数的构造。 其他算法 除了上面的两种算法之外,还可以考虑其他算法,如B+树。,6.3 文件目录,目录的改进 为加快目录查找可采用目录项分解法,即把目录项分为两部分:符号目录项(包含文件名以及相应的文件号)和基本目录项(包含除了文件名外文件控制块的其余全部信息). 例如,假设一个文件目录项有48个字节,符号目录项占8字节,文件名6字节,文件号2字节,基本目录项占48-6=42字节。设物理块大小512字节。假设目录文件有128个目录项。 若不分解目录项,一个盘块存放5l2/48 =10目录项,128个目录项需要13个盘块,查找一个文件的平均访问的盘块数: (1+13)/2=7次 分
19、解后一个盘块存放5l2/8=64个符号目录项,128个符号目录项需要2个盘块,查找一个文件的平均访问的盘块数: (1十2)/2=1.5次,6.3 文件目录,6.4 文件系统的实现,UNIX的目录改进 把目录中的文件名和其它管理信息分开,后者单独组成定长的一个数据结构,称为索引节点。 索引节点单独存放在辅存的索引节点表中,从1开始,顺序编号。文件目录项中仅剩下14个字节的文件名和两个字节的顺序编号。 系统把由目录项组成的目录文件和普通文件一样对待,均存放在辅存中。,6.4 文件系统的实现,打开文件表 当用户申请打开一个文件时,系统要在内存中为该用户保存一些表目。在内存中所需的表目有系统打开文件表
20、和用户打开文件表 系统打开文件表 该“系统打开文件表”放在内存,用于保存已打开文件的目录项。此外,还保存文件号、共享计数、修改标志等等,用户打开文件表 每个进程一个都有一个“用户打开文件表”。该表的内容有文件描述符,打开方式、系统打开文件表入口等等 用户打开文件表与系统打开文件表之间的关系 用户打开文件表指向了系统打开文件表。如果多个进程共享同一个文件,则多个用户打开文件表目对应系统打开文件表的同一入口,6.4 文件系统的实现,6.4 文件系统的实现,外存空间管理 空闲块表法 数据结构 系统为每个磁盘建立一张空 闲块表,表中每个登记项记录一 组连续空闲块的首块号和块数, 空闲块数为“0”的登记
21、项为“空”登 记项 分配回收算法 这种管理方式适合采用顺序 结构的文件 ,分配和回收算法类似内存储器的可变分区管理方式中采用的最先适应、最优适应和最坏适应算法 思考:如何实现?,6.4 文件系统的实现,空闲链表法 空闲盘块链 空闲盘块链以盘块为基本元素构成一条链 分配时从链首开始,依次摘下适当数目的空闲盘块分配给用户 ,回收时将回收的盘块依次链入空闲盘块链 思考:如何实现? 优缺点:分配和回收一个盘块的过程非常简单,但是空闲盘块链可能很大,6.4 文件系统的实现,空闲盘区链 将磁盘上的所有空闲盘区(每个盘区可包含若干个盘块)拉成一条链 分配方法与内存的动态分区分配类似,通常采用首次适应算法。在
22、回收盘区时,同样也要将与回收区邻接的空闲盘区与之合并。 思考:如何实现? 优缺点:分配和回收过程较复杂,但空闲盘区链较短,6.4 文件系统的实现,位示图法 磁盘块的组织 根据磁盘总块数决定位示图由多少字组成,位示图中的每一位与一个磁盘块对应,某位为“1”状态表示相应块已被占用,为“0”状态的位所对应的块是空闲块 一般公式为: 块号=i位示图中的字长+j,6.4 文件系统的实现,磁盘块的分配 当有文件要存放到磁盘上时,查位示图中为“0”的位,表示对应的磁盘块空闲可供使用。根据查到的位所在的字号和位号可计算出对应的块号,同时在该位填上占用标志“1” 磁盘块的回收 当删除文件归还存储空间时,可以根据
23、归还块的块号推算出在位示图中的位置: 块号=柱面号每个柱面中的块数+磁头号每个磁道的块数+扇区号 字号=块号/位示图中字长 位号=块号mod位示图中字长 然后把这一位的“1”清成“0”,表示该块成为空闲块 思考:算法如何写?,6.4 文件系统的实现,成组链接法 空闲块的组织 把空闲块分成若干组,每一组的第一个空闲块中登记下一组空闲块的块号和空闲块数,6.4 文件系统的实现,6.4 文件系统的实现,空闲块的分配和回收 -分配 系统初始化时先把专用块内容读到内存储器,每分配一块后把空闲块数减1。但一组的第一个空闲块分配之前应把登记在该块中的下一组的块号及块数保存到专用块中。 分配一个空闲块的算法:
24、 查询L单元内容(空闲块数): 当空闲块数l i=L+空闲块数; 从i单元得到一空闲块号; 把该块分配给申请者; 空闲块数减1; 当空闲块数=1 取出L+l单元内容(第一块块号或0); 其值=0 无空闲块,申请者失败; 其值0 把该块内容复制到专用块; 该块分配给申请者; 把专用块内容读到内存L开始的区域;,6.4 文件系统的实现,- 回收: 当归还一块时,只要把归还块的块号登记到当前组中且空闲块数加1。如果当前组已满100块,则把内存中的内容写到归还的那块中,该归还块作为新组的第一块 归还一块的算法: 查询L单元的空闲块数: 当空闲块数100 空闲块数加1; j=L+空闲块数; 归还块号填入
25、j单元。 当空闲块数=100 把内存中登记的信息写入归还块中; 把归还块号填入L+l单元; 将L单元置成1;,6.4 文件系统的实现,6.5 文件的使用,主要操作 文件系统与用户的接口:第一类是与文件有关的操作命令或作业控制语言中与文件有关的语句;第二类是提供给用户程序使用的文件类系统调用指令 一般地讲,文件系统提供的基本的文件系统调用有:建立、打开、关闭、删除、读、写和控制等操作 建立 - 查文件目录表,看有没有同名文件存在,有则拒绝建立,给出错误信息,否则分配给该文件一空目录项,并填入文件名和用户提供的参数。 - 为要建立的文件分配存储空间。 - 将新建文件的目录项读入打开文件表中(即完成
26、打开文件的工作),为以后写文件作好准备。,打开 - 根据文件路径名查目录。 - 根据打开方式、共享说明和用户身份检查访问合法性。 - 根据文件号查系统打开文件表,看文件是否已被打开。如果是,共享计数加1,否则,信息填入系统打开文件表空表项,共享计数置为1。 - 在用户打开文件表中取一空表项,填写打开方式等,并指向系统打开文件表对应表项。 关闭 - 将打开文件表中该文件的“当前使用用户数”减1,若为0,则撤消此表目。 - 若打开文件表目内容已被改过,则应先将表目内容写回辅存上相应表目中,以使文件目录保待最新状态;卷定位工作。,6.5 文件的使用,删除 - 系统根据用户提供的文件名或文件描述符,检
27、查此次删除的合法性。 - 查找文件目录。 - 将该文件从目录中删除,并释放该文件所占用的存储空间。 读、写和控制等操作 - 核对所给参数的合法性。 - 按文件名从打开文件表中找到该文件的目录项。 - 按存取控制说明检查访问的合法性。 - 根据打开文件表中该文件的参数,确定读写的物理位置(确定块号、块数、块内位移与长度等)。 - 向设备管理程序发I/O请求,完成数据交换工作。,6.5 文件的使用,读文件 用户请求读文件信息时依次调用: “打开文件” “读文件” “关闭文件” 写文件 用户请求写文件信息时依次调用: “建立文件” “写文件” “关闭文件” 删除文件 用户请求删除文件时依次调用: “
28、关闭文件” “删除文件”,6.5 文件的使用,文件共享 文件共享可以提高文件的利用率,避免存储空间的浪费,并能实现用户用自己的文件名去访问共享文件 绕道法 用户对所有文件的访问都是相对于当前目录进行的,当所访问的共享文件不在当前目录下时,从当前目录出发向上返回到与共享文件所在路径的交叉点,再沿路径下行到共享文件,6.5 文件的使用,绕道法要求用户指定到达被共享文件的路径,并要回溯访问多级目录,因此,共享其他目录下的文件的搜索速度较慢,6.5 文件的使用,链接法 链接法是将一个目录中的链指针直接指向共享文件的目录项 思考:为什么指向目录而不是文件?,6.5 文件的使用,基本文件目录 文件目录分解
29、为基本目录和符号目录,只要在不同文件符号目录中使用相同文件内部标识符,就可实现文件的共享,6.5 文件的使用,利用符号链实现文件共享 用户H为了共享用户C的个文件f,可以由系统创建一个LINK类型的新文件,将新文件写入H的用户目录中,在新文件中只包含被链接文件f的路径名,称这样的链接方法为符号链接。当H要访问被链接的文件f且正要读LINK类新文件时,被操作系统截获,操作系统根据新文件中的路径名去读该文件,于是就实现了用户H对文件f的共享,6.5 文件的使用,基于索引结点的共享方式 采用索引结点,将诸如文件的物理地址及其它的文件属性等信息,不再放在目录项中,而是放在索引结点中。在文件目录中只设置
30、文件名及指向相应索引结点的指针,此时,由任何用户对文件进行追加操作或修改,所引起的相应索引结点内容的改变,例如,增加了新的盘块号和文件长度等,都是其他用户可见的,从而也就能提供给其他用户来共享。,6.5 文件的使用,6.5 文件的使用,6.5 文件的使用,6.6 文件系统的安全性和数据一致性,影响文件安全性主要因素 人为因素。由于人们有意或无意的行为,而使文件系统中的数据遭到破坏、丢失或窃取 系统因素。由于系统的部分出现异常情况而造成对数据的破坏或丢失,特别是作为数据存储介质的磁盘在出现故障或损坏时,会对文件系统的安全性造成影响 自然因素。存放在磁盘上的数据,随着时间的推移而发生溢出或逐渐消失
31、 防止人为因素造成的文件不安全性 隐蔽文件和目录 系统和用户将要保护的文件目录隐蔽起来,在显示文件目录信息时由于不知道文件名而无法使用,口令 文件口令:系统要求文件的建立者为他需要保密的文件设置一个口令 用户口令:当用户利用计算机终端使用计算机时使用 文件加密 对于高度机密的文件,可采用加密码的措施。文件加密码是把文件中所有字符代码,按某种变换规则重新编码。文件的输入读出都经过编码程序和解码程序处理 制定访问权限 存取控制矩阵 由系统中的全部用户和全部文件组成的二维矩阵,也称为存取控制矩阵,矩阵的每个元素表示用户对文件的使用权限,6.6 文件系统的安全性和数据一致性,存取控制表和用户权限表 存
32、取控制表就是对存取控制矩阵中的一列进行压缩,可让每一个文件附加一个简单的表格,它规定了对该文件的可访问性(权限);用户权限表就是对存取控制矩阵中的一按行进行压缩,该表中列出该用户对每个文件的访问权限,6.6 文件系统的安全性和数据一致性,防止自然因素或系统因素造成的文件不安全性 坏块管理 硬件方法: 建立一个坏块表,在硬盘上为坏块表分配个扇区,当控制器第一次被初始化时,它读坏块表并找一个空闲块(或磁道)代替有问题的块,并在坏块表中记录映射 软件办法: 要求用户或文件系统构造一个包含全部坏块的文件,6.6 文件系统的安全性和数据一致性,磁盘容错技术 SFT-I是低级磁盘容错技术,主要用于防止磁盘
33、表面发生缺陷所引起的数据丢失; SFT-是中级磁盘容错技术,主要用于防止磁盘驱动器和磁盘控制故障所引起的系统不能正常工作; SFT-是高级系统容错故术。,6.6 文件系统的安全性和数据一致性,第一级容错技术 双份目录和双份文件分配表 建立两份目录表和FAT,一份称为主文件目录及FAT,另外一份则称为备份目录及备份FAT。 i.热修复重定向 系统将一定的磁盘容量(例如2%3)作为热修复重定向区。用于存放当发现盘块有缺陷时的待写数据,并对写入该区的所有数据进行登记。以便于以后对数据进行访问 ii.写后读校验 在每次从内存缓冲区向磁盘中写入一个数据块后,又立即从磁盘上读出该数据块,送至另一缓冲区中;
34、再将该缓冲区中内容与内存缓冲区中在写后仍保留的数据进行比较,若两者一致,便认为此次写入成功,否则再重写。,6.6 文件系统的安全性和数据一致性,第二级容错技术 磁盘镜像 磁盘镜像是在同一磁盘 控制器下,再增设一个完全 相同的磁盘驱动器。 磁盘双工 将两台磁盘驱动器分别 接到两个磁盘控制器上,同 样地使这两台磁盘机镜像。,6.6 文件系统的安全性和数据一致性,廉价磁盘冗余阵列 廉价磁盘冗余阵列(RAID)就是一种由多块廉价磁盘构成的冗余阵列。虽然RAID包含多块磁盘,但是在操作系统下是作为一个独立的大型存储设备出现。 交叉存取技术 采用交叉存取的系统中,有多台磁盘驱动器,系统将数据分为若干个盘块
35、数据,再把每一个子盘块的数据分别存储到各个不同磁盘中的相同位置。当要将数据传送到内存时,采取并行传输方式,将各个盘块中的数据同时向内存中传输,从而使传输时间大大减少。,6.6 文件系统的安全性和数据一致性,RAID 0级 该级仅提供了并行交叉存取 RAID 1级 它具有磁盘镜像功能,可利用并行读、写特性,将数据分块并同时写入主盘和镜像盘。 RAID 2级 写入数据时在一个磁盘上保存数据的各个位,同时把一个数据不同的位运算得到的海明校验码保存另一组磁盘上,由于海明码可以在数据发生错误的情况下将错误校正,以保证输出的正确。,6.6 文件系统的安全性和数据一致性,RAID 3级 这是具有并行传输功能
36、的磁盘阵列。它利用一台奇偶校验盘来完成容错功能,比起磁盘镜像,它减少了所需要的冗余磁盘数。 RAID 4级 RAID3惟一不同的是数据分块的粒度。 RAlD 5级 这是一种具有独立传送功能的磁盘阵列,每个驱动器都各有自己独立的数据通路。独立地进行读、写,且无专门的校验盘。用来进行纠错的校验信息,是以螺旋方式散布在所有数据盘上。RAID 5级常用于IO较频繁的事务处理。,6.6 文件系统的安全性和数据一致性,RAID 6级 这是强化了的RAID。在RAID 6级的阵列中设置了一个专用的、可快速访问的异步校验级。该盘具有独立的数据访问通路。具有比RAID 3级及RAID 5级更好的性能。但其性能改
37、进得有限、且价格昂贵。,6.6 文件系统的安全性和数据一致性,备份 建立副本:把同一个文件保存到多个存储介质上,当某个文件损坏或丢失时,就可用其他存储介质上的备用副本来替换 转储:海量转储、增量转储 文件系统的数据一致性 一致性检查分为两种:块的一致性检查和文件的一致性检查 块的一致性检查 为了保证盘块数据结构的一致性,可利用软件方法构成一个计数器表,每个盘块对应一个表项,每一表顶中包含两个计数器,分别用作空闲盘块号计数器和数据盘块号计数器,6.6 文件系统的安全性和数据一致性,正常情况下,上述两组计数据中对应的一对计数器中的数据应互补,亦某个盘块在第一组计数器中数器值为1,则在第二组计数器中
38、计数器内容必为0,反之亦然。但如果情况并非如此时,说明发生了某种错误,6.6 文件系统的安全性和数据一致性,6.6 文件系统的安全性和数据一致性,文件一致性的检查 重复文件的数据一致性 :在有重复文件时,如果个文件拷贝修改了,则必须同时修改它的几个文件拷贝,保证该文件中数据的一致性 共享文件的数据一致性 :文件的共享计数和当前共享该文件的用户个数相一致,6.6 文件系统的安全性和数据一致性,6.7 磁盘调度,提高文件系统的性能措施 块高速缓存 系统在内存中保存一些存储块,这些存储块在逻辑上它们属于磁盘。 -工作时,系统检查所有的读请求,看所需的文件块是否在高速缓存中。如果在,则可直接在内存中进
39、行读操作。否则,首先要将块读到高速缓存中,再拷贝到所需的地方。 磁盘空间的合理分配 在磁盘空间中分配块时,应该把有可能顺序存取的块放在一起,最好在同一柱面上。 对磁盘调度算法进行优化,6.7 磁盘调度,磁盘输入输出时间 采用移动磁头的磁盘要访问某特定的物理块时,所用时间一般包括三部分 : 查找时间 按给定的柱面号(磁道号)将读写磁头移动指定的柱面或磁道上的时间 等待时间 等待磁盘旋转,使读写的块位于读写磁头之下的时间 传输时间 内存和磁盘之间数据的实际传送所用的时间,6.7 磁盘调度,磁盘的移臂调度算法 先来先服务调度算法FCFS 算法:根据访问请求的先后次序选择先提出访问请求的为之服务 优缺
40、点:是磁盘调度的最简单的一种形式,它既容易实现,又公平合理,缺点是效率不高 最短查找时间优先算法SSTF 算法:以磁头移动距离的大小作为优先的因素,从当前磁头位置出发,选择离磁头最近的磁道为其服务 优缺点:减少了磁道平均查找时间,但没考虑磁头移动的方向,也没有考虑进程在队列中等待的时间,扫描算法 电梯调度算法 算法:是选请求队列中沿磁臂前进方向最接近于磁头所在柱面的访问请求作为下一个服务对象 优缺点:算法简单、实用且高效,克服了最短寻道优先的缺点,既考虑了距离,同时又考虑了方向,但有时有的请求等待时间可能很长 例如,如果在为访问43号柱面的请求者服务后,当前正在为访问67号柱面的请求者服务,同
41、时有若干请求者在等待服务,它们依次要访问的柱面号为186,47,9,77,194,150,10,135,110。,6.7 磁盘调度,按照先来先服务的策略,处理顺序 1864797719415010135110。 用最短寻找时间优先算法服务的顺序为: 7747109110135150186194。 用电梯调度算法,服务次序为 7711013515018619447109。 N步扫描策略 - N步SCAN算法是将磁盘请求队列分成若干个长度为N的子队列,磁盘调度将按FCFS算法依次处理这些子队列。而每处理一个队列时又是按SCAN算法,对一个队列处理完后,再处理其他队列。 - 当正在处理某子队列时,如
42、果又出现新的磁盘I/O请求,便将新请求进程放入其他队列,这样就可避免出现粘着现象。,6.7 磁盘调度,单向扫描策略 磁盘单向移动。当移动臂向内移动时,它对本次移动开始前到达的各访问要求自外向内地依次给予服务,直到对最内柱面上的访向要求满足后,然后移动臂直接向外移动,停在所有新的访问要求的最外边的柱面上。然后再对本次移动前到达的各访问要求依次给予服务 SCAN算法 FSCAN算法实质是N步SCAN算法的简化。 将磁盘请求访问队列分成两个子队列,一是当前所有请求磁盘(IO)的进程形成的队列,由磁盘调度按SCAN算法进行处理。另个队列则是在扫描期间新出现的所有请求磁盘IO进程的队列,把它们排入另一个
43、等待处理的请求队列。,6.7 磁盘调度,磁盘的优化分布 有些系统,对数据的存放位置进行优化分布可减少延迟时间,从而缩短了输入输出操作的时间 例: 某系统对磁盘初始化时把每个盘面分成8个扇区,今有8个逻辑记录被存放在同一个磁道上供处理程序使用,处理程序要求顺序处理这8个记录,每次请求从磁盘上读一个记录,然后对读出的记录要花5毫秒的时间进行处理,以后再读下一个记录进行处理,直至8个记录都处理结束。假定磁盘转速为20毫秒/周,现把这8个逻辑记录依次存放在磁道上,如图 (a)所示。,6.7 磁盘调度,6.7 磁盘调度,(a)读一个记录要花2.5毫秒的时间。当花了2.5毫秒的时间读出第1个记录并花5毫秒时间进行处理后,读写磁头已经在第4个记录的位置,为了顺序处理第2个记录,必须等待磁盘把第2个记录旋转到读写磁头位置下面,即要有15毫秒的延迟时间。处理这8个记录所要花费的时间为 8(2.5+5)+715=165(ms) (b)是这8个逻辑记录的最优分布。当读出一个记录处理后,读写磁头正好位于顺序的下一个记录位置,可立即读出该记录,不必花费等待延迟时间。于是,处理这8个记录所要花费的时间为 8(2.5+5)=60(ms),6.7 磁盘调度,
链接地址:https://www.31doc.com/p-2910292.html