• 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html
  • 极客专栏正式上线!欢迎访问 https://www.jikewenku.com/topic.html

计算机操作系统题库之内存管理(三)

极客题库 Geekerstar 11个月前 (06-08) 558次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

虚地址即程序执行时所要访问的内存地址。


交换可以解决内存不足的问题,因此,交换页实现了虚拟存储。


为了使程序在内存中浮动,编程时都使用逻辑地址。因此,必须在地址转换后才能得到主存的物理地址。


虚拟存储的实现是基于程序局部性原理,其实质是借助外存将内存较小的物理地址空间转化为较大的逻辑地址空间。


虚存容量仅受外存容量的限制。


早期的Unix操作系统,没有提供虚拟存储器,为了使容量有限的内存能支持较大的规模的程序,系统除采用正文段共享和自我覆盖技术外,主要采用了程序对换技术来扩充存储容量,使其具有类似于虚拟存储器的作用。


静态页式管理可以实现虚存。


用可变分区法可以比较有效的消除外部碎片,但不能消除内部碎片。


系统中内存不足程序所需大小,程序就无法执行。


把作业装入内存时随即进行地址变换的方式称为( )。

静态重定位

什么是动态链接?用何种内存分配方法可以实现这种链接?

动态链接就是指当程序运行到需要调用某一模块时,再去链接。

对于未使用的模块就可以不必链接。采用段式内存分配方法可以实现这种动态链接。

为什么静态重定位后的程序在内存中不能移动?为什么动态重定位的程序在内存中可以移动?

静态重定位后的程序在内存中不能移动的原因如下:静态重定位后的程序的代码发生了变化,由原来逻辑地址的程序已经变为物理地址的程序,按物理地址的方式运行,因此不能再进行移动。

动态重定位的程序在内存中可以移动的原因如下:动态重定位是在程序运行过程中由硬件进行地址变换,变换的结果存放在内存地址寄存器中。

程序代码并没有发生变化,仍然是逻辑地址的代码,按逻辑地址的方式运行。

因此,在内存中移动程序代码之后,仅需要根据代码新的起始位置,重新设定基地址寄存器的值。

设某进程分得的内存页面数为m ,其需访问的页面个数为p其中有n个不相同的页面,对于任意置换算法,求:
(1)页面失效次数的下限。
(2)页面失效次数的上限。

设某进程分得的内存页面数为m,其需访问的页面个数为p,其中有n个不相同的页面,对于任意转换算法(1)下限是n(2)上限是p

说明:因为页面序列中有n个不同的页号,这n个页面肯定是通过页面失效中断装入内存的,故失效数的下限是n;因为页面序列的长度是p,即使每个页面都失效,其次数也不会超过p,故上限是p。

虚存管理与实存管理的根本区别是什么?

根本区别就在于,虚拟管理允许部分装入和部分对换,而实存管理不允许这样做。

所谓”部分装入”,指的是一道应用程序不是全部装入内存以后才开始执行而是只装入其中一部分,甚至一点都不装入就开始运行,然后在运行的构成中根据需要逐步的装入其余部分;

“部分对换”,指的是当内存已满而又有新的将”部分”需要装入时,要把已在内存的某一”部分”换出去,以腾出空间存放新来者。

部分装入和部分对换的结果是可以用较小的内存运行较大的程序。

实存管理则不同,它所要求的是整体装入。

就虚存回答以下问题: (1)虚存的应用背景是什么? (2)虚存的可行性是什么? (3)实现虚存的主要技术是什么? (4)虚存可以有多大?

1、虚存的应用背景是用小内存运行大程序。这里的”大程序”是指比整个内存用户空间还要大的程序,它可以是一道程序,也可以是多道程序之和。

2、虚存的可行基础是程序运行的局部性原理。

3、实现虚存的主要技术是部分装入、部分对换、局部覆盖、动态重定位。

4、从原理上讲,虚存空间就是CPU逻辑地址所给出的空间。例如,逻辑地址是25位,则虚存空间就是225=32MB;但实际的虚拟存储器的容量还要受辅存和内存空间之和的限制,实际的虚存容量不能超过这两个物理空间之和。

考虑一个有快表的请求分页系统,设内存的读写周期为1ns,内外存之间传送一个页面的平均时间为5000ns,快表的命中率为80%,页面失效率为10%,求内存的有效存取时间。

内存的有效存取时间EAT(Efficent Access Time)也叫平均存取时间AAT(Average Access Time),其计算公式如下:EAT=1ns×80%+2ns×10%+(5000ns+2ns) ×10%=0.8ns+0.2ns+500.2ns=501.2ns

在采用首次适应算法回收内存时,可能会出现几种情况,该如何处理?

1、回收区与插入点的前一个空闲分区F1相邻接,此时应将回收区与插入点的前一分区合并,不必为回收分区分配新表项,而只须修改其前一分区F1的大小。

2、回收区与插入点的后一个空闲分区F2相邻接,此时应将两分区合并,形成新的空闲分区,但用回收区的首址作为新空闲分区的首址,大小为两者之和。

3、回收区同时与插入点的前、后两个分区邻接,此时将三个分区合并,使用F1的表项和F1的首址,取消F2的表项,大小为三者之和。

4、回收区既不与F1邻接,又不与F2邻接。这时应为回收区单独建立一新表项,添写回收区的首址和大小,并根据其首址插入到空闲链中的适当位置。

主存空间信息保护有哪些措施?

保存主存空间中的信息一般采用以下措施:

① 程序执行时访问属于自己主存区域的信息,允许它既可读,又可写;

② 对共享区域中的信息只可读,不可修改;

③ 对非共享区域或非自己的主存区域中的信息既不可读,也不可写。

怎样对内存进行分区?

对内存空间的划分是可以静态的,也可以动态的;可以是等长的,也可以不等长。

静态划分是指系统运行之前就将内存空间划分成若干区域,通常,分配给进程的内存可能比进程实际所需的区域长。

动态划分是在系统运行过程中才划分内存空间。

这样,系统可按进程所需要的存储空间大小为其分配恰好满足要求的一个或多个区域。

等长分区是将存储空间划分为若干个长度相同的区域。

不等长分区则是将存储空间划分若干个长度不同的区域。

虚存储器的含义是什么?

虚存储器有两层含义,一是指用户程序的逻辑地址构成的地址空间;

二是指当内存容量不满足用户要求时,采用一种将内存空间与外存空间有机地结合在一起,利用内外存自动调度的方法构成一个大的存储器,从而给用户程序提供更大的访问空间。

一个分页存储器的页表存放在内存。 (1)若内存的存取周期为0.6ms,则CPU从内存取一条指令(或一个操作数)需多少时间? (2)若使用快表且快表的命中率为75%,则内存的平均存取周期为多少?

一个分页存储器的页表存放在内存

1、因为页表放在内存,故取一条指令(或一个操作数)须访问两次内存,所以需0.6ms×2=1.2ms的时间。

2、这里家假设访问快表的时间忽略不计,命中快表时,取数只要一次访问,故此时的平均存取周期为0.6ms×0.75+1.2ms×(1-0.75)=0.75ms

在请求分页系统中,某用户的编程空间为16个页面,每页1K,分配的内存空间为8K。假定某时刻该用户的页表如下图所示,试问:

(1)逻辑地址084B(H)对应的物理地址是多少?(用十六进制表示)
(2)逻辑地址5000(十进制)对应的物理地址是多少?(用十进制表示)
(3)当该用户进程欲访问24A0H单元时,会出现什么现象?
页号 块号
0 3
1 7
2 4
3 1
4 12
5 9
6 61
7 20


1、答:104B(H)

2、答:13192

3、答: 24A0(H)的页号为9,而其页面当前不在内存,所以会发一个缺页中断,请求系统调页。


丨极客文库, 版权所有丨如未注明 , 均为原创丨
本网站采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行授权
转载请注明原文链接:计算机操作系统题库之内存管理(三)
喜欢 (0)
[247507792@qq.com]
分享 (0)
Geekerstar
关于作者:
本站技术支持

您必须 登录 才能发表评论!

  • 精品技术教程
  • 编程资源分享
  • 问答交流社区
  • 极客文库知识库

客服QQ


QQ:2248886839


工作时间:09:00-23:00