操作系统—内存的基本知识

Posted 王同学要努力

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统—内存的基本知识相关的知识,希望对你有一定的参考价值。

【操作系统】—内存的基本知识

一、内存

内存是用于存放数据的硬件,程序执行前需要放到内存中才能被CPU处理

二、几个常用的数量单位

三、逻辑地址和物理地址

宿舍四个人一起去旅行,四个人的学号尾号分别是0、1、2、3

住酒店时服务员给你们安排了4个房号相邻的房间,四个人按学号依次递增次序入住房间,比如0、1、2、3分别入住了5、6、7、8号房间

四个人的编号0、1、2、3、其实是一个相对位置。而各自入住的房间号是一个绝对位置

只要知道0号同学住的房间号为N房间,那么M号同学的房号一定是N+M

也就是说,只要知道各个同学的相对位置和起始房间号,就一定可以算出所有同学的绝对位置

四、从写程序到程序运行

编译:编译就是把高级语言翻译为机器语言

链接:由链接程序将编译后形成的一组目标模块,以及所需函数链接在一起,形成一个完整的装入模块

装入:由装入程序将装入模块装入内存运行

五、装入的三种方式—绝对装入

绝对装入:在编译时,如果知道程序将放到内存中的哪个位置,编译程序将产生绝对地址的目标代码。装入程序按照装入模块中的地址,将程序和数据装入内存。

绝对装入只适用于单道程序环境

六、装入的三种方式—静态重定位

静态重定位:又叫可重定位装入。编译、链接后的装入模块都是从0开始的,指令中使用的地址,数据存放的地址都是相对于起始地址而言的逻辑地址,可根据内存的当前情况,将装入模块装入到合适的位置,装入时对地址进行重定位,讲逻辑地址变换为物理地址(地址变换是在装入时一次完成的)

七、装入的三种方式—动态重定位

动态重定位:又称动态运行时装入,编译、链接后的装入模块的地址都是从0开始的,装入程序把装入模块装入内存后,并不会立即把逻辑地址转换为物理地址,而是把地址转换推迟到程序真正要执行时才进行,因此装入内存后所有的地址依然是逻辑地址,这种方式需要一个重定位寄存器的支持。

八、链接的三种方式

以上是关于操作系统—内存的基本知识的主要内容,如果未能解决你的问题,请参考以下文章

操作系统基本组成--内存管理

(王道408考研操作系统)第三章内存管理-第一节2:内存管理的基本概念

JVM的基本结构和JVM内存结构

操作系统核心知识点整理--内存篇

操作系统虚拟内存的基本概念(内存空间的扩充)

操作系统虚拟内存的基本概念(内存空间的扩充)