操作系统_存储器管理_程序的装入和链接
程序的装入和链接
1,基本过程
1,编译:.C/.CPP/.ASM文件转换为.OBJ文件;
2,链接:.OBJ文件加上.LIB文件链接形成装入模块;
3,装入:装入模块装入物理内存后即可运行;
2,程序的装入
1)绝对装入方式
定义:编程时直接确定内存位置;(每次只能运行一个程序,否则就会因为地址不同,程序运行出错)
特点:不灵活,不支持多道程序设计(多道程序设计是在计算机内存中同时存放几道相互独立的程序,使它们在管理程序控制之下,相互穿插的运行);
2)可重定位装入方式
首先引入虚拟技术:
应用虚拟技术实现存储管理
逻辑地址(相对地址,虛地址)
用户程序经过汇编或编译后形成目标代码;
目标代码采用相对地址形式:
- 首地址为0;
- 其余指令中地址以相对于首地址的偏移为地址;
不能用逻辑地址在内存中读取信息
物理地址(绝对地址,实地址)
内存中存储单元的地址,可直接寻址
静态地址重定位
定义:编程时使用逻辑地址,装入时进行地址重定位,运行时使用物理地址;
特点:灵活,支持多道程序设计;
动态地址重定位
定义:编程时使用逻辑地址,运行时进行地址重定位,运行时使用物理地址;
特点:灵活,支持多道程序设计;
3,程序的链接
静态链接
编程时,链接所有模块;
装入时动态链接
装入时,链接所有模块;
运行时动态链接
运行时,根据需要链接模块;