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

  • 相关阅读:
    箭头函数中的this
    剑指offer(十六) 合并两个排序的链表
    http中的referer
    剑指offer(十四,十五)链表中倒数第k个结点,反转链表
    剑指offer(十二,十三) 数值的整数次方,调整数组顺序使奇数位于偶数前面
    那些短小精悍的&奇葩的&令人感到惊讶的JavaScript代码----更新中
    对箭头函数的补充
    Promise和Async/Await用法整理
    Vue父子组件互相通信实例
    Vue实例里面的data属性为什么用函数返回
  • 原文地址:https://www.cnblogs.com/coderD/p/14140271.html
Copyright © 2011-2022 走看看