Modern OS & OS Concept -文件系统(fil

2021-10-28  本文已影响0人  1哥

Modern OS & OS Concept -文件系统(file system)

1.背景

所有应用有存取信息的需求。存取信息的第一个问题是,进程运行的时候,它能存储有限数量的信息于它自己的地址空间中,这个存储的容量受限于虚拟地址空间的大小。但是对于某些应用来说远远不够。
第二个问题是保存进程地址空间的信息:进程正常运行结束后,保存在进程地址空间的信息会丢失。进程有些信息需要长久保存,甚至由于计算机崩溃而杀死进程,这个信息也不能丢失。
第三个问题,多个进程能同时访问这个信息。如果信息存在进程的地址空间,只有这个进程能访问。需要解决这个问题让信息本身独立于任何一个进程。
因此,对于长期信息存储,有三个必不可少的的要求:

磁盘

但这些操作方式在大型的有需要应用程序和需要用户使用的系统中,都极其不方便。几个关键问题:

正如OS 从处理器概念抽象创建进程,从物理内存概念抽象出提供进程虚拟地址空间一样。OS 解决这个问题采用一种新的抽象:文件。进程,地址空间,文件是OS最重要的概念。

进程创建文件,磁盘上存放大量文件;
OS(文件系统)负责管理文件;

2.用户视角

2.1 文件命名

2.2 文件结构

image.png

字节序列

固定长度的记录

树形结构

2.3 文件类型

2.4 文件属性-metadata

文件除了名字和文件中的数据外,还有相关其他的信息,文件属性。


image.png

2.5文件操作

create,delete,open,close,read,write,oppend,seek,get attributes,set attributes,rename

2.7 目录

层级结构

目录操作

create. delete, opendir, closedir, readdir, rename, link, unlink

3.文件系统实现

用户关心文件命名,可以对文件进行的操作,目录树长什么样及对目录的操作。文件系统的实现则关心文件和目录如何存储,磁盘恐怕如何管理,如何让每件事情工作得高效可靠。

3.1 文件系统layout

3.2 文件的实现

image.png image.png image.png

3.3 目录的实现

3.4 日志结构文件系统(Log-structured FS)

3.5 日志文件系统(Journaling FS)

在对文件系统的采取每一个动作前先记录一个日志,写到磁盘里,然后再执行这个动作 ,完成这个动作后,清除掉这个日志
系统崩溃发生在执行之前,可以重启后重新执行日志里的动作

4.文件系统管理和优化

4.1 磁盘空间管理

4.2文件系统效率和性能

效率依赖

性能

4.3 文件系统恢复

上一篇下一篇

猜你喜欢

热点阅读