《文件管理课后习题解答》由会员分享,可在线阅读,更多相关《文件管理课后习题解答(16页珍藏版)》请在金锄头文库上搜索。
1、第五章 文件管理1第五章 习题解答 1什么是文件和文件系统?文件系统有哪些功能? 【解答】文件是具有符号名而且在逻辑上具有完整意义的信息项的有 序序列。 文件系统是指操作系统系统中实现对文件的组织、管理和存取的一组 系统程序,它实现对文件的共享和保护,方便用户“按名存取”。 文件系统的功能“ (1)文件及目录的管理。如打开、关闭、读、写等。 (2)提供有关文件自身的服务。如文件共享机制、文件的安全性等 。 (3)文件存储空间的管理。如分配和释放。主要针对可改写的外存 如磁盘。 (4)提供用户接口。为方便用户使用文件系统所提供的服务,称为 接口。文件系统通常向用户提供两种类型的接口:命令接口和程
2、序接 口。不同的操作系统提供不同类型的接口,不同的应用程序往往使用 不同的接口。第五章 文件管理22Linux文件可以根据什么分类?可以分为哪几类?各有什么特点? 【解答】在Linux操作系统中,文件可以根据内部结构和处理方式进行 分类。 在Linux操作系统中,可以将文件分为普通文件、目录文件、特别文件 三类。 各类文件的特点是: 普通文件:由表示程序、数据或正文的字符串构成的文件,内部没有固 定的结构。 这种文件既可以是系统文件,也可以是库文件或用户文件 。 目录文件: 由文件目录构成的一类文件。 对它的处理(读、 写、 执行) 在形式上与普通文件相同。 特别文件:特指各种外部设备,为了便
3、于管理,把所有的输入/输出设 备都按文件格式供用户使用。 这类文件对于查找目录、存取权限验证 等的处理与普通文件相似,而其他部分的处理要针对设备特性要求做相 应的特殊处理。 应该指出,按不同的分类方式就有不同的文件系统。第五章 文件管理33什么是文件的逻辑结构?什么是文件的物理结构?Linux 文件系统分别采用什么样的结构?有什么优点和缺点? 【解答】文件的逻辑结构:用户对文件的观察的使用是从自 身处理文件中数据时采用的组织方式来看待文件组织形式。 这种从用户观点出发所见到的文件组织方式称为文件的逻辑 组织。 文件的物理结构:从系统的角度考察文件在实际存储设备上 的存放形式,又称为文件的存储结
4、构。 在Linux系统中,所有文件的逻辑结构都被看作是流式文件 ,系统不对文件进行格式处理。 在Linux系统中,文件的物理结构采用的是混合多重索引结 构,即将文件所占用盘块的盘块号,直接或间接地存放在该 文件索引结点的地址项中。 在Linux系统中,采用混合索引结构的优点是,对于小文件 ,访问速度快;对于大中型的文件,其文件系统也能很好的 支持;缺点是会带来因为多次访问磁盘而影响速度。第五章 文件管理44目前广泛用的目录结构形式是哪种?它有什么优点? 【解答】广泛用的目录结构形式是树型目录结构。 优点: (1)能有效的提高对目录的检索速度。 (2)允许文件重名。允许用户在自己的分目录中,使用
5、 与其他用户相同的文件名。 (3)便于实现文件共享。第五章 文件管理55常见的文件存储空间管理有哪几种?各自有什么特点?Linux系统 的存储空间管理采用什么方法? 【解答】常见的文件存储空间管理有:空闲空间表法、空闲块链接法 、位示图法、空闲块成组链接法。 空闲空间表法:所有连续的空闲盘块在表中占有一项,其中每一个空 闲表项包括序号、空闲区的第一个盘块号、该区的空闲盘块数及对应 的空闲物理块号。利用该表进行盘块的分配和文件删除时盘块的回收 。 空闲块链接法:将磁盘上的所有盘块拉成一条链,用一个指针指向第 一个空闲块,而各个空闲块中都含有下一个空闲区的块号,最后一块 的指针项记为NULL,表示
6、链尾。分配和释放盘块都在链头进行。 位示图法:利用一串二进制位的值来反映磁盘空间的分配情况,每个 盘块都对应一位。若盘块空闲,对应位为0;若盘块已分配出去,则 对应位为1。 空闲块成组链接法:把所有空闲盘块按固定数量分组,组与组之间形 成链接关系,最后一组的块号通常放在内存的一个专用栈中。因而对 盘块的分配和回收都在栈中进行。 Linux系统的存储空间管理采用空闲块成组链接法。第五章 文件管理66内存管理和外存管理有何异同? 【解答】可以从以下几个方面进行比较: (1)主要任务:内存管理的主要任务是为多道程序的运行 提供良好的环境,使每到程序都能顺利运行。外存管理的主 要任务是为文件提供存储空
7、间。 (2)基本功能:内存管理的基本功能包含了内存空间的分 配、回收、保护、扩充等方面。外存管理的基本功能则只是 对外存空间的分配和回收。 (3)分配方式:内存和外存管理都可采用连续或离散分配 方式,且都以离散分配方式为主。 (4)分配算法:对于连续分配方式,内存与外存管理中的 分配和回收算法类似,主要有首次适应算法、循环首次适应 算法等。在离散分配方式中,两者索采用的机制不同,内存 管理只要利用页表或段表;在外存管理中,则主要利用文件 分配表。 (5)分配单位:内存以字节为单位,外存则以盘块为单位 分配。第五章 文件管理77为什么要打开文件?叙述在linux文件系统,打开文件 /home/u
8、ser01/myfile的过程? 【解答】当用户要求对一个文件实施多次读/写或其他操作 时,每次都要从检索目录开始。为了避免多次重复地检索目 录,在大多数OS中都引入了“打开”(open)这一文件系统 调用,当用户第一次请求对某文件进行操作时,先利用 open系统调用将该文件打开。 在UNIX文件系统,打开文件/home/user01/myfile的过程四 步: (1)检索目录 核心先调用检索目录过程namei从根目录或从当前目录开始 ,沿目录树查找指名文件的索引结点。在查找时,利用线性 检索法,将文件路径名中的各分量名,与相应目录文件中的 文件名逐一进行比较。若未找到该文件名,或者该文件不允
9、 许存取,便做出错处理;否则,进入第二步。第五章 文件管理8(2)分配内存索引结点 如果该文件已被其他用户打开,此时只需对在第一步中所 找到的i结点,执行其引用计数加1的操作;否则,应为被 打开文件分配一个内存i结点,并调用磁盘读过程将磁盘i 结点的内容拷贝到内存 i 结点中,并设置i.count为1。 (3)分配文件表 这是指为已打开的文件分配一个文件表项,使文件表项中 的 f. node指向内存索引结点。通常还将读写指针f.offset 置为 0,以表示从头开始读写此文件;置读写标志 f flag,及将文件的引用计数fcount加 1,并记入该表项的 首址fp。 (4)分配用户文件描述表项
10、 在用户文件描述表中取得一空表项。若成功,便将fp填入 该表项中,并把该表项的序号fd作为文件描述符,写入调 用进程的U区中。第五章 文件管理98.在Linux系统中,一个盘块大小为1KB,每个盘块号占 4B,则一个进程要访问一个相对于文件开始的偏移量为 263168B处的数据时,计算是直接还是索引访问,几级索 引? 【解答】一次间接。 263168B/1024B=257 即该地址在第257块。 块内偏移量为:263168-1024*257=0 因 10257266 故为一次间接。第五章 文件管理109有一个UNIX文件的权限为:rwxr_x_ _ _,该文件的文 件主为uid=12,gid=
11、1,有一用户B的uid=6,gid=1,问:系 统是否允许用户B执行该文件?为什么? 【解答】允许。 因为UID为用户标识符。说明用户B与该文件主为同组用 户。 10说明Linux系统磁盘的结构及各部分的功能。 【解答】(1)(2)0号块存放引导程序,是引导区,1号块是超级块, 也叫超级块,存放文件卷的管理信息,索引节点区存放各 文件的索引结点;文件区存放文件的内容。第五章 文件管理1111磁盘容量为1.2GB的硬盘,假设盘块大小为1KB,每 个盘块号在FAT表区占4B,你作为磁盘的设计人员,应设 FAT区为多长? 【解答】1.2GB=1.2M*1KB 即 1.2GB/1KB=1.2M 磁盘由
12、1.2个磁盘块组成。 1.2*4B=4.8MB 所以磁盘的FAT表区长度应为4.8MB第五章 文件管理1212设在linux中有一进程P,P中有一操作需要访问一文 件中偏移量为14000处的数据;试问linux如何实现地址变 换? 【解答】(1)核心将14000换为逻辑块号13及块内偏移 量688; (2)判断,因1013266,故为一次间址; (3)从i.add(10)中取得盘块号,设为x; (4)调用bread过程读x盘块; (5)在一次间址中的文件逻辑块号为3(从0编); (6)从中得实际块号,设为y; (7)则该块中的688即为所求。第五章 文件管理1313多操作系统中提供了文件重命名
13、功能,它能赋予文件 一个新名字。若进行文件复制,并给复制文件起一个名字 ,然后删除旧文件,也能达到给文件重命名的目的。试问 这两种方法在实现上有何不同? 【解答】使用文件重命名功能时,用户必须提供两个参数 :旧文件名,新文件名。实现该功能时,系统使用旧文件 名查找文件目录,若找到旧文件名所对应的目录表目,则 将目录表中文件名字段对应的值改为新文件名值。从实现 过程看,文件重命名功能完成的工作是修改目录表中的文 件名字段,除文件名外,文件的其它特性都未改变。 在后一种实现方法中,先进行文件复制并给复制文件起一 个新名,此时系统完成了一次物理文件的复制操作,然后 删除旧文件。虽然这样也能实现给文件
14、重命名的目的,但 其实现过程比前一种方式复杂,并且新文件与旧文件的物 理存放地址肯定不同。第五章 文件管理1414在利用link系统调用进行连接时,如果 path1=/usr/zhang/ff.c,path2=/usr/li/message/ff.c,试画 出此时的树型目录图。 【解答】在树型文件系统中,每一个文件都有一路径名。 例如,用户zhang的文件ff.c的路径名为/usr/zhang/ff.c。 如果用户li要共享此文件,可利用系统调用 link(path1,path2) 与文件ff.c建立连接。其中参数 path1=/usr/zhang/ff.c path2=/usr/li/mes
15、sage/ff.c, 即在li的message目录文件中创建一个新目录项。建立连 接后的树型目录结构图如下:第五章 文件管理15rootusrZhanglimessa geff.c第五章 文件管理1615在实现文件共享时,如果不先进行连接,会产生什么 后果? 【解答】建立连接的目的,一方面是为共享该文件的用户 增加一新的文件路径名,另一方面是让系统知道有多少个 用户需要使用该文件。在每次连接时,该文件的索引结点 访问计数会增加1。共享该文件时,若无建立连接的操作 ,系统就无法知道是否还有用户需要该文件,其后果可能 是:当用户要使用该文件时,发现该文件已被删除;或者 在用户使用该文件期间,文件突然被删除。