10 存储器管理之程序的装入和链接

先导

编辑得到可执行文件的步骤:编辑、编译、链接、装入

编辑——就是写代码

编译——从源文件编程姆目标代码(我觉得就是形成exe前半部分)

链接——链接系统库的目标文件(形成exe的后半部分)

装入——装入模块,再由OS装入内存,形成进程

 

逻辑地址——CPU执行指令时生成的地址

物理地址——实际的物理内存单元

程序的装入

绝对装入

逻辑地址就是物理地址

可重定位装入

逻辑地址+相对偏移量=物理地址

动态运行时安装

进程开始执行时,未全部装入内存,而是部分装入,运行时,需要哪个模块再装入哪个模块. 

程序装入内存后,并不立即将相对地址转换为绝对地址,地址转换推迟到程序执行时才进行,即动态重定位.

程序的链接

静态链接

在程序运行前,先将各目标模块及它们所需的库函数,链接成一个完整的装入模块,以后不再拆开。(运行前,需要什么就装什么)

装入时动态链接

源程序编译得到的目标模块是在装入内存时, 边装入边链接的,即在装入一个目标模块时, 若发现一个外部模块调用事件,装入程序去找出相应的外部目标模块,并将它装入内存,同时修改相对地址(装入时,需要什么,装入什么)

运行时动态链接

运行时动态链接是将某些模块的链接推迟到执行时.即,执行时发现调用的模块未 被装入,由OS找到该模块并装入,并将其链接到调用者模块上。(运行时........)

 

posted @ 2021-04-06 16:44  南理工学渣  阅读(333)  评论(0)    收藏  举报