移动问题是:(147-143)+(150-147)+(150-130)+(130-102)+(102-94)+(94-91)+(91-86)+(175-86)+(177-175)=162
(3)采用扫描算法时,存取臂的移动顺序是: 143、147、150、175、177、130、102、94、91、86 移动问题是:(147-143)+(150-147)+(175-150)+(177-175)+(177-130)+(130-102)+(102-94)+(94-91)+(91-86)=125
(4)采用循环扫描算法时,存取臂的移动顺序是: 143、147、150、175、177、86、91、94、102、130 移动问题是:(147-143)+(150-147)+(175-150)+(177-175)+(177-86)+(91-86)+(94-91)+(102-94)+(130-102)=169
7、磁盘的访问时间分成三部分:寻道时间、旋转时间和数据传输时间。而优化磁盘磁道上的信息分布能减少输入/输出服务的时间。例如,有一个文件有10个记录A,B,…,J存放在磁盘的某一磁道上,假定该磁盘共有10个扇区,每个扇区存放一个记录,安排如下表所示。现在要从这个磁道上顺序地将A~J这10个记录读出,如果磁盘的旋转速度为20ms转一周,处理程序每读出一个记录要花4ms进行处理?试问:(1)处理完10个记录的总时间为多少?(2)为了优化分布缩短处理时间,如何安排这些记录?并计算处理的总时间。 扇区号 记录号 1 A 2 B 3 C 4 D 5 E 6 F 7 G 8 H 9 I 10 J 答:(1)由题目所列条件可知,磁盘的旋转速度为20ms转一周,每个磁道有10个记录,因此读出1个记录的时间为:20ms/10=2ms。
对于表中记录的初始分布,读出并处理记录A需要2ms+4ms=6ms。6ms后读/写头已转到了记录D处,为了读出记录B,必须再转8个扇区,即需要8*2ms=16ms,记录B的读取时间为2ms,处理时间为4ms,故处理记录B共花时间为:16ms+2ms+4ms=22ms。后续8个记录的读取时间与记录B相同。所以处理10个记录的总时间为:9*22ms+6ms=204ms。
(2)为了缩短处理时间,按下图安排这些记录。 经优化处理后,读出并处理记录A后,读写头刚好转到记录B的开始处,因此立即可读取并处理记录B,后续记录的读取与处理情况相同。故处理10个记录的总时间为:10*(2ms+4ms)=60ms。
9 G 8 J 7 C 10 D 1 A 2 H 3 E 4 B 6 F 5 I 8、假设一个磁盘有100个柱面,每个柱面有10个磁头,每个磁道有15个扇区。当进程的要访问磁盘的13524扇区时,计算该扇区在磁盘的第几柱面、第几磁道、第几扇区?
答:由题目可知,磁盘每个柱面有10个磁头,每个磁道有15个扇区。则每个柱面的扇区数为:10*15=150。13524/150=90余24,故13524所在的柱面为90。24/15=1余9,故13524所在的磁头号为1,扇区号为9。
9、一个文件记录大小为32B,磁盘输入/输出以磁盘块为单位,一个盘块的大小为512B。当用户进程顺序读文件的各个记录时,计算实际启动磁盘I/O占用整个访问请求的比例。
答:由题目可知,盘块的大小为512B,一个文件记录大小为32B,故一个盘块包含的记录数为:512/32=16。
显然在访问16个记录中,只需要一次启动磁盘,故实际启动磁盘I/O占用整个访问请求的比例为1/16=6.25%。
10、如果磁盘扇区的大小固定为512B,每个磁道有80个扇区,一共有4个可用的盘面。假设磁盘旋转速度是360rpm。处理机使用中断驱动方式从磁盘读取数据,每个字节产生一次中断。如果处理中断需要2.5ms,试问:(1)处理花费在处理I/O上的时间占整个磁盘访问时间的百分比是多少(忽略寻道时间)?(2)采用DMA方式,每个扇区产生一次中断,处理花费在处理I/O上的时间占整个磁盘访问时间的百分比又是多少?
答:磁盘旋转一周的时间为60/360=1/6s。查找一个扇区的平均时间为1/2周,即1/12s。访问一个扇区所需要的时间为:Tt=b/rN=1/6*1/80=1/480s。
(1)处理机使用中断驱动方式从磁盘读取一个盲区,每个字节产生一次中断,如果处理中断需要25在,处理机花费在处理I/O上的时间汇款单整个磁盘访问时间的百分比是:
(512*2.5)/((1/12+1/480)+(512*2.5))*100%=99.9%
(2)采用DMA方式,每个扇区产生一次中断,处理机花费在处理I/O上的时间占整个磁盘访问时间的百分比是:
2.5/((1/12+1/480)+2.5)*100%=96.7%
8 文件管理
1、文件系统要解决的问题有哪些?
答:文件系统的目标是提高存储空间的利用率,它要解决的主要问题有:完成文件存储空间的管理,实现文件名到物理地址的转换,实现文件的目录操作,提供文件共享能力和保护措施,提供友好的用户接口。文件系统向用户提供了有关文件的目录操作的各种功能接口和系统调用,如命令接口、程序接口和图形用户接口。
2、许多操作系统中提供了文件重命名功能,它能赋予文件一个新的名字。若进行文件复制,并给复制文件起一个新名字,然后删除旧文件,也能达到给文件重命名的目的。试问这两种方法在实现在有何不同?
答:给文件重命名,用户必须提供两个参数:旧文件名和新文件名。实现该功能时,系统使用旧文件名查找文件目录,若找到旧文件名所在的目录表项,则将目录表项中文件名字段对应的值改为新文件名值。从实现上看,文件重命名功能完成的工作是修改表项中的文件名字段,除文件名外,文件的其他属性都未改变。
使用文件复制的方法,首先需要复制文件,并给新复制的文件起一个新名字,此时系统完成了一次物理文件的复制工作,然后删除旧文件。虽然这样也能达到给文件重新命名的目的,但其实现过程比前一种方式复杂,并且新文件与旧文件的物理存放地址肯定是不同的。
3、使用文件系统时,通常要显式地进行Open()与Close()操作。试问:(1)这样做的目的是什么?(2)能够取消显式地Open()与Close()操作么?若能,怎样做?(3)取消显式地Open()与Close()操作有什么不利?
答:(1)显示Open()操作完成文件的打开功能,它将待访问文件的目录信息读入内存活动文件表,建立起用户进程与文件的联系。显示Close()操作完成文件关闭操作,该操作删除内存中有关该文件的目录信息,切断用户与该文件的联系。若在文件打开期间,该文件做过某种修改,还应将其写回磁盘。
(2)可以取消显式的Open()与Close()操作。如果取消了显式的Open()与Close()操作,系统在进行文件操作之前需要判断文件是否已打开,若文件未打开,则应自动完成文件的打开安乐,以建立用户与文件之间的联系。同时,在系统结束时,还应自动关闭所有打开的文件。
(3)取消显式的Open()与Close()操作使得文件读/写的系统开销增加。因为每次读/写文件之前都需要判
断文件是否已被打开,若未打开,还要完成打开操作。系统在结束也要做一些额外的工作,以完成Close()操作所完成的功能。当用户进程已完成对一个文件的访问但进程本身尚未执行完毕时,因无显式的Close()操作而无法关闭文件,从而不利于系统资源的回收。
4、文件目录的作用是什么?文件目录项通常包含哪些内容?
答:文件目录是文件名与文件所在存储位置的一张映射表。文件系统根据它实现用户按名存取文件。文件目录由若干目录项组成,每个目录项记录一个文件的管理和控制信息。其中包括文件名、文件的类型、文件在存储设备上的位置、文件的存取控制信息、文件的创建访问和修改信息等。
5、文件物理结构中的链接分配方式有几种实现方法?各有什么特点?
答:文件物理结构中的链接分配方式有两种:一种是隐式的,即文件占用的物理块中除存储文件信息之外,还存储有一个链接指针(即指向下一个物理块的指针);另一种是显式的,即将链接指针从物理块中提取出来,单独建立一个表,如MS-DOS操作系统就采用这种方式,该表称为文件分配表。
隐式链接结构的文件只能采用顺序存取方法,否则效率太低。
显式链接结构的文件,由于指针单独管理,通常将文件分配表放在主存中,无论采用顺序存取还是随机存取,其速度都差不多。
6、设某文件A由100个物理块组成,现分别用连续文件、链接文件和索引文件来构造。针对3种不同的结构,执行以下操作时各需要多少次磁盘I/O。(1)将一物理块加到文件头部;(2)将一物理块加到文件正中间;(3)将一物理块加到文件尾部。
答:
? 采用连续文件时的情况如下:
如果要将一物理块加到文件头部。由于文件的头部没有空间扩展文件,若要把一个物理块加到文件的头部,必须查文件控制块,找到文件的第一个物理块,计算文件第100块的位置。然后将第100块读到内存,再将它写到磁盘的下一块中。这样,一个物理块需要两次访问磁盘(一次读入,一次写入)。最后将新加入内容从内存写到磁盘的物理块中,所以共访问磁盘201次。
如果将一个物理块加到文件正中间,根据上述分析,需要访问磁盘101次。
如果将一物理块加到文件尾部,直接将新加入的内容从内存写到磁盘的物理块中即可,只需要访问磁盘一次。
? 采用链接文件时的情况如下:
如果要将一物理块加到文件头部。只需要将新加入的内容从内在写到磁盘的物理块,然后将该物理块的指针指向原来第一个物理块,并修改文件控制块中第一块的地址和文件大小即可,所以访问磁盘一次。
如果将一物理块加到文件正中间,需要读出前50块(访问磁盘次),以便找到第50块的链接指针,将新加入的内容从内存写到新分配的物理块中,将新分配的物理块的链接指针指向第51块(访问磁盘一次),再将第50块的链接指针指向新插入的物理块(访问磁盘一次)。共需要访问磁盘52次。
如果将一物理块加到文件尾部,需要将第100块读出(访问磁盘100次),以便找到第100块。修改它的链接指针指向新插入的物理块(访问磁盘一次),只需要访问磁盘102次。
? 采用索引文件,且索引块在内存。情况如下:
如果要将一物理块加到文件头部。只需要将新加入的内容从内存写到磁盘的物理块,并在文件控制块中的头部增加新加入物理块的地址和文件大小即可,所以访问磁盘一次。
如果将一物理块加到文件正中间,只需要将新加入的内容从内存写到磁盘的物理块,并在文件控制块中的正中间增加新加入物理块的地址和文件大小即可,所以访问磁盘一次。
如果将一物理块加到文件尾部,只需要将新加入的内容从内存写到磁盘的物理块,并在文件控制块中的尾部增加新加入物理块的地址和文件大小即可,所以访问磁盘一次。
7、文件系统用混合方式管理存储文件的物理块,设块的大小为512B,每个块号占3B,如果不考虑逻辑块号在物理块中所占的位置,求一级索引、二级索引和三级索引时可寻址的文件最大长度。
答:由题目可知,块的大小为512B,每个块号占3B,一个物理块可放512/3=170个目录项。
一级索引可寻址的最大长度为:170*512=85KB;
二级索引可寻址的最大长度为:170*170*512=14450KB;
三级索引可寻址的最大长度为:170*170*170*512=2456500KB。
8、一个计算机系统中,文件控制块占64B,磁盘块的大小为1KB,采用一级目录,假定目录中有3200个目录项,问查找一个文件平均需要访问磁盘多少次?
答:3200个目录项占用的磁盘块数为:3200*64/1024=200(块)
一级目录平均访问磁盘的次数为1/2盘块数,故幸无访问磁盘100次。
9、假定磁盘块的大小是1KB,对于1GB的磁盘,其文件分配表(FAT)需要占用多少存储空间?当硬盘的容量为10GB时,FAT需要占用多少空间?
答:由题目可知,磁盘的大小为1GB,磁盘块的大小为1KB,所以该磁盘共有盘块数为:1GB/1KB=1M(个)
而1MB个盘块号需要用20位表示,即文件分配表的每个表目大小为2.5B。FAT要占用的存储空间总数为:2.5B*1M=2.5MB
当磁盘大小为10GB时,硬盘共有盘块:10GB/1KB=10M(个)
又因 8M<10M<16M 故10M个盘号要用24位二进制表示。即文件分配表的每个表目大小为3B。FAT要占用的存储空间总数为:3B*10M=30MB。
10、UNIX系统中采用索引节点表示文件的组织,在每个索引节点中,假定有12个直接块指针,分别有一个一级、二级和三级间接指针。此外,假定系统盘块的大小为8KB。如果盘块指针用32位表示,其中8位用于标识物理磁盘号,24位用于标识磁盘块号,问:(1)该系统支持的最大文件长度是多少?(2)该系统支持的最大文件系统分区是多少?(3)假定主存中除了文件索引节点外没有其他信息,访问文件的位置为12345678B时,需要访问磁盘多少次?
答:(1)由题目可知,盘块指针用32位表示,即盘块指针占32/8=4B,一个索引盘块可以存放的盘块数为:8KB/4B=2K,假定文件有12个直接块,分别有一个一级、二级和三级间接指针。最大文件长度是:
12*8KB+2K*8KB+2K*8KB+2K*2K*2K*8KB=
(2)因为24位用于标识磁盘块号,该系统支持的最大文件系统分区是:224个盘块,共有8KB*224=128GB。
(3)假定主存中除了文件索引节点外没有其他信息,访问文件的位置为12345678B,相当于访问文件的相对块号为:12345678B/8K=1507余334,即访问文件的第1507块,块内位移为:334。
系统有12个直接块,1507-12=1495,由于1507<2K,第1495号索引项应在一级间接索引块中,故首先访问内存,得到一级间接索引块的块号;然后访问该间接块(第1次访问磁盘),得到1495号索引项;再访问1495号索引项对应的物理块号(第2次访问磁盘),最后得到块内位移为334的位置就是文件的12345678字节。故共访问磁盘2次。
11、磁盘文件的物理结构采用链接分配方式,文件A有10个记录,每个记录的长度为256B,存放在5个磁盘块中,每个盘块中放2个记录,如下表所示。若要访问该文件的第1580字节,问:(1)应访问哪个盘块的哪个字节?(2)要访问几次磁盘才能将该字节的内容读出。 物理块号 5 7 14 链接指针 7 14 4 物理块号 4 10 链接指针 10 0 答:(1)要访问该文件的第1580字节所在的相对盘块为:
1580/(256*2)=3余44
由表可知,文件的相对盘块为3的逻辑块存放在物理块号4中,故应访问的物理块号为4,块内位移为44。
(2)由于采用链接文件,要访问物理块号为4的盘块,首先将上述链接表从磁盘读到内存(第1次访
问磁盘),然后查找逻辑块号为0的物理块5,得到链接指针7;再查找逻辑块号为1的物理块7,得到链接指针14,第3次查找逻辑块号为2的物理块14,得到链接指针4;最后就可以读出块号为4的物理块(第2次访问磁盘)了。故共访问磁盘2次。
12、有一磁盘共有10个盘面,每个盘面上有100个磁道,每个磁道有16个扇区,每个扇区512字节。假定文件分配以扇区为单位,若使用位示图来管理磁盘空间,问:(1)磁盘的容量有多大?(2)位示图需要占用多少空间?(3)若空白文件上当的每个表目占5字节,什么空白文件目录占用空间大于位示图?
答:(1)磁盘的容量为:10*100*16*512B=8000KB
(2)位示图用于描述扇区的使用情况,每个扇区用1位表示,位示图需要存储空间为:10*100*16=16000bit=2000B
(3)空白文件目录的每个表目占5B,根据上述计算位示图需要2000B,
2000B/5=400
所以当空白区数大于400时,空白文件目录占用空间大于位示图。