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

news2024/11/24 14:47:42
文件与文件系统
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 交错块奇偶校验
  • 带奇偶校验
  • 以数据块为单位

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/116603.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AUTOSAR开发

综述 本文档主要描述了VP项目MCU芯片TC297的AUTOSAR方案。MCU的基础软件由AUTOSAR软件实现,AUTOSAR可简易理解为如下层次。 MCU芯片驱动层:MCU芯片的抽象层,目的是将各类MCU芯片进行抽象,向上统一接口,隔离其他层次软件…

自动控制原理笔记-改善性能的措施-高阶系统动态性能

目录 改善性能的措施: 两种改善二阶系统动态性能的措施: (1)测速反馈——增加阻尼 (2)比例微分——提前控制 改善系统性能方法对比:​ 两种改善性能方法的对比: 高阶系统动态性…

vscode插件开发入门案例-一键删除js文件中的某个函数

vscode插件开发入门案例-一键删除js文件中的某个函数vscode插件开发入门案例-一键删除js文件中的某个函数demo介绍准备工作插件开发package.json介绍extension.ts调试插件插件打包插件安装插件发布vscode应用市场vscode插件开发入门案例-一键删除js文件中的某个函数 代码仓库地…

数据分析之excel和finebi报表可视化对比

当我们拿到数据,想对数据实现可视化报表设计。第一步就是要了解什么是数据可视化分析,且数据可视化分析的方法有什么?而且当我们拿到excel表格的数据,第一个想法是excel表格自身实现报表数据可视化,除了用excel本身实现…

微信小程序 | 小程序组件化开发

🖥️ 微信小程序 专栏:小程序组件化开发 🧑‍💼 个人简介:一个不甘平庸的平凡人🍬 ✨ 个人主页:CoderHing的个人主页 🍀 格言: ☀️ 路漫漫其修远兮,吾将上下而求索☀️ &#x1f44…

梦想绽放CEO熊文:停产单一VR产品,VST将成为VR行业标配

很久没在北京参加线下活动了,真不容易。今天奇遇VR正式发布了消费级双目全彩VST VR设备:奇遇Dream MIX。会后,我还参加了梦想绽放CEO熊文的群访,从中了解到更多消息。 奇遇Dream MIX 关于奇遇Dream MIX这款产品,我开始…

【苹果iMessage相册推信息推】那些新功效理当可以或许压倒您。保护用户隐私是苹果的起点之一

推荐内容IMESSGAE相关 作者推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息作者推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息作者推荐内容2.相册推 *** 点击即可查看作者要求内容信息作者推荐内容3.日历推 *** 点击即可查看作者要求内容信息作者推荐…

如何从小白起步成为百万博主|配音运营工具必不可少

从新手做短视频,无论你是抖音还是快手,掌握一些视频运营工具,能让我们日常工作事半功倍以下是我做短视频三年来,一直都在使用的工具,从视频素材剪辑软件音效配音,满足了我日常运营的需求,新手也…

Windows Defense Mechanism - Part 1

Overview If I’m a long-time CTF player (or HackTheBox lab machine player), things are gonna go a little off when I’m put into a real world scenario - meaning that, when facing a well defended Windows machine. This article will summarize the main Window…

基于Java(Struts2 框架)+Mysql实现(Web)学生成绩管理系统【100010053】

学生成绩信息管理系统 Summary JavaWeb 课程设计作品。类似学校的教务管理系统,实现了其中的部分功能,包括学生的增删改查,成绩的增删改查等。 Note 关于数据库 数据库名称:smxy_class字符集:UTF-8先建立数据库&am…

Zookeeper下载、本地模式安装、集群操作

目录 1、Zookeeper下载地址 2 、本地模式安装 2.1安装前准备 2.2配置修改 2.3操作 Zookeeper 2.4配置参数解读 3、集群操作 3.1 集群安装 3.2 ZK 集群启动停止脚本 4、客户端命令行操作 4.1、命令行语法 4.2、znode 节点数据信息 4.3点类型(持久/短暂…

【案例教程】基于现代R语言【Tidyverse、Tidymodel】的机器学习方法与案例分析实践技术应用

【点击观看视频】基于现代R语言【Tidyverse、Tidymodel】的机器学习方法与案例分析实践技术应用 机器学习已经成为继理论、实验和数值计算之后的科研“第四范式”,是发现新规律,总结和分析实验结果的利器。机器学习涉及的理论和方法繁多,编程…

【Unity篇】Unity入门介绍

目录 游戏引擎 Unity3D特点 窗口介绍 快捷键 创建工程 组件的获取 游戏引擎 程序的框架:一款游戏最最核心的代码。 包含以下系统:渲染系统,物理引擎,碰撞检测系统,音效,脚本引擎,动画系统,人工智能…

全志V85x芯片 Tina Linux RISC-V E907核心开发指南

全志V85x芯片 Tina Linux RISC-V E907核心开发指南 1 编写目的 介绍v85X 上E907 的启动环境和AMP 的环境搭建。 2 使用范围 全志V85X 系列芯片 3 环境 A7 SDK:Tina E907 SDK:melis 4 SDK 快捷命令说明 这里主要介绍几个下文会用到的命令&#xf…

【嵌入式项目开源】基于ESP32的墨水屏桌面小屏幕

首先简要介绍一下这个项目: 这个项目的开源主要包括硬件,固件和软件两部分,外壳后面如果做了也会开源出来。该项目主要是参考了以下教学视频。 链接:桌面小屏幕实战教学 其中硬件部分改动不大,主要是把USB驱动改成了Ty…

推荐系统从入门到入门(1)——推荐系统综述与协同过滤

本系列博客总结了不同框架、不同算法、不同界面的推荐系统,完整阅读需要大量时间(又臭又长),建议根据目录选择需要的内容查看,欢迎讨论与指出问题。 目录 系列文章梗概 系列文章目录 一、问题背景介绍 1.推荐算法与…

企业拥有PMO(项目管理办公室)的好处

PMO(项目管理办公室),是一个企业内定义和维护项目管理标准的办公室或部门。PMO为项目的执行提供指导和标准。他们创造切实的目标,与整个企业的愿景保持一致,并确保所有目标的实现。 PMO指导以项目模板、标准化流程、…

DoIP协议概述

大家好哈,我是穿拖鞋的汉子! 伴随着需求不断提升(车身数据传输速率和带宽需求),为了满足需求将以太网引进到车载网络中。车载以太网在诊断传输层的应用协议是ISO 13400(Diagnostic On IP—DoIP)…

模型实战(1)之YOLOv5 实现目标检测+训练自己的数据集

模型实战(1)之YOLOv5 实现目标检测训练自己的数据集 写一个小总结吧,关于yolov5使用可以参考我的两外两篇博文: 1.YOLOV5算法一之Windows10下yolov5安装测试并训练自己的数据集 2.YOLOV5算法二之数据集转换及自动划分训练集与测试…

代理模式之提出问题和代理模式的概念

代理模式之提出问题和代理模式的概念 1. 提出问题 ①现有代码缺陷 针对带日志功能的实现类,我们发现有如下缺陷: 对核心业务功能有干扰,导致程序员在开发核心业务功能时分散了精力 附加功能分散在各个业务功能方法中,不利于统一…