当前位置:网站首页 > 更多 > 玩电脑 > 正文

[操作系统] 操作系统13-文件系统

作者:CC下载站 日期:2020-04-02 17:20:28 浏览:74 分类:玩电脑

文件系统和文件

一种持久性存储的系统抽象。

文件头

储存文件信息,保存文件属性,跟踪那一块储存块属于逻辑上文件结构的哪一个偏移。

需要哪些元数据来管理打开的文件

文件指针,文件打开计数,文件储存位置,访问权限

访问2-12字节的空间

读一个或者多个扇区,然后返回

访问方式

基于顺序一次读取,随机访问,基于内容查找的访问

文件类型

操作系统不关心

文件的锁

锁粒度?操作系统提供了不同的锁

目录

目录是特殊的文件,每个目录都有一张表

目录如何存

数组、链表、hash、其他数据结构都可以

名字解析

一层一层解析,为了提高效率,可以使用当前工作目录(缓冲)

文件系统挂载

mount和unmount

文件别名

硬链接: 多个文件项指向一个文件 软链接: 存路径,

删除文件

引用计数 stat指令 间接层,目录项数据结构存指针,根据指针来定位

如何避免目录死循环

通过检测来避免死循环

文件系统的类别

磁盘文件系统 FAT,NTFS,ext2/3/4,ISO9660等 数据库文件系统 WinFs 日志文件系统 journaling file system 网络文件系统 NFS,SMB(局域网方便), 分布式文件系统 GFS(google的集群,高吞吐,容错,高可靠,大量数据,server,网络中心,数据中心,计算中心),AFS 虚拟文件系统 proc(内核信息通过文件的方式来展现)

分布式文件系统

读写一致性,可靠性,安全性,访问延迟都要考虑,是当前研究的热点

虚拟文件系统

通过虚拟文件系统层屏蔽了底层不同的物理文件系统, 卷 - 目录节点 - 文件节点

数据块缓存

将磁盘缓存到内存,可以按需读取,推迟写入,

打开文件的数据结构

找到文件,放入文件表,通过index找到文件头,通过offset找到扇区,

文件大小

大部分文件小,少部分文件大,

文件的连续分配

文件头指定起始块和长度,高效的顺序和随机访问,当文件增长的时候不好分配,可能需要预分配, 分配策略有最先、最佳、最大分配方法

文件链式分配

用链表组织,创建增大缩小很容易,没有碎片,不可能实现高效的随机访问,不可靠,链断了以后很严重

文件索引分配

将索引放入文件头,创建增大缩小容易,没有碎片,可以直接访问,但是小文件的话索引开销太大。

多级索引块

对索引分层,但是会引入更多的时间开销

空闲空间

位图,如何解决一致性问题,先将bit设为1,然后分配,最后在内存中将bit设为1 , 如果这里断电以后会导致那一部分磁盘空间无法使用

多磁盘管理

用多个便宜的磁盘,通过并行来增加吞吐量和可靠性可用性,即冗余磁盘阵列,可以让硬件实现,也可以让软件实现。

奇偶校验磁盘

我们使用纠错码,将纠错码存到另一个磁盘里面,用于纠错,但是这就导致了奇偶校验磁盘的压力太大了,大家都要来访问他,我们其实可以让奇偶校验的块均匀分布到所有的阵列当中,就提高了效率

磁盘调度

先进先出,最少移动优先(导致饥饿),磁壁仅向一个方向移动(到达最边缘的之后立刻反转),磁盘分区(区内部使用单向移动,区之间使用先进先出)

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯