操作系统4_存储器管理

news2024/11/16 2:35:49

操作系统4_存储器管理

文章目录

  • 操作系统4_存储器管理
    • 1. 存储器的管理功能
      • 1.1 地址映射/地址重定位
      • 1.2 主存分配与回收
      • 1.3 存储保护
      • 1.4 主存扩充/虚拟内存
    • 2. 存储器的层次结构
    • 3. 程序的接入与链接
      • 3.1 程序的链接
      • 3.2 程序的装入
    • 4. 分区存储管理
      • 4.1 单一连续分配
      • 4.2 固定分区分配
      • 4.3 可变分区分配
        • 4.3.1 顺序搜索
        • 4.3.2 索引搜索
      • 4.4 可重定位分区分配
      • 4.5 对换
      • 分区存储管理特点:连续、碎片
    • 5. 分页存储管理
      • 5.1 基本思想
      • 5.2 地址变换
        • 5.2.1 逻辑地址
        • 5.2.2 物理地址
        • 5.2.3 地址转换/地址变换
      • 5.3 多级页表
    • 6. 分段存储管理
    • 7. 段页式存储管理
      • 7.1 基本原理
      • 7.2 核心数据结构
      • 7.3 地址结构及转换
      • 7.4 缺点

1. 存储器的管理功能

1.1 地址映射/地址重定位

  • 基本概念
    • 内存地址:内存的每个存储单元都有一个编号,这种编号称为内存地址/物理地址/绝对地址
    • 内存空间:内存地址的集合称为内存空间/物理地址空间
    • 逻辑地址
      • 要求用户用内存地址编程是非常困难的,尤其是在多道程序设计的环境中
      • 用户编程所用的地址称为逻辑地址/程序地址/虚地址
      • 由逻辑地址组成的空间称为逻辑地址空间/程序地址空间
    • 地址映射:把用户程序装入内存时对有关指令的地址部分的修改定义为从程序地址到内存地址的地址映射/地址重定位
  • 地址映射的方式
    • 静态地址映射:程序被装入内存时由操作系统的连接装入程序完成程序的逻辑地址到内存地址的转换
      • 映射方法:假定程序装入内存的首地址为BR,程序地址为VR,内存地址为MR,则地址映射按下式进行:MR=BR+VR
        例如,程序装入内存的首地址为1000,则装配程序就按MR=1000+VR对程序中所有地址部分进行修改,修改后指令Load A,200就变为Load A,1200
      • 优点:不需要硬件的支持
      • 缺点:程序必须占用连续的内存空间;一旦程序装入后不能移动
    • 动态地址映射
      • 映射时刻:动态地址重定位是在程序执行的过程中,每次访问内存之前,将要访问的程序转换为内存地址
      • 映射实施:一般来说这种转换是由专门的硬件机构来完成的
      • 映射方法:最简单的硬件机构是重定位寄存器;在地址重定位机构(一个基地址寄存器BR、一个程序地址寄存器VR、一个内存地址寄存器MR);计算方法MR = BR + VR
      • 具体过程:
        • 程序装入内存后,它所占用的内存区的首地址由系统送入基地址寄存器BR中
        • 在程序执行的过程中,若要访问内存,将访问的逻辑地址送入VR中
        • 地址转换机构把VR和BR中的内容相加,并将结果送入MR中,作为实际访问的地址
      • 优点:程序占用的内存空间是动态可变的,当程序从某个存储区移到另一个区域时,只需要修改相应的寄存器BR的内容即可;一个程序不一定要求占用一个连续的内存空间;可以部分地装入程序运行;便于多个进程共享同一个程序的代码
      • 缺点:需要硬件的支持;实现存储管理的软件算法较为复杂

1.2 主存分配与回收

主要完成内存的分配和回收工作,要求设计者选择和确定以下几种策略和结构:

  • 调入策略
  • 放置策略
  • 置换策略
  • 分配结构
  • 引起内存分配和回收的原因

1.3 存储保护

  • 存储保护:保证内存中的多道程序只能在给定的存储区域内活动并不产生干扰(防止地址越界、防止越权(对共享区有访问权))

  • 硬件支持:界地址寄存器/界限寄存器

    界地址寄存器是被广泛使用的一种存储保护技术

    机制比较简单,易于实现

  • 实现方法

    • 在CPU中设置一对下限寄存器和上限寄存器,存放用户作业在主存中的下限和上限地址
    • 也可将一个寄存器作为基址寄存器,另一寄存器作为限长寄存器(指示存储区长度)
    • 每当CPU要访问主存,硬件自动将被访问的主存地址与界限寄存器的内容进行比较,以判断是否越界
    • 如果未越界,则按此地址访问主存,否则将产生程序中断/越界中断(存储保护中断)
  • 图示

    image-20240526114621124

1.4 主存扩充/虚拟内存

  • 主存扩充/虚拟内存:为了满足程序员在编程时不受内存结构和容量限制的需求,操作系统为用户提供了一种可以与内存结构不同的存储器,这种存储器被称为虚拟存储器;虚拟存储器是由虚拟内存构成的,这些内存空间被称为虚存空间;虚存空间可以扩展到实际内存之外,因此被形象地称为“虚拟”空间
  • 基本原理
    • 将程序正在使用的部分内容放在内存,而暂时不用的部分放在外存,在需要时由系统调入内存,并将不需要(或暂不需要)的部分调出内存
    • 由于程序在执行时,在一段时间内一般仅使用它的程序的一部分(或一小部分),所以程序仅有部分装入内存完全能够正确执行
    • 要由操作系统结合相关硬件来完成上述工作,这样计算机好像为用户提供了一个容量远大于内存的存储器,这个存储器称为虚拟存储器

2. 存储器的层次结构

  • (从上到下,容量增大,速度减慢)
  • CPU
    • 寄存器
  • 主存
    • 高速缓存SRAM
  • 主存
    • 主存储器SDRAM
  • 主存
    • 磁盘

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

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

相关文章

vue3 部署后修改配置文件

前端项目部署之后,运维可以自行修改配置文件里的接口IP,达到无需再次打包就可以使用的效果 vue2如何修改请看vue 部署后修改配置文件(接口IP)_vue部署后修改配置文件-CSDN博客 使用前提: vite搭建的vue3项目 使用setu…

如何提高运放的输出电流驱动能力

复合放大器的稳定性考虑因素 辅助运算放大器通常放置在主运算放大器的反馈环路内部,如图 1(a) 所示。次级器件引入的相位滞后往往会侵蚀复合放大器的 相位裕度? m ,因此我们可能必须采取适当的频率补偿措施。 复合放大器的开环增益 ac 和噪声增益 1/β…

AI绘画整合包最新Stable Diffusion安装包+教程+模型+插件+动作来了(纯教学)

首先了解一下AI绘画工具,介绍一下什么是Stable Diffusion,模型的主要功能和作用 Stable Diffusion(简称SD),是一种先进的人工智能技术。这项技术的核心能力在于,它能够根据用户提供的文字描述,…

Apple Developer 个人开发者账号申请流程

Apple Developer 个人开发者账号申请流程 开发者账号类型功能介绍 公司、政府的需要邓白氏码比较复杂 分五个步骤进行 1、注册苹果账号apple id 2、开启双重认证 3、下载Apple Developer应用 4、到Apple Developer应用填写申请资料 5、绑定支付宝或者微信支付苹果年费688 一…

go语言方法之方法声明

从我们的理解来讲,一个对象其实也就是一个简单的赋值或者一个变量,在这个对象中会包含一些方法,而一个方法则是一个一个和特殊类型关联的函数。一个面向对象的程序会用方法来表达其属性和对应的操作,这样使用这个对象的用户就不需…

《精通Stable Diffusion AI绘画:基础技巧、实战案例与海量资源一站式学习》

随着人工智能技术的迅猛发展,AI绘画已经成为了一个炙手可热的话题。特别是在设计、艺术和创意领域,AI绘画工具的出现无疑为创作者们带来了更多的可能性和便利。《Stable Diffusion AI绘画从提示词到模型出图》这本书,就是一本深入解析Stable …

web自动化的断言和日志封装

断言 UI自动化常见的断言条件包括: 通过当前页面的URL地址通过当前页面的标题通过当前页面的提示文本信息通过当前页面的某些元素变化/显示 一句话总结:通过肉眼观察页面的变化检查。 【用代码模仿人的识别页面】 一般断言写一条就够了,如…

AI大模型实现德语口语练习

利用AI大模型实现德语口语练习的应用需要整合多种技术和资源,以确保学生能够获得全面、互动和有效的学习体验。以下是实现德语口语练习应用的详细流程和技术要点。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 实现流程 …

latex中复制到word里面之后如何转变成word自带的公式

详细步骤如下: 第一步,将latex中的公式复制到word里面,例如:$r_1^d$ 第二步,选中$$里面的部分,也就是去掉$$,选中剩余的部分,例如:r_1^d 第三步,word工具栏里…

【招聘】易基因科技诚聘销售总监 虚位以待

🚀 关于我们 易基因拥有一支充满活力的科研服务团队,致力于以“引领表观遗传学科学研究与临床应用”为愿景,依托高通量测序技术和云数据分析平台,为医疗机构、科研机构、企事业单位等提供以表观遗传学技术为核心的多组学科研服务…

【高阶数据结构(七)】B+树, 索引原理讲解

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:高阶数据结构专栏⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习更多数据结构   🔝🔝 高阶数据结构 1. 前言2. B树讲解…

3070ti和4060ti哪个好

GeForce RTX 3070 Ti和RTX 4060 Ti主要在显存类型、运行频率和性能表现等方面有所区别。具体分析如下: 显存类型 GeForce RTX 3070 Ti:搭载了8GB GDDR6X显存,显存速度为19Gbps,显存位宽为256 bit。GeForce RTX 4060 Ti&#xff1…

Apache Doris 基础 -- 数据表设计(数据模型)

Versions: 2.1 1、模型概览 本主题从逻辑角度介绍了Doris中的数据模型,以便您可以在不同的业务场景中更好地使用Doris。 基本概念 本文主要从逻辑的角度描述Doris的数据模型,旨在帮助用户在不同的场景更好地利用Doris。 在Doris中,数据在…

【STL】C++ list 基本使用

目录 一 list 常见构造 1 空容器构造函数(默认构造函数) 2 Fill 构造函数 3 Range 构造函数 4 拷贝构造函数 二 list迭代器 1 begin && end 2 rbegin && rend 三 list 容量操作 四 list 修改操作 1 assign 2 push_front &a…

【RuoYi】如何启动RuoYi项目

一、前言 最近,在做一个管理系统的项目,接触到了RuoYi这个前后端分离的框架,自己是第一次接触这个框架,所以刚开始有点好奇,在用该框架写了一些代码后。发现RuoYi这个框架做的真的好,它包含了权限管理和一些…

Petalinux 制作ZYNQ镜像文件流程

1概述 在Zynq-7000 SoC中搭建运行Linux,嵌入式软件栈。 处理器系统引导是一个分两个阶段的过程。第一个阶段是一个内部 BootROM,它存储 stage-0 的引导代码。BootROM 在 CPU 0 上执行,CPU 1 执行等待事件(WFE)指令。…

WordPress|子比主题美化-给首页左侧添加联系站长按钮

WordPress子比主题美化-给首页左侧添加联系站长按钮 5ccy.cn 我创创业-副业资源整合网-网络赚钱-网络创业-资源分享 http://5ccy.cn 效果如下: 功能介绍 联系站长图标的作用主要是为用户提供一种便捷的方式,以与网站的管理员或站长取得联系。这个图标一般放置在网…

cocos creator做圆形进度条

效果图: 我们在开发过程中经常要用到圆形进度条,例如技能CD 原文链接 之前写了一篇cocos2dx-lua_ProgressTimer创建扇形进度条,这里简单记录下在cocosCreator中如何制作。 具体方法 cocosCreator做起来比2dx还是要简单很多,首先给节点添加p…

Java 类加载机制解密一探到底

类加载是 Java 程序在运行期执行之前的重要环节,它决定着程序的运行效率和稳定性。本文将为您深入剖析 Java 类加载机制的整个生命周期,揭开神秘面纱,让您彻底掌握这一核心知识点。 一、类的生命周期概述 类的生命周期在Java中指的是从类被加…

大疆mic、罗德、西圣无线麦克风怎么选?大疆、西圣麦克风测评对比

如今是一个短视频飞速发展的时代,越来越多自媒体人通过短视频的方式来进行直播带货、生活Vlog、线上K歌等,记录下生活里种种美丽的瞬间。不过一个好的视频除了要有巧妙的构思和清晰稳定的拍摄外,干净的声音也是必不可少的部分。短视频归根结底…