文件系统详解

news2024/11/19 7:36:18

目录

文件系统(1)

第一节文件系统的基本概念

一、文件系统的任务

二、文件的存储介质及存储方式 

三、文件的分类

第二节 文件的逻辑结构和物理结构

一、文件的逻辑结构

二、文件的物理结构 

文件系统(2)

第三节 文件目录

一、文件控制块

二、文件目录和当前目录

​编辑二、文件目录和当前目录 

三、目录项和目录文件

四、目录项分解法

五、UNIX的文件目录结构

​编辑​编辑六、FAT文件系统的实现 

第四节 文件存储空间管理

一、磁盘空间管理

二、磁盘空间的分配与回收算法

三、空闲块成组链接法

文件系统(3)

第五节 实现文件系统的表目

一、系统打开文件表

二、用户打开文件列表

第六节 文件及目录的操作

一、典型的文件操作

二、典型的目录操作

第七节 文件系统的性能 

一、磁盘高速缓存 

​编辑 二、RAID技术

第八节 文件共享、保护和保密 

一、文件共享

​编辑 二、文件的保护 

​编辑​编辑 三、UNIX的文件使用权限管理方案

四、文件的保密措施 


文件系统(1)

第一节文件系统的基本概念

一、文件系统的任务

1.文件的定义
(1)研究文件系统的两种观点:
用户观点:关心文件由什么组成,如何命名,如何保护文件,可以进行何种操作。
系统观点:文件目录是怎么实现的,怎样管理存储空间,文件存储位置,磁盘实际运作方式,存取速度,磁盘利用率等等。
(2)文件的定义:一组带标识的、在逻辑上有完整意义的信息项的序列。
(3)读写指针:读指针用来记录文件当前的读取位置,写指针用来记录文件当前的写入位置。
(4)特点:存储在磁盘,可长期保存
2.文件系统的定义,文件系统是操作系统统一管理信息资源的一种软件。它管理文件的存储、检索、更新,提供更安全的共享和保护手段,并且方便用户的使用。
功能:(1)统一管理文件的存储空间,实施存储空间的分配与回收
(2)实现文件按名存取,以对用户透明的方式管理名字空间
(3)实现文件信息的共享,并提供文件的共享和保密措施。
(4)向用户提供一个方便使用的接口
(5)系统维护及向用户提供有关信息
(6)保持文件系统的执行效率
(7)提供与I/O的统一接口

二、文件的存储介质及存储方式 

1.外存储设备的特点
特点:容量大、断电后仍可保存信息
组成:驱动部分和存储介质部分
种类:磁盘、磁带、磁鼓、纸带、光盘、闪存
2.外存储设备的存储介质
(1)磁带
特点:容量大,存取速度慢,适合顺序存储


(2)磁盘
分类:软盘和硬盘
特点:容量大,成本低,适合随机存储(指可以随意读取指定记录)
磁盘的物理地址由柱面号、磁头号、扇区号组成,图中的扇面指的是扇区


(3)光盘,是利用在激光的作用下特性发生变化的一些材料制成的非磁性记录介质。
特点:容量大、速度快、价格便宜
(4)闪存
特点:电擦除,随机存储、可靠性高、寿命长
3.文件在存储设备中的存储方式
顺序存储:按从前到后的次序依次访问文件的各个信息项。
随机存储:又称直接存储,允许用户按任意的次序、直接存取文件中的任意一个记录,或者根据存取命令把读写指针移到文件中的指定记录处读取。

三、文件的分类

1.按文件的用途分类:(1)系统文件;(2)库函数文件;(3)用户文件;
2.按文件的组织方式分类:(1)普通文件;(2)目录文件(保存目录信息的文件);(3)特殊文件(如键盘、鼠标、打印机可比作一个特殊的文件);

3.一些常见的文件分类方式
(1)按文件的保护方式:只读文件、读写文件、可执行文件、无保护文件
(2)按信息的流向分:输入文件、输出文件、输入输出文件
(3)按存放时限分:临时文件、永久文件、档案文件
(4)按存储介质分:磁盘文件、磁带文件、卡片文件等
(5)按文件的组织结构分类:逻辑文件、物理文件
4.UNIX类操作系统中文件的分类:(1)普通文件;(2)目录文件;(3)特殊文件;

第二节 文件的逻辑结构和物理结构

文件的逻辑结构:从用户观点出发所观察到的文件组织形式
文件的物理结构:又称为文件的存储结构。是指系统将文件存储在外存上所形成的一种存储组织形式,是用户不能看见的。

一、文件的逻辑结构

1.设计文件逻辑结构的原则:(1)易于操作;(2)查找快捷;(3)修改方便;(4)空间紧凑;
2.文件的逻辑结构,文件的逻辑结构所描述的信息是文件中信息的组织形式,可分为两类:
(1)流式文件:有序字符的集合,基本单位是字符,源程序、目标代码等属于流式文件
(2)记录文件:是一组有序记录的集合,基本单位是记录。又可分为定长记录文件和变长记录文件。(如数据库表记录,各记录内容长度相同称为定长记录,长度不同称为变长记录)

二、文件的物理结构 

1.顺序结构
(1)顺序结构原理,又称连续结构,它把逻辑上连续的文件信息依次存放在连续编号的物理块中。
如图7-5所示:


(2)顺序结构的优缺点
①优点:1、存取速度快,一旦知道了文件在存储设备上的起始块号和文件长度,便能快速进行存取。
2、支持顺序存放和随机存取
②缺点:1、文件不能动态增长;2、要求为一个文件分配连续的存储空间;3、不能灵活地删除和插入记录;4、出现碎片;

2.链接结构
(1)链接结构原理,将逻辑上连续的文件分散存储在若干个不连续的物理块中。每个物理块中设有一个指针,指向其后续的物理块。图7-6所示:


(2)链接结构的优缺点
①优点:1、解决了碎片问题,提高了磁盘空间利用率
2、文件可以动态扩充
②缺点:1、存取速度慢,不适于随机存储(适合顺序存储)
2、可靠性差(如某个块坏掉了,关联的文件记录无法找到)
3.索引结构
(1)索引结构原理,为每个文件分配一个索引块(表),把分配给该文件的所有盘块号,都记录在该索引块中。
如图7-7所示:


(2)索引结构的优缺点
①优点:1、文件动态增长;2、不要求为一个文件分配连续的存储空间;3、能灵活的删除和插入记录;4、能顺序存取和随机存取
②缺点:1、引起较多的寻道次数和寻道时间;2、索引表本身增加了存储空间的开销
(3)多级索引,当文件太大,其索引块太多时,单级索引方式过于低效。此时,应为这些索引块再建立一级索引,称为第一级索引,即系统再分配一个索引块,作为第一级索引的索引块,将第一块、第二块……等索引块的盘块号,填入到此索引表中,这样便形成了两级索引分配方式。如果文件非常大时还可用三级、四级索引分配方式。(即一级索引存二级索引信息,二级索引存磁盘块号) 

文件系统(2)

第三节 文件目录

一、文件控制块

1.文件控制块,为文件设置的用于描述和控制文件的数据结构。文件管理程序可借助于文件控制块中的信息,对文件施以各种操作。
2.文件目录:文件控制块的有序集合(文件与文件控制块一一对应)称为文件目录,一个文件控制块就是一个文件目录项。
3.文件控制块的内容
(1)基本信息类:文件名、文件物理位置、文件逻辑结构、文件的物理结构。
(2)存取控制信息类:文件的存取权限、核准用户的存取权限以及一般用户存取权限。
(3)使用信息类:文件的建立日期和时间、文件上一次修改的日期和时间、当前已打开该文件的进程数、是否被其它进程锁住、文件在内存中是否已被修改但尚未拷贝到盘上等。

二、文件目录和当前目录

1.一级目录结构,如图7-10所示
优点:简单且能实现目录管理的基本功能--按名存取。
缺点:查找速度慢、不允许重名


2.二级目录结构,为改变一级目录文件目录命名冲突,并提高对目录文件检索速度而将目录分为两级:一级称为主文件目录,给出用户名,用户子目录所在的物理位置;二级称为用户文件目录,给出该用户所有文件的FCB(文件控制块)。如图7-11所示:
优点:解决了文件的重名问题和文件共享问题,提供搜索速度,查找时间降低。
缺点:不太适合大量用户,和大量文件的大系统,增加了系统开销。


3.多级目录,多级目录结构也称树形结构,产生于UNIX操作系统,已被现代操作系统广泛使用。如图7-13所示:
优点:层次结构清晰,便于管理和保护;有利于文件分类;解决重名问题;提高文件检索速度;能进行存取权限的控制。
缺点:查找一个文件按路径名逐层检查,由于每个文件都放在外存,多次访盘影响速度。

二、文件目录和当前目录 

4.当前目录:当前正在使用的目录(也称工作目录或值班目录)。
目录检索:用户访问文件时,需要进行目录检索,这时用户给出文件名,系统按名寻找目录项(文件控制块)。
检索方法:全路径名(绝对路径名)、相对路径。

三、目录项和目录文件

1.目录项,一个文件控制块做成一个定长记录,这个记录称为目录项。
2.目录文件,多个文件的文件控制块集中在一起组成了文件的目录。文件目录以文件的形式保存,该文件称为目录文件。

四、目录项分解法

1.目的:加快目录检索速度
2.分解:目录项分解成两部分,符号目录项(次部)和基本目录项(主部)。
符号目录项:包含文件名和文件号
基本目录项:除文件名以外的FCB的其他全部信息
3.优点:减少磁盘的访问次数,提高文件目录检索速度。

五、UNIX的文件目录结构

1.i结点的引入,文件目录通常是存放在磁盘上的,可能要占用大量的盘块。在查找目录的过程中,需要多次启动磁盘。
UNIX系统,采用了把文件名与文件描述信息分开的办法,亦即,使文件描述信息单独形成一个称为索引结点的数据结构,简称为i结点。
2.i结点的内容,文件主标识符、文件类型、文件存取权限、文件物理地址、文件长度、文件连接计数、文件存取时间等。
3.物理结构,三级索引结构,图7-8所示

六、FAT文件系统的实现 

FAT的含义:文件分配表--File Allocation Table,最初为DOS系统设计,适合小容量的磁盘,分配给文件的所有盘块号都放在该表中
三个版本:FAT-12、FAT-16、FAT-32

第四节 文件存储空间管理

一、磁盘空间管理

基本思想,对于磁盘空间的分配和回收的方法。

二、磁盘空间的分配与回收算法

2.空闲块表
3.空闲块链 

三、空闲块成组链接法

1.成组链接的含义:文件区中的所有空闲盘块,被分成若干个组,比如将每100个盘块作为一组。
将每一组含有的盘块总数N和该组所有的盘块号,记入其前一组的第一个盘块中。这样,由各组的第一个盘块可链成一条链。如图7-22所示
2.成组链接法的分配:在空闲块链中,不足100块的组,通常放在内存专用块中,系统初始化时,先把专用块内容读到内存中,需要分配时,就直接在内存中找到那块是空闲的,然后进行分配,空闲块数减1,如果这一组的第一个空闲块也需要分配,在分配之前,先把其保存的下一组空闲盘块号读入内存中,再分配出去,依次类推。
3.成组链接法的回收:归还一个空闲盘块时,把要归还的块号登记在当前组中,空闲数加1,如果当前组已满100块,则把这100个块号写到要归还的那块中,该块就称为该组的第一块。
4.成组链接法的优点:分配和回收空闲块时均在内存中查找和修改,只有在一组空闲块分配完成或空闲的磁盘块构成一组时才需要启动磁盘读写,效率高,能快速找到大量空闲盘块的地址,UNIX采取这种方案。

文件系统(3)

第五节 实现文件系统的表目

一、系统打开文件表

专门用来保存已打开文件的文件控制块,通常放在内存。
共享计数:记录有多少个进程同时打开该文件。
修改标志:指文件控制块或i结点的内容是否被修改过,如果修改过,则关闭文件时要将文件控制块写回磁盘。

二、用户打开文件列表

每个用户都有一个“用户文件打开表”,其位置记录在PCB中,以UNIX为例,内容如下: 

第六节 文件及目录的操作

一、典型的文件操作

1.建立文件
2.打开文件
3.读文件
4.写文件
5.关闭文件
6.删除文件

二、典型的目录操作

以UNIX系统为例
1.创建目录creat
2.打开目录opendir
3.读目录readdir
4.创建链接link
5.删除链接ulink
6.修改目录名rename
7.关闭目录closedir
8.删除目录delete

第七节 文件系统的性能 

一、磁盘高速缓存 

基本思想:系统在内存中保存一些磁盘块,这些磁盘块在逻辑上属于磁盘,内存的这一区域被称为块高速缓存。
运行时,系统检查所有的读请求,查看文件块是否在高速缓存,在,则读,不在,首先启动磁盘,将所需块读到高速缓存,再复制到其他内存区域。若高速缓存已满,按照淘汰算法,选择较少使用的磁盘块换出。
块高速缓存要定期写回磁盘,以保存对磁盘块的修改。
文件系统一致性问题:如果在修改过的磁盘块写回磁盘之前,系统出现故障,则文件系统有可能会处于不一致状态。特别是一些未被写回的块是i结点、目录块、或者包含空闲表的磁盘块时,问题尤为严重。这一问题称为文件系统一致性问题。
高速缓冲的典型应用:记录的成组
1.记录的成组,把若干个逻辑记录合成一组存储到一个物理块的工作,称为记录的成组。每块中的逻辑记录个数称为“块因子”。
实现原理:信息交换以块为单位,故成组需要使用内存缓冲区来完成。缓冲区的长度=记录的长度*块因子。
图7-26所示:


2.记录的分解
优点:提高了磁盘利用率,减少了启动磁盘的次数,提高系统工作效率。
要考虑的因数:定长记录和不定长记录

 二、RAID技术

RAID是英文Redundant Array of Independent Disks的缩写,中文简称为独立冗余磁盘阵列。
简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组,从而提供比单个硬盘更高的存储性能和提供数据备份技术。
好处主要有以下三种:①通过把多个磁盘组织在一起作为一个逻辑卷提供跨越功能;②通过把数据分成多个数据块(Block)并行写入/读出多个磁盘以提高访问磁盘的速度;③通过镜像或校验操作提供容错能力;
RAID技术经过不断的发展,现在拥有了从RAID 0到7八种基本的RAID级别。另外,还有一些基本RAID级别的组合形式,如RAID10(RAID 0与RAID 1的组合),RAID 50(RAID 0与RAID 5的组合)等。不同RAID级别代表着不同的存储性能、数据安全性和存储成本。

第八节 文件共享、保护和保密 

一、文件共享

1.文件共享的概念:文件共享是指一个文件可以允许多个用户共同使用。
2.文件共享的分类,从共享时间段上看,共享文件有两种使用情况:(1)文件可以同时使用;(2)文件不允许同时使用
在文件共享具体方式上,有三种共享方式:(1)文件被多个用户使用,由存取权限控制;(2)文件被多个用户使用,但分别用自己的读写指针;(3)文件被多个程序使用,但共享读写指针
3.文件共享的实现方法
多级目录结构,常用的是连接法,分两种:(1)允许目录项连接到任一表示文件目录的结点上。
(2)只允许连接到表示普通文件的结点上,如图7-29所示。

 二、文件的保护 

影响文件安全性的主要因素
(1)人为因素:人们有意或无意的行为,会使文件系统中的数据遭到破坏或丢失;
(2)系统因素:由于系统的某部分出现异常情况,而造成数据的破坏或丢失,特别是作为数据存储主要介质的磁盘,一旦出现故障,会产生难以估量的影响;
(3)自然因素:随着时间的推移,存放在磁盘上的数据逐渐消失。
为确保文件系统的安全性,可采取的措施
(1)建立副本,即把同一个文件保存到多个存储介质上。
(2)定时转储,即每个一定时间就把文件转储到其他存储介质上。
(3)规定文件的存储权限。可采用树形目录结构和存储控制表两种方法。

 三、UNIX的文件使用权限管理方案

3.UNIX中的文件存取权限,UNIX中对文件的存取权限划分为两级。
在第一级别中对访问者或者用户进行分类识别。将用户分为:文件主(owner)、文件组的同组用户(other)、其他用户(other)
在第二级中,对文件操作权限的权限设置。包括:读(r)、写(w)、执行(x),不执行任何操作(-)。

四、文件的保密措施 

文件保密的目的:是防止不经文件拥有者授权而窃取文件。
常用的文件保密措施有以下几种:1.隐蔽文件目录;2.设置口令;3.使用密码(文件加密);4.病毒防范;

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

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

相关文章

Oracle for Windows安装和配置——Oracle for Windows数据库创建及测试

2.2. Oracle for Windows数据库创建及测试 2.2.1. 创建数据库 1)启动数据库创建助手(DBCA) 进入%ORACLE_HOME%\bin\目录并找到“dbca”批处理程序,双击该程序。具体如图2.1.3-1所示。 图2.1.3-1 双击“%ORACLE_HOME%\bin\dbca”…

mac 配置 httpd nginx php-fpm 详细记录 已解决

在日常mac电脑 开发php项目一直是 httpd 方式 运行,由于有 多版本 运行的需求,docker不想用,索性用 php-fpm进行 功能处理。上次配置 是好的,但是感觉马马虎虎,这次 配置底朝天。因为配置服务器,几乎也都是…

9. Java字符串支持正则表达式的方法

Java —— String字符串 1. 正则表达式2. String正则API3. Object类和toString方法4. equals方法5. 包装类及Number 1. 正则表达式 正则表达式(Regular Expression):简称为Regex或RegExp,是一种用于描述字符串模式的工具 作用&…

Jmeter性能测试步骤

Jmeter多用户并发测试 第1步, 在安装目录下的bin文件夹下打开Jmeter,如下图 第2步,新建一个线程组 第3步,新建一个HTTP请求,这里给这个请求重命名为getMsgSum 设置HTTP请求的IP端口,以及路径等 第4步&#…

SoftwareTest3 - 要了人命的Bug

软件测试基础篇 一 . 如何合理的创建一个 Bug二 . Bug 等级2.1 崩溃2.2 严重2.3 一般2.4 次要 三 . Bug 的生命周期四 . 跟开发产生争执应该怎么解决 Hello , 大家好 , 又给大家带来新的专栏喽 ~ 这个专栏是专门为零基础小白从 0 到 1 了解软件测试基础理论设计的 , 虽然还不足…

C++ -- 特殊类设计

目录 设计一个类,不能被拷贝 C98的做法 C11的做法 设计一个类,只能在堆上创建对象 实现方式1 实现方式2 设计一个类,只能在栈上创建对象 实现方式1 方式1的优化 实现方式2 设计一个类,不能被继承 设计模式 什么是设计…

怒刷LeetCode的第9天(Java版)

目录 第一题 题目来源 题目内容 解决方法 方法一:双指针 方法二:递归 方式三:迭代 方法四:优先队列 第二题 题目来源 题目内容 解决方法 方法一:贪心算法 方法二:数学方法 方法三&#xff1…

iOS应用中的内存泄漏问题解决

解决iOS应用中的内存泄漏问题是非常重要的,因为内存泄漏可能导致应用变得缓慢或不稳定。以下是一些解决iOS内存泄漏问题的工具和方法,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 工具&…

HTML5day02综合案例2

案例展示 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>注册信息</title> </head> &l…

MC互联网联机frp实现

我使用的是java版本的MC&#xff0c;联机方式如下。只是一个简单的笔记&#xff0c;所以只说重点。 主机开启局域网 整合包中自带的局域网联网插件&#xff1a;Lan Server Properties 1.10.1 在线模式选择关闭&#xff0c;不然非正版用户无法连接。 frp 具体不说了&#x…

基于MUSIC算法的二维超声波成像matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1、基本原理 4.2、数学公式 4.3、实现过程 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 ..........................................…

前端react 18.2整合ckeditor富文本编辑器——配置插件、自定义toolbar工具栏

文章目录 ⭐前言⭐引入ckeditor⭐npm 包引入⭐cdn资源引入 ⭐自定义插件&#x1f496; 自定义yma16配置插件 ⭐总结⭐结束 ⭐前言 大家好&#xff0c;我是yma16&#xff0c;本文分享关于前端react整合ckeditor——配置插件、自定义toolbar工具栏。 react系列往期文章&#xff…

sylixos 5.0.4 ecs

sylixos 5.0.4 ecs 2692407267qq.com&#xff0c;更多内容请见http://user.qzone.qq.com/2692407267/

人类的态势感知可分为先验、似然、后验的三部分

人类的态势感知可以分为先验、似然和后验三个部分。这些部分描述了在不同阶段对环境的感知和理解。先验感知&#xff1a;先验感知基于先前的知识、经验和先验信息来理解环境。它利用已有的知识和模型&#xff0c;进行预测和推断&#xff0c;从而形成对当前环境的初步认知。先验…

Go 并发可视化解释 - sync.Mute

在学习 Go 编程语言时&#xff0c;您可能会遇到这句著名的格言&#xff1a;“不要通过共享内存来进行通信&#xff1b;相反&#xff0c;通过通信来共享内存。” 这句话构成了 Go 强大并发模型的基础&#xff0c;其中通道&#xff08;channels&#xff09;作为协程之间的主要通信…

unity自己对象池的使用

unity出了自己的对象池 这里记录一下用法 命名空间就是这个 一般有两种用法&#xff0c;第一种是在using里面获取&#xff0c;脱离这个域就释放。第二种是在Get和Release配合使用 // This version will only be returned to the pool if we call Release on it.//只有使用Re…

【计算机基础】让我们重新认识一下Visual Stduio及其操作,知识点汇总!!

&#x1f4e2;&#xff1a;如果你也对机器人、人工智能感兴趣&#xff0c;看来我们志同道合✨ &#x1f4e2;&#xff1a;不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 &#x1f4e2;&#xff1a;文章若有幸对你有帮助&#xff0c;可点赞 &#x1f44d;…

远程连接ubuntu的mysql服务报错10061的解决方案

远程连接ubuntu的mysql服务报错10061的解决方案 我的解决方案是&#xff1a; 首先&#xff1a;进入/etc/mysql/mysql.conf.d文件夹下面&#xff0c;编辑mysqld.cnf文件。如图所示&#xff1a; 然后&#xff1a;将bind-address那一行改成bind-address 0.0.0.0.如图所示&…

李宏毅hw-8,auto-encoder for anomaly_detection

一、查漏补缺、熟能生巧: 主要是mu均值 和 logvar对数标准差 std标准差的 处理方面不熟练 二、代码解读&#xff1a; 1.sample_code中提供了3种model&#xff1a;fcn_model 、 conv_model 和 vae_model: (1)fcn_model的结构非常好理解&#xff1a; 就是通过全连接层进行降维…

子比主题v7.4绕授权接口源码

子比主题7.4绕授权接口源码&#xff0c;仅包含api文件仅供学习参考&#xff01;正版子比主题7.4请到官方下载这里不提供。 使用方法: 1.搭建一个站点&#xff0c;绑定apizibl.com域名&#xff0c;并开启SSL (随便找个域名的证书就行) 2.上传以上源码&#xff0c;并配置好伪静…