答案实验四 存储管理
- 格式:doc
- 大小:57.00 KB
- 文档页数:3
实验四页式虚拟存储管理中地址转换和缺页中断一、实验目的深入了解页式存储管理如何实现地址转换;进一步认识页式虚拟存储管理中如何处理缺页中断。
二、实验预备知识页式存储管理中地址转换的方法;页式虚拟存储的缺页中断处理方法。
三、实验内容编写程序完成页式虚拟存储管理中地址转换过程和模拟缺页中断的处理。
实验具体包括:首先对给定的地址进行地址转换工作,若发生缺页则先进行缺页中断处理,然后再进行地址转换;最后编写主函数对所做工作进行测试。
假定主存64KB,每个主存块1024字节,作业最大支持到64KB,系统中每个作业分得主存块4块。
四、提示与讲解页式存储管理中地址转换过程很简单,假定主存块的大小为2n字节,主存大小为2m'字节和逻辑地址m位,则进行地址转换时,首先从逻辑地址中的高m-n位中取得页号,然后根据页号查页表,得到块号,并将块号放入物理地址的高m'-n位,最后从逻辑地址中取得低n位放入物理地址的低n位就得到了物理地址,过程如图6所示。
逻辑地址图6 页式存储管理系统地址转换示意图地址转换是由硬件完成的,实验中使用软件程序模拟地址转换过程,模拟地址转换的流程如图7所示(实验中假定主存64KB,每个主存块1024字节,即n=10,m'=16,物理地址中块号6位、块内地址10位;作业最大64KB,即m=16,逻辑地址中页号6位、页内地址10位)。
在页式虚拟存储管理方式中,作业信息作为副本放在磁盘上,作业执行时仅把作业信息的部分页面装入主存储器,作业执行时若访问的页面在主存中,则按上述方式进行地址转换,若访问的页面不在主存中,则产生一个“缺页中断”,由操作系统把当前所需的页面装入主存储器后,再次执行时才可以按上述方法进行地址转换。
页式虚拟存储管理方式中页表除页号和该页对应的主存块号外,至少还要包括存在标志(该页是否在主存),磁盘位置(该页的副本在磁盘上的位置)和修改标志(该页是否修改过)。
第四章存储器管理习题分析一、判断改错题(判断叙述是否正确,正确的打√,错误的打×并改正。
)1.进行程序的相对地址到物理地址的转换,就是地址重定位。
()2.在分页管理中所产生的内存碎片,最多小于帧的大小。
()3.段页式存储管理是通过请求调入和替换功能,对内外存进行统一管理,为用户提供了比实际内存容量大的多的物理存储空间。
()4.请求页式存贮管理中,若一个作业要求的全部存贮需求不能满足,该作业只能等待。
( )5.碎片的总容量如果超过某个作业申请的容量,就可以将其再次分配给该作业。
()6.最佳适应法将能满足作业需求量的最小空闲区分配给作业。
( )7.相对于简单分页管理来说,请求页式管理是“用时间换取了空间”,这是该种管理方式的一个缺点。
()8.段式管理便于处理动态变化的数据结构,便于动态链接,便于分段共享。
()9.请求分页管理过程中,作业地址空间同样受到内存容量大小的限制。
()10.分区管理取消了存储分配连续性要求,使一个作业的地址空间在内存中可以是若干个不一定连续的区域。
()11.静态分配是指在目标程序运行之前完成的存储分配。
例如分区管理和分页管理。
()12.分页管理中,作业地址空间是一维的,页的长度是等长的。
()习题解答:13.对;14.对;15.错;应为:段页式存储管理是段式和页式管理方法的结合,两者优势互补。
16.错;应为:……若一个作业所要求的全部存储不能满足,该作业也可运行。
17.错;应为:……,经拼接后就可以将其分配给该作业。
18.对;19.对;20.对;21.错;应为:请求分页管理过程中,作业地址空间不受内存容量大小的限制。
22.错;应为:分页管理取消了存储分配继续性要求,使一个作业的地址空间在内存中可以是若干个不一定连续的区域。
23.错;应为:……。
例如分区管理和简单分页管理。
24.对;二、填空题25.源程序经过产生相对目标程序,运行时,必须经过将相对目标程序装入内存,并实现相对地址到的转换。
第五章存储管理一、选择题: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. 修改过程D. 执行过程9. 在下面关于虚拟存储器的叙述中,正确的是()。
A. 要求程序运行前必须全部装入内存且在运行过程中一直驻留在内存B. 要求程序运行前不必全部装入内存且在运行过程中不必一直驻留在内存C. 要求程序运行前不必全部装入内存且在运行过程中必须一直驻留在内存D. 要求程序运行前必须全部装入内存且在运行过程中不必一直驻留在内存10. 虚存的可行性的基础是()A. 程序执行的离散性B. 程序执行的顺序性C. 程序执行的局部性D. 程序执行的并发性11. 在存储管理中,采用覆盖与交换技术的目的是()。
A. 减少程序占用的主存空间B. 物理上扩充主存容量C. 提高CPU 效率D. 代码在主存中共享12 在内存分配的“最佳适应法”中,空闲块是按()。
师学院计算机系实验报告(2014—2015学年第二学期)课程名称操作系统实验名称实验四存储管理专业计算机科学与技术(非师)年级2012级学号B2012102147 姓名秋指导教师远帆实验日期2015-05-20图1 word运行情况“存使用”列显示了该应用程序的一个实例正在使用的存数量。
5) 启动应用程序的另一个实例并观察它的存需求。
请描述使用第二个实例占用的存与使用第一个实例时的存对比情况:第二个实例占用存22772K,比第一个实例占用的存大很多4:未分页合并存。
估算未分页合并存大小的最简单法是使用“任务管理器”。
未分页合并存的估计值显示在“任务管理器”的“性能”选项卡的“核心存”部分。
总数(K) :________220___________分页数:_____________________未分页(K) :_________34__________图2核心存C 简单基本NTFS 30G 良好(系统)D 简单基本NTFS 90G 良好E 简单基本NTFS 90G 良好F 简单基本NTFS 88G 良好图3磁盘情况6:计算分页文件的大小。
要想更改分页文件的位置或大小配置参数,可按以下步骤进行:1) 右键单击桌面上的“我的电脑”图标并选定“属性”。
2) 在“高级”选项卡上单击“性能选项”按钮。
3) 单击对话框中的“虚拟存”区域中的“更改”按钮。
请记录:所选驱动器的页面文件大小:驱动器:______________F_____________________可用空间:___________9825_____________________ MB初始大小(MB) :_____ 2048______________________最大值(MB) :________4092_____________________所有驱动器页面文件大小的总数:允的最小值:________16____________________ MB注:1、报告的项目或设置,可根据实际情况加以补充和调整2、教师批改学生实验报告应在学生提交实验报告10日。
第四章存储管理1. ______ C ______ 存储管理支持多道程序设计,算法简单,但存储碎片多。
A.段式C.固定分区2.虚拟存储技术是B 。
B.D.页式段页式A.补充内存物理空间的技术B. 补充相对地址空间的技术C.扩充外存空间的技术D. 扩充输入输出缓冲区的技术3.虚拟内存的容量只受 D 的限制。
A.物理内存的大小B. 磁盘空间的大小C.数据存放的实际地址D. 计算机地址位数4.动态页式管理中的 C 是:当内存中没有空闲页时,如何将已占据的页释放。
A.调入策略B. 地址变换C.替换策略D. 调度算法5.多重分区管理要求对每一'个作业都分配 B 的内存单兀。
A.地址连续B. 若干地址不连续C.若干连续的帧D. 若干不连续的帧6.段页式管理每取一数据,要访问 C 次内存。
A. 1B. 2C. 3D. 47.分段管理提供 B 维的地址结构。
A. 1B. 2C. 3D. 48.系统抖动是指 _______ B _______ 。
A.使用计算机时,屏幕闪烁的现象B.刚被调出内存的页又立刻被调入所形成的频繁调入调出的现象C.系统盘不干净,操作系统不稳定的现象D.由于内存分配不当,造成内存不够的现象9.在 ____ A _______ 中,不可能产生系统抖动现象。
A.静态分区管理B.请求分页式管理C.段式存储管理D.段页式存储管理10.在分段管理中 _______ A ______ 。
A.以段为单元分配,每段是一个连续存储区B.段与段之间必定不连续C.段与段之间必定连续D.每段是等长的11.请求分页式管理常用的替换策略之一有 _____________ A _。
A.LRUB. BFC. SCBFD. FPF12.可由CPU调用执行的程序所对应的地址空间为—DA.名称空间B.虚拟地址空间C.相对地址空间D.物理地址空间13.______ C _存储管理方式提供二维地址结构。
A.固定分区B.分页C.分段D.物理地址空间14.当程序经过编译或者汇编以后,形成了一种由机器指令组成的集合,被称为B 。
实验四存储管理背景知识耗尽内存是Windows 2000/XP系统中最常见的问题之一。
当系统耗尽内存时,所有进程对内存的总需求超出了系统的物理内存总量。
随后,Windows 2000/XP必须借助它的虚拟内存来维持系统和进程的运行。
虚拟内存机制是Windows 2000/XP操作系统的重要组成部分,但它的速度比物理内存慢得多,因此,应该尽量避免耗尽物理内存资源,以免导致性能下降。
解决内存不足问题的一个有效的方法就是添加更多的内存。
但是,一旦提供了更多的内存,Windows 2000/XP很可以会立即“吞食”。
而事实上,添加更多的内存并非总是可行的,也可能只是推迟了实际问题的发生。
因此,应该相信,优化所拥有的内存是非常关键的。
1. 分页过程当Windows 2000/XP求助于硬盘以获得虚拟内存时,这个过程被称为分页(paging) 。
分页就是将信息从主内存移动到磁盘进行临时存储的过程。
应用程序将物理内存和虚拟内存视为一个独立的实体,甚至不知道Windows 2000/XP使用了两种内存方案,而认为系统拥有比实际内存更多的内存。
例如,系统的内存数量可能只有16MB,但每一个应用程序仍然认为有4GB内存可供使用。
使用分页方案带来了很多好处,不过这是有代价的。
当进程需要已经交换到硬盘上的代码或数据时,系统要将数据送回物理内存,并在必要时将其他信息传输到硬盘上,而硬盘与物理内存在性能上的差异极大。
例如,硬盘的访问时间通常大约为4-10毫秒,而物理内存的访问时间为60 us,甚至更快。
2. 内存共享应用程序经常需要彼此通信和共享信息。
为了提供这种能力,Windows 2000/XP必须允许访问某些内存空间而不危及它和其他应用程序的安全性和完整性。
从性能的角度来看,共享内存的能力大大减少了应用程序使用的内存数量。
运行一个应用程序的多个副本时,每一个实例都可以使用相同的代码和数据,这意味着不必维护所加载应用程序代码的单独副本并使用相同的内存资源。
实验四固定分区存储管理一、实验目的通过编写固定分区存储管理的模拟程序,加深对操作系统存储管理功能中的固定分区管理方式、主存分配表等相应知识的理解。
二、实验内容(1)作业J3请求资源,申请5K大小的内存空间;(2)作业J4申请33K大小的内存空间;(3)作业J1执行完毕,释放空间4、编写程序实现相应存储空间的分配和去配,若请求成功,修改主存分配表,并输出该表,若请求不能满足,输出“分配失败”。
(其中不考虑空闲分区的移动)。
实验代码:#include<stdio.h>#include<vector>#include<string>#include<string.h>#include<iostream>using namespace std;//定义进程资源类class Resource{public :string name; //用来表示占用进程int num; //用来标识分区号int begin; //用来存放其实地址int length; //用来标识内存长度int take; //用来表示当前的该资源是否被占用Resource(int n,int b,int l,int t){num = n;begin = b;length = l;take = t;}};//定义输出类class Output{public :string o_name;int o_num;int o_begin;int o_length;int o_take;};//申请资源请求bool Request(string name,int len,vector<Resource> &res) {vector<Resource *> r;//!!!!!!!!在这边定义一个指针,用来指向res,这里的好处是待会进行排序的时候,不会修改原来的res原来元素的顺序!!!!for(int m=0;m<res.size();m++){r.push_back(&res[m]);}//按书上所说的,首先对分区进行从小到大进行排序。
第5章存储管理⑴存储管理的任务和功能是什么?解:存储管理的主要任务是:1.支持多道程序的并发执行,使多道程序能共享存储资源,在互不干扰的环境中并发执行。
2.方便用户,使用户减少甚至摆脱对存储器的管理,使用户从存储器的分配、保护和共享等繁琐事物中解脱出来。
3.提高存储器的利用率和系统吞吐量。
4.从逻辑上扩充内存空间,支持大程序能在小的内存空间运行或允许更多的进程并发执行。
为了完成上述任务,现代操作系统的存储管理应具有以下功能:1.存储空间的分配和I门I收。
2.地址转换,实现逻辑地址到物理地址的映射。
3.主存空间的共享。
4.主存空间的保护。
5.主存储空间的扩充。
6.对换,对换的主要任务是实现在内存和外存之间的全部或部分进程的对换,即将内存中处于阻塞状态的进程调换到外存上,而将外存上处于就绪状态的进程换入内存。
对换的目的主要是为了提高内存利用率,提高系统的吞吐量。
(2)为什么要配置层次式存储器?解:为了解决CPU和存储器之间速度上的不匹配,在现代计算机系统中,存储系统通常采用层次结构,存储层次可粗略分为三级:最高层为CPU寄存-器,中间为主存,最底层是辅存。
根据具体功能还可以细分为寄存器、高速缓存、主存储器、磁盘缓存、辅存储设备(固定磁盘、可移动存储介质)5层。
一个文件的数据可能出现在存储系统的不同层次电例如, 一个文件数据通常被存储在辅存中(如硬盘),当其需要运行或被访问时,就必须调入主存,也可以暂时存放在主存的磁盘高速缓存中。
大容量的辅存常常使用磁盘,磁盘数据经常备份在可移动磁盘:或者光盘上,以防止硬盘故障时丢失数据。
(3)什么是逻辑地址?什么是物理地址?为什么要进行二者的转换工作?解:逻辑地址是应用程序中使用的访存地址,有时也称为相对地址,由逻辑地址构成的地址空间称为逻辑空间。
每个应用程序的逻辑地址空间都是从零号地址码开始的。
物理地址是内存储器的实际存储单元地址,有时也称为绝对地址,由物理地址构成的地址空间称为物理空间。
欢迎共阅班级: 姓名: 学号:5) 当前计算机的实际内存大小为:______________________________________ 分析程序4-1,请回答问题:1) 理论上每个Windows 应用程序可以独占的最大存储空间是:_____________2) 程序中,用于检查系统中虚拟内存特性的API 函数是:__________________ 4.2 Windows 虚拟内存本节实验的目的是:实验4存储管理1) 通过实验了解Windows内存的使用,学习如何在应用程序中管理内存,体会Windows应用程序内存的简单性和自我防护能力。
2) 学习检查虚拟内存空间或对其进行操作;3) 了解Windows的内存结构和虚拟内存的管理,进而了解进程堆和Windows为使用内存而提供的一些扩展功能。
1. 工具/准备工作在开始本节实验之前,请回顾教材的相关内容。
需要准备一台运行Windows系统的计算机,且安装了C/C++编译器。
2. 实验内容与步骤将系统当前的保留区(reserved)虚拟地址空间填入表4.3中。
表4.3 实验记录2) 根据运行结果,请简单描述程序运行的流程:_________________________________________________________________________________________________________________________________________的程序段,该段程序试图通过VirtualAlloc()函数,然后利用物理备用内存将整个块分配到虚拟内存空间的任何位置。
这种技术只对拥有1GB以上的RAM且都有换页文件的计算机可行。
从运行结果看,这种技术成功了吗?_________________。
3) 程序中说明为___________________________________________________的程序段,该段程序利用VirtualAlloc()函数,如果函数成功,则获得大块内存,但不将任何物理内存调配到此块中。
实验四操作系统存储管理实验报告一、实验目的本次操作系统存储管理实验的主要目的是深入理解操作系统中存储管理的基本原理和方法,通过实际操作和观察,掌握内存分配、回收、地址转换等关键技术,提高对操作系统存储管理机制的认识和应用能力。
二、实验环境操作系统:Windows 10开发工具:Visual Studio 2019三、实验原理1、内存分配方式连续分配:分为单一连续分配和分区式分配(固定分区和动态分区)。
离散分配:分页存储管理、分段存储管理、段页式存储管理。
2、内存回收算法首次适应算法:从内存低地址开始查找,找到第一个满足要求的空闲分区进行分配。
最佳适应算法:选择大小最接近作业需求的空闲分区进行分配。
最坏适应算法:选择最大的空闲分区进行分配。
3、地址转换逻辑地址到物理地址的转换:在分页存储管理中,通过页表实现;在分段存储管理中,通过段表实现。
四、实验内容及步骤1、连续内存分配实验设计一个简单的内存分配程序,模拟固定分区和动态分区两种分配方式。
输入作业的大小和请求分配的分区类型,程序输出分配的结果(成功或失败)以及分配后的内存状态。
2、内存回收实验在上述连续内存分配实验的基础上,添加内存回收功能。
输入要回收的作业号,程序执行回收操作,并输出回收后的内存状态。
3、离散内存分配实验实现分页存储管理的地址转换功能。
输入逻辑地址,程序计算并输出对应的物理地址。
4、存储管理算法比较实验分别使用首次适应算法、最佳适应算法和最坏适应算法进行内存分配和回收操作。
记录不同算法在不同作业序列下的内存利用率和分配时间,比较它们的性能。
五、实验结果与分析1、连续内存分配实验结果固定分区分配方式:在固定分区大小的情况下,对于作业大小小于或等于分区大小的请求能够成功分配,否则分配失败。
内存状态显示清晰,分区的使用和空闲情况一目了然。
动态分区分配方式:能够根据作业的大小动态地分配内存,但容易产生内存碎片。
2、内存回收实验结果成功回收指定作业占用的内存空间,内存状态得到及时更新,空闲分区得到合并,提高了内存的利用率。
实验四存储管理(一)
学号:姓名:班级:
实验目的:
1。
了解存储管理的内容和目的。
2。
掌握分区式存储管理的主要内容
3。
掌握可变分区管理分配策略。
实验内容:
一、填空:
1。
存储管理的实质对内存的管理,主要对内存中用户区进行管理
2。
将作业相对地址空间的相对地址转换成内存中的绝对地址的过程称为地址重定位
3。
在可变分区存储管理中采用最佳适应算法时,最好按分区块大小从小到大排序空闲分区。
4。
在可变分区存储管理中采用最先适应算法时,最好按分区块地址从低到高排序空闲分区。
5。
静态重定位在程序装入时进行,动态重定位在程序执行时进行。
6。
在可变分区管理中有两张说明表,一是已分配分区说明表,一是空闲分区说明表。
7。
可变分区管理中的空闲分区表根据分配算法需要排序。
已分配分区表不需要排序。
(需要、不需要)
二、简答:
1.何谓名字空间?何谓地址空间?何谓存储空间?
答:名字空间:程序中符号名的集合。
地址空间:在目标模块中的地址的集合。
存储空间:实际内存地址的集合。
储空间
2.分区式存储管理能用于实现虚拟内存吗?(虚拟内存P165-166)
答:不能,因为虚拟存储最重要的特点就是离散性,而分区式存储管理只适用于连续分配方式,即全部程序都放在内存,而不允许程序运行时一部分在内存、
一部分在外存。
所以,无法提供内存的逻辑扩充功能。
3。
为什么要引入动态重定位?如何实现?
答:
为了在程序执行过程中,每当访问指令或数据时,将要访问的程序或数据的逻辑地址转换成物理地址,引入了动态重定位。
可在系统中增加一个重定位寄存器,用它来装入(存放)程序在内存中的起始地址,程序在执行时,真正访问的内存地址是相对地址与重定位寄存器中的地址相加而形成的,从而实现动态重定位。
4。
分区存储管理中常采用哪些分配策略?
答:
固定式分区:又称静态分区,它是在系统初始化时,把内存空间划分为若干个大小不等的分区,分区的大小和分区的个数预先确定好,一旦划分好,在没有人工干预的情况下,内存的划分方式不变。
可变分区分配:与固定分区法相同,可变分区法也要使用分区说明表等数据结构对内存进行管理。
但由于随着时间的推移,系统中分区的个数是不断变化的。
5。
最佳适应(Best Fit)算法和最坏适应(Worst Fit)算法优缺点:
最佳适应算法:要求按空闲区大小从小到大的次序组成空闲区可用表或自由链。
当用户作业或进程申请一个空闲区时,存储管理程序从表头开始查找,当找到第一个满足要求的空闲区时,停止查找。
如果该空闲区大于请求表中的请求长度,则与最先适应法时相同。
将减去请求长度后的剩余空闲区部分留在可用表中。
最坏适应算法:要求空闲区按其大小递减的顺序组成空闲区可用表或自由链。
当用户作业或进程申请一个空闲区时,先检查空闲区可用表或自由链的第一个空闲可用区的大小是否大于或等于所要求的内存长度,若可用表或自由链的第一个项所示空闲区长度小于所要求的,则分配失败,否则从空闲区可用表或自由链中分配相应的存储空间给用户,然后修改和调整空闲区可用表或自由链。
优缺点:
最佳适应算法使剩下的空间尽量最小,但有可能由于空间过小导致其他程序无法使用而变成碎片。
最坏适应算法使剩下的空间尽量最大,减少了产生碎片的机会,但会使空闲分区大的分区较少,无法满足后面需求存储空间较大的作业。
三、应用题:
1.在可变分区存储管理中,按地址法组织当前的空闲分区,其大小分别为:10KB,4KB,20KB,18KB,7KB,9KB,12KB和15KB。
现在依次有3个存储请求为:12KB,10KB,9KB。
试问使用最先适应算法时的分配情形如何?最佳适应、最坏适应呢?(不考虑存储释放情况)
(1)最先适应算法
(2)最佳适应算法
(3)最坏适应算法。