计算机操作系统第四版第五章虚拟存储器—课后题答案

news2025/1/17 1:00:09

89961c623408409f9990d005bfae699f.png

ecb461ace665490cab6beadaccee3e06.png 

a01e5ee921f94c8e9b3d32f3b22d01be.png 

 

1.常规存储器管理方式具有哪两大特征?它对系统性能有何影响?

一次性和驻留性。
一次性及驻留性特征使得许多在程序中不用或暂时不用的程序(数据)占据了大量的内存空间,而一些需要运行的作业又无法装入运行,显然,这是在浪费宝贵的内存资源。

2.什么是程序运行时的时间局限性和空间局限性?

时间局限性:如果程序中的某条指令被执行,则不久之后该指令可能再次执行;如果某数据被访问过,则不久以后该数据可能再次被访问。产生时间局限性的典型原因是在程序中存在着大量的循环操作。
空间局限性:一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址可能集中在一定的范围之内,其典型情况便是程序的顺序执行。

3.虚拟存储器有哪些特征?其中最本质的特征是什么?

多次性、对换性、虚拟性。虚拟性是最本质的特征。

4.实现虚拟存储器需要哪些硬件支持?

分页请求系统:请求分页的页表机制、缺页中断机构、地址变换机构。
请求分段系统:请求分段的段表机制、缺段中断机构、地址变换机构。

5.实现虚拟存储器需要哪几个关键技术?

(1)在分页请求系统中是在分页的基础上,增加了请求调页功能和页面置换功能所形成的页式虚拟存储系统。允许只装入少数页面的程序(及数据),便启动运行。
(2)在请求分段系统中是在分段系统的基础上,增加了请求调段及分段置换功能后形成的段式虚拟存储系统。允许只装入少数段(而非所有段)的用户程序和数据,即可启动运行。

6.在请求分页系统中,页表应包括哪些数据项?每项的作用是什么?

(1)状态位(存在位)P:它用于指示该页是否已调入内存,供程序访问时参考。
(2)访问字段A:用于记录本页在一段时间内被访问的次数,或记录本页最近已有多长时间未被访问,提供给置换算法(程序)在选择换出页面时参考。
(3)修改位M:标识该页再调入内存后是否被修改过。
(4)外存地址:用于指出该页在外存上的地址,通常是物理块号,供调入该页时参考。

7.试比较缺页中断机构与一般的中断,它们之间有何明显的区别?

(1)在指令执行期间产生和处理中断信号。通常,CPU都是在一条指令执行完后,才检查是否有中断请求到达。然而,缺页中断是在指令执行期间,若发现所要访问的指令或数据不在内存时,便立即产生和处理缺页中断信号,一边能及时将所缺之页面调入内存。
(2)一条指令在执行期间可能产生多次缺页中断。

8.试说明请求分页系统中的地址变换过程。

在进行地址变换时,首先检索快表,试图从中找出所要访问的页。若找到,便修改页表项中的访问位,供置换算法选换出页面时参考。对于写指令,还需将修改位置成“1”,表示该页再调入内存后已被修改。然后利用页表项中给出的物理块号和页内地址形成物理地址。地址变换过程到此结束。

9.何谓固定分配局部置换和可变分配全局置换的内存分配策略?

(1)固定分配局部置换。所谓固定分配,是指为每个进程分配一组固定数目的物理块,在进程运行期间不再改变。所谓局部置换,是指如果进程在运行中发现缺页,则只能从分配给该进程的n个页面中选出一页换出,然后再调入一页,以保证分配给该进程的内存空间不变。
(2)可变分配全局置换。所谓可变分配,是指先为每个进程分配一定数目的物理块,在进程运行期间,可根据情况做适当的增加或减少。所谓全局置换,是指如果进程在运行中发现缺页,则将OS所保留的空闲物理块(一般组织为一个空闲物理块队列)取出一块分配给该进程,或者以所有进程的全部物理快为标的,选择一块换出,然后将所缺之页调入。

10.在请求分页系统中,应从何处将所需页面调入内存?

(1)系统拥有足够的对换区空间,这时可以全部从对换区调入所需页面,以提高调页速度。
(2)系统缺少足够的对换区空间,这时凡是不会被修改的文件,都直接从文件区调入;而当换出这些页面时,由于他们未被修改,则不必再将它们重写到磁盘(换出),以后再调入时,仍从文件区直接调入。但对于那些可能被修改的部分,在将它们换出时便须调到对换区,以后需要时再从对换区调入。
(3)UNIX方式。由于与进程有关的文件都放在文件区,故凡是未运行过的页面,都应从文件区调入。而对于曾经运行过但又被换出的页面,由于是被放在对换区,因此在下次调入时应从对换区调入。

11.试说明在请求分页系统中页面的调入过程。

每当程序所要访问的页面未在内存时(存在位为“0”),便向CPU发出一缺页中断,中断处理程序首先保留CPU环境,分析中断原因后,转入缺页中断处理程序。
该程序通过查找页表,得到该页表在外存的物理块后:
如果此时内存能容纳新页,则启动磁盘I/O,将所缺之页调入内存,然后修改页表。
如果内存已满,则须先按照某种置换算法,从内存中选出一页准备换出;如果该页未被修改过(修改位为“0”),可不必将该页写回磁盘;但如果此页已被修改(修改位为“1”),则必须将它写回磁盘,然后再把所缺的页调入内存,并修改页表中的相应表项,置其存在位为“1”,并将此页表项写入快表中。
在缺页调入内存后,利用修改后的页表,去形成所要访问数据的物理地址,再去访问内存数据。整个页面的调入过程对用户是透明的。

12.在请求分页系统中,常采用哪几种页面置换算法?

采用的页面置换算法有:最佳置换算法和先进先出置换算法,最近最久未使用(LRU)置换算法,Clock置换算法,最少使用置换算法,页面缓冲算法等。

13.在一个请求分页系统中,采用先进先出FIFO页面置换算法时,假如一个作业的页面走向为4、3、2、1、4、3、5、4、3、2、1、5,当分配给该作业的物理块数M分别为3和4时,试计算在访问过程中所发生的缺页次数和缺页率,并比较所得结果。

M=3时,采用FIFO页面置换算法的缺页次数为9次,缺页率为75%;M=4时,采用FIFO页面置换算法的缺页次数为10次,缺页率为83%。
由此可见,增加分配给作业的内存块数,反而增加了缺页次数,提高了缺页率,这种现象被称为是Belady现象。

f1152a966f1b4154bc9992636436e91e.png 

14.实现最近最久未使用LRU算法所需的硬件支持是什么?

需要寄存器和栈等硬件支持。寄存器用于记录某进程在内存中各页的使用情况,栈用于保存当前使用的各个页面的页面号。

15.试说明改进型Clock置换算法的基本原理。

因为修改过的页面在换出时付出的开销比未被修改过的页面大,在改进型Clock算法中,既考虑页面的使用情况,还要增加置换代价的因素;在选择页面作为淘汰页面时,把同时满足未使用过和未被修改过作为首选淘汰页面。

16.影响页面换进换出效率的若干因素是什么?

(1)页面置换算法:影响页面换进换出效率最重要的因素,直接影响进程在运行过程中的缺页率,影响页面换进换出的开销。
(2)写回磁盘的频率:如果是采取每个页面换出时,就将它写回磁盘的策略,这意味着每换出一个页面,便需要启动一次磁盘。
但如果在系统中建立了一个已修好换出页面链表,对每一个要被换出的页面(已修改),系统可暂不把它们写回磁盘,而是将它们挂在已修改换出页面链表上,仅当被换出页面数目达到一定值时,再将它们一起写回到磁盘上,这样就显著地减少了磁盘I/O的操作次数。
(3)读入内存的频率:在设置了已修改换出页面链表后,在该链表上就暂时有一批装有数据的页面,如果需要再次访问这些页面时,就不需从外存上调入,而直接从已修改换出页面链表获取,这样也可以减少将页面从磁盘读入内存的频率,减少页面换进的开销。或者说,只需花费很小的开销,便可使这些页面,又回到该进程的驻留集中。

17.页面缓冲算法的主要特点是什么?它是如何降低页面换进换出的频率的?

特点:(1)显著地降低了页面换进、换出的频率,使磁盘I/O的操作次数大为减少,因而减少了页面换进换出的开销;
(2)正是由于换入还出的开销大幅度减小,才能使其采用一种较简单的置换策略,如先进先出算法,它不需要特殊硬件的支持,实现起来非常简单。
在该系统中,内存分配策略上采用了可变分配和局部置换方式。为了能显著地降低页面换进换出的频率,在内存中设置了如下两个链表:
(1)空闲页面链表:是一个空闲物理块链表,用于分配给频繁发生缺页的进程,以降低该进程的缺页率。当有一个未被修改的页要换出时,实际上并不将它换出到外存,而是把它们所在的物理块,挂在空闲链表的末尾。
(2)修改页面链表:由已修改的页面所形成的链表。设置该链表的目的,是为了减少已修改页面换出的次数。降低将已修改页面写回磁盘的频率,以及降低将磁盘内容读入内存的频率。

18.什么是抖动?产生抖动的原因是什么?

抖动就是指当内存中已无空闲空间而又发生缺页中断时,需要从内存中调出一页程序或数据送磁盘的对换区中,如果算法不适当,刚被换出的页很快被访问,需重新调入,因此需再选一页调出,而此时被换出的页很快又要被访问,因而又需将它调入,如此频繁更换页面,使得系统把大部分时间用在了页面的调进换出上,而几乎不能完成任何有效的的工作,我们称这种现象为“抖动”。
产生抖动的原因是由于CPU的利用率和多道程序度的对立统一矛盾关系引起的,为了提高CPU利用率,可提高多道程序度,但单纯提高多道程序度又会造成缺页率的急剧上升,导致CPU的利用率下降,而系统的调度程序又会为了提高CPU利用率而继续提高多道程序度,形成恶性循环,我们称这时的进程是处于“抖动”状态。

19.何谓工作集?它是基于什么原理确定的?

工作集(或驻留集)是指在某时间间隔内,进程要访问的页面集合。经常被使用的页面需要在工作集中,而长期不被使用的页面要从工作集中被丢弃。为了防止系统出现抖动现象,需要选择合适的工作集大小。
工作集模型的原理是:
让操作系统跟踪每个进程的工作集,并为进程分配大于其工作集的物理块。如果还有空闲物理块,则可以再调一个进程到内存以增加多道程序数。如果所有工作集之和增加以至于超过了可用物理块的总数,那么操作系统会暂停一个进程,将其页面调出并且将其物理块分配给其他进程,防止出现抖动现象。正确选择工作集大小,对存储器的利用率和系统吞吐量的提高,都将产生重要影响。

20.当前可以利用哪几种方法来防止“抖动”?

(1)采取局部置换策略(2)把工作集算法融入到处理机调度中(3)利用“L=S”准则调节缺页率(4)选择暂停的进程

21.试试说明如何利用“L=S”准则来调节缺页率,以避免“抖动”的发生?

L是缺页之间的平均时间,S是平均缺页服务时间,即用于置换一个页面所需的时间。如果是L远比S大,说明很少发生缺页,磁盘的能力尚未得到充分的利用;反之,如果是L比S小,则说明频繁发生缺页,缺页的速度已超过磁盘的处理能力。只有当L与S接近时,磁盘和处理机都可达到它们的最大利用率。

22.为了实现请求分段式存储管理,应在系统中增加配置哪些硬件结构?

请求段表机制、缺段中断机制和地址变换机构。

23.在请求段表机制中,应设置哪些段表项?

段名、段长、段基址、存取方式、访问字段、修改位、存在位、增补位、外存始地址。

24.说明请求分段系统中的缺页中断处理过程。

(1)根据当前执行指令中的逻辑地址查页表,判断该页是否在主存储器中;
(2)该页标志为“0”形成缺页中断,中断装置通过交换PSW让操作系统的中断处理程序占用处理器;
(3)操作系统处理缺页中断的办法是查主存分配表找一个空闲的主存块,查页表找出该页在磁盘上的位置,启动磁盘读出该页信息。
(4)把从磁盘上读出的信息装入找到的主存块中。
(5)当页面住处被装入主存后,应修改页表中对应的表目,填上该页所占用的主存块把标志置为“1”,表示该页已在主存储器中
(6)由于产生缺页中断时的那条指令并没执行完,所以在把页面装入之后应重新执行被中断指令。

25.请对共享段表中的各项作简要说明。

在系统中配置一张共享段表,所有各共享段都在共享段表中占有一表项。在表项的上面记录了共享段的段号、段长、内存始址、状态(存在)位、外存始址以及共享计数等信息,接下来就是记录了共享此分段的每个进程的情况。
①共享进程计数count:记录有多少进程正在共享该分段。
②存取控制字段:对于一个共享段,应为不同的进程赋予不同的存储权限。
③段号:每个进程可用自己进程的序号,去访问该共享段。

26.如何实现共享分段的分配和回收?

①共享段的分配:在为共享段分配内存时,对第一个请求使用该共享段的进程,由系统为该共享段分配一物理区,当又有其它进程需要调用该共享段时,无须再为该段分配内存。
②共享段的回收:当共享此段的某进程不再需要该段时,若无其他进程使用该段,则由系统回收该共享段的物理内存,否则只是取消调用者进程在共享段表中的有关记录。

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/415506.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CSDN每日一练:鬼画符门之点点大阵

CSDN每日一练:鬼画符门之点点大阵题目描述题目逻辑老顾的提交CSDN题目特色:阅读理解小结题目描述 题目名称:鬼画符门之点点大阵 时间限制:1000ms 内存限制:256M 题目描述 小艺师从鬼画符门派,由于学艺不精只…

如何解决DNS劫持

随着互联网的不断发展,DNS(域名系统)成为了构建网络基础的重要组成部分。而DNS遭到劫持,成为一种常见的安全问题。那么DNS遭到劫持是什么意思呢?如何解决DNS劫持问题呢?下面就让小编来为您一一解答。 DNS遭到劫持是什么意思? DNS遭到劫持指的是黑客通…

SSM学习记录2:传参(注释方式 + SprigMVC项目 + 2022发布版本IDEA)

SpingMVC传参(一般方式 json方式) 一般方式 package controller;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBod…

OldWang带你了解MySQL(五)

文章目录🔥MySQL中定义空值🔥MySQL中的别名🔥MySQL中去除重复🔥查询中的行选择🔥MySQL中的比较条件🔥其他比较条件🔥逻辑条件🔥优先规则🔥使用 ORDER BY 排序&#x1f52…

JavaScript【八】JavaScript函数高级

文章目录🌟前言🌟回调函数🌟递归函数🌟闭包🌟什么是闭包函数?🌟 闭包三个特性🌟 闭包的缺点🌟JavaScript的垃圾回收机制🌟闭包小案例🌟局部变量长期驻扎内存…

STM32F407串口通信

本文是基于江科大B站视频编写,参考各种资料进行学习。 1、USART串口协议 硬件电路(接线) 2、USART串口外设 常用波特率为9600、115200 必须对应特定引脚,才能实现通信,如果引脚冲突,看看有没有重…

数据结构和算法学习记录——层序遍历(层次遍历)、二叉树遍历的应用(输出二叉树中的叶节点、求二叉树的高度、二元运算表达式树及其遍历、由两种遍历序列确定二叉树)

目录 层序遍历 思路图解 代码实现 二叉树遍历的应用 输出二叉树中的叶节点 代码实现 求二叉树的高度 思路图解 代码实现 二元运算表达式树及其遍历 由两种遍历序列确定二叉树 层序遍历 层序遍历可以通过一个队列来实现,其基本过程为: 先根…

计算机网络P5~P7

目录 1.计算机网路性能指标 2.吞吐量 3.时延 4.时延带宽积 5.往返时间 6.利用率 7.丢包率 8.计算机体系结构 1.计算机网路性能指标 速率和带宽 速率 :每秒传输的比特的个数 单位 b/s kb/s mb/s gb/s 带宽:表示传送数据的能力 。带宽可以理解为高…

医院手术麻醉信息管理系统源码

医院手术麻醉信息管理系统源码 实现整个围术期术前、术中、术后的全数字化和信息化。 医院手术麻醉临床信息管理系统是一种基于云计算技术的信息系统,它可以帮助医院更好地管理手术麻醉临床信息,提高手术麻醉的安全性和效率。 首先,医院手术…

数学分析:多元微积分1

卓里奇的数学分析的好处在于直接从多元函数来入手多元微积分,引出矩阵,十分自然。 紧集的概念,感觉直接用闭集去理解就行,(对于图形学来说)。 多元函数的极限,其实和单元函数并没有什么区别。 这…

在你眨眼时,VR这样欺骗你的视觉

VR的沉浸感,可以让人仿佛置身于现实之外,还可以利用各种生物传感特性,来模拟一种具有存在感的虚拟空间。实际上,VR可以很好的欺骗人的感官,比如尽管你身处空间有限的房间中,但在VR中你仿佛已来到开阔的户外…

网络应用程序设计(idea版)——实验三:Web组件重用与JavaBeans

目录 实验预习报告 一、实验目的 二、实验原理 三、实验预习内容 实验报告 一、实验目的 二、实验要求 三、实验内容及要求 实验预习报告 一、实验目的 1. 理解静态包含和动态包含的概念,掌握相关指令和动作的使用; 2. 掌握JavaBeans的含义和…

路科验证UVM入门与进阶详解实验3

在UVM——lab3中,将SV环境移植到UVM的重点内容如下: TLM的单向、多向通信端口使用TLM的通信管道UVM的回调类型 uvm_callbackUVM的一些仿真控制函数TLM单向、多向通信 1、何为事务级、何为事务级通信(TLM)?有什么用&am…

禁用linux系统默认的22端口号

前提条件:在云平台上开放一个代替22的端口。 1、需查看服务器的防火墙是否开启, 命令:systemctl status firewalld.service 如果防火墙的状态为开启,在运行,需要先在防火墙增加端口 1.命令:firewall-cm…

【消息队列】Kafka如何实现高性能IO

我们直到Kafka是一个自称高性能的消息队列引擎,一般来说对于中间件的设计需要从计算、存储、网络三方面进行下手,而消息从产生到消费,也会经历多个流程,比如在生产者端采用异步\同步方式发送,采用高效的压缩算法&#…

JavaWeb03 Cookie和Session

一个网站怎么证明你来过? 1.首次访问时服务器给客户端一个cookie,下次客户端再次访问会自动携带cookie,注意cookie可以是多个 2.首次访问时服务器登记了客户端一系列信息,下次客户端再进行访问时服务器自动匹配此客户端是否访问…

Win10搭建我的世界Minecraft服务器「内网穿透远程联机」

文章目录1. Java环境搭建2.安装我的世界Minecraft服务3. 启动我的世界服务4.局域网测试连接我的世界服务器5. 安装cpolar内网穿透6. 创建隧道映射内网端口7. 测试公网远程联机8. 配置固定TCP端口地址8.1 保留一个固定tcp地址8.2 配置固定tcp地址9. 使用固定公网地址远程联机转载…

Mac远程控制工具有哪些

适用于Mac的远程控制工具有很多,这里我们给大家列举五个常用软件。 1、Apple Remote Desktop 苹果自带远程桌面正如其名称所承诺的那样。作为 Apple 出品的应用程序,您可以想象它的配置和上手是多么容易。从 App Store 下载 Apple Remote Desktop 后&a…

ThreadPoolExecutor获取原始异常

ThreadPoolExecutor作用 ThreadPoolTaskExecutor是Spring框架提供的一个线程池实现,它是基于Java的ThreadPoolExecutor实现的。ThreadPoolTaskExecutor可以管理线程池中的线程,以满足多线程并发执行任务的需要。 FutureTask作用 FutureTask的主要作用…

自动化篇 | 13 | app自动化:airtest

1 airtes简介 1.1 参考地址 http://airtest.netease.com/ # airtest官网 https://airtest.doc.io.netease.com/ # airtest操作方法 https://airtest.doc.io.netease.com/IDEdocs/faq/1_code_examples/ # 代码示例2 airtest架构 Airtest框架 3 airtest使用 3.1 打开界…