目标模块如何连接成装入模块?
静态链接:指程序在装入之前,必须完成
3、3 程序装入技术
可执行程序的生成步骤:
编辑源程序----编译-----目标模块、库函数----链接----装入模块---装入内存执行
可执行程序的装入:
如何装入待执行的程序及其所需的数据?
何时将程序的逻辑地址转换为物理地址?
3种装入方式:绝对装入、重定位装入和运行装入
绝对装入:程序执行之前,按照程序的逻辑地址,将程序和数据装入内存指定的地方。
重定位装入:
静态重定位技术:地址映射在程序装入时运行,以后不再更改程序地址。
运行时动态装入:程序的地址不是在装入时运行,而是在程序运行时动态进行。
可执行程序的链接形成:
链接成一个装入模块,将其中的存储引用全部转换为相对地址跳转语句。
动态链接:指不用事先链接所有目标模块形成一个完备的装入模块,而是生成一个含有未被连接的外部模块引用的装入模块,这些外部模块可以在装入时链接,或运行时链接。
装入时动态链接:
运行时动态链接:
3、4简单存储管理技术
程序在内存中如何组织?
连续存储:需要内存中的一块连续的、足够大的分区。
非连续存储:允许进程的程序和数据分别装在内存的不同分区中。
常用非连续存储技术:分页存储技术、分段存储技术及其结合。