操作系统—内存的基本知识
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开始的,装入程序把装入模块装入内存后,并不会立即把逻辑地址转换为物理地址,而是把地址转换推迟到程序真正要执行时才进行,因此装入内存后所有的地址依然是逻辑地址,这种方式需要一个重定位寄存器的支持。
八、链接的三种方式
以上是关于操作系统—内存的基本知识的主要内容,如果未能解决你的问题,请参考以下文章