文件是记录在辅助存储器上的相关信息的集合。或文件是逻辑相关实体的集合。从用户的角度来看, 文件是逻辑辅助存储的最小分配。
属性 | 类型 | 操作 |
---|---|---|
名称 | 文件 | 创造 |
类型 | 可执行程序 | 打开 |
尺寸 | 日文版 | 读 |
创建数据 | 西斯 | 写 |
作者 | C | 附加 |
最后修改 | Java | 截短 |
保护 | 类 | 删除 |
关 |
文件类型 | 通常的扩展 | 函数 |
---|---|---|
可执行的 | exe, com, bin | 读取以运行机器语言程序 |
Object | obj, o | 已编译, 机器语言未链接 |
源代码 | C, java, pas, asm, a | 各种语言的源代码 |
批量 | 蝙蝠, 嘘 | 给命令解释器的命令 |
文本 | txt, doc | 文字数据, 文件 |
文字处理器 | wp, tex, rrf, doc | 多种文字处理格式 |
封存 | 弧形, 拉链, 焦油 | 相关文件分组为一个压缩文件 |
多媒体 | mpeg, mov, rm | 用于包含音频/视频信息 |
文件集合是一个文件目录。该目录包含有关文件的信息, 包括属性, 位置和所有权。这些信息中的很多, 尤其是与存储有关的信息, 都是由操作系统管理的。该目录本身就是一个文件, 可以通过各种文件管理例程进行访问。
设备目录中包含的信息是:
- 名称
- 类型
- 地址
- 当前长度
- 最大长度
- 上次访问日期
- 最后更新日期
- 所有者ID
- 保护信息
- 搜索文件
- 建立档案
- 删除档案
- 列出目录
- 重命名文件
- 遍历文件系统
- 效率:可以更快地找到文件。
- 命名:这对用户来说很方便, 因为两个用户可以为不同的文件使用相同的名称, 也可以为同一文件使用不同的名称。
- 分组:文件的逻辑分组可以通过属性来完成, 例如所有Java程序, 所有游戏等。
在此为所有用户维护一个目录。
- 命名问题:用户不能为两个文件使用相同的名称。
- 分组问题:用户无法根据需要将文件分组。
文章图片
两层目录
在这个单独的目录中, 为每个用户维护。
- 路径名:由于有两个级别, 因此每个文件都有一个路径名来查找该文件。
- 现在, 我们可以为不同的用户使用相同的文件名。
- 用这种方法搜索是有效的。
文章图片
树状结构目录:
目录以树的形式维护。搜索效率高, 并且具有分组功能。我们有文件的绝对或相对路径名。
文章图片
文件分配方法
【操作系统中的文件系统经典详细指南】1.连续分配:
在创建文件时, 将单个连续的块集分配给一个文件。因此, 这是使用可变大小部分的预分配策略。文件分配表仅需要每个文件一个条目, 即可显示起始块和文件的长度。从单个顺序文件的角度来看, 这种方法是最好的。一次可以读取多个块, 以提高I / O性能以进行顺序处理。检索单个块也很容易。例如, 如果文件从块b开始, 并且需要文件的第i个块, 则其在二级存储上的位置就是b + i-1。
文章图片
坏处
- 将会发生外部碎片, 从而很难找到足够长度的连续空间块。压缩算法对于释放磁盘上的额外空间将是必要的。
- 同样, 对于预分配, 有必要在创建时声明文件的大小。
分配是基于单个块的。每个块都包含一个指向链中下一个块的指针。同样, 每个文件的文件表只需要一个条目, 即可显示起始块和文件的长度。尽管可以进行预分配, 但更常见的是仅根据需要分配块。可以将任何空闲块添加到链中。这些块不必是连续的。如果有可用的磁盘块, 则始终可以增加文件大小。没有外部碎片, 因为一次只需要一个块, 但是可以有内部碎片, 但是它仅存在于文件的最后一个磁盘块中。
坏处:
- 文件的最后一个磁盘块中存在内部碎片。
- 在每个磁盘块中维护指针会有开销。
- 如果任何磁盘块的指针丢失, 文件将被截断。
- 它仅支持文件的顺序访问。
它解决了连续分配和链接分配的许多问题。在这种情况下, 文件分配表为每个文件包含一个单独的一级索引:对于分配给该文件的每个块, 该索引都有一个条目。分配可以基于固定大小的块或可变大小的块。按块分配可消除外部碎片, 而按可变大小的块分配可提高局部性。这种分配技术支持对文件的顺序访问和直接访问, 因此是文件分配的最流行形式。
文章图片
磁盘可用空间管理
就像必须管理分配给文件的空间一样, 必须管理当前未分配给任何文件的空间。要执行任何文件分配技术, 必须知道磁盘上的哪些块可用。因此, 除了文件分配表之外, 我们还需要一个磁盘分配表。以下是用于空闲空间管理的方法。
位表
:此方法对磁盘上的每个块使用一个包含一位的向量。每个0条目对应一个空闲块, 每个1对应一个正在使用的块。
例如:00011010111100110001
在该向量中, 每个位对应于一个特定的块, 0表示该特定块是空闲的, 而1则表示该块已被占用。位表的优点是, 找到一个或一组连续的空闲块相对容易。因此, 位表可与任何文件分配方法配合使用。另一个优点是它尽可能小。
免费黑名单
:在这种方法中, 每个块都被顺序分配一个编号, 所有空闲块的编号列表都保留在磁盘的保留块中。
文章图片
本文作者:
Aakansha yadav
推荐阅读
- 高盛软件工程师面试经验(2年以上经验)2020年9月
- 如何在PHP中获取完整URL()
- Python中的Collections.UserString用法介绍
- 二维测量法详细介绍和示例指南
- 3D测量法详细介绍和示例指南
- 模式搜索S6(有限自动机的有效构造)介绍和代码实现
- PHP fputcsv()函数用法示例
- python3语句,缩进和注释 – Python3教程
- PHP Ds PriorityQueue count()函数用法介绍