《操作系统课件——文件系统.ppt》由会员分享,可在线阅读,更多相关《操作系统课件——文件系统.ppt(62页珍藏版)》请在第壹文秘上搜索。
1、1第五章 文件管理2用户总是把长期要保存的或暂时要保存的大量信息,组织成文件的形式存放在辅助存储器中,成为计算机系统中的软件资源。用户希望的是能够“按名存取”。操作系统给我们提供了第五个功能-文件管理,主要有以下内容:5.1 文件管理基本理论5.2 Linux文件系统 5.3 Ext系列文件系统 5.4 虚拟文件系统 35.15.1 文件管理基本理论文件管理基本理论文件是具有名字的一组相关信息的有序集合,存放在外部存储器中。l 组成:文件名 + 属性 + 文件体 文件名:有限长度的字符串(注意DOS、Windows、Linux系统文件名) 文件属性:包括文件类型、大小、物理位置、存取控制、建立
2、或修改日期 文件体:4文件分类不同的系统对文件的管理方式不同。 按文件的性质和用途:系统文件,库文件、用户文件 按文件中的数据形式:源文件,目标文件,可执行文件 按存取权限:r,w,x 按照文件的内容:普通文件,目录文件,特别文件(Linux系统中将设备也当作文件对待) 5文件系统是操作系统的一个重要组成部分,实现文件管理的一组程序和所管理的全部文件(文件与目录的集合)以及管理文件所需要的一些数据结构的集合。 文件系统通常以磁盘分区划分,每个分区对应一个独立的文件系统。 文件系统管理的对象:文件+目录+磁盘存储空间 对对象操纵和管理的软件集合:文件管理系统的核心部分。文件系统的功能(按名存取、
3、存储空间管理、共享和保护等)大多是在这一层实现的。61 1 文件控制块文件控制块为了管理文件,文件系统为每个文件建立一个文件控制块(File Control Block,FCB)。n FCB记录了其的使用者和管理者所关心的所有信息(PCB?),包括文件名、大小、存储位置、修改和访问时间、权限等。n 一个FCB就是一个文件目录项。n 创建新文件时,建立FCB,随着文件的操作,FCB的内容动态更新,文件被删除时,其FCB删除。计算机系统中通常存有大量的文件,系统须采用某种有效的形式来组织和管理这些文件。由于文件与文件的FCB一一对应,因此,管理文件就是管理文件的FCB。2 2 目录目录n 文件系统
4、采用目录来组织文件。n 目录是FCB的有序集合,通过目录将所有的FCB分层分类地组织在一起,方便了文件的检索操作。n 目录本身需要长久保存的,也需以文件的形式存在,即目录文件,内容是一组FCB列表,每个表项(目录项)是一个文件的FCB。n 由于目录本身也是文件,因此目录的FCB也可以作为另一个目录中的目录项,从而构成目录的层次关系。目录的主要功能之一 实现文件的“按名存取”n 即用户只需提供文件名就可以对文件进行各种操作。在查找目录过程中,先将存放目录文件的第一个盘块中目录调入内存然后把用户所给定的文件名与目录项(每个文件的FCB)中的文件名逐一比较,若未找到指定文件,便将下一个盘块中的目录项
5、调入内存。很显然,如果存放FCB的目录文件过大(占多个磁盘块),将会导致匹配文件名的过程要多次访问磁盘,导致问题产生的原因就是目录文件的每个目录项即FCB占空间,如何改善?!检索目录文件过程中只用到文件名,仅当找到一个目录项时才从该目录项中读出该文件的物理地址,而其它一些对该文件进行描述的信息在检索目录时不会用到,故这些信息不需调入内存。于是,可以将文件名和文件描述信息分开。引入索引结点!将文件目录中的每个目录项组成改为文件名和指向该文件所对应结点(索引结点,Index Node,I节点,其中存放文件描述信息单独形成)的指针所构成。引入I结点后,文件目录仅由文件名及指向该文件所对应的i结点的指
6、针所构成。目录的主要功能之二 合理地组织文件。n 单级目录:最简单的文件目录结构是在系统中建立一张目录线性表,每个文件占一表目,由文件名和文件的说明和管理信息组成(即其FCB或文件目录项)。单级目录能够单级目录能够实现实现“按名存取按名存取”,但存在,但存在查找速度慢;查找速度慢;不允许重名(主要问题);不便于共享不允许重名(主要问题);不便于共享等问题。等问题。n 两级目录:系统设置一个主目录(MFD )后,再为每个用户设立一个用户目录(UFD)。MFD的每一项对应一个用户的目录文件,UFD每一项对应一个文件的FCB。n 多级目录结构:将两级目录结构的层次关系加以推广,就形成了多级目录结构,
7、即树形目录结构。 系统中有一个根目录(或根目录文件),在这个目录中可登记一般文件,也可以登记目录文件,在每个目录文件中可以登记一般文件,也可以登记目录文件, 现在,几乎所有的操作系统都采用树形目录结构3 3 文件的组织文件的组织文件的组织有两种:n 文件的逻辑结构-用户对文件的组织方式,是指用户思维中文件的结构。n 文件的物理结构-文件在存储介质上的组织形式,主要是指磁盘上文件的结构。 记 录 号 学 号 姓 名 班 级 各 科 成 绩 外 语 数 学 操 作 系 统 0 981001 章 城 冰 980701 86 93 90 1 981002 李 伟 业 980701 99 76 85 2
8、 981003 袁 中 春 980701 77 94 85 文件的逻辑结构n 记录式文件(有结构式文件):文件是记录的集合,每个记录由彼此相关的域构成,记录可按顺序编号为记录1,记录2,又分定/不定长记录文件。n 流式文件(无结构文件):是相关的有序字符的集合,在其内部不再对信息进行组织划分,文件的长度为所含字符数。文件的物理结构一个文件存储介质,格式化后就分成许多大小相等的单位存储块(物理盘块),在现代计算机系统中,一般来说,每个物理块是一个磁盘的扇区,512字节。并给每个存储块有个编号,称为物理块号。文件的物理结构目前有三种基本结构,即连续文件结构、串联文件结构和索引文件结构。l 连续文件
9、结构:文件的数据存放在连续的物理存储块中。n优点:结构简单、实现容易n缺点:不利于文件动态扩充;创建文件时要求给出文件大小,用户不方便l 串联文件结构:文件信息存于若干不一定连续的磁盘块中。每个物理块的最末一个字(或第一个字)作为链接字,指出后继块号。链首指针存在文件FCB中,文件的结尾块的指针为“”。n优点:文件动态扩充和修改容易(图中蓝线);外存空间利用率高;n缺点:顺序存取效率高,随机存取效率太低,如果访问文件最后的内容,实际上是访问整个文件。(参考上图,理解这句话)n链接文件更适合于小型文件系统。为了克服串联文件的存取效率太低的问题,引入文件映照技术,即把串联文件中的链接字集中在一结构
10、中。n DOS、WINDOWS系统采用(文件分配表)n 文件分配表(File Allocation Table,FAT) 磁盘格式化后建立,用于记录外存分配,FAT每个表项对应一个盘块(标记为0至N-1),其中用来存放分配给文件的下一个盘块号; 放在内存中,整个系统一张FAT; 分配给某文件的所有物理块都在该表中标出,文件的首块号记入FCB。 显示链接。引入FAT的问题:FAT需占用较大的内存空间,只有将整个FAT表调入内存才能找到对应的盘块号。示例:若磁盘大小为1.2M,每个物理块大小为512B,则共有2.4K个FAT表项,则(回顾存储管理的单级页表的问题)l 索引结构:不连续分配。每个文件
11、建立一张索引表,每个表目指出文件内容与磁盘块号的对应关系 n 索引结构是当代计算机操作系统中普遍采用的结构,如UNIX系统、LINUX系统。n 优点:具备串联结构所有的优点,适合与随机存放n 缺点:增加了索引的开销,存取文件时首先要取得索引表,这样就要增加一次访盘操作,降低了文件访问的速度索引表是在建立文件时由文件管理机构自动建立的,并存放在与文件相同的文件卷(如同一磁带或同一盘片)上。乍一看来,存取索引文件要访问2次外存(why?)。In fact! 在访问索引文件之前,总是首先“打开”其对应的索引表文件,把其索引表文件的一部分读入主存,因此其后对文件的绝大多数访问只要1次访外。 仅当更新索
12、引表到另一部分时,才发生1次二度访外的情况。(回顾快表机制) (回顾页表地址映射) 第1次访问索引表文件,第2次根据索引得到的物理块号再度访问外存。索引表是在建立文件时由文件管理机构自动建立的,并存放在与文件相同的文件卷(如同一磁带或同一盘片)上。乍一看来,存取索引文件要访问2次外存(why?)。In fact! 在访问索引文件之前,总是首先“打开”其对应的索引表文件,把其索引表文件的一部分读入主存,因此其后对文件的绝大多数访问只要1次访外。 仅当更新索引表到另一部分时,才发生1次二度访外的情况。(回顾快表机制) (回顾页表地址映射) 第1次访问索引表文件,第2次根据索引得到的物理块号再度访问
13、外存。Another Question! (回顾多级页表) 引入多级索引和混合索引。混合索引应用 UNIX system 系统l UNIX system 混合索引动画演示l 按文件的长度(占据数据块的个数)分为小文件、中文件、大文件、巨文件,分别对应直接、一次间接、二次间接、三次间接的编址方式。系统支持的最大文件=(10+256+2562+2563)512B4 4 文件存储空间的管理文件存储空间的管理无论程序还是数据都是以文件形式存放在外存上,外存上文件存放的空间叫作“文件存储空间”。l 回顾内存空间的管理l 对文件存储空间的管理工作包括:建立文件时为文件分配存储空间;删除文件时去配;以及修改
14、文件时动态更新外存空间。l 系统将外存空间分成若干大小相等的物理块,以块(or簇)为单位来交换信息。l 文件存储空间的管理,实际上就是一个空闲块的组织和管理问题。 三种常用的管理方法:空闲块表、空闲块链、位示图。空闲块表用空闲区表来管理文件存储空间,做法是系统设置一张表格,表中的每一个表目记录磁盘空间中的一个连续空闲盘区的信息。l 表目的内容至少包括:空闲块区首块地址(物理块号)、空白块个数。l 空闲块表适合于连续组织的文件,因为在分配文件时按文件尺寸申请一组连续的空闲块,撤消文件时归还这组连续的空闲块区。l 与可变分区分配算法相似(回顾!),可采用最先适应、最坏适应、最佳适应算法。l 由于空
15、闲块区的个数是动态改变的,导致空闲块表目个数不能预先确定,因此可能会产生表目溢出(表较小时)或表目浪费(表较大时)。 空闲块链把所有空闲块的块号用链表的形式连接在一起,适用于各种物理组织的文件。l 注意,对空闲块链操作时应互斥。l 需要分配空白块时从链首进行,所以在主存中要保存一个链首指针,它指向第一个空白块,当回收时,把回收块挂在空白块链尾上。 位示图(bit map)位示图是外存空间的存储映射图,是系统在内存中划分出的若干字节的集合,用来指示磁盘存储情况。n 采用位示图的具体做法是:为所要管理的磁盘设置一张位示图,位示图的大小,由磁盘的总块数决定。n 位示图中的每一位(bit)对应外存空间
16、的一个物理块。若该位为“1”,表示对应块被占用;“0”表示空闲。设整个文件空间有n块,那么可用n位构成位示图。01100位n - 1位第i块已分配例:设某磁盘组共有16个柱面,每个柱面有16个磁头寻道,每个磁道分16个扇区,整个磁盘空间的扇区数为:16*16*16=4096个 若一个扇区被定义为一个存储块,用字长16位的存储单元来构造位示图,共需要256个字。n 分配:扫描位示图,找到足够的空闲块(对应位为“0”)分配,并将对应位改为“1”;n 回收:将对应的位改为“0”即可。n 位示图较小,系统启动时进入内存(全部或部分),因此可实现高速的分配。NOTE!:必须定时地把主存中的位示图复制到外存保存,以防万一文件系统发生故障,可以依据外存的位示图副本修复文件系统。UNIX系统系列磁盘空间管理方法 成组链接法UNIX系统采用空闲块成组链接法对磁盘空间的空闲块加以组织。l 每100个空闲块划归1组,将各组中的盘块号存放在其前组中的第1个空闲块中,第1组的空闲盘块号放入系统专用的超级块(superblock)中。l 第1组不足100块,文件存储空间不会恰好为100的整数倍,所以第1组小于10