现代操作系统--作业题整理 下载本文

内容发布更新时间 : 2024/5/13 16:34:55星期一 下面是文章的全部内容请认真阅读。

FIFO的页框如下: x0172333300 xx017222233 xxx01777722 xxxx0111177

LRU的页框如下: x0172327103 xx017232710 xxx01773271 xxxx0111327

FIFO发生6次缺页中断,LRU发生7次缺页中断。(操作系统第二版中文答案)

28、一个计算机有4个页框,装入时间、上次访问时间和每个页面的R位和M位如下所示(时间以时间滴答为单位): 页面 装入时间 上次访问时间 R M 0 126 280 1 0 1 230 265 0 1 2 140 270 0 0 3 110 285 1 1 a)NRU算法置换哪个页面?(页面2) b)FIFO算法置换哪个页面?(页面3) c)LRU算法置换哪个页面?(页面1)

d)第二次机会算法置换哪个页面?(页面2)

29、有二维数组:int X[64][64];假设系统中有4个页框,每个页框的大小为128个字(一个整数占用一个字)。处理数组X的程序正好可以放在一个页中,而且总是占用0号页。数据会在其他3个页框中被换入或换出。数组X为按行存储(即在内存中X[0][0]之后是X[0][1])。下面两段代码中,哪一个会有最小的缺页中断?请解释原因,并计算缺页中断的总数。 A段:for(int j=0;j<64;j++)

for(int i=0;i<64;i++) X[i][j]=0;

B段:for(int i=0;i<64;i++)

for(int j=0;j<64;j++) X[i][j]=0;

答:依题,A段按列访问,B段按行访问;X数组按行存储,即每一页可存储2行(128字节);每访问一次页框就发生一次缺页中断。

A段:每访问2个数就发生一次缺页中断,则会有64 * 64 / 2 = 2048次缺页中断;

B段:每访问2行就有一次缺页中断,因此只需要64 / 2 = 32次缺页中断。

32、一个页面同一时刻可能在两个工作集中吗?请解释原因。

答:如果页面是可以共享的,就可以出现在两个工作集中。例如,如果某分时系统的2个用户运行同样的编辑程序,程序的正文是共享的,而不是拷贝的,其中某些页可以同时在每个用户的工作集中。(操作系统第二版中文答案)

37、一个程序有两个段,段0中为指令,段1中为读/写数据。段0有读/执行保护,段1有读/写保护。内存是请求分页式虚拟内存系统,它的虚拟地址为4位页号,10位偏移量。页表和保护如下所示(表中的数字均为十进制):

段0 段1 读/执行 读/写 虚拟页号 页框号 虚拟页号 页框号 0 2 0 在磁盘 1 在磁盘 1 14 2 11 2 9 3 5 3 6 4 在磁盘 4 在磁盘 5 在磁盘 5 13 6 4 6 8 7 3 7 12 对于下面的每种情形,或者给出动态地址所对应的实(实际)内存地址,或者指出发生了哪种失效(缺页中断,或保护错误)。 a)读取页,段1,页1,偏移3; b)存储页,段0,页0,偏移16; c)读取页,段1,页4,偏移28; d)跳转到,段1,页3,偏移32。

答:a)读取,段1,符合保护要求,内存地址为(14,3); b)存储,段0,违反保护要求,保护错误;

c)读取,段1,符合保护要求,页框在磁盘,发生缺页中断; d)跳转,段1,违反保护要求,保护错误。

38、你能想象在哪些情况下支持虚拟内存是个坏想法吗?不支持虚拟内存能得到什么好处呢?请解释。 答:一般来说,当可以了解和控制所有应用程序的需求时,虚拟内存就没必要了。例如,特殊用途的处理器(如网络处理器),嵌入式处理器和超级计算机(如机翼设计)。在这些情况下,我们总会考虑使用更多的物理内存。如果操作系统没有使用(不支持)虚拟内存,它的代码会简单很多,系统的性能会有所提高。另一方面,一些来自虚拟内存的想法有利于开发,尽管有不同的设计需求。

分页的优点?

统一的页面大小

只使用段的一部分时不需要把它都调入内存

分段的优点?

能简化对长度经常变动的数据结构的管理 易于编程、模块化 易于实现保护和共享

1、分页式存储管理中,地址转换工作是由( )完成的。

A、硬件 B、地址转换程序 C、用户程序 D、装入程序

2、分页式存储管理中,页表是由( )建立的

A、硬件 B、操作系统 C、用户程序 D、装入程序

3、采用动态重定位方式装入的作业,其地址转换工作是在( )完成的。 A、装入作业时 B、作业被选中时 C、每执行一条指令时 D、每次被移动时

第四章:文件系统(P182)

1、在早期的UNIX系统中,可执行文件(a.out)以一个非常特别的魔数(幻数)开始,这个数不是随机选择的。这些文件都有文件头,后面是正文段和数据段。为什么要为可执行文件挑选一个非常特别的魔数,而其他类型文件的第一个字反而有一个或多或少是随机选择的魔数?

答:这些系统直接把程序载入内存,并且从word 0(也就是幻数)开始执行。为了避免将header作为代码执行,幻数是一条BRANCH指令(转移指令),其目标地址正好在header之上。按这种方法,就可能把二进制文件直接读取到新的进程地址空间,并且从0运行,甚至无需知道header有多大。(操作系统第二版中文答案)

3、在UNIX中open系统调用绝对需要吗?如果没有会产生什么效果?

答:如果没有open,每次read时都必须指定要打开的文件名。然后,系统必须读取该文件的i节点,即使该节点已经在cache中。可能出现的问题是来回从磁盘读取i节点。这多少显得有点笨,不过还是可以运行的。(操作系统第二版中文答案) 5、某一些操作系统提供系统调用rename给文件重命名,同样也可以通过把文件复制到新文件并删除原文件而实现文件重命名。请问这两种方法有何不同? 答:是的。rename调用不会改变文件的创建时间和最后的修改时间,但是创建一个新的文件,其创建时间和最后修改时间都会改为当前的系统时间。另外,如果磁盘满了,复制可能会失败。(操作系统第二版中文答案)

13、某些数字消费设备需要存储数据,比如存放文件等。给出一个现代设备的名字,该设备需要文件存储,并且对文件运用连续分配空间的方法是不错的方法。 答:数码相机按顺序记录一系列照片,存储在某种非易失性存储媒介(例如,闪存)上。当照相机复位时,该媒介被清空。然后,按顺序依次记录一张照片,直到存储满,然后上载到硬盘上。对于这种应用,相机内部文件的连续文件系统时最理想。(操作系统第二版中文答案)

15、考虑图4-13中的i节点。如果它含有用4个字节表示10个直接地址,而且所有的磁盘块大小是1024B,那么文件最大可能有多大?

答:间接块可以保存256个磁盘地址。与10直接的磁盘地址一道,最大文件有266块。由于每块为1KB,最大的文件是266KB。(操作系统第二版中文答案)

17、两个计算机科学系的学生Carolyn和Elinor正在讨论i节点。Carolyn认

为存储器容量越来越大,价格越来越便宜,所以当打开文件时,直接取i节点的副本,放到内存i节点表中,建立一个新的i节点将更简单、更快,没有必要搜索整个i节点来判断它是否存在。Elinor则不同意这一观点,他们俩人谁对? 答:Elinor是正确的。表格中同时有i节点的2个备份是灾难性的,除非都是只读的。最坏的情况就是当两个都同时被更新时。当把i节点写回磁盘时,后写入的会把先写入的删除,而磁盘块就丢失了。(操作系统第二版中文答案) 18、说明硬连接优于符号链接的一个优点,并说明符号链接优于硬连接的一个优点。

答:硬连接无需额外的磁盘空间,而只需在i节点中记录有多少个链接。符号链接需要空间存储所指的文件的名称。符号链接可以指向其他机器上的文件,甚至是Internet上的文件。而硬连接只能指向其自己分区中的文件。(操作系统第二版中文答案)

19、空闲磁盘空间可用空闲块表或位图来跟踪。假设磁盘地址需要D位,一个磁盘有B个块。其中有F个空闲。在什么条件下,空闲块表采用的空间少于位图?设D为16位,请计算空闲磁盘空间的百分比。

答:位图需要B位,而空闲块表需要DF位。当DF < B 时,空闲表块采用的空间少于位图。DF < B => F/B < 1/D,当D = 16时,空闲块表较短,空闲磁盘的空间百分比不大于6%。

20、一个空闲块位图开始时和磁盘分析首次初始化类似,比如:1000 0000 0000 0000(首块被根目录使用),系统总是从最小编号的盘块开始寻找空闲块,所以在有6块的文件A写入之后,该位图为:1111 1110 0000 0000.请说明在完成如下每一个附加动作之后位图的状态:

a)写入有5块的文件B:1111 1111 1111 0000 b)删除文件A:1000 0001 1111 0000

c)写入有8块的文件C:1111 1111 1111 1100 d)删除文件B:1111 1110 0000 1100 (操作系统第二版中文答案)

21、如果因为系统崩溃而使存放空闲磁盘块信息的空闲块表或位图完全丢失,会发生什么情况?有什么办法从这个灾难中恢复吗,还是与该磁盘彻底再见?分别就UNIX和FAT-16文件系统讨论你的答案。 答:

28、考虑图4-21背后的思想,目前磁盘平均寻道时间为8ms,旋转速率为15000rpm,每道为262144字节。对大小各为1KB、2KB和4KB的磁盘块,传送速率各是多少? 答:对于15000 rpm(每分钟旋转),每旋转一周需60/15000 = 0.004秒 = 4 ms。那么读取k字节的平均存取时间为8 ms(寻道时间) + 2 ms(旋转延迟:4 ms/2) + (k / 262144)* 4 ms(读取k字节的时间)。对于1 KB,2 KB,4 KB的块,访问时间分别为10.015625 ms,10.03125 ms和10.0625 ms(几乎没有什么不同)。其数据速率分别为102240 KB/sec,204162 KB/sec,407056 KB/sec。(操作系