一、文件控制块
为文件设置的用于描述和控制文件的数据结构。文件管理程序可借助与文件控制块中的信息,对文件施以各种操作。
2.文件目录:
文件控制块的有序集合(文件与文件控制块一一对应)称为文件目录,一个文件控制块就是一个文件目录项。
3.文件控制块的内容
(1)基本信息类:文件名、文件物理位置、文件逻辑结构、文件的物理结构
(2)存取控制信息类:文件主的存取权限、核准用户的存取权限以及一般用户的存取权限。
(3)实用信息类:文件的建立日期和时间、文件上一次修改的日期和时间、当前已打开该文件的进程数、是否被其他进程锁住、文件在内存中是否已被修改但尚未拷贝到盘上等。
二、文件目录和当前目录
1.一级目录结构
优点:简单且能实现目录管理的基本功能——按名存取。
缺点::查找速度慢、不允许重名
2.二级目录结构
为改变一级目录文件目录命名冲突,并提高对目录文件检索速度而将目录分为两级:
一级称为主文件目录,给出用户名,用户子目录所在的物理位置;二级称为用户文件目录,给出该用户所有文件的FCB。
优点:解决了文件的重名问题和文件共享问题,提高搜索速度,查找时间降低。
缺点:不太适合大量用户和大量文件的大系统,增加了系统开销。
3.多级目录
多级目录解构也称树形目录,产生于UNIX操作系统,已被现代操作系统广泛采用。
优点:层次结构清晰,便于管理和保护;有利于文件分类;解决重名问题;提高文件检索速度;能进行存取权限的控制。
缺点:查找一个文件按路径名逐层检查,由于每个文件都放在外存,多次访盘影响速度。
4.当前目录与目录检索
当前目录:当前正在使用的目录(也称工作目录或值班目录)。
目录检索:用户访问文件时,需要进行目录检索,这时用户给出文件名,系统按名寻找目录项。
检索方法:全路径名(绝对路径名),相对路径。
三、目录项和目录文件
1.目录项
一个文件控制块做成一个定长记录,这个记录称为目录项。
2.目录文件
多个文件的文件控制块集中在一起组成了文件的目录。
文件目录以文件的形式保存,该文件称为目录文件。
四、目录项分解法
1.目的:
加快目录检索速度
2.分解:
目录项分解成两部分:符号目录项(次部)和基本目录项(主部)。
符号目录项:包含文件名和文件号
基本目录项:除文件名以外的FCB的其他全部信息。
3.优点:
减少磁盘的访问次数,提高文件目录检索速度。
五、UNIX的文件目录结构
1.i结点的引入
文件目录通常是存放在磁盘上的,可能要占用大量的盘块。在查找目录的过程中,需要多次启动磁盘。
UNIX系统,采用了把文件名与文件描述信息分开的办法,亦即,使文件描述信息单独形成一个称为索引结点的数据结构,简称为i结点。
2.i结点的内容
文件主标识符、文件类型、文件存取权限、文件物理地址、文件长度、文件连接计数、文件存取时间等。
3.物理结构
三级索引结构
4.目录查询:查找usr/ast/mbox为例
六、FAT文件系统的实现
FAT的含义:
文件分配表--File Allocaltion Table,最初为DOS系统设计,适合小容量的磁盘,分配给文件的所有盘块号都放在该表中。
三个版本:
FAT-12、FAT-16、FAT-32
七、磁盘空间管理
基本思想
对于磁盘空间的分配和回收的方法。
八、磁盘空间的分配与回收算法
1.位示图
略
2.空闲块表
略
3.空闲块链
略
九、空闲块成组链接法
1.成组链接的含义
文件区中的所有空闲盘块,被分成若干个组,比如,将每100个盘块作为一组。
将每一组含有的盘块总数N和该组所有的盘块号,记入其前一组的第一个盘块中。这样,由各组的第一个盘块可链成一条链。
2.成组链接法的分配:
在空闲块链中,不足100块的组,通常放在内存专用块中,系统初始化时,先把专用块内容读到内存中,需要分配时,就直接在内存中找到哪块是空闲的,然后进行分配,空闲块数减1,如果这一组的第一个空闲块也要分配,在分配之前,先把其保存的下一组的空闲盘块号读入内存中,再分配出去,依此类推。
3.成组链接法的回收:
归还一个空闲盘块时,把要归还的块号登记在当前组中,空闲块数加1,如果当前组已满100块,则把这100个块号写到要归还的那块中,该块就成为新租的第一块。
4.成组链接法的优点:
分配和回收空闲块时均在内存中查找和修改,只有在一组空闲块分配完或空闲的磁盘块构成一组时才需要启动磁盘读写,效率高,能快速找到大量空闲盘块的地址,UNIX采取这种方案。