文章目录
- 总览
- 文件块和磁盘块
- 连续分配
- 顺序访问
- 直接访问(随机访问)
- 为什么连续分配同时支持这两种访问模式?
- 链接分配
- 隐式链接
- 显示链接
- 小结
- 索引分配
- 链接方案
- 多层索引
- 混合索引
- 小结
- 总结
总览
文件数据存放在外存中
文件块和磁盘块
文件内通过逻辑块号和块内地址定位到文件内的任何位置
连续分配
逻辑块号类似偏移
连续分配是一种文件存储策略,在这种策略下,文件的各个部分被存储在磁盘或其他存储介质上的连续块中。这种存储方式支持两种类型的访问:顺序访问和直接访问。
顺序访问
连续分配非常适合顺序访问,因为在连续分配中,文件的块是连续的,这意味着当从文件的开头开始读取时,磁头可以从第一个块一直连续读取到文件的末尾,而不需要在磁盘上进行额外的寻道动作。由于磁盘寻道时间是磁盘访问延迟的主要来源之一,连续访问减少了这种延迟,从而提高了读取速度。
直接访问(随机访问)
直接访问是指能够立即访问文件中的任意位置的能力。在连续分配中,如果知道了文件的第一个块的地址,那么文件中任何块的地址都可以通过简单的数学计算得出。这是因为每个块都有固定的大小,所以只需要知道块的编号(相对于文件起始块的偏移量),乘以块的大小,就可以计算出该块在磁盘上的绝对位置。这使得即使是在文件的中间或末尾读取数据,也可以快速定位到正确的磁盘位置,而无需从文件的开头开始顺序读取。
为什么连续分配同时支持这两种访问模式?
连续分配之所以能同时支持顺序访问和直接访问,是因为它的数据布局特性。文件的连续存储允许顺序读取时避免不必要的寻道,而固定的块大小和位置关系使得可以根据块号直接计算出物理地址,从而支持直接访问。这种灵活性使得连续分配在很多应用中非常有效,尤其是那些既需要快速顺序读取又需要随机访问的场景,如数据库和多媒体文件。
连续分配的 文件磁盘块相邻,移动距离短
扩展也需要连续,有时需要迁移
紧凑需要移动磁盘块内容,耗费时间
链接分配
隐式链接
访问第几个逻辑块就是第几个指针,零号逻辑块就是起始块
尾部增加一个链表节点就行,然后修改FCB
显示链接
链接各个文件的指针没放在块里,而放到一张表
隐含的原因就是按顺序存储每个物理块对应的下一块,所以不需要再标明物理块号了
零号代表起始块号对应的物理块,大于零意味着需要寻找下一块
小结
索引分配
文件名->FCB中的索引块->内存中的索引表->逻辑块号(隐藏)->物理块号
24位<2的30次方<32位
拓展通过往索引表添加即可
当一个磁盘块对应的索引表装不下文件所有物理块时
链接方案
一个文件对应多个索引块,通过链表形式连接,FCB只需记录第一个索引块号
读入索引块然后确定嗲一个索引块
多层索引
但文件的块比较暗小的时候,多层索引有点浪费了,而且还需要多次读磁盘
混合索引
小结
总结
FCB就是目录项内容