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

分页存储管理方式

 

 

 

页号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.mfbz.cn/a/16573.html

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

相关文章

Apache Flink (最新版本) 远程代码执行

路虽远&#xff0c;行则将至&#xff1b;事虽难&#xff0c;做则必成 Apache Flink < 1.9.1(最新版本) 远程代码执行 CVE-2020-17518 漏洞描述 近日,有安全研究员公开了一个Apache Flink的任意Jar包上传导致远程代码执行的漏洞. 漏洞影响 Apache Flink < 1.9.1(最新…

《最强Android书 架构大剖析》读书笔记

文章目录 第一章 Android 体系结构的变革之路1.2 Android系统源码目录与Linux的异同Android的框架原生二进制可执行文件Android 的原生库核心(core)库用以支持框架的库硬件抽象层Linux内核不带上层 UI界面的Android 第二章 Android 的分区和文件系统2.1 分区架构实验:从设备中获…

C++的智能指针

文章目录 1. 内存泄漏1.1 什么是内存泄漏1.2 内存泄漏分类 2. 为什么需要智能指针3. 智能指针的使用及原理3.1 RAII3.2 使用RAII思想设计的SmartPtr类3.3 让SmartPtr像指针一样3.3 SmartPtr的拷贝3.4 auto_ptr3.5 unique_ptr3.6 shared_ptr3.6.1 shared_ptr的循环引用3.6.2 wea…

axios使用笔记

文章目录 基本语法其他语法defaults config作用案例 创建实例对象作用案例 拦截器 interceptor&#xff08;AOP&#xff09;请求取消&#xff08;节流&#xff09; 基本语法 <!doctype html> <html lang"en"> <head><meta charset"UTF-8&…

可视化工作流管理

​本场景是可视化工作流&#xff0c;通过可视化的精益看板将价值流进行可视化&#xff0c;通过精益思维消除瓶颈、加速流动&#xff0c;提升效率。 创建工作流任务看板 •通过Leangoo可视化工作流项目模板&#xff0c;创建一个工作流看板。 •通过看板&#xff0c;我们可以将…

「欧拉定理」[SDOI2008]仪仗队

[SDOI2008]仪仗队 https://ac.nowcoder.com/acm/problem/20313 题目描述 作为体育委员&#xff0c;C君负责这次运动会仪仗队的训练。 仪仗队是由学生组成的N * N的方阵&#xff0c;为了保证队伍在行进中整齐划一&#xff0c;C君会跟在仪仗队的左后方&#xff0c;根据其视线所…

【计算机网络】图解内容分发网络 CDN

【计算机网络】图解内容分发网络 CDN 参考资料&#xff1a; 用了CDN就一定比不用更快吗&#xff1f; 什么是内容分发网络 高性能利器&#xff1a;CDN我建议你好好学一下&#xff01; 文章目录 【计算机网络】图解内容分发网络 CDN一、CDN 概述1.1、什么是 CDN1.2、为什么需要 …

【Java笔试强训 16】

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔&#x1f93a;&#x1f93a;&#x1f93a; 目录 一、选择题 二、判断题 &#x1f525;完全数计…

shell的基础学习三

文章目录 一、Shell 流程控制二、Shell 函数三、Shell 输入/输出重定向四、Shell 文件包含总结 一、Shell 流程控制 for 循环 与其他编程语言类似&#xff0c;Shell支持for循环。 for循环一般格式为&#xff1a; while 语句 while 循环用于不断执行一系列命令&#xff0c;也…

02-Vue技术栈之基础篇(下)

目录 1、class 与 style 绑定1.1 理解1.2 class 绑定1.3 style绑定1.4 代码示例 2、条件渲染2.1 v-if2.2 v-show2.3 注意事项2.4 代码示例 3、列表渲染3.1 基本列表3.2 key的原理3.2.1 虚拟DOM中key的作用&#xff1a;3.2.2 对比规则&#xff1a;3.2.3 用index作为key可能会引发…

IPsec中IKE与ISAKMP过程分析(主模式-消息1)

IPsec协议族中IKE&#xff08;Internet Key Exchange&#xff09;是一种基于ISAKMP的协议&#xff0c;它为建立IPSec安全通信隧道提供了一种无痕密钥交换的机制。简单来说&#xff0c;IKE就是ISAKMP的扩展&#xff0c;为ISAKMP提供了更加高效、灵活和安全的密钥协商机制。 GMT …

ChatGPT实现HTML网页文本提取

网页自动化工具 既然ChatGPT对于编程语言有非常强大的理解能力&#xff0c;那么它是否可以用来自动化地处理网页呢&#xff1f;答案是肯定的。ChatGPT可以使用机器学习算法来识别网页元素中的文本&#xff0c;并抽取出有用的信息。 例如我们提供一段层数比较多的相对来说较为…

继续科普:ChatGPT 最新写论文使用方法

这两天发现了几个国内就能用的ChatGPT,不需要魔法! 给大家推荐两种方法,大家自行选择: 1、电脑端安装VSCode软件,使用GPT插件: 优点: 无需魔法、无需付费、软件简单易用(稍懂电脑就会用) 缺点: ① 只支持电脑端,不支持手机:软件安装虽简单,但不一定所有人都…

java基础知识——22.lambda表达式

这篇文章&#xff0c;我们来讲一下java的lambda表达式 目录 1.初识lambda表达式 2.lambda表达式介绍 2.1 函数式编程 2.2 lambda表达式的具体格式 2.3 Lambda表达式的好处 2.4 Lambda的省略写法 1.初识lambda表达式 首先&#xff0c;我们来看一下lambda表达式的应用 下…

CKA/CKS/CKAD认证考试攻略

什么是CKA考试&#xff1f; CKA认证考试是由Linux基金会和云原生计算基金会(CNCF)创建的&#xff0c;以促进Kubernetes生态系统的持续发展。该考试是一种远程在线、有监考、基于实操的认证考试&#xff0c;需要在运行Kubernetes的命令行中解决多个任务。CKA认证考试是专为Kube…

SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈

Docker 我们发现在微服务中有一个令人头疼的问题——部署&#xff0c;用Docker去解决这个部署难题 &#xff08;一&#xff09;初识Docker-什么是docker 1、项目部署的问题 2、Docker 扔到一台机器上&#xff0c;它们的依赖难道没有干扰吗&#xff1f;不会&#xff0c;docke…

组合导航卡尔曼滤波几个杂项

1.组合导航卡尔曼滤波噪声协方差矩阵调参 在组合导航卡尔曼滤波算法中&#xff0c;主要涉及两个噪声协方差矩阵&#xff0c;过程噪声协方差矩阵Q&#xff0c;测量噪声协方差矩阵R&#xff0c;具体来说&#xff1a; R表示测量噪声协方差&#xff0c;它是一个数值&#xff0c;这…

低代码平台很赞,用2个小时,搭出1套应用

最近低代码很火&#xff0c;到处都是低代码的尝试贴&#xff0c;笔者今天也决定深入体验一下&#xff0c;感受它的便捷程度。 在案例开始之前&#xff0c;我们先来聊聊概念。 一、低代码 低代码实质上并不是一个新颖的话题&#xff0c;也不是最近才有的技术突破和创新&#xf…

【全年汇总】2023年CCF软件工程/系统软件/程序设计语言会议截稿时间汇总(持续更新)

本博文是根据CCF会议推荐的软件工程/系统软件/程序设计语言领域相关会议目录撰写。 一、截稿时间总览 截稿时间的总时间轴内容将会持续更新...... 往年投稿及录用情况及链接详见图片后面的内容。 二、会议详细目录 由于一些会议的投稿时间还没公开&#xff0c;因此根据往年投稿…

gRPC结合vcpkg在x64-windows平台visual studio2019 cmake工程里面的应用

这里我们运用vcpkg去下载安装gRPC&#xff0c;进入vcpkg目录后&#xff0c;执行命令&#xff1a;.\vcpkg.exe install grpc:x64-windows grpc在vcpkg里面安装完成后&#xff0c;我们就来使用grpc做一个简单的例子。 gRPC顾名思义&#xff0c;就是google的RPC方案&#xff0c;…