版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1第六章 文件系统 第六章第六章 文件系统文件系统n6.1 6.1 文件和文件系统文件和文件系统 n6.2 6.2 文件结构文件结构 n6.3 6.3 目录管理目录管理n6.4 6.4 文件的共享文件的共享 n6.5 6.5 文件的保护文件的保护 n6.6 6.6 外存空间管理外存空间管理n6.7 6.7 数据一致性控制数据一致性控制 n6.8 6.8 文件物理结构实例文件物理结构实例2第六章 文件系统 6.1 6.1 文件和文件系统文件和文件系统6.1.1 6.1.1 引言引言 6.1.2 6.1.2 文件文件 6.1.3 6.1.3 文件系统文件系统 3第六章 文件系统 6.1.1 6.1
2、.1 引言引言在早期计算机系统中,人们直接用物理地址存放信息。存放信息时,要求用户指出并记住信息存放在哪个设备的哪些磁道、哪些扇区上。在多用户的环境中这几乎是不可能的,更是不能忍受的。 4第六章 文件系统 实际上对用户来说,关心的不是信息的具体存放位置,而是存取方法的方便、可靠。不是信息的物理结构而是信息的逻辑结构。因此,引入文件和文件系统的概念,它是操作系统的重要组成部分。 5第六章 文件系统 6.1.2 6.1.2 文件文件1、文件的定义、文件的定义文件是计算机系统中信息存放的一种组织形式,目前尚无严格的定义,下面给出两种有代表性的解释:n文件是赋名的信息 (数据)项的集合。n文件是赋名有
3、关联的信息单位 (记录)的集合。信息项信息项 信息项信息项 . 信息项信息项 . 信息项信息项编号:编号:0 1 i n-1读写指针读写指针6第六章 文件系统 这两种解释定义了两种文件形式:这两种解释定义了两种文件形式:n前者说明文件是由字节组成,这是一种无结构的文件,或称流式文件。目前UNIX操作系统,MS-DOS系统均采用这种文件形式。n后者说明文件是由记录组成。而记录则是由一组相关信息项组成。例如每个学生的登记表可视为一个记录,它包括学生姓名,出生年月,性别,籍贯等信息项。所有学生登记表组成一个学生文件。7第六章 文件系统 在现代计算机操作系统中,为方便用户,把设备也作为文件来统一管理,
4、从某种意义上说已拓宽了文件的含义。一般情况下,一个文件是一组逻辑上具有完整意义的信息集合,并赋以一个文件名。文件名是一个字符串。8第六章 文件系统 2 2、文件的分类、文件的分类(1)以文件的用途分类n系统文件: 指用操作系统的执行程序和数据组成的文件,这种文件不对用户开放,仅供系统使用。n库文件:是指系统为用户提供的各种标准函数,标准过程和实用程序等。用户只能使用这些文件,而无权对其进行修改。n用户文件: 由用户的信息组成的文件,如源程序文件,数据文件等。这种文件的使用和修改权均属于用户。 9第六章 文件系统 (2 2)从按文件的操作保护分类)从按文件的操作保护分类n只读文件: 只允许进行读
5、操作。n读写文件: 允许进行读写操作。n不保护文件: 不作任何操作限制。10第六章 文件系统 (3)按文件的性质分类n普通文件: 指一般的用户文件和系统文件。n目录文件: 指由文件目录项组成的文件。n特别文件: 有的系统把设备作为文件统一管理和使用,并为区别起见,把设备称为特别文件。UNIX操作系统把文件分成普通文件、目录操作系统把文件分成普通文件、目录文件和特别文件。文件和特别文件。 11第六章 文件系统 3 3、文件属性、文件属性用一组信息指定文件的类型、操作特性和存取保护等,把这组信息称为文件的属性。文件的属性一般存放在文件的目录项中。例如MS-DOS系统中,文件属性占目录项的一个字节,
6、在这个字节中,01表示文件仅读,02表示隐含文件等。 12第六章 文件系统 6.1.3 6.1.3 文件系统文件系统操作系统中负责管理文件的机构称为文件系统。也有的文献上叫信息系统。文件系统负责文件的创立、撤消、读写、修改、复制和存取控制等,并管理存放文件的各种资源。 13第六章 文件系统 6.2 6.2 文件结构文件结构6.2.1 6.2.1 概述概述 6.2.2 6.2.2 文件的逻辑结构文件的逻辑结构 6.2.3 6.2.3 文件的物理结构文件的物理结构 14第六章 文件系统 6.2.1 6.2.1 概述概述研究文件结构有两种观点:研究文件结构有两种观点:用户的观点(文件的逻辑结构):主
7、要研究用户思维中的抽象文件,为用户提供一种逻辑结构清晰、使用简便的逻辑文件。用户将按这种形式去存取、检索和加工文件。例如用户可将文件看作字节的集合。或者用户将文件看作记录的集合。15第六章 文件系统 实现的观点(文件的物理结构):主要研究驻留在存储介质上的文件的结构。文件的物理结构:文件的各个字节在存储介质上是如何摆放的。 16第六章 文件系统 6.2.2 6.2.2 文件的逻辑结构文件的逻辑结构1 1、文件的逻辑结构、文件的逻辑结构流式文件:基本信息单位是字节或字,其长度是所含字节的数量。n这种文件的优点是节省存储空间。n在这种文件中无需额外的说明和控制信息。17第六章 文件系统 记录式文件
8、:记录式文件是一种结构文件。由若干个记录组成,文件中的记录可按顺序编号为记录1,记录2,记录n。n如果文件中所有记录的长度相等,则称为定长记录文件,文件的长度为记录个数与记录长度的积。n若文件中的记录长度不相等,则称为变长记录文件。文件长度为所有记录长度之和。18第六章 文件系统 相对流式文件而言,记录式文件的使用不很方便,尤其是变长记录文件。另外在文件中还要有说明记录长度的信息,这就浪费了一部分存储空间。因此许多现代计算机操作系统如UNIX操作系统等都取消了记录式文件。 19第六章 文件系统 2 2、文件的存取方法、文件的存取方法n顺序存取顺序存取文件存取最简单的方法是顺序存取,即严格按文件
9、信息单位排列的顺序依次存取。当打开文件时,文件的存取指针指向第一个信息单位,如第一个字节或第一个记录,每存取一个信息单位存取指针加1指向下一个信息单位,如此类推。20第六章 文件系统 n随机存取随机存取也称直接存取,每次存取操作时必须先确定存取的位置。对流式文件或定长记录的文件比较容易确定存取位置。对不定长的记录式文件比较麻烦。当然可从第一个记录开始顺序查询,直到找到要存取的记录为止,显然这样做是低效的。解决的方法是建立索引。文件的索引可以作为文件的一部分,也可以单独建立索引文件。 21第六章 文件系统 6.2.3 6.2.3 文件的物理结构文件的物理结构文件的物理结构是指文件在物理存储介质上
10、文件的物理结构是指文件在物理存储介质上的结构。的结构。n1 1、连续结构、连续结构n2 2、链接结构、链接结构n3 3、索引结构索引结构22第六章 文件系统 1 1、连续结构、连续结构一个文件的全部信息存放在外存的一片连续编号的物理块中,这种结构称为连续结构,或称连续文件。存放在磁带上的文件一般采用连续结构,即序号为I+1的物理块一定在i物理块之后。而存放在磁盘上的文件则可采用连续结构,也可采用别的结构。建立连续文件时要求用户给出文件的最大长度,以便系统为文件分配足够的存储空间,并在相应表格中登记文件的起始位置和长度。23第六章 文件系统 24第六章 文件系统 0123456789101112
11、13141516171819202122232425262728293031文件名文件名 始址始址 块数块数count 0 2tr 14 3mail 19 6list 28 4f 6 2 文件目录文件目录countftrmaillist25第六章 文件系统 优点优点n简单 n支持顺序存取和随机存取n 顺序存取速度快n 所需的磁盘寻道次数和寻道时间最少26第六章 文件系统 缺点缺点n文件不易动态增长 预留空间:浪费 重新分配和移动n不利于文件插入和删除n外部碎片问题 存储压缩技术27第六章 文件系统 2 2、链接结构、链接结构这是一种非连续的结构,存放文件信息的每一物理块中有一个指针,指向下一个
12、物理块,这个指针的长度由物理设备的容量决定,通常放在该物理块的开头或结尾。28第六章 文件系统 29第六章 文件系统 文件名文件名 始址始址 末址末址jeep 9 25文件目录文件目录01234567891011121314151617181920212223242526272829303111016-12530第六章 文件系统 链接结构的文件适用于顺序存取。因为要获得某一块的块号,必须读取上一物理块,因此要随机地存取信息就较为困难。31第六章 文件系统 优缺点优缺点优点:优点:n提高了磁盘空间利用率,不存在外部碎片问题n有利于文件插入和删除n有利于文件动态扩充缺点:缺点:n存取速度慢,不适于
13、随机存取n链接指针占用一定的空间n可靠性问题,如指针出错32第六章 文件系统 链接结构的变形链接结构的变形文件分配表文件分配表( (FAT)FAT)将盘块中的链接字按盘块号的顺序集中起来,构成盘文件映射表/文件分配表 。利用FAT可方便地进行随机存取。33第六章 文件系统 图示图示34第六章 文件系统 FAT也要占用一定的存储空间,若盘的容量较大,也可能占用较多的存储空间。在进行文件访问时,可能在内存中装不下整个FAT,这样就会造成若要读某块文件信息时,还要读盘块映射表的操作,影响使用效率。35第六章 文件系统 FAT的实例的实例在在MS-DOS和和Windows系统中,文件的物理系统中,文件
14、的物理结构使用的是结构使用的是FAT结构。结构。将磁盘空间划分为块,每块大小为扇区的整将磁盘空间划分为块,每块大小为扇区的整数倍。在数倍。在FAT文件系统中块称为文件系统中块称为簇簇一个磁盘分区能分为多少簇则一个磁盘分区能分为多少簇则FAT就有多少就有多少表项表项36第六章 文件系统 37第六章 文件系统 思考思考n什么叫什么叫FAT16、FAT32?n在在FAT16中一簇最大中一簇最大64个扇区,为什么个扇区,为什么FAT16能管理的磁盘分区为能管理的磁盘分区为2G?nFAT32同同FAT16相比有什么优点?相比有什么优点?38第六章 文件系统 思考思考对于对于FAT16文件系统,若一个磁盘
15、分区的大文件系统,若一个磁盘分区的大小为小为512M,问一个簇最少要为多少个扇区?,问一个簇最少要为多少个扇区?簇是大点好,还是小点好?簇是大点好,还是小点好?39第六章 文件系统 3 3、索引结构、索引结构一个文件的信息存放在若干不连续物理块中,系统为每个文件建立一个专用数据结构-索引表,并将这些块的块号存放在索引表中。一个索引表就是磁盘块地址数组,其中第i个条目指向文件的第i块40第六章 文件系统 41第六章 文件系统 012345678910111213141516171819202122232425262728293031文件名文件名 索引表地址索引表地址文件目录文件目录Jeep 19
16、 916 11025 -1 -1 -11942第六章 文件系统 优点优点n保持了链接结构的优点,又解决了其缺点:n即能顺序存取,又能随机存取n满足了文件动态增长、插入删除的要求n能充分利用外存空间43第六章 文件系统 缺点缺点n索引表本身带来了系统开销 如:内外存空间,存取时间44第六章 文件系统 6.3 6.3 目录管理目录管理6.3.1 6.3.1 基本概念基本概念n文件控制块(文件控制块(FCBFCB):文件控制块是操作系统为管理文件而设置的数据结构,存放了为管理文件所需的所有有关信息文件控制块是文件存在的标志FCB就是目录表中的一个目录项45第六章 文件系统 文件控制块的内容:文件控制
17、块的内容:文件名,文件号,用户名,文件地址,文件长度,文件类型,文件属性,共享计数,文件的建立日期,保存期限,最后修改日期,最后访问日期,口令,文件逻辑结构,文件物理结构等。46第六章 文件系统 n文件目录文件目录:把所有的FCB组织在一起,就构成了文件目录,即文件控制块的有序集合n目录项目录项:构成文件目录的项目(目录项就是FCB)n目录文件目录文件:为了实现对文件目录的管理,通常将文件目录以文件的形式保存在外存,这个文件就叫目录文件47第六章 文件系统 6.3.2 6.3.2 目录结构目录结构1、一级目录结构、一级目录结构 为所有文件建立一个目录文件(组成一线性为所有文件建立一个目录文件(
18、组成一线性表)表)48第六章 文件系统 文件名文件名文件的物理文件的物理位置位置日期日期时间时间其他信其他信息息C bsc Wps 49第六章 文件系统 优缺点优缺点优点:优点:简单,易实现缺点:缺点:n限制了用户对文件的命名(重名问题重名问题) )n文件平均检索时间长n限制了对文件的共享50第六章 文件系统 2 2、二级目录结构、二级目录结构二级文件目录结构把目录分成主目录和用户文件目录两级。主目录由用户名和用户文件目录首地址组成,用户文件目录中登记相应的用户文件的目录项。51第六章 文件系统 52第六章 文件系统 在二级目录结构中,区别不同的文件除文件名外还有文件的用户名,因此不同的用户可
19、以使用相同的文件名。 例如用户A中使用文件名LISH,用户B也可使用文件名LISH,因为标识这两个文件时还要加上用户名,A:LISH和B:LISH,不致于造成混淆。53第六章 文件系统 优缺点优缺点优点:优点:二级目录结构较为简单,也比较好地解决了重名的问题。缺点:缺点:缺乏灵活性,特别是不能反映现实世界中多层次的关系。为此人们提出了多级目录结构,其中为此人们提出了多级目录结构,其中MULTICS及及UNIX系统均采用了多级目录结构,系统均采用了多级目录结构,它们是当前文件系统的典型而完美的代表。它们是当前文件系统的典型而完美的代表。 54第六章 文件系统 3 3、多级目录结构、多级目录结构多
20、级目录结构由根目录和各级目录组成,为管理上的方便,除根目录外,其它各级目录均以文件的形式组成目录文件。根目录中的每个目录项可以对应一个目录文件,也可以对应一个数据文件,同样目录文件中的每个目录项可以对应一个目录文件。也可以对应一个数据文件。如此类推,就形成多级目录结构。也称树形目录结构55第六章 文件系统 在这种结构中把根目录称为根结点,把各级目录文件称中间结点,用方框表示。数据文件称为叶结点,用圆圈表示。56第六章 文件系统 57第六章 文件系统 路径名路径名在多级目录结构中一个文件的唯一标识不再是文件名,而是从根结点开始,经过一个或多个中间结点,到达某个叶结点的一条路径。称这条路径为文件的
21、路径名,它是文件的唯一标识。路径名由根目录和所经过的目录名和文件名以及分隔符组成,通常使用分隔符 /。例如/d1/f1, /d2/d5/f3, /f758第六章 文件系统 工作目录工作目录在多级目录结构中,文件路径名一般较长,而用户总是局部地使用文件,为了方便起见,可把经常使用的文件所在的目录指定为工作目录(或称当前目录)。查询时,若路径名以/开头;则从根目录开始查找,否则从当前目录开始查找。59第六章 文件系统 4、文件目录改进、文件目录改进为加快目录检索可采用目录项分解法:把FCB分成两部分:n 符号目录项 (次部) 文件名,文件号n 基本目录项 (主部) 除文件名外的所有项目UNIX:i
22、节点(索引节点)节点(索引节点)60第六章 文件系统 61第六章 文件系统 62第六章 文件系统 例子例子一个FCB有48个字节符号目录项占 8字节 文件名6字节,文件号2字节基本目录项占 48-6=42字节 假设,物理块大小512字节63第六章 文件系统 分解前:占分解前:占512/48=10个个FCB分解后:占分解后:占512/8=64个符号目录项或个符号目录项或512/42=12个基本目录项个基本目录项 假设:目录文件有假设:目录文件有128个目录项个目录项分解前:占分解前:占13块块分解后:符号文件占分解后:符号文件占2块块 基本文件占基本文件占11块块 解解64第六章 文件系统 分解
23、前:(1+13)/2=7次 分解后:(1+2)/2 +1 =2.5次减少了访问硬盘的次数,提高了检索速度查找一个文件的平均访盘次数65第六章 文件系统 6.4 6.4 文件的共享文件的共享所谓文件共享指系统允许多个用户或进程共享同一份文件。在系统中只需要保存共享文件的一个副本。如果系统不能提供文件共享功能,就意味着凡是需要该文件的用户都要自备此文件的副本。66第六章 文件系统 文件共享的目的文件共享的目的n节省存储空间n 进程间通过文件交换信息67第六章 文件系统 链接技术实现文件共享链接技术实现文件共享从一个目录项直接用一个指针(或编号)指向另一个目录项达到共享文件的目的。这里需要扩充目录项
24、,增加:用户计数。用于记录共享数量。 硬链接硬链接68第六章 文件系统 69第六章 文件系统 利用符号链实现文件共享利用符号链实现文件共享用户A为了共享用户B的Bboot目录下的一个文件f1.c,可以创建一个LINK类型的新文件x,新文件x中仅包含被链接文件f1.c的路径名。A用户对新文件x的访问被系统重定位去访问B的文件f1.c。 软链接软链接70第六章 文件系统 文件文件x的内容:的内容:/Bboot/f1.c71第六章 文件系统 优势:计算机网络环境下可用优势:计算机网络环境下可用问题:系统开销大问题:系统开销大72第六章 文件系统 实例:实例:n各实际各实际OS是否提供链接技术是否提供
25、链接技术u DOS uWindows (快捷方式)快捷方式)uUnix (硬链接硬链接/软链接)软链接)n用户程序用户程序cc在运行时要用到目录在运行时要用到目录/lib下的文下的文件件mad,但后来包括但后来包括mad在内的一些文件被整在内的一些文件被整理到理到/usr/lib下,并改名为下,并改名为mad1, 为使为使cc正常正常运行,应使用运行,应使用 ln /usr/lib/mad1 /lib/mad73第六章 文件系统 6.5 6.5 文件的保护文件的保护对拥有权限的用户,应该让其进行相应操作,否则,应禁止。n6.5.1 6.5.1 对用户进行分类对用户进行分类 n6.5.2 6.5
26、.2 对访问权限分类对访问权限分类 n6.5.3 6.5.3 用访问控制矩阵实现文件保护用访问控制矩阵实现文件保护 n6.5.4 6.5.4 存取控制表实现文件保护存取控制表实现文件保护 n6.5.5 6.5.5 用户权限表实现文件保护用户权限表实现文件保护 n6.5.6 6.5.6 用口令实现文件保护用口令实现文件保护74第六章 文件系统 6.5.1 6.5.1 对用户进行分类对用户进行分类 按用户对文件访问权力的差别把用户分成几按用户对文件访问权力的差别把用户分成几类,然后对每个文件规定各类用户的存取权限。类,然后对每个文件规定各类用户的存取权限。通常将用户分成三类通常将用户分成三类: :
27、n文件主文件主n文件主的同组用户或合作用户文件主的同组用户或合作用户n其它用户其它用户 75第六章 文件系统 6.5.2 6.5.2 对访问权限分类对访问权限分类 对文件的访问系统首先要检查访问权限,只允许合对文件的访问系统首先要检查访问权限,只允许合法的用户访问。文件的存取权限一般有以下几种法的用户访问。文件的存取权限一般有以下几种: :n仅允许执行仅允许执行 ( (E)E)。n仅允许读仅允许读 ( (R)R)。n仅允许写仅允许写 ( (W)W)n仅允许在文件尾写仅允许在文件尾写 ( (A)A)n仅允许对文件进行修改(仅允许对文件进行修改(U U)n允许改变文件的存取枚限(允许改变文件的存取
28、枚限(C C)n允许取消文件(允许取消文件(D D)这几种权限可进行适当的组合。这几种权限可进行适当的组合。 76第六章 文件系统 6.5.3 6.5.3 用访问控制矩阵实现文件保护用访问控制矩阵实现文件保护 一维代表所有用户,一维代表系统中的所一维代表所有用户,一维代表系统中的所有文件。有文件。优点:一目了然优点:一目了然缺点:矩阵往往过大。缺点:矩阵往往过大。 77第六章 文件系统 78第六章 文件系统 6.5.4 6.5.4 存取控制表实现文件保护存取控制表实现文件保护 79第六章 文件系统 6.5.5 6.5.5 用户权限表实现文件保护用户权限表实现文件保护 80第六章 文件系统 6.
29、5.6 6.5.6 用口令实现文件保护用口令实现文件保护 用户为自己的每个文件规定一个口令,有口用户为自己的每个文件规定一个口令,有口令者才能访问文件。令者才能访问文件。优点:简便优点:简便缺点:缺点:n保护级别少(可访问和不可访问)保护级别少(可访问和不可访问)n保密性差。保密性差。n不易改变存取控制权限。不易改变存取控制权限。 81第六章 文件系统 6.6 6.6 外存空间管理外存空间管理 外存空间管理主要就是空闲块的管理,有以外存空间管理主要就是空闲块的管理,有以下方法:下方法:6.6.1 空闲表法空闲表法6.6.2 空闲链表法空闲链表法6.6.3 位图法位图法6.6.4 成组链接法成组
30、链接法82第六章 文件系统 6.6.1 空闲表法空闲表法与内存管理中的动态分区分配方式相同。与内存管理中的动态分区分配方式相同。空闲盘块的分配与内存的动态分配类似,同空闲盘块的分配与内存的动态分配类似,同样可以用首次、最佳、最坏适应法。盘块的回样可以用首次、最佳、最坏适应法。盘块的回收也同内存的回收方式类似。收也同内存的回收方式类似。起始空闲盘块号起始空闲盘块号盘块数盘块数2493155。83第六章 文件系统 6.6.2 空闲链表法空闲链表法空闲块链是另一种空闲块的组织方法,它用空闲块链是另一种空闲块的组织方法,它用一种链结构把所有空闲块链接在一起。一种链结构把所有空闲块链接在一起。分配:当系
31、统建立文件需分配空闲块时,从分配:当系统建立文件需分配空闲块时,从链中摘取所需的空闲块,然后调整链首指针。链中摘取所需的空闲块,然后调整链首指针。回收:反之,当回收空闲块时回收:反之,当回收空闲块时; ;把释放的空把释放的空闲块逐个插入链首闲块逐个插入链首 。84第六章 文件系统 这种方法只需在系统中保留一个链首指针,这种方法只需在系统中保留一个链首指针,令其指向第一个空闲块。令其指向第一个空闲块。这种方法的优点是简单,但工作效率较低,这种方法的优点是简单,但工作效率较低,因为每次在链上增加和移出空闲块时,需要做因为每次在链上增加和移出空闲块时,需要做I/OI/O操作。操作。例如把一空闲块插入
32、链时,要把链首指针例如把一空闲块插入链时,要把链首指针( (原指向第一个空闲块原指向第一个空闲块) )写该空闲块中,然后让写该空闲块中,然后让链首指针指向该空闲块。从链中摘取空闲块时链首指针指向该空闲块。从链中摘取空闲块时也要读取下一个空闲块的指针。也要读取下一个空闲块的指针。85第六章 文件系统 6.6.3 位图法位图法系统为磁盘建立一张位图,在位图中每个物系统为磁盘建立一张位图,在位图中每个物理块占理块占1 1位,按物理块的顺序排列。位,按物理块的顺序排列。11表示对表示对应的物理块已占用,应的物理块已占用,00表示空闲。表示空闲。86第六章 文件系统 分配时首先在位图中找到为分配时首先在
33、位图中找到为00的位,然后的位,然后转换成对应的物理块号,分配给申请者,并把转换成对应的物理块号,分配给申请者,并把相应的位置为相应的位置为11。回收时先将释放的物理块号转换成相应的位,回收时先将释放的物理块号转换成相应的位,并把这一位置为并把这一位置为00。 位图的大小依据物理磁盘的容量而定。如位图的大小依据物理磁盘的容量而定。如360360KBKB的软盘,每个物理块为的软盘,每个物理块为512512字节,位图只字节,位图只占用占用9090个字节个字节87第六章 文件系统 6.6.4 成组链接法成组链接法UNIX采用此法采用此法88第六章 文件系统 原理原理在在UNIXUNIX中有一个整型数
34、组中有一个整型数组s_freel00s_freel00 和一和一个整型变量个整型变量s_nfrees_nfree。将所有的空闲盘块分组,每将所有的空闲盘块分组,每100个空闲盘块为个空闲盘块为一组。最后一组的块号填入一组。最后一组的块号填入s_free 、块数赋块数赋于于s_nfrees_nfree。其余各组的块号则分别存放在它的其余各组的块号则分别存放在它的下一组的第一个盘块中。下一组的第一个盘块中。89第六章 文件系统 图解图解假设共有假设共有387个空闲块个空闲块90第六章 文件系统 分配分 配 空 闲 盘 块 时 , 总 是 分 配时 , 总 是 分 配s_frees_nfrees_f
35、rees_nfree所指的盘块,并且所指的盘块,并且s_nfrees_nfree减减1 1 。当发现是直接管理的最后。当发现是直接管理的最后一个盘块时,即一个盘块时,即s_nfree=ls_nfree=l时,就将该盘时,就将该盘块中的索引表写入到块中的索引表写入到s_nfrees_nfree和和s_frees_free中,使得下一组变为直接管理。如此类推中,使得下一组变为直接管理。如此类推直到最后一组。直到最后一组。91第六章 文件系统 释放释放空闲盘块时,将其块号登记在时,将其块号登记在s_frees_free表中第一个未被占用的项。例如,表中第一个未被占用的项。例如,若若s_nfrees_
36、nfree的原先值为的原先值为8787,则将释放块号,则将释放块号登记在登记在s_free88s_free88中,然后中,然后s_nfrees_nfree加加1 1。若在登记之前发现若在登记之前发现s_frees_free已满,则将已满,则将s_free1s_free1至至s_free100s_free100的内容复写到要的内容复写到要释放的盘块中。这样原来直接管理的释放的盘块中。这样原来直接管理的100100空闲盘块变为由释放块间接管理。然后将空闲盘块变为由释放块间接管理。然后将此该释放块的块号填入此该释放块的块号填入s_frees_free ,把把s_nfrees_nfree置为置为1 1
37、。92第六章 文件系统 6.7 数据一致性控制数据一致性控制 数据一致性的概念在数据库中出现较多。数据一致性的概念在数据库中出现较多。n6.7.1 事务事务n6.7.2 检查点检查点n6.7.3 并发控制并发控制93第六章 文件系统 6.7.1 事务事务1、事务(、事务(Transaction)的定义的定义 事务是用于访问和修改各种数据项的一个程事务是用于访问和修改各种数据项的一个程序单位。序单位。事务具有原子性:事务的操作要么全部完成,事务具有原子性:事务的操作要么全部完成,要么一个也不做。要么一个也不做。事务的操作全部完成时要执行提交事务的操作全部完成时要执行提交(commit)操作。事务
38、失败时要执行退回操作。事务失败时要执行退回(Rolled back)操作。操作。94第六章 文件系统 2、 事务记录事务记录记录事务运行时所有对数据项的修改信息。记录事务运行时所有对数据项的修改信息。又称运行日志(又称运行日志(Log)。)。该记录包括:该记录包括:n事务名事务名 事务的唯一标识事务的唯一标识n数据项名数据项名 被修改的数据项标识被修改的数据项标识n旧值旧值n新值新值当一个事务提交时,将一个当一个事务提交时,将一个提交记录提交记录也写入也写入事务记录表中。事务记录表中。95第六章 文件系统 3、 恢复算法恢复算法当系统发生故障后,利用事务记录进行故障当系统发生故障后,利用事务记
39、录进行故障恢复。恢复。搜索整个事务记录表:搜索整个事务记录表:n对于已经提交了的事务,执行对于已经提交了的事务,执行redo操作操作n对于未提交事务,执行对于未提交事务,执行undo操作操作96第六章 文件系统 6.7.2 检查点检查点1、检查点、检查点 (Check points)的作用的作用随着系统的运行,事务记录表会变得越来越大,这随着系统的运行,事务记录表会变得越来越大,这样当发生故障时,搜索整个事务记录表来进行恢复就样当发生故障时,搜索整个事务记录表来进行恢复就是一件非常费时的工作。因而引入检查点。是一件非常费时的工作。因而引入检查点。系统每隔一段时间便写一条检查点记录到事务记录系统
40、每隔一段时间便写一条检查点记录到事务记录表,并进行恢复工作,即:对已经提交的事务执行表,并进行恢复工作,即:对已经提交的事务执行redo,未提交的事务执行未提交的事务执行undo。 这样在检查点这个时刻,系统中数据的一致性和完这样在检查点这个时刻,系统中数据的一致性和完整性肯定能得到保证。整性肯定能得到保证。97第六章 文件系统 2、新的恢复算法、新的恢复算法在引入检查点后,当发生故障后,只需对最在引入检查点后,当发生故障后,只需对最后一个检查点以后开始的事务执行恢复工作。后一个检查点以后开始的事务执行恢复工作。98第六章 文件系统 6.7.3 并发控制并发控制在多进程或多用户系统中,可能有多
41、个事务在多进程或多用户系统中,可能有多个事务在并发执行,这些事务对数据的修改应该是互在并发执行,这些事务对数据的修改应该是互斥的。(参见第四章进程同步)斥的。(参见第四章进程同步)可以利用可以利用PV操作来实现互斥。操作来实现互斥。但在数据库和文件服务器中,应用得最多的但在数据库和文件服务器中,应用得最多的还是较简单且灵活的同步机制:锁。还是较简单且灵活的同步机制:锁。99第六章 文件系统 1、互斥锁、互斥锁当事务访问一数据项时,给它上锁当事务访问一数据项时,给它上锁 ,访问完,访问完后开锁。后开锁。100第六章 文件系统 2、互斥锁和共享锁、互斥锁和共享锁互斥锁可以简单实现事务的并发控制,但
42、会互斥锁可以简单实现事务的并发控制,但会影响并发度。影响并发度。因为当一个事务读一个数据项进,另一事务因为当一个事务读一个数据项进,另一事务应该也能读同一数据项,但上互斥锁时没有这应该也能读同一数据项,但上互斥锁时没有这种可能。种可能。所以引入共享锁:事务读对象时申请共享锁,所以引入共享锁:事务读对象时申请共享锁,若该对象未上锁或上的是共享锁,则可以申请若该对象未上锁或上的是共享锁,则可以申请到。事务写对象时申请互斥锁,只有对象未上到。事务写对象时申请互斥锁,只有对象未上锁时才能申请到。锁时才能申请到。101第六章 文件系统 6.8 文件物理结构实例文件物理结构实例(1) UNIX文件系统的总
43、体结构文件系统的总体结构UNIX系统把物理设备划分为长系统把物理设备划分为长512字节字节的盘块。每一块给一编号,从的盘块。每一块给一编号,从0到到N-1,共,共N块。如下图块。如下图其中其中引导块和超级块都为引导块和超级块都为1个扇区。个扇区。引导块引导块超级块超级块索引节点表索引节点表数据区数据区.102第六章 文件系统 引导块引导块位于文件系统的第一个扇区,包含位于文件系统的第一个扇区,包含OS的引导程序,但并不是每一个文件系统都的引导程序,但并不是每一个文件系统都需要引导块。需要引导块。 103第六章 文件系统 超级块超级块该部分对文件系统具有决定意义。该结构用该部分对文件系统具有决定
44、意义。该结构用C语言描述如下:语言描述如下:struct filsys ushort s_isize; 磁盘索引节点表所占磁盘块数磁盘索引节点表所占磁盘块数 daddr_r s_fsize; 整个文件系统的磁盘块数整个文件系统的磁盘块数 short s_nfree;空闲块表中的空闲块数空闲块表中的空闲块数 daddr_t s_free100;空闲块表空闲块表 short s_ninode; 空闲索引节点表中的空闲索引节点数空闲索引节点表中的空闲索引节点数 ino_t s_inode100; 空闲索引节点表空闲索引节点表 char s_flock;处理空闲块表时加锁标志处理空闲块表时加锁标志 c
45、har s_ilock;处理空闲索引节点表时加锁标志处理空闲索引节点表时加锁标志104第六章 文件系统 char s_fmod;超级块被修改标志超级块被修改标志 char s_ronly; time_t s_time;超级块上次被修改时间超级块上次被修改时间 short s_dinfo4; daddr_t s_tfree;空闲磁盘块总数空闲磁盘块总数 ino_t s_tinode;空闲索引节点总数空闲索引节点总数 char s_fname6;文件系统名称文件系统名称 char s_fpack6; long s_fill13; long s_magic; long s_type;文件系统类型文件
46、系统类型;超级块在文件系统安装后常驻内存超级块在文件系统安装后常驻内存105第六章 文件系统 索引节点表索引节点表UNIX将文件名与目录项中的其它信息分开将文件名与目录项中的其它信息分开来,仅将文件名留在目录项中,而将其它部分来,仅将文件名留在目录项中,而将其它部分称为称为索引结点索引结点.将所有从目录项中分出的索引结点集中到一将所有从目录项中分出的索引结点集中到一起构成一张索引结点表,并给索引结点表中的起构成一张索引结点表,并给索引结点表中的每一个索引结点编一个号,将这一编号加入目每一个索引结点编一个号,将这一编号加入目录项。录项。于是目录项中仅有两项内容:文件名、索引于是目录项中仅有两项内
47、容:文件名、索引结点编号。结点编号。文件名文件名 索引结点号索引结点号106第六章 文件系统 索引节点的索引节点的C描述描述struct dinode ushort di_mode;文件类型及访问权限标志文件类型及访问权限标志 short di_nlink;文件链接数文件链接数 ushort di_uid;文件拥有者用户标识文件拥有者用户标识 ushort di_gid;文件拥有者的组标识文件拥有者的组标识 off_t di_size;文件大小文件大小 char di_addr40; 文件索引表文件索引表 time_t di_atime;文件最近一次访问时间文件最近一次访问时间 time_t
48、di_mtime;文件最近一次修改时间文件最近一次修改时间 time_t di_ctime;文件创建时间文件创建时间;107第六章 文件系统 数据区数据区引导块、超级块、索引节点表都是文件系统引导块、超级块、索引节点表都是文件系统用于管理的数据,文件的实际数据都存放在数用于管理的数据,文件的实际数据都存放在数据区。据区。还有另外的一些管理用数据也放在数据区,还有另外的一些管理用数据也放在数据区,如文件目录表,文件索引表中的一次、二次、如文件目录表,文件索引表中的一次、二次、三次间接块等。三次间接块等。108第六章 文件系统 在一个文件系统中,有两个参数非常关键:在一个文件系统中,有两个参数非常
49、关键:索引节点表的大小索引节点表的大小、块的大小块的大小。索引节点表的大小决定了整个文件能创建的索引节点表的大小决定了整个文件能创建的文件数目,因为索引节点表的每一个表目唯一文件数目,因为索引节点表的每一个表目唯一地对应一个文件。索引节点表过小,文件系统地对应一个文件。索引节点表过小,文件系统只能创建有限的文件,可能导致数据区大量磁只能创建有限的文件,可能导致数据区大量磁盘块的浪费;而索引节点表过大,可能造成索盘块的浪费;而索引节点表过大,可能造成索引节点表本身的浪费。引节点表本身的浪费。109第六章 文件系统 块较大时,磁盘与内存之间的传输效率将会块较大时,磁盘与内存之间的传输效率将会提高。
50、因为每寻道一次可以读取几个扇区,从提高。因为每寻道一次可以读取几个扇区,从而减少寻道时间。但块较大时,可能造成浪费。而减少寻道时间。但块较大时,可能造成浪费。有人做过统计,当块大小为有人做过统计,当块大小为4K时,一个实用的时,一个实用的系统中存储空间浪费可达系统中存储空间浪费可达45%。后来。后来Berkeley把文件后面的那些零头数据集中起来用某些磁把文件后面的那些零头数据集中起来用某些磁盘块存放,以减少零头造成的浪费,实践证明,盘块存放,以减少零头造成的浪费,实践证明,这种方法很有效。这种方法很有效。110第六章 文件系统 目录结构目录结构每一目录项占每一目录项占16字节,其字节,其C描
51、述如下:描述如下:struct direct ino_t d_ino; 该目录项对应的索引节点号该目录项对应的索引节点号 char d_name14;该目录项对应的文件的该目录项对应的文件的名称名称;在在UNIX中,所有目录包括根目录都是象普通文件中,所有目录包括根目录都是象普通文件一样在数据区存放。一样在数据区存放。111第六章 文件系统 UNIX文件文件系统的索引结构系统的索引结构 在在UNIXUNIX索引节点中,有一个索引节点中,有一个di_addr40di_addr40数组,数组,这个数组就是一个这个数组就是一个索引表索引表。在这个在这个4040个字节的数组中,只用了个字节的数组中,只
52、用了3939个字节,个字节,分为分为1313组(项),每项组(项),每项3 3个字节,记录一个块号,个字节,记录一个块号,所以一个文件系统的数据区最多有所以一个文件系统的数据区最多有224224个块。个块。设计为设计为4040个字节是为了让索引节点的大小刚个字节是为了让索引节点的大小刚好为好为6464字节,那么,一个块就能放整数个索引字节,那么,一个块就能放整数个索引节点。节点。112第六章 文件系统 索引表索引表有有1313个表目(用个表目(用ADDR0ADDR12ADDR0ADDR12表示)。表示)。ADDROADDRO至至ADDR9ADDR9,即前,即前1010个表目直接存放个表目直接存
53、放文件数据块的块号。文件数据块的块号。如果文件的长度超过如果文件的长度超过1010个数据块,个数据块,ADDR10ADDR10,即第即第1111个表目登记的是一次间接索引表的块号,个表目登记的是一次间接索引表的块号,在一次间接索引表中存放文件数据块的块号。在一次间接索引表中存放文件数据块的块号。113第六章 文件系统 ADDR1lADDR1l,即第,即第1212个表目登记的是二次间接个表目登记的是二次间接索引表的块号,二次间接索引表存放一次间接索引表的块号,二次间接索引表存放一次间接索引块的块号。索引块的块号。 ADDR12ADDR12,即第,即第1313个表目登记的是三次间接个表目登记的是三
54、次间接索引表的块号,三次间接索引表中存放二次间索引表的块号,三次间接索引表中存放二次间接索引表的块号。接索引表的块号。114第六章 文件系统 例例1有一文件大小为有一文件大小为16K16K,设一个物理块,设一个物理块的大小为的大小为1K,1K,为了计算方便,设索引块中为了计算方便,设索引块中的一个表项占的一个表项占2 2个字节,试画出文件索引个字节,试画出文件索引结构图。结构图。115第六章 文件系统 ADDR12ADDR11ADDR10ADDR9 ADDR1ADDR0索引表索引表文件第文件第 10 块块文件第文件第 1 块块文件第文件第 11 块块文件第文件第 16 块块.。一次间接索引表一
55、次间接索引表5511116第六章 文件系统 例例2现有三个文件,大小分别是现有三个文件,大小分别是16K16K,256K,128M256K,128M,设一个物理块的大小为,设一个物理块的大小为4K,4K,为为了计算方便,设索引块中的一个表项占了计算方便,设索引块中的一个表项占2 2 个字节,试分别画出它们的文件索引结构个字节,试分别画出它们的文件索引结构图。图。117第六章 文件系统 解:解: 16K文件的索引结构图文件的索引结构图分析:对分析:对16K16K的文件,可分为的文件,可分为4 4个块,则用直个块,则用直接索引即可解决。接索引即可解决。118第六章 文件系统 ADDR12ADDR1
56、1ADDR10ADDR9 ADDR3 ADDR1ADDR0索引表索引表文件第文件第 4 块块文件第文件第 1 块块.119第六章 文件系统 256K文件的索引结构图文件的索引结构图对对256K256K的文件,可分为的文件,可分为6464个块,直接索引可个块,直接索引可索引索引1010个块,用一次间接索引索引个块,用一次间接索引索引5454个块。个块。120第六章 文件系统 ADDR12ADDR11ADDR10ADDR9 ADDR1ADDR0索引表索引表文件第文件第 10 块块文件第文件第 1 块块文件第文件第 11 块块文件第文件第 64 块块.。一次间接索引表一次间接索引表532047121
57、第六章 文件系统 128M文件的索引结构图文件的索引结构图对对128M的文件,可分为的文件,可分为32K个块个块直接索引可索引直接索引可索引10块,块,一次间接索引可索引一次间接索引可索引2K个块(因为一个一次间接个块(因为一个一次间接索引块的大小等于物理块的大小,等于索引块的大小等于物理块的大小,等于4K,而一个表,而一个表项项2个字节,所以一个间接索引块可以索引个字节,所以一个间接索引块可以索引2K个物理个物理块)。块)。二次索引表要用掉二次索引表要用掉15个表目,每个表目指向一个一个表目,每个表目指向一个一次间接索引块(共次间接索引块(共15个一次间接块),前个一次间接块),前14个一次间个一次间接块可索引接块可索引28K个物理块,后一个一次间接块用掉个物理块,后一个一次间接块用掉2038个表目(个表目(1K+1014),共可索引),共可索引1K+1014个物理个物理块。块。把上面几项相加:把上面几项相加:10+2K+28K+1K+1014得得32K。122第六章 文件系统 ADDR12ADDR11ADDR10ADDR9 ADDR1ADDR0索引表索引表10 111 10+2k 一次一次204710 +2K+1 10+2k+28K10
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大学古风活动策划方案(3篇)
- 展厅改造-施工方案(3篇)
- 施工活动策划方案范本(3篇)
- 楼面保温施工方案(3篇)
- 涪陵地毯施工方案(3篇)
- 电源接入-施工方案(3篇)
- 西藏鞋店施工方案(3篇)
- 高空电力施工方案(3篇)
- 东北黑土区典型林地与农田管理措施对有机碳矿化及温度敏感性的影响
- 围手术期药品供应商绩效评价结果动态调整与供应链适应性管理
- 2025年1月浙江首考高考英语试卷真题完整版(含答案+听力原文)
- 2026年山东经贸职业学院单招综合素质考试题库及完整答案详解1套
- 本科教学审核评估审核范围释义课件
- 大学考研笔记教案张美萍《植物学专题》电子教案
- 部编版《道德与法治》五年级下册第3课《弘扬优秀家风》优质课件【最新】
- 《草坪建植与养护》全书配套教学课件
- 幼儿园离职报告
- 一年级下册写字表描红练字帖带拼音笔顺
- DB50∕T 1033-2020 景观照明设施维护技术规程
- CNG加气站安全操作规程
- 宁夏天元锰业有限公司年产120000t电解金属锰扩建项目污水
评论
0/150
提交评论