文件管理系统负责分配外部存储器,将文件名映射到相应的外部存储器地址,并提供对数据的访问。
文件系统这一术语既指管理文件的软件系统,也指存储在外部存储器中的文件档案。
第一个开发的文件系统是由IBM在60年代中期为该公司的System/360系列计算机开发的。
这个系统既支持纯粹的顺序文件,也支持索引顺序文件,其实现在很大程度上依赖于磁盘设备控制器的能力,而这些控制器在那个时候才出现。
控制器允许与磁盘设备交换任意的数据块,以及对文件记录的索引访问,这些控制器的功能在OS/360文件系统中被积极使用。OS/360 文件系统为未来的开发者提供了使用带有可移动磁头的磁盘设备的独特经验,这在所有现代文件系统中都有所体现。
讨论文件系统的历史,其主要特点和合理使用的领域:
1.文件结构。
2.文件系统的逻辑结构和文件命名。
3.文件访问授权。
4.多用户访问的同步化。
5.合理使用文件。
我们将仅限于描述所谓的传统文件系统的主要特征,而不涉及可靠性提高的现代系统的特征。
在几乎所有现代计算机中,主要的外部存储设备都是带有可移动磁头的磁盘,它们用于存储文件。
如前所述,磁盘的硬件允许与磁盘交换任意大小的数据部分。然而,与磁盘交换部分的能力,其大小小于块的总容量,目前在文件系统中没有使用。
首先,仅读取或写入块的一部分不会导致总交换时间的显着增加。
其次,为了处理部分块,文件系统 必须提供适当大小的 RAM 缓冲区,这使主存储器的分配显着复杂化。
以任意大小的块分配内存的算法很糟糕,因为它们中的任何一个迟早都会导致外部内存碎片。
大量小的空闲碎片在内存中形成。
它们的总大小可以大于任何所需的缓冲区,但只有在执行内存压缩时才能分配它,即移动所有占用的片段以使它们彼此靠近。内存压缩操作正在进行时需要暂停交换,操作本身需要很长时间。
这就是为什么所有现代文件系统都明确或隐含地分配了一个提供处理基础文件的层,基础文件是在文件地址空间中按顺序编号并映射到物理磁盘块的一组块。
逻辑文件块的大小与物理磁盘块相同或其倍数。
通常情况下,逻辑块的大小被选择为等于计算机硬件与操作系统共同支持的虚拟内存页的大小。
在一些文件系统中,基础层是用户可以访问的,但更多的时候是由一些更高的层级覆盖,是用户的标准。
从历史上看,主要有两种方法。
在第一种方法中,如惠普的OpenVMS,用户认为文件是一个记录的序列。每条记录是一串字节,大小固定或可变。可以按顺序读取或写入记录,或将文件定位在有指定编号的记录上。
在一些文件系统中,有可能将记录结构化为字段,并将指定的字段声明为记录的键。在这样的文件系统中,有可能要求按其指定的键从文件中获取记录。在这种情况下,文件系统在同一(或其他,服务)基础文件中维护额外的服务数据结构,用户看不到。
钥匙文件组织的常见方法是基于散列和B树技术。也有多键组织文件的方法(一个文件有几个键,可以根据每个键的值来选择记录)。
第二种方法在 UNIX 操作系统中得到广泛应用,即任何文件都表示为连续的字节序列。可以从文件中读取指定数量的字节,可以从文件的开头开始,也可以在将其定位到具有指定数量的字节之后。
同样,您可以将指定数量的字节写入文件末尾,或者先定位文件之后。
但是,对用户隐藏,但存在于各种 UNIX OS FS 中的是文件的基本块表示。当然,在这两种情况下,都可以提供一组转换函数来更改文件的表示。
这方面的一个例子是在 OpenVMS 操作系统环境中对标准 UNIX 文件系统的支持。
文件系统是管理外部存储器中文件的关键组件,起源于IBM的System/360。本文探讨了文件结构、逻辑命名、访问授权、多用户同步及合理使用。现代文件系统通常基于块分配,避免内存碎片,且分为用户可访问的基础层和其他高层结构。两种主要方法包括OpenVMS的记录序列和UNIX的字节序列,前者支持按键查找,后者提供字节定位。

1170

被折叠的 条评论
为什么被折叠?



