操作系统(九)文件系统

1 文件

1.1 文件属性

在这里插入图片描述
文件控制块中会储存这些信息,文件控制块类似于结构体。

1.2 系统调用

作为程序员,不是使用鼠标键盘去操作文件,而是在代码里操作。可提供的操作有:读,写,读下一个,写下一个,等等。此处需要代码结合C语言做练习。

2 目录和磁盘结构

2.1 术语

储存设备:
分区:一个储存设备可以被划分为多个分区。每一个分区都有一个单独的文件系统。可以用于交换空间,或者未格式化空间。
含有文件系统的分区,叫卷(volume)。多个分区可以组成一个卷。

2.2 目录

目录是一个表,储存着文件名到逻辑地址的映射。
目录是为了更高效地获取文件,命名,分类文件。

目录的分类有:

  • 单级目录
  • 二级目录
  • 树结构目录
  • 无环图目录:树结构目录多了共享的文件或者文件夹。不同用户获取共享的文件,有硬链接和软链接两种方式,硬链接容易造成悬浮指针,所以都使用软链接。删除文件后,符号链接还在,由用户判断文件是否被删除了。
  • 通用图目录

inode

在Linux,一种类似结构体的数据结构,储存一个文件中除了名字和实际数据之外的其他信息。
比如储存实际数据的地址,或者地址的地址。

3 文件系统

在这里插入图片描述

3.1 on-disk structure

在这里插入图片描述
在磁盘上真实存在的一些区域。

3.2 in-memory structures

在这里插入图片描述
当我们的程序想要打开某些文件的时候,内存中会有两个表。维护了这个进程打开的文件,以及所有已经被打开的FCB信息。

4 文件在磁盘中的分配方法

4.1 连续contiguous

4.2 链接法

4.3索引法

おすすめ

転載: blog.csdn.net/weixin_42089190/article/details/120673641