文件系统总结1

文件与文件系统

文件是对磁盘的抽象

所谓文件是指一组带标识(标识即为文件名)的,在逻辑上有完整意义的信息项的序列

信息项:构成文件内容的基本单位(单个字节,或多个字节),各信息项之间具有顺序关系

文件内容的意义:由文件建立者和使用者解释



如何设计一个文件系统

需求分析


文件系统

定义:操作系统中统一管理信息资源的一种软件,管理文件的存储,检索,更新,提供可靠安全的共享和保护手段,并且方便用户使用


关注点:文件系统实现文件的按名存取
                名字空间---------磁盘空间
文件系统的性能影响了整个操作系统的性能。

文件的分类



         目录文件是操作系统为了管理文件系统而建立的系统文件
         UNIX系统中把设备当文件来处理,形成了特殊文件,因为各种设备品种繁多,抽象成文件之后,对于设备的操作就是对文件的操作,那样打印就是对文件的写操作,读键盘就成了对文件的读操作。

文件的逻辑结构

从用户角度看文件,由用户的访问方式确定


典型的文件逻辑结构与文件存取


(a) 流式文件:构成文件的基本单位是字符
文件是有逻辑意义,无结构的一串字符的集合

(b)记录式文件:文件由若干个记录组成,可以按记录进行读,写,查找等操作
    每条记录有其内部结构




文件的存储介质

存储介质与物理块
1、典型的存储介质
     磁盘(固态盘),磁带,光盘,U盘....
2、物理块(块,簇)
      物理块是信息存储,传输,分配的独立单元
      存储设备划分为大小相等的物理块,并统一编号

典型的磁盘结构



扇区的大小是 10+512+12个字节

磁盘的访问

一次访盘请求:
比如说 从磁盘读数据到内存,那么需要提供的信息有:
读操作,磁盘地址包括(设备号(哪几块盘),柱面号(磁道号),磁头号,扇区号),内存地址(目标地址)

完成访问磁盘需要三个动作完成:
1.寻道时间:磁头移动定位到指定磁道
2.旋转延迟:等待指定扇区从磁头下旋转经过
3.数据传输:数据在磁盘与内存之间的实际传输

SSD时间 没有寻道时间和旋转延迟,只有数据传输时间

磁盘空间管理

相应的数据结构


磁盘地址与块号的转换:


成组链接法设计思想




文件属性

文件控制块(File Control Block)FCB
为管理文件而设置的数据结构,保存管理文件所需的所有有关信息(文件属性或元数据)
元数据是数据的数据,为管理文件,我们有相应的信息,这些信息以文件的形式保存在磁盘上。

文件地址:文件在磁盘上的物理地址

           


文件目录,目录项与目录文件

文件目录:统一管理每个文件的元数据,以支持文件名到文件物理地址的转换。将所有文件的管理信息组织在一起,即构成文件目录。

目录文件:将文件目录以文件的形式存放在磁盘上

目录项:构成文件目录的基本单元  目录项可以是FCB,目录是文件控制块的有序集合


我们现在使用的是树形目录结构


与目录相关的概念

路径名(文件名)

绝对路径名:从根目录开始

相对路径名:从当前目录开始


当前目录/工作目录:当前进程使用的目录


目录操作:

创建目录,删除目录

读目录,写目录,改名,复制

目录文件之间的关联



文件的物理结构

1、连续结构(顺序结构)
文件的信息存放在若干连续的物理块中
在FCB当中,只有记录第一块的块号,和文件的块长度
优点:支持顺序存取和随机存取
            所需的磁盘寻道次数和寻道时间最少
缺点: 文件不能动态增长
             不利于文件的删除 插入
             容易产生外部碎片



链接结构:

一个文件的信息存放在若干不连续的物理块中,各块之间通过指针连接,前一个物理块指向下一个物理块

FCB中,只需要记录第一块的块号,起始块号即可。

链接结构的优缺点:
1、提高磁盘的优缺点,不存在外部碎片的问题
2、有利于文件的插入,删除
3、有利于文件的动态扩充

缺点:
1、不适于随机存取,存取速度慢
2、可靠性问题,如指针出错
3、物理块分散,需要更多的寻道次数和寻道时间
4、链接指针占用一定的空间

链接结构的一个变形:文件分配表 FAT

其基本思想是:链接指针不放在块里面,而是把所有的链指针集中在一起,放在一块表里面,那块表就是FAT表



解释:每个物理块号对应Physical block表里面的一项,文件A的第一块在块号4,第二块在块号7,第三块在块号2,第四块在块号10,第五块在块号12,。

有了FAT,那么文件的起始块号就可以记录在FCB中,比如在文件A的FCB只需记录块4

索引结构


在文件的FCB中只需存储索引表的位置


解释:索引表放在块24中,所以文件的FCB只需要记录索引表的块号24即可。在块24里面存放了索引表


索引表的组织方式





UNIX的三级索引结构


采用这种结构 物理块最大可以到多大?


所以最大的块数可以达到:12+256+256*256+256*256*256个块


文件系统的实现



相关术语:

1、磁盘分区(partition):把一个物理磁盘的存储空间划分为几个相互独立的部分,称为分区。

2、文件卷(volume):磁盘上的逻辑分区,由一个或多个物理块(簇)组成

•一个文件卷可以是整个磁盘或部分磁盘或垮盘(RAID)。

同一个文件卷中使用同一份管理数据进行文件分配和磁盘空闲空间管理,不同的文件卷中的管理数据是相互独立的

一个文件卷上:包括文件系统信息、一组文件(用户文件、目录文件)、未分配空间。

•块(Block)或簇(Cluster):一个或多个(2的幂)连续的局区,可寻址数据块

3、格式化:在一个文件卷上建立文件系统,即建立并初始化用于文件分配和磁盘空闲空间管理的管理数据(元数据)


磁盘上的内容




内存所需的数据结构

以UNIX为例

系统打开文件表

整个系统一张

放在内存:用于保存已打开文件的FCB


引用计数是为了共享,多个进程打开同一个文件,那么值修改引用计数,而不在系统打开文件表中存放多项。修改标识,若FCB被改变,则FCB还要写回磁盘


用户打开文件表

每个进程一个

进程的PCB中记录用户打开文件表的位置


文件描述符是一个整数:标准输入文件,标准输出文件,标准错误文件,分配0,1,2。所以打开其他文件的文件描述符从3开始分配。打开方式,以读的方式,以写的方式打开。

系统打开文件表让进程能找到系统打开文件表,让系统能找到对应文件的FCB


文件目录检索


如何加快目录检索





分解前目录文件占13块,所有,假设每块都在不连续的地方,所有,平均的访盘次数为(1+13)/2=7

分解后符号文件占2块,基本文件占11块,所以先在符号文件找到文件号,需要访盘次数(1+2)/2=1.5,找到文件号后必须访问基本文件一次,1.5+1=2.5























  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值