内存的基础知识

内存的基础知识

image


一、存储单元

image

二、指令的工作原理

重点:区分物理地址和逻辑地址

image

三、从写程序到程序运行

image

四、链接的三种方式

(一)静态链接

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

(二)装入时动态链接

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

(三)运行时动态链接

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

五、装入的三种方式

(一)绝对装入

重点:编译时就将逻辑地址转换成物理地址,只适用于单道程序环境

(二)可重定位装入(静态重定位)

重点:编译和链接后,装入时再将逻辑地址转换为物理地址

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

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

重点:编译、链接和装入后,需要执行时才将逻辑地址转换为物理地址

特点:

  • 需要一个重定位寄存器的支持(存放装入模块存放的起始位置
  • 可将程序分配到不连续的存储区中
  • 在程序运行前只需装入它的部分代码即可投入运行,然后在程序运行期间,根据需要动态申请分配内存
  • 便于程序段的共享,可以向用户提供一个比存储空间大得多的地址空间
  • 可将允许程序在内存中发生移动
posted @   Wind_730  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示