操作系统文件管理
(1) 什么是文件,它包含哪些内容及特点?
解:
文件是计算机系统中信息存放的一种组织形式,是在逻辑上具有完整意义的信息集合,并且有一个名字以供标识。
文件包含的内容有:源程序、二进制代码、文本文件、数据、表格、声音和图像等。
文件的特点如下:
- 文件具有保存性。它被存储在某种存储介质上,长期保存和多次使用。
- 文件是按名存取的。每个文件具有唯一的标识名,通过标识名(文件名)来存取文件中的信息,而不需了解文件在存储介质上的具体物理位置。
- 文件的内容是一组信息的集合。信息可以是源程序、二进制代码、文本文件、数据、表格、声音和图像等。
(2) 文件系统要解决哪些问题?
解:
文件系统的主要目标是提高存储空间的利用率,它要解决的主要问题有:完成文件存储空间的管理,实现文件名到物理地址的转换,实现文件和目录的操作,提供文件共享能力和安全措施,提供友好的用户接口。文件系统向用户提供了有关文件和目录操作的各种功能接口和系统调用,如命令接口、程序接口和交互接口等。
(3) 什么是逻辑文件?什么是物理文件?
解:
逻辑文件时从用户观点出发所观察到的文件组织形式,是用户可以直接处理的数据及其结构。
物理文件是指文件在外存上的存储组织形式。它与存储介质的存储性能有关。
(4) 文件的物理组织方式有哪些,各有什么优缺点?
解:
文件的物理组织方式有连续文件结构、链接文件结构和随机文件结构。
- 连续文件结构是由一组分配在磁盘连续区域的物理块组成的。文件中的每一个记录有一个序号,序号为i+1的记录,其物理位置一定紧跟在i号记录之后。
- 链接文件结构是按顺序由串联的块组成的,即文件的信息按存储介质的物理特性存于若干块中,一块中可包含一个逻辑记录或多个逻辑记录,或者一个逻辑记录占有多个物理块。每个物理块的最末一个字(或第一个字)作为链接字,它指向后继块的物理地址。文件的最后一块的链接字为结束标记(例如“ù”),它表示文件至本块结束。
- 随机文件结构是实现非连续分配的另一种方式。在随机文件结构中,文件的数据记录存放在直接存取型存储设备上,数据记录的关键字和其地址之间建立某种对应关系,并利用这种关系进行存取。通常有三种形式的随机文件结构:直接地址结构、索引结构和散列结构。
????连续文件的优点是不需要额外的空间开销,只要在目录中指出起始块号和文件长度,就可以对文件进行访问,且一次可以读出整个文件。对于固定不变且要长期使用的文件(比如系统文件),这是一种较为节省的方法。其缺点是:
- 不能动态增长。因为在它后面如果已经记录了别的文件,则这一文件增长就可能破坏后边的文件。如果后移下一个文件,则系统开销太大,甚至不可能。
- 一开始就提出文件长度要求,而要用户预先知道文件长度不是太容易。
- 一次要求比较大的连续存储空间,不一定好找。因为,如果外存上只有许多小的自由空间,虽然其总容量大于文件的要求,但由于不连续,因而这些空间可能被浪费。
????链接文件可以克服连续文件的上述缺点,然而它也存在如下缺点:
- 由于在处理文件的一部分时必须得顺序访问,因而访问速度较慢,时间上比较浪费。
- 对块链接而言,每个块中都要有链接字。所以,要占用一定的存储空间。
????相比之下,随机文件是一种比较好的结构,便于直接存取。但问题是,对于索引文件应考虑如何有效地存储和访问索引表,对于散列文件应寻找一个较好的散列算法和确定解决冲突的办法。
(5) 什么是文件目录,常用的文件目录结构有哪些,各有什么特点?
解:
????文件目录是文件控制块的有序集合,是文件系统中最基本的数据结构。通过它可以将文件名转换为文件在外存的物理位置。每一个文件控制块在文件目录中都有一个目录项,其中登记着文件的名字、外存地址、文件长度、逻辑结构、物理结构、访问权限、文件建立和修改时间等。
文件目录通常是放在磁盘上的。它的组织形式有3种:单级目录、二级目录和多级目录。其中用得最普遍的是多级目录。
- 单级目录是最简单的目录结构。在整个文件系统中只建立一张目录表,每个文件占一个目录项,目录项中包含文件名、文件扩展名、文件类型、文件长度、文件物理地址以及其它文件属性。
- 为了克服单级目录存在的缺点,改变单级目录中文件的命名冲突,并提高对目录文件的检索速度,可以为每一个用户建立一个单独的用户文件目录UFD(User File Directory)。这些文件目录具有相似的结构,它由用户所有文件的文件控制块组成。另为,系统再建立一个主文件目录MFD (Master File Directory),在主文件目录中,每个用户目录文件都占有一个目录项,其目录项中包括用户名和指向该用户目录文件的指针。
- 在大型文件系统中,通常采用三级或三级以上的目录结构,以提高对目录的检索速度和文件系统的性能。多极目录结构又称为树型目录结构。多级目录结构是一棵倒向的有根树,树根是根目录;从根向下,每一个树枝是一个子目录,而树叶则是文件。树形目录有许多优点:它较好地反映了现实世界中具有层次关系的数据集合和较确切地反映系统内部文件的分支结构,不同的文件可以重名,只要它们不位于同一子目录中即可,易于规定不同层次或子树中文件的不同存取权限,便于文件的保护、保密和共享等。
(6) 使用文件系统时,为什么要显式地使用open和close命令来打开和关闭文件?
解:
显式的open操作完成文件的打开功能。它将基本文件目录中的内容读入用户活动文件表中,并在系统活动文件表中记录文件的打开次数。显式的close操作完成文件的关闭操作。它撤销用户的活动文件表中相应的表项,改变系统活动文件表中的文件打开次数信息。如果需要,还要将被改动过的文件目录信息写回基本文件目录中。
可以取消显式的open与close操作。如果取消了open和close操作,系统在进行文件操作前需判断文件是否已打开。若未打开,则应自动完成文件的打开功能,以建立用户与文件间的联系。同时,在系统结束时还应自动关闭所有的被打开文件,更新系统的基本文件目录。
取消显式的open和close操作使得文件的读写操作变得复杂,因为,在每次读写前都需要判断文件是否已被打开。此外,系统在结束时也要做一些额外的工作,以完成close应该完成的操作。
(7) 文件系统提供系统调用rename来实现文件重命名,同样也可以通过把文件拷贝到新文件并删除原文件来实现文件的重命名,这两种方法有什么不同?
解:
使用rename文件重命名功能时,用户必须提供两个参数:旧文件名和新文件名。实现该功能时,系统使用旧文件名查找文件目录,若找到旧文件名所对应的目录表项,则将目录表项中文件名字段对应的值改为新文件名值。从实现过程看,文件重命名功能完成的工作是修改目录表项中的文件名字段,除文件名外,文件的其它特性都未改变。
在后一种实现方法中,先进行文件复制并给复制文件起一个新名,此时系统完成了一次物理文件的复制工作,然后删除旧文件。虽然这样也能达到给文件重命名的目的,但其实现过程比前一种方式复杂,并且新文件与旧文件的物理存放地址肯定不同。
(8) Hash检索法有何优点?有何局限性?
解:
Hash方法是根据记录的“主属性值”进行Hash运算,用得出的值确定该记录的存放位置。其优点是:
- 该方法实现起来比较简单。
- 检索记录的时间也比较短。
由于设计的Hash函数很难达到理想的均匀分布,因此可能会出现较多有相同Hash的记录值,这将造成存放位置的冲突,使检索速度下降。
(9) 采用单级目录能否满足对目录管理的主要要求?为什么?
解:
单级目录是最简单的目录结构。在整个文件系统中只建立一张目录表,每个文件占一个目录项,目录项中包含文件名、文件扩展名、文件类型、文件长度、文件物理地址以及其它文件属性。
????单级目录的优点是简单、易于实现,实现了目录管理的基本功能——按名存取,但却存在以下一些缺点:
- 查找速度慢:当系统中存在大量文件或众多用户同时使用文件时,由于每个文件占用一个目录项,单级目录中就拥有数量可观的目录项。如果要从目录中查找一个文件,就需要花费相当长的时间才能找到。对于一个具有N个目录项的单级目录,为检索出一个目录项,平均需要找N/2个目录项。
- 不允许重名:因为所有的文件都在同一目录中,因此每个文件必须有不同的文件名,然而,重名问题在现代操作系统中是难以避免的。另外,即使在单用户环境下,随着文件数量的增加,让用户记住所有的文件名也是不可能的。
- 不便于文件的共享:通常每个用户都有自己的名字空间和命名习惯,应当允许不同用户使用不同的文件名来访问同一文件,然而,单级目录却要求所有用户用同一个名字来访问同一文件。
所以,单级目录不能满足对目录管理的主要要求。
(10) 什么是文件的共享,实现文件共享的方式有哪些?
解:
文件共享是指不同的用户可以使用同一文件。文件的共享可以节省大量的辅存空间和内存空间,减少输入/输出操作,为用户间的合作提供便利条件。
从系统管理的角度来看,有3种方法可以实现文件的共享,即:绕道法、?链接法和基本文件目录表?BFD。
(11) 文件目录和目录文件各起什么作用?
????解:
????文件目录又称文件控制块或文件说明信息,它记录文件的名字、文件长度、文件存放在外存上的物理地址,以及文件建立时间、日期等信息。通常,文件系统中把若干相互关联文件的目录组成一个独立的文件,这个由文件目录组成的文件称为目录文件。
(12) 某操作系统的磁盘文件空间共有500块,若用字长为32位的位示图管理磁盘空间,试问:①位示图占用多少磁盘空间?②第i字第j位对应的磁盘块号是多少?
解:
① 占用16个字的存储空间。
② ?32′i+j。
(13) 试说明对索引文件和索引顺序文件的检索方法。
解:
索引文件中,每一个主文件的记录都要建立一条索引。这里,主文件的记录可以是变长的,键值可以是无序的。索引表是定长的和有序的,适合采用折半检索法进行检索。
索引顺序文件中,主文件中的记录分成若干组,每一组的第一条记录建立一条索引项。整个索引文件是按键值排序的,系统可采用折半检索法对文件进行快速检索。检索到记录所在的外存块后,读出该块,再进行顺序查找和比较,最后找到所需要的记录。
(14) 目前广泛采用的目录结构形式是哪一种?它有什么优点?
解:
目前广泛采用的目录结构形式是多级目录结构,也称树型目录结构。它可以实现文件管理的主要要求,其优点是:
- 检索速度快
- 文件可重名
- 便于文件共享
(15) 基本的文件访问类型有哪些?什么是访问控制表?
????解:
????一个文件系统可以定义多种不同的访问类型,基本的访问类型有:
- 读(R):从文件中读信息。
- 写(W): 对文件内容进行写或重写。
- 执行(E):用户可以将文件装入内存并执行它。
- 添加(A):将信息添加到文件末尾。
- 删除(D):删除文件,释放其占用的空间。
不同的用户可能对同一个文件或目录需要不同类型的访问。实现基于身份访问的最普通的方法是为每个文件和目录增加一个访问控制表(access control list,ACL),以给定每个用户名及其所允许的访问类型。当用户请求访问一个特定文件时,操作系统先检查该文件的访问控制表,如果用户具有相应的访问权限,就允许其访问,否则,就出现保护违约,拒绝用户访问。
(16) 什么是索引文件?为什么要引入多级索引?
解:
索引文件中每条主文件的记录都建立一个索引记录,因而需要为主文件建立索引表。在对索引文件进行检索时,首先根据用户(程序)提供的关键字,并利用折半查找法去检索索引表,从中找到对应的表项,再利用该表项中给出的指向记录的指针值,去访问所需的记录。
在很多情况下,有的文件很大,文件索引表也就较大。如果索引表的大小超过一个物理块,那么我们就必须像处理其它文件的存放那样决定索引表的物理存放方式,但这不利于索引表的动态增加;索引表也可以按链接联方式存放,但这却增加了存放索引表的时间开销。显然,当文件太大,其索引块太多时,这种方法是低效的。一种较好的解决办法是采用多级索引,也就是在索引表所指的物理块中存放的不是文件信息,而是装有这些信息的物理块地址。
(17)VFS主要由哪几种类型的对象组成,描述它们之间的关系。
解:
VFS主要有四个对象:
(1)超级块对象:存储对具体某个文件系统的描述信息。
(2)inode对象:存储对具体某个文件的描述信息。
(3)目录项对象:存储对具体某个目录的描述信息。
(4)文件对象:存储具体某个已打开的文件的描述信息,文件对象表即“打开文件表”。
inode对象对应于一个文件,该文件一般在磁盘上,inode对象与文件之间是一一对应关系。而一个真正的文件可能有多个文件名,因此目录项对象与inode之间是多对一关系。不同的进程可能打开同一个文件,但不能用一个文件对象来描述,因此file对象与目录项对象之间是多对一的关系。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!