操作系统中的文件系统

本章节目录

1. 文件

1.1 文件命名

1.2 文件结构

1.3 文件类型

1.4 文件存取

1.5 文件属性

1.6 文件操作

2. 目录

2.1 层次目录结构

2.1.1 单层目录

2.2.2 两级目录

2.2.3 树形目录

2.2.4 路径名

2.2.5 常见的目录操作

3. 文件系统的实现

3.1 实现文件

3.1.1 连续分配

3.1.2 磁盘链接表

3.1.3 内存的链接分配表

3.1.4 i - 结点

3.2 实现目录

3.3 磁盘空间管理


文件系统能够为用户提供在计算机系统中对数据信息进行长期、大量存储和访问的功能。

它包含了文件及管理文件的软件集合

1. 文件

文件系统的用户接口包括文件的命名、类型、属性和对文件的操作

1.1 文件命名

1. 有操作系统都允许用1~8个字母组成的字符串

2. 多数操作系统都支持文件名用圆点隔开分为两部分,圆点后面的部分称为文件扩展名

1.2 文件结构

1. 无结构字节序列,流式文件

2. 固定长度记录序列

3. 树形结构

1.3 文件类型

1. 正规文件,分为ASCII文件(可显示打印,通常的编辑器可编辑)和二进制文件(不能直接显示打印,需要专门的编辑器)

2. 目录文件,管理文件系统的系统文件

3. 字符设备文件,和输入输出有关

4. 块设备文件,用于磁盘类设备

1.4 文件存取

1. 顺序存取:从文件开始处读取信息,不能跳过

2. 随机存取:又称直接存取,可以以任意顺序读取文件信息

1.5 文件属性

除了文件名和文件数据外,其他与文件相关的信息,如创建日期、文件大小、修改时间等

1.6 文件操作

英文名字含义
CREATE创建
DELETE删除
OPEN打开
CLOSE关闭
READ
WRITE
GETATTRIBUTES获取文件属性
SETATTRIBUTES设置文件属性
RENAME重命名
APPEND文件末尾添加数据
SEEK找到读取位置

 

 

 

 

 

 

 

 

 

 

2. 目录

目录是文件系统中实现按名访问的重要数据结构

2.1 层次目录结构

目录文件有两种常见的结构:属性放在目录项中和放在 i 结点中

2.1.1 单层目录

也就只有一个根目录,文件的命名、搜索效率很低的。

2.2.2 两级目录

包含根目录和用户目录以及用户文件

优点:解决重名问题,查找快

缺点:增加系统开销

2.2.3 树形目录

多层级的目录结构,和树的形状类似

优点:便于文件分类 层次结构清晰 便于管理和保护 解决了重名问题 查找速度加快

缺点:结构相对复杂

2.2.4 路径名

采用树形目录时,需要有某种方法指明文件

绝对路径名:从根目录到文件

相对路径名:从当前工作目录到文件

2.2.5 常见的目录操作

创建、删除、打开、关闭、读目录、重命名目录

3. 文件系统的实现

文件系统通常是以2的n次方个连续的扇区为单位对文件进行磁盘空间的分配

把分配给文件的连续扇区构成的磁盘块称为簇。

3.1 实现文件

文件存储的四种方式

3.1.1 连续分配

把每个文件作为一连串的数据块放在磁盘上

优点:

       1. 实现简单,记录每个文件用到的簇仅需存储两个数字即可:第一块的磁盘地址和文件的块数。

       2. 读操作性能好,在单个操作中就能从磁盘上读取整个文件。

缺点:

       磁盘变得零碎,空闲的连续簇形成“空洞”。

3.1.2 磁盘链接表

为每个文件构造簇的链接表,每个簇开始的几个字节用于存放下一个簇的簇号

簇的其他部分存放数据,每个文件可以存放在不连续的簇中。

优点:充分利用每个簇,不会因为磁盘碎片而浪费空间,管理也比较简单。

缺点:随机存取相当缓慢,要获得文件的第n块,每一次都要从头开始读取前面的n-1块。

3.1.3 内存的链接分配表

将文件所在的磁盘的簇号放在内存的表(文件分配表)中

缺点:必须把整个表都存放在内存中,磁盘容量很大时,表占的内存比较大

3.1.4 i - 结点

为每个文件赋予一个被称为i结点的数据结构,其中列出了文件属性和文件块的磁盘地址

3.2 实现目录

1. CP / M中的目录

CP/M以簇而不是以字节为单位来记录文件长度的

2. MS-DOS中的目录

使用文件分配表FAT作为索引表来存放文件数据所在簇的簇号

3. UNIX中的目录

3.3 磁盘空间管理

簇大小:文件系统为文件分配磁盘空间以簇为单位

簇大小过大:容易造成空间浪费

簇大小过小:文件跨越簇,访问文件时间延长

记录空闲块:跟踪记录空闲块的两种常用方法

空闲簇链接表:用一些空闲簇存放空闲簇的簇号

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我是一名程序猿

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

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

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

打赏作者

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

抵扣说明:

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

余额充值