内存的基础知识
一、存储单元
二、指令的工作原理
重点:区分物理地址和逻辑地址
三、从写程序到程序运行
四、链接的三种方式
(一)静态链接
在程序运行之前,先将各目标模块及它们所需的库函数连接成一个完整的可执行文件(装入模块),之后不再拆开
(二)装入时动态链接
将各目标模块装入内存时,边装入边链接的链接方式
(三)运行时动态链接
在程序执行中需要该目标模块时,才对它进行链接。其优点是便于修改和更新,便于实现对目标模块的共享
五、装入的三种方式
(一)绝对装入
重点:编译时就将逻辑地址转换成物理地址,只适用于单道程序环境
(二)可重定位装入(静态重定位)
重点:编译和链接后,装入时再将逻辑地址转换为物理地址
特点:在一个作业装入内存时,必须分配其要求的全部内存空间,如果没有足够的内存,就不能装入该作业。作业一旦进入内存后,在运行期间就不能再移动,也不能再申请内存空间
(三)动态运行时装入(动态重定位)
重点:编译、链接和装入后,需要执行时才将逻辑地址转换为物理地址
特点:
- 需要一个重定位寄存器的支持(存放装入模块存放的起始位置)
- 可将程序分配到不连续的存储区中
- 在程序运行前只需装入它的部分代码即可投入运行,然后在程序运行期间,根据需要动态申请分配内存
- 便于程序段的共享,可以向用户提供一个比存储空间大得多的地址空间
- 可将允许程序在内存中发生移动