哈工大-操作系统L31

目录与文件系统

一.文件系统

将整个磁盘按照一定的方式存放一定的信息最后形成这样一个文件系统,磁盘是一堆盘块,这一堆盘块要存放各种信息,这些信息经过操作系统读取维护之后形成这个样子的文件系统.

用户给出使用接口的方式操作系统负责拿到这个方式,根据磁盘块上维护的这些抽象关系(映射),来把用户抽象的使用落实为盘块的读写

可以在不同的操作系统上使用

二.目录树

目录树由多个文件组织结构

用户从上层发下来的是路径名

将所有文件的FCB存放到目录下,找到目录之后挨个匹配,这种方法太慢了,通过匹配目录名字符串来找到,根据这个字符串找到这个字符串所对应的FCB

因为不知道文件的位置需要将所有的序队读到内存中跟字符串匹配,读进来只需要匹配字符串,FCB是没有用的,因为只匹配一个目录,把那个一个取出来就可以了,现在为了这样做把所有的序对都读进来了,FCB比较大

要存放字符串,不要存放FCB,FCB太大了,还要在匹配成功之后找到对应的FCB,根据编号(指针)找到磁盘上的FCB

根据根目录的FCB存放的i_zone(索引项)找到数据块,数据块就根目录存放的内容,目录项和编号,

根据编号和FCB数组就可以算出到各个目录或文件的位置

根目录是0,放在固定的位置,第一个位置,磁盘格式化的时候记录第一个位置,这个位置的位置在一个固定的位置,读整个磁盘,只要读磁盘就可以找到跟目录,根目录放在inode数组中的第一项(i节点),不可以在第一块上,前面还需要存放一些信息,磁盘的大小,存放的文件数目

inode位图,管理inode(文件),建一个文件对应inode位置成1删除一个文件置成0

盘块位图,管理盘块大小,要读要写要分配要释放

超级块,超级块是位置固定的,向后读得到inode位图和盘块位图的位置,在加上超级块,解析之后就可以找到根目录,就可以得到根目录,比如超级块是4,inode位图是x,盘块位图是y,4+x+y=根目录

还可以这两个位图读写文件修改文件删除文件新建文件

相关推荐
瞬间&永恒~2 分钟前
【MySQL】 InnoDB 锁等待排查与并发压测实验
运维·数据库·mysql
zcmodeltech13 分钟前
智能矿井沙盘模型多系统协同控制系统设计:基于STM32与Modbus RTU的感知-传输-控制一体化方案
服务器·数据库·分布式·stm32·单片机·嵌入式硬件
江湖有缘24 分钟前
Docker实战 | 使用Docker部署Donetick任务与家务管理应用
运维·docker·容器
实心儿儿33 分钟前
Linux —— 应用层协议HTTP
linux·网络·http
流星白龙37 分钟前
【Docker】4.NameSpace空间隔离实战
java·运维·docker
有续技术1 小时前
哈斯 (Haas) 机床 IP、端口号配置内容总结
运维·服务器
小张同学a.2 小时前
LAMP架构2
linux·运维·网络·架构·负载均衡
千河殇 多想和她2 小时前
如何在Reaonix中使用CodeGraph以及CodeGraph效果实测经验分享
linux·运维·ubuntu
VortMall2 小时前
出海引流运维双升级|VortMall微服务商城系统v1.3.12 升级更新
运维·微服务·facebook
心念枕惊2 小时前
新写了个直播录制工具,可录制抖音快手斗鱼直播
运维·服务器·数据库