408计算机考研笔记(王道考研):操作系统 第四章 文件管理

文章详细介绍了文件系统的基础知识,包括文件的属性如文件名、类型、位置等,以及文件的逻辑结构(无结构和有结构文件)。还讨论了文件的物理结构,如连续分配、链接分配和索引分配。此外,提到了目录结构(单级、两级、多级)和文件控制块,以及文件存储空间的管理方法。文件的基本操作如创建、删除、打开、关闭、读写也有所涉及,同时阐述了文件共享(硬链接、软链接)和保护机制(口令、加密、访问控制)。最后,文章提到了文件系统的层次结构和全局布局。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

4.1 文件系统基础+ 4.2 目录

4.1.1 初识文件管理

image.png

1、文件的属性

文件名

标识符

类型

位置

创建时间

上次修改时间

文件所有者信息

保护信息

image.png

2、文件内部数据的组织

image.png
image.png

3、文件之间如何组织起来?

image.png

4、操作系统向上层提供的功能

image.png
image.png

5、从上往下看,文件如何存放在外存?

image.png

image.png

小结:

image.png

4.1.2 文件的逻辑结构

image.png

1、无结构文件(流式文件)

文件内部的数据就是一系列二进制流或字符流组成。又称“流式文件”。如:Windows操作系统中的.txt文件。
------>文件内部的数据其实就是一系列字符流,没有明显的结构特性。所以不用讨论无结构文件的“逻辑结构”问题。

2、有结构文件(记录式文件)

image.png
根据各条记录的长度(占用的存储空间)是否相等,又可分为定长记录和可变长记录两种

但是可变长记录是最常用的方式

3、有结构文件的逻辑结构

image.png

顺序文件

image.png


image.png
顺序文件的缺点:
增加/删除一个记录比较困难(如果是串结构则相对简单)

索引文件

image.png

索引顺序文件

image.png

索引顺序文件(检索效率分析)

image.png

多级索引顺序文件

image.png

小结:

image.png
image.png

4.1.3 文件目录(对应王道书4.2)

image.png

1、文件控制块(FCB)

image.png

image.png
最重要,最基本的还是文件名、文件存放的物理地址。


需要对目录进行的操作?
image.png

2、目录结构

单级目录结构

image.png

两级目录结构

image.png

多级目录结构

---->又称树型目录结构

image.png
当前目录:
image.png


image.png

无环图目录结构

image.png

3、索引结点(FCB的改进)

image.png

image.png

小结:

image.png

4.1.4 文件的物理结构(上)

image.png

补充:

1、文件块、磁盘块

image.png

2、文件分配方式

连续分配

只要有逻辑块号就可以算出物理块号
image.png
连续分配的文件在顺序读/写时速度最快

优点:

  1. 支持顺序访问和直接访问(即随机访问)
  2. 连续分配的文件在顺序访问时速度最快

缺点:

  1. 物理上采用连续分配的文件不方便文件拓展

image.png

  1. 物理上采用连续分配,存储空间利用率低,会产生难以利用的磁盘碎片,可以用紧凑来处理碎片,但是需要耗费很大的时间代价。

image.png

链接分配

采用离散分配的方式,可以为文件分配离散的磁盘块。分为隐式链接和显式链接两种。
image.png

4.1.4 文件的物理结构(下)

1、文件分配方式–索引分配

image.png

如何实现文件的逻辑块号到物理块号的转换?
image.png
image.png

链接方案

如果索引表太大,一个索引块装不下,那么可以将多个索引块链接起来存放
image.png

多层索引

在这里插入图片描述

混合索引

image.png

image.png

索引分配小结:

image.png

小结:

image.png

4.1.5 逻辑结构与物理结构

image.png

1、创建无结构文件

FTLE *fp = fopen("text.txt","w");//打开文件
if(fp == NULL){
    printf("打开文件失败!");
    exit(0);
}
//写入1w个Hello world
for(int i = 0;i<10000;i++)
    fputs("Hello world!",fp);
fclose(fp);    //关闭文件

逻辑结构(从用户视角看)

image.png
如果用户想要找到第16个字符(编号从0开始)
image.png

物理结构(从操作系统视角看)

image.png

然后利用文件分配方式:三种
image.pngimage.png
在这里插入图片描述
在这里插入图片描述

2、创建顺序文件

typedef struct{
    int number;      //学号
    char name[30];   //姓名
    char major[30];  //专业
}Student_into;

//以“写”的方式打开文件
FTLE *fp = fopen("students.info","w");
if(fp == NULL){
    printf("打开文件失败!");
    exit(0);
}
Student_info student[N];    //用数组保存N个学生信息
for(int i = 0;i<N;i++){     //生成N个学生信息
    student[i].number = i;
    student[i].name[0] = '?';
    student[i].major[0] = '?';
}

//将N个学生的信息写入文件

fwrite(student,sizeof(Student_info),N,fp);
fclose(fp);
    

用户视角

在这里插入图片描述

image.png

操作系统视角

在这里插入图片描述

然后利用那三种方式

3、顺序文件采用顺序存储/链式存储

用户视角
image.png

4、链式存储的顺序文件采用链接分配

链式存储是用户关心的
链接分配是操作系统关系的

image.png

5、逻辑结构:索引文件

image.png
操作系统视角:
利用三种分配方式进行分配
image.png

小结:

image.png

4.1.6 文件存储空间管理

对空闲磁盘块的管理
image.png

1、存储空间的划分与初始化

在这里插入图片描述

2、存储空间管理–空闲表法

适用于“连续分配方式”
image.png[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I3HWx678-1677411775004)(https://cdn.nlark.com/yuque/0/2022/png/29299357/1658210888193-9a6121a5-ac71-46e3-af1f-b59a9c8f5a49.png#clientId=u2edfec2f-36b3-4&from=paste&height=96&id=u7180cbb6&name=image.png&originHeight=120&originWidth=655&originalType=binary&ratio=1&rotation=0&showTitle=false&size=77008&status=done&style=none&taskId=u83574c1d-bbc7-4f8f-968f-f2a4ce82f59&title=&width=524)]

3、存储空间管理–空闲链表法

image.png

空闲盘块链

操作系统保存链头、链尾指针
image.png

空闲盘区链

盘区---->指的是连续的盘区组成的
保存链头、链尾指针
image.png

4、存储空间管理–位示图法

连续分配、离散分配都适用

如何分配:

如何回收
image.png

5、存储空间管理–成组链接法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aE2YZLW2-1677411775006)(https://cdn.nlark.com/yuque/0/2022/png/29299357/1658211920491-c045b1c6-cbb6-441c-b8ed-49e46b2f071e.png#clientId=u2edfec2f-36b3-4&from=paste&height=353&id=u942d7d82&name=image.png&originHeight=441&originWidth=997&originalType=binary&ratio=1&rotation=0&showTitle=false&size=141002&status=done&style=none&taskId=u0750fc5b-a7ac-4d56-8345-86094d03459&title=&width=797.6)]

小结:

image.png

4.1.7 文件的基本操作

1、创建文件

image.png

2、删除文件

image.png

3、打开文件

进程的打开文件表
系统的打开文件表只有一个

4、关闭文件

5、读文件

先读前,要先打开

在支持“打开文件”操作的系统中,只需要提供文件在打开文件表中的索引号即可

6、写文件

小结:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VbXC8OLQ-1677411775008)(https://cdn.nlark.com/yuque/0/2022/png/29299357/1658218446837-c160e126-f400-45d5-8b78-b7e5f6939c5b.png#clientId=u2edfec2f-36b3-4&from=paste&height=394&id=u0589f94b&name=image.png&originHeight=493&originWidth=1046&originalType=binary&ratio=1&rotation=0&showTitle=false&size=392271&status=done&style=none&taskId=uc3943b37-753a-4b5e-8517-1f39d4d5136&title=&width=836.8)]

4.1.8 文件共享

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OedLQGUp-1677411775008)(https://cdn.nlark.com/yuque/0/2022/png/29299357/1658218859782-c1e77f0c-e61e-4243-a315-4c9e0103b201.png#clientId=u2edfec2f-36b3-4&from=paste&height=359&id=uf83e4b92&name=image.png&originHeight=449&originWidth=940&originalType=binary&ratio=1&rotation=0&showTitle=false&size=185725&status=done&style=none&taskId=u070a7be5-2ea4-4a3c-b7ca-699181066dc&title=&width=752)]

1、硬链接

2、软链接

小结:

image.png

4.1.9 文件保护

保护文件数据的安全

1、口令保护

口令一般存在文件对应的FCB或索引结点中。1677411775009)(https://cdn.nlark.com/yuque/0/2022/png/29299357/1658222727849-98309600-4640-4f7d-a9f5-eb650b9e8970.png#clientId=u2edfec2f-36b3-4&from=paste&height=103&id=u245f6ba5&name=image.png&originHeight=129&originWidth=664&originalType=binary&ratio=1&rotation=0&showTitle=false&size=25829&status=done&style=none&taskId=u878f98c7-e4d2-431a-b5ad-6cd8f910250&title=&width=531.2)]

2、加密保护

使用某个“密码”对文件进行加密,在访问文件时需要提供正确的“密码”才能对文件进行正确的解密。
例如:异或加密

image.png

image.png

3、访问控制

image.png
精简的访问列表:
image.png

小结:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fBD7OdCa-1677411775011)(https://cdn.nlark.com/yuque/0/2022/png/29299357/1658220742345-75ef9964-6b0c-4267-a8e3-6ce03cc9b5fa.png#clientId=u2edfec2f-36b3-4&from=paste&height=331&id=u467f016e&name=image.png&originHeight=414&originWidth=1030&originalType=binary&ratio=1&rotation=0&showTitle=false&size=289811&status=done&style=none&taskId=uc1b4ffbe-f039-4abc-acb9-7549feff525&title=&width=824)]

4.3 文件系统(新增考点)

4.3.1 文件系统的层次结构

在这里插入图片描述
在这里插入图片描述

4.3.2 文件系统的全局结构(布局)

1、文件系统在磁盘中的结构

磁盘刚生产出来需要被初始化
即物理格式化
------>也叫低级格式化———,划分扇区,检测坏扇区,并用备用扇区替换坏扇区
image.png
坏扇区对操作系统来说是透明的
之后开始逻辑格式化
image.png
image.png

2、文件系统在内存中的结构

近期访问过的目录文件会缓存在内存中不用每次都从磁盘读入,这样可以加速目录检索速度
image.png
例子:
image.png

4.3.3 虚拟文件系统

1、普通的文件系统

image.png

2、虚拟文件系统

image.png
image.png
image.png
vnode和inode的区别:

  1. vnode只存在主存中,inode既会被调入主存,也会在外存中存储。
  2. vnode中的函数功能指针,不同的文件系统对应不同的函数功能

image.png

3、文件系统挂载

即系统操作安装/装载–如何将一个文件系统挂载到操作系统中
image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

阿宾爱干饭

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

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

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

打赏作者

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

抵扣说明:

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

余额充值