一、文件的基本概念
【总结】:
1. 文件的定义与组成
文件(File)是以硬盘为载体的存储在计算机上的信息集合,文件可以是文本文档、图片、程序等。在系统运行时,计算机以进程为基本单位进行资源的调度和分配;而在用户进行的输入、输出中,则以文件为基本单位。大多数应用程序的输入都是通过文件来实现的,其输出也都保存在文件中,以便信息的长期存储及将来的访问。当用户将文件用于程序的输入、输出时,还希望可以访问、修改和保存文件等,实现对文件的维护管理,这就需要系统提供一个文件管理系统,操作系统中的文件系统(File System)就是用于实现用户的这些管理要求的。
要清晰地理解文件的概念,就要了解文件究竟由哪些东西组成。
-
首先,文件中肯定包括一块存储空间,更准确地说,是存储空间中的数据;
-
其次,由于操作系统要管理成千上万的数据,因此必定需要对这些数据进行划分,然后贴上 “标签” ,以便于分类和索引,所以文件必定包含分类和索引的信息;
-
最后,不同的用户拥有对数据的不同访问权限,因此文件中一定包含一些关于访问权限的信息。
从用户的角度看,文件系统是操作系统的重要部分之一。用户关心的是如何命名、分类和查找文件,如何保证文件数据的安全性及对文件可以进行哪些操作等。而对于其中的细节,如文件如何存储在辅存上、如何管理文件辅存区域等方面关心甚少。
2. 文件的属性
除了文件数据,操作系统还会保存与文件相关的信息,如所有者、创建时间等,这些附加信息称为文件属性或文件元数据。文件属性在不同系统中差别很大,但通常都包括如下属性:
- 文件名称:由创建文件的用户决定文件名,主要是为了方便用户找到文件,同一目录下不允许有重名文件(同一目录下文件名称唯一,以容易读取的形式保存)。
- 标识符:一个系统内的各文件标识符唯一,对用户来说毫无可读性,因此标识符只是操作系统用于区分各个文件的一种内部名称。
- 类型:指明文件的类型
- 文件创建者信息:文件创建者的 ID 。
- 文件所有者信息:文件当前所有者的 ID 。
- 位置:指向设备和设备上文件的指针,指明文件存放的路径(让用户使用)、在外存中的地址(操作系统使用,对用户不可见)。
- 大小:指明文件当前大小(用字节、字或块表示),也可包含文件允许的最大值。
- 保护信息:对文件进行保护的访问控制信息。
- 创建时间、最后一次修改时间和最后一次存取时间:文件创建、上次修改和上次访间的相关信息,用于保护和跟踪文件的使用。
操作系统通过文件控制块(FCB)来维护文件元数据。这是 “文件控制块和索引节点” 部分会探讨的内容。
3. 文件内部数据的组织(文件的逻辑结构)
文件系统提供了与二级存储相关的资源的抽象,让用户能在不了解文件的各种属性、文件存储介质的特征及文件在存储介质上的具体位置等情况下,方便快捷地使用文件。用户通过文件系统建立文件,用于应用程序的输入、输出,对资源进行管理。
首先了解文件的结构,我们通过自底向上的方式来定义。
-
数据项。是文件系统中最低级的数据组织形式,可分为以下两种类型:
基本数据项。用于描述一个对象的某种属性的一个值,是数据中的最小逻辑单位。
组合数据项。由多个基本数据项组成。 -
记录。是一组相关的数据项的集合,用于描述一个对象在某方面的属性。
-
文件。是指由创建者所定义的、具有文件名的一组相关元素的集合,可分为有结构文件和无结构文件两种。
在有结构的文件中,文件由若干个相似的记录组成,如一个班的学生记录;
而无结构文件则被视为一个字符流,比如一个二进制文件或字符文件。
这是 “文件的逻辑结构” 部分会探讨的内容。
下图为文件内部数据的组织:
虽然上面给出了结构化的表述,但实际上关于文件并无严格的定义。在操作系统中,通常将程序和数据组织成文件。文件可以是数字、字符或二进制代码,基本访问单元可以是字节或记录。文件可以长期存储在硬盘中,允许可控制的进程间共享访问,能够被组织成复杂的结构。
3. 文件之间的组织(目录结构)
这是 “目录” 部分会探讨的内容
4. 存放在外存的文件(文件的物理结构)
从上往下看,文件应如何存放在外存?这是 “文件的物理结构”、“文件存储空间管理” 部分会探讨的内容。
5. 操作系统向上提供的功能
这是 “文件的操作” 部分会探讨的内容。
举个例子: