文件管理2

7.3 目录管理

对目录管理的要求:

(1)实现“按名存取”(目录管理中最基本的功能,文件系统向用户提供的最基本的服务)

(2)提高对目录的检索速度(文件系统追求的主要目标)

(3)文件共享

(4)允许文件重名

一、文件控制块和索引结点

  1. 文件控制块(FCB)

在文件控制块中,通常包含三类信息:基本信息、存取控制信息及使用信息。

1) 基本信息类

基本信息类包括:

(1) 文件名,指用于标识一个文件的符号名,在每个系统中,每一个文件都必须有唯 —的名字,用户利用该名字进行存取。

(2) 文件物理位置,指文件在外存上的存储位S,它包括存放文件的设备名、文件在 外存上的起始盘块号、指示文件所占用的盘块数,或字节数的文件长度。

(3) 文件逻辑结构,指示文件是流式文件还是记录式文件、记录数,文件是定长记录还是变长记录等。

(4) 文件的物理结构,指示文件是顺序文件,还是链接式文件或索引文件。

2) 存取控制信息类、存取控制信息类包括文件主的存取权限、核准用户的存取权限以及-般用户的存取权限。

3) 使用信息类 使用信息类包括文件的建立日期和时间、文件上一次修改的日期和时间,以及当前使用信息。这些信息包括当前己打开该文件的进程数,是否被其它进程锁住,文件在内存中 是否己被修改但尚未拷贝到盘上等。

  1. 索引节点(inode)

1) 磁盘索引结点

每个文件有唯一的一个磁盘索引结点,它主要包括以下内容:

(1) 文件主标识符,即拥有该文件的个人或小组的标识符:

(2) 文件类型,包括正规文件、目录文件或特别文件;

(3) 文件存取权限,指各类用户对该文件的存取权限:

(4) 文件物理地址,每一个索引结点中含有13个地址项,即iaddr(O)〜iaddr(12),它们 以直接或间接方式给出数据文件所在盘块的编号:

(5) 文件长度,指以字节为单位的文件长度;

(6) 文件连接计数,表明在本文件系统中所有指向该(文件的)文件名的指针计数;

(7) 文件存取时间,指出本文件最近被进程存取的时间、最近被修改的时间及索引结点最近被修改的时间。

2) 内存索引结点

当文件被打开时,要将磁盘索引结点拷贝到内存的索引结点中,便于以后使用。在内存索引结点中又增加了以下内容:

(1) 索引结点编号,用于标识内存索引结点;

(2) 状态,指示i结点是否上锁或被修改;

(3) 访问计数,每当有一进程要访问此i结点时,将该访问计数加1,访问完再减1:

(4) 文件所属文件系统的逻辑设备号;

(5) 链接指针,设置有分别指向空闲链表和散列队列的指针。

二、简单目录

  1. 单级文件目录

单级文件目录的优点是简单,但是只能实现最基本的功能按名存取。

 

    2.两级文件目录

 

优点:提高了文件检索速度,在不同文件目录可以使用相同文件名,不同用户使用不同文件名访问同一个共享文件。

三、多级树形目录

在现代OS中,树形结构目录是最通用且最实用的文件目录。明显提高对目录的检索速度和文件系统的性能。

每个文件目录只能有一个根目录,每个文件和每个目录只有一个父目录,数据文件称为树叶,其他目录均作为树的结点或者称为子目录

 

 

7.4 文件共享

一、基于有向无循环图实现文件共享

利用索引节点

 

 

在索引结点中还应有一个链接计数count,用于表示链接到本索引结点(亦即文件)上的 用户目录项的数目。当count=3时,表示有三个用户目录项连接到本文件上,或者说是有 三个用户共享此文件。

当用户C创建一个新文件时,他便是该文件的所有者,此时将count置1。当有用户B 要共享此文件时,在用户B的目录中增加一目录项,并设置一指针指向该文件的索引结点, 此时,文件主仍然是C, count=2。如果用户C不再需要此文件,是否能将此文件删除呢?回答是否定的,因为,若删除了该文件,也必然删除了该文件的索引结点,这样便会使B的 指针悬空,而B则可能正在此文件上执行写操作,此时将因此半途而废。但如果C不删除 此文件而等待B继续使用,这样,由于文件主是C,如果系统要记账收费,则C必须为B 使用此共享文件而付账,直至B不再需要。

 

二、利用符号实现文件共享

 

7.5 文件保护

影响文件安全性的主要因素:人为因素,系统因素,自然因素。

措施:存取控制机制,系统容错技术,建立后备系统。

一、保护域

  1. 访问权

我们把一个进程能对某对象执行操作的权利称为访问权。每个访问权可以用一个有序对(对象名,权集)来表示。

  1. 保护域

保护域是进程对一组对象访问权的集合,进程只能在指定域内执行操作。

原文地址:https://www.cnblogs.com/giaogiaogiao/p/12792745.html