11 文件系统

基本概念

文件&文件系统

  1. 文件系统:一种用于持久性存储的系统抽象
  2. 文件:文件系统一个单元的相关数据在OS的抽象(包含文件名、文件数据、属性等)
  3. 文件属性:名称、类型、位置、大小、保护、创建者等
  4. 文件头
    • 在存储元数据中保存了每个文件信息
    • 保存文件属性
    • 跟踪哪一块存储块属于逻辑上文件结构的哪个偏移

文件描述符

  1. 文件使用模式:使用程序必须在使用前“打开”文件,获得文件描述符 f(整数)

    f = open(name, flag);
    ...
    ... = read(f, ...);
    ...
    close(f);
    
  2. 内核跟踪每个进程打开的文件

    • OS为每个进程维护一个 打开文件表
    • 一个打开文件描述符是这个表中的索引
  3. 需要元数据管理文件

    • 文件指针:指向最后一次文件访问位置
    • 文件打开计数:记录文件打开次数 → 当最后一个进程关闭文件,允许将其从打开文件表移除
    • 文件磁盘位置:缓存数据访问信息
    • 访问权限

目录

image-20200918185616016

image-20200918191346403

image-20200918191421027

image-20200918191437537

image-20200918191459148

文件别名

image-20200918191541610

image-20200918192348994

image-20200918192423922

不同的文件系统

image-20200918195317235

image-20200918195737110

虚拟文件系统

image-20200918201221158

image-20200918201508068

image-20200918201646228

image-20200918202058951

image-20200918202038922

数据块缓存

image-20200918202743075

image-20200918203207874

image-20200918203316192

image-20200918203456147

打开文件的数据结构

image-20200919084504500

image-20200919084548480

image-20200919084629461

文件分配

image-20200919090611989

image-20200919090629445

  1. 连续/顺序分配

    image-20200919090720165

  2. 链式分配
    image-20200919090814085

  3. 索引分配
    image-20200919090838463

    image-20200919090904869

    Unix系统索引存储

image-20200919090944259

空闲空间列表

image-20200919091257406

image-20200919091931662

分配block、内存置1后掉电而磁盘块未置1的解决方法:

image-20200919091954254

多磁盘管理 - RAID

image-20200919095612696

image-20200919100023377

RAID 0:

image-20200919100112950

RAID 1:

image-20200919100247752

RAID 4:(奇偶校验块频繁写)

image-20200919100350070

RAID 5:(将奇偶校验平均分配到5个盘)

image-20200919100557990


校验方式:(以bit/byte/block?)

image-20200919100852718

image-20200919101010510

image-20200919101059472

磁盘调度

  1. 目的:减少磁盘寻道开销

  2. image-20200919103908753

    image-20200919103957855

    image-20200919104023201

    FIFO:

    image-20200919104040529

    最短服务优先:

    • 可能导致饥饿

image-20200919104310167

SCAN算法:

image-20200919104431006

C-SCAN算法:

image-20200919104509946

C-LOOK:

image-20200919104657807

N-STEP-SCAN:

image-20200919104736255

FSCAN算法(现代OS常见):

image-20200919104856414

posted @ 2022-02-16 14:14  DreamEagle  阅读(27)  评论(0编辑  收藏  举报