1.选择题
-
计算机开机后,操作系统最终被加载到。
- A. BIOS:错误。BIOS是基本输入输出系统,它在计算机启动时被加载,但不是操作系统。
- B. ROM:错误。ROM是只读存储器,用于存储BIOS等固件,不是操作系统存放的地方。
- C. EPROM:错误。EPROM是可擦写可编程只读存储器,用于存储固件,不是操作系统存放的地方。
- D. RAM:正确。操作系统在启动后会被加载到随机存取存储器(RAM)中,因为RAM允许读写操作,适合运行操作系统。
-
要把以0为参考地址的装配模块装入到以550为起始地址的存储空间,若采用静态重定位,则原程序中的指令“LOAD 1 455”应改为。
- A. LOAD 1 1005:正确。因为需要将原地址455加上偏移量550,即455+550=1005。
- B. LOAD 1 550:错误。这个选项只是简单地将地址改为550,没有考虑到原地址455。
- C. LOAD 1 95:错误。这个选项没有正确地计算偏移量。
- D. LOAD 1 455:错误。这个选项没有进行任何地址转换。
-
分区分配内存管理方式的主要保护措施是。
- A. 界地址保护:正确。分区分配内存管理通过设置界地址来保护不同分区。
- B. 程序代码保护:错误。这不是分区分配内存管理的主要保护措施。
- C. 数据保护:错误。这不是分区分配内存管理的主要保护措施。
- D. 栈保护:错误。这不是分区分配内存管理的主要保护措施。
-
在固定分区存储管理中,装入内存的所有作业的相对地址空间总和。
- A. 可以大于:错误。固定分区的总和不会大于物理内存。
- B. 一定小于:错误。如果所有分区都被使用,总和可以等于物理内存。
- C. 一般小于:正确。因为固定分区可能不会完全填满所有内存空间。
- D. 以上说法都不对:错误。因为C选项是正确的。
-
在可变分区分配方案中,某一作业完成后,系统将回收其主存空间,并与相邻空闲区合并,引起空闲区数减1的是。
- A. 无上邻接空闲区,也无下邻接空闲区:错误。这种情况下不会减少空闲区数。
- B. 无上邻接空闲区,但有下邻接空闲区:错误。这种情况下也不会减少空闲区数。
- C. 有上邻接空闲区,但无下邻接空闲区:错误。这种情况下也不会减少空闲区数。
- D. 有上邻接空闲区,也有下邻接空闲区:正确。这种情况下,作业的内存空间会被两个相邻的空闲区合并,从而减少空闲区数。
-
可变分区存储管理中的移动技术可以。
- A. 缩短访问周期:错误。移动技术不直接影响访问周期。
- B. 增加主存容量:错误。移动技术不增加物理内存容量。
- C. 集中空闲区:正确。移动技术可以将分散的空闲区集中,以便更好地利用内存。
- D. 加速地址转换:错误。移动技术不直接影响地址转换速度。
-
采用分页式存储管理使处理器执行指令的速度。
- A. 有时提高有时降低:错误。分页式存储管理通常会导致速度降低,因为需要额外的地址转换。
- B. 降低:正确。分页式存储管理增加了地址转换的步骤,可能会降低执行速度。
- C. 不受影响:错误。分页式存储管理会影响执行速度。
- D. 提高:错误。分页式存储管理通常不会提高执行速度。
-
在分段式存储管理中,。
- A. 以段为单位分配内存,每段是一个连续存储区:错误。分段式存储管理中,段与段之间可以不连续。
- B. 段与段之间必定连续:错误。分段式存储管理中,段与段之间可以不连续。
- C. 段与段之间必定不连续:正确。分段式存储管理的特点就是段与段之间可以不连续。
- D. 每段是等长的:错误。分段式存储管理中,每段可以是不同长度的。
-
段页式存储管理中,逻辑地址的格式一般为。
- A. 段号 段内地址:错误。这是纯分段式存储管理的地址格式。
- B. 页号 段号 段内地址:错误。这是不正确的格式。
- C. 段号 页号 页内地址:正确。这是段页式存储管理的地址格式。
- D. 页号 页内地址:错误。这是纯分页式存储管理的地址格式。
-
一个分段存储管理系统中,地址长度若为32位,其中段号占8位,则最大段长是。
- A. 28B:错误。这是不正确的计算。
- B. 216B:错误。这是不正确的计算。
- C. 224B:正确。因为32位地址中,段号占8位,剩下的24位用于段内地址,即2^24 = 224B。
- D. 232B:错误。这是不正确的计算。
-
某基于动态分区存储管理的计算机,其主存容量为55MB(初始为空闲),采用最佳适配算法(Best Fit),分配和释放的顺序为:分配15MB,分配30MB,释放15MB,分配8MB,分配6MB,此时主存中最大空闲区的大小是。
- A. 7MB:错误。这个选项没有正确计算最大空闲区。
- B. 9MB:正确。初始55MB,分配15MB和30MB后剩余10MB,释放15MB后变为25MB,再分配8MB和6MB后,剩余11MB,最大空闲区为11MB。
- C. 10MB:错误。这个选项没有正确计算最大空闲区。
- D. 15MB:错误。这个选项没有正确计算最大空闲区。
-
下列选项中,属于多级页表优点的是。
- A. 减少页表所占的连续内存空间:正确。多级页表可以减少连续内存空间的需求。
- B. 加快地址变换速度:错误。多级页表可能会增加地址变换的复杂性。
- C. 减少页表项所占字节数:错误。多级页表不会减少页表项所占字节数。
- D. 减少缺页中断次数:错误。多级页表不直接影响缺页中断次数。
2. 填空题
(1)为了有效地管理计算机的内存资源,存储管理应具备 存储分配、地址映射、存储保护和内存扩充四大功能。
- 存储分配:指系统如何分配内存资源给各个进程。
- 地址映射:指逻辑地址到物理地址的转换过程。
- 存储保护:确保一个进程不能访问其他进程的内存空间。
- 内存扩充:通过虚拟内存技术,使用户程序可以使用比物理内存更多的内存空间。
(2)可以把存储管理方式分为 连续分配方式、离散分配方式和虚拟存储管理等三种。
- 连续分配方式:如固定分区和动态分区,要求进程在内存中占据连续的地址空间。
- 离散分配方式:如分页和分段,不要求进程在内存中占据连续的地址空间。
- 虚拟存储管理:通过将内存与辅助存储器结合起来,允许程序使用比物理内存更多的存储空间。
(3)为了适应最佳适应算法,空闲分区表中的空闲分区要按空闲区大小的升序进行排序;而为了适应最坏适应算法,空闲分区表中的空闲分区要按空闲区大小的降序进行排序。
- 最佳适应算法:选择最适合的空闲分区,即最小的能满足需求的空闲分区,以减少浪费。
- 最坏适应算法:选择最大的空闲分区,以减少大空闲分区的分割。
(4)页式存储管理中,页式虚拟地址与内存物理地址的映射是由页表和硬件地址转换机构来完成的。
- 页表:包含虚拟地址和物理地址之间的映射关系。
- 硬件地址转换机构:如内存管理单元(MMU),负责在实际访问内存时进行地址转换。
(5)段页式存储管理中,虚拟空间的最小单位是页而不是段。内存可以等分成若干个块,且每个段所拥有的程序和数据在内存中可以分开存放。
- 页:是虚拟地址空间和物理地址空间的最小单位。
- 块:在段页式管理中,内存被等分成块,每个块对应一个页。
- 内存:段中的程序和数据可以分布在不同的块中,即它们在物理内存中不需要连续存放。
3.名词解释
-
逻辑地址空间:
逻辑地址空间是指程序在编译时生成的地址空间,也称为虚拟地址空间。它是相对于物理地址空间而言的,程序员在编写程序时使用的地址空间。在逻辑地址空间中,程序员不需要关心实际的物理内存布局,而是使用虚拟内存地址来访问数据。这个地址空间由操作系统管理,并通过地址映射机制转换为物理地址空间。 -
存储空间:
存储空间是指计算机系统中用于存储数据和程序的物理区域。它包括主存储器(RAM)、辅助存储器(如硬盘、固态硬盘等)以及任何其他可以存储信息的介质。存储空间的大小决定了计算机可以处理的数据量和程序的复杂性。 -
地址重定位:
地址重定位是指在程序运行过程中,将程序的逻辑地址(虚拟地址)转换为相应的物理地址的过程。这是必要的,因为程序在编写和编译时使用的是逻辑地址,而实际运行时需要在物理内存中找到对应的位置。地址重定位可以是静态的,也可以是动态的,取决于转换是在程序运行前完成还是运行时完成。 -
静态重定位:
静态重定位是指在程序运行之前,地址转换就已经完成的过程。这种重定位通常在程序加载到内存时进行,一旦完成,程序的地址在整个运行期间都不会改变。静态重定位适用于那些在编译时就已经知道所有地址的程序,如简单的嵌入式系统程序。 -
动态重定位:
动态重定位是指在程序运行过程中,根据需要动态地将逻辑地址转换为物理地址的过程。这种重定位允许程序在运行时加载和卸载,以及在内存中移动,而不需要在编译时就知道所有的地址。动态重定位是实现虚拟内存和动态内存分配的关键技术,它使得程序可以比物理内存大,并且可以有效地利用内存资源。
4.解答题
-
存储管理研究的主要课题是什么?
存储管理研究的主要课题包括:- 内存分配:如何有效地分配内存给进程,包括静态分配和动态分配。
- 地址转换:如何将逻辑地址(程序中的地址)转换为物理地址(实际内存中的地址)。
- 存储保护:确保进程之间不会相互干扰,防止非法访问内存。
- 内存扩充:通过虚拟内存技术,允许程序使用比物理内存更多的存储空间。
- 内存共享:允许多个进程共享相同的内存区域。
- 内存压缩:通过技术如交换和压缩,提高内存的使用效率。
-
请总结各种存储管理方式下的重定位的地址转换方法
- 静态重定位:在程序加载时,地址转换是固定的,通常通过基址和界限寄存器来实现。
- 动态重定位:在程序运行时,地址转换是动态的,通过硬件支持的内存管理单元(MMU)来实现。
- 分页存储管理:通过页表将虚拟地址的页号和页内偏移转换为物理地址的帧号和帧内偏移。
- 分段存储管理:通过段表将逻辑地址的段号和段内偏移转换为物理地址。
- 段页式存储管理:结合分段和分页,先通过段表找到段的物理地址,再通过页表找到页内的具体位置。
-
可变分区存储管理中的内存分配有哪些算法?试比较其优缺点。
- 首次适应算法:从头开始搜索,直到找到足够大的空闲区。优点是实现简单,缺点是可能导致很多小的碎片。
- 最佳适应算法:选择最合适的空闲区,即最小的能满足需求的空闲区。优点是减少了大的空闲区的分割,缺点是可能导致外部碎片。
- 最坏适应算法:选择最大的空闲区。优点是减少了外部碎片,缺点是可能导致小的请求难以满足。
- 循环首次适应算法:从上次找到空闲区的地方开始搜索。优点是减少了搜索时间,缺点是可能导致内存使用不均匀。
-
可变分区的分区回收有几种情况?试说明之。
- 无上邻接空闲区,也无下邻接空闲区:作业完成后,其内存空间成为一个新的独立的空闲区。
- 无上邻接空闲区,但有下邻接空闲区:作业的内存空间与下方的空闲区合并,形成一个新的更大的空闲区。
- 有上邻接空闲区,但无下邻接空闲区:作业的内存空间与上方的空闲区合并,形成一个新的更大的空闲区。
- 有上邻接空闲区,也有下邻接空闲区:作业的内存空间同时与上方和下方的空闲区合并,形成一个新的更大的空闲区。
-
简述分页存储管理的基本原理。
分页存储管理的基本原理是将虚拟内存划分为固定大小的页,同时将物理内存划分为同样大小的帧。每个页通过页表映射到一个帧。当程序访问一个虚拟地址时,内存管理单元(MMU)使用页表将页号和页内偏移转换为对应的帧号和帧内偏移,从而访问物理内存。 -
请画出分页情况下的地址变换过程,并说明页面尺寸为什么一定要是2的幂?
地址变换过程:+----------------+----------------+----------------+ | 虚拟页号(VPN) | 页内偏移(Offset) | 物理页号(PFN) | +----------------+----------------+----------------+
- 虚拟地址由虚拟页号和页内偏移组成。
- 虚拟页号用于在页表中查找对应的物理页号。
- 页表将虚拟页号映射为物理页号。
- 物理页号和页内偏移组合成物理地址。
页面尺寸为什么一定要是2的幂:
- 页表中的索引必须是连续的,页面尺寸为2的幂可以保证页表项的索引是连续的,便于快速计算。
- 2的幂可以简化地址的位移操作,提高地址转换的速度。
-
试比较分页与分段存储管理的优缺点。
- 分页存储管理:
- 优点:管理简单,易于实现,可以有效地支持多任务和虚拟内存。
- 缺点:页大小固定,可能导致内存空间的浪费;页表可能很大,占用额外的内存。
- 分段存储管理:
- 优点:更灵活,段的大小可以根据需要定义,适合不同大小的数据和程序。
- 缺点:段表可能很大,且段的分配和回收比页更复杂。
- 分页存储管理:
-
某作业大小为8A5H字节,从内存53FH处开始装载,当作业的相应进程在CPU上运行时:
-
1)若采用上、下界寄存器保护,寄存器的值各为多少?如何进行保护?
- 上界寄存器:53FH + 8A5H = DE4H。
- 下界寄存器:53FH。
- 保护:任何试图访问小于53FH或大于DE4H的内存地址的请求都将被视为非法。
-
2)若采用基址、限长寄存器保护,寄存器的值各为多少:如何进行保护?
- 基址寄存器:53FH。
- 限长寄存器:8A5H。
- 保护:任何试图访问小于53FH或大于53FH + 8A5H的内存地址的请求都将被视为非法。
-
(9)试说明在分页存储管理系统中,地址变换过程可能会因为哪些原因而产生中断?
1)越界中断(Boundary Violation Interrupt):
- 越界中断发生在程序试图访问的内存地址超出了其分配的逻辑地址空间时。在分页系统中,每个进程的逻辑地址空间被划分为多个页,每个页都有对应的页框(物理内存中的帧)。当程序试图访问的页内偏移量超出了该页的大小,即访问了不属于该页的地址时,就会触发越界中断。这种中断是一种保护机制,防止进程访问不属于它们的内存区域。
2)缺页中断(Page Fault Interrupt):
- 缺页中断发生在程序试图访问的页不在物理内存中,而是存储在外部存储器(如硬盘)中时。在这种情况下,内存管理单元(MMU)无法在页表中找到对应的页框条目,或者找到的页框条目表明该页不在内存中。这时,操作系统需要将所需的页从外部存储器调入物理内存中,这个过程称为页面置换。缺页中断是虚拟内存管理中常见的中断,它允许系统使用比物理内存更多的内存空间。
10.在分页存储管理系统中,某进程的页表如下(表中数据为十进制):若页面大小为2KB(即2^11B),试将虚地址0A3BH和6E1CH变换为物理地址。
页号 | 物理块号 |
---|---|
0 | 10 |
1 | 7 |
2 | 12 |
3 | 6 |
4 | 15 |
5 | 11 |
6 | 8 |
7 | 2 |
(1)将虚地址0A3BH转换成二进制,并从第11位(页大小为2KB=2^11B),高位部分为页号,低位部分为页内地址:
0A3BH -> 0000 1010 0011 1011B
| 页号 | 页内地址
得页号为1,查页表知对应的物理块号为7,则物理地址为:
物理块号:7 页内地址:0000 1010 0011 1011B
-> 0000 0111 1010 0011 1011B
即虚地址0A3BH变换为物理地址后为3A3BH。
(2)将虚地址6E1CH转换成二进制,并从第11位(页大小为2KB=2^11B),高位部分为页号,低位部分为页内地址:
6E1CH -> 0110 1110 0001 1100B
| 页号 | 页内地址
得页号为13,查页表,该进程没有第13页,产生越界中断。
11.在分段存储管理中,每个段都有一个段表,其中包含段的长度和内存起始地址。根据给定的段表,我们可以将虚地址转换为物理地址。
段表如下:
段号 | 段的长度(字节) | 内存起始地址 |
---|---|---|
0 | 380 | 95 |
1 | 20 | 525 |
2 | 105 | 3300 |
3 | 660 | 860 |
4 | 50 | 1800 |
1)将虚地址(0,260),(2,200),(4,42)变换为物理地址。
① 虚地址(0,260):
- 查段表知第0段的长度为380,地址合法。
- 物理地址为95 + 260 = 355。
② 虚地址(2,200):
- 查段表知第2段的长度为105,段内地址200 > 段长105,地址非法,产生越界中断。
③ 虚地址(4,42):
- 查段表知第4段长度为50,地址合法。
- 物理地址为1800 + 42 = 1842。
2)存取内存中的一条指令或数据至少要访问几次内存?
在分段存储管理中,存取内存中的一条指令或数据至少需要2次内存访问:
- 第一次访问内存:访问段表,找到段的起始地址和长度。
- 第二次访问内存:使用段起始地址和段内偏移量,访问实际的内存位置。
因此,存取内存中的一条指令或数据至少要2次访问内存。
12.存储映象技术是指在虚拟内存系统中,如何将虚拟地址映射到物理地址的技术。以下是三种存储映象技术的比较:
1)直接映象(Direct Mapping):
- 优点:
- 简单高效:直接映象的映射机制简单,查找速度快,因为它通常使用一个固定的哈希函数将虚拟地址直接映射到物理地址。
- 无冲突:每个虚拟地址总是映射到相同的物理地址,不存在多个虚拟地址映射到同一个物理地址的冲突问题。
- 缺点:
- 空间利用率低:由于映射是固定的,可能导致某些物理内存区域被频繁使用,而其他区域则被闲置,造成空间利用率不均。
- 缺乏灵活性:映射关系在系统运行期间不能改变,缺乏灵活性。
2)相关映象(Fully Associative Mapping):
- 优点:
- 灵活性高:任何虚拟地址都可以映射到任何物理地址,提供了最大的灵活性。
- 负载均衡:可以设计算法使得内存的使用更加均匀,提高物理内存的利用率。
- 缺点:
- 查找速度慢:映射表可能需要遍历,查找速度较慢。
- 硬件成本高:实现完全关联映射的硬件成本较高,需要复杂的查找机制。
3)直接和相关相结合的映象(Set-Associative Mapping):
- 优点:
- 折中方案:结合了直接映象和完全关联映射的优点,提供了一定的灵活性,同时保持了较快的查找速度。
- 减少冲突:相比于直接映象,集合关联映射减少了冲突的可能性,因为每个虚拟地址可以映射到一组物理地址中的任意一个。
- 缺点:
- 实现复杂度:相比于直接映象,集合关联映射的实现更加复杂。
- 仍然存在冲突:虽然比直接映象好,但仍然存在地址冲突的可能性,需要额外的策略来处理冲突(如使用链表或栈)。
总结来说,直接映象在查找速度和实现简单性上有优势,但缺乏灵活性和空间利用率;完全关联映射提供了最大的灵活性和负载均衡,但查找速度慢且成本高;集合关联映射则是一个折中方案,提供了较好的灵活性和较快的查找速度,但实现复杂度和成本介于前两者之间。