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

一、简答题


1.存储器管理的基本任务,是为多道程序的并发执行提供良好的存储器环境。请问好的存储器环境”应包含哪几个方面?

答:


2.内存保护是否可以完全由软件实现?为什么?

答:内存保护的主要任务是确保每道程序都只在自己的内存区内运行。这就要求系统能对每条指令所访问的地址进行越界检查。若发生越界,系统应能立即发现,并发出越界中断请求,以抛弃该指令。若每次检查完全由软件实现,则每执行一条指令时,都要增加若干条指令去执行越界的检查功能,这无疑将降低程序的执行速度,因此,越界检查通常由硬件实现,并使指令的执行与越界检查功能并行执行,从而不使程序的运行速度降低。当然,对发现有越界后的处理需与软件配合来完成。因此说内存保护功能是由硬件和软件协同完成的。


3.请解释什么是重定位?为什么要重定位?

答:重定位:允许作业在运行过程中在内存中移动的技术,必须获得硬件地址变换机构的支持。即在系统中增加一个重定位寄存器,用它来装入程序在内存中的起始地址。程序在执行时,真正访问的内存地址是相对地址与重定位寄存器中的地址相加而成的,这就叫做重定位。在连续分配方式中,为了利用“碎片”将作业装入,需要将内存中分散的小分区拼接成大分区,称为”拼接”或”紧凑”,但由于经过紧凑后的用户程序在内存中的位置发生了变化,若不对程序和数据的地址进行修改, 程序将无法执行,所以必须进行重定位。


4.动态重定位的实现方式有哪几种?

答:


5.可采用哪几种方式将程序装入内存?它们分别适用于何种场合?

答:

(1) 绝对装入方式,适用于单道程序系统。

(2) 可重定位装入方式,适用于分区式存储管理系统。

(3) 动态运行时装入方式,适用于分页、分段式存储管理系统。

根据信息的性质来划分。(3)分页的作业地址空间是一维的,而分段作业地址空间则是二维的。


6.何谓静态链接?静态链接时需要解决哪两个问题?

答:

静态链接的定义:程序运行之前,先将各目标及它们所需的库函数链接成一个完整的装配模块,以后不再拆开,这种事先进行链接的方式称为。


7.编写程序时,源代码必须经过编译和链接生成目标代码,请问什么是链接?链接主要解决了什么问题?简述链接的主要类型及其优缺点。

答:

             链接(Linking) 是计算机程序构建过程中的一个阶段,其主要任务是将一个或多个由编译器生成的目标文件(包括库文件)组合成一个可执行文件、共享库或者其他类型的目标代码。链接主要解决的问题包括:

          符号解析 :编译时,函数和变量的具体地址尚未确定。这些未确定的函数和变量被称为“外部符号”。链接器的任务之一是找到这些符号的真实地址,并替换相应的引用。

         空间和地址分配:链接器为每个模块分配空间,并决定每个函数和变量在最终输出中的地址。

         库处理:程序员经常使用标准库或其他库中的函数。链接器从库中选择所需的模块并将其包含在最终的可执行文件中。

链接的主要类型包括:

静态链接 
  优点:
     - 生成的可执行文件是独立的,不依赖于外部的库文件,方便部署和分发。
     - 有时可能会有更好的性能,因为所有的代码都在一个单一的二进制文件中。
  缺点:
     - 如果多个程序使用相同的库,静态链接会导致每个程序都有库的一个副本,浪费磁盘和内存资源。
     - 如果库更新,需要重新链接和部署应用程序。

动态链接:
   -优点:
     - 节省磁盘空间和内存,因为多个运行的程序可以共享同一个库的副本。
     - 库更新时,通常不需要重新链接和部署应用程序。
   缺点:
     - 运行时需要库文件。如果库文件丢失或与应用程序版本不兼容,可能会导致程序无法运行。
     - 有时可能有额外的性能开销,因为需要解析动态符号和加载共享库。

在实际开发中,静态链接和动态链接各有应用场景,选择哪种链接方式取决于项目的具体需求和目标。


8.为什么要引入对换?对换可分为哪几种类型?

答:答:在多道环境下,一方面,在内存中的某些进程由于某事件尚未发生而被阻塞,但它却占用了大量的内存空间,甚至有时可能出现在内存中所有进程都被阻塞而迫使CPU停止下来等待的情况;另一方面,却又有着许多作业在外存上等待,因无内存而不能进入内存运行的情况。显然这对系统资源是一种严重的浪费,且使系统吞吐量下降。为了解决这一问题,在操作系统中引入了对换(也称交换)技术。 可以将整个进程换入、换出,也可以将进程的一部分(页、段)换入、换出。前者主要用于缓解目前系统中内存的不足,后者主要用于实现虚拟存储。

9.在对换技术中,对文件区管理的目标和对对换空间管理的目标有何不同?

答:

         对文件区管理的主要目标是提高文件存储空间的利用率,然后才提高对文件的访问速度,因此,对文件区空间的管理采取离散分配方式。

        对对换空间管理的主要目标是提高进程换入和换出的速度,然后才是提高文件存储空间的利用率,因此,对对换区空间的管理采取连续分配方式,较少的考虑外存中的碎片问题。


10.为什么说分段系统较分页系统更易实现信息共享与保护?

答:

        无论是分页系统、还是分段系统,都允许多个进程共享程序中的代码或公共数据。分页系统实现页共享的方法是,在共享进程中将共享页对应的页表项指向同一个内存块。由于分页系统的地址空间是一维的,页的划分由系统自动进行,因此会造成共享代码或数据与非共享代码或数据共处一页的情况,从而使信息的共享变得十分困难。而分段系统则在用户编程时,自然地进行分段的划分,每个分段中的信息具有相对完整的逻辑意义,正好与分段存储系统相适应,因此它比分页更容易实现信息的共享。 

        对信息的保护来说,也是按信息的逻辑单位进行保护,也与分段存储系统相适应,OS应保证用户进程只按允许的方式访问共享信息,而对他人的非共享信息则不允许进行任何形式的访问。分段系统比分页系统更容易实现信息的保护,我们可按各个分段的含义来对每个分段进行不同的保护,如子程序段的存取权限是只能执行,数据段的存取权限是可读可写等。


11.提高内存利用率的途径主要有哪些?

答:

(1)改连续分配方式为离散分配方式;

(2)增加对换和覆盖机制;

(3)引入动态机制;

(4)引入虚拟存储器机制;

(5)引入存储器共享机制。


二、计算题


12.假设一个分页存储系统具有快表,多数活动页表项都可以存在于其中若页表放在内存中,内存访问时间是1ns,快表的命中率是85%,快表的访问时间为0.1ns,财效存取时间为多少?

答:

        在有快表的分页存储系统中,计算有效存取时间时,需注意访问快表与访问内存的时间关系。通常系统中,先访问快表,未命中时再访问内存;但如果题中有具体的说明,计算时则应注意区别。 计算过程:[(0.1+1)×85%+(0.1+1+1)×(1-85%)]μs=1.25μs。


13.对一个将页表存放在内存中的分页系统:
(1)如果访问内存需要0.2μs,则有效访问时间为多少?
(2)如果加一快表,且假定在快表中找到页表项的概率高达90%,则有效访问时间又s是多少(假定查快表须花费的时间为0)?

答:


14.某系统采用分页存储管理方式,拥有逻辑空间32页,每页2KB,拥有物理空间1MB。
(1)写出逻辑地址的格式。
(2)若不考虑访问权限等,则进程的页表有多少项?每项至少有多少位?
(3)如果物理空间减少一半,则页表结构应相应地做怎样的改变?

答:

15.已知某分页系统,内存容量为64KB,页面大小为1KB,对一个4页大的作业,其)
1、2、3页分别被分配到内存的2、4、6、7块中。
(1)将十进制的逻辑地址1023、2500、3500、4500变换为物理地址。
(2)以十进制的逻辑地址1023为例,画出地址变换过程图。


16.已知某系统页面长4KB,每个页表项的大小为4B,采用多层分页策略映射64位的用户地址空间。若限定最高层页表只占1页,问它可采用几层分页策略。


17.对于表5-2所示的段表,请将逻辑地址(0,137),(1,4000),(2,3600),(5,230)
变换成物理地址。
 

段表 5-2
段号内存起始地址段长
050K10KB
160K3KB
270K5KB
3120K8KB
4150K4KB

三、综合应用题


18.某系统采用动态分区分配方式管理内存,内存空间为640KB,低端40KB存放OS。系统为用户作业分配空间时,从低地址区开始。针对下列作业请求序列,画图表示使用首次适应算法进行内存分配和回收后内存的最终映像。作业请求序列如下:
作业1申请200KB,作业2申请70KB;作业3申请150KB,作业2释放70KB;作业4申请80KB,作业3释放150KB;作业5申请100KB,作业6申请60KB;作业7申请50KB,作业6释放60KB。


19.某OS采用分段存储管理方式,用户区内存为512KB,空闲块链入空闲块表,分配时截取空闲块的前半部分(小地址部分)。初始时全部空闲。执行申请、释放操作序列request(300KB)、request(100KB)、release (300KB)、request (150KB)、request(5OKB)、request(90KB)后:
(1)若采用首次适应算法,则空闲块表中有哪些空闲块(指出大小及起始地址)?
(2)若采用最佳适应算法,则空闲块表中有哪些空闲块(指出大小及起始地址)?
(3)若随后又要申请80KB,则针对上述两种情况会产生什么后果?这说明了什么问题?

20.某系统的空闲分区如表5-3所示,采用可变分区分配策略处理作业。现有作业序列96KB、20KB、200KB,若采用首次适应算法和最佳适应算法来处理这些作业序列,则哪种算法能满足该作业序列的请求?为什么?

 

表5-3空闲分区表
段号内存起始地址段长
032K100KB
110KB150K
25KB200K
3218KB220K
496KB530K


 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言_断言assert详解

一、assert定义 assert() 的用法像是一种"契约式编程",在我的理解中,其表达的意思就是,程序在我的假设条件下,能够正常良好的运作,其实就相当于一个 if 语句: if(假设成立) {程序正常运行&…

用户登录前后端开发(一个简单完整的小项目)——SpringBoot与session验证(带前后端源码)全方位全流程超详细教程

🧸注:不要看我的文件多,那是我的其他项目,这个项目所用的文件我会全部用红框框起来,没框的部分不用管,前端两个文件,后端一个文件 📜 目录 首先,定义前后端交互接口 然…

强化学习中值函数应用示例

一、Gridworld Gridworld是一个用于教授强化学习概念的简化的电子游戏环境。它具有一个简单的二维网格,智能体可以在其中执行动作并获得奖励。这个环境是有限的,因为它有一个明确的开始和结束状态,以及一组确定的动作和奖励。 在Gridworld中&…

use renv with this project create a git repository

目录 1-create a git repository 2-Use renv with this project 今天在使用Rstudio过程中,发现有下面两个新选项(1)create a git repository (2) Use renv with this project. 选中这两个选项后,创建新项目,在项目目…

NEFU数字图像处理(三)图像分割

一、图像分割的基本概念 1.1专有名词 前景和背景 在图像分割中,我们通常需要将图像分为前景和背景两个部分。前景是指图像中我们感兴趣、要分割出来的部分,背景是指和前景不相关的部分。例如,对于一张人物照片,人物就是前景&…

目标检测算法改进系列之添加EIOU,SIOU,AlphaIOU,FocalEIOU等

YOLOv8添加EIoU,SIoU,AlphaIoU,FocalEIoU,Wise-IoU等 yolov8中box_iou其默认用的是CIoU,其中代码还带有GIoU,DIoU,文件路径:ultralytics/yolo/utils/metrics.py,函数名为:bbox_iou 原始代码 def bbox_i…

故障诊断模型 | Maltab实现LSTM长短期记忆神经网络故障诊断

文章目录 效果一览文章概述模型描述源码设计参考资料效果一览 文章概述 故障诊断模型 | Maltab实现LSTM长短期记忆神经网络故障诊断 模型描述 长短记忆神经网络——通常称作LSTM,是一种特殊的RNN,能够学习长的依赖关系。 他们由Hochreiter&Schmidhuber引入,并被许多人进行了…

2023 年值得关注的国外网络安全初创公司

网络安全初创公司试图解决的问题往往有点超前于主流。他们可以比大多数老牌公司更快地填补空白或新兴需求。初创公司通常可以更快地创新,因为它们不受安装基础的限制。 当然,缺点是初创公司往往缺乏资源和成熟度。公司致力于初创公司的产品或平台是有风…

基于单片机的空气质量检测系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 技术交流认准下方 CSDN 官方提供的联系方式 文章目录 概要 一、主要内容二、系统方案设计2.1 系统方案设计2.2 主控制器模块选择 三、 系统软件设计4.1 程序结构分析4.2系统程序…

基于SSM的会员卡管理系统设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

S32K144芯片焊接完成后使用S32DS初次下载无法下载解决方法

一、问题现象如下,S32DS Debug下报错 二、原因,原厂芯片出厂时的FLASH Memory的安全机制是激活的,仿真器是可以连上,但是没法读取Flash Memory的内容 三、解决方法 参考图示,解锁后即可正常Debug

Mac电脑配置Dart编程环境

1.安装Dart SDK 官网地址:https://dart.dev/get-dart $brew tap dart-lang/dart$brew install dart 安装后,用命令检测一下是否安装正常。 $brew info dart 2.VS Code配置Dart环境 1).安装VS Code 官网地址:https://code.visualstudio.c…

【技能树笔记】网络篇——练习题解析(十)

【技能树笔记】网络篇系列前九篇 【技能树笔记】网络篇——练习题解析(一)-CSDN博客 【技能树笔记】网络篇——练习题解析(二)-CSDN博客 【技能树笔记】网络篇——练习题解析(三)-CSDN博客 【技能树笔记】网…

DAY38 动态规划 + 509. 斐波那契数 + 70. 爬楼梯 + 746. 使用最小花费爬楼梯

动态规划理论 动态规划,Dynamic Programming, DP, 如果某一问题有很多重叠子问题,使用动态规划是最有效的。 所以动态规划中每一个状态一定是由上一个状态推导出来的,这一点就区分于贪心,贪心没有状态推导…

Cross Site Scripting (XSS)

攻击者会给网站发送可疑的脚本,可以获取浏览器保存的网站cookie, session tokens, 或者其他敏感的信息,甚至可以重写HTML页面的内容。 背景 XSS漏洞有不同类型,最开始发现的是存储型XSS和反射型XSS,2005,Am…

Node学习笔记之user用户API模块

1、获取用户的基本信息 步骤 获取登录会话存储的session中用户的id判断是否获取到id根据用户id查询数据库中的个人信息检查指定 id 的用户是否存在将密码设置为空将数据返回给前端 // 获取用户信息数据 exports.userinfo (req, res) > {(async function () {// 1. 获取…

C语言每日一练(二)

单链表经典算法专题 一、 单链表相关经典算法OJ题1:移除链表元素 解法一:在原链表中删除Node.nextnext的节点 typedef struct ListNode ListNode; struct ListNode* removeElements( ListNode* head, int val) {ListNode* pcur head;ListNode* pre h…

CVE-2021-44228 Apache log4j 远程命令执行漏洞

一、漏洞原理 log4j(log for java)是由Java编写的可靠、灵活的日志框架,是Apache旗下的一个开源项目,使用Log4j,我们更加方便的记录了日志信息,它不但能控制日志输出的目的地,也能控制日志输出的内容格式;…

【数据结构】插入排序

⭐ 作者:小胡_不糊涂 🌱 作者主页:小胡_不糊涂的个人主页 📀 收录专栏:浅谈数据结构 💖 持续更文,关注博主少走弯路,谢谢大家支持 💖 直接插入、希尔排序 1. 什么是排序2…

lesson2(补充)关于>>运算符和<<运算符重载

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 前言&#xff1a; cout和cin我们在使用时需要包含iostream头文件&#xff0c;我们可以知道的是cout是写在ostream类里的&#xff0c;cin是写在istream类里的&#xff0c;他们都是定义出的对象&#xff0c;而<< 和 >…