【操作系统复习】第5章 存储器管理 2

news2024/11/28 8:47:22

分页存储管理方式

 

 

 

页号P

12-31位:20

地址空间最多允许有1M2 20)页

位移量W(页内地址)

0-1112

每页大小为4KB 2 12

对某特定机器,地址结构是一定的。

若给定一个逻辑地址空间中的地址为A,页面的大小为L,则页号P页内地址d可按下式求得

 

页表

系统为每个进程建立了 一张页表。记录在该进程的PCB中。

逻辑地址空间内的所有页,依次在页表中有一表项,记录相应页在内存中对应的物理块号。

页表的作用:实现从页号到块号的地址映射。

地址转换

1. 地址转换:实现从逻辑地址到物理地址的转换,将逻辑地址中的页号转换为物理地址中的块号(页内地址和块内物

理地址一一对应)

  1. 映射表:借助页表完成(页面映射表的作用就是实现从页号到物理块号的变换)

1. 逻辑地址:以十六进制、八进制、二进制的形式给出

2. 页号和页内地址分离:按页的大小分离出页号和页内地址,将位移量直接复制到内存地址寄存器的低位部分

3. 页表查表:以页号查页表,得到对应页装入内存的块号,并将块号,转换成二进制数填入地址寄存器的高位部分,从而形成内存地址(页号+页内地址->块号+页内地址

页表寄存器:整个系统中设置一个页表寄存器,存放页表在内存的始址和页表的长度。当调度某进程执行时,将PCB中的页表的始址和长度装入页表寄存器中

动态地址变换机构:执行内存访问指令时,逻辑地址至物理地址的地址变换过程由硬件(动态地址变换机构DAT)实现

 

页表被保存在主存中

页表寄存器(Page-table registerPTR)指向页表的起始地址和长度

在这个机制中,每一次的数据/指令存取需要两次内存访问,一次是访问页表,一次是访问数据/指令

解决两次访问的问题,是采用小但专用且快速的硬件缓冲,这种缓冲称为转换表缓冲器(translation look aside bufferTLB)或联想寄存器

具有快表的地址变换机构

1. 访问内存性能降低:每执行一条指令,至少要访问内存两次。一次是到内存中访问页表;一次是形成物理地址后,到该内存单元中取指令或数据。这样,存取速度降低一倍,将会影响整个系统的使用效率

2. 快表:存放页表部分内容的快速存储器称为联想寄存器,联想寄存器中存放的部分页表称为“快表”

3. 联想寄存器解决方案:为提高速度,增设联想寄存器(也称快表,可按内容并行查找的快速寄存器,比内存贵,容量小),将作业中最常用的页块号置入高速缓存,提高查表速度,一般说,快表若含有8-16项,就可达到较高命中率

引入快表后的有效访问时间EAT

查找快表需要的时间为 λ

假设访问内存一次需要的时间为tEAT = t + t = 2t (基本分页存储系统中)

命中率在联想寄存器中找到页号的百分比,比率与联想寄存器的大小有关,假设为a

引入快表的有效访问时间EAT = λ * a + (t + λ)(1 – a) + t

页表结构

对页表所需要的内存空间,采用离散分配方式

两级页表

 

多级页表

 

反置页表

为减少页表占用的内存空间,引入反置页表,一个系统一张页表对每个内存物理块设置一个条目。

每个条目保存在真正内存位置的页的虚拟地址,以及包括拥有这个页的进程的信息。

减少了需要储存每个页表的内存,但是当访问一个页时,增加了寻找页表需要的时间

分段存储管理方式

引入目的:为了满足用户(程序员)在编程和使用上多方面的要求

方便编程信息共享信息保护动态链接动态增长

在分段存储管理方式中,作业的地址空间被划分为若干个段,每个段定义了一组逻辑信息

每个段都有自己的名字,通常用一个段号来代替段名,每个段都从0开始编址,并存储在一段连续的地址空间内

段的长度由相应的逻辑信息组的长度决定,因此各段长度不等

 

 

 

分段的一个突出优点,是易于实现段的共享,即允许若干个进程共享一个或多个分段,且对段的保护也十分简单易行

在分页系统中,虽然也能实现程序和数据的共享,但远不如分段系统来得方便

可重入代码(纯代码):一种允许多个进程同时访问的代码。

段页式存储管理方式

基本原理:

分段和分页原理的结合,即先将用户程序分成若干段,再把每个段分成若干个页,并为每个段赋予一个段名

优点:

既有分段系统的便于实现、可共享、易于保护、可动态链接;

又能像分页系统,很好地解决内存的外部碎片问题。

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

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

相关文章

LangChain 2 ONgDB:大模型+知识图谱实现领域知识问答

LangChain 2 ONgDB:大模型知识图谱实现领域知识问答 LangChain 2 ONgDB:大模型知识图谱实现领域知识问答系统截图LangChain代理流程 Here’s the table of contents: LangChain 2 ONgDB:大模型知识图谱实现领域知识问答 LangChain 是一种 LL…

社区团购小程序怎么做,全流程解析

在当前的电商市场中,社区团购已经成为了一股强劲的力量。社区团购小程序作为社区团购的重要组成部分,已经成为了商家和消费者不可或缺的工具。社区团购小程序以其方便、快捷、实惠的特点,受到越来越多的用户的青睐,成为了电商市场…

只需5分钟,深刻理解本地事务状态表方案|分布式事务系列(四)

之前我们已经讲过了最基础的CAP、BASE理论,然后介绍了强一致性方案XA、2PC和3PC,然后详细讲述了TCC在生产中的应用场景和原理。本文继续讲解最终一致性方案——本地事务状态表方案。 点击上方“后端开发技术”,选择“设为星标” ,…

Go基础篇:类型系统

目录 前言✨一、什么是类型?二、类型特性1、静态类型检查2、类型推断 三、类型别名和自定义类型1、类型别名2、自定义类型3、类型别名和自定义类型的区别 四、类型底层结构1、类型元数据2、其他描述信息3、uncommontype 五、小结 前言✨ 前段时间忙着春招面试&#…

JDK1.8下载、安装和环境配置教程

🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🦾🦾​​​​​​​ 目录 window系统安装java 下载JDK 配置环境变量 …

算法记录 | Day45 动态规划

70.爬楼梯 (进阶) 改为:一步一个台阶,两个台阶,三个台阶,…,直到 m个台阶。问有多少种不同的方法可以爬到楼顶呢? 1阶,2阶,… m阶就是物品,楼顶…

文件的使用

文章目录 1.概念1.1定义:1.2分类1.3文件名 2.文件的使用2.1文件指针2.2开闭函数2.3顺序读写2.3.1何为读写2.3.2读写函数1.字符输出fputc(输出到文件 写到文件中)2.字符输入fgetc(输入到程序 读到程序中)3.文本行函数4.…

别争了,Excel和Access都靠边,WPS也退,划时代电子表格早已出现

电子表格,绝不仅仅只是你看到的样子! 无论是Excel,还是与它抗衡30多年,不分上下的金山WPS,都没能开创出真正划时代意义的电子表格。 揭秘前让我们先简单回顾下电子表格的前世今生,等不及的可直接进度条下拉…

超写实虚拟人制作教程

最近突然吹起一阵虚拟人直播风潮,大概就是找一个虚拟人物,用主播的面部动作来驱动虚拟人来完成头部和表情动作,但我看大部分都是下载的UE5Unreal Eigine 5(Epic公司出品的一款强大的3D创作平台,很多大型3A大作都是用其…

google.common的guava依赖的partition分割产生的浅拷贝问题解决方案

google.common的guava依赖的partition分割产生的浅拷贝问题解决方案 问题背景解决方案Lyric&#xff1a; 说你不爱我 问题背景 使用google.common的guava依赖的partition分割产生的浅拷贝问题&#xff0c;如: 把userList集合分割成每个10000的小集合 List<List> partiti…

vue+gin—— GetcharZp

vuegin—— GetcharZp vuegin—— GetcharZpP1-项目介绍【03:51】P2-项目梳理【29:59】problemusercategorysubmit P3-环境搭建【05:27】P4-整合GIN、GORM【16:20】P5-整合 Swagger【10:01】P6-接口-问题列表【19:34】P7-接口-问题详情【24:06】P8-接口-用户详情【05:36】P9-接…

C++菱形继承(再剖析)

当子类对象给父类对象的时候&#xff0c;怎么找公共的虚基类&#xff08;A&#xff09; 就得通过偏移量来算虚基类的位置 ---------------------------------------------------------------------------------------------------------------------------- 我们来分析一下B…

DBi-Tech Studio Controls 1.6 for .NET Crack

Studio Controls for .NET 为 Windows 开发人员提供了 18 个 .NET 控件&#xff0c;用于 Outlook 风格的调度到管理单元报告、Windows 应用程序导航到现代 UI 设计演示以实现自然的最终用户功能。 Appointment Scheduling、Time Tabling、Day Timer ... 应…

【Unity入门】20.三维向量

【Unity入门】三维向量 大家好&#xff0c;我是Lampard~~ 欢迎来到Unity入门系列博客&#xff0c;所学知识来自B站阿发老师~感谢 &#xff08;一&#xff09;空间向量 &#xff08;1&#xff09;什么是三维向量 为什么会有这么一篇博客呢&#xff1f;主要是三维向量在unity中…

[Redis] 数据结构zset压缩列表实现和跳表实现讲解

&#x1f61a;一个不甘平凡的普通人&#xff0c;致力于为Golang社区和算法学习做出贡献&#xff0c;期待您的关注和认可&#xff0c;陪您一起学习打卡&#xff01;&#xff01;&#xff01;&#x1f618;&#x1f618;&#x1f618; &#x1f917;专栏&#xff1a;算法学习 &am…

多级缓存建设方案

项目背景 xx系统中对容量和耗时有较高要求&#xff0c;以支付优惠立减为例&#xff0c;每个用户咨询可用立减时&#xff0c;都会过一遍全量生效活动。目前日常活动数3000&#xff0c;目标2w&#xff1b;日常秒级咨询量1w&#xff0c;大促22w。所以如何支撑日常和大促的业务非常…

Unity利用UGUI RawImage组件制作转场动画

Unity利用UGUI RawImage组件制作转场动画 最近接到了一个unity全景图的小项目&#xff0c;由于在不同的场景之间转场时直接转会太过生硬&#xff0c;因此要求有个Alpha转场的动画。于是想到两种可行的方案&#xff1a; 一、UGUI方案 用UGUI显示当前屏幕纹理&#xff0c;然后…

python处理图像的各种技术镜像、旋转、遮挡、叠加、条带化

2.6 图像镜面对称 1、将图像水平镜面转换。 2、将图像垂直镜面转换。 import random #导入模块 import numpy as np import matplotlib.pyplot as plt a plt.imread("1.jpg") # 将图像沿着水平方向重复三次。 ba.copy() da.copy() # 将图像水平镜面转换。&…

【笔记】cuda大师班1-4

一.基本概念 进程&#xff08;process&#xff09;一个正在被执行的计算机程序的实例 上下文&#xff08;context&#xff09;&#xff1a;待处理数据的集合&#xff0c;允许处理器暂停&#xff0c;保持处理的执行和恢复处理 并发&#xff1a;上下文切换&#xff0c;主要应用于…

AIGC - 生产力新工具 Copilot

文章目录 介绍能干啥IDEA 安装 介绍 https://github.com/features/copilot 能干啥 Copilot的主要功能包括: 代码补全和提示:Copilot会根据上下文,智能提示您可能需要的变量,函数,参数等。快速生成代码:Copilot可以快速生成if语句,for循环,类定义,函数定义等代码模板。代码优…