操作系统——内存管理例题

1、关于分配策略例题

case1:某系统的空闲分区见下表,如有下列作业:96KB,20KB,200KB,分别采用首次适应算法和最佳适应算法来处理这些作业序列,哪种算法能满足该作业序列请求?

分区号大小始址
132KB100K
210KB150K
35KB200K
4218KB220K
596KB530K

首次适应算法是选取第一个满足96KB的分区,即选取4号分区,218KB;

                  选取第一个满足 20KB的分区,即选取1号分区,32KB;

                  选取第一个满足 200KB的分区,无满足空闲分区,作业序列请求无法满足;

最佳适应算法是选取大于96KB且最接近的分区,即选取5号分区,96KB;

                  选取选取大于20KB且最接近的分区,即选取1号分区,32KB;

                  选取选取大于200KB且最接近的分区,即选取4号分区,218KB;作业序列请求满足;

分配处理之后的空闲分区表:

分区号大小始址
112KB120K
210KB150K
35KB200K
418KB420K
50KB*

2、逻辑地址转换物理地址

case1:

 解答:相联存储器(TLB)就是快表(具有并行查找能力的高速缓冲存储器),用来存放当前访问的若干页表项,加速地址变换过程。而内存中的页表称为慢表(地址转换过程是第一次访问页表,确定所存取的数据或指令的物理地址,第二次是根据地址存取数据或指令)【注意进制问题】

(1)因为页面是32B=2^5,则页内偏移量是5位,其余是页号

(2)101(八进制)=001 000 001(二进制),则0010为页号,转成十进制为2,在相联存储器中对应页帧号f3

204(八进制)=010 000 100(二进制),则0100为页号,转成十进制为4,不在相联存储器中,查内存表可知页帧号为f5,并用其更新相联存储器中的一项

576(八进制)=101 111 110(二进制),则1011为页号,转成十进制为11,超出页表范围,即产生越界中断

case 2:

 

答: 页面大小1KB=2^10B,页内偏移量是10位

0AC5H= 0000 10/10 1100 0101B,00010=2,逻辑页号为2,物理块号为4,物理地址是0001 00/10 1100 0101B=12C5H

1AC5H= 0001 10/10 1100 0101B,,逻辑页号为6,不在页面映射表中,会产生缺页中断,系统进行缺页中断处理

3AC5H= 0011 10/10 1100 0101B,,逻辑页号为14,该用户程序只有10页,因此系统会产生越界中断。

case 3:

设某计算机的逻辑地址空间和物理地址空间均为64KB,按字节编址。操作系统最多为一个进程分配4页物理内存,页的大小为1KB,并采用固定分配局部置换策略。在时刻260前,某进程内存分配与访问情况如下表所示:

页号页框号装入时间访问时间
07130250
14230230
22200240
39160245

当该进程执行到时刻260时候,要访问逻辑地址17CAH,问题:

(1)该逻辑地址对应的页号是多少?

(H表示16机制,0~9: 0000~1001,A~F:1010~1111)

17CAH = 0001(1) 0111(7) 1100(C) 1010(A)

页面大小为1KB=2^10,则页内偏移量是10位,则前6位为页号,0001 01=5,对应页号为5

(2)采用FIFO,计算该逻辑地址对应的物理地址?

按照FIFO,先替换的页框号是7(最先装入),逻辑地址是0001 11|11 1100 1010,|前是页框号,页内偏移量不变,转成16进制为1FCAH

(3)采用LRU,计算该逻辑地址对应的物理地址?

LRU是最近最长时间未被访问,访问时间最早的是230,即页框号为4,0001 00|11 1100 1010,|前是页框号,页内偏移量不变,转成16进制为13CAH

case 4:

 段号0,内存始址为210,段长是500,则段内位移430(逻辑地址)是合法的,对应物理地址是210+430=640

 段号1,内存始址为2350,段长是20,则段内位移10(逻辑地址)是合法的,对应物理地址是2350+10=2360

 段号2,内存始址为100,段长是90,则段内位移500(逻辑地址)是不合法的,段内位移超过段长,为非法地址

 段号3,内存始址为1350,段长是590,则段内位移400(逻辑地址)是合法的,对应物理地址是1350+400=1750

 段号4,内存始址为1938,段长是95,则段内位移112(逻辑地址)是不合法的,段内位移超过段长,为非法地址

不存在第5段

case 5:

 答:

(1)页面大小:64KB/16=4KB

进程长度:4KB×4=16KB

(2)

页号块号逻辑地址
09(0,0)
10(1,72)
21(2,1023)
314(3,99)

页面大小为4KB=2^12B,页内偏移量为12位,16个物理块,需要4位标记(0000-1111)

页号为0的初始地址:1001 0000 0000 0000B,即9000H

页号为1的初始地址:0000 0000 0000 0000B,即0000H

页号为2的初始地址:0001 0000 0000 0000B,即1000H

页号为3的初始地址:1110 0000 0000 0000B,即E000H

(3)

0,0的二进制是0000,内存地址(9,0)=1001 0000 0000 0000B,即9000H

1,72的二进制是0100 1000,内存地址(0,72)=0000 0000 0100 1000B,即0048H

2,1023的二进制是0011 1111 1111,内存地址(1,1023)=0001 0011 1111 1111B,即13FFH

3,99的二进制是0110 0011,内存地址(14,99)=1110 0000 0110 0011B,即E063H

case 6 

答:页面大小64B=2^6B,页内偏移量为6位,进程长度为702/64=10余62 ,即需要11个页面

(八进制转二进制,占3位)

0105 =0 0100 0101B,页号为001,即1,页帧号F1,能在快表中查到,页内偏移是00 0101B=5,物理地址是(F1,5)

0217=0 1000 1111B,页号为010,即2,页帧号F2,能在快表中查到,页内偏移是00 1111B=15,物理地址是(F2,15)

0567=1 0111 0111B,页号为101,即5,页帧号F5,能在内存页表中查到,页内偏移是11 0111B=55,物理地址是(F5,55)

01120=0010 0101 0000B,页号为0010 01,即9,页帧号F9,能在内存页表中查到,页内偏移是11 0111B=16,物理地址是(F9,16)

02500=0101 0100 0000B,页号为0101 01,即21,超过最大页表,产生越界中断。

case 7

【额外】

页表长度是指一共有多少页,页表项长度是页地址占的存储空间

页表项构成:页号+物理内存中的块号

逻辑地址构成:页号+页内偏移量

物理地址构成:物理块号+页内偏移量

答:

(1)由页面大小为4KB可知,页内偏移量是12位

三级页表结构,计算页表大小,可知页表是页号到物理块号的映射,每个页表项长度是4B,页面大小是4KB,则每页需要的页表项个数4KB/4B=2^10,

一级页表二级页表三级页表页内偏移量
10101012

 虚拟空间大小2^42B=4TB。

页面大小和页表项之间有必然的联系么?【转】_weixin_34408717的博客-CSDN博客

(2)

设页面大小为2^a可知,页内偏移量是a位

四级页表结构,计算页表大小,可知页表是页号到物理块号的映射,每个页表项长度是8B,页面大小是2^a,则每页需要的页表项个数2^a/8B=2^(a-3),每级索引为是a-3,4×(a-3)+a<=64,a<=15.2,a=15,

则2^15=32KB

case 8

 (1)64KB=2^16B,1KB=2^10B,则页内偏移量是10位,页号是16-10=6位

17CAH=0001 01|11 1100 1010B,页号为000101B=5

(2)FIFO:首先替换页号为0(装入时间最早)的,页框号为7,

0001 1111 1100 1010B=1FCAH

CLOCK:当前位置时2,开始顺时针寻找访问位为0的页面,当访问位为1,就把该访问位清‘0’,遍历一圈,回到2,页框号也为2,则0000 1011 1100 1010B =0BCAH

3、页面置换算法

case 1:

 解答:(算法详解见)

最佳置换算法(OPT):

物理块数是3时:

432143543215
物理块14444422
物理块2333331
物理块321555
缺页YYYYYYY

缺页次数:7

缺页率:7/12

置换次数:缺页次数-3=4

物理块数是4时:

432143543215
物理块1444441
物理块233333
物理块32222
物理块4155
缺页YYYYY

缺页次数:6

缺页率:6/12

置换次数:缺页次数-3=3

先进先出算法(FIFO):

物理块数是3时:

432143543215
物理块1444111555
物理块233344422
物理块32223331
缺页YYYYYYYYY

缺页次数:9

缺页率:9/12=3/4

置换次数:缺页次数-3=6

物理块数是4时:

432143543215
物理块14444555511
物理块2333344445
物理块322223333
物理块41111222
缺页YYYYYYYYYY

缺页次数:10

缺页率:10/12

置换次数:缺页次数-3=7

最近最久未使用算法(LRU):

物理块数是3时:

432143543215
物理块14441115222
物理块2333444411
物理块322233335
缺页YYYYYYYYYY

缺页次数:10

缺页率:10/12

置换次数:缺页次数-3=7

物理块数是4时:

432143543215
物理块144444445
物理块23333333
物理块3225511
物理块411222
缺页YYYYYYYY

缺页次数:8

缺页率:8/12

置换次数:缺页次数-3=5

case 2:

 (1)FIFO:选择虚拟页号为3,装入时间最早

        LRU:选择虚拟页号为1的,最近访问时间最久,最久未被最近访问

        改进型CLOCK:优先选择访问位和修改位都为0的结果,即1

(2)LRU的缺页次数为3

当前40002421032
页帧12222
页帧21443
页帧30000
页帧43311

4、相关时间问题

case 1:

 答:

【分析】页表在内存中,实现一次存取需要访问主存两次:一次是访问页表获得物理地址,二次是根据物理地址取数据

页表在快表,实现一次存取,只需访问主存一次,快表是将一部分页表存到 CPU 内部的高速缓冲存储器 Cache。CPU 寻址时先到快表查询相应的页表项形成物理地址,然后在访问内存取数据

(1)1.5×2=3

(2)0.85×1.5【快表】+(1-0.85)×1.5×2【内存】=1.725

case 2:

 答:

(1)

页式存储管理:首先访问内存中的页表,查找到指令或数据所在页面对应的页表项,再根据页表项查找所在的内存页面,需要访问内存2次

段式存储管理:首先访问内存中的段表,查找到指令或数据所在页面对应的段表项,再根据段表项查找所在的内存页面,需要访问内存2次

段页式存储管理:首先访问内存中的段表,查找到指令或数据所在页面对应的段表项,再根据段表项查找所在的页表项,再根据页表项查找所在的内存页面,需要访问内存3次

具有快表,则快表命中时,只需访问1次

多级页表(N),访问内存N+1

(2)0.85×(1+0.2)+(1-0.85)×(0.2+1+1)【首先查询快表是否命中,若命中(0.85),0.2+1(访问内存),若未命中(1-0.85),0.2+1+1(访问内存中的页表项)】

(3)同理,将0.85换成0.5,0.5×(1+0.2)+(1-0.5)×(0.2+1+1)

case 3

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

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

相关文章

STM32中C语言知识点:初学者必看,老鸟复习(长文总结)

说在前面的话一位初学单片机的小伙伴让我推荐C语言书籍&#xff0c;因为C语言基础比较差&#xff0c;想把C语言重新学一遍&#xff0c;再去学单片机&#xff0c;我以前刚学单片机的时候也有这样子的想法。其实C语言是可以边学单片机边学的&#xff0c;学单片机的一些例程中&…

STM32——ADC

STM32——ADC 宗旨&#xff1a;技术的学习是有限的&#xff0c;分享的精神是无限的。 一、ADC指标 有 18 个通道&#xff0c;可测量 16 个外部和 2 个内部信号源。各通道的 A/D 转换可以单次、连续、扫描或间断模式执行 &#xff1b;ADC的结果可以左对齐或右对齐方式存储在 16…

时间复杂度和空间复杂度,一看就懂,面试前必过一遍

一、定义时间和空间是程序的一个硬性指标&#xff0c;一个用来衡量 代码执行的速度 &#xff0c;一个用来衡量 存储空间的大小程序 数据结构 算法时间复杂度&#xff1a;就是执行程序的快慢&#xff0c;速度越快&#xff0c;时间复杂度就越好。空间复杂度&#xff1a;就是执…

数据结构——排序【仅用于考试】

1、简介 排序&#xff0c;是重新排列表中的元素&#xff0c;使表中的元素满足按关键字有序的过程 稳定性&#xff1a;选取两个元素Ri<Rj&#xff0c;经过排序算法之后&#xff0c;仍为Ri<Rj 不稳定的排序&#xff1a;【简单选择排序&#xff0c;快速排序&#xff0c;堆…

[UWP]做个调皮的BusyIndicator

1. 前言 最近突然想要个BusyIndicator。做过WPF开发的程序员对BusyIndicator应该不陌生&#xff0c;Extended WPF Toolkit 提供了BusyIndicator的开源实现&#xff0c;Silverlight Toolkit也有一个&#xff0c;这次想要把这个控件移植到UWP中。 2. 先说点正经的 2.1 BusyIndica…

STM32——I2C

STM32——I2C 宗旨&#xff1a;技术的学习是有限的&#xff0c;分享的精神是无限的。 一、I2C协议 I 2 C &#xff08;Inter-Integrated Circuit&#xff09;协议是由 Philips 公司开发的&#xff0c;由于它具备引脚少、硬件实现简单、可扩展性强、不需要如 USART、CAN 的外部…

C语言发展简史

1、起源C 语言最早的原型是 ALGOL 60 1963 年&#xff0c;剑桥大学将其发展成为 CPL(Combined Programing Language)。1967 年&#xff0c;剑桥大学的 Matin Richards 对 CPL 语言进行了简化&#xff0c;产生了 BCPL 语言。1970 年&#xff0c;美国贝尔实验室(Bell Labs)的 Ken…

STM32——EEPROM

STM32——EEPROM 宗旨&#xff1a;技术的学习是有限的&#xff0c;分享的精神是无限的。 一、I2C接口读写EEPROM&#xff08;AT24C02&#xff09; ——主模式&#xff0c;分别用作主发送器和主接收器。通过查询事件的方式来确保正常通信。 1、I 2C接口初始化 与其他对GPIO 复用…

Linus Torvalds谈ECC内存的重要性 痛斥英特尔正在扼杀它

新年假期&#xff0c;Linus Torvalds在邮件列表中发表的一篇火热的帖子引发技术社区关注&#xff0c;人们借此讨论ECC内存的重要性&#xff0c;Torvalds在文章中抨击了英特尔在这方面的”坏政策”&#xff0c;因为特定的市场细分使ECC内存不那么普及。Linus认为&#xff0c;纠错…

加密和解密算法的兩個實現

最近一段時間,集團加強了資安方面的管理,所有敏感的配置字節都必須經過加密處理,把最近用到的幾個加解密類整理了一下,以做備忘. 其實這兩個類實現的方法差不多,只是有些細微區別: 對稱加密演算法類 SymmetricMethodHelperusing System;using System.IO;using System.Security.…

47.leetcode36_valid_suduko

1.题目分析 Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board could be partially filled, where empty cells are filled with the character .. A partially filled sudoku which is valid. Note: A valid Sudoku board (partia…

STM32——SPI接口

STM32——SPI接口 宗旨&#xff1a;技术的学习是有限的&#xff0c;分享的精神是无限的。 一、SPI协议【SerialPeripheral Interface】 串行外围设备接口&#xff0c;是一种高速全双工的通信总线。在ADC/LCD等与MCU间通信。 1、SPI信号线 SPI 包含 4 条总线&#xff0c;SPI 总…

这两种printf()函数重定向方法,太实用了

作者&#xff1a;echobright原文链接&#xff1a;https://blog.csdn.net/qq_29344757/article/details/75363639在前面学习了STM32的串口编程&#xff0c;通过USART1向计算机的串口调试助手打印数据&#xff0c;或者接收计算机串口调试助手的数据&#xff0c;接下来我们可以实现…

浅析Linux 64位系统虚拟地址和物理地址的映射及验证方法

前言有好久没更新了&#xff0c;这段时间发生了挺多大喜事哈。但是也还是有挺久没更新了&#xff0c;不得不意识到自己是个小菜鸡&#xff0c;就算是小菜鸡也要做一只快乐小菜鸡。就算更新慢但是我依然会持续更新&#xff0c;因为更文使我快乐。虚拟内存先简单介绍一下操作系统…

C语言指针:从底层原理到花式技巧,用图文和代码帮你讲解透彻

一、前言二、变量与指针的本质三、指针的几个相关概念四、指向不同数据类型的指针五、总结一、前言如果问C语言中最重要、威力最大的概念是什么&#xff0c;答案必将是指针&#xff01;威力大&#xff0c;意味着使用方便、高效&#xff0c;同时也意味着语法复杂、容易出错。指针…

ARM

ARM 宗旨&#xff1a;技术的学习是有限的&#xff0c;分享的精神是无限的。 1 、ARM处理器的特点 ARM 处理器具有耗电少&#xff0c;功能强大&#xff0c;16 位/32 位双指令集等众多优点。主要有以下六个主要特点&#xff1a; ① 体积小、低功耗&#xff0c;低成本和高性能&am…

解决一个I2C读写问题

之前写关于I2C相关的文章排查一个触摸屏驱动问题MTK 平台TP调试遇坑1、问题今天遇到一个问题&#xff0c;我们有一个芯片&#xff0c;I2C读写失败&#xff0c;导致录音有问题&#xff0c;而且是偶现的。log提示看到是返回 -6<3>[ 730.336308] (3)[2085:tinycap]es7243_…

用多媒体库 Bass.dll 播放 mp3 [9] - 绘制波形图

本例效果图:代码文件:unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, ExtCtrls, ComCtrls;typeTForm1 class(TForm)OpenDialog1: TOpenDialog;PaintBox1: TPaintBox;Button1: TButton;Button2: TBut…

我是如何使用wireshark软件的

长按二维码识别关注技术共享|资料共享|沟通交流01简介这篇文章介绍一个好用的抓包工具Wireshark&#xff0c; 用来获取网络数据封包&#xff0c;包括HTTP、TCP、UDP等网络协议包。开始界面wireshark是捕获机器上的某一块网卡的网络包&#xff0c;当你的机器上有多块网卡的时候&…

BZOJ4681 [jsoi2010]旅行

时间限制&#xff1a; 3S空间限制&#xff1a; 256M具体思路:DPf[i][j][k]表示1-i,前L条路上用了 j条,L后的路上换了k条的最小代价枚举一下L就有了一个复杂度O(nlognk^3)的做法AC代码#include<bits/stdc.h> using namespace std; #define INF 100000000 #define P pair&l…