一.文件控制块(FCB)
文件控制块一般在创建该文件时建立,打开文件时只是将文件控制块的内容读入内存,读和写文件时对文件内容操作,它们必须依靠文件控制块的指示,例如外存地址、读写权限等。关闭文件只是将文件控制块写回磁盘,删除文件时将文件控制块清除
文件控制块至少应该包含以下信息:
文件名
文件的结构:说明文件的逻辑结构是记录式文件还是流式文件,若为记录式文件还需要进一步说明记录是否定长、记录长度及个数;说明文件的物理结构是顺序文件、索引顺序文件还是索引文件
文件的物理位置:如对于连续文件应给出文件第一块的物理地址及所占块数,对于索引顺序文件只需要给出第一块的物理地址,对于索引文件则应给出索引表地址
存取控制信息
管理信息
二.例题
在实现文件系统时,为加快文件目录的检索速度,可利用“文件控制块分解法”。假设目录文件存放在磁盘上,每个磁盘块为512B,文件控制块占64B,其中文件名占8B。通常将文件控制块分解成两部分,第一部分占10B(包括文件名和文件内部号),第二部分占56B(包括文件内部号和文件其他描述信息)。假设某一目录文件共有254个文件控制块,试分别给出采用分解法前和分解法后,查找该目录文件某一文件控制块的平均访问磁盘次数。
假设某一目录文件共有254个文件控制块,而每个磁盘块为512B,文件控制块占64B。 采用分解法前,一个盘块可存放:512/64=8个文件控制块,则254个文件控制块要占:254/8=32个磁盘块,故平均查找一个文件控制块需访问磁盘:32/2=16次。
采用分解法后,将文件控制块分解成两部分,第一部分占10B(包括文件名和文件内部号),第二部分占56B(包括文件内部号和文件其他描述信息i)。一个盘块可存放:512/10=51个文件控制块,这样254个文件控制块要占:254/51=5个磁盘块。平均查找一个目录项需访问磁盘:5/2≈3次,而得到文件控制块还应访问一次磁盘,故总共需访问磁盘:3+1=4次。
通常目录文件分解前占用n个盘块,分解后改用m个盘块存放文件名和文件内部号部分,那么访问磁盘次数减少的条件是
目录文件分解前占用n个盘块,分解后改用m个盘块存放文件名和文件内部号部分,那么访问磁盘次数减少的条件是m<n-2。