当前位置:文档之家› 分存储器管理

分存储器管理

分存储器管理
分存储器管理

实验7分页存储器管理

实验性质:验证+设计

建议学时:2学时

一、实验目的

??学习i386处理器的二级页表硬件机制,理解分页存储器管理原理。

??查看EOS应用程序进程和系统进程的二级页表映射信息,理解页目录和页表的管理方式。

??编程修改页目录和页表的映射关系,理解分页地址变换原理。

二、预备知识

阅读本书第6章。了解i386处理器的二级页表硬件机制,EOS操作系统的分页存储器管理方式,以及进程地址空间的内存分布。

三、实验内容

3.1 准备实验

按照下面的步骤准备本次实验:

1. 启动OS Lab。

2. 新建一个EOS应用程序项目。

3.2 查看EOS应用程序进程的页目录和页表

使用OS Lab打开本实验文件夹中的memory.c和getcr3.asm文件(将文件拖动到OS Lab窗口中释放即可打开)。仔细阅读这两个文件中的源代码和注释,main函数的流程图可以参见图16-1。

按照下面的步骤查看EOS应用程序进程的页目录和页表:

1. 使用memory.c文件中的源代码替换之前创建的EOS应用程序项目中

EOSApp.c文件中的源代码。

2. 右键点击“项目管理器”窗口中的“源文件”文件夹节点,在弹出

的快捷菜单中选择“添加”中的“添加新文件”。

3. 在弹出的“添加新文件”对话框中选择“asm 源文件”模板。

4. 在“名称”中输入文件名称“func”。

5. 点击“添加”按钮添加并自动打开文件func.asm。

6. 将getcr3.asm文件中的源代码复制到func.asm文件中。

7. 按F7生成修改后的EOS应用程序项目。

8. 按F5启动调试。

9. 应用程序执行的过程中,会将该进程的二级页表映射信息输出到虚

拟机窗口和OS Lab“输出”窗口中,输出内容如图16-2(a)。

10. 将“输出”窗口中的内容复制到一个文本文件中。

图16-2:(a)EOS应用程序进程的二级页表映射信息(b)有应用程序进程时,系统进程的二级页表映射信息图16-2(a)中第一行是CR3寄存器的值,也就是页目录所在的页框号。第一列是页目录中有效的PDE,第二列是PDE映射的页表中有效的PTE(详细的格式可以参考源代码中的注释)。注意,在标号为0x200的PDE对应的页表中,所有的1024个PTE都是有效的,所以在图中省略了一部分。

根据图16-2(a)回答下面的问题:

??应用程序进程的页目录和页表一共占用了几个物理页?页框号分别是

多少?

??映射用户地址空间(低2G)的页表的页框号是多少?该页表有几个有效的PTE,或者说有几个物理页用来装载应用程序的代码、数据和堆栈?页框号分别是多少?

3.3 查看应用程序进程和系统进程并发时的页目录和页表

需要对EOS应用程序进行一些修改:

1. 结束之前的调试。

2. 取消EOSApp.c第121行语句的注释(该行语句会等待10秒)。

3. 按F7生成修改后的EOS应用程序项目。

4. 按F5启动调试。

5. 在“Console-1”中会自动执行EOSApp.exe,创建该应用程序进程。

利用其等待10秒的时间,按Ctrl+F2切换到“Console-2”。

6. 在“Console-2”中输入命令“mm”后按回车,会将系统进程的二级

页表映射信息输出到虚拟机窗口和OS Lab的“输出”窗口,输出内容如图16-2(b)。注意,在图16-2(b)中添加了一些空行,方便与图16-2(a)比较。“Console-1”中的应用程序在等待10秒后,又会输出和图16-2(a)一致的内容。

7. 将“输出”窗口中的内容复制到一个文本文件中。

控制台命令“mm”对应的源代码在EOS内核项目ke/sysproc.c文件的ConsoleCmdMemoryMap函数中(第382行)。阅读这部分源代码后会发现,其与EOSApp.c文件中的源代码基本类似。

结合图16-2(a)和(b)回答下面的问题:

??EOS启动后系统进程是一直运行的,所以当创建应用程序进程后,系统中就同时存在了两个进程,这两个进程是否有各自的页目录?在页目录映射的页表中,哪些是独占的,哪些是共享的?分析其中的原因。

??统计当应用程序进程和系统进程并发时,总共有多少物理页被占用?

应用程序结束后,在“Console-1”中再次输入命令“mm”,查看在没有应用程序进程时,系统进程的页目录和页表。将“输出”窗口中的内容复制到一个文本文件中。将输出的内容与图16-2(b)比较,思考为什么系统进程(即内核地址空间)占用的物理页会减少?(提示:创建应用程序进程时,EOS内核要为其创建PCB,应用程序结束时,内核要释放PCB占用的内存。)3.4 查看应用程序进程并发时的页目录和页表

需要对EOS应用程序进行一些修改:

1. 结束之前的调试。

2. 取消EOSApp.c第201行语句的注释(该行语句会等待10秒)。

3. 按F7生成修改后的EOS应用程序项目。

4. 按F5启动调试。

5. 在“Console-1”中会自动执行EOSApp.exe,创建该应用程序进程。

利用其等待10秒的时间,按Ctrl+F2切换到“Console-2”。

6. 在“Console-2”中输入“eosapp”后按回车,再执行一个EOSApp.exe。

7. 由EOSApp.exe创建的两个并发进程会先后在各自的控制台和OS Lab

“输出”窗口中,输出各自的二级页表映射信息。输出的内容如图16-3。

8. 将“输出”窗口中的内容复制到一个文本文件中。

图16-3:(a)应用程序进程1的二级页表映射信息(b)应用程序进程2的二级页表映射信息结合图16-3(a)和(b)回答下面的问题:

??观察这两个进程的用户地址空间,可以得出结论:同一个应用程序创建的两个并发的进程,它们的用户虚拟地址空间完全相同,而映射的物理页完全不同,从而保证相同的行为(执行过程)可以在独立的空间内完成。假设进程1的0x41E和0x41F物理页保存了应用程序的可执行代码,由于可执行代码是不变的、只读的,现在假设优化过的EOS允许进程2共享进程1的保存了可执行代码的物理页,尝试结合图16-3写出此时进程2用户地址空间的映射信息。并说明共享可执行代码的物理页能带来哪些好处。

??统计当两个应用程序进程并发时,总共有多少物理页被占用?有更多的进程同时运行呢?根据之前的操作方式,尝试在更多的控制台中启动应用程序来验证自己的想法。如果进程的数量足够多,物理内存是否会用尽,如何解决该问题?

3.5 在二级页表中映射新申请的物理页

下面通过编程的方式,从EOS操作系统内核中申请两个未用的物理页,将第一个物理页当作页表,映射基址为0xE0000000的4M虚拟地址空间,然后将第二个物理页分别映射到基址为0xE0000000和0xE0001000的4K虚拟地址空间。从而验证下面的结论:

??虽然进程可以访问4G虚拟地址空间,但是只有当一个虚拟地址通过二级页表映射关系能够映射到实际的物理地址时,该虚拟地址才能够被访问,否则会触发异常。

??所有未用的物理页都是由EOS操作系统内核统一管理的,使用时必须向内核申请。

??为虚拟地址映射物理页时,必须首先为页目录安装页表,然后再为页表安装物理页。并且只有在刷新快表后,对页目录和页表的更改才能生效。??不同的虚拟地址可以映射相同的物理页,从而实现共享。

首先验证第一个结论:

1. 新建一个 EOS Kernel项目。

2. 从“项目管理器”打开ke/sysproc.c文件。

3. 打开本实验文件夹中的MapNewPage.c文件(将文件拖动到OS Lab窗

口中释放即可)。

4. 在sysproc.c文件的ConsoleCmdMemoryMap函数中找到“关中断”的

代码行(第413行),将MapNewPage.c文件中的代码插入到“关中断”

代码行的后面。

5. 按F7生成该内核项目。

6. 按F5启动调试。

7. 在EOS控制台中输入命令“mm”后按回车。

8. OS Lab会弹出一个调试异常对话框,选择“是”调试异常。

9. 黄色箭头指向访问虚拟地址0xE0000000的代码行。由于该虚拟地址

没有映射物理内存(图16-2和图16-3中都未映射该虚拟地址),所以对该虚拟地址的访问会触发异常。

10. 结束此次调试,然后删除或者注释会触发异常的该行代码。

按照下面的步骤验证其它结论:

1. 按F7生成该内核项目。

2. 按F5启动调试。

3. 在EOS控制台中输入命令“mm”后按回车。

4. 在OS Lab的“输出”窗口中查看执行的结果,并将“输出”窗口中

的内容复制到一个文本文件中。

结合插入的源代码和执行的结果理解上面的结论。注意,在代码中修改了虚拟地址0xE0000000处的内存的值,然后从虚拟地址0xE0001000处读取到了相同的值,原因是这两处虚拟地址映射到了相同的物理页。

四、思考与练习

1. 观察之前输出的页目录和页表的映射关系,可以看到页目录的第

0x300个PDE映射的页框号就是页目录本身,说明页目录被复用为了页表。而恰恰就是这种映射关系决定了4K的页目录映射在虚拟地址空间的0xC0300000-0xC0300FFF,4M的页表映射在0xC0000000-0xC03FFFFF。现在,假设修改了页目录,使其第0x100个PDE映射的页框号是页目录本身,此时页目录和页表会映射在4G虚拟地址空间的什么位置呢?说明计算方法。

2. 修改EOSApp.c中的源代码,通过编程的方式统计并输出用户地址空

间占用的内存数目。

3. 修改EOSApp.c中的源代码,通过编程的方式统计并输出页目录和页

表的数目。注意页目录被复用为页表。

4. 在EOS启动时,软盘引导扇区被加载到从0x7C00开始的512个字节的物理内存中,计算一下其所在的物理页框号,然后根据物理内存与虚拟内存的映射关系得到其所在的虚拟地址。修改EOSApp.c中的源代码,尝试将软盘引导扇区所在虚拟地址的512个字节值打印出来,与boot.lst 文件中的指令字节码进行比较,验证计算的虚拟地址是否正确。

5. 既然所有1024个页表(共4M)映射在虚拟地址空间的

0xC0000000-0xC03FFFFF,为什么不能从页表基址0xC0000000开始遍历,来查找有效的页表呢?而必须先在页目录中查找有效的页表呢?编写

代码尝试一下,看看会有什么结果。

6. 学习EOS操作系统内核统一管理未用物理页的方法(可以参考本书第6章的第6.5节)。尝试在本实验第3.5节中ConsoleCmdMemoryMap函数源代码的基础上进行修改,将申请到的物理页从二级页表映射中移除,并让内核回收这些物理页。

7. 思考页式存储管理机制的优缺点。

磁盘存储器管理习题分析

1、系统中磁头停留在磁道号为100的磁道上,这时先后有4个进程提出了磁盘访问请求,要访问磁盘的磁道号按申请到达的先后顺序依次为:55、120、39、110。移动臂的运动方向:沿磁道号递减的方向移动。若分别采用FCFS磁盘调度算法、SSTF算法、SCAN算法时,所需寻道长度分别为多少? FCFS算法:100-55+ 120-55+ 120-39+ 110-39 = 262 SSTF算法:110-100 +120-110 + 120-55 + 55-39 = 101 SCAN算法: 100-55+ 55-39 +110-39 + 120-110 = 142 2、假设磁盘有200个磁道,磁盘请求队列中是一些随机请求,它们照到达的次序分别处于55、58、39、18、90、160、150、38、184号磁道上,当前磁头在100号磁道上,并向磁道号增加的方向上移动。请给出按FCFS、SSTF、SCAN及CSCAN算法进行磁盘调度时满足请求的次序,并计算它们的平

1、在FAT16文件系统中,且每个盘块的大小是512字节, 1)如果每个簇可以有4个盘块,可以管理的最大分区空间是多少? 2)如果每个簇可以有64个盘块,可以管理的最大分区空间又是多少? 答: 1)216 * 4 * 512 = 128M 2)216 * 64 * 512 = 2G 2、某操作系统的磁盘文件空间共有500块,若用字长为32位的位示图管理盘块空间,试问: 1)位示图需要多少个字? 2)如果b(盘块号), i, j从1开始计数,第i字第j位对应的块号是多少? 3)如果b(盘块号), i, j 从0开始计数,第i字第j位对应的块号是多少? 答: 1)[500/32] =16 2) b = 32* (i-1) +j 3)b= 32*i+j 3、有3200个磁盘块可用来存储信息,如果用字长为16位的字来构造位示图,若位示图部分内容如图所示。 1)位示图共需多少个字? 2)若某文件长度为3200B,每个盘块为512个字节,采用链接结构且盘块从1开始计数,系统将为 其分配哪些磁盘块? 3)试具体说明分配过程。 4)若要释放磁盘的第300块,应如何处理? 1)3200/16=200 2)3200/512 =7 ; 20、24、25、26、27、37和38 3)顺序检索位示图,从中找到第一个值为0的二进制位,得到行号i=2,列号j=4 ;计算出找到的第一个盘块是 B1 = (2-1)*16+4=20 第二个值为0的二进制位,得到行号i=2,列号j=8. ;计算出找到的第一个盘块是 B2=(2-1)*16+8=24 …………. 修改位示图,令Map[2,4]=Map[2,8] = …..=1,并将对应块20、24……. 分配出去。 4)计算出磁盘第300块所对应的二进制位的行号i和列号j : i = (300-1)/16 + 1 = 19 j = (300-1)MOD16 + 1= 12 修改位示图,令Map[19,12]=0,表示对应块为空闲块。

5、存储管理

一、选择题 1.存储器管理的主要功能是内存分配、地址映射、内存保护和( )。 A.内存扩充 B.外存扩充 C内存和外存扩充 D.地址保护 2.把逻辑地址转变为内存的物理地址的过程称作( ) A.编译 B.连接 C.运行 D.重定位 3.物理地址对应的是( )。 A.模块中的地址 B. 内存中的地址 C.外存中的地址 D.数据的起始地址 4.逻辑地址对应的是( ) A.数据的起始地址 B.内存中的地址 C.模块中的地址 D.外存中的地址 5.动态重定位是在( )时进行的重定位。 A.程序执行时 B.开机时 C.启动时 D.装入内存时 6.静态重定位是在( )时进行的重定位。 A.程序执行时 B.开机时 C.启动时 D.装入内存时 7.在目标程序装入内存时,一次性完成地址修改的方式是( ) A 静态重定位 B.动态重定位 C.静态连接 D.动态连接 8.下列关于缓冲技术描述正确的是( ) A.以空间换取时间的技术 B.以时间换取空间的技术 C.是为了协调CPU与内存之间的速度 D.是为了提高外设的处理速度 9.可变式分区管理的分配策略中,首次适应算法是按照 ( ) 顺序排列空闲区。 A.起始地址递减 B.起始地址任意 C.起始地址递增 D.分区大小递增 10.可变式分区又称为动态分区,它是在系统运行过程中,( )时动态建立的。 A.在作业装入 B.在作业创建 C.在作业完成 D.在作业未装入 11.在可变分区存储管理中,将空闲区按照长度递增的顺序排列的分配算法是( ) A.首次适应算法 B.最佳适应算法 C.最坏适应算法 D.循环首次适应算法 12.可重定位分区分配中的碎片是( ) A.磁盘的一小部分 B.外存的一小部分 C.内存中容量小、无法利用的小分区 D.内存中的小分区 13.在分页存储管理系统中,从页号到物理块号的地址映射是通过( )实现的。 A.段表 B.页表 C.PCB D.JCB 14.请求分页存储管理中,若把页面尺寸增加一倍,在程序顺序执行时,则一般缺页中断次数会( )。 A.增加 B.减少 C.不变 D.可能增加也可能减少 15.页表的作用是实现从页号到物理块号的( )。 A.逻辑映射 B.物理映射 C.地址映射 D.逻辑地址映射 16.虚拟存储器的基本特征是:虚拟扩充、部分装入、离散分配和( ) A.虚拟保护 B.虚拟装入 C.一次对换 D.多次对换 17.虚拟存储管理策略可以( )。 A.扩大物理内存容量 B.扩大物理外存容量 C.扩大逻辑内存容量 D.扩大逻辑外存容量 18.虚拟存储器受到的限制有外存的容量和( )。 A.指令中表示地址的字长 B.内存的容量 C.硬件的好坏 D.以上的观点都对 19.在页式存储管理中,每当CPU形成一个有效地址时,要查页表,这—工作是由( )实现

分存储器管理

实验7分页存储器管理 实验性质:验证+设计 建议学时:2学时 一、实验目的 学习i386处理器的二级页表硬件机制,理解分页存储器管理原理。 查看EOS应用程序进程和系统进程的二级页表映射信息,理解页目录和页表的管理方式。 编程修改页目录和页表的映射关系,理解分页地址变换原理。 二、预备知识 阅读本书第6章。了解i386处理器的二级页表硬件机制,EOS操作系统的分页存储器管理方式,以及进程地址空间的内存分布。 三、实验内容 准备实验 按照下面的步骤准备本次实验: 1. 启动OS Lab。 2. 新建一个EOS应用程序项目。 查看EOS应用程序进程的页目录和页表 使用OS Lab打开本实验文件夹中的和文件(将文件拖动到OS Lab窗口中释放即可打开)。仔细阅读这两个文件中的源代码和注释,main函数的流程图可以参见图16-1。 按照下面的步骤查看EOS应用程序进程的页目录和页表: 1. 使用文件中的源代码替换之前创建的EOS应用程序项目中文件中的 源代码。

2. 右键点击“项目管理器”窗口中的“源文件”文件夹节点,在弹出 的快捷菜单中选择“添加”中的“添加新文件”。 3. 在弹出的“添加新文件”对话框中选择“asm 源文件”模板。 4. 在“名称”中输入文件名称“func”。 5. 点击“添加”按钮添加并自动打开文件。 6. 将文件中的源代码复制到文件中。 7. 按F7生成修改后的EOS应用程序项目。 8. 按F5启动调试。 9. 应用程序执行的过程中,会将该进程的二级页表映射信息输出到虚 拟机窗口和OS Lab“输出”窗口中,输出内容如图16-2(a)。 10. 将“输出”窗口中的内容复制到一个文本文件中。 图16-2:(a)EOS应用程序进程的二级页表映射信息(b)有应用程序进程时,系统进程的二级页表映射信息图16-2(a)中第一行是CR3寄存器的值,也就是页目录所在的页框号。第一列是页目录中有效的PDE,第二列是PDE映射的页表中有效的PTE(详细的格式可以参考源代码中的注释)。注意,在标号为0x200的PDE对应的页表中,所有的1024个PTE都是有效的,所以在图中省略了一部分。 根据图16-2(a)回答下面的问题: 应用程序进程的页目录和页表一共占用了几个物理页页框号分别是多少 映射用户地址空间(低2G)的页表的页框号是多少该页表有几个有效的PTE,或者说有几个物理页用来装载应用程序的代码、数据和堆栈页框号分别是多少 查看应用程序进程和系统进程并发时的页目录和页表 需要对EOS应用程序进行一些修改: 1. 结束之前的调试。 2. 取消第121行语句的注释(该行语句会等待10秒)。

第4章存储器管理练习答案

第四章存储器管理 一、单项选择题 1、存储管理的目的是(C )。 A.方便用户 B.提高内存利用率 C.方便用户和提高内存利用率 D.增加内存实际容量 2、在( A)中,不可能产生系统抖动的现象。 A.固定分区管理 B.请求页式管理 C.段式管理 D.机器中不存在病毒时 3、当程序经过编译或者汇编以后,形成了一种由机器指令组成的集合,被称为(B )。 A.源程序 B.目标程序 C.可执行程序 D.非执行程序 4、可由CPU调用执行的程序所对应的地址空间为(D )。 A.符号名空间 B.虚拟地址空间 C.相对地址空间 D.物理地址空间 5、存储分配解决多道作业[1C]划分问题。为了实现静态和动态存储分配,需采用地址重定位,即把[2C]变成[3D],静态重定位由[4D]实现,动态重定位由[5A]实现。 供选择的答案: [1]:A 地址空间 B 符号名空间 C 主存空间 D 虚存空间 [2]、[3]: A 页面地址 B 段地址 C 逻辑地址 D 物理地址 E 外存地址 F 设备地址 [4]、[5]: A 硬件地址变换机构 B 执行程序 C 汇编程序 D 连接装入程序 E 调试程序 F 编译程序 G 解释程序 6、分区管理要求对每一个作业都分配(A )的内存单元。 A.地址连续 B.若干地址不连续 C.若干连续的帧 D.若干不连续的帧 7、(C )存储管理支持多道程序设计,算法简单,但存储碎片多。 A.段式 B.页式 C.固定分区 D.段页式 8、处理器有32位地址,则它的虚拟地址空间为( B)字节。 A.2GB B.4GB C.100KB D.640KB 9、虚拟存储技术是( A)。 A.补充内存物理空间的技术 B.补充相对地址空间的技术 C.扩充外存空间的技术 D.扩充输入输出缓冲区的技术 10、虚拟内存的容量只受( D)的限制。 A.物理内存的大小 B.磁盘空间的大小 C.数据存放的实际地址 D.计算机地址字长 11、虚拟存储技术与(A )不能配合使用。 A.分区管理 B.动态分页管理 C.段式管理 D.段页式管理

存储器管理练习及参考答案

存储器管理练习及参考答案 一、单项选择题: 1、存储管理的目的是( C )。 A.方便用户 B.提高主存空间的利用率 C.方便用户和提高主存空间的利用率 D.增加主存实际容量 2、( A )存储管理不适合多道程序设计。 A.单一连续分区 B.固定分区存储管理 C.可变分区存储管理 D.页式存储管理 3、静态重定位是在作业的(B )进行的,动态重定位是在作业的( D )进行的。 A.编译过程中 B.装入过程中 C.修改过程中 D.执行过程中 4、提高主存利用率主要是通过( A )实现的。 A.内存分配 B.内存保护 C.地址映射 D.内存扩充 5、多道程序环境中,使每道程序能在不受干扰的环境下运行,主要是通过(C )功能实现的。 A.内存分配 B.地址映射 C.内存保护 D.内存扩充 6、最佳适应分配算法的空闲区是(B )。 A.按大小递减顺序排序 B.按大小递增顺序排序 C.按地址由小到大排列 D.按地址由大到小排列 7、地址重定位的对象是(B )。 A.源程序 B.目标程序 C.编译程序 D.汇编程序 8、采用可变分区存储管理方式管理主存时,使用移动技术可以(B )。 A.加快作业执行速度 B.集中分散的空闲区 C.扩大主存容量 D.加快地址转换 9、如下存储管理方式中,(A )一般采用静态重定位方式进行逻辑地址到物理地址的转换。 A.固定分区存储管理方式 B.段式存储管理方式 C.可变分区存储管理方式 D.页式存储管理方式 10、很好地解决了内存零头问题的存储管理方法是( A )。 A.页式存储管理 B.段式存储管理 C.多重分区管理 D.可变式分区管理 11、设基址寄存器的内容为1000,在采用动态重定位的系统中,当执行指令“Load A,2000”时,操作数的实际地址是( C )。 A.1000 B.2000 C.3000 D.4000 12、对主存的研究可归纳为:主存的分配与回收、地址重定位、存储空间的共享与保护、( B )。 A.地址映射 B.虚拟存储 C.分区管理 D.物理存储器的扩充 13、地址转换或叫重定位的工作是将( C ) A.绝对地址转换为逻辑地址 B.逻辑地址转换为浮动地址 C.逻辑地址转换为绝对地址 D.绝对地址转换为浮动地址 14、段式存储管理中,用于记录作业每个分段在主存中的起始地址和长度的是(B )。 A. 基址寄存器和限长寄存器 B.段表 C. 界限寄存器 D.上、下限寄存器

第4章-存储器管理练习答案

第4章-存储器管理练习答案

第四章存储器管理 一、单项选择题 1、存储管理的目的是(C )。 A.方便用户 B.提高内存利用率 C.方便用户和提高内存利用率 D.增加内存实际容量 2、在( A)中,不可能产生系统抖动的现象。 A.固定分区管理 B.请求页式管理 C.段式管理 D.机器中不存在病毒时 3、当程序经过编译或者汇编以后,形成了一种由机器指令组成的集合,被称为(B )。 A.源程序 B.目标程序 C.可执行程序 D.非执行程序 4、可由CPU调用执行的程序所对应的地址空间为(D )。 A.符号名空间 B.虚拟地址空间 C.相对地址空间 D.物理地址空间 5、存储分配解决多道作业[1C]划分问题。为了实现静态和动态存储分配,需采用地址重定位,即把[2C]变成[3D],静态重定位由[4D]实现,动态重定位由[5A]实现。 供选择的答案:

[1]:A 地址空间 B 符号名空间 C 主存空间 D 虚存空间 [2]、[3]: A 页面地址 B 段地址 C 逻辑地址 D 物理地址 E 外存地址 F 设备地址 [4]、[5]: A 硬件地址变换机构 B 执行程序 C 汇编程序 D 连接装入程序 E 调试程序 F 编译程序 G 解释程序 6、分区管理要求对每一个作业都分配(A )的内存单元。 A.地址连续 B.若干地址不连续 C.若干连续的帧 D.若干不连续的帧 7、(C )存储管理支持多道程序设计,算法简单,但存储碎片多。 A.段式 B.页式 C.固定分区 D.段页式 8、处理器有32位地址,则它的虚拟地址空间为( B)字节。 A.2GB B.4GB C.100KB D.640KB 9、虚拟存储技术是( A)。 A.补充内存物理空间的技术 B.补充相对地址空间的技术

chapter4存储器管理(答案)

1.多进程能在主存中彼此互不干扰的环境下运行,操作系统是通过B来实现的。 A.内存分配 B.内存保护 C.内存扩充 D.地址映射 2.动态重定位是在作业的中进行的。 A.编译过程 B.装入过程 C.连接过程 D.执行过程 3.在可变式分区分配方案中,某一作业完成后,系统收回其主存空间,并与相邻空闲区合并,为此需修改空闲表,造成空闲数减1的情况是D。 A.无上邻空闲区,也无下邻空闲区 B.有上邻空闲区,但无下邻空闲区 C.有下邻空闲区,但无上邻空闲区 D.有上邻空闲区,也有下邻空闲区 4.什么叫重定位?采用内存分区管理时,如何实现程序运行时的动态重定位?查课本 那么,逻辑地址(2,88)对应的物理地址是178,逻辑地址(4,100)对应的物理地址是产生越界中断。 6.最佳适应算法的空白区是B。 A.按大小递减顺序排列 B.按大小递增顺序排列 C.按地址由小到大排列 D.按地址由大到小排列 7.某页式存储管理系统中,地址寄存器长度为24位,其中页号占14位,则主存的分块大小应该是A字节,程序最多占有D页。 A.210 B.10 C.14 D.214 E.24 F.224 8.设有8页的逻辑空间,每页有1024字节,它们被映射到32块的物理存储区中。那么,逻辑地址的有效位是13位,物理地址至少是15位。 9.外部碎片出现在D。 A.固定分区分配 B.分页存储系统 C.段页式存储系统 D.动态分区分配 E.段式存储系统 10.在采用页式存储管理的系统中,某作业J(或某进程P)的逻辑地址空间位4页(每页2048字节),且已知该作业的页面映像表(即页表)如下表所示。 11位的页表索引和12位的页偏移量。请问:页面长度是多少?在虚地址空间中最多有多少页面(均要求具体的数值)?页面长度:212,虚拟地址空间中最多有211个页面 12.在存储器的可变分区管理中,作业装入内存时,采用的是静态重定位方式。 13.(2002,华中科技大学)某操作系统采用分区存储管理技术。操作系统在低地址占用了100KB的空间,用户区主存从100KB处开始占用512KB。初始时,用户区全部为空闲,分配时截取空闲区的低地址部分作为已分配区。在执行了如下申请、释放操作序列后:

储存器管理复习题.doc

Cache,主存储器,外存储器 主存储器,外存储器,Cache 外存储器,主存储器,Cache 主存储器,Cache,外存储器 第三章存储器管理 单选题 1?在计算机系统中为解决存储器在速度、容量和价格方面的矛盾,采用了多级存储装置, 在层次上组 成一个速度由快到慢,容量由小到大的多层结构。根据速度的由快到慢, 以下正确的序列是—。 A. B ? C ? D ? 2. ______________________________________ 在多道程序系统中,以下说法错误的是 _________________________________________ 。 3?可由CPU 调用执行的程序所对应的地址空间称为 _____ o 4. 程序中由符号名组成的空间称为 ____ 。 5. 程序经编译与链接后,相对地址集合而成的空间称为 ____ o 6?所谓动态重定位,地址变换是发生在__。 A. 程序装入时 B. 程序执行时 C. 程序执行前 D. 程序链接时 A _ 壬命 砧殆RR 宙如詞 EferKfr —L B ] J 口扌 IXw/TJ 口 U 坦卅〒电植存储竪苗梵种 _审户命和杓倚笛 不田知1苗确件 J ? [ ? / 『厂八J y 1 JTM 丁 >!XCT1 D 共亨程序的单—副本比较容易 & 用重定位寄存器方式进行动态重定位,如果寄存器中的地址为1000,指令中的逻辑地 址 是5()0, CPU 执行到该指令时,实际访问的物理地址是 _______ O y H 丁 八 J p A 戸坛珂住 ? I—I TAJ'q-t/ J —源程序 序 D ?执行程序

最新存储器管理练习及参考答案

存储器管理练习及参考答案 、 单 项选择题: 1、存储管理的目的是( C )。 A. 方便用户 C.方便用户和提高主存空间的利用率 2、( A )存储管理不适合多道程序设计。 B .固定分区存储管理 4、提高主存利用率主要是通过( A )实现的。 A. 内存分配 B.内存保护 C.地址映射 D.内存扩充 5、多道程序环境中,使每道程序能在不受干扰的环境下运行,主要是通过( C )功能 实现的。 A. 内存分配 B.地址映射 C.内存保护 D.内存 扩充 6、 最佳适应分配算法的空闲区是( B )。 A. 按大小递减顺序排序 B.按大小递增顺序排序 C.按地址由小到大排列 D.按地址由大到小排列 7、 地址重定位的对象是( B )。 A. 源程序 B. 目标程序 C. 编译程序 D. 汇编程序 8、 采用可变分区存储管理方式管理主存时,使用移动技术可以( B )。 A.加快作业执行速度 B.集中分散的空闲区 C.扩大主存容量 D.加快地址转换 9、 如下存储管理方式中, ( A )一般采用静态重定位方式进行逻辑地址到物理地址的转 换。 A. 固定分区存储管理方式 C.可变分区存储管理方式 10、很好地解决了内存零头问题的存储管理方法是( A )。 A.页式存储管理 B.段式存储管理 11、设基址寄存器的内容为 1000,在采用动态重定位的系统中,当执行指令“ Load A,2000 ” 时,操作数的实际地址是( C )。 A.1000 B.2000 C.3000 D.4000 12、 对主存的研究可归纳为:主存的分配与回收、地址重定位、存储空间的共享与保护、 ( B )。 A.地址映射 B.虚拟存储 C.分区管理 D.物理存储器的扩充 13、 地址转换或叫重定位的工作是将( C ) A.绝对地址转换为逻辑地址 B.逻辑地址转换为浮动地址 C.逻辑地址转换为绝对地址 D.绝对地址转换为浮动地址 14、 段式存储管理中,用于记录作业每个分段在主存中的起始地址和长度的是( B )。 A.基址寄存器和限长寄存器 B ?段表 C.界限寄存器 D. 上、下限寄存器 C.可变分区存储管理 D.页式存储管理 3 、静态重定位是在作业的( B )进行的,动态重定位是在作业的( A. 编译过程中 B ?装入过程中 C .修改过程中 D )进行的。 D. 执行过程中 B.提高主存空间的利用率 D.增加主存实际容量 A. 单一连续分区 B.段式存储管理方式 D. 页式存储管理方式 C.多重分区管理 D. 可变式分区管理

实验四存储器管理系统

实验四存储器管理 1、目的与要求 本实验的目的是让学生熟悉存储器管理的方法,加深对所学各种存储器管理方案的了解;要求采用一些常用的存储器分配算法,设计一个存储器管理模拟系统,模拟内存空间的分配和释放。 2、实验内容 ①设计一个存放空闲块的自由链和一个内存作业分配表,存放内存中已经存在的作业。 ②编制一个按照首次适应法分配内存的算法,进行内存分配。 ③同时设计内存的回收以及内存清理(如果要分配的作业块大于任何一个空闲块,但小于总的空闲分区,则需要进行内存的清理,空出大块的空闲分区)的算法。 3.实验环境 ①PC兼容机 ②Windows、DOS系统、Turbo c 2.0 ③C语言 4.实验提示 一、数据结构 1、自由链 内存空区采用自由链结构,链首由指针freep指向,链中各空区按地址递增次序排列。初启动时整个用户内存区为一个大空区,每个空区首部设置一个区头(freearea)结构,区头信息包括: Size 空区大小 Next 前向指针,指向下一个空区

Back 反向指针,指向上一个空区 Adderss 本空区首地址 2、内存分配表JOBMAT 系统设置一个MAT,每个运行的作业都在MAT中占有一个表目,回收分区时清除相应表目,表目信息包括: Name 用户作业名 Length 作业区大小 Addr 作业区首地址 二、算法 存储分配算法采用首次适应法,根据指针freep查找自由链,当找到第一块可满足分配请求的空区便分配,当某空区被分配后的剩余空闲空间大于所规定的碎片最小量mini时,则形成一个较小的空区留在自由链中。 回收时,根据MAT将制定分区链入自由链,若该分区有前邻或后邻分区,则将他们拼成一个较大的空区。 当某个分配请求不能被满足,但此时系统中所有碎片总容量满足分配请求的容量时,系统立即进行内存搬家,消除碎片。即将各作业占用区集中下移到用户内存区的下部(高地址部分),形成一片连续的作业区,而在用户内存区的上部形成一块较大的空闲,然后再进行分配。 本系统的主要程序模块包括:分配模块ffallocation,回收模块ffcollection,搬家模块coalesce及命令处理模块menu,menu用以模拟系统的输入,通过键盘命令选择进行分配模块、回收模块、内存查询以及退出的操作。 程序运行的流程如下图:

存储管理习题

存储管理练习题 (一)单项选择题 1.存储管理的目的是(C) A.方便用户 B.提高主存空间利用率 C.方便用户和提高主存利用率 D.增加主存实际容量 2为了实现存储保护,对共享区域中的信息( B )。 A.既可读,又可写 B.只可读,不可修改 C.能执行,可修改 D.既不可读,也不可写 3.单连续存储管理时,若作业地址空间大于用户空间,可用( D) 把不同时工作的段轮流装入主存区执行。 A对换技术 B.移动技术C 虚拟存储技术 D.覆盖技术 4.把一个分区的存储管理技术用于系统时,可采用(B ) 让多个用户作业轮流进入主存储器执行。 A.存储技术

B.对换技术 C.覆盖技术D 虚拟存储技术 5.动态重定位是在作业的(D )中进行的。 A.编译过程 B.装入过程 C.修改过程D 执行过程 6.(A ) 要求存储分配时具有连续性。 A.固定分区存储管理 B.可变分区存储管理 C.段式存储管理 D.段页式存储管理 7.固定分区存储管理一般采用(D ) 进行主存空间的分配。 A.最先适应分配算法 B.最优适应分配算法 C.最坏适应分配算法 D.顺序分配算法 8.(C ) 存储管理支持多道程序设计,算法简单,但存储碎片多。

A.段式 B.页式 C.固定分区 D.段页式 9.固定分区存储管理中存储保护用( B) 关系式进行核对。 A.逻辑地址≤限长寄存器值 B.下限寄存器值≤绝对地址≤上限寄存器值 C.界限地址≤绝对地址≤主存最大地址 D.段内地址≤段表中对应段的限长 10.提高主存利用率主要是通过(A ) 实现的。 A.内存分配 B.内存保护 C.地址转换 D.内存扩充 12.可变分区存储管理时采用的地址转换公式为(C )。A.绝对地址=界限寄存器值+逻辑地址 B.绝对地址=下限寄存器值+逻辑地址 C.绝对地址=基址寄存器值+逻辑地址 D.绝对地址=块号×块长÷页内地址

操作系统存储器管理

存储器管理(固定分区、可变分区与分页式分配算法) 一、目的 本课题实验的目的是,使学生实验存储器管理系统的设计方法;加深对所学各种存储器管理方案的了解;要求采用一些常用的存储器分配算法,设计一个存储器管理模拟系统并调试运行。 二、实验内容 模拟固定分区分内存的动态分配和回收,并编程实现。 三、要求及提示 (1)建立相关的数据结构,作业控制块、已分配分区及未分配分区 (2)实现一个固定分区分配算法(实现多个分区只设置一个后备作业队列, 而每个分区设置一个后备作业队列 ,留给大家实现) (3)实现一个分区回收算法 (4)要求采用一种常用的存储器分配算法,设计一个存储器管理模拟系统。允许进行多次的分配和释放,并可向用户反馈分配和释放情况及当前内存的情况;采用“命令菜单”选择和键盘命令输入的会话方式,根据输入请求调用分配模块,或回收模块,或内存查询模块,或最终退出系统。 (5)编程实现。 (6)工具:C语言或其它高级语言 四、实验报告 1、列出调试通过程序的清单,并附上文档说明。 2、总结上机调试过程中所遇到的问题和解决方法及感想。 五参考代码: // memdos.cpp : 定义控制台应用程序的入口点。 //以下代码为4种分区,8K分区四块,16K分区3块,32分区2块, 64分区1块, 共10块 #include "stdafx.h" #include #include //#include #define TRUE 1 #define FALSE 0 void InitCSolid( ); void ExitSolid(); int MallocArea(int nSize,char* sName);//申请一个分区函数 int FreeArea(char *sName); //释放一个分区函数 void ShowArea( );//显示所有分区状态函数

第四章 存储器管理 l 存储器管理的功能

第四章存储器管理 ●存储器的层次 ●用户程序的主要处理阶段 1.编辑阶段:创建源文件 2.编译阶段:生成目标文件 3.连接阶段:生成可执行文件 4.装入阶段:重定位,装入内存 5.运行阶段:得到结果 ●存储器管理的功能 存储器管理的功能:内存分配、地址映射、内存保护、内存扩充。 ●存储器有关概念 1.逻辑地址:用户程序经编译之后的每个目标模块都以0为基地址顺序编址。 2.物理地址:内存中各物理单元的地址是从统一的基地址顺序编址。 3.重定位:把逻辑地址转变为内存的物理地址的过程。 4.静态重定位:是在目标程序装入内存时,由装入程序对目标程序中的指令和数据的地址进行修 改,即把程序的逻辑地址都改成实际的内存地址。重定位在程序装入时一次完成。

5.动态重定位:在程序执行期间,每次访问内存之间进行重定位,这种变换是靠硬件地址变换机 构实现的。 6.碎片:内存中容量太小、无法被利用的小分区。 存储管理基本技术 三种基本的存储管理技术:分区法、可重定位分区法和对换技术 1.分区法:把内存划分成若干分区,每个分区里容纳一个作业。 1)固定分区:分区的个数、分区的大小固定不变;每个分区只能放一道作业。 优点:管理方式简单。

缺点:内存空间利用率低。 2)动态分区法:分区大小和个数依作业情况而定;作业进入内存时才建分区。 优点:按需分配内存 缺点:产生大量碎片。 2.可重定位分区分配:通过紧缩可解决碎片问题;作业在内存中可以移动。 优点:解决了碎片的问题,提高了主存利用率; 缺点:增加了开销。,但须消耗大量的CPU时间。 3.对换技术:作业(或进程)在内存和磁盘之间交换,换出暂时不能运行的作业(或进程);换入具备运行条件的作业(或进程)。 ●虚拟存储器 1.虚拟存储器:是由操作系统提供的一个假想的特大存储器 2.虚拟存储器的基本特征: 1)虚拟扩充:不是物理上,而是逻辑上扩充了内存容量 2)部分装入:每个作业不是全部一次性地装入内存,而是只装入一部分 3)离散分配:不必占用连续的空间,而是“见缝插针”。 4)多次对换:所需的全部程序和数据要分成多次调入内存 3.虚拟存储器受到的限制: 1)指令中表示地址的字长 2)外存的容量 ●分页存储管理技术 1.分页的概念 1)逻辑空间等分为页; 2)物理空间等分为块,与页面大小相同; 3)逻辑地址表示:(如,页面大小为1K) 4)内存分配原则:以块为单位,逻辑上相邻的页可以分配在不相邻的内存块中。

第四章 存储器管理

第四章存储器管理 单选题 ——存储基本概念—— 1.在计算机系统中为解决存储器在速度、容量和价格方面的矛盾,采用了多级存储装置, 在层次上组成一个速度由快到慢,容量由小到大的多层结构。根据速度的由快到慢,以下正确的序列是_____。 A.Cache,主存储器,外存储器 B.主存储器,外存储器,Cache C.外存储器,主存储器,Cache D.主存储器,Cache,外存储器 2.在多道程序系统中,以下说法错误的是_____。 A.主存空间除装入操作系统核心外,其余部分为多个用户所分享 B.当一个用户程序真正被装入时,才能根据主存的分配情况确定程序被装入的位置 C.一个程序如多次被调入主存,主存的分配状态很不可能相同 D.程序设计是以物理地址来存取数据的,而程序执行必须以逻辑地址来存取数据 3.可由CPU调用执行的程序所对应的地址空间称为_____。 A.作业的地址空间 B.物理存储空间 C.名空间 D.虚拟地址空间 4.程序中由符号名组成的空间称为_____。 A.作业的地址空间 B.物理存储空间 C.名空间 D.虚拟地址空间 5.程序经编译与链接后,相对地址集合而成的空间称为_____。 A.作业的地址空间 B.物理存储空间 C.名空间 D.虚拟地址空间 6.所谓动态重定位,地址变换是发生在_____。 A.程序装入时 B.程序执行时 C.程序执行前 D.程序链接时 7.用重定位寄存器方式进行动态重定位,如果寄存器中的地址为1000,指令中的逻辑地 址是500,CPU执行到该指令时,实际访问的物理地址是_____。 A.1000 B.500 C.1500

D.以上都不对 8.下面所列的存储管理方案中,_____实行的不是动态重定位。 A.固定分区 B.可变分区 C.分页式 D.请求分页式 ——页式存储管理—— 9.在一个页式存储管理的系统中,逻辑地址是3654,页的大小为1K,那么,该逻辑地址 的页号和页内地址分别为_____。 A.3,582 B.3,654 C.4,582 D.4,654 10.逻辑地址是162H,在页式存储管理系统中,页和块的大小均为1K,第0页装入第1 块,第1页装入第4块。那么,在程序执行时,CPU将访问的地址是_____H。 A.1162 B.562 C.1378 D.354 11.关于页式存储管理,以下说法错误的是_____。 A.程序的地址空间是连续的,而其运行的存储空间可以是不连续的 B.页表作为一个数据结构存放在主存,会影响程序执行的速度 C.地址空间的分页大小必须和主存空间的分块的大小一样 D.页表是以映象方式实现动态重定位的重要数据结构 12.页表重定位方式几乎以降低计算速度一半为代价来获取分页存储管理的好处,这是因 为_____。 A.要将逻辑地址换算成页号和页内地址 B.用户程序被装入了不连续的内存块中 C.如果被访问的页不在内存时,必须装入新的页 D.访问内存地址的同时必须访问主存中的页表 13.实现分页存储管理的系统中,分页是由_____完成的。 A.程序员 B.用户 C.操作员 D.系统 14.在一个分页式存储管理系统中,页表的内容如下,若页面大小为4K,则地址转换机构 将相对地址0 A.8192

《存储器管理》word版

第四章存储器管理 4.1 程序的装入和链接 将一个用户源程序变为一个可执行程序,通常都要经过以下几个步骤: 编译:由编译程序(Compiler)将用户源代码编译成若干个目标模块(Object Module); 链接:由链接程序(Linker)将编译后形成的一组目标模块,以及它们所需要的库函数链接在一起,形成一个完整的可装入模块(Load Module)。 4.1.1 程序的装入 将一个装入模块装入内存时,可以有以下两种方式: 绝对地址装入方式(Absolute Loading Mode) 可重定位装入方式(Relocation Loading Mode) 动态运行时装入方式(Dynamic Run-time Loading) 1. 绝对装入方式 在编译时,如果知道程序将驻留在内存的什么位置,那么,编译程序将产生绝对地址的目标代码。 装入模块被装入内存后,由于程序中的逻辑地址与实际内存地址完全相同,故不须对程序和数据的地址进行修改。 程序中所使用的绝对地址,既可在编译或汇编时给出,也可由程序员直接赋予。 此种程序一般有特殊用途,比如启动程序。 2.可重定位装入方式 绝对装入方式只能将目标模块装入到内存中事先指定的位置。在多道程序环境下,编译程序不可能预知所编译的目标模块应放在内存的何处,因此,绝对装入方式只适用于单道程序环境。 在多道程序环境下,所得到的目标模块的起始地址通常是从0开始的,程序中的其它地址也都是相对于起始地址计算的。此时应采用可重定位装入方式,根据内存的当前情况,将装入模块装入到内存的适当位。 示例 在用户程序的1000号单元处有一条指令LOAD 1,2500,该指 令的功能是将2500单元中的整数365取至寄存器1。 静态地址重定位 把在装入时对目标程序中指令和数据的修改变换过程称为重定 位。又因为地址变换通常是在装入时一次完成的,装入以后不再改 变,故称为静态地址重定位。 静态地址重定位装入方式,可将装入模块装入到内存中任何允许的位置,故可用于多道程序环境;但并不允许程序运行时在内存中移动位置。 3. 动态运行时装入方式 动态运行时的装入程序,在把装入模块装入内存后,并不立即把装入模块中的相对地址转换为绝对地址,而是把这种地址转换推迟到程序真正要执行时才进行。因此,装入内存后的所有地址都仍是相对地址。 4.1.2 程序的链接 源程序经过编译后,可得到一组目标模块,再利用链接程序将这组目标模块链接形成装入

存储器管理习题及答案

存储器管理 一、单项选择题 1.下列( A )存储方式不能实现虚拟存储器。 A、分区 B、页式 C、段式 D、段页式2.操作系统处理缺页中断时,选择一种好的调度算法对主存和辅存中的信息进行高效调度尽可能地避免( D )。 A、碎片 B、CPU空闲 C、多重中断 D、抖动 3.分页式存储管理的主要特点是( C )。 A、要求处理缺页中断 B、要求扩充主存容量 C、不要求作业装入到主存的连续区域 D、不要求作业全部同时装人主存4.LRU页面调度算法淘汰(B )的页。 A、最近最少使用 B、最近最久未使用 C、最先进入主存 D、将来最久使用 5.分区管理要求对每一个作业都分配( A )的主存单元。 A、地址连续 B、若干地址不连续的 C、若干连续的页 D、若干不连续的帧 6.页面置换算法中( A )不是基于程序执行的局部性理论。 A、先进先出调度算法 B、LRU C、LFU D、最近最不常用调度算法 7.在存储管理中,采用覆盖与交换技术的目的是( A )。

A、节省主存空间 B、物理上扩充主存容量 C、提高CPU的效率 D、实现主存共享 8.分页虚拟存储管理中,缺页中断时,欲调度一页进入主存中,内存己无空闲块,如何决定淘汰已在主存的块时,(B)的选择是很重要的。 A、地址变换 B、页面调度算法 C、对换方式 D、覆盖技术 9.动态重定位技术依赖于( A )。 A、重定位装入程序 B、重定位寄存器 C、地址结构 D、目标程序 10.( D )存储管理兼顾了段式在逻辑上清晰和页式在存储管理上方便的优点。 A、分段 B、分页 C、可变分区方式 D、段页式 11.在可变分区存储管理中,某作业完成后要收回其主存空间,该空间可能与相邻空闲区合并,修改空闲区表使空闲区始址改变但空闲区数不变的是(A)情况。 A、有上邻空闲区也有下邻空闲区 B、有上邻空闲区但无下邻空闲区 C、无上邻空闲区但有下邻空闲区 D、无上邻空闲区且也无下邻空闲区 12.可变分区管理中,首次适应分配算法可将空闲区表中的空闲区栏目按( A )顺序排列。 A、地址递增 B、长度递增 C、地址递减 D、长度递减 13.在固定分区分配中,每个分区的大小是( C )。

存储管理练习题(1遍)

第4章存储管理 学习重点: (1)存储管理的任务和功能。 (2)概念:逻辑(相对)地址、物理(绝对)地址、重定位、虚拟存储、分区分配存储管理(固定分区分配、可变式动态分区分配、可重定位分区分配、多重分区分配)。 (3)动态分区分配的分配算法:首次适应法、循环适应法、最佳适应法和最坏适应法。 (4)内存“扩充”技术:交換与覆盖;内存保护技术:存储保护键和界限寄存器。 (5)请求页式存储管理:实现原理、页表的设计、请求淘汰換页算法(先进先出算法、循环检测法、LRU最近最少使用页面先淘汰、LFU最不经常使用的页面先淘汰、NUR最近没有使用页面先淘汰、OPT最优淘汰算法replacement 和随机数淘汰页面算法);页式存储管理优缺点。(6)段式存储管理特点;段页式存储管理特点。 教学要求: (1)理解内存管理的任务和功能。 (2)理解三级存储器结构:高速缓存、内存、外存。

(3)掌握分区存储器管理方法:内存分配、内存扩充、内存保护。(4)掌握分页和分段概念,二者的主要区别。 (5)掌握页式存储管理技术的实现思想,如何实现从逻辑地址到物理 地址的转换。 (6)掌握解分段存储管理技术的实现思想。 (7)理解页面置换的先进先出法、循环检测法和最近最少使用置换法 (LRU)等。 (8)牢固掌握以下概念:逻辑地址、物理地址、可重定位地址、重定 位、虚拟存储器。 习题 1、存储管理的主要功能是什么? 答:存储管理的主要功能是解决多道作业的主存空间的分配问题。主要 包括: (1)内存区域的分配和管理:设计内存的分配结构和调入策略,保证分配和回收。 (2)内存的扩充技术:使用虚拟存储或自动覆盖技术提供比实际内存更大的空间。 (3)内存的共享和保护技术。除了被允许共享的部分之外,作业之间不能产生干扰和破坏,须对内存中的数据实施保护。 2、解释下列与存储管理有关的名词:

Linux操作系统存储器管理系统

实用标准文案 Linux是一种自由和开放源码的类Unix操作系统。目前存在着许多不同的Linux,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,从手机、平板电脑、路由器和视频游戏控制台,到台式计算机、大型机和超级计算机。Linux 操作系统的诞生1981 年IBM 公司推出享誉全球的微型计算机IBM PC。 Linux实现了基于虚拟页式存储管理的虚拟存储,在i386结构的机器上,每个用户任务的虚拟地址空间都可达到4GB。 Linux的存储管理使用了三层页表来处理逻辑地址到物理地址的转换,分别是PGD(页表目录)、PMD(中间页表目录)和PT(页表)。 Linux将存储管理分为物理内存管理、内核内存管理、虚拟内存管理、内核虚拟内存管理和用户级内存管理。 一存储器管理的目的 (1).为多道程序设计提供支持 (2).提高内存利用率 (3).简化内存的使用,为用户开发应用程序提供支持 多道次序设计的主要目的是提高微处理器的利用律。而为了实现多道程序的并行运行,存储器管理系统必须能够将内存分为多个部分,每部分都装入一道程序,以便多道程序的并行运行。 影响内存利用率的一个重要因素是内存的管理开销。为了便于管理,内存分配有

一个最小单位。小于该单位的内存请求,将按此最小单位分配内存,其多余的未使用空间被称为“碎片”。减少碎片的方法,是缩小该基本单位。从内存精彩文档. 实用标准文案 的分区管理到分段管理再到分页管理和分段分页结合的段页式管理都体现了这一思路。 为了方便用户使用,存储器管理应该提供相应的功能,以支持用户的应用程序开发。比如分段机制可以帮助用户按功能组织代码,共享存储器机制可以方便用户高速通信。 二存储管理 1物理内存管理: 物理内存管理以页为单位,记录、分配和回收物理内存,物理内存管理使用Buddy(伙伴)算法。 (1)空闲物理内存单元的管理 Linux物理内存管理使用Buddy算法实现。其物理页面的信息由 mem_map_t结构描述,系统中的所有物理页面由一个mem_map_t类型的数组mem_map来表示。该数组的每一项都代表物理内存的一个页面,该叔祖的大小由实际的物理内存大小决定。mem_map_t结构的定义参考 linux\linux-2.4.x\include\linux\mm.h. Linux内核定义了free_area数组记录系统中的当前空闲物理内存单元。每一项都是一个free_area_struct结构,描述了一组由相同大小的空闲物理页块构成的双向链表。 另外,Linux使用全局变量nr_free_pages来跟踪系统中的空闲物理内存

存储器管理.doc

存储器管理 一、选择题 1、存储分配解决多道作业(A)的划分问题。为了解决静态和动态存储分配,需采用地址重定位,即把(B)变换成(C),静态重定位由(D)实现,动态重定位由(E)实现。 A:①地址空间②符号名空间③主存空间④虚拟空间 B、C:①页面地址②段地址③逻辑地址④物理地址⑤外存地址⑥设备地址 D~E:①硬件地址变换机构②执行程序③汇编程序④连接装入程序⑤调试程序⑥编译程序⑦解释程序 2、提高主存利用率主要是通过(A)功能实现的。(A)的基本任务是为每道程序做(B);使每道程序能在不受干扰的环境下运行,主要是通过(C)功能实现的。 A、C:①主存分配②主存保护③地址映射④对换⑤主存扩充 B:① 逻辑地址到物理地址的变换;② 内存与外存间的交换;③ 允许用户程序的地址空间大于内存空间;④ 分配内存 3、由固定分区方式发展为分页存储管理方式的主要推动力是(A);由分页系统发展为分段系统,进而以发展为段页式系统的主要动力分别是(B)和(C)。A~C:① 提高主存的利用率;② 提高系统的吞吐量;③ 满足用户需要; ④ 更好地满足多道程序运行的需要;⑤ 既满足用户要求,又提高主存利用率。4、静态重定位是在作业的(A)中进行的,动态重定位是在作业的(B)中进行的。 A、B:① 编译过程;② 装入过程;③ 修改过程;④ 执行过程 5、在首次适应算法中,要求空闲分区按(A)顺序链接成空闲分区链在最佳适应算法中按(B)顺序链接成空闲分区链;在最坏适应算法中按(C)顺序链接成空闲分区链。 A~C:① 空闲区地址递增;② 空闲区首址递减;③ 空闲区大小递增; ④ 空闲区大小递减。 6、回收内存时可能出现下述四种情况:⑴ 释放区与插入点前一分区F1相邻,此时应(A);⑵ 释放区与插入点后一分区F2相邻,此时,应(B);⑶ 释放区不与F1和F2相连,此时应(C)。 A~C:① 为回收区建立一分区表项,填上分区的大小和始址;② 以F1为分区的表项作为新表项且不做任何改变;③ 以F1为分区的表项作为新表项,修改新表项的大小;④ 以F2为分区的表项作为新表项,同时修改新表项的大小和始址。 7、对重定位存储管理方式,应(A),当程序执行时,是由(B)与(A)中的(C)相加得到(D),用(D)来访问内存。 A:① 在整个系统中设置一重定位寄存器;② 为每道程序设置一重定位寄存器;③ 为每个程序设置两个重定位寄存器;④ 为每个程序段和数据段都设置一重定位寄存器。

相关主题
文本预览
相关文档 最新文档