璁$畻鏈哄绉戜笓涓氬熀纭缁煎悎-璁$畻鏈烘搷浣滅郴缁熸枃浠剁鐞?涓? - 鐧惧害鏂囧簱 联系客服

发布时间 : 星期二 文章璁$畻鏈哄绉戜笓涓氬熀纭缁煎悎-璁$畻鏈烘搷浣滅郴缁熸枃浠剁鐞?涓? - 鐧惧害鏂囧簱更新完毕开始阅读621d7ea43a3567ec102de2bd960590c69fc3d801

解析:

(2).一个2GB大小的文件,在这个文件系统中实际占用多少空间?(分数:3.00)

__________________________________________________________________________________________ 正确答案:(占用空间分为文件实际大小和索引项大小,文件大小为2GB,从1)的计算可知,需要使用到二次间接索引项。该文件占用2GB/4KB=512K个数据块。 512K=10+1K+(512K-1K-10) 即占满了10项直接索引块,占满了1000个一次间接索引块,还有512K-1K-10=511K-10个二次间接索引块,需要占用的索引块个数[*]。因此除了文件实际大小,占用的空间有1个i_node数据结构空间(13×4B=52B),1个一级索引块(4KB),1个二级索引块(4KB),511个二级索引下的一级索引块(511×4KB),如图所示。 [*] 除了文件实际大小占用的空间总共占52B+4KB+4KB+511×4KB=52B+4KB+2MB,加上文件实际大小2GB,那么该文件实际占用磁盘空间大小为2GB+2MB+4KB+52B。) 解析:

(3).假设有规划表所示的访盘请求,请计算出对这些请求的服务次序,使得平均访问时间最短。设当前磁头的位置是6号柱面。

{{B}}访盘请求{{/B}} 请求顺序 柱面号 磁头号 扇区号 1 2 3 4 5 6 7 8 (分数:3.00)

__________________________________________________________________________________________ 正确答案:(由于题目只要求给出最省时的响应顺序,所以对具体算法没有限定。要注意的是,移臂时间由于是机械操作,在整个磁盘的访问时间中占据了主要地位,因此要首先考虑。由于当前磁头位于6号柱面,请求中,柱面号中有3个为3、3个为5、2个为9,一共可以有6种响应顺序,通过计算得知按照5,3,9的响应顺序时间开销最小,也就是先响应请求顺序2、7和8(暂不分先后),然后响应请求顺序1、3和4(暂不分先后),最后响应请求顺序5和6(暂不分先后)。 然后考虑旋转延迟时间优化,2、7和8请求的磁头号均不同,分别为1、2和4,访问的扇区号分别为5、5、8,因此只要磁头号不同但扇区号相同的请求同时响应,即让2、7请求在一起即可。取其中一种顺序可为2→7→8。 1、3、4请求的磁头号分别为2、2、4,访问的扇区分别为1、5、1,因此只要让磁头号不同但扇区号相同的请求同时响应,即让1、4请求在一起即可。取其中一种顺序可为3→1→4。 5、6请求的磁头号分别为2、1,访问的扇区号分别为1、5,不存在优势顺序,取其中一种可为5→6。 综上,可取服务次序为2→7→8→3→1→4→5→6。) 解析:

3 5 3 3 9 9 5 5 2 1 2 4 2 1 2 4 1 5 5 1 1 5 5 8 为了实现文件的共享,办法之一是把文件目录分成基本文件目录和符号文件目录。现设目录文件存放在磁盘上,盘块长度为1024B,每个文件说明占48B。其中,文件符号名占6B,内部标识符ID占2B,请回答下列问题:(分数:9.00)

(1).设一个目录文件原来共有256个目录表目,请求出未分解和分解后的平均访盘次数?(分数:3.00) __________________________________________________________________________________________ 正确答案:(目录文件原来共有256个目录表目,那么平均访问的是256/2个表目。 分解前,查找该目录文件的某个文件控制块的平均访盘次数为 [*] 分解后,查找该目录文件的某个文件控制块的平均访盘次数为 [*]) 解析:

(2).若某个目录文件未分解时需用N个盘块存放文件目录表目,而分解后只需用M个盘块存放符号文件目录表目。请求出未分解和分解后的平均访盘次数。并分析N和M应满足什么关系时分解才有意义。(分数:3.00)

__________________________________________________________________________________________ 正确答案:(其中N/2为分解前的平均读盘次数,M/2+1为分解后的平均读盘次数。 有意义即访问磁盘次数减少,需要满足的条件为N/2>M/2+1,由此可得M<N-2。 [总结] 利用文件控制块分解法加快查找速度的原理如下:减少因查找文件内部号而产生的磁盘访问次数。因为在查找文件内部号的过程中,不需要把文件控制块的所有字节(48字节)全部读入,只需读入第一部分(6+2=8)字节。这样,就可以大大减少查找过程中的读盘次数。但是,采用这种方法访问文件,当找到匹配的文件控制块后,还需要进行一次磁盘访问,读出完整的文件控制块信息。) 解析:

(3).以下是Linux文件系统的4个相关的结构定义中的一部分: Struct inode{ struct list_head i_hash; struct list_head i_denty; unsiqned long 0 i_ino; unsigned int i_count; kdev_t i_dev; umode_t i_mode; off_t i_size; time_t i_atime; time_t i_mtime; time_t i_ctime; unsigned long i_blksize; unsigned long i_blocks; union{ struct ext2_inode_info ext2_i; }u; }; struct

ext2_inode_info{ _u32i_data[15]; _u32i_flags; }; struct denty{ int d_count; struct inode *d_inode; /*where the name belongs to-NULL is negative*/ struct dentry *d_parent; /*parent directory*/ struct list_head d_hash; /*lookup hash list*/ unsigned char d_iname{DNAME_INLINE_LEN}; /*small name*/ }; Struct 1ist_head{ struct list_head*next, *prev; }; 1)请描述这些结构的作用和相互关系。 2)根据这些结构,请描述文件的物理结构。 3)基于这些结构,请设计至少4条有关文件系统功能调用的实现。(分数:3.00)

__________________________________________________________________________________________ 正确答案:(本题考查Linux系统的结点(inode)的相关内容。Ext2是事实上的Linux标准文件系统,它在1993年推出。 1)struct inode结构体代表的是i结点的数据结构。在Linux系统中,每个文件对应一个描述它的磁盘数据结构,这个结构被称为磁盘索引结点,即inode。inode包含了文件长度、文件位置、文件所有者、创建时间、上次存取时间以及许可权等诸多有关该文件的信息。i_denty成员是引用索引结点的目录项对象链表的头。 ext2_inode_info代表了inode在内存中的映像。其中i_data是数据块指针数组,i_flags是文件标识(属性)。 denty结构体是EXT2文件系统的目录结构。 list_head结构体是用来链接对象的链表。 2)文件的物理结构如图所示。 [*] 3)针对该文件系统的结构,可设计如下的系统调用。 create(dir、name、len、mode、res inode)文件创建函数,在指定的目录中建立一个文件的目录项。dir指定文件建立的目录地址,name为文件名,len为文件名长度,mode指定文件的类型和访问权限。参数res_inode返回新建inode的地址。 lookup(dir、name、len、res_inode)文件搜索函数,在dir目录中搜索名字为name、长度为len的文件。参数res_inode返回其inode地址。若不存在该文件,则返回值为enotdir。 link(oldinode、dir、name、len)文件链接函数,用于文件的硬链接。把oidinode对应的文件与dir中名字为name、长度为len的文件进行硬链接。 unlink(dir、name、len)文件链接撤销函数,从dir中删除名字为name、长度为len的链接文件。) 解析: