阐述静态库和动态库的概念,论述它们各自的优缺点。

admin2016-05-14  35

问题 阐述静态库和动态库的概念,论述它们各自的优缺点。

选项

答案对于静态库,在编译、连接程序时,编译程序将用户程序要调用的库函数全部连接到用户的程序中,组合成一个完整的不可分割的执行代码。在运行时,用户程序就与原库脱离了联系。如果有若干的应用程序要调用相同的库函数,那么各个应用分别都要把库中有关的函数连接到自己的程序库中,这些冗余的代码极大地增加了程序的长度,这要占用较多的磁盘存储空间,这些应用同时运用时也要占用较大的内存空间。 动态库的原理类似于共享代码段,当用户在编译行中指定库时,编译程序并不将动态库中的函数连接到用户的程序中,而只建立了对动态库的引用连接,因此所生成的目标代码长度要比使用静态库时小得多。在实际装入运行时,系统根据用户程序中的引用连接信息,再把动态库从盘中调入内存,以使用户程序可以直接调用库函数。 当有若干程序要使用同一个动态库时,系统只要在内存中驻留该动态库的一个副本,各个调用程序共享同一个库的代码,这样大大减小了系统中执行代码的总长度,也使更多的用户程序可以并发地运行。 从另一方面讲,如果系统中只有一个程序要使用库,那么采用动态库的方式比起采用静态库的方式非但不能减少执行代码的总长度,反而可能增加其长度。因为在连接静态库时,系统只把用户要调用的库函数连接到程序中,而在连接动态库时,尽管所生成的目标代码中不包含库中的函数代码,但在执行时系统却要把整个动态库都调入内存(在虚拟存储管理系统中只要部分调入即可),而不管是否要用到库中的全部函数。

解析
转载请注明原文地址:https://kaotiyun.com/show/p4Nx777K
本试题收录于: 操作系统题库理工类分类
0

最新回复(0)