zoukankan      html  css  js  c++  java
  • 文件目录

    文件目录

    1

    1、文件控制块

    目录本身就是一种有结构文件,由一条条记录组成。每条记录对应一个在该目录下的文件

    目录文件中的一条记录就是一个“文件控制块(FCB)”

    FCB的有序集合称为“文件目录”,一个FCB就是一个文件目录项。

    FCB中包含了文件的基本信息(文件名、物理地址、逻辑结构、物理结构等),存取控制信息(是否可读/可写、禁止访问的用户名单等),使用信息(如文件的建立时间、修改时间等)

    最重要,最基本的还是文件名、文件存放的物理地址

    FCB实现了文件名和文件之间的映射。使用户(用户程序)可以实现“按名存取”

    image-20201215181319846

    需要对目录进行哪些操作?

    搜索:当用户使用一个文件时,系统要根据文件名搜索目录,找到该文件对应的目录项

    创建文件:创建一个新文件时,需要在其所属的目录中增加一个目录项

    删除文件:当删除一个文件时,需要在目录中删除相应的目录项

    显示目录:用户可以请求显示目录的内容,如显示该目录中的所有文件及相应属性

    修改目录:某些文件属性保存在目录中,因此这些属性变化时需要修改相应的目录项(如:文件重命名)

    2、目录结构——单级目录结构

    早期操作系统并不支持多级目录,整个系统中只建立一张目录表,每个文件占一个目录项

    image-20201215181703001

    单级目录实现了“按名存取”,但是不允许文件重名

    在创建一个文件时,需要先检查目录表中有没有重名文件,确定不重名后才能允许建立文件,并将新文件对应的目录项插入目录表中。

    显然,单级目录结构不适用于多用户操作系统

    3、目录结构——两级目录结构

    早期的多用户操作系统,采用两级目录结构。分为主文件目录和用户文件目录。

    image-20201215182314955

    用户要访问某个文件时要用文件路径名称标识文件,文件路径名是个字符串。各级目录之间用“/”隔开。从根目录出发的路径称为绝对路径。

    每次都从根目录开始查找,是很低效的。因此可以设置一个“当前目录”。

    树形目录结构可以很方便地对文件进行分类,层次结构清晰,也能够更有效地进行文件的管理和保护。但是,树形结构不便于实现文件的共享。因此,提出了“无环图目录结构”

    在树形目录结构的基础上,增加一些指向同一节点的有向边,使整个目录成为一个有向无环图。可以跟方便地实现多个用户间的文件共享。

    4、索引结点(FCB的改进)

    image-20201215182832123

    14

  • 相关阅读:
    Nginx负载均衡+代理+ssl+压力测试
    Nginx配置文件详解
    HDU ACM 1690 Bus System (SPFA)
    HDU ACM 1224 Free DIY Tour (SPFA)
    HDU ACM 1869 六度分离(Floyd)
    HDU ACM 2066 一个人的旅行
    HDU ACM 3790 最短路径问题
    HDU ACM 1879 继续畅通工程
    HDU ACM 1856 More is better(并查集)
    HDU ACM 1325 / POJ 1308 Is It A Tree?
  • 原文地址:https://www.cnblogs.com/coderD/p/14140271.html
Copyright © 2011-2022 走看看