文件系统管理


1.文件系统的实现
(1)目录实现(目录就是为了查找)
线性列表(链表和数组),哈希表

(2)文件实现(注意每一个表就是对外存的一次I/O操作)

2.文件分配方式:
连续分配--->记录起始块号和长度,将文件分成多个逻辑块,然后连续分配在磁盘的物理块,优点是支持顺序访问和直接访问,缺点是扩展文件不方便,有可能产生磁盘碎片(外部碎片:由于过小而不可用的外存)

链接分配--->记录起始和结束块号
隐式链接如下(不给文件分配表,通过当前块才能访问下一块):

说明:直接访问就是按磁盘的顺序对文件的分块位置进行访问,如上图1->10->7,要想访问7时必须访问10才能找到7,这个过程可能已经找到7很多次了

显示链接如下:

说明:a.前面的隐式链接是必须把第一个块读出来才能找到下一块,而显示链接有一个表来给出下一块的地址
b.显示链接就是典型的用空间换时间,通过对磁盘创建一个文件分配表,并将这个表加载到且需要常驻在内存中
c.一个磁盘只有一个文件分配表

索引分配--->对文件建立文件的索引表

如果索引表记录不完所有的块,就引入多级索引表,前一级记录下一级的地址

3.文件存储空间管理
空闲表法:建立空闲盘块表,将连续空闲块的首个块号和带上首个的连续总空闲块记录,适用于连续分配方式

空闲链表法:一种记录每个盘块,一种记录连续盘区

成组链接法

位示图法(所有盘块都列出来)

posted @   随笔小点  阅读(76)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示