文件与文件系统
1.文件
具有标识符(文件名)的一组相关信息的集合。
2.文件系统
所谓文件系统,就是操作系统中实现文件统一管理的一组软件、被管理的文件以及为实施文件管理所需要的一些数据结构的总称(是操作系统中负责存取和管理文件信息的机构)。
从系统角度来看,文件系统是对文件存储器的存储空间进行组织,分配和回收,负责文件的存储,检索,共享和保护。
从用户角度来看,文件系统主要是实现"按名取存",文件系统的用户只要知道所需文件的文件名,就可存取文件中的信息,而无需知道这些文件究竟存放在什么地方。
文件系统作为一个统一的信息管理机制,应具有下述功能:
①统一管理文件存储空间(即外存),实施存储空间的分配与回收。
②确定文件信息的存放位置及存放形式。
③实现文件从名字空间到外存地址空间的映射,即实现文件的按名存取。
④有效实现对文件的各种控制操作(如建立、撤销、打开、关闭文件等)和存取操作(如读、写、修改、复制、转储等)。
⑤实现文件信息的共享,并且提供可靠的文件保密和保护措施。
3. 文件的类型
(1)按文件性质与用途分:系统文件、库文件、用户文件
(2)按操作保护分:只读文件、可读可写文件、可执行文件
(3)按使用情况分:临时文件、永久文件、档案文件
(4)按用户观点分:普通文件、目录文件、特殊文件
(5)按存取的物理结构分:顺序(连续)文件、链接文件、索引文件
(6)按文件的逻辑存储结构分:有结构的记录式文件、无结构的流式文件
(7)按文件中的数据形式分:源文件、目标文件
文件的结构和组织
1.文件的逻辑结构
文件的逻辑结构是指文件的外部组织形式,即从用户角度看到的文件组织形式,用户以这种形式存取、检索和加工有关信息。文件的逻辑结构可分为两类:
1)有结构的文件
有结构的文件是指由若干个相关的记录构成的文件,又称记录式文件。
在文件中的记录一般有着相同或不同数目的数据项,按记录的长度,记录式文件可分为两类:
(1)等长记录文件:它指文件中所有记录的长度都是相等的。
(2)变长记录文件:它指文件中各记录的长度不相同.。
2)无结构文件
无结构文件又称流式文件,组成流式文件的基本信息单位是字节或字,其长度是文件中所含字节的数目,如大量的源程序,库函数等采用的就是流式结构。UNIX系统采用的是流式文件结构。
2.文件的物理结构
又称文件的存储结构,是指文件在外存上的存储组织形式,是与存储介质的存储性能有关;
1)连续结构:一个逻辑文件的信息存放在外存的一片连续编号的物理块中的结构称为连续结构,或称连续文件。存放在磁带上的文件一般采用连续结构。
2)链接结构:使用非连续的物理块来存放信息,物理块之间没有物理块号的顺序,其中每个物理块中有一个指针,指向下一个连接的物理块,从而使存放该文件的物理块链接成一个串联队列,文件的最后一个物理块的指针标记为空"∧",表示文件至本块结束。
3)索引结构:将逻辑文 件顺序的划分成长度与物理存储块长度相同的逻辑块,并为每个文件分别建立逻辑块号与物理块号的对照表,这种表称为索引表。在很多情况下,有的文件很大,文 件的索引表也就较大。如果索引表的大小超过了一定的限度,就必须象处理其它文件一样处理索引表的存放方式。为了解决这个矛盾,一种较好的解决方法是采用间 接索引(多重索引)。
4)Hash文件:Hash文件是目前应用最广的一种直接文件。它利用Hash函数(或称散列函数)将记录键值转换为相应记录在目录表中的索引,即表项位置。通常,把Hash函数作为标准数存于系统中,以供对文件存取时调用。因为散列函数不是一对一的关系,所以选择好的散列函数和冲突处理方法是散列文件的关键。
5)UNIX文件系统的索引结构:UNIX文件系统采用三级索引结构,文件系统中innode是基本的构件,它表示文件系统树型结构的结点。UNIX有直接、一级间接、二级间接和三级间接四种寻址方式。
文件目录
文件系统的一个最大特点是“按名存取”。文件控制块FCB是系统为管理文件而设置的一个数据结构。FCB是文件存在的标志,它记录了系统管理文件所需要的全部信息。
1.文件控制块FCB的组成
文件控制块FCB包含以下3类信息:基本信息类、存取控制信息类和使用信息类。
2. 目录结构
文件目录的组织与管理是文件管理中的一个重要方面,目前大多数操作系统如UNIX、DOS等都采用多级目录结构,又称树型目录结构。常见的目录结构有:
1)单级目录结构
最简单的目录结构是在整个文件系统中只建立一张目录表,每个文件占一个表目,这称为单级目录。单级目录结构简单,能实现目录管理的基本功能--按名存取,但存在查找速度慢,不允许重名和不便于实现文件共享等缺点,因此它只适用于单用户环境。
2)二级目录结构
把系统中的目录分成二级,这二级目录分别是主目录和用户文件目录。
主目录由用户名和用户文件目录首地址组成;用户文件目录由用户文件的所有目录组成。
若一个新用户要建立一个文件,系统在主目录中为其开辟一项,并为其分配一个存放用户文件目录的存储空间,同时要为新建立的文 件在用户文件目录分配一个目录项,分配文件存储空间,然后把用户名和用户文件目录首地址填放到主目录中,将文件的有关信息填到用户文件目录项中。若一个老 用户要建立一个文件,在对应的空的用户文件目录项中填入相应的内容即可。
用户要访问一个文件:先根据用户名在主目录中找到用户文件目录的首地址,然后再去查用户文件的目录项即可找到要访问的文件。
二级目录结构的优点有:
(1)搜索文件的时间变短;
(2)较好地解决了重名问题:在二级目录结构中,搜索文件时需给出对应的用户名和文件名,即区别文件除了文件名以外还有用户名,由于用户名不同,因此即使不同的用户使用的文件名相同,也不会造成混乱。
二级目录结构的缺点是缺乏灵活性,不能反映现实世界中的多层次关系。
3)多级目录结构
在多道程序设计系统中常采用多级目录结构,MS-DOS和UNIX等 操作系统都采用多级目录结构。这种目录结构象一棵倒置的有根树,该树根向下,每一个节点是一个目录,最末一个结点是文件,在多级目录中要访问一个文件时, 必须指出文件所在的路径名,路径名从根目录开始到该文件的通路上所有各级目录名拼起来得到,各目录名之间与文件名之间可用分隔符隔开。在MS-DOS中分隔符为"\",在UNIX中分隔符为"/"。例如访问命令文件man的路径名为/usr/lib/man,这也称为文件全名。
多级目很好地解决了录重名问题:在多级目录中存取一个文件需要用文件全名,这就允许用户在自己的目录中使用与其它用户文件相同的文件名,由于各用户使用不同的目录,虽二者使用了相同的文件名,但它们的文件全名仍不相同,这就解决了重名问题。
一般情形下文件目录项包括以下信息:(1)文件名:文件的标识符。(2)文件的逻辑结构;(3)文件在辅存上的物理位置;(4)文件建立修改日期及时间;(5)文件的类型;(6)存取控制信息:指明用户对文件的存取权限。
文件的存取方法和存储空间管理
对文件的操作可分为两类:一类是对文件自身的操作;另一类是对文件中记录的操作。
1.对文件的操作
(1)创建文件:系统要为文件分配一个目录项及存放新文件的外存空间,并在目录项中记录文件的有关信息,如文件名,物理地址等。
(2)删除文件:系统根据用户给出的路径名,找到对应的文件,并回收该文件占用的全部资源,且将其目录项置空。
(3)打开文件:用户想访问一个文件时,必须向系统提出打开文件的请求,并给出文件的路径名,操作类型等信息,系统则把其相应目录拷入内存.文件打开后才能对文件进行操作。
(4)读文件:系统根据用户指定的路径名,将文件读入到内存指定的地址中。
(5)写文件:系统根据用户指定的路径名,将内存中的数据信息写入到相应文件中。
(6)关闭文件:文件不使用时,可申请系统将指定的文件关闭,系统则把其相应内存目录信息删除.文件关闭后只有再打开才能对其进行操作。
2.对记录的操作
(1)读操作:将文件中的一条或多条记录读入到进程中。
(2)写操作:进程将其输出的数据项写入到文件的一条记录或多条记录中。
(3)查找:检索文件,在其中查找一条或多条满足条件的记录.。
(4)修改:检索文件,在其中找到一条满足条件的记录后,对其中的一个或多个数据进行修改,修改完毕后再将记录写回到文件中。
(5)插入:将一个新记录插入到文件的某记录之前或之后。
(6)删除:从文件中删除一个满足条件的记录。
文件的共享和保护
1.系统的安全
系统的安全涉及二类不同的问题,一类涉及到技术、管理、法律、道德和政治等问题。另一类涉及操作系统的安全机制,一般从四个级别对文件进行安全性管理:
1)系统级:用户需注册登记、并配有口令。每次使用系统时,都需要进行登录、输入口令,方能进入系统。
2)用户级:系统对用户分类并限定各类用户对目录和文件的访问权限。
3)目录级:系统对目录的操作权限作限定。如读、写等。
4)文件级:系统设置文件属性来控制用户对文件的访问。如只渎、执行、共享等。
2.文件系统的可靠性
比起计算机 的损坏,文件系统的破坏往往要糟糕得多。如果计算机的文件系统被破坏了,恢复所有信息将是一件困难而又费时的工作,有些时候,这根本是不可能的。对于那些 程序、文档、客户文件、税收记录、数据库、市场计划或者是其他数据丢失的用户来说,这不啻为一次大的灾难。尽管文件系统无法防止设备和媒体的物理损坏,但 它至少应能保护信息。可采取的方法有备份、记日志、文件系统的一致性检查等。
没有评论:
发表评论