【操作系统】磁盘

您所在的位置:网站首页 自举装入程序 【操作系统】磁盘

【操作系统】磁盘

#【操作系统】磁盘| 来源: 网络整理| 查看: 265

一旦文件被创建,它就能用于I/O,不过首先要打开文件。调用open将文件名传给文件系统,文件系统根据给定文件名搜索目录结构。部分目录结构通常缓存在内存中以加快目录操作。找到文件后,其FCB复制到系统范围的打开文件表。该表不但存储FCB,也有打开该文件的进程数量的条目。

然后,单个进程的打开文件表中会增加一个条目,并通过指针将系统范围的打开文件表的条目同其他域(文件当前位置的指针和文件打开模式等)相连。调用open返回的是一个 指向单个进程的打开文件表中合适条目的指针。所以文件操作都是通过该指针进行。

文件名不必是打开文件表的一部分,因为一旦完成对FCB在磁盘上的定位,系统就不 再使用文件名了。对于访问打开文件表的索引,UNIX称之为文件描述符(File Descriptor);而Windows 2000称之为文件句柄(File Handle)。因此,只要文件没有被关闭,所有文件操 作通过打开文件表来进行。

当一个进程关闭文件,就删除一个相应的单个进程打开文件表的条目即目录项,系统范 围内打开文件表的打开数也会递减。当打开文件的所有用户都关闭了一个文件时,更新的文 件信息会复制到磁盘的目录结构中,系统范围的打开文件表的条目也将删除。

在实际中,系统调用open会首先搜索系统范围的打开文件表以确定某文件是否已被其 他进程所使用。如果是,就在单个进程的打开文件表中创建一项,并指向现有系统范围的打 开文件表的相应条目。该算法在文件已打开时,能节省大量开销。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3