• 2022-06-08
    一个文件有100个磁盘块,假设文件控制块在内存(如果文件采用索引分配,索引表也在内存)。在下列情况下,请计算在连续分配、链接分配、单级索引分配三种分配方式下,分别需要多少次磁盘I/O操作?每读入一个磁盘块需要一次磁盘I/O操作。假设在连续分配方式下,文件头部无空闲的磁盘块,但文件尾部有空闲的磁盘块。 (1)在文件开始处删除一个磁盘块; (2)在文件结尾处添加一个磁盘块。
  • 【解】 下面均假设文件块的逻辑编号从0开始。 (1)在文件开始处删除一个磁盘块:连续:198 链接:1 索引:0 a)连续分配:为了保证题目中提到的文件头部无空闲块,但文件尾部有空闲块,从1号文件块开始,到99号文件块,均要向前移动一个位置。首先移动1号块,读入1号块到内存,再从内存把1号块写到原先0号块的位置;再读入2号块到内存,从内存把2号块写到原先1号块的位置;……;直到读入99号块到内存,再从内存把99号块写到原先98号块的位置。每次读入和写出都是1次IO,所以一共是:99 * 2 = 198次磁盘IO。 b)链接分配:要修改文件控制块(FCB)中文件起始块号字段,将原先0号块所在的物理块号改为1号块所在的物理块号。要完成这个操作,首先要找到1号块在哪个物理块上?1号块在哪里的信息隐含在0号块中,因此需要读入0号块到内存,得到1号块的物理位置信息,再将这个信息写到FCB中。由于题目中说明FCB在内存,所以需要1次磁盘IO(读入0号块)即可完成要求。 c)索引分配:要修改FCB中的信息,且仅仅需要修改FCB中的信息。由于题目中说明FCB在内存,所以完成要求不需要任何磁盘读写。 (2)在文件结尾处添加一个磁盘块:连续:1 链接:102 索引:1 a) 连续分配:由于文件尾部有空闲块,只需要将添加的块直接写到磁盘上,所以需要1次磁盘IO。 b) 链接分配:此时假设FCB的字段有:文件名、起始块号、结束块号。也就是说,目前知道99号块的物理磁盘位置。此时,在尾部添加一个磁盘块要做的事情是:① 找一个空闲磁盘块,将内容写入;② 修改99号块的链接信息。写入新块需要1次磁盘IO,修改99号块的链接信息需要首先读入99号块到内存,在内存中将链接信息改为新块的物理位置,再将内存中99号块写出到磁盘上。所以一共是3次磁盘IO。 c) 索引分配:在写入新块之后,要修改FCB中的信息。由于题目中说明FCB在内存,所以只需要1次磁盘IO(写新块)即可。

    举一反三

    内容

    • 0

      在文件的索引节点中存放直接索引指针 10 个,一级和二级索引指针各 1 个。 磁盘块大小为 1KB, 每个索引指针占 4 个字节。若某文件的索引节点已在内存中, 则把该文件偏移量(按字节编址)为 1234 和 307400 处所在的磁盘块读入内存,需访问的磁盘块个数分别是( )。 A: 1,3 B: 2,4

    • 1

      考虑一文件存放在100个数据块中,文件控制块、索引块或索引信息都驻留内存。那么,如果( ),不需要做任何磁盘I/O操作。 A: 采用contiguous allocation策略,将最后一个数据块搬到文件头部 B: 采用single level indexed allocation策略,将最后一个数据块插入文件头部 C: 采用linked allocation策略,将最后一个数据块插入文件头部 D: 采用linked allocation策略,将第一个数据块插入文件尾部

    • 2

      下列选项中,可用于文件系统管理空闲磁盘块的数据结构是()。 (1)位图(2)索引结点(3)空闲磁盘块链(4)文件分配表(FAT) A: 仅(1)、(2) B: 仅(1)、(3)、(4) C: 仅(1)、(3) D: 仅(2)、(3)、(4)

    • 3

      某文件系统采用单级索引文件结构,假定文件索引表的每个表项占3个字节存放一个磁盘块的块号,磁盘块的大小为512B。以下描述正确的是()。

    • 4

      某文件系统空间的最大容量为4TB (1TB=240),以磁盘块为基本分配单元。磁盘块大小为IKB。文件控制块(FCB) 包含一个512B的索引表区。请回答下列问题。1)假设索引表区仅采用直接索引结构,索引表区存放文件占用的磁盘块号,索引表项中块号最少占多少字节?可支持的单个文件最大长度是多少字节?2)假设索引表区采用如下结构:第0~7字节采用<;起始块号,块数>;格式表示文件创建时预分配的连续存储空间。其中起始块号占6B,块数占2B;剩余504字节采用直接索引结构,一个索引项占6B,则可支持的单个文件最大长度是多少字节?为了使单个文件的长度达到最大,请指出起始块号和块数分别所占字节数的合理值并说明理由。