文件系统与文件系统管理以及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的文件访问控制
  • 采用文件的二级存取控制
  • 审查用户的身份、审查操作的合法性

文件系统的性能问题
磁盘服务
—》速度成为系统性能的主要瓶颈之一
设计文件系统应尽可能减少访问次数
提高文件系统性能的方法:
  • 目录项(FCB)分解、当前目录、磁盘碎片整理、块高速缓存、磁盘调度、提前读取、合理分配磁盘空间、信息的优化分布、RAID技术.......
详细如下:
块高速缓存
又称为文件缓存、磁盘高速缓存、缓冲区高速缓存
是指:在内存中为磁盘块设置的一个缓存区,保存了磁盘中某些块的副本
  • 检查所有的读者请求,看所需块是否在高速缓存
  • 如果在,则可直接进行读写操作;否则,先将数据读入块高速缓存,再拷贝到所需的地方
关于实现:
  • 块高速缓存的组织
  • 块高速缓存的置换(修改LRU)
  • 块高速缓存写入策略
提前读取:
  • 思路:每次访问磁盘,多读入一些磁盘块
  • 依据:程序执行的空间局部性原理
  • 开销:较小(只有数据传输时间)
  • 具有针对性
Windows的文件访问方式
不使用文件缓存
  • 普通方式
  • 通过Windows提供的FlushFileBuffer函数实现
使用文件缓存
  • 预读取。每次读取的块大小、缓冲区大小、置换方式
异步模式
  • 不再等待磁盘操作的完成
  • 使处理器和I/O并发工作
用户对磁盘的访问通过访问文件缓存 来实现
  • 由Windows的Cache Manager实现对缓存的控制
    • 读取数据的时候预取
    • 在Cache满时,根据LRU原则清除缓存的内容
    • 在定期更新磁盘内容使其与Cache一致(1秒)
Write-back机制
  • 在用户要对磁盘写数据时,只更改Cache中的内容,由Cache Manager决定何时将更新反映到磁盘
合理分配磁盘空间:
  • 分配磁盘块时,把有可能顺序存取的块放在一起
    • ——>尽量分配在同一柱面上,从而减少磁盘臂的移动次数和距离
磁盘调度
  • 当有多个访盘请求等待时,采用一定的策略,对这些请求的服务顺序调整安排
    • ——》降低平均磁盘服务时间,达到公平、高效
  • 公平:一个I/O请求在有限时间内满足
  • 高效:减少设备机械运动带来的时间开销
RAID技术的思想
数据是如何组织的?
  • 通过把多个磁盘组织在一起,作为一个逻辑卷提供磁盘跨越功能
  • 通过把数据分成多个数据块,并行写入/读出多个磁盘,以提高数据传输率(数据分条stripe)
  • 通过镜像或校验操作,提供容错能力
RAID 0——条带华
主体思想—— 无冗余(即无差错控制)性能最佳
  • 数据分布在阵列的所有磁盘上
  • 有数据请求时,同时多个磁盘并行操作
  • 充分利用总线带宽,数据吞吐率提高,驱动器负载均衡
RAID 1——镜像
主体思想——数据安全性最好
  • 最大限度保证数据安全及可恢复性
  • 所有数据同时存在于两块磁盘的相同位置
  • 磁盘利用率%50
RAID 4 交错块奇偶校验
  • 带奇偶校验
  • 以数据块为单位
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
磁盘管理是指对计算机磁盘进行管理和维护的过程,包括磁盘分区、格式化、磁盘检查和修复等。磁盘分区是将物理硬盘分成若干个逻辑区域,以便对不同用途的数据进行分类存储和管理。格式化是为磁盘分区创建文件系统,以便存储和管理文件。磁盘检查和修复是在磁盘出现错误或损坏时进行的操作,以保证磁盘的正常运行。 RAID(Redundant Array of Independent Disks)是一种基于多个磁盘的存储技术,通过将多个磁盘组合在一起形成一个逻辑磁盘阵列,提高了数据的可靠性和性能。常见的RAID级别包括RAID 0、RAID 1、RAID 5、RAID 6等,每种级别都有其特点和优缺点,可以根据不同的需求选择。 LVM(Logical Volume Manager)是一种用于管理逻辑卷(Logical Volume)的技术,通过将多个物理卷组合在一起形成一个逻辑卷组,再在逻辑卷组上创建逻辑卷,从而实现了对磁盘空间的高效管理和利用。LVM具有动态扩展、迁移、备份和恢复等特点,可以大大提高磁盘空间的利用率和灵活性。 文件系统挂载是将文件系统连接到Linux系统的指定目录上的过程,以便对文件系统中的文件和目录进行访问和管理。在Linux系统中,可以使用mount命令进行文件系统挂载,可以挂载本地磁盘、网络文件系统等不同类型的文件系统。 网络存储是指通过网络连接,将存储设备提供给多台计算机共享使用的一种存储方式。常见的网络存储技术包括NAS(Network Attached Storage)、SAN(Storage Area Network)等,它们可以提供高性能、高可靠性、易于管理和扩展的存储服务。 数据备份是指将重要数据复制到其他存储介质中,以防止数据丢失或损坏。常见的数据备份方式包括完全备份、增量备份和差异备份等,可以根据不同的需求选择。数据备份可以通过手动备份、自动备份或在线备份等方式实现,可以保证数据的安全性和可靠性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑马金牌编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值