第5章 文件系统.ppt_第1页
第5章 文件系统.ppt_第2页
第5章 文件系统.ppt_第3页
第5章 文件系统.ppt_第4页
第5章 文件系统.ppt_第5页
已阅读5页,还剩107页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第5章 文 件 系 统,计算机中所有信息(程序、数据、图像、电子邮件),平时都只能以文件的形式存放在外存中,需要时再将它们调入内存。 用户直接通过文件名就能使用文件。 文件系统负责对文件的各种具体管理工作,本章内容:,文件及文件系统的基本概念 文件的逻辑结构和物理结构 文件的目录管理 文件存储空间管理 对文件的各种操作 文件的共享、安全与控制等,5.1 Windows中的文件,Windows支持长文件名,文件名最多可使用256个字符。 通过扩展名可识别该文件的类型。 例如 Arj.exe一个可执行文件 Leaves.bmp一个图像文件 xz.dbf一个数据库文件 除“?*“|”外,文件名可以包

2、含空格和其他所有字符。,文件的存放路径由文件所在驱动器和文件夹来确定。 文件夹代表对文件及目录形式存放的信息的分组。 一个文件夹里包含其他文件夹,这样,多层文件夹就构成了一个“文件夹树”,最底层的树叶才是一个文件。 在DOS和Linux中,把文件夹称为“目录”,从而形成一棵“目录树”。,Windows xp提供了两个十分有效的文件管理工具: “我的电脑” “资源管理器”,图5.1 Windows xp的资源管理器,树格,其内还包含有其他子文件夹,可将文件夹收缩,用户要进行一些如复制、更名、移动等操作,只需在选中对应图标后点击相应的命令按钮即可。,“开始程序附件记事本”,图5.2 Windows

3、的记事本,Linux同样提供了几个编辑器 例如 vi标准文本编辑器 emacs全能编辑器。远远超出普通编辑器的功能,可以保存日历,作为计算器使用,建立大纲甚至浏览WWW网。 用户打开文件进行编辑时,看到的文件是由一个个字符组成的有序的集合。 文件系统为了完成编辑任务,需要直接对辅存上的文件进行操作。 计算机处理的文件和用户眼中的文件是不一样的,就是说文件有不同的表现形式。,5.1.3 文件的不同形态,用户看到的文件是逻辑文件。 有些文件由有序的字符流组成,如一封信、一个程序,称为流式文件。 有些文件则由若干记录组成,如数据库文件,称为记录式文件。 计算机处理的文件称为物理文件。针对不同的存储介

4、质,文件的存放形式是不一样的,因此,物理文件也有不同的形态: 连续存放 串联存放 Windows xp支持三个不同的文件系统: FAT、FAT32和NTFS,5.2 文件和文件系统的基本概念,文件的含义很广,一篇文章,一张照片,一首歌曲,一个程序,甚至是黑客编写的病毒等都可以构成文件,到底什么是文件呢?,5.2.1 文件,1.文件的定义 文件是一组具有符号名的相关联字符的集合。 文件是一组具有符号名的相关联记录的集合。,操作系统把文件视为字符流,可以简化管理。此时文件的基本单位是单个字符,字符之间只有顺序关系而没有结构上的联系,把一组相关数据项的集合称为记录,例如,对学校进行管理时,学生是基本

5、单位,描述学生时应该包括学号、姓名、年龄、所在系别班级等数据项。,和文件相关的术语有: 域(字段)数据的基本单位,由字符、数字构成。 记录相关域的集合。 数据库(文件)关联记录的集合,数据元素之间存在关系。,2.文件名,文件名是一个用来标识文件的有限长度的字符串。 有了文件名就能区分不同的文件,还可以通过文件名来对文件进行管理。应用中的操作系统对文件的命名是有规定的。,DOS和Windows xp中的文件名都采用“文件名.扩展名”的形式 DOS的文件全名“8.3”格式 Windows支持长文件名最多可使用256个字符。 通过扩展名可用来识别该文件的类型。 例如:.bat批处理文件, .obj目

6、标文件 .zip压缩文件 .bmp图像位图文件 Linux系统中规定文件名是一个以字母或下划线开头的不大于255个字符的字符串。 区分英文字母的大小写 没有文件名和文件扩展名之分 例如文件 test.c6个字符的文件名,3.文件的分类,1)按性质和用途分类 2)按文件的保护级别分类 3)按文件的保存期限分类 4)按文件的逻辑结构分类 5)按文件的物理结构分类,系统文件、 库文件 用户文件。,执行文件 只读文件 读写文件 不保护文件,临时文件 永久文件 档案文件。,流式无结构文件 记录式结构文件,顺序文件 链接文件 索引文件,4.实用系统中文件的分类,Linux系统中有三种基本的文件类型: 普通

7、文件 目录文件 设备文件,用户最经常面对的文件: 文本文件 二进制文件,它存储一组相关文件的位置、大小等与文件有关的信息。目录文件往往简称为目录。,Linux系统把每一个I/O设备都看成一个文件,与普通文件一样处理,这样可以使文件与设备的操作尽可能统一。 块设备文件 字符设备文件,“-”普通文件 “d”目录文件 “c”块设备特殊文件 “t”字符设备特殊文件 “p”管道文件。,Windows的文件类型 Windows文件系统支持任意扩展名所指定的类型,只要求进行文件类型注册,同时还注册用什么程序打开这类文件之类的信息。 下面介绍几种Windows中的常见文件类型。 程序文件。计算机可以识别的二进

8、制编码。 如 .COM .EXE 文本文件。由ASCII码字符组成的文件。 如 .TXT .DOC 图象文件。如 .BMP、.GIF、.JPG 声音文件。如 .WAV、.MP3 其他文件类型。如 .ttf是字体文件,.reg是注册信息文件。,“工具文件夹选项文件类型”,图5.3 Windows的文件类型,图5.4 注册新文件类型,图5.5 编辑文件类型,“高级 编辑文件类型 编辑”,5.2.2 文件系统,1.文件系统的定义和功能 文件系统指文件命名、存储和组织的总体结构。文件系统是与管理文件有关的软件和数据的集合。,文件系统应该具有以下功能:,(1)对用户提供友好的接口让用户实现按名存取。 (

9、2)能提供对文件的各种操作。 (3)可以实现文件共享与保护。 (4)对外存存储空间的管理。 (5)文件系统应提供各种安全措施。,2.几种常用文件系统,Linux的文件系统: Minux EXT ( Extend File System ) EXT2 目前支持多达15种不同的文件系统。 通过虚拟文件系统VFS接口支持许多(通常是不同的)文件系统,每一个都向 VFS 表现一个通用的软件接口。 所有的文件系统对于 Linux 内核的其余部分和系统中运行的程序显得一样。 Linux 的虚拟文件系统层允许你同时透明地安装许多不同的文件系统。 EXT2 已成为所有Linux发行版本的基本文件系统。,DOS

10、的文件系统是FAT。最典型的是FAT16,它规定的文件名是8.3格式,能支持最大磁盘分区为256MB,采用16位实模式驱动程序,用户界面不够友好。,Windows操作系统支持:,16位文件分配表(FAT16) 32位文件分配表(FAT32) 光盘文件系统(CDFS) 通用磁盘格式(UDF) Windows NT文件系统(NTFS),FAT32支持255个字符的长文件名,能支持最大磁盘分区可达2TB,采用32位保护模式驱动程序。,NTFS提供了FAT文件系统的所有功能,同时又提供了对高级文件系统特征(安全模式、压缩和加密)的支持。,NTFS又是一个用于网络的文件系统,支持包括卷装配点、远程存储、

11、文件系统加密、稀疏文件及磁盘限额在内的众多存储增强功能。,表5.1 Windows文件系统比较,5.2.3 文件的逻辑结构和存取方法,1.文件的逻辑结构 用户可见的文件结构称为文件的逻辑结构,记录,0,记录,1,长度,流式文件,定长记录,变长记录,记录0长度,流式无结构文件 流式无结构文件是由相关联的字符流组成的文件,文件的长度为所含字符数,字符为基本管理单位。 由于不用对格式进行额外说明,空间利用上就较节省。 大量的源程序、可执行程序、库函数等都采用流式无结构文件形式,DOS、UNIX、Windows、Linux系统中的普通文件都是流式文件。,记录式结构文件 记录式结构文件是有结构的文件,由

12、相关联的若干记录构成的。 这些记录分别以0、1到n按顺序编号,称为记录0、记录1,记录n。 记录的编号就是记录在文件中的逻辑地址,这样的记录称为逻辑记录。 记录是一个具有特定意义的信息单位,由一组相关联的字段组成。,学生登记表文件xsdjb.dbf中的每一行就是一个记录。,根据文件中记录长度是否相等,记录式文件可分为: 定长记录文件。所有记录的长度都相等,文件的长度可以直接用记录数目表示。它处理方便、开销小,目前用得较为广泛。 变长记录文件。记录的长度可以不相等,在每个记录前面都要记载该记录长度,变长记录文件的长度为各记录长度之和。 记录式文件主要用于数据库管理系统中,可以把文件中的记录按各种

13、不同的方式排列,如按学号进行排列,或按出生年月进行排列,这样就构成不同的逻辑结构,方便了用户对文件中的记录进行修改、追加、查找等操作。,2.文件的存取方法,用户通过对文件的存取,完成对文件的修改、搜索等操作。根据文件的性质和用户使用文件的情况,决定不同的存取方法。 顺序存取。顺序存取是指按照记录的逻辑排列次序依次存取每个记录。若上次读取的是记录N,则本次要读取的记录自动确定为N+1,故每次存取不必给出具体的存取位置。 随机存取。随机存取又称直接存取,即允许随意存取任一记录,而不管上次访问了哪个记录。每次存取操作都要指定存取操作的开始位置。 流式文件只适合顺序存取,记录式文件既可以顺序存取也可以

14、随机存取。,5.2.4 文件的物理结构和存储设备,文件在辅存上的存放形式称为文件的物理结构。如何组织文件的物理结构,才能既提高存储空间利用率,又减少存取文件信息的时间,这是文件系统要研究的一个重要问题。 下面介绍辅存设备:,图5.7 磁带结构示意图,磁带只能顺序存取,不需要寻找磁道,但需要考虑磁头寻找记录区的等待时间。磁头总是固定的,磁带移动,磁带的寻址时间是磁带转动到磁头将访问的记录区所在位置的时间。,图5.8 磁盘结构示意图,磁道由外向内从0开始编号,扇区则从1开始编号,于是就可通过盘面号、磁道号和扇区号来决定一个扇区在磁盘上的绝对位置。如位于0面、第1磁道、第2扇区的扇区地址是“0,0,

15、2”。,硬盘类似于多张软盘的层叠。每个盘片都有两个面,每面能存储数据,并对应一个磁头。由于多层磁道形成一个个圆柱形,硬盘的磁道称为柱面。由磁头号、柱面号、扇区来决定硬盘物理单位的绝对地址。 许多操作系统还将扇区进行组合来形成不同的磁盘分区,以方便用户对文件进行逻辑组织。,磁盘寻址时间,TTs+Tw TaTsa+Twa (Tsmax+Tsmin)/2+(Twmax+Twmin)/2,平均寻址时间是磁盘存储器的一个重要指标。硬磁盘存储器比软磁盘存储器的平均寻址时间短。,磁头寻找目标磁道所需的寻道时间,磁头等待所需要读写的扇区旋转到它的下方所需要的等待时间,由于寻找相邻磁道和从最外面磁道找到最里面磁

16、道所需的时间不同,磁头等待不同扇区所花的时间也不同,因此,取它们的平均值,称作平均寻址时间Ta,平均寻道时间,平均等待时间,2.文件物理结构,文件的物理结构代表了数据的存储方式,常见有以下几种: 1)连续文件 2)串联文件 3)文件映照 4)索引文件,1)连续文件,连续文件是指把逻辑上连续的文件信息依次存放到连续的物理块中,图5.9 连续文件,磁带和磁盘都可以采用连续文件的存储方式,只要有大小合适的连续的存储空间,就能存放文件。 对于磁带上的连续文件,只适用顺序存取的方法。 而对于磁盘上的连续文件,既可用顺序存取也可用随机存取的方法。 连续文件结构简单,实现容易。若采用顺序访问方式,因文件是分

17、配在连续的存储空间的,只要找到文件第一块位置,就可很快访问完所有信息。 但连续存储空间的要求导致大量较小的区域无法分配和利用。 对于需要动态增长的文件,连续文件往往无能无力,因为该文件后面的连续块可能已分配给其他文件使用了。 Linux系统中保留了连续文件结构。,2)串联文件,串联文件又称为链接文件,它把逻辑上连续的文件信息分散存放到不连续的块中,每个物理块最末一个字作为链接字指向与它链接的下一物理块,文件的结尾块则存放结束标记“”。,图5.10 串联文件,串联文件只适用于磁盘,不适合磁带,且对串联文件只能顺序存取。 若采用随机存取,如要访问文件最后一块的内容,实际上要从文件头开始,通过指针依

18、次向后访问,直到访问到文件的最后一块,这其实就变成了顺序存取。 串联文件实现了文件的非连续存储,提高存储空间利用率,消除了外部碎片。 如果文件大小要变化,则只需再链接空闲块,或删除链中某块即可,这样便于动态修改和扩充。 但串联文件搜索效率低,只适宜顺序存取,不适宜随机存取。,3)文件映照,在系统中建立一张文件映照表,把所有盘块的指针都存放在该表中,每个指针占一个表项。 用户目录中存放文件的第一个块号,利用这一块号到文件映造表中找到下一块号,文件的结尾块则存放结束标记“”,通过文件映照表可获得该文件占用的所有块号。,图5.11 文件映照表,大容量磁盘的文件映照表很大,一般被作为文件保存在磁盘中,

19、需要时,调入内存即可。 文件映照方式只适用于磁盘,既可进行顺序存取,又能进行随机存取。 例如,要读取A文件尾的信息,通过用户文件目录和文件映照表,可知道文件尾信息存放在物理块12中,就可直接读取磁盘中第12块的内容,没必要把文件从头读到尾。 文件映照表既保持了链接文件的优点,又克服了其缺点,但是增加了文件映照表的存储开销,访问速度的提高是用存储空间的增加来换取的。 在DOS系统中,使用称为FAT的文件映照表来完成文件的映照;而在Windows中使用FAT32来完成文件的映照。,4)索引文件,索引文件的思想类似于存储管理中的分页管理。 系统为每个文件建立一张索引表,给出逻辑块号和分配给它的物理块

20、号的对应信息。,图5.12 索引文件,索引文件只适用于磁盘,对索引文件除了能进行顺序存取外,也可较方便实现随机存取。 如果把索引表全部放入内存,必然占据过多内存空间,一般把索引表以文件的形式存放到外存,需要时调入内存即可。 对于中、小型文件,存放索引表文件可能只需一个物理块; 但对于大型文件,由于索引表比较大,需要用多个物理块来存放,物理块之间再通过链接指针相互链接,索引表的访问效率必然降低。 这时可采用两级索引的方法,即为存放索引表的物理块(简称索引块)再建立索引。,图5.13 二级索引目录,索引结构是计算机操作系统中普遍采用的结构,如在Linux系统中,小型文件采用一级索引结构,大型文件采

21、用二级索引结构,巨型文件则采用三级索引结构。,5)文件物理结构的比较,比较查找时间 比较空间开销 比较适宜设备和存取方法 比较文件增删,连续文件最快,索引文件和文件映照次之,串联文件最慢。,连续文件不需要额外的空间开销; 串联文件的每个物理块中需要存放链接字; 文件映照需存放文件映照表; 索引文件为每个文件建立一张索引表。,连续文件可用于磁带和磁盘; 串联文件、索引文件和文件映照只适用于磁盘;串联文件只适合顺序存取; 而文件映照、索引文件和磁盘上的连续文件,除了能进行顺序存取外,也能实现随机存取。,连续文件不能动态增长,其他三种都可较容易实现文件的动态改变。,6)存储设备、文件物理结构和存取方

22、法的关系,图5.14 存储设备、文件物理结构、存取方法的关系,5.2.5 Linux系统的文件物理结构,图5.15 EXT2的i结点内的索引结构,5.3 文件目录管理,文件系统是如何通过文件名知道文件实际存放位置的呢? 文件目录管理的基本功能就是实现“按名存取”。 文件目录还要能合理组织目录结构,使得各个文件的查找速度较快,还要能提供对文件的共享,即让多个用户共用一个文件。 文件目录是一张记录所有文件的基本信息的目录表,如文件名、文件存放的物理位置以及文件说明和控制方面的信息。,5.3.1 文件控制块,文件系统要实现对文件的按名存取,关键是要使文件与文件的物理地址建立联系。,因此,文件系统为每

23、一个文件建立一个文件控制块FCB,里面存放了有关文件名、文件地址等多方面的描述信息。,文件系统借助文件控制块中的信息,实现对文件的管理。,文件控制块的基本内容如下:,文件名 文件的物理位置 文件的逻辑结构 文件的物理结构 文件的存取控制权限 文件的使用信息,文件名是用来标识一个文件的符号名。不同的操作系统,文件名命令规定是不一样的。,文件的物理位置指明文件在外存的具体存储位置,通过该项内容,系统就能找到这个文件。,文件的逻辑结构指明是流式文件还是记录式文件。,文件的物理结构指明文件是连续文件、串联文件还是索引文件,这项内容确定了系统对文件可以采用的存取方式。,文件的存取控制权限规定了各类用户对

24、文件的存取权限。,文件的使用信息如文件建立日期和时间,文件上一次修改的日期和时间,当前已打开该文件的进程数,文件是否被其他进程锁住等。,5.3.2 Linux的索引节点,在Linux系统中,采用了把文件名和文件描述信息分开的方法,将文件目录项中除文件名之外的信息都放到一个数据结构中,该数据结构称为索引节点(index node),简称i节点。 这样,在文件目录项中,就只需存放文件名和该文件名对应的i节点号,大大减少了文件目录的规模,节省了系统开销。 可以看出,在这里文件控制块已变成索引节点。,Linux索引节点的内容如下:,设备号 索引节点号 文件的访问权限位 连接计数 文件的用户识别号(UI

25、D)和组识别号(GID)。 设备特殊文件的主设备号和辅设备号。 还包含文件大小、文件最后一次访问时间、文件最后一次修改时间以及文件最后一次状态改变时间等。,设备号指包含该文件的设备的标识符。,文件的绝对编号,文件的访问权限表示对该文件能进行何种操作。,连接计数表示连接到这个文件的目录项个数,当该数为零时,就表示该节点可丢弃或重新使用。,5.3.3 一级目录结构,图5.16 一级目录结构,读某个文件? 创建一个新文件? 删除文件?,一级文件目录特点,1)结构简单、清晰,便于维护和查找。 2)可实现按名存取。 3)搜索速度慢。 4)不允许文件重名。 5)不允许文件别名。,5.3.4 二级文件目录,

26、图5.17 二级目录结构,创建一个新文件? 访问一个文件? 删除一个文件?,二级文件目录特点,单纯分为二级结构已不能很方便地对种类繁多的大量文件进行管理。于是有三级文件目录四级、五级等多级目录。,1)搜索速度得到提高。,2)允许文件重名。,例如,同名文件W3分别为Wang/W3和Zhang/W3,它们被视为两个不同的文件。当然,同一用户的UFD中不允许有同名文件。,3)允许文件别名。,即不同用户对相同文件可取不同名字。例如用户Wang的W4文件和用户Zhang的Z1文件,虽然文件名不同,但它们在UFD中指向同一个文件。,5.3.5 树型目录结构,图5.18 树型目录结构,引用一个文件? 绝对路

27、径名 相对路径名,绝对路径名是指由根目录开始的路径名。,相对路径名是指从当前工作目录开始的路径名。,当前工作目录,绝对路径名/usr/local/bin/g,相对路径名 bin/g,5.3.5 树型目录结构,图5.18 树型目录结构,共享一个文件? 使用文件别名,例如: /home/zhang想以文件名k来访问/home/wang目录下的d文件? 在/home/zhang/j和 /home/wang/d之间建立一个链接,让/home/zhang/j直接指向/home/wang/d。,树形目录结构优点,如层次清楚,便于组织和管理; 搜索速度比单级、二级目录快很多; 解决了文件重名问题,每个文件在

28、文件系统中由其绝对路径名唯一确定; 解决了文件别名问题。,图5.19 Windows文件夹树片段,图5.20 Linux树形目录结构片段,在树形目录结构目录项中存放了文件FCB的所有信息,这将造成目录内容太多,使文件的操作变得复杂。 为此可引入基本文件目录和符号文件目录来加以改进。,5.3.6 基本文件目录和符号文件目录,系统给所有文件赋予唯一的标识符,将文件目录的内容分为两个部分: 用符号文件目录来记录文件的相互关系; 用基本文件目录来记录文件的说明信息; 整个系统设置一个基本文件目录; 每个用户对应一个符号文件目录。,图5.21 采用基本文件目录和符号文件目录的多级目录结构,查找文件“/W

29、ang/W1”?,Linux文件系统中的 i节点 就是一种基本文件目录,5.3.7 Linux系统的目录结构的特点,1)Linux采用树形目录结构 目录树分枝可以是一个磁盘、硬盘上的不同分区、光盘或者不同的文件系统 若目录树分枝是Linux以外的文件系统,则需通过装载和拆卸来实现对目录树分枝的挂接与撤消 2)Linux通过i节点的配合,采用硬链接解决目录树中同一文件系统的文件别名问题。 每当建立一个硬链接,索引节点的引用计数值加1,这样只要使用的计数位不为0,就不能将这个文件删除,也可以防止用户删除其他用户正在使用的共享文件。,图5.22一个i节点中的信息及其分布,包括两组信息,即这个 i节点

30、描述了什么,以及用户对于它的权限。,这个文件或目录的用户和组标识符。使文件系统能正确地进行文件访问权限控制,文件的大小(字节),这个i节点创建的时间和它上次被修改的时间。,直接索引区,指向这个 inode 描述的物理块的指针。直接索引区有 12 个索引项,可以索引12个物理块。,三个间接索引区,分别指向各级间接索引表。这意味着文件越大,访问距离越长,小于或等于 12 数据块大小的文件比更大的文件的访问更快。,5.4 文件存储空间管理,为便于长期保存,文件通常都被存储在大容量的辅存上。 因此,文件系统的重要任务之一就是要随时掌握存储空间的使用情况,以便有效文件而合理地分配空闲存储空间,并及时回收

31、不用的存储空间。,5.4.1 常用的存储空间管理方法,1.位示图,图5.23 位示图的变化,文件系统在内存中为每一个辅存设备建立一张称为位示图的表,通过该表来反映辅存设备中所有物理块的使用情况。,二进制位的值为0,表示它对应的物理块为空闲,二进制位的值为1,则表示已分配使用。,2.空白文件目录,系统设置一张空白文件目录来记录辅存上所有连续空闲块的信息。,图5.24 空白文件目录,文件分配:与内存的动态分区类似,根据系统的要求采用最先适应算法、最佳适应算法或最坏适应算法。,文件释放:将文件占用的连续空间释放掉,然后将被释放空间的信息登记到空白文件目录中。 涉及到空闲块的合并问题。,2.空白文件目

32、录,适应范围:连续文件结构 缺点: (1)如果文件太大,在空白文件目录中将没有合适的空白文件能分配给它,尽管这些空白文件的总和能满足需求。 (2)经过多次分配和回收,空白文件目录中的小空白文件越来越多,很难分配出去,形成碎片。,3.空闲链表法,把所有的空闲块链接在一起,形成一个空闲块链表。,图5.25 空闲链表法,文件分配? 文件释放?,空闲链表法的优缺点,(1)可实现不连续分配。,(2)由于每个空闲块的指针信息都是存放在上一空闲块中的,这样就不用占用额外的存储空间,与空白文件目录管理方法相比节省了存储开销。,(3)因为链接信息是存放在每个空闲块中的,每当在链上增加或删除空白块时需要很多输入输

33、出操作,系统开销大。,(4)对于大型文件系统,空闲链将会太长。,5.4.2 FAT磁盘格式,1.基本概念 簇。DOS将若干个连续扇区作为存储分配的单位,称为簇。不同的磁盘,簇的大小不一样,它随磁盘容量的增大而增大。如: 3.5英寸软盘每簇含两个扇区 512MB1GB的硬盘分区,每簇含32个扇区 1GB以上分区每簇含64个扇区。 文件分配表FAT。DOS采用称为文件分配表FAT(File Allocation Table)的数据结构来管理所有簇。,2.文件分配表FAT,图5.26 格式化后的磁盘结构,FAT表记录了所有簇的使用情况,由于FAT表的重要性,采用两个完全相同的FAT表,一个受到破坏,

34、还可使用另一个。 FAT表的0号和1号表项由系统保留: 0号记录软盘类型,1号常数 从2号表项开始,每个表项描述一个簇的使用情况 由于表项序号就是簇号,故簇号从2开始。,FAT还需要根目录表FDT(File Directory Table)的配合才能完成对簇的管理。 FDT中的每个目录项占32B,用来记录一个文件或目录文件FCB的内容。 磁盘的数据区才是真正存放文件信息的地方,即由所有的簇构成数据区。,图5.27 FAT表项的意义,3.FAT对磁盘空间的管理,图5.28 DOS磁盘文件簇链,Delete命令删除文件FILE1? DOS只将FILE1的FDT的第一个字节改为“E5”,并不修改FA

35、T, 因此,在对应FAT未发生变化前,可以用Undelete命令恢复文件。,DOS的FAT表中每个表目项大小最初为12位,称为FAT12,后来扩充为16位,为FAT16。FAT16对磁盘空间的管理很有效,但它最多只支持2GB的硬盘分区,这显然不适合目前的硬盘容量。 FAT16逐渐被FAT32替代。在Windows中可采用FAT32,顾名思义,它是32位的FAT表。,5.4.3 FAT32磁盘格式特点,(1)支持大硬盘及分区。,但FAT32也有缺点,如不能与FAT16兼容而导致有些专为FAT16设计的文件没法在Windows下运行;不能格式化已压缩的驱动器;运行速度较慢等。,FAT32表的表项大

36、小为32位,则最多可有232=4G个簇。 FAT32能支持的磁盘分区可达2TB,这对再大的硬盘也足够了。 簇大小为4KB,也减少了磁盘空间的浪费。所以当你将原来FAT16的硬盘转换为FAT32后,会发现硬盘的剩余空间增多了。,(2)根目录下可容纳无数多个文件或目录。 (3)FAT32采取对关键磁盘提供冗余备份,使分区不易损坏或造成数据崩溃。,5.5 文 件 的 操 作,5.5.1 有关文件操作的系统调用命令,有六条系统调用命令是所有文件系统都应具备的,即建立文件、打开文件、读文件、写文件、关闭文件、删除文件。,1.打开文件和关闭文件的必要性,文件目录表的存放位置会影响系统的工作效率,文件目录表

37、应该放在内存还是外存呢? 访问文件需要把文件目录表以及FCB从辅存复制到内存,以后对文件的操作就可通过内存中的FCB获得所需文件信息,避免了频繁访问磁盘。 复制到内存的FCB,称为活动文件目录,所有活动文件目录构成了一个活动文件目录表。,2.文件系统基本调用命令,文件系统基本调用命令有如下执行顺序: 建立文件 打开文件 读写文件 关闭文件 撤消文件,1)建立文件,图5.29 建立文件,2)打开文件,图5.30 打开文件,3)读写文件,图5.31 读写文件,4)关闭文件,图5.32 关闭文件,5)撤消文件,图5.33 撤消文件,5.5.2 Linux中的文件系统调用命令,Linux提供大量和文件

38、操作有关的系统调用命令,例如: 创建文件(Create) 打开文件(Open) 从文件中读取数据(Read) 向文件写入数据(Write) 关闭文件(Close) 挂装一个文件系统(Mount) 卸装文件系统(Umount) 设置文件系统的组标识符(Setfsgid)等,以Open为例:,图5.34 打开文件的三种数据结构的关系,打开文件描述表的目录项称为打开的文件描述(Open File Description),包含指向内存索引结构的指针和文件的动态信息。,一个用户经常需要打开多个文件,这个情况记录在称为文件描述符表的数据结构中。 一个用户建一个文件描述符表。该表中的每个目录项称为文件描述

39、符(File Descriptors,fd)指向打开的文件描述表中的一个表项。,通过文件描述符,找到打开的文件描述,再通过打开的文件描述,就可找到内存索引节点,从内存索引节点中的地址索引数组,即能得到文件的真正物理地址。,5.5.3 Windows中的文件系统,Windows文件系统提供了许多文件操作: 创建或打开文件CreateFile(),可以针对所有能用文件流动表示的对象如文件、控制台、通讯端口、目录、磁盘、邮件位或管道等; 文件读取ReadFile (),以同步或异步方式读取文件中的指定数目的字节; 文件写WriteFile(),以同步或异步方式向指定文件中写入指定数目的字节; 获取文

40、件大小GetFileSize(),返回指定文件的大小; 文件删除DeleteFile(),删除由文件名指定的已有文件; 另有其他一些文件操作,涉及对文件目录、临时文件的搜索及利用。,5.6 文件的共享与安全,5.6.1 文件的共享 5.6.2 文件的安全,5.6.1 文件的共享,文件共享指一个文件被若干个用户共同使用,文件系统的一个重要任务就是为用户提供共享文件的手段,这样,避免了系统复制文件的开销,并节省文件占用的存储空间。,1.实现文件共享的常用方法,绕道法。相对于当前目录,用户文件的路径名由当前目录到共享文件通路上所有各级目录的目录名加上该文件的符号名组成。系统用“*”表示一个给定目录文

41、件的父目录。,假定用户wang的当前目录为/home/wang,用户wang若要访问zhang的文件a,使用路径名*/zhang/a。,由于绕道法要花很多时间访问多级目录,导致搜索效率不高。,链接法。在相应目录表之间进行链接,即将一个目录中的表目直接指向被共享文件所在的目录,则被链接的目录以及子目录所包含的文件都为共享的对象。,2.实用系统中的文件共享方法,Linux中采用: 硬链接: 基于索引节点的共享方式; 符号链接:利用符号链来实现共享。,例如,Word工作报告中,链接表格。(试一试) 这种方法一方面节省了内存,更重要的优点是具有自动更新的能力。即当表格改变时,改动将自动反映到目标文档中

42、,实现了共享。,Windows操作系统采用: 动态数据交换方法,即对象的链接与嵌入(Object Linking and Embedding,简称OLE)方法实现共享。 Windows也使用了符号链的方法,只要给出文件所在计算机网络地址和文件路径名,我们就可以访问网上任何允许访问的文件。 对文件共享的指定由文件创建者完成(双击“我的电脑磁盘符号或要共享的文件属性共享”),例如,Word工作报告中,链接一个图片文件。(试一试),例如,共享一个磁盘。(试一试),5.6.2 文件的安全,文件的安全管理通常包含四个级别: 系统级 用户级 目录级 文件级,1.系统级安全管理,在进入系统之前,所有用户都需

43、要登录。因此,可设置一张用户注册表,里面存放允许登录的用户帐号和密码。每次登录时,用户输入帐号和密码,系统通过用户注册表进行验证之后,用户才能进入系统。,在Linux中,用户的各种信息是存放在口令文件/etc/passwd中的,里面包含了用户名、口令密令、用户标识符、帐号全名及其说明信息、用户主目录、用户的shell。 用户帐号的建立可以以root身份手工进行,也可以利用Linux系统提供的各种工具完成,如adduser命令。而root帐号的建立则是在安装Linux的过程中建立的。 Windows中可以在一台本地机上设置多个用户,如何做?,2、用户级安全管理,1)用户分类 Linux系统中将用户分为四类: Windows中将用户分成若干组:,超级用户root对所有的文件和目录具有完全权限,可以做任何事,所以一定要慎用root帐号。 文件主指建立文件的用户。 同组用户和文件主在同一组的用户,他们具有相同的权限。 其他用户其他用户是指不属于上面三类的所有其他用户。,2)用户的资源访问权 如果对某一个组名赋予某种权限,则该组中所有成员都具有这种权限。通常对文件可定义建立、打开、读、写、修改、删除权限,对目录可定义查询、建立、改名、删除权限。,3.目录级安全管理,系统会为每个目录也

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论