文件管理

1.下列文件物理结构中,适合随机访问且易于文件扩展的是()

  • 连续结构
  • 索引结构
  • 链式结构且磁盘块定长
  • 链式结构且磁盘块变长

解析:

文件的物理结构包括连续、链式、索引三种,其中链式结构不能实现随机访问,连续结构的文件不易于扩展。因此随机访问且易于扩展是索引结构的特性。

2.假设磁头当前位于第105道,正在向磁道序号增加的方向移动。现有一个磁道访问请求序列为35,45,12,68,110,180,170,195,采用SCAN调度(电梯调度)算法得到的磁道访问序列是()。

 

 

  • 110,170,180,195,68,45,35,12
  • 110,68,45,35,12,170,180,195
  • 110,170,180,195,12,35,45,68
  • 12,35,45,68,110,170,180,195

解析:

SCAN算法类似电梯的工作原理。首先,当磁头从105道向序号增加的方向移动时,便会按照从小到大的顺序服务所有大于105的磁道号(110,170,180,195);往回移动时又会按照从大到小的顺序进行服务(68,45,35,12)。

3.文件系统中,文件访问控制信息存储的合理位置是(A)。

  • 文件控制块
  • 文件分配表
  • 用户口令表
  • 系统注册表

解析:为了实现“按名存取”,在文件系统中为每个文件设置用于描述和控制文件的数据结构,称之为文件控制块(FCB)。在文件控制块中,通常包含以下三类信息,即基本信息、存取控制信息及使用信息。

 

 4.设文件F1的当前引用计数值为1,先建立F1的符号链接(软链接)文件F2,再建立F1的硬链接文件F3,然后删除F1。此时,F2和F3的引用计数值分别是__1    和  1  ____。

[解析] 
为了使文件实现共享,通常在文件的索引节点中设置一个链接计数字段,用来表示链接到本文件的用户目录项的数目(引用计数值)。当新文件建立时,一般默认引用计数值为1。
硬链接可以看作是已存在文件的另一个名字,新文件和被链接文件指向同一个节点,引用计数值加1。当删除被链接文件时,只是把引用计数值减1,直到引用计数值为0时,才能真正删除文件。
软链接又叫符号链接,在新文件中只包含了被链接文件的路径名,新文件和被链接文件指向不同的节点。建立软链接文件时,文件的引用计数值不会增加。在这种方式下,当被链接文件删除时,新文件仍然是存在的,只不过是不能通过新文件访问被链接文件而己。
因此,在本题中,当建立F2时,F1和F2的引用计数值都为1。当再建立F3时,F1和F3的引用计数值就都变成了2。当后来删除F1时,F3的引用计数值为2-1=1。F2的引用计数值仍然保持不变。

5.设文件索引节点中有7 个地址项,其中4 个地址项是直接地址索引,2 个地址项是一级间
接地址索引,1 个地址项是二级间接地址索引,每个地址项大小为4B,若磁盘索引块和磁盘数据块
大小均为256B,请计算可表示的单个文件最大长度。

解析:
每个索引块上可以存放的索引项为256B/4B=26 个。直接索引的数据块有4 块;两个一级
间接索引指向的数据块有2×26=27 个;一个二级间接索引指向的数据块有1×26×26=212 个。所以单
个文件最大可以有4+27+212(=4228)个数据块。
文件大小为 4228×256B=(4+27+212)×28=33KB+1MB=1057KB

6.设置当前工作目录的主要目的是()。

  • 节省外存空间
  • 节省内存空间
  • 加快文件的检索速度
  • 加快文件的读/写速度=

解析:当一个文件系统含有多级目录时,每访问一个文件,都要使用从树根开始到树叶为止、包括各中间结点名的全路径名。当前目录又称工作目录,进程对各个文件的访问都相对于当前目录进行,而不需要从根目录一层一层的检索,加快了文件的检索速度。选项AB都与相对目录无关;选项D,文件的读/写速度取决于磁盘的性能。 

7.用户在删除某文件的过程中,操作系统不可能执行的操作是()。 

  • 删除此文件所在的目录
  • 删除与此文件关联的目录项
  • 删除与此文件对应的文件控制块
  • 释放与此文件关联的内存级冲区

解析:删除文件不需要删除文件所在的目录,而文件的关联目录项和文件控制块需要随着文件一同删除,同时释放文件的关联缓冲区。

8.为支持CD-ROM 中视频文件的快速随机播放,播放性能最好的文件数据块组织方式是( )。 

  • 连续结构
  • 链式结构
  • 直接索引结构
  • 多级索引结钩

解析:
因为要支持 快速随机播放 ,所以要保证最短的查询时间,即不能选取链表和索引结构,因此连续结构是最优的方案。

下面是3种文件分配方式的优缺点:

  1. 连续分配支持顺序访问和直接访问(可以对比数组来考虑,支持直接存取,所以很方便),实现简单,存取速度快。缺点是,文件长度不宜动态增加,因为一个文件末尾后的盘块可能已经分配给了其他文件,一旦需要增加,就需要大量移动盘块,此外,反复增删文件后会产生外部碎片。(可以类比数组的插入和删除)
  2. 链接分配就类似于链表了,每一个盘块都有指向下一个盘块的的指针。优点是增、删、改非常方便,缺点在于不能直接访问某个盘块,另外假如某个盘块的指针坏了,往后的数据都会丢失。
  3. 索引分配是把每个文件的所有的盘块号都集中放在一起构成索引块(表),优点是可以随机访问,方便文件的增删,缺点是增大了存储空间的开销,索引表的查找策略对文件系统效率影响较大。

9.若某文件系统索引结点(inode)中有直接地址项和间接地址项, 则下列选项中, 与单个文件长度无关的因素是( A)。

  • 索引结点的总数
  • 间接地址索引的级数
  • 地址项的个数
  • 文件块大小

解析:
因为地址项的个数等于直接地址索引+间接地址索引。而单个文件的大小和间接地址索引的个数和文件块的大小都有关系。

Linux文件系统 使用索引节点来记录文件信息,作用类似于Windows下的文件分配表。索引节点是一个结构,它包含了一个文件的长度、创建及修改时间、权限、所属关系、磁盘中的位置等信息。

10.现有一个容量为10GB的磁盘分区,磁盘空间以簇(Cluster)为单位进行分配,簇的大小为4KB,若采用位图法管理该分区的空闲空间,即用一位(bit)标识一个簇是否被分配,则存放该位图所需簇的个数为

 

  • 80
  • 320
  • 80k
  • 320k

解析:

簇的总数为10GB/4KB=2.5M,用一位标识一簇是否被分配,则整个磁盘共需要2.5M位,即需要2.5M/8=320KB,则共需要320KB/4KB=80个簇,选A。

11.在一个文件被用户进程首次打开的过程中,操作系统需做的是 

  • 将文件内容读到内存中
  • 将文件控制块读到内存中
  • 修改文件控制块中的读写权限
  • 将文件的数据缓冲区首指针返回给用户进程

解析:

一个文件被用户进程首次打开即被执行了Open操作,会把文件的FCB调入内存,而不会把文件内容读到内存中,只有进程希望获取文件内容的时候才会读入文件内容;C、D明显错误,选B

12.在系统内存中设置磁盘缓冲区的主要目的是()。

  • 减少磁盘 I/O 次数
  • 减少平均寻道时间
  • 提高磁盘数据可靠性
  • 实现设备无关性

解析:磁盘和内存的速度差异,决定了可以将内存经常访问的文件调入磁盘缓冲区,从高速缓存中复制的访问比磁盘   I/O   的机械操作要快很多很多。

缓和高速CPU与低速I/O设备间速度不匹配的矛盾;提高它们之间的并行性;减少对CPU的中断次数,放宽CPU对中断响应时间的要求。
文件系统与块设备驱动并不直接打交道,中间通过缓冲区管理联系起来。完成文件系统对具体块设备的读写操作要经过请求管理(strategy)、缓冲区管理、中断管理。 

解决了磁盘和内存的速度不匹配问题

13.在文件的索引节点中存放直接索引指针10 个,一级和二级索引指针各 1 个。磁盘块大小为 1KB,每个索引指针占 4 个字节。若某文件的索引节点已在内存中,则把该文件偏移量(按字节编址)为 1234和 307400 处所在的磁盘块读入内存,需访问的磁盘块个数分别是(B)。

 

  • 1,2
  • 1,3
  • 2,3
  • 2,4

解析:
10 个直接索引指针指向的数据块大小为 10*1KB=10KB ;

每个索引指针占 4B ,则每个磁盘块可存放 1KB/4B=256 个索引指针,

一级索引指针指向的数据块大小为: 256*1KB=256KB

二级索引指针指向的数据块大小为: 256*256*1KB=65536KB=64MB

按字节编址,偏移量为 1234 时,因 1234B < 10KB ,则由直接索引指针可得到其所在的磁盘块地址。文件的索引结点已在内存中,则地址可直接得到,故仅需 1 次访盘即可。

偏移量为 307400 时,因 10KB+256KB < 307400B < 64MB ,可知该偏移量的内容在二级索引指针所指向的某个磁盘块中,索引结点已在内存中,故先访盘 2 次得到文件所在的磁盘块地址,再访盘 1 次即可读出内容,故共需 3 次访盘。

 14.文件系统用位图法表示磁盘空间的分配情况,位图存于磁盘的32~127号块中,每个盘块占1024个字节,盘块和块内字节均从0开始编号。假设要释放的盘块号为409612,则位图中要修改的位所在的盘块号和块内字节序号分别是

 

  • 81、1
  • 81、2
  • 82、1
  • 82、2

解析:位图表示法:409612/(8*1024)=50,还余12,所以共需要51个块。从32开始的话到了32+51-1=82号块,因为余下的12位,需要占两个字节,从0序号开始的话所以到了1序号字节

15.某硬盘有200个磁道(最外侧磁道号为0),磁道访问请求序列为:130,42,180,15,199,当前磁头位于第58号磁道并从外侧向内侧移动。按照SCAN调度方法处理完上述请求后,磁头移过的磁道数是 。C

 

  • 208
  • 287
  • 325
  • 382

解析:

SCAN算法就是电梯调度算法。顾名思义,如果开始时磁头向外移动就一直要到最外侧,然后再返回向内侧移动,就像电梯若往下则一直要下到最底层需求才会再上升一样。当期磁头位于58号并从外侧向内侧移动,先依次访问130和199,然后再返回向外侧移动,依次访问42和15,故磁头移过的磁道数是:(199-58)+(199-15)=325。

16.假设计算机系统采用CSCAN(循环扫描)磁盘调度策略,使用2KB的内存空间记录      16 384个磁盘块的空闲状态。

1)请说明在上述条件下如何进行磁盘块空闲状态的管理。

2)设某单面磁盘旋转速度为6000r/min,每个磁道有100个扇区,相邻磁道间的平均移动时间为1ms。若在某时刻,磁头位于100号磁道处,并沿着磁道号增大的方向移动(如图B-5所示),磁道号请求队列为50,90,30,120,对请求队列中的每个磁道需读取1个随机分布的扇区,则读完这4个扇区点共需要多少时间?要求给出计算过程。

3)如果将磁盘替换为随机访问的Flash半导体存储器(如U盘、SSD等),是否有比CSCAN更高效的磁盘调度策略?若有,给出磁盘调度策略的名称并说明理由;若无,说明理由。

 

图B-5

直接参看讲义把

【分析】对于本题中的第二问,读完这4个扇区总共需要的时间由三部分组成: 总寻道
时间+4个扇区总旋转延迟时间+4个扇区总传输时间。其中,总寻道时间=柱面总移动次数*
相邻磁道间的平均移动时间(已知为lm s); 对于总旋转延迟时间,由于是读取随机分布的
扇区,因此, 应该使用平均旋转延迟时间,读取1个随机分布的扇区的平均旋转延迟时间=
CO+转一圈所用时间) /2, 因此,总旋转延迟时间=读取1个的平均旋转延迟时间*4; 对于
总传输时间,总传输时间=1个扇区的传输时间*4, 1个扇区的传输时间=转一圈所用时间/
每个磁道的扇区数量。
参考答案:  
(1) 2KB = 2*1024*8bit = 1638 4bit。因此可以使用位图法进行磁盘块空闲状态管理,每
1 bit表示一个磁盘块是否空闲。
(2)根据CSCAN算法, 被访问的硌道号顺序为100、120、30、50、90, 因此,
寻道用去的总时间为: (20 + 90 + 20 + 40) * lms = 170ms;
每分钟6000转, 转一圈的时间为0.01 s, 一个扇区的读取时间为0.01/100== 0.0001 s,

一个扇区的平均旋转延迟时间为(0+0.01) /2 , 总共要随机读取四个扇区, 总共用去的
旋转延迟时间和传输时间为:C 0.01 *0.5 + 0.0001) *4 = 0.0204s = 20.4ms
所以;读完这4个扇区总共需要170ms + 20.4ms = 190.4ms。

(3)若将磁盘换为U盘等, 有比CSCAN更高效的磁盘调度策略。U盘的存储介质为
电可擦除只读存储器CEEPROM)的变种, 其寻址方式类似于内存的寻址方式, 不涉及到磁
盘的寻道、寻扇区等操作, 因此可采用先来先服务、优先级高者优先等算法。

17.某文件系统为一级目录结构,文件的数据一次性写入磁盘,已写入的文件不可修改,但可多次创建新文件。请回答如下问题。

(1)在连续、链式、索引三种文件的数据块组织方式中,哪种更合适?要求说明理由。为定位文件数据块,需要FCB中设计哪些相关描述字段?

(2)为快速找到文件,对于FCB,是集中存储好,还是与对应的文件数据块连续存储好?要求说明理由。

解析:

1)在磁盘中连续存放(采取连续结构),磁盘寻道时间更短,文件随机访问效率更高;在FCB中加入的字段为:<起始块号,块数>或者<起始块号,结束块号>。

2)将所有的FCB集中存放,文件数据集中存放。这样在随机查找文件名时,只需访问FCB对应的块,可减少磁头移动和磁盘I/O访问次数。

18.某文件系统空间的最大容量为4TB(1TB=2^{40}B),以磁盘块为基本分配单位。磁盘块大小为1KB。文件控制块(FCB)包含一个512B的索引表区。请回答下列问题。

1)假设索引表区仅采用直接索引结构,索引表区存放文件占用的磁盘块号,索引表项中块号最少占多少字节?可支持的单个文件最大长度是多少字节?

2)假设索引表区采用如下结构:第0~7字节采用<起始块号,块数>格式表示文件创建时预分配的连续存储空间,其中起始块号占6B,块数占2B;剩余504字节采用直接索引结构,一个索引项占6B,则可支持的单个文件最大长度是多少字节?为了使单个文件的长度达到最大,请指出起始块号和块数分别所占字节数的合理值并说明理由。

解析:

1)文件系统中所能容纳的磁盘块总数为4TB/1KB=2^{32}。要完全表示所有磁盘块,索引项中的块号最少要占32/8=4B。而索引表区仅采用直接索引结构,故512B的索引表区能容纳512B/4B=128个索引项。每个索引项对应一个磁盘块,所以该系统可支持的单个文件最大长度是128×1KB=128KB。

2)这里的考查的分配方式不同于我们所熟悉的三种经典分配方式,但是题目中给出了详细的解释。所求的单个文件最大长度一共包含两部分:预分配的连续空间和直接索引区。

连续区块数占2B,共可以表示2^{16}个磁盘块,即2^{26}B。直接索引区共504B/6B=84个索引项。所以该系统可支持的单个文件最大长度是2^{26}B+84KB。

为了使单个文件的长度达到最大,应使连续区的块数字段表示的空间大小尽可能接近系统最大容量4TB。分别设起始块号和块数分别占4B,这样起始块号可以寻址的范围是2^{32}个磁盘块,共4TB,即整个系统空间。同样的,块数字段可以表示最多2^{32}个磁盘块,共4TB。

18.文件 F 由 200 条记录组成,记录从 1 开始编号,用户打开文件后,欲将内存中的一条记录插入文件 F 中,作为其第 30 条记录,请回答下列问题,并说明理由。
(1)若文件系统为顺序分配方式,每个存储块存放一条记录,文件 F 的存储区域前后均有足够空闲的存储空间,则要完成上述操作最少要访问多少存储块? F 的文件控制区内容会有哪些改变?
(2)若文件系统为链接分配方式,每个存储块存放的一条记录和一个链接指针,则要完成上述操作最少要访问多少存储块?若每个存储块大小为 1KB,其中 4 个字节存放指针,则该系统支撑文件的最大长度是多少?

解析:

(1) 下列是连续分配的磁盘块使用情况。

 

 

1

2

···

29

30

···

199

200

 

 

现在需要将一条记录插入到文件F 中,作为其第 30 条记录,也就是插入到第 29 条记录的后面。这需要向前移动文件的前 29 条记录。移动后如下图, 其中灰底(红字)的磁盘块存储的是插入的记录。

 

1

2

3

···

30

31

···

200

201

 

 

向前移动文件的前29 条记录,每条记录需先读一次,然后写到其前一块磁盘块敏感词需 29×2=58 次。然后需要将新记录写到腾出的那个磁盘块中, 作为该文件的第 30 条记录。故总共需要 58+1=59 次。

由于文件的起始位置前移了一个磁盘块,同时文件也增加了一条记录,因此F 的文件控制块中的文件的起始位置和文件的大小会发生改变。

(2) 下列是链接分配的磁盘块使用情况。

现在需要将一条记录插入到文件F 中,作为其第 30 条记录,也就是插入到第 29 条记录的后面。 插入后效果如下图。

这就需要先找到第29 条文件记录的磁盘块,然后获得第 30 条文件记录的磁盘块地址 (需读磁盘 29 次)。再为该记录分配一个空闲磁盘块, 将该记录以及第 30 条文件记录的磁盘块地址写入其中,再将该块写入磁盘(需写磁盘 1 次)。 最后还需要修改第 29 块的链接指针,指向新的插入块,并将第 29 块写回磁盘(需写磁盘 1 次)。 故共需要 29+1+1=31 次。由于每个磁盘块大小为 1KB,其中 4 个字节存放链接指针, 因此用于存放文件的空间为( 1KB-4B)。 又 4 个字节的指针的地址空间为2^{32}。 因此该文件系统支持的文件最大长度是
(1024-4) B×2^{32}=4080GB

19.某磁盘文件系统使用链接分配方式组织文件,簇大小为4KB。目录文件的每个目录项包括文件名和文件的第一个簇号,其他簇号存放在文件分配表FAT中。

(1)假定目录树如下图所示,各文件占用的簇号及顺序如下表所示,其中dir、dir1是目录,file1、file2是用户文件。请给出所有目录文件的内容。

(2)若FAT的每个表项仅存放簇号,占2个字节,则FAT的最大长度为多少字节?该文件系统支持的文件长度最大是多少?

(3)系统通过目录文件和FAT实现对文件的按名存取,说明file1的106、108两个簇号分别存放在FAT的哪个表项中。

(4)假设仅FAT和dir目录文件已读入内存,若需将文件dir/dir1/file1的第5000个字节读入内存,则要访问哪几个簇?.

解答:

(1)两个目录文件dir和dir1的内容如下表所示。(3分)

 

 

【评分说明】每个目录项的内容正确给1分,共3分。

(2)由于FAT的簇号为2个字节,即16比特,因此在FAT表中最多允许216(65536)个表项,一个FAT文件最多包含216(65536)个簇。FAT的最大长度为216×2B=128KB。(1分)文件的最大长度是216×4B=256MB。(1分)

【评分说明】若考生考虑到文件结束标志、坏块标志等,且答案正确,同样给分。

(3)在FAT的每个表项中存放下一个簇号。file1的簇号106存放在FAT的100号表项中,(1分)簇号108存放在FAT的106号表项中。(1分)

(4)先在dir目录文件里找到dir1的簇号,然后读取48号簇,得到dir1目录文件,接着找到file1的第一个簇号,据此在FAT里查找file1的第5000个字节所在的簇号,最后访问磁盘中的该簇。因此,需要访问目录文件dir1所在的48号簇,(1分)及文件file1的106号簇。(1分)

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值