什么是链接:把写好的目标文件链接在一起,将相对地址改为物理地址,并修改跳转的语句
链接方式:
静态链接:在编译之后就将所有的obj文件链接在一起,形成一个装入模块,这种链接方式在装入时就不用进行链接,执行速度比较快,但是由于只有exe文件,修改时还要拆开,不方便
装入时动态链接:编译之后不直接进行链接,只形成obj文件,在装入时才进行链接工作(检测需要哪些我文件),这时链接有利于共享,并且便于对obj文件进行修改
运行时动态链接:编译之后不直接进行链接,只形成obj文件,在运行时需要哪些文件就链接哪些文件,这时链接更灵活,但是载入时要进行链接
注意:实际上静态链接的执行速度只比动态链接快15%左右,所以一般使用动态链接
什么是装入:
绝对装入:程序的逻辑地址就是物理地址,也就是以0开始,所以只适用于单道批(有的书上定义为逻辑地址是自己写的,不一定是0,总之就是在装入时是按照程序员写的逻辑地址决定物理位置)
静态可重定位:程序的物理地址是由x加上程序的逻辑地址决定的,而x则由装入时内存的空间状态以及相关算法决定的
动态可重定位:在PCB中记录下x的值,程序在装入后仍然在内存中移动,只需要修改pcb中的值,在地址转换时,把x值放入可充定位寄存器,进行地址的转换