第三章 内存管理 一、内存的基础知识

这篇具有很好参考价值的文章主要介绍了第三章 内存管理 一、内存的基础知识。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、什么是内存

二、有何作用 

三、常用数量单位

四、指令的工作原理

五、装入方式

1、绝对装入

2、可重定位装入(静态重定位)

3、动态运行时装入(动态重定位)

六、从写程序到程序运行

七、链接的三种方式

1、静态链接

2、装入时动态链接

3、运行时动态链接

八、总结


一、什么是内存

  1. 内存可存放数据,程序执行前需要先放到内存中才能被CPU处理。
  2. 内存中也有一个一个的“小房间”,每个小房间就是一个“存储单元”。
  3. 如果计算机“按字节编址”则每个存储单元大小为1字节,即1B,即8个二进制位。
  4. 如果字长为16位的计算机“按字编址”,则每个存储单元大小为1个字;每个字的大小为16个二进制位。

二、有何作用 

缓和CPU与硬盘之间的速度矛盾。

三、常用数量单位

第三章 内存管理 一、内存的基础知识,操作系统学习,java,开发语言

四、指令的工作原理

指令是计算机执行某个特定任务的基本操作,也是计算机进行数据处理和控制的基本单位。指令的工作原理可以简单地概括为以下四步:

  1. 读取指令:计算机从内存中读取指令,并将指令存储到处理器中。

  2. 解析指令:计算机解析指令,确定需要执行的操作,并确定需要的数据和操作符。

  3. 执行指令:计算机执行指令所需的操作,并将结果存储到指定的位置。

  4. 更新程序计数器:计算机更新程序计数器中的指令地址,以便读取下一条指令。

简单来说,指令的工作原理就是根据特定的操作码和操作数,让计算机进行相应的运算和控制操作。在执行指令的过程中,计算机需要根据指令中给定的地址,从内存中读取数据,将其存储到寄存器中,并根据指令中给定的操作码进行相应的计算和输出。指令的工作原理包括多个步骤,但每个步骤都是计算机系统中必不可少的一部分。

五、装入方式

1、绝对装入

在编译时,如果知道程序将放到内存中的哪个位置,编译程序将产生绝对地址的目标代码

装入程序按照装入模块中的地址,将程序和数据装入内存。

2、可重定位装入(静态重定位)

静态重定位是指在程序编译或链接的过程中,将程序中的逻辑地址转换为物理地址,使程序能够在内存中正确地运行的过程。在静态重定位过程中,编译器或链接器将程序的逻辑地址转换成物理地址,并将转换后的地址写入程序中需要访问的内存地址中。

静态重定位通常在程序装载时进行,重定位的过程主要包括以下几个步骤:

  1. 编译器或链接器为程序中的每个变量、函数和常量分配逻辑地址。

  2. 在程序被装载到内存之前,重定位程序会将程序中的逻辑地址转换成物理地址。

  3. 重定位程序会在程序中插入符号表,用于记录程序中的符号地址和信息。

  4. 如果程序在运行过程中需要地址的修改,静态重定位就会被触发,重定位程序会将需要修改的地址重新计算并写入正确的物理地址。

静态重定位是计算机系统中重要的概念,它使得程序能够在内存中正确地运行,提高了计算机的可移植性和灵活性。

注意:静态重定位的特点是在一个作业装入内存时,必须分配其要求的全部内存空间,如果没有足够的内存,就不能装入该作业。作业一旦进入内存后,在运行期间就不能再移动,也不能再申请内存空间。

3、动态运行时装入(动态重定位)

动态重定位是指在程序运行时,将程序中的逻辑地址转换为物理地址的过程。

和静态重定位不同,动态重定位是在程序运行时根据实际情况进行地址转换的。

在动态重定位过程中,操作系统或库函数会在程序被装载进内存之后,根据程序运行时的情况动态地对程序中的地址进行转换。动态重定位通常发生在以下情况下:

  1. 程序中使用了动态链接库或共享库,需要在运行时进行地址转换。

  2. 程序在运行过程中需要动态分配内存,需要动态地调整程序中的地址。

动态重定位通常通过虚拟内存机制来实现,操作系统会将程序中的逻辑地址映射到物理地址上,当程序需要访问某个地址时,操作系统会根据映射关系将逻辑地址转换为物理地址。动态重定位使得程序能够更加灵活地运行,能够适应不同的运行环境和硬件平台。

注意:采用动态重定位时允许程序在内存中发生移动。

六、从写程序到程序运行

  1. 编译:由编译程序将用户源代码编译成若干个目标模块。(编译就是把高级语言翻译为机器语言)
  2. 链接:由链接程序将编译后形成的一组目标模块,以及所需库函数链接在一起,形成一个完整的装入模块。
  3. 装入(装载):由装入程序将装入模块装入内存运行。
     

七、链接的三种方式

1、静态链接

静态链接:在程序运行之前,先将各目标模块及它们所需的库函数连接成一个完整的可执行文件(装入模块),之后不再拆开。

2、装入时动态链接

将各目标模块装入内存时,边装入边链接的链接方式。

3、运行时动态链接

在程序执行中需要该目标模块时,才对它进行链接。其优点是便于修改和更新,便于实现对目标模块的共享。

八、总结

第三章 内存管理 一、内存的基础知识,操作系统学习,java,开发语言文章来源地址https://www.toymoban.com/news/detail-725872.html

到了这里,关于第三章 内存管理 一、内存的基础知识的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JavaWed第三章:JavaScript的全面知识

    目录 前言 一.JavaScript的简介 💖概念 💖学习内容 二.JavaScript的引入方式 💖内部脚本 💖外部脚本 三.JavaScript的基础语法 💖语法的书写 💖变量  ✨ 全局变量       ✨局部变量 ✨常量  💖JavaScript的数据类型 💖JavaScript运算符 ✨运算符的讲解 ✨类型转换 💖流程控制语句

    2024年02月11日
    浏览(33)
  • JavaWeb第三章:JavaScript的全面知识

    目录 前言 一.JavaScript的简介 💖概念 💖学习内容 二.JavaScript的引入方式 💖内部脚本 💖外部脚本 三.JavaScript的基础语法 💖语法的书写 💖变量  ✨ 全局变量       ✨局部变量 ✨常量  💖JavaScript的数据类型 💖JavaScript运算符 ✨运算符的讲解 ✨类型转换 💖流程控制语句

    2024年02月16日
    浏览(28)
  • 第三章-OpenCV基础-4-掩模

    掩模,又称为掩膜,掩码,模板。图像掩模是指,用特定的图像/图形/物体遮挡代处理的图像(全部或局部),从而控制图像处理的区域,在数字图像处理中,掩模就是一个指定的数组,毕竟,图像也是数组。 左边图为原图,中间图为掩模(白色区域为透明区域,黑色区域为黑色遮挡区域),经过控

    2024年02月15日
    浏览(30)
  • 【概率论与数理统计】第三章知识点复习与习题

    我们研究一个多维的东西,往往先从较低的维度比如说二维作为主要的研究对象,一个是因为维度低会比较简单,易于理解;另一个则是考试中低维的问题往往更加常见 定义上其实很简单,其实就是之前的一维随机变量变两个,然后用向量来表示,比如 (X,Y) 当然和一维的情

    2024年02月05日
    浏览(23)
  • 信息论基础第三章阅读笔记

    在信息论中,与大数定律类似的是渐进均分性(AEP),它是弱大数定律的直接结果。 大数定理针对独立同分布(i.i.d.)随机变量 ……………… 因此,当n很大时,一个观察序列出现的概率 p ( X 1 , X 2 , . . . , X n ) p(X_1,X_2,...,X_n) p ( X 1 ​ , X 2 ​ , ... , X n ​ ) 近似等于 2 − n H 2^{-nH}

    2024年02月07日
    浏览(28)
  • C#使用MongoDB-第三章 索引的管理

    索引管理接口: IMongoIndexManagerTDocument 要进行集合索引的管理,需要获得 IMongoIndexManagerTDocument 实例对象,这个实例对象可以从集合对象的 Indexes 属性获取。 IMongoIndexManagerTDocument Indexes : IMongoCollectionTDocument 的实例方法,获取集合的索引管理对象。 索引的配置模型 CreateIndex

    2024年01月22日
    浏览(46)
  • ChatGPT技术原理 第三章:深度学习基础

    目录 3.1 神经网络基础 3.2前向传播算法 3.3反向传播算法 3.4 优化器

    2024年02月02日
    浏览(29)
  • 第三章 OpenGL ES 基础-基础-GLSL渲染纹理

    第一章 OpenGL ES 基础-屏幕、纹理、顶点坐标 第二章 OpenGL ES 基础-GLSL语法简单总结 第三章 OpenGL ES 基础-GLSL渲染纹理 第四章 OpenGL ES 基础-位移、缩放、旋转原理 第五章 OpenGL ES 基础-透视投影矩阵与正交投影矩阵 第六章 OpenGL ES 基础-FBO、VBO理解与运用 第七章 OpenGL ES 基础-输入

    2024年03月18日
    浏览(29)
  • Python基础练习题--第三章 控制结构

    目录 1025:【例3.1】购买笔记本 1026:【例3.2】判断奇偶 1027:【例3.3】区间测速 1028:【例3.4】飞船速度 1029:练3.1最大优惠价 1030:练3.2判断闰年 1031:练3.3最适宜运动心率2 1032:【例3.5】计程票 1033:【例3.6】BMI健康信息 1034:练3.4  区间测速2 1035:练3.5  购买笔记本2 【题

    2024年02月07日
    浏览(36)
  • Flutter实战·第二版-第三章 基础组件笔记

    第三章:基础组件 3.1文本及样式 3.1.1 Text 3.1.2 TextStyle 3.1.3 TextSpan 3.1.4 DefaultTextStyle 3.1.5字体 先将文字资源打包到应用,然后再pubspec.yaml中指定位置 根目录/assets(fonts) 使用字体 Package中的字体 lib/fonts/Raleway-Medium.ttf 3.2按钮 3.2.1 ElevatedButton 3.2.2 TextButton 3.2.3 OutlinedButton 3.2.4 IconB

    2024年02月12日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包