10 存储器管理之程序的装入和链接
先导
编辑得到可执行文件的步骤:编辑、编译、链接、装入
编辑——就是写代码
编译——从源文件编程姆目标代码(我觉得就是形成exe前半部分)
链接——链接系统库的目标文件(形成exe的后半部分)
装入——装入模块,再由OS装入内存,形成进程
逻辑地址——CPU执行指令时生成的地址
物理地址——实际的物理内存单元
程序的装入
绝对装入
逻辑地址就是物理地址
可重定位装入
逻辑地址+相对偏移量=物理地址
动态运行时安装
进程开始执行时,未全部装入内存,而是部分装入,运行时,需要哪个模块再装入哪个模块.
程序装入内存后,并不立即将相对地址转换为绝对地址,地址转换推迟到程序执行时才进行,即动态重定位.
程序的链接
静态链接
在程序运行前,先将各目标模块及它们所需的库函数,链接成一个完整的装入模块,以后不再拆开。(运行前,需要什么就装什么)
装入时动态链接
源程序编译得到的目标模块是在装入内存时, 边装入边链接的,即在装入一个目标模块时, 若发现一个外部模块调用事件,装入程序去找出相应的外部目标模块,并将它装入内存,同时修改相对地址(装入时,需要什么,装入什么)
运行时动态链接
运行时动态链接是将某些模块的链接推迟到执行时.即,执行时发现调用的模块未 被装入,由OS找到该模块并装入,并将其链接到调用者模块上。(运行时........)

浙公网安备 33010602011771号