操作系统-文件系统

136 阅读3分钟

笔记大纲

  • 文件和文件结构
  • 文件的访问
  • 目录
  • 文件系统的实现
  • 虚拟文件系统

1.文件和文件结构

文件是进程创建的信息逻辑单元,一个磁盘上含有成千上万个文件,每个文件是独立于其它文件的,文件是持久化在硬盘之上,每一个文件对应了磁盘上唯一的地址空间。文件是受到操作系统管理的,有关文件的构造、命名、访问、使用、保护都是通过操作系统管理,其中管理文件的部分称之为文件系统

1.1 文件命名

文件是一种抽象机制,它提供了一种在磁盘上保存信息并且方便后续读取的方式,文件的具体命名规则不同的操作系统规则不尽相同,有些文件系统区分字母大小写,也有不同的位数限制。

1.2 文件结构

文件可以有多种构造方式,常见的有3种:字节序列、记录序列、树 image.png

1.3 文件类型

        - 普通文件
        - 目录
        - 字符特殊文件
        - 块特殊文件

image.png

1.4 文件访问

        - 顺序访问
        - 随机访问

1.5 文件属性

        - 保护:谁可以访问文件
        - 口令
        - 创建者
        - 所有者
        - 只读标志
        - 隐藏标志
        - 系统标志
        - 存档标志
        - ASCII/二进制标志
        - 随机访问标志
        - 临时标志
        - 加锁标志
        - 记录长度
        - 最后一次修改时间
        - 创建时间
        - 当前大小

1.6 文件操作

        - `create`:创建一个不包含任何数据的文件
        - `delete`:删除文件
        - `open`:使用文件之前需要打开文件
        - `close`:不需要访问文件时需要关闭文件
        - `read`:在文件中读取数据
        - `write`:向文件写入数据
        - `append`:向文件末尾追加数据
        - `seek`:随机指定开始访问点

2.目录

2.1 一级目录系统/根目录

2.2 层次目录系统

绝对路径相对路径 image.png

3.文件系统的实现

3.1 文件系统的布局

image.png 主引导记录:Master boot record (MBR),用来引导计算机,计算机BIOS系统读入并执行MBR。 超级快:文件系统的元数据,在系统启动时读入内存,包括文件系统类型、魔数、块数量等。

3.2 文件的实现

3.2.1 连续分配

快捷磁盘碎片

3.2.2 磁盘块分配(链表)

额外指针空间避免磁盘碎片

3.2.3 文件分配表 FAT(链表)

基于内存

3.2.4 i节点

比FAT小超额文件处理复杂

3.3 空闲空间管理

3.3.1 位图法

3.3.2 链表法

3.4 块高速缓存 Block Cache/缓冲区高速缓存 Buffer Cache

操作系统为了减少磁盘的访问次数,在内存汇中有一块缓冲区域保存着磁盘的读取数据

3.4.1 缓冲淘汰

           - FIFO算法
           - LRU、近似LRU算法
           - 第二次机会

3.5 块提前读/预读

局部性原理的应用。

4.虚拟文件系统 Virtual File System(VFS)

暂时用老师画的图,这个图比较详细(引自 - 图灵课堂)