操作系统原理第九章(文件系统)

一、文件系统概念

       1.文件的定义:文件是系统中信息存放的一种组织信息

                               文件是一组具有逻辑意义的若干信息项的集合,并赋予一个文件名让用户存取。

                                信息项可以是字节,可以使某个结构化数据;用户通过读写指针来存取文件的信息项;

       2.文件的分类:

                文件的用途:系统文件,指用操作系统的执行程序和数据组成的文件,这种文件不对用户开放,仅供系统使用;

                                    库文件,系统为用户提供的各种标准函数,标准过程和使用程序等。用户只能使用这些文件,而无权对其进行修改。

                                    用户文件,由用户信息组成的文件,如源程序文件,数据文件等,这些文件的使用和修改均属于用户。

                文件的操作保护:只读文件、只写文件、不保护文件

                文件的性质:普通文件、目录文件、特别文件

        3.文件的属性

                指定文件的类型、操作特性、和存取保护等的一组信息;

                文件属性一般存放在文件的目录项;

               MS-DOS系统中,文件属性占目录项的一个字节(01表示仅读,02表示隐含文件)

二、文件的逻辑结构和存取方法

         1.文件的结构(文件组织)

                   用户观点(逻辑结构):为用户提供逻辑结构清晰、使用方便的逻辑文件

                                                       强调文件的构成和用户存取方式

                  实现观点(物理结构):主要研究驻留在存储设别上的文件结构;

                                                       合理利用存储空间,缩短IO存取时间;

         2.文件的逻辑结构:

                 流式文件:特点,信息单位是字或字节,其长度是所含字节的数量;

                                  优点,文件中无需额外的说明和控制信息;节省存储空间;

                                  补充,源程序、可执行程序、库函数等采用;

                                             操作系统中,文件都被看做时流式文件;

                                            文件中任何信息的含义都是由用户级程序解释;

                记录式文件:一种结构化文件,由若干记录组成;若文件中记录的长度相等,为定长记录文件;反之,变长记录文件

                                特点:使用不方便,尤其是变长记录文件;

                                          文件中有说明记录长度的信息,浪费存储空间;

                                          现代操作系统中都取消了记录式文件

       3.文件的存取方法:

                 顺序存取:按文件信息单位排列的顺序依次存取

                                  当打开文件时,文件的读写指针指向第一个信息单位(字节或记录),每存取一个信息,读写指针自动加1,而指向下一个信息。

                 随机存取:直接存取;每次存取操作时必须先确定存取的位置。

                                 特点,对流式文件或定长记录文件比较容易确定存取位置;

                                           对变长记录文件比较麻烦(从首记录开始顺序查询,直到找到要存取的记录为止;建立索引,可作为文件的一部分,也可以单独建立索引文件)

三、文件的物理结构:文件在存储设备上的存储方式

        1.连续文件:文件全部信息连续存放在外存若干个存储快中(磁带上的文件)

                         特点:建立文件时要求用户给出文件最大长度,以便系统为文件分配足够的存储空间,并在相应表格中登记文件的起始位置和长度;

                          优点:简单;支持顺序存取和随机存取;顺序存取速度快;所需磁盘寻道次数和寻道时间最少

                          缺点:文件不易动态增长;预留的空间浪费,重新分配和移动;

                                    不利于文件插入和删除;外部碎片问题(存储压缩技术)

         2.串联文件:非连续结构,文件信息存放在不连续的存储快中,每个存储块由一个指针(next),指向下一个存放信息的存储块

                          特点:适用于顺序存取,随机存取较为困难;

                           优点:提高了磁盘空间利用率,不存在外部碎片问题;

                                     有利于文件插入和删除;

                                     有利于文件动态扩展;

                          缺点:存取速度慢,不适于随机存取;

                                    链接指针占用一定空间;

                                    可靠性问题,如指针出错;

四、文件分配表(FAT)

       1.将原来分散在存储块中的链接字集中放到一个表中

         表和存储设备对应:表的每个元素按序存放在相应的存储块中的链接字next

         表和文件目录结合使用。文件目录指出文件第一块的位置,其余的由FAT指出。

       2.  特点:FAT要占用存储空间。若盘的容量较大,存储块数目较多,则FAT的表项很多,FAT将占用较多存储空间

                      若存储块有2^N块,则FAT有2^N个元素,每个元素需要Nbit宽

                在进行文件访问时,需要通过FAT来访问文件。若果FAT过大,则内存中可能装不下整个FAT,这样就会造成若要读某块文件信息时,先要到外存中读FAT,影响使用率。

        3.随机文件:文件的信息存放在若干个不连续的物理块中,系统为每个文件建立一个专用的数据结构(索引表),存放这些块的块号;(索引表记录仪文件与磁盘块的对应关系,类似于页表)

                       索引机构在存储中占用了2个区,访问文件时分为两步(索引区,数据区)

                       优点:保持了链接结构的优点,又解决了其缺点:

                                           既能顺序存取,又能随机存取;满足了文件动态增长、插入删除的要求;充分利用外存空间

                       缺点:索引表本身带来系统开销(如,内外存空间,存取时间);

        4.为文件分配存储空间的策略

                       静态分配:用户在创建文件时宣布文件大小,OS为其分配相应空间;

                                       优点:适合对连续文件分配空间;适合早期操作系统、实时系统和简单系统;

                                       缺点:用户很难确定文件大小;存在辅存碎片

                      动态分配:建立文件时不分配空间,在写文件时才分配空间

                                     优点:随时可分配,适合串联结构和索引结构;建立文件时不需要知道它的大小

                                      缺点:占用了额外的空间

五、文件存储空间管理:记录当前磁盘的使用情况,创建文件时分配存储空间,删除文件时回收存储空间

        记录磁盘空闲块的方法:

              1.空闲文件目录管理:

                       存储设备上一片连续的空闲区可看做一个特殊的文件:空闲文件            该文件由连续的空闲块组成

                       存储设备上所有空闲文件就代表了存储设备上空闲空间,为这些空闲文件建立一个专门的目录:空闲文件目录

                       空闲文件目录的每一个表项对应一个空闲文件,包括他的第一个空闲块号,以及空闲块个数等重要信息

              2.空闲块链:

                      把存储设备上的所有空闲块链接在一起,当申请者需要空闲块时,分配程序从连接头开始摘取所需要的空闲块,然后调整指针。反之,当回收空闲块时,把释放的空闲块逐个加在链接尾;

              3.位示图:

                       系统首先从内存中划出若干字节,每个bit对应一个存储块使用情况(空闲或是占用)

                           0:空闲                         1:占用

六、文件目录管理:

            1.文件目录:文件名址录,记录文件名和存放地址的目录表

                                 为了对大量文件进行分门别类的管理,提高文件检索的效率,现代操作系统往往将文件的一些属性也记录在目录中;

              目录文件:文件目录以文件形式存放在外存,该文件即为目录文件

               文件目录的功能:将文件名转换成外存物理地址的功能

             2.目录结构:

                      单级目录:最简单的目录结构,全部文件都登记在同一目录中

                                      特点:简单、易于实现和理解;   缺点:查找速度慢,不允许重名、不便于文件共享

                      两级目录:每个用户使用一个相对独立的目录,在所有用户目录的目录上层再建立一层目录来管理各个用户目录

                                      系统允许每个用户有一个子目录(用户目录);

                                       有效解决了文件重名的问题,不同用户的文件使用相同名字也不会混淆

                       树型目录(多级目录结构):

                                      如同一颗倒立的树,主目录为树根,又称根目录

                                      每个树枝节点为一个子目录,每片树叶描述一个文件

七、其他

             1.文件全名和路径:

                         文件全名:包括从根目录开始到文件为止通路上所有子目录路径

                                         子目录之间用“\”或“/”隔开;子目录名组成部分又称路径名

                                          每个文件有唯一路径名

                          绝对路径名:根目录到指定目录;                 相对路径名:从当前目录到指定文件

          2.文件的保护:

                    仅执行(E);仅读(R);仅写(W);仅允许在文件尾写(A);仅允许对文件进行修改(U);允许改变文件存取权限(C);允许取消文件(D) 

                     权限可进行适当组合

          3.文件和目录操作:

               文件操作:创建、写、读、文件定位、删除文件、截短文件、属性设置和读取

               目录操作:创建、删除

猜你喜欢

转载自blog.csdn.net/xaishujin/article/details/80699922