背景:今天在考试的时候忘记,乱写一通后,考后重新学习
问题如图:
分析:
前提知识:
索引节点,简称为 inode,用来记录文件的元数据,比如 inode 编号、文件大小、访问
权限、修改日期、数据的位置等。索引节点和文件一一对应,它跟文件内容一样,都会
被持久化存储到磁盘中。所以记住,索引节点同样占用磁盘空间
由于索引结点为128字节,指针为4个字节,而状态信息占68个字节,且每块大小为8kB
用于指针的空间大小为:
索引节点字节数-状态信息字节数=60字节
一次间接指针、二次间接指针和三次间接指针将占用索引节点中的三个指针项,
因此直接指针项数为: 60/4-3=12(个)
“且每块大小为8kB”
这里题目让我这钻牛角尖的人思考太多,其实说的就是指针指向的盘块大小为8KB,
8kB=8*1024B = 8192 B
(网上有一个博主写了这个同一个题的,但是没有解释作用且写错答案,具体就不说了)
奔主题:
直接指针有12个,一个指向的盘块的字节数是8192B,
所以 使用直接指针可以表示的文件大小是
12 * 8192B =98304 B
所以大小不超过98304字节的文件使用直接指针即可表示。
一次间接指针指向的磁盘块大小是8192B,
全是指针,所以一块磁盘块内的指针的指针项数量为8192B/4B=2048(个)
2048个指针指向的总磁盘大小是2048*8192B =16777216B = 16384KB=16MB
一次间接指针 表示的文件大小为16MB
一次间接指针提供了对附加16M字节信息的寻址能力。
一次间接指针指向文件存放的总磁盘大小是2048*8192B =16777216B = 16384KB=16MB
二次间接指针 可以提供的指针项为 16MB /4B =4M个
4M个指针指向的总磁盘大小是4M*8192B = 32GB
二次间接指针 表示的文件大小为 4M*8192B = 32GB
二次间接指针提供了对附加32G字节信息的寻址能力。
二次间接指针 指向文件存放的总磁盘大小是 4M*8192B = 32GB
三次间接指针 可以提供的指针项为 32GB/4B=8G个
8G个指针指向的总磁盘大小是8G*8192B = 65536GB = 64TB
三次间接指针 表示的文件大小为8G*8192B = 65536GB = 64TB
三次间接指针提供了对附加64T字节信息的寻址能力。