首页 > 系统相关 >第三章 内存管理

第三章 内存管理

时间:2024-12-02 19:46:56浏览次数:6  
标签:第三章 管理 装入 物理地址 地址 内存 模块 链接

目录

3.1 内存管理概念

3.1.1 内存管理的基本概念

内存管理的功能

  • 内存空间的分配和回收
  • 地址转换
  • 内存空间的扩充
  • 存储保护

逻辑地址空间和物理地址空间

逻辑地址:程序给出的地址(相对地址)
物理地址:程序加载到的不同的存储单元(绝对地址)

  • 链接后形成逻辑地址空间
  • 装入后形成物理地址空间,装入程序通过将逻辑地址转换为物理地址,这个过程称为地址重定位
  • 操作系统通过内存管理部件(MMU)将进程使用的逻辑地址转换为物理地址。

程序的链接与装入

  • 编辑源代码文件
  • 编译:由编译程序将用户源代码编译成若干目标模块
  • 链接:由目标模块生成装入模块,链接后形成完整的逻辑地址
  • 装入:将装入模块装入内存,装入后形成物理地址
    assets/第三章 内存管理/file-20241202190754430.png

链接

  • 静态链接(装入前链接成一个完整装入模块)
    在程序运行之前,先将各目标模块及它们所需的库函数链接成一个完整的装入模块,以后不再拆开。将几个目标模块装配成一个装入模块时,需要解决两个问题:
    • ①修改相对地址,编译后的所有目标模块都是从0开始的相对地址,当链接成一个装入模块时要修改相对地址。
    • ②变换外部调用符号,将每个模块中所用的外部调用符号也都变换为相对地址。
  • 装入时动态链接(运行前边装入边链接)
    将用户源程序编译后所得到的一组目标模块,在装入内存时,采用边装入边链接的方式。其优点是便于修改和更新,便于实现对目标模块的共享。
  • 运行时动态链接(运行时需要目标模块才能装入并链接)
    在程序执行中需要某目标模块时,才对它进行链接。凡在程序执行中未用到的目标模块,都不会被调入内存和链接到装入模块上。其优点是能加快程序的装入过程,还可节省内存空间。

地址变换

  • 绝对装入(编译时产生绝对地址)
    • 在编译时,如果知道程序将放到内存中的哪个位置,编译程序将产生绝对地址的目标代码。装入程序按照装入模块中的地址,将程序和数据装入内存
    • 绝对装入只适用于单道程序环境
    • 程序中使用的绝对地址,可在编译或汇编时给出,也可由程序员直接赋予。而通常情况下在程序中采用的是符号地址,编译或汇编时再转换为绝对地址。
  • 静态重定位/可重定位装入(装入时将逻辑地址转换为物理地址)
    • 编译、链接后的装入模块的地址都是从0开始的指令中使用的地址、数据存放的地址都是相对于起始地址而言的逻辑地址。可根据内存的当前情况,将装入模块装入到内存的适当位置。装入时对地址进行“重定位”,将逻辑地址变换为物理地址(地址变换是在装入时一次完成的)
    • 重定位:装入时对目标程序中的指令和数据的修改过程
    • 特点
      • 是在一个作业装入内存时,必须分配其要求的全部内存空间,如果没有足够的内存,就不能装入该作业。
      • 作业一旦进入内存后,在运行期间就不能再移动,也不能再申请内存空间
  • 动态重定位/动态运行时装入(运行时将逻辑地址转换为物理地址,需设置定位寄存器)
    • 重定位寄存器:存放装入模块存放的起始位置
    • 特点
      • 可将程序分配到不连续的存储区中
      • 在程序运行前只需装入它的部分代码即可投入运行,然后在程序运行期间,根据需要动态申请分配内存;
      • 便于程序段的共享,可以向用户提供一个比存储空间大得多的地址空间。

内存共享

  • 并不是所有的进程内存空间都适合共享,只有那些只读的区域才可以共享
  • 可重入代码(纯代码),是一种允许多个进程同时访问但不允许被任何进程修改的代码
  • 但在实际执行时,也可以为每个进程配以局部数据区,将在执行中可能改变的部分复制到该数据区,这样,程序在执行时只需对该私有数据区中的内存进行修改,并不去改变共享的代码。

内存保护

内存保护可采取两种方法

  • 在CPU中设置一对上、下限寄存器,存放进程的上、下限地址。进程的指令要访问某个地址时,CPU检查是否越界
  • 采用重定位寄存器(又称基址寄存器)和界地址寄存器(又称限长寄存器)进行越界检查。重定位寄存器中存放的是进程的起始物理地址。界地址寄存器中存放的是进程的最大逻辑地址。
  • 加载重定位寄存器和界地址寄存器时必须使用特权指令只有操作系统内核才可以加载这两个存储器

进程的内存映像

assets/第三章 内存管理/file-20241202174957118.png

3.1.2 连续分配管理方式

标签:第三章,管理,装入,物理地址,地址,内存,模块,链接
From: https://www.cnblogs.com/zhujio/p/18582521

相关文章

  • testnet 资产管理系统 侦察|扫描|信息收集|网络空间搜索
    TestNet简介TestNet资产管理系统旨在提供全面、高效的互联网资产管理与监控服务,构建详细的资产信息库。该系统能够帮助企业安全团队或渗透测试人员对目标资产进行深入侦察和分析,提供攻击者视角的持续风险监测,协助用户实时掌握资产动态,识别并修复安全漏洞,从而有效收敛攻击面,提升......
  • python毕设 商场购物管理系统程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于商场购物管理系统的研究,现有研究主要以传统的管理模式和通用的商业管理系统为主。专门针对商场购物场景下,融合用户、商家、商品分......
  • 【Unity 插件】Visual State Machine 通过图形化的界面帮助开发者设计和管理复杂的状
    VisualStateMachine是一款用于Unity编辑器中的插件,旨在通过图形化的界面帮助开发者设计和管理复杂的状态机逻辑。它为Unity提供了一个直观的拖拽式状态机系统,可以用来控制角色行为、AI、动画、UI交互等各种状态转换。主要特点:图形化界面:使用拖拽式界面来创建和管理......
  • springboot网络教学管理系统-计算机毕业设计源码40879
    目 录摘要1绪论1.1选题背景与意义1.2开发现状1.3论文结构与章节安排2 开发环境及相关技术介绍2.1MySQL数据库2.2 Tomcat服务器2.3 Java语言2.4 SpringBoot框架介绍3 网络教学管理系统系统分析3.1可行性分析3.1.1技术可行性分析3.1.2 ......
  • 拥抱现代化信息技术:揭秘开工快线商砼ERP自动化生产管理系统在预拌混凝土生产管理中的
     预拌混凝土生产管理的难点主要包括原材料质量控制、生产调度、物流配送、成本控制、客户服务等方面。利用现代化信息技术,特别是如惠邦科技的开工快线商砼自动化生产管理系统这样的专业软件,可以有效地解决这些难点。以下是如何利用现代化信息技术进行改进的分析:1.原材料质......
  • 隧道工程管理系统落地实施难点与应对策略分析
    随着隧道工程规模的日益扩大,管理的复杂性和精细化要求越来越高。传统的管理手段逐渐暴露出效率低下、数据不透明等问题。隧道工程管理系统应运而生,但在实际实施过程中仍面临不少挑战。如何克服这些难点,真正发挥管理系统的价值?蓝燕云作为工程管理领域的数字化先锋,为此提供了全面......
  • 餐饮行业的效率瓶颈:如何在高压环境中保持快速响应与精准管理?
    餐饮行业一直是一个高节奏、高压力的行业。无论是繁忙的午晚餐高峰时段,还是节假日和促销活动的特殊情况,如何在确保服务质量的同时,提升运营效率,成为许多餐饮企业面临的难题。餐饮管理涉及到多个环节,从订单处理、食材采购、厨房备餐到出餐服务,各部门间的协调至关重要。可是,很多餐饮......
  • 信息资源管理综合题之“信息化建设的部门及岗位”
    一、QW公司正在进行信息化建设,拟建立信息化组织机构。要求:为QW公司信息化组织结构设置部门和具体岗位 二、答案部门及岗位系统研发与管理部:信息部门最基本的组织部分,其主要岗位包括【系统分析和设计人员】、【程序员和测试人员】系统运行维护与管理部:信息部门正常运行的保......
  • 有哪些好用的项目管理工具?
    在项目管理的过程中,合理选择工具是确保项目顺利进行和达成目标的关键。有效的项目管理不仅能提升工作效率,还能减少错误与延误。一、项目管理6大工具SWOT分析法:发现机会与挑战SWOT分析是一种战略分析工具,通过识别项目的优势、劣势、机会与威胁,帮助项目团队提前识别潜在风险和......
  • C#实战|人员管理系统[19]:将在UI层输入的信息封装对象并提交到数据库
    哈喽,你好啊,我是雷工!当添加人员信息的未录入验证,系统中是否已存在验证这些验证通过后,需要将数据存入数据库中。按照分层架构的开发方法,首先在数据访问类中编写好数据访问方法,以下为练习笔记。01 效果演示①确认添加当填写完人员基本信息,点......