*** 作系统中程序的链接:装入时动态链接、运行时动态链接和静态链接都是什么意思?有什么区别?

 *** 作系统中程序的链接:装入时动态链接、运行时动态链接和静态链接都是什么意思?有什么区别?,第1张

静态链接是在生成可执行程序的时候就把库中的内容加入到程序中。\r\n\r\n载入时动态链接是在将功能模块读入内存时把动态库中调用到的相关模块的内容载入内存。\r\n运行时动态链接是在执行程序调用到模块内容时再将动态库中的相应模块载入到内存。\r\n\r\n这里有两个时间问题。一是载入时间,二是执行时间。\r\n静态链接由于是在一开始就把所有模块都加载进入内存,所以如果模块很多的话效率就会被大大拉低。\r\n载入时动态链接是分别载入,当把一个模块载入内存时检查有调用关系的模块载入,比静态链接节省了许多开销。\r\n运行时动态链接则是把当前模块调用的模块推迟到调用的时候再载入。\r\n三者之间的关系就像是机q,冲锋q和手q\r\n机q在一开始就把所有子d装好,开q的时候很快,但也很笨重。\r\n冲锋q则是将子d分d夹存好,轻便了许多,但是会有一段装填时间。\r\n手q就更加轻便了,但是d夹容量更小,装填的频率又变高了。

编辑,类似于文本编辑,将程序代码输入进去,可以修改,增加,删除

编译,将程序代码按一定规则变换成机器可以识别的可执行代码序列,

连接,将编译的代码序列与必须的启动代码,用到的库文件按规则组合连接成可执行程序

链接程序把所有对象文件中的机器码组合在一起,并解析它们之间的交叉引用。它还集成了对象模块所使用的库函数的代码。这是链接程序的一种简化表示,因为这里假定在可执行模块中,模块之间的所有链接都是静态建立的。实际上有些链接是动态的,即这些链接是在程序执行时建立的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11055985.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存