文件系统管理
1.文件系统的实现
(1)目录实现(目录就是为了查找)
线性列表(链表和数组),哈希表
(2)文件实现(注意每一个表就是对外存的一次I/O操作)
2.文件分配方式:
连续分配--->记录起始块号和长度,将文件分成多个逻辑块,然后连续分配在磁盘的物理块,优点是支持顺序访问和直接访问,缺点是扩展文件不方便,有可能产生磁盘碎片(外部碎片:由于过小而不可用的外存)
链接分配--->记录起始和结束块号
隐式链接如下(不给文件分配表,通过当前块才能访问下一块):
说明:直接访问就是按磁盘的顺序对文件的分块位置进行访问,如上图1->10->7,要想访问7时必须访问10才能找到7,这个过程可能已经找到7很多次了
显示链接如下:
说明:a.前面的隐式链接是必须把第一个块读出来才能找到下一块,而显示链接有一个表来给出下一块的地址
b.显示链接就是典型的用空间换时间,通过对磁盘创建一个文件分配表,并将这个表加载到且需要常驻在内存中
c.一个磁盘只有一个文件分配表
索引分配--->对文件建立文件的索引表
如果索引表记录不完所有的块,就引入多级索引表,前一级记录下一级的地址
3.文件存储空间管理
空闲表法:建立空闲盘块表,将连续空闲块的首个块号和带上首个的连续总空闲块记录,适用于连续分配方式
空闲链表法:一种记录每个盘块,一种记录连续盘区
成组链接法
位示图法(所有盘块都列出来)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!