1、计算机学科专业基础综合计算机操作系统-11 及答案解析(总分:100.00,做题时间:90 分钟)一、综合应用题(总题数:26,分数:100.00)对下面列出的内存管理方案,简要地描述操作系统软件执行的功能。(分数:3.00)(1).单一重定位分区。(分数:1.00)_(2).多重固定分区。(分数:1.00)_(3).简单分段。(分数:1.00)_对下面列出的内存管理方案,简要地描述存储器管理硬件的功能。(分数:3.00)(1).单一重定位分区。(分数:1.00)_(2).多重固定分区。(分数:1.00)_(3).简单分段。(分数:1.00)_1.建立了一个包含可重定位代码的程序,假定它装在地
2、址 100 处。在代码中,程序访问了地址:135,160,220,224。如果程序被装入内存起始位置 500,那么这些地址应该如何变化? (分数:2.00)_2.某系统有 2 32 B 的内存,采用固定分区,大小为 2 20 B,进程表项中最少需要多少位来记录被分配了进程的分区。 (分数:2.00)_在多重可变分区方案中:(分数:12.00)(1).如果标记分区未地址的寄存器包含分区大小,那么硬件是如何使用这个寄存器的?(分数:4.00)_(2).如果标记分区未地址的寄存器包含分区的物理未地址,那么硬件是如何使用这个寄存器的?(分数:4.00)_(3).寄存器中存放分区大小与存分区的最大地址相
3、比,主要的优点是什么?(分数:4.00)_3.某系统使用大小分别为 2 8 B,2 24 B,2 64 B 的固定分区,问界限寄存器必须有多少位? (分数:2.00)_4.某系统使用的固定分区大小为 2 P B,问界限寄存器必须有多少位? (分数:2.00)_5.在某页式系统中,有 2 32 B 的物理内存,2 12 页的虚地址空间,且页的大小为 512B,问虚地址有多少位?一个页帧有多少字节?物理地址中用多少位表示页帧?页表中有多少项(页表有多长)?页表需要多少位来存入一个页表项(假定每个页表项除了页帧号外还包含一个有效/无效位)? (分数:2.00)_6.在某页式系统中,页表包含 512
4、项,每个页表项有 16 位(包含有效/无效位),每页大小为 1024B,问逻辑地址中有多少位用来表示页号?逻辑地址中有多少位用来表示页内偏移量?逻辑地址共有多少位?物理地址中有多少位用来指定页帧号?物理地址中有多少位用来表示页帧内偏移量?物理地址共有多少位?物理地址空间的大小? (分数:2.00)_某使用二级页表的系统的虚地址是 32 位。地址的前 8 位是一级页表的索引,后 10 位指定二级页表项。试问:(分数:4.00)(1).页的大小有多少 B?(分数:1.00)_(2).一级页表的长度是多少?(分数:1.00)_(3).二级页表的长度是多少?(分数:1.00)_(4).虚地址空间中有多
5、少页?(分数:1.00)_7.某计算机有 64 位虚地址空间,且页大小是 2048B。每个页表项长为 4B。因为所有页表都必须包含在一页中,所以使用多级页表。问一共需要多少级? (分数:2.00)_8.在某页式系统中,相联寄存器存放了最活跃的页表项,并且将全部的页表都存储在主存中。查询相联寄存器要花 60ns,查询主存中页表要花 200ns。当相联寄存器的命中率为 40%时,问有效访问时间是多长? (分数:2.00)_9.在某页式系统中,联想存储器存放了最活跃的页表项,并且将全部的页表都存储在主存中。查询联想存储器要花 90ns,查询主存中页表要花 190ns。问命中率为多少时,有效访问时间是
6、 120ns? (分数:2.00)_10.用 C 语言函数模拟简单分段系统的存储器管理硬件,编写一个函数 Trans,把分段的虚地址转换成物理地址,并返回一个 int 类型的物理地址。假设已经编写了一个处理分段错误的函数 Fault。segTable 变量包含了段表。 Struct SegTableType int loc; /*段起始地址*/ int len; /*段的字节数即长度*/ ; Struct VirtualAddressType int seg; /*段地址*/ int off; /*偏移量*/ ; Struct SegTableType segTableNUMBER_SEGME
7、NTS; Void Fault(); /*处理分段错误*/ (分数:4.00)_在某简单分段系统中,给定下列段表(下表),试计算每个逻辑地址对应的物理地址。如果地址产生了分段错误,请指明。 段 基址 长度 0 1100 500 1 2500 1000 2 200 600 3 4000 1200 (分数:5.00)(1).0,300(分数:1.00)_(2).2,800(分数:1.00)_(3).1,600(分数:1.00)_(4).3,1100(分数:1.00)_(5).1,1111(分数:1.00)_本题中使用十进制数,页大小为 5000B,并使用如表所示页表。 存在位 页框号 0 333
8、1 300 1 1000 0 100 0 500 1 120 0 412 1 740 问下面的哪些虚地址产生缺页?对于不关系到缺页的虚地址求转换后的物理地址。(分数:4.00)(1).21610(分数:1.00)_(2).35410(分数:1.00)_(3).27012(分数:1.00)_(4).10234(分数:1.00)_本题中使用二进制,页大小为 2 6 B,并使用如表所示页表。 存在位 页框号 1 00101 1 01011 0 00001 1 11010 0 00011 0 10101 0 11111 1 10101 . . 下列哪些虚地址将产生缺页?对于那些不产生缺页的虚地址求转换
9、后的物理地址。(分数:4.00)(1).0000001001001(分数:1.00)_(2).0000011010110(分数:1.00)_(3).0000100000101(分数:1.00)_(4).0000000111100(分数:1.00)_11.某系统使用请求分页存储管理,如果页在内存中,满足一个内存请求需要 250ns。如果页不在内存,如有空闲的页帧或换出的页没有被修改则需要 5ms。如果换出的页已被修改则需 12ms。如果缺页率是2%,并有 40%的要换出的页被修改,问有效访问时间是多长?假设系统只运行一个进程且页交换时 CPU 空闲。 (分数:4.00)_12.某系统使用请求分页
10、存储管理,如果页在内存中,满足一个内存请求需要 150ns。缺页率为 10%。为了使有效访问时间达到 500s,求不在内存的页面的平均访问时间。 (分数:4.00)_13.假设系统的内存总量和缺页率成反比。每次内存加倍,缺页率就减少 1/3,当前系统有 32Mb 内存。缺页率为 2%。当不发生缺页时,访问时间是 500ns,整体的有效访问时间是 300s。问如果内存被增加到128Mb,整体的访问时间是多少? (分数:4.00)_给定一个系统的各种资源的利用率如下: CPU 低 交换设备 低 其他 I/O 设备 高 对于如下情况,说明是明显改进、明显降低了 CPU 利用率,还是对 CPU 利用率
11、影响很小。(分数:16.00)(1).安装更好的 CPU。(分数:2.00)_(2).安装更大的交换设备。(分数:2.00)_(3).安装更快的交换设备。(分数:2.00)_(4).安装更多的内存。(分数:2.00)_(5).安装更快的内存。(分数:2.00)_(6).增加多道编程的程度。(分数:2.00)_(7).降低多道编程的程度。(分数:2.00)_(8).安装更快的 I/O 设备。(分数:2.00)_已知某程序访问以下页面: 0,1,4,2,0,2,6,5,1,2,3,2,1,2,6,2,1,3,6,2 如果程序有 3 个页帧可用且使用下列替换算法,求出现缺页的次数。(分数:3.00)
12、(1).FIFO 替换算法(分数:1.00)_(2).LRU 替换算法(分数:1.00)_(3).OPT 替换算法(分数:1.00)_14.某系统使用段页式的存储管理,通过查找联想存储器访问已换入的内存区域需要花费 150ns。如果必须使用主存页表,访问要花费 400ns。如果要替换的页已经修改则导致中断的访问要花 8ms,否则只要3ms。如果缺页率为 2%,相联表命中率为 70%,且 50%的替换页都是修改过的,求有效访问时间。(假设系统只运行一个进程,而且交换时 CPU 空闲) (分数:2.00)_已知某系统有 4 个页帧,下表表示各个页、装入时间、最后访问时间、页面重写标志位、访问位。
13、页号 装入时间 最后访问时间 页面重写标志位 访问位 0 227 327 1 0 1 345 367 1 1 2 101 331 1 1 3 234 382 0 1 (分数:2.00)(1).FIFO 算法将替换哪一页?(分数:1.00)_(2).LRU 算法将替换哪一页?(分数:1.00)_某系统使用请求段页式管理,有 16 位的虚地址空间,每个进程有 2 个段,页的大小为 2 12 B。段页表的内容说明如下表所示(均为二进制)。段长是页大小的增量。对于以下二进制虚地址,求它们转换后的物理地址,或说明它们是否产生缺页或段故障。 (分数:4.00)(1).0001010001010111(分数
14、:1.00)_(2).0100010011111111(分数:1.00)_(3).1011010011000111(分数:1.00)_(4).1110001011000111(分数:1.00)_在虚拟页式存储系统中引入了缺页中断:(分数:4.00)(1).试说明为什么引入缺页中断?(分数:2.00)_(2).缺页中断的实现由哪几部分组成?分别给出其实现方法。(分数:2.00)_计算机学科专业基础综合计算机操作系统-11 答案解析(总分:100.00,做题时间:90 分钟)一、综合应用题(总题数:26,分数:100.00)对下面列出的内存管理方案,简要地描述操作系统软件执行的功能。(分数:3.0
15、0)(1).单一重定位分区。(分数:1.00)_正确答案:()解析:单一重定位分区:系统启动时,操作系统在重定位寄存器中装入用户程序可以访问的最低内存地址。(2).多重固定分区。(分数:1.00)_正确答案:()解析:多重固定分区:当操作系统启动时,在界限寄存器中装入分区大小。操作系统记录哪些分区已用和哪些分区空闲。当创建进程或进程终止时,操作系统必须更新分区使用数据。在将进程分配给内存时,操作系统必须检查进程是否小于分区大小。当进程获得 CPU 控制权时,操作系统必须在重定位寄存器中装入进程起始地址。(3).简单分段。(分数:1.00)_正确答案:()解析:简单分段:操作系统必须记录哪些内存
16、已使用和哪些内存空闲。当创建进程时,操作系统必须把段装入内存并为进程创建段表。当进程终止时,操作系统必须释放它所占用的内存空间。当进程获得 CPU 控制权时,操作系统必须在内存管理寄存器中装入进程的段表。如果出现分段错误,操作系统必须处理错误。对下面列出的内存管理方案,简要地描述存储器管理硬件的功能。(分数:3.00)(1).单一重定位分区。(分数:1.00)_正确答案:()解析:单一重定位分区:每次访问内存时用该位置的地址加上重定位寄存器中的地址形成物理地址。(2).多重固定分区。(分数:1.00)_正确答案:()解析:多重固定分区:每次访问内存时将逻辑地址和界限寄存器中的地址进行比较。大于
17、界限寄存器中地址的地址将产生内存出错陷阱。同时,逻辑地址加上重定位寄存器中的地址形成物理地址。(3).简单分段。(分数:1.00)_正确答案:()解析:简单分段:每次访问内存时,分段硬件把逻辑地址转换成物理地址。逻辑地址中的段号位被用做段表的索引。逻辑地址的段偏移位加上从相应段表项中得到的段起始地址形成物理地址。1.建立了一个包含可重定位代码的程序,假定它装在地址 100 处。在代码中,程序访问了地址:135,160,220,224。如果程序被装入内存起始位置 500,那么这些地址应该如何变化? (分数:2.00)_正确答案:()解析:535,560,564,620,6242.某系统有 2 3
18、2 B 的内存,采用固定分区,大小为 2 20 B,进程表项中最少需要多少位来记录被分配了进程的分区。 (分数:2.00)_正确答案:()解析:12 位在多重可变分区方案中:(分数:12.00)(1).如果标记分区未地址的寄存器包含分区大小,那么硬件是如何使用这个寄存器的?(分数:4.00)_正确答案:()解析:程序产生的每个逻辑地址和界限寄存器比较。任何大于界限寄存器的地址将造成内存出错陷阱。(2).如果标记分区未地址的寄存器包含分区的物理未地址,那么硬件是如何使用这个寄存器的?(分数:4.00)_正确答案:()解析:每个逻辑地址加上重定位寄存器产生物理地址,然后将物理地址和最大物理地址比较
19、。任何大于最大物理地址的地址将造成内存出错陷阱。(3).寄存器中存放分区大小与存分区的最大地址相比,主要的优点是什么?(分数:4.00)_正确答案:()解析:在重定位寄存器加上逻辑地址的同时,将逻辑地址和界限寄存器比较。之后将物理地址和最大物理地址比较。通过同时比较,能较快完成虚实地址转换。3.某系统使用大小分别为 2 8 B,2 24 B,2 64 B 的固定分区,问界限寄存器必须有多少位? (分数:2.00)_正确答案:()解析:644.某系统使用的固定分区大小为 2 P B,问界限寄存器必须有多少位? (分数:2.00)_正确答案:()解析:P5.在某页式系统中,有 2 32 B 的物理
20、内存,2 12 页的虚地址空间,且页的大小为 512B,问虚地址有多少位?一个页帧有多少字节?物理地址中用多少位表示页帧?页表中有多少项(页表有多长)?页表需要多少位来存入一个页表项(假定每个页表项除了页帧号外还包含一个有效/无效位)? (分数:2.00)_正确答案:()解析:21,512,23,4096,246.在某页式系统中,页表包含 512 项,每个页表项有 16 位(包含有效/无效位),每页大小为 1024B,问逻辑地址中有多少位用来表示页号?逻辑地址中有多少位用来表示页内偏移量?逻辑地址共有多少位?物理地址中有多少位用来指定页帧号?物理地址中有多少位用来表示页帧内偏移量?物理地址共有
21、多少位?物理地址空间的大小? (分数:2.00)_正确答案:()解析:9,10,19,15,10,25,2 25 B某使用二级页表的系统的虚地址是 32 位。地址的前 8 位是一级页表的索引,后 10 位指定二级页表项。试问:(分数:4.00)(1).页的大小有多少 B?(分数:1.00)_正确答案:()解析:2 14(2).一级页表的长度是多少?(分数:1.00)_正确答案:()解析:2 8(3).二级页表的长度是多少?(分数:1.00)_正确答案:()解析:2 10(4).虚地址空间中有多少页?(分数:1.00)_正确答案:()解析:2 187.某计算机有 64 位虚地址空间,且页大小是
22、2048B。每个页表项长为 4B。因为所有页表都必须包含在一页中,所以使用多级页表。问一共需要多少级? (分数:2.00)_正确答案:()解析:68.在某页式系统中,相联寄存器存放了最活跃的页表项,并且将全部的页表都存储在主存中。查询相联寄存器要花 60ns,查询主存中页表要花 200ns。当相联寄存器的命中率为 40%时,问有效访问时间是多长? (分数:2.00)_正确答案:()解析:144ns9.在某页式系统中,联想存储器存放了最活跃的页表项,并且将全部的页表都存储在主存中。查询联想存储器要花 90ns,查询主存中页表要花 190ns。问命中率为多少时,有效访问时间是 120ns? (分数
23、:2.00)_正确答案:()解析:70%10.用 C 语言函数模拟简单分段系统的存储器管理硬件,编写一个函数 Trans,把分段的虚地址转换成物理地址,并返回一个 int 类型的物理地址。假设已经编写了一个处理分段错误的函数 Fault。segTable 变量包含了段表。 Struct SegTableType int loc; /*段起始地址*/ int len; /*段的字节数即长度*/ ; Struct VirtualAddressType int seg; /*段地址*/ int off; /*偏移量*/ ; Struct SegTableType segTableNUMBER_SEG
24、MENTS; Void Fault(); /*处理分段错误*/ (分数:4.00)_正确答案:()解析:函数代码如下: int Trans(struct VirtualAddressType virtAddr) int physAddr=-1; if(virtAddr.off=segTable(virtAddr.seg).len) fault(); else physAddr=segTable(virtAddr.seg).loc+virtAddr.off; return physAddr; 在某简单分段系统中,给定下列段表(下表),试计算每个逻辑地址对应的物理地址。如果地址产生了分段错误,请指明。 段 基址 长度 0 1100 500 1 2500 1000 2 200 600 3 4000 1200 (分数:5.00)(1).0,300(分数:1.00)_正确答案:()解析:1400(2).2,800(分数:1.00)_正确答案:()解析:出错(3).1,600(分数:1.00)_正确答案:()解析:3100(4).3,1100(分数:1.00)_