计算机操作系统第四、五章自测题-存储管理

一、单项选择题

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、固定分区存储管理 D、段页式存储管理

段则是信息的逻辑单位,它含有一组其意义相对完整的信息。 分段的目的是为了能更好地满足用户的需要。段的长度却不固定, 决定于用户所编写的程序,通常由编译程序在对源程序进行编译时,根据信息的性质来划分。

12、最佳适应分配算法把空闲区()。

A、按地址递增顺序登记在空闲区表中

B、按地址递减顺序登记在空闲区表个

C、按长度以递增顺序登记在空闲区表中

D、按长度以递减顺序登记在空闲区表中

最佳适应算法 方法:为作业选择分区时总是寻找其大小最接近于作业所要求的存储区域的分区。 特点:用最小空间满足要求,较大的空闲区被保留,有利于满足长作业的 要求。 缺点:分配后剩下的空闲区难以满足别的用户作业的需要。最佳适应算法要求从剩余的空闲分区中选出最小且满足存储要求的分区,空闲区应按长度递增登记在空闲区表中。

13、某基于动态分区存储管理的计算机,其主存容量为 55MB(初始为空闲),采用最佳适配算法,分配和释放的顺序为:分配 15MB,分配 30MB,释放 15MB,分配 8MB,分配 6MB,此时主存中最大空闲分区的大小是()。

A、7MB   B、9MB   C、10MB   D、15MB

最佳适配算法是指:每次为作业分配内存空间时,总是找到能满足空间大小需要的最小的空闲分区给作业。可以产生最小的内存空闲分区。

下图显示了这个过程的主存空间的变化。

图中,灰色部分为分配出去的空间,白色部分为空闲区。这样,容易发现,此时主存中最大空闲分区的大小为9MB。

14、在未引入快表的分页存储管理时,每读写一个数据,要访问(    )主存。

A、1次   B、2次   C、3次   D、4次

若页表全部放在主存,则要取一个数据(一条指令)至少要访问二次主存,第一次是访问页表,确定所取数据(或指令)的物理地址,第二次是根据该地址取数(或指令)。

15、动态分区存储管理的( )总是按作业要求挑选一个最大的空闲区。

A、顺序分配算法    B、最先适应分配算法

C、最优适应分配算法  D、最坏适应分配算法 

首次适应法: 方法:为作业选择分区时总是按地址从低到高搜索,只要找到可以容纳该作业的空白块,就把该空白块分配给该作业。 特点:先利用低址部分的空闲区,保存了高址的大空闲区,为大作业分配创造了条件 缺点:低址部分被不断划分,有很多碎片;每次都从低址部分查找,增加查找开销。

循环首次适应法 方法:类似首次适应法每次分区时,总是从上次查找结束的地方开始,找到一个足够大的空白区分配。 特点:空闲区域分布得均匀,减少查找开销 缺点:缺乏大的空闲区域。

最佳适应算法 方法:为作业选择分区时总是寻找其大小最接近于作业所要求的存储区域的分区。 特点:用最小空间满足要求,较大的空闲区被保留,有利于满足长作业的 要求。 缺点:分配后剩下的空闲区难以满足别的用户作业的需要。

最坏适应算法 方法:与最佳适应法相反,它在作业选择存储块时,总是寻找最大的空白区。 特点:当分割后空闲块仍为较大空块 缺点:空闲区均匀减少,工作一段时间后,难以满足大作业的需要。

16、一个分段存储管理系统中,地址长度为 32 位,其中段号占 8 位,则最大段长是 ()。

A、28  B   B、216B   C、224B   D、232B

段地址为32位二进制数,其中8位表示段号,则段内偏移量占用32-8=24位二进制数,故最大段长为224B。

17、抖动是指(  )。

A、使用机器时,造成屏幕闪烁的现象

B、刚被调出的页面又立即被装入所形成的频繁装入\调出的现象

C、系统盘有问题,造成系统不稳定的现象

D、由于主存分配不当,偶然造成主存不够的现象

不适当的算法可能会导致进程发生抖动,即刚被换出的页很快又被访问需要将它重新调入,如此频繁的页面更换,以致一个进程在运行中把大部分时间都花费在页面置换工作上,我们称进程发生了“抖动”。

18、虚拟存储管理系统的基础是程序的(  )理论。

A、动态性 B、全局性

C、局部性 D、虚拟性

19、在段式存储管理中,(    )。

A、段间绝对地址一定不连续

B、段间逻辑地址必定连续

C、以段为单位分配,每段分配一个连续主存区

D、每段是等长的

基本段式管理方式 将作业的地址空间划分为若干个段,每个段定义一组逻辑信息,都有自己的名字,且都是首地址为零、连续的一维线性空间。系统以段为单位分配主存,每一段分配连续的分区。同一进程所包含的各段不要求连续. 分配方式:离散分配

20、虚拟存储技术不能以(  )为基础。

A、分区存储管理   B、段式存储管理   C、页式存储管理   D、段页式存储管理

虚拟存储技术是将内存和外存结合起来管理,为用户提供一个比内存空间大得多的虚拟存储器。其思想是:当进程要求执行时,将它的一部分程序或数据调入内存,另一部分暂时存放在外存,进程在运行时,如果要使用的信息不在内存时,发中断,由系统将它们从外存调入内存。虚拟存储管理分为虚拟页式、虚拟段式和虚拟段页式。在分区管理中,可以通过覆盖和交换技术来扩充内存,但由于各个进程对应不同的分区以及在分区内各个进程连续连续存放,进程的大小仍然受分区大小或内存可用空间的限制,不能实现虚拟存储。

21、在动态分区存储管理中的拼接技术可以()。

A、集中空闲区    B、增加主存容量

C、缩短访问周期   D、加速地址转换

动态重定位分区分配方式= “紧凑”技术+重定位+动态分区分配方式。

可重定位分区的优缺点 优点:解决了可变分区分配所引入的“外零头”问题。消除内存碎片,提高内存利用率。 缺点:提高硬件成本,紧凑时花费CPU时间。

22、在分页系统环境下,程序员编制的程序,其地址空间是连续的,分页是由(    )完成的。

A、程序员   B、编译地址   C、用户   D、系统

分页是由操作系统自动完成的,一个操作系统一旦设计完成,其存储管理系统的结构就已经确定,分页还是分段,页面大小等在设计操作系统的过程中已经确定,当一个程序被创建为进程,并分配资源,其页面的大小自动分割完成,对用户是透明的,对编译程序和链接装配程序透明(在相同的系统里)。只有操作系统可以感知页面的存在,在内存管理过程中,操作系统要为用户进程分配内存,回收内存。所以操作系统是页面最直接的接触者,它将页面从计算机系统中到用户(包括程序员)进行了隔离。

23、下列关于虚拟存储器的叙述中,正确的是(     )。

A.虚拟存储只能基于连续分配技术       B.虚拟存储只能基于非连续分配技术

C.虚拟存储容量只受外存容量的限制   D.虚拟存储容量只受内存容量的限制

虚拟存储器只能基于非连续分配技术。虚拟存储容量是虚拟的空间,与逻辑地址的位数相关,不会只受到内存或外存容量的限制。

24、请求分页系统中的页表项中,访问位供( )时参考。

A、分配页面    B、置换算法    C、程序访问    D、换出页面

状态位P: 指示该页是否已调入内存,以供程序在运行时参考;

访问字段A:记录该页在一段时间内被访问的次数,或记录该页最近有多长时间未被访问,以供系统在换出页面时参考。

修改位M: 表示该页在调入内存后是否被修改过。

外存地址:指出该页在外存上的地址,通常是物理块号/盘块号。

25、请求分页系统中的页表项中,外存地址供(    )时参考。

A、分配页面    B、调入页面    C、程序访问    D、换出页面

26、在段页式存储管理系统中,内存等分成(A),程序按逻辑模块划分成若干(D)。

A、块   B、分区   C、段长   D、段

27、下述(    )页面淘汰算法会产生Belady现象。

A、先进先出  B、最近最少使用   C、最近最久未使用   D、最佳

先进先出(FIFO)页面置换算法 系统将最先进入到内存中的页面换出到外存的对换区中,即选择在内存中停留时间最长的的页面予以淘汰。

这种算法比较容易实现,系统只要将进程在内存中的页面按照进入内存时间的先后顺序排序,并组织成一个队列,另外再设置一个指针,使这个指针总执行最早进入到内存的那个页面。 性能差,页面调入的先后并不能反映页面的使用情况。它有一种异常现象,即在增加存储块的情况下,反而使缺页中断率增加了。

28、考虑一个分页系统,其页表存放在内存。

(1)如果内存读写周期为1.0微秒,则CPU从内存取一条指令或一个操作数需时间为(D) 微秒。

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

(2)如果设立一个可存放8个页表项的快表,80%的地址变换可通过快表完成,内存平均存取时间为(C)微秒。(假设快表访问时间可忽略)

A、1.0   B、1.1   C、1.2   D、2.0

二、计算题

1、在一分页存储管理系统中,某作业的逻辑地址空间为4页(页面大小为2048字节),且第0、1、2、3页依次存放在物理块2、4、6、7中,现有逻辑地址为4865和10020,将它们转换成物理地址。

2、现有一个作业,在段式存储管理的系统中已为主存分配建立了如下表示的段表

请回答下列问题:

(1)段式存储管理如何完成重定位?

(2)计算该作业访问[0,550],[2,186],[1,300]和[3,655](方括号中第一个元素为段号,第二个元素为段内地址)时的绝对地址。

3、在页式虚拟存储管理的计算机系统中,运行一个共有8页的作业,且作业在主存中分配到4块主存空间,作业执行时访问页面顺序为7,0,1,2,3,0,4,3,2,3,6,7,3,1,5,7,6,2,6,7。请问用FIFO和LRU调度算法时,它们的缺页中断率分别是多少?

4、某操作系统采用可变分区分配存储管理方法,用户区为512K且始址为0,且初始时用户区的512K空间空闲,用户请求下列操作:

Req(300K), req(100K), release(300K), req(150K), req(30K), req(40K), req(60K), release(30K)

回答下列问题:

(1) 采用首次适应算法,空闲分区中有哪些空闲块(给出图示,并给出始址、大小)?

(2) 采用最佳适应算法,空闲分区中有哪些空闲块(给出图示,并给出始址、大小)?

.

原文地址:https://www.cnblogs.com/zsh-blogs/p/10137909.html

时间: 2024-11-02 11:50:56

计算机操作系统第四、五章自测题-存储管理的相关文章

计算机操作系统第三章自测题-处理机调度与死锁

1.在单处理器的多进程系统中,进程什么时候占有处理器以及决定占用时间的长短是由(  )决定的. A.进程运行时间     B.进程的特点和进程调度策略 C.进程执行的代码 D.进程完成什么功能 进程调度的时机与进程特点有关,如进程是否为CPU繁忙型还是I/O繁忙型.自身的优先级等.但是仅这些特点是不够的,能否得到调度还取决于进程调度策略,若采用优先级调度算法,则进程的优先级才起作用.至于占用处理器运行时间的长短,则要看进程自身,若进程是I/O繁忙型,运行过程中要频繁访问I/O端口,也就是说,可能

计算机操作系统-第四章:存储器管理

存储层次至少三级:CPU寄存器,主存,辅存. 寄存器和主存储器又被称为可执行存储器.(可使用一条load或store指令对可执行存储器访问,但辅存需要通过io设备实现) 主存储器简称内存或主存,用于保存进程运行时的程序和数据,也简称可执行存储器. 寄存器具有与处理机相同的速度,对寄存器访问速度最快,完全能与CPU协调工作. 高速缓存:介于寄存器和存储器之间的存储器,主要用于备份主存中较常用的数据,以减少处理机对主存储器的访问次数,大幅提高程序执行速度. 磁盘缓存:由于目前磁盘的IO速度远低于对主

计算机操作系统(第四版)课后习题答案(完整版)

详情见附件

第五章(使用对象) 编程题一

单词长度(4分) 题目内容: 你的程序要读入一行文本,其中以空格分隔为若干个单词,以'.'结束.你要输出这行文本中每个单词的长度.这里的单词与语言无关,可以包括各种符号,比如"it's"算一个单词,长度为4.注意,行中可能出现连续的空格. 输入格式: 输入在一行中给出一行文本,以'.'结束,结尾的句号不能计算在最后一个单词的长度内. 输出格式: 在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔开,行末没有最后的空格. 输入样例: It's great to see you h

第三章 自测题

2. (1) 化为函数极限,再利用数列极限与函数极限的关系.\[\begin{aligned}  \lim_{x\to +\infty}  (x \tan \frac 1x)^{x^2} &= \lim_{t\to 0}  \exp \frac{ \ln \frac{\tan t}{t} }{t^2} \\   &=  \exp \left(  \lim_{t\to 0}  \frac{ \ln \frac{\tan t}{t} }{t^2}\right)\\   &=  \exp

第二章自测题

1. 填空题 (1) $\frac12 f'(x_0)$ 令 $x=x_0+ \Delta x$, 则得\[  \mbox{原式}=\lim_{\Delta x\to 0}   \frac{  f(x_0 +\frac{\Delta x}{2} )-f(x_0)}{ \Delta x }   =\frac12\lim_{\Delta x\to 0}   \frac{  f(x_0 +\frac{\Delta x}{2} )-f(x_0)}{ \frac{\Delta x}{2} }=\frac1

第一章自测题

1. 填空题 (1) $\frac{2}{3}$ (2) $[1,e]$ (3) $\ln 2$ 2. 选择题: (1) (D) 课件上例题,不是无穷大的原因是,当 $x\to +\infty$, $x\cos x$ 有可能取零, 比如令 $x=n\pi +\frac\pi 2$. (2) (C) 原因是 $x\to -\infty$ 时极限存在, 要求 $\lim\limits_{x\to -\infty} e^{bx}=\infty$, 所以 $b<0$, 而 $a\geq 0$ 时, $a

C++ Primer第五章课后编程题

1. 代码 #include<iostream> int main() { using namespace std; int num1; int num2; int total=0; cout << "请输入开始数字\n"; cin >> num1; cout << "请输入结束数字\n"; cin >> num2; for (num1; num1<=num2; num1++) total = num

第一本书 第五章(课后题)

1.选择题 1.C  2.A  3.C  4.D  5.B 2.简答题 1.利用循环结构解决问题的一般步骤是什么? 确定循环条件 → 确定循环体 → 写代码 2.使用while循环结构输出:100.95.90.85...5.先画出流程图,在编程实现.设置断点调试程序,观察循环变量的变化. package cn.bdqn.test; public class Dome2 { public static void main(String[] args) { int i=100; while(i>=5