《操作系统》内存管理_学前补充知识
内存管理学前补充知识
什么是内存,有什么作用
手机有内存,电脑中也有内存条。内存的作用就是存放数据。程序执行前需要先放到内存中,才能被CPU处理,这是为了缓和CPU和硬盘之间的速度矛盾。多道程序环境下,系统内有多个程序并发运行,也就是有多个程序的数据需要同时放到内存中,如何区分各个程序的数据是放在什么地方呢?方案:给内存的存储单元编地址.

计算机给内存的存储单元编址有两种方式,一种是按字节,一种是按字。1字节=1B=8bit。如果是按字编址的话,字长和计算机有关,要看题目的要求。一个地址可以对应一个存储单元。
数据的数量单位

通过内存的大小,可以推算出,二进制位数是多少。
指令的工作原理
一段程序,通过编译,变成指令序列。指令有操作码和地址码。指令的工作基于“地址”,每个地址对应一个数据的存储单元。
程序编译链接后变成exe文件(装入模块),装入模块的地址是逻辑地址,装入到内存中的实际物理地址(绝对地址)之中。然后在执行这些指令。
3种装入的方式(逻辑地址—>物理地址)
绝对装入
这种方式,换个电脑就不能执行了。灵活性低。
静态重定位
装入的起始物理地址重定位,比如+100。一个作业装入内存的时候,必须分配全部的内存空间而且还是连续的。在运行期间不能进行移动。指令已经写死了。
动态重定位
增加一个重定位寄存器,存放装入模块存放的起始地址。将逻辑地址和存放在重定位寄存器的起始地址进行相加,加出来的结果是最终的地址。

从写程序到程序的运行
链接的三种方式

运行时候动态链接,灵活性高,提升了内存的利用率。
本文作者:Franletus
本文链接:https://www.cnblogs.com/yidianxingyuan/p/18280603
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步