1、位示图相关的计算
什么是位示图呢?
这种方法是在外存上建立一张位示图(bitmap),记录文件存储器的使用情况。每一位仅对应文件存储器上的一个物理块,取值0和1分别表示空闲和占用。文件存储器上的物理块依次编号为:0、1、2、…。假如计算机的字长为32,那么第0字(逻辑编号)对应存储器上第0,1...32号物理块,第1字对应从33到63号物理块。
由所有盘块对应的位构成一个集合,称为位示图。位示图也可描述为一个二维数组map:Var map:array[1...m,1...n]of bit。
知道了概念,题无非就是用 物理块号/字长 就可以算出是在第几字来表示这个物理块。
2、萦引节点法?文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。
每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。
inode包含文件的元信息,具体来说有以下内容:
* 文件的字节数
* 文件拥有者的User ID
* 文件的Group ID
* 文件的读、写、执行权限
* 文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。
* 链接数,即有多少文件名指向这个inode
* 文件数据block的位置
大多数文件系统会以 15 个指针的形式来存储数据结构。这 15 个指针包括:
- 直接指向文件数据区块的 12 个指针,称为直接指针(direct pointer)。
- 一个单独非直接指针(singly indirect pointer),指向一个由多个指针构成的区块,后者的指针又指向文件数据区块。
- 一个双重非直接指针(doubly indirect pointer),指向一个由多个指针构成的区块,后者的指针又指向一个由多个指针构成的区块,这一区块的指针又指向文件数据的区块。
- 一个三重非直接指针(triply indirect pointer),指向一个由多个指针构成的区块,后者的指针又指向一个由多个指针构成的区块,其指针又指向另一个由多个指针构成的区块,这一区块的指针又指向文件数据的区块。
索引节点指针结构可以用一张图表示如下:
简单来说:直接索引,就是直接指向物理块
一级索引:索引结点指向的物理块来存放地址项
二级索引:指向的物理块存放的是一级索引地址的块地址