• 操作系统之目录


    目录

     

     

    准备: 文件控制块——PCB:

        

    为了能对一个文件进行正确的存取,必须为文件设置用于描述和控制文件的数据结构,称之为“文件控制块”(FCB)
    文件与文件控制块一一对应
    记录文件名及其存放地址、文件的说明和控制信息。
    文件管理程序借助于文件控制块中的信息对文件施以各种操作。
    把文件控制块的有序集合称为文件目录,即一个文件控制块就是一个目录项。通常一个文件目录也被看作是一个文件,称为目录文件

        一:   目录管理

       主要有两大操作:

        1.方便信息记录(PCB,目录项)

         2.方便检索,管理(目录操作)

        管理要求:

            (1)   实现按名存取

             (2) 提高对目录的检索速度

               (3)  文件共享

            (4)允许文件重名

        (一)  PCB内容

        1:基本信息类:   文件名,文件物理位置,文件逻辑结构,文件物理结构

       2.   存取控制信息 :    文件主的存取权限,其他用户的存取权限。

      3. 使用信息类:   建立日期,文件修改日期

                                   当前使用信息:打开文件的进程数,是否被进程上锁,是否已经修改。

       (二)索引节点

          将文件名,文件具体信息分开,使文件描述信息单独形成一个索引结点。

         不同形式:

         1:磁盘索引结点:

               文件主标识符、文件类型、文件存取权限、文件物理地址、文件长度、文件连接计数、文件存取时间。

          2:  内存索引结点:

             将磁盘结点拷贝到内存结点使用。新增一些内容,如:状态,访问计数等。

        (三) 目录结构、

           目录结构的组织

         1:  单机目录:

              最简单的目录结构。

             整个文件系统中只建立一张目录表 ,每个文件一个目录项,含有文件相关信息。

          建立一个新文件:

                 (1)先检索所有的目录项,保证文件名唯一。

                  (2)获得一张空白目录项,填入相关信息,修改状态位

               删除一个文件:

                   (1)  找到对应的目录项,回收文件所占用空间。

                     (2) 清楚目录项。

           优点:  

                      简单,能够实现目录管理的基本功能————按名存取

           缺点:

           ( 1:  文件检索的时候需要搜索所有目录文件

          ( 2: 不允许重名,对多用户不友好

            (3:    不便实现文件共享,一般只适用于单机环境。

         2:   两级目录结构:

               为每一个用户建立一个单独的用户文件目录UFD,UFD由所有文件控制块组成。

       系统建立一个主文件目录MFD,MFD中每个用户目录文件都占有一个目录项,其中包括用户名和指向UFD的指针

         特点:

         (1):  提高了检索目录的速度。

         (2):   在不同的,目录中可以重名

         (3):    不同的用户可以使用相同或不同的文件名来访问系统中的同一个

    共享文件,

         (4):不提供子目录操作,各个用户之间不方便合作。

      3.多级目录结构   

          使用与较大的文件管理系统,又称树状目录

        目录结构:   

            主目录又称根目录:数据文件成为树叶,其他目录称为结点

        路径名;

            从根目录到任何数据都有一条唯一的通路

        当前目录:

           为每个进程设置一个当前目录,又称’工作目录‘;

            从当前目录开始,逐级经过中间目录文件,最后到达要访问的数据文件。这一路径上的目录和数据文件连接成的路径名,成为相对路径 。

           从根开始的路径名称为绝对路径名。

      (四)   目录查询技术

          用户法访问一个已存在的文件:

          (1):目录调入数据库

          (2):按名检索

          (3):找到该文件控制块。

          (4):读FCB或对应的索引结点

          (5):从文件物理地址换算成在磁盘上的物理位置。

         1:目录查询方式:线性检索发和哈希法

          线性检索法:

            单机目录中: 用户提供文件名,顺序查找文件

            树形目录:用户提供路径名;对多级目录进行逐级逐层查找。

          HASH法:

            建立一张hash索引文件目录

            系统将用户提供的文件名变换为文件目录的索引值,在利用索引值到目录中查找。

            如果文件名使用了通配符,无法利用哈希法。   

       (五) 文件共享与保护

         1:文件共享

            多个用户共享一份文件,只保留一份文件副本。

          (1)索引结点法:

             基本FCB法:

                名+详细信息

                

             直接在文件目录中包含文件的物理地址,该方法实现的共享不适用文件动态变化。一个用户对文件的修改(如物理块号增加),对其他用户不可见,共享文件的FCB信息记录同步更新困难。
             文件名+索引结点指针。
             一个用户修改指针指向地址里的内容,指针不变,其他用户通过指针总能感知索引结点中的最新内容
           索引结点中增加count计数
             主人删除操作问题:
    删,共享用户访问错误;不删,计费问题。

            符号链法:

          创建一个link类型的文件:“文件名+共享文件路径”(类似快捷方式)
          文件主人删除文件,共享者只会出现找不到文件错误。不会发生共享文件删除后出现悬空指针的情况。
          该方法适用于网络文件共享,但根据路径检索共享文件的目标位置增加了访问开销,link文件独占索引结点也耗费一定的空间。
    无论哪种共享,链接就对应一个文件,如果遍历复制整个目录内的文件,可能会从多条路径对共享文件进行多次访问

        2:磁盘容错:

          SFT:

            (1) 磁盘表面故障

            (2)磁盘驱动器、控制器故障

                          

         

           

       

        

         

  • 相关阅读:
    preprocess
    数组
    共用体
    动态内存管理函数
    C链表
    文件的定位与出错检查
    字符串读写函数
    C文件操作
    位运算
    爱好-超级IP:超级IP
  • 原文地址:https://www.cnblogs.com/lls101/p/10088727.html
Copyright © 2020-2023  润新知