长度应该是B A224 B.26 C.28 D.22 三、问答 1。什么是内部碎片?什么是外部碎片?冬种存储管理中都可能产生何种碎片? 答:所谓“内部碎片” 是指系统已经分配给用户使用、用户自己没有用到的那部分有 储空间:所谓“外部碎片”,是指系统无法把它分配出去供用户使用的那部分存储空间。对 于教材而言,单一连续区存储管理、固定分区存储管理、分页式存储管理和请求页式存储管 理都会出现内部碎片。只是前两种存储管理造成的内部碎片比较大,浪费较为严重:后两种 页式存储管理,平均来说每个作业都会出现半页的内部碎片。教材中,只有可变分区存储管 理会产生外部碎片 2.叙述静态重定位与动态重定位的区别。 答:静态重定位是一种通过软件来完成的地址重定位技术。它在程序装入内存时,完成 对程序指令中地址的调整。因此,程序经过静态重定位以后,在内存中就不能移动了。如果 要移动,就必须重新进行地址重定位。 动态面定位是一种通讨硬件支持完成的地重定位技术。作业程序被原封不动地入内 存。只有到执行某条指令时,硬件地址转换 机构才对它里面的地址进行转换 正因为如此 实行动态重定位的系统,作业程序可以在内存里移动。也就是说,作业程序在内存中是可浮 动的 一个虚拟地址结构用24个二进制位表示。其中12个二进制位表示页面尺寸。试问 文种虑拟地址空间总共多少而?每而的尺计是多少? 答:如下图所示,由于虚拟地址中是用12个二进制位表示页面尺寸(即页内位移),所 以虚拟地址空间中表示页号的也是12个二进制位。这样,这种虚拟地址空间总共有: 212=4096(页) 每页的尺寸是: 22=4096=4K(字节) 232221201918171615141312111098 内位移 4。什么叫虚存储器?怎样确定虚拟存储器的容量 答:虚拟存储器实际是一种存储扩充技术。它把作业程序存放在辅助存储器里,运行时 只装入程序的一部分。遇到不在内存的程序时,再把所需要的部分装入。这样在内存和辅存 之间调入、调出的做法,使用户的作业地址空间无需顾及内存的大小。给用户造成的印象是, 无论程序有多大,它在这个系续上都可以云行。这种以铺助存储器作为后提的虚名幻存储器】 就称为虚拟存储器 壶拟存储器的大小是由系统的地址结构确定的。 5.为什么请求分页式存储管理能够向用户提供虚拟存储器 答:请求分页式存储管理的基本思想是:操作系统按照存储块的尺寸,把用户作业地 空间划分成页,全部存放在磁盘上。作业运行时,只先装入若干页。运行过程中遇到不在内 存的页时,操作系统就把它从磁盘调入内存。这样一来,用户的作业地址空间无需原及内存 。这与虚拟存储器的思想是完全吻合的。所以,请求分页式存储管理能够向用户提 6.在请求分页式存储管理中,为什么既有页表,又有快表? 答:在分页式或请求页式存储管理中,通常是利用内存储器构成页表的。当CPU执行 11
- 11 - 长度应该是 B 。 A.2 24 B.2 16 C.2 8 D.2 32 三、问答 1.什么是内部碎片?什么是外部碎片?各种存储管理中都可能产生何种碎片? 答:所谓“内部碎片”,是指系统已经分配给用户使用、用户自己没有用到的那部分存 储空间;所谓“外部碎片”,是指系统无法把它分配出去供用户使用的那部分存储空间。对 于教材而言,单一连续区存储管理、固定分区存储管理、分页式存储管理和请求页式存储管 理都会出现内部碎片。只是前两种存储管理造成的内部碎片比较大,浪费较为严重;后两种 页式存储管理,平均来说每个作业都会出现半页的内部碎片。教材中,只有可变分区存储管 理会产生外部碎片。 2.叙述静态重定位与动态重定位的区别。 答:静态重定位是一种通过软件来完成的地址重定位技术。它在程序装入内存时,完成 对程序指令中地址的调整。因此,程序经过静态重定位以后,在内存中就不能移动了。如果 要移动,就必须重新进行地址重定位。 动态重定位是一种通过硬件支持完成的地址重定位技术。作业程序被原封不动地装入内 存。只有到执行某条指令时,硬件地址转换机构才对它里面的地址进行转换。正因为如此, 实行动态重定位的系统,作业程序可以在内存里移动。也就是说,作业程序在内存中是可浮 动的。 3.一个虚拟地址结构用 24 个二进制位表示。其中 12 个二进制位表示页面尺寸。试问 这种虚拟地址空间总共多少页?每页的尺寸是多少? 答:如下图所示,由于虚拟地址中是用 12 个二进制位表示页面尺寸(即页内位移),所 以虚拟地址空间中表示页号的也是 12 个二进制位。这样,这种虚拟地址空间总共有: 2 12 = 4096(页) 每页的尺寸是: 2 12 = 4096 = 4K(字节) 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 页号 页内位移 虚拟地址 23 22 4.什么叫虚拟存储器?怎样确定虚拟存储器的容量? 答:虚拟存储器实际是一种存储扩充技术。它把作业程序存放在辅助存储器里,运行时 只装入程序的一部分。遇到不在内存的程序时,再把所需要的部分装入。这样在内存和辅存 之间调入、调出的做法,使用户的作业地址空间无需顾及内存的大小。给用户造成的印象是, 无论程序有多大,它在这个系统上都可以运行。这种以辅助存储器作为后援的虚幻存储器, 就称为虚拟存储器。虚拟存储器的大小是由系统的地址结构确定的。 5.为什么请求分页式存储管理能够向用户提供虚拟存储器? 答:请求分页式存储管理的基本思想是:操作系统按照存储块的尺寸,把用户作业地址 空间划分成页,全部存放在磁盘上。作业运行时,只先装入若干页。运行过程中遇到不在内 存的页时,操作系统就把它从磁盘调入内存。这样一来,用户的作业地址空间无需顾及内存 的大小。这与虚拟存储器的思想是完全吻合的。所以,请求分页式存储管理能够向用户提供 虚拟存储器。 6.在请求分页式存储管理中,为什么既有页表,又有快表? 答:在分页式或请求页式存储管理中,通常是利用内存储器构成页表的。当 CPU 执行
到某条指令、要对内存中的某一地址访问时,因为这个地址是相对地址,所以先要根据这个 地址所在的页号去查页表(访问一次内存),然后才能由所形成的绝对地址去真正执行指令 (第二次访问内存) 可见,由于页表在内存,降低了CPU的访问速度 为了提高相对地址到绝对地址的变换速度,人们想到用一组快速寄存器来代替页表。这 时查页表是以并行的方式进行,立即就能输出与该页号匹配的块号,这样做无疑比内存式的 页表要快得多。但是,快速寄存器的价格昂贵,由它来组成整个页表是不可取的。考虑到程 序运行时具有局部性,因此实际系统中总是一方面采用内存页表、另一方面用极少几个快速 寄存器组成快表来共同完成地址的变换工作。这时的地址变换过程,如教材中的图3-22所 示。 7.试述缺页中断与页面淘汰之间的关系。 答:在请求页式存储管理中,当根据虚拟地址查页表而发现所要访问的页不在内存时, 就会产生缺页中断。系统响应中断后,就由操作系统到辅存把所需要的页读入内存。这时】 内存可能有空闲的块,也可能没有 只有当内存中没有空闲块时, 才会出现将内存现有页面 淘汰出去的问题 即 进行页面淘 。所以,缺页中断和页面淘汰之间的关系是:页面淘法 一定是由缺页中新所引起:但缺页中断则不一定引起页面淘汰。 8.试述缺页中断与一般中断的区别。 答:在计算机系统中,由于某些事件的出现,打断了当前程序的运行,而使CPU去处 理出现的事件,这称为“中断”。通常,计算机的硬件结构都是在执行完一条指令后,去检 查有无中断事件发生的。如果有,那么就暂停当前程序的运行,而让CPU去执行操作系统 的中断处理程序,这叫“中断响应”。CPU在处理完中断后,如果不需要对CPU重新进行 分配,那么就返回被中断进程的程序继续运行:如果需要进行CPU的重新分配,那么操作 系统就会去调度新进程。 由上面的进述可以看出,缺页中断与一般中断的区别如下 (1)两种中断产生的时刻不同:缺页中断是在执行 一条指令中间时产生的中断,并立即 转去处理:而一般中断则是在一条指令执行完毕后,当硬件中断装置发现有中断请求时才去 响应和处理。 (2)处理完毕后的归属不同:缺页中断处理完后,仍返回到原指令去重新执行,因为那 条指令并未执行:而一般中断则是或返回到被中断进程的下一条指令去执行,因为上一条指 令己经执行完了,或重新调度,去执行别的进程程序 9。怎样理解把相对地址划分成数对:(页号,页内位移)的过程对于用户是“透明”的 答:在操作系统中,所谓“透明”,即指用户不知道的意思。对于分页式存储管理来说 用户向系统提供的相对地什空间,是一个一维的连续空间。系统接受了这个作业后,在内部 把这个相对地址空间划分成若干页。由于这种划分对于用户来说是根本不知道的,所以说把 相对地址划分成数对:(页号,页内位移)的过程对于用户是“透明”的。 10.做一个综述,说明从单 连续区存储管理到固定分区存储管理,到可变分区存储管 理,到分页式存储管理和分段式存储管理,再到请求分页式存储管理,每一种存储管理的出 现,都是在原有基础上的发展和提高。 答:教材共介绍了6种存储管理策略,它们 话用于不同的场合,如图所示。图中,在单一连 单一连续分区存储管列 续分区存储管理与固定分区存储管理之间画了 多道 条线,表明位于线以上的存储管理策略只适用于 单道程序设计,位于以下存储管理策路都适用于 不连蝴 全都 多道程序设计:在可变分区存储管理与分页式、 分段式存储管理之间画了一条线,表明位于线以 请求分页式存储管到 各种存储管理策略的适用场合 .12
- 12 - 到某条指令、要对内存中的某一地址访问时,因为这个地址是相对地址,所以先要根据这个 地址所在的页号去查页表(访问一次内存),然后才能由所形成的绝对地址去真正执行指令 (第二次访问内存)。可见,由于页表在内存,降低了 CPU 的访问速度。 为了提高相对地址到绝对地址的变换速度,人们想到用一组快速寄存器来代替页表。这 时查页表是以并行的方式进行,立即就能输出与该页号匹配的块号,这样做无疑比内存式的 页表要快得多。但是,快速寄存器的价格昂贵,由它来组成整个页表是不可取的。考虑到程 序运行时具有局部性,因此实际系统中总是一方面采用内存页表、另一方面用极少几个快速 寄存器组成快表来共同完成地址的变换工作。这时的地址变换过程,如教材中的图 3-22 所 示。 7.试述缺页中断与页面淘汰之间的关系。 答:在请求页式存储管理中,当根据虚拟地址查页表而发现所要访问的页不在内存时, 就会产生缺页中断。系统响应中断后,就由操作系统到辅存把所需要的页读入内存。这时, 内存可能有空闲的块,也可能没有。只有当内存中没有空闲块时,才会出现将内存现有页面 淘汰出去的问题,即要进行页面淘汰。所以,缺页中断和页面淘汰之间的关系是:页面淘汰 一定是由缺页中断所引起;但缺页中断则不一定引起页面淘汰。 8.试述缺页中断与一般中断的区别。 答:在计算机系统中,由于某些事件的出现,打断了当前程序的运行,而使 CPU 去处 理出现的事件,这称为“中断”。通常,计算机的硬件结构都是在执行完一条指令后,去检 查有无中断事件发生的。如果有,那么就暂停当前程序的运行,而让 CPU 去执行操作系统 的中断处理程序,这叫“中断响应”。CPU 在处理完中断后,如果不需要对 CPU 重新进行 分配,那么就返回被中断进程的程序继续运行;如果需要进行 CPU 的重新分配,那么操作 系统就会去调度新进程。 由上面的讲述可以看出,缺页中断与一般中断的区别如下。 (1)两种中断产生的时刻不同:缺页中断是在执行一条指令中间时产生的中断,并立即 转去处理;而一般中断则是在一条指令执行完毕后,当硬件中断装置发现有中断请求时才去 响应和处理。 (2)处理完毕后的归属不同:缺页中断处理完后,仍返回到原指令去重新执行,因为那 条指令并未执行;而一般中断则是或返回到被中断进程的下一条指令去执行,因为上一条指 令已经执行完了,或重新调度,去执行别的进程程序。 9.怎样理解把相对地址划分成数对:(页号,页内位移)的过程对于用户是“透明”的? 答:在操作系统中,所谓“透明”,即指用户不知道的意思。对于分页式存储管理来说, 用户向系统提供的相对地址空间,是一个一维的连续空间。系统接受了这个作业后,在内部 把这个相对地址空间划分成若干页。由于这种划分对于用户来说是根本不知道的,所以说把 相对地址划分成数对:(页号,页内位移)的过程对于用户是“透明”的。 10.做一个综述,说明从单一连续区存储管理到固定分区存储管理,到可变分区存储管 理,到分页式存储管理和分段式存储管理,再到请求分页式存储管理,每一种存储管理的出 现,都是在原有基础上的发展和提高。 答:教材共介绍了 6 种存储管理策略,它们 适用于不同的场合,如图所示。图中,在单一连 续分区存储管理与固定分区存储管理之间画了一 条线,表明位于线以上的存储管理策略只适用于 单道程序设计,位于以下存储管理策略都适用于 多道程序设计;在可变分区存储管理与分页式、 分段式存储管理之间画了一条线,表明位于线以 单一连续分区存储管理 固定分区存储管理 可变分区存储管理 分页式、分段式存储管理 请求分页式存储管理 单道 多道 连续 不连续 全部 部分 各种存储管理策略的适用场合
上的存储管理策略都要求为进入内存的作业分配一个连续的存储区,以下的存储管理策略打 破了连续性的要求:在分页式、分段式存储管理与请求页式存储管理之间画了一条线,表明 位于线以上的存储管理策略都要求使作业程序全部进入内存,而以下的存储管理策略打破 全部的要求,只要部分装入内存就可以了 可见,每一种新存储管理策略的出现,都是在原有存储管理基础上的一次发展和提高。 它们从简单到复杂,从不完善到逐渐完善。 11利用伙伴系统分配一个1MB的内存风域,存储请求和释放的序列为:情求A(70KB) 请求B(35KB),、 请求C(8OKB、释放A、请求D(6OKB趴、释放B、释放D、释放C。画出类 似 3 0的 答:结果如下图所示。 侣 A请求70KE A12 5128 B清求35B,A128K的B64B64B 5128 C话求048.A128KE1B4KB848C12B1128KE 512 A70KB 12a8B6464812a8128 512 D清求08,12mBB64KOD164BC12aBB 512g 释35KB120B64阳p64C129)120E 512 D择放60妇: 258C128K6)12E 5128 C样物阳, 四、计算 1.在可变分区存储管理中,按地址法组织当前的空闲分区,其大小分别为:1OKB,4KB, 20KB,18KB,7KB,9KB,12KB和15KB。现在依次有3个存储请求为:12KB,10KB, 9KB。试问使用最先适应算法时的分配情形如何?那么最佳适应、最坏适应呢? 解:我们用表来说明实行各种分配算法时的情形。 (1)最先适应算法 请求队列 最先适应算法 初始 4 18K 2K 15x 12K 10K 12K 15K 10K AK K 1发 12K15K 04K 8K 9K 7K 9 12K 15K (2)最佳适应算法 请求列 最佳适应算法 初始 10K 20K 12K 15K 10K 10K 15 9K 0 15K (3)最坏适应算法
- 13 - 上的存储管理策略都要求为进入内存的作业分配一个连续的存储区,以下的存储管理策略打 破了连续性的要求;在分页式、分段式存储管理与请求页式存储管理之间画了一条线,表明 位于线以上的存储管理策略都要求使作业程序全部进入内存,而以下的存储管理策略打破了 全部的要求,只要部分装入内存就可以了。 可见,每一种新存储管理策略的出现,都是在原有存储管理基础上的一次发展和提高。 它们从简单到复杂,从不完善到逐渐完善。 11. 利用伙伴系统分配一个1MB的内存区域,存储请求和释放的序列为:请求A(70KB)、 请求 B(35KB)、请求 C(80KB)、释放 A、请求 D(60KB)、释放 B、释放 D、释放 C。画出类 似于图 3-20 的图。 答:结果如下图所示。 四、计算 1.在可变分区存储管理中,按地址法组织当前的空闲分区,其大小分别为:10KB,4KB, 20KB,18KB,7KB,9KB,12KB 和 15KB。现在依次有 3 个存储请求为:12KB,10KB, 9KB。试问使用最先适应算法时的分配情形如何?那么最佳适应、最坏适应呢? 解:我们用表来说明实行各种分配算法时的情形。 (1)最先适应算法 请求队列 最先适应算法 初始 10K 4K 20K 18K 7K 9K 12K 15K 12K 10K 4K 8K 18K 7K 9K 12K 15K 10K 0 4K 8K 18K 7K 9K 12K 15K 9K 0 4K 8K 9K 7K 9K 12K 15K (2)最佳适应算法 请求队列 最佳适应算法 初始 10K 4K 20K 18K 7K 9K 12K 15K 12K 10K 4K 20K 18K 7K 9K 0 15K 10K 0 4K 20K 18K 7K 9K 0 15K 9K 0 4K 20K 18K 7K 0 0 15K (3)最坏适应算法
求队列 最坏适应算法 初始 10K 20x 18x 12 15K 12K 10K 9K 12K 10K 10 9K12K 1求 9K 10K 12K 可见,分配算法不同,选择的分配对象也不一样。 2,系统内存被别分成8块,每块4KB。某作业的虚拟地址空间共别分成16个页面 当前在内存的页与内存块的对应关系如下表所示,未列出的页表示不在内存 页号 块号 0 2 4 1 1 3 6 9 0. 1 试指出对应于下列虚拟地址的绝对地址 (a)20 (b)4100 (e)8300 解:()虚拟地址20对应的页号是0,页内位移是20。用0去查页表,知道第0页现 在存放在内存的第2块。由于每块的长度是4KB,所以第2块的起始地址为8192。因此, 虚拟地址20所对应的绝对地址是: 8192+20=8212 (b)虚拟地址4100对应的页号是: 4100/4096=1(“/”是整除运算符) 对应的页内位移是: 4100%4096=4(“%”是求金运算符 用1去查页表,知道第1页现在存放在内存的第1块。第1块的起始地址为4096。因 此,虚拟地址4100所对应的绝对地址是: 4096+4=4100 (c)虚拟地址8300对应的页号是: 8300/4096=2(“/”是整除云算符】 对应的页内位移是: 8300%409 108(“%”是求余运算符 用2去查页表,知道第2页现在存放在内存的第6块。第6块的起始地址为 6X4K=24576 因此,虚拟地址8300所对应的绝对地址是 24576+10R=246R4 3.某请求分页式存储管理系统,接收一个共7页的作业。作业运行时的页面走向如下 1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6 若采用最近最久未用(LU)页面淘汰算法,作业在得到2块和4块内存空间时,各会 产生出多少次缺页中断?如果采用先进先出(IFO)页面淘汰算法时,结果又如何? 解:(1)采用最近最久未用(LU)页面淘汰算法,作业在得到2块内存空间时所产生 -14
- 14 - 请求队列 最坏适应算法 初始 10K 4K 20K 18K 7K 9K 12K 15K 12K 10K 4K 8K 18K 7K 9K 12K 15K 10K 10K 4K 8K 8K 7K 9K 12K 15K 9K 10K 4K 8K 8K 7K 9K 12K 6K 可见,分配算法不同,选择的分配对象也不一样。 2.系统内存被划分成 8 块,每块 4KB。某作业的虚拟地址空间共划分成 16 个页面。 当前在内存的页与内存块的对应关系如下表所示,未列出的页表示不在内存。 页 号 块 号 页 号 块 号 0 2 4 4 1 1 5 3 2 6 9 5 3 0 11 7 试指出对应于下列虚拟地址的绝对地址: (a)20 (b)4100 (c)8300 解:(a)虚拟地址 20 对应的页号是 0,页内位移是 20。用 0 去查页表,知道第 0 页现 在存放在内存的第 2 块。由于每块的长度是 4KB,所以第 2 块的起始地址为 8192。因此, 虚拟地址 20 所对应的绝对地址是: 8192+20=8212 (b)虚拟地址 4100 对应的页号是: 4100/4096=1(“/”是整除运算符) 对应的页内位移是: 4100%4096=4(“%”是求余运算符) 用 1 去查页表,知道第 1 页现在存放在内存的第 1 块。第 1 块的起始地址为 4096。因 此,虚拟地址 4100 所对应的绝对地址是: 4096+4=4100 (c)虚拟地址 8300 对应的页号是: 8300/4096=2(“/”是整除运算符) 对应的页内位移是: 8300%4096=108(“%”是求余运算符) 用 2 去查页表,知道第 2 页现在存放在内存的第 6 块。第 6 块的起始地址为 6×4K=24576 因此,虚拟地址 8300 所对应的绝对地址是 24576+108=24684 3.某请求分页式存储管理系统,接收一个共 7 页的作业。作业运行时的页面走向如下: 1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6 若采用最近最久未用(LRU)页面淘汰算法,作业在得到 2 块和 4 块内存空间时,各会 产生出多少次缺页中断?如果采用先进先出(FIFO)页面淘汰算法时,结果又如何? 解:(1)采用最近最久未用(LRU)页面淘汰算法,作业在得到 2 块内存空间时所产生