什么是"内部表"对于一个文件?

时间:2015-03-23 14:24:05

标签: file operating-system

来自Tanenbaum的现代操作系统关于文件操作:

  
      
  1. 打开。在使用文件之前,进程必须打开它。打开调用的目的是允许系统获取属性和列表   磁盘地址到主存储器中,以便以后的呼叫快速访问。
  2.   
  3. 关闭。完成所有访问后,不再需要属性和磁盘地址,因此应该关闭文件以释放   内部表空间
  4.   

什么是"内部表"?

我没有找到"内部表"在我阅读书中的引文之前定义的。它是否也被其他名称调用?

是在主内存中,还是专门为文件创建的?

感谢。

2 个答案:

答案 0 :(得分:1)

对于每个打开的文件,操作系统都维护一个服务结构,用于跟踪该文件,文件位置,打开模式等。一旦关闭文件,就不再需要该结构并将其丢弃。这就是那句话所指的 - 在某些操作系统上,这些操作系统将使用一些名为内部表空间的东西来完成,但这是一个实现细节。

Here's对相关问题的一个很好的答案。

答案 1 :(得分:1)

通常,支持多级数据结构来访问文件。在unix中,通常有两个级别:操作系统和库。在VMS中,有三个级别。系统服务,RMS和库。

在系统级别,文件成为逻辑设备。 (非常,Unix会跟踪此级别的读取位置。)

可以在某些系统(IBM,VMS)中找到记录级别访问权限。在文件系统支持多个文件结构(例如,流,固定,变量,索引)的情况下使用。 Unix只会流式传输。它也可以处理缓冲。

库访问提供特定于语言的功能。 C-RTL函数fopen()返回您通常访问的FILE *结构。 open()函数是Unix系统级函数(在某些系统上实现为库函数)。

这些层中的每一层都会创建需要释放的其他数据结构。