0
点赞
收藏
分享

微信扫一扫

文件系统与文件系统管理以及RAID技术的思想


文件与文件系统



FCB(文件控制块)



文件是什么?



  • 文件是对    磁盘的抽象
  • 所谓文件    是指    一组带标识(标识即为文件名)的、在逻辑上有完整意义的信息项的序列。
  • 信息项:构成文件内容的基本单位(单个字节,或多个字节),各信息项之间具有顺序关系
  • 文件内容的意义:有文件建立者和使用者解释

文件系统:



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

文件的分类:



按文件性质和用途分类(UNIX)



    普通文件;目录文件;特殊文件(设备文件);管道文件;套接字



普通文件(regular)



  • 包含了用户的信息,一般为ASCII或二进制文件

目录文件(directory)



  • 管理文件系统的系统文件

特殊文件(special file)



  • 字符设备文件:和输入输出有关,用于模仿串行I/O设备,例如终端,打印机,网卡等,
  • 块设备文件:磁盘



文件属性:



  • 文件控制块
  • 为管理文件而设置的数据结构,保存管理文件所需的所有有关信息

(文件属性或元数据)



  • 常用属性
  • 文件名,文件号,文件大小,文件地址,创建时间,最后修改时间,最后访问时间,保护,口令创建者,当前拥有者,文件类型,共享计数,各种标志(只读、隐藏、系统、归档、ASCII/二进制、顺序/随机访问、临时文件、锁)

文件目录:



统一管理每个文件的元数据,以支持文件名到文件物理地址的转换。



将所有文件的管理信息组织在一起,即构成文件目录



目录文件



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

目录项:



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



与目录相关的概念:



  • 路径名(文件名)
  • 从根目录开始
  • 从当前目录开始
  • 当前目录/工作目录
  • 目录操作
  • 创建目录、删除目录
  • 读目录、写目录、改名、复制



连续结构的优缺点



优点:



  • 简单
  • 支持顺序存取和随机存取
  • 所需的磁盘寻道次数和寻到时间最少
  • 可以同时读入多个块,检索一个块也很容易

缺点:



  • 文件不能动态增长
  • 预留空间:浪费或    重新分配和移动



链接结构



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

优点:



  • 提高了磁盘空间利用率,不存在外部碎片问题
  • 有利于文件插入和删除
  • 有利于文件动态扩充

缺点:



  • 存取速度慢,不适于随机存取
  • 可靠性问题,如指针出错
  • 更多的寻道次数和寻道时间
  • 链接指针占用一定的空间



索引结构:



  • 一个文件的信息存放在若干不连续物理块中
  • 系统为每一个文件建立一个专用数据结构——索引表,并将这些物理块的块号存放在该索引表中
  • 索引表就是磁盘块地址数组,其中第i个条目指向文件的第i块

    优点:



保持了链接结构的优点,有解决了其缺点



  • 既能顺序存取,又能随机存取
  • 满足了文件动态增长、插入删除的要求
  • 能充分利用磁盘空间

缺点:



  • 较多的寻道次数和寻道时间
  • 索引表本身带来了系统开销
  • 如:内存、磁盘空间,存取时间

索引表的组织方式:



问题:索引表很大,需要多个物理块存放时怎么办?



  • 链接方式
  • 一个盘块存一个索引表,多个索引表连接起来
  • 多级索引方式
  • 将文件的索引表地址放在另一个索引表中
  • 综合模式
  • 直接索引方式    与    间接索引方式    结合



内存中所需的数据结构——以UNIX为例



  • 系统打开文件表
  • 整个系统一张
  • 放在内存:用于保存已打开文件的FCB



FBC(i节点)信息

引用计数

修改标记

  • 用户打开文件表



  • 每个进程一个
  • 进程的PCB中记录了用户打开文件表的位置上



文件描述符

打开方式

读写指针

系统打开文件表索引



目录文件实现时的改进



提问:如何加快目录检索?



一种解决方案:



目录项分解法:即把FCB分成两部分



  • 符号目录项
  • 文件名,文件号
  • 基本目录项
  • 除文件名外的所有字段

例子:UNIX的I节点(索引节点或inode)




UNIXwen文件系统



  • FCB=目录项+i节点
  • 目录项:文件名+i节点号
  • 目录文件由目录项构成
  • i节点:描述文件的相关信息
  • 每个文件由一个目录项、一个i节点和若干磁盘块构成



Windows——FAT16文件系统



  • 簇大小:1、2、4、8、16、32或64扇区
  • 文件系统的数据记录在“引导扇区”中
  • 文件分配表FAT的作用
  • 描述簇的分配状态、标注下一簇的簇号等
  • FAT表项:2字节
  • 目录项:32字节
  • 根目录大小固定

文件分配表FAT



  • 可以把文件分配表看成是一个整数数组,每个整数代表磁盘分区的一个簇号
  • 状态
  • 未使用、坏簇、系统保留、被文件占用(下一簇簇号)、最后一簇(0xFFFF)
  • 簇号从0开始编号,簇0和簇1是保留的



文件操作的实现



创建文件:



建立系统与文件的联系,实质是建立文件的FCB(文件控制块)



  • 在目录中为新文件建立一个目录项,根据提供的参数及需要填写相关内容
  • 分配必要的储存空间

打开文件:



  • 根据文件名在文件目录中检索,并将改文件的目录项读入内存,建立相应的数据结构,为后续的文件操作做好准备
  • 文件描述符/文件句柄



文件系统的管理


文件系统


可靠性:


抵御和预防各种物理性破坏和人为性破坏的能力


  • 坏块问题
  • 备份
  • 通过转储操作,形成文件或文件系统的多个副本。


文件系统备份:


全量转储:


  • 定期将所有文件拷贝到后援存储器

增量转储:


  • 只转储修改过的文件,即两次备份之间的修改,减少系统开销

物理转储:


  • 从磁盘第0块开始,将所有磁盘块按序输出到磁带

逻辑转储:


  • 从一个或几个指定目录开始,递归地转储自给定日期后,所有更改的文件和目录。

文件系统一致性:


问题的产生:


  • 磁盘——>内存——>写会磁盘块
  • 若在写回之前,系统崩溃,则文件系统出现不一致

解决方案:


  • 设计一个使用程序,当系统再次启动时,运行该程序,检查磁盘块和目录系统


文件系统的写入策略:


通写


  • 内存中的修改立即写到磁盘

缺点:速度性能差


例:FAT文件系统


延迟写


  • 利用回写缓存的方法得到高速
  • 可恢复性差

可恢复写


  • 采用事务日志来实现文件系统的写入
  • 既考虑安全性,有考虑速度性能。
  • 例:NTFS

文件的安全性


文件保护机制


  • 用于提供安全性、特定的操作系统机制
  • 对拥有权限的拥护,应该让其进行相应操作,否则,应禁止
  • 防止其他用户冒充对文件操作


UNIX的文件访问控制


  • 采用文件的二级存取控制
  • 审查用户的身份、审查操作的合法性


文件系统与文件系统管理以及RAID技术的思想_操作系统



文件系统与文件系统管理以及RAID技术的思想_高速缓存_02



文件系统的性能问题


磁盘服务


—》速度成为系统性能的主要瓶颈之一



设计文件系统应尽可能减少访问次数



提高文件系统性能的方法:


  • 目录项(FCB)分解、当前目录、磁盘碎片整理、块高速缓存、磁盘调度、提前读取、合理分配磁盘空间、信息的优化分布、RAID技术.......


详细如下:



块高速缓存


又称为文件缓存、磁盘高速缓存、缓冲区高速缓存


是指:在内存中为磁盘块设置的一个缓存区,保存了磁盘中某些块的副本


  • 检查所有的读者请求,看所需块是否在高速缓存
  • 如果在,则可直接进行读写操作;否则,先将数据读入块高速缓存,再拷贝到所需的地方

关于实现:


  • 块高速缓存的组织
  • 块高速缓存的置换(修改LRU)
  • 块高速缓存写入策略


提前读取:


  • 思路:每次访问磁盘,多读入一些磁盘块
  • 依据:程序执行的空间局部性原理
  • 开销:较小(只有数据传输时间)
  • 具有针对性


Windows的文件访问方式


不使用文件缓存


  • 普通方式
  • 通过Windows提供的FlushFileBuffer函数实现

使用文件缓存


  • 预读取。每次读取的块大小、缓冲区大小、置换方式

异步模式


  • 不再等待磁盘操作的完成
  • 使处理器和I/O并发工作

用户对磁盘的访问通过访问文件缓存 来实现


  • 由Windows的Cache Manager实现对缓存的控制
  • 读取数据的时候预取
  • 在Cache满时,根据LRU原则清除缓存的内容
  • 在定期更新磁盘内容使其与Cache一致(1秒)

Write-back机制


  • 在用户要对磁盘写数据时,只更改Cache中的内容,由Cache Manager决定何时将更新反映到磁盘

合理分配磁盘空间:


  • 分配磁盘块时,把有可能顺序存取的块放在一起
  • ——>尽量分配在同一柱面上,从而减少磁盘臂的移动次数和距离


磁盘调度


  • 当有多个访盘请求等待时,采用一定的策略,对这些请求的服务顺序调整安排
  • ——》降低平均磁盘服务时间,达到公平、高效
  • 公平:一个I/O请求在有限时间内满足
  • 高效:减少设备机械运动带来的时间开销


文件系统与文件系统管理以及RAID技术的思想_高速缓存_03



RAID技术的思想


数据是如何组织的?


  • 通过把多个磁盘组织在一起,作为一个逻辑卷提供磁盘跨越功能
  • 通过把数据分成多个数据块,并行写入/读出多个磁盘,以提高数据传输率(数据分条stripe)
  • 通过镜像或校验操作,提供容错能力


RAID 0——条带华


主体思想—— 无冗余(即无差错控制)性能最佳


  • 数据分布在阵列的所有磁盘上
  • 有数据请求时,同时多个磁盘并行操作
  • 充分利用总线带宽,数据吞吐率提高,驱动器负载均衡

RAID 1——镜像


主体思想——数据安全性最好


  • 最大限度保证数据安全及可恢复性
  • 所有数据同时存在于两块磁盘的相同位置
  • 磁盘利用率%50

RAID 4 交错块奇偶校验


  • 带奇偶校验
  • 以数据块为单位
举报

相关推荐

0 条评论