文件系统
文件的逻辑结构:指在用户看来文件内部的数据是如何组织起来的。
分为:
文件目录本身是一种特殊的文件,是一种有结构文件。每一条记录为存放在这个目录下的文件控制块。
单级目录结构
整个系统只有一张目录表,每一个文件占用一个目录项。
虽然实现了按名存取,但是不可以重名,同时不适合多用户目录。
两级文件目录
分为主文件目录和用户文件目录。允许不同用户的文件重名。
多级文件目录
呈现树状结构,不同目录下的文件可以重名。
由根目录出发的路径称为绝对路径。
像Linux系统,在每一个目录添加 '.'表示当前目录,可以避免从根目录查找带来的大量IO操作。
无环图目录结构
跟多级文件目录类似。只是支持目录项指向相同的文件,有利于文件的共享。参考后面的硬链接知识点。
索引结点的提出是为了优化文件的检索速度。
文件检索过程一般为,根据给出的文件路径,调用一级一级的目录文件查找。因为目录项的FCB有记录文件的外存地址,查找到了外存地址就可以进行读取文件。
问题在于,查找的时候只需要文件名称,而不需要其他多余的信息。而这些多余的信息会占用空间。那么原本一个外存块可以存放1000个目录文件,现在只能存放50个目录文件,在查找相同的目录文件数的情况下就需要更多的IO读取,浪费时间。
所以目录文件结构改进为文件名与指向索引结点的指针。而索引结点为FCB中除了文件名以外的其他信息。