[发明专利]延缓装载共享库的系统和方法无效
申请号: | 94102158.0 | 申请日: | 1994-02-24 |
公开(公告)号: | CN1042862C | 公开(公告)日: | 1999-04-07 |
发明(设计)人: | 詹姆森·文德尔·阿兰德;鲍尔·普拉西多·吉安格拉;拉文德拉纳斯·卡辛纳斯·马尼昆德拉姆;多纳尔德·罗伯特·帕吉特;詹姆斯·迈克尔·弗兰 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F9/06 | 分类号: | G06F9/06;G06F15/00 |
代理公司: | 中国国际贸易促进委员会专利商标事务所 | 代理人: | 丰迅 |
地址: | 美国*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 延缓 装载 共享 系统 方法 | ||
本专利申请涉及名为“处理机间通信的方法和工具”的申请,该申请的律师案卷号为AT993-024而申请系列号为XX/XXXXXX。它还涉及到“微核上多种并存操作系统特性的系统”,其律师案卷号为AT993-026而申请系列号为XX/XXXXX。这些申请都已转让给本发明的受让人。
本发明涉及到信息处理系统,特别涉及到操作系统。本发明尤其涉及到通过操作系统控制可执行任务装载的系统。
计算机操作系统用于控制计算机系统构件的运行。操作系统任务之一是装载其他的程序,以便执行之。通常这些其他程序是应用程序,但也可能包括操作系统的成员程序。装载程序时,先在程序存储媒体上找到被请示装载的程序,该媒体通常是一个硬盘文件,然后,把该程序写入内存并把它准备好,等待处理器执行。
程序存储器中的程序是以可执行格式存储的,这是把程序源码编译或汇编的结果。可执行格式中有一个装载程序能识别的特定格式,其中包括处理可执行程序所需信息。装载程序完成的一个处理步骤是地址重定位。可执行文件中的地址都表达为相对于起始地址的相对值。在程序装入内存之前这个起始地址或起始偏移是无法确定的。地址重定位是修改相对地址,以使它们指向系统中的实际可寻址的单元。一旦这些地址确定后,程序即已准备可以随时付诸运行。
随着系统用户要求的不断增多和系统能力的不断增长,计算机程序也日益复杂。微机系统诸如IBM PS/2计算机系统(PS/2是IBM公司的注册商标)的不断增加的容量就是一例。不断增加的处理器容量和功能允许开发复杂的文字处理,扩展图表,数据库和其他商务和科学上的应用程序。然而复杂的应用程序将导致可执行文件的不断增大。
生成大的可执行文件时,只要应用程序或系统程序的一部分有变动,就将增加建立或审改应用程序或系统程序所需费用和时间。解决此问题的一个办法曾经是把应用程序或系统程序分解成许多可动态装载的程序段。连接(确定地址)这些程序段的工作延缓到执行时再做。每个程序段定义成包括源码的特定部分,并编写成可以对应于良好定义的接口。只要接口保持不变,其他程序段中访问特定程序段对象的程序就不必改动或重新编译。这就对操作系统和应用程序的开发和维护提供更大的灵活性。
动态连接概念已在IBM OS/2操作系统产品中实现(OS/2是IBM公司的一个注册商标)。OS/2动态连接库(或DLL)可以动态连接,从而为操作系统或应用程序提供所定义的功能(函数)。而DLL的接口是规定的库接口。使用动态连接库的程序包括一对该程序的库接口调用。编译程序将追踪每一个这样的外部库调用,并把它们包括在可执行文件的一节中。在现有系统中,当OS/2装载程序装载一个可执行程序时(通常作为带。EXE后缀名的文件存储起来),它对该文件进行扫描以找出所有的动态连接库调用。每个被调用的库函数依次动态装载。装载程序将对每一个这样的库进行检查,看它是否还依次调用其他库函数。这个检查和装载过程一直如此循环地进行下去,直至所有动态连接调用得到解决。
现有OS/2操作系统为一个任务所调用的每一个库函数分配内存地址和用户内存空间。常用的DLL经常调用别的DLL,而后者又会再调用更多其他的DLL。结果所形成的DLL长链被定位并映射至每个任务。许多DLL被规定用于处理错误或其他异常情况,因此,用得不多。这意味着大部分时间内不需要大的装载内存。大的内存分配也增加了系统开销,因为内存管理程序为了确定在页面系统中替代哪一块区域,必须细查这大的已分配的内存。
还有一个另外的问题存在于微核系统中,例如卡内基梅隆大学开发的Mach操作系统。Mach微核为进程间通信分配核端口识别程序。Mach核为每个DLL分配一个核端口识别程序,或是更有效地为每个DLL目标程序分配识别程序。为不调用的端口进行分配会干扰有效端口的确定。
以前提出过一些动态子程序装载方案,但每个方案都有缺点。1986年5月的IBM技术公开月报中5535-5537页上有一篇文章,名为“透明动态子程序装载程序”。所建议的技术需要一个特定用途的动态装载程序,后者和主程序连接在一起。装载程序维持一个子程序调用表,并在调用时把这些子程序装载。这个方案不是操作系统整体的一部分,同时不支持任务间的共享。追踪和装载只适用于特定任务。把动态装载程序和主程序连接时有一定要求,这限制了透明度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/94102158.0/2.html,转载请声明来源钻瓜专利网。