首页 > 试题广场 >

通过文件名存取文件时,文件系统内部的操作过程是通过?

[单选题]
通过文件名存取文件时,文件系统内部的操作过程是通过?
  • 文件在目录中查找文件数据存取位置。
  • 文件名直接找到文件的数据,进行存取操作。
  • 文件名在目录中查找对应的i节点,通过i节点存取文件数据。
  • 文件名在目录中查找对应的超级块,在超级块查找对应i节点,通过i节点存取文件数据
如果一个文件有多个数据块,这些数据块很可能不是连续存放的,应该如何寻址到每个块呢?实际上,根目录的数据块是通过其inode中的索引项Blocks[0]找到的,事实上,这样的索引项一共有15个,从Blocks[0]到Blocks[14],每个索引项占4字节。前12个索引项都表示块编号,例如上面的例子中Blocks[0]字段保存着24,就表示第24个块是该文件的数据块,如果块大小是1KB,这样可以表示从0字节到12KB的文件。如果剩下的三个索引项Blocks[12]到Blocks[14]也是这么用的,就只能表示最大15KB的文件了,这是远远不够的,事实上,剩下的三个索引项都是间接索引。
发表于 2015-07-13 20:26:35 回复(0)
(1)UNIX文件系统包括引导块、超级块、i节点区、文件存储区、进程对换区等几部分。
(2)引导块占用第0号物理块,不属于文件系统管辖,如果系统中有多个文件系统,只有根文件系统才有引导程序放在引导块中,其余文件系统都不使用引导块;
超级块占用第1号物理块,是文件系统的控制块,超级块包括:文件系统的大小、空闲块数目、空闲块索引表、空闲i节点数目、空闲i节点索引表、封锁标记等。超级块是系统为文件分配存储空间、回收存储空间的依据。i节点区存放i节点,i节点是对文件进行控制和管理的一种数据结构。文件存储区是存放文件内容的区域,文件存储区中各数据块的使用情况在超级块中由记录,系统利用超级块中的记录完成对数据块的分配和回收。i节点保存了文件的属性和类型、存放文件内容的物理块地址、最近一次的存取时间、最近一次的修改时间、创建此文件的时间。
(3)inode本身并不记录文件名,而是记录文件的相关的属性(在上文提到过的那些属性),文件名则记录在目录所属的块区域。正因为这个原因,使得如果Linux读取一个文件的内容,就要先由根目录/获取该文件的上层目录所在的inode,再由该目录所记录的的文件关联性获取该文件的inode,最后通过inode内提供的块指针来获取最终的文件内容。
发表于 2017-01-26 22:52:35 回复(1)
c
发表于 2015-03-04 23:08:53 回复(0)
选C
发表于 2015-02-25 23:59:22 回复(0)