3.1.2存储器管理的主要功能 ●1.主存空间的分配和回收 ●2.地址转换 ●3.主存空间的共享与保护 °4.主存空间的扩充
3.1.2 存储器管理的主要功能 ⚫ 1.主存空间的分配和回收 ⚫ 2.地址转换 ⚫ 3.主存空间的共享与保护 ⚫ 4.主存空间的扩充
3.1.3程序的装入与链接 ●1.源程序的执行过程 ●2.程序的链接 ●3.程序的装入
3.1.3 程序的装入与链接 ⚫ 1.源程序的执行过程 ⚫ 2.程序的链接 ⚫ 3.程序的装入
1.源程序的执行过程 ●通常要经过编译、链接和装入几个步骤,其控 制示意如图3-所示 (1)编译。由编译程序将用户源代码编译成 若干个目标模块。 (2)链接。由链接程序将编译后形成的目杉 模块以及它们所需要的库函数,链接在一起, 形成一个装入模块。 (3)装入。由装入程序将装入模块装入主存 的过程
1.源程序的执行过程 ⚫ 通常要经过编译、链接和装入几个步骤,其控 制示意如图3-1所示。 ⚫ (1)编译。由编译程序将用户源代码编译成 若干个目标模块。 ⚫ (2)链接。由链接程序将编译后形成的目标 模块以及它们所需要的库函数,链接在一起, 形成一个装入模块。 ⚫ (3)装入。由装入程序将装入模块装入主存 的过程
2.程序的链接 ●链接程序的功能是将经过编译或汇编后所得到的 组目标模块以及它们所需要的库函数,装配成 一个完整的装入模块 ●实现链接的方法有三种 静态链接:事先进行链接,以后不再拆开的链接方式 装入时动态链接:用户源程序经编译后所得到的目标 模块,是在装入主存时,边装入边链接的 运行时动态链接:可将某些目标模块的链接,推迟到 执行时才进行
2.程序的链接 ⚫ 链接程序的功能是将经过编译或汇编后所得到的 一组目标模块以及它们所需要的库函数,装配成 一个完整的装入模块。 ⚫ 实现链接的方法有三种 – 静态链接:事先进行链接,以后不再拆开的链接方式 – 装入时动态链接:用户源程序经编译后所得到的目标 模块,是在装入主存时,边装入边链接的。 – 运行时动态链接:可将某些目标模块的链接,推迟到 执行时才进行
3.程序的装入 ●程序的装入就是把程序装入内存空间 ●采用三种方式 (1)绝对装入方式:是由装入程序根据装入模块中 的地址,将程序和数据装入主存。 2)可重定位方式:是由装入程序根据主存当前的 实际使用情况,将装入模块装入到主存适当的地方 (3)动态运行时装入方式:动态运行时的装入程序 在把装入模块装入主存后,并不立即把裝入模块中的 相对地址转换为绝对地址,而是把这种地址转换推迟 到程序要真正执行时才进行
3.程序的装入 ⚫ 程序的装入就是把程序装入内存空间。 ⚫ 采用三种方式 – (1)绝对装入方式:是由装入程序根据装入模块中 的地址,将程序和数据装入主存。 – (2)可重定位方式 :是由装入程序根据主存当前的 实际使用情况,将装入模块装入到主存适当的地方。 – (3)动态运行时装入方式:动态运行时的装入程序, 在把装入模块装入主存后,并不立即把装入模块中的 相对地址转换为绝对地址,而是把这种地址转换推迟 到程序要真正执行时才进行