CN1101142A - 延缓装载共享库的系统和方法 - Google Patents
延缓装载共享库的系统和方法 Download PDFInfo
- Publication number
- CN1101142A CN1101142A CN94102158A CN94102158A CN1101142A CN 1101142 A CN1101142 A CN 1101142A CN 94102158 A CN94102158 A CN 94102158A CN 94102158 A CN94102158 A CN 94102158A CN 1101142 A CN1101142 A CN 1101142A
- Authority
- CN
- China
- Prior art keywords
- program
- executable program
- executable
- graftabl
- load
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000011068 loading method Methods 0.000 title claims abstract description 31
- 238000000034 method Methods 0.000 title claims description 26
- 238000001514 detection method Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 8
- 238000012856 packing Methods 0.000 claims description 2
- 230000005055 memory storage Effects 0.000 claims 3
- 230000006870 function Effects 0.000 description 14
- 230000008569 process Effects 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000009870 specific binding Effects 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/54—Link editing before load time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
Abstract
对可执行库目标程序延缓装载是拖延对目标程
序的装载,直到要调用该目标程序时才装载,这样做
可减少操作系统开销和减轻内存负担。初始任务装
载时只给主可执行程序和由它调用的库目标程序分
配内存。被调用的次目标程序不分配内存。目标程
序调用那些已分配但未装载的页面时将产生页面故
障。处理页面故障时对可执行目标装载并定位。处
理页面故障时也确定目标调用下一级的并为下一目
标级分配内存。
Description
本专利申请涉及名为“处理机间通信的方法和工具”的申请,该申请的律师案卷号为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页上有一篇文章,名为“透明动态子程序装载程序”。所建议的技术需要一个特定用途的动态装载程序,后者和主程序连接在一起。装载程序维持一个子程序调用表,并在调用时把这些子程序装载。这个方案不是操作系统整体的一部分,同时不支持任务间的共享。追踪和装载只适用于特定任务。把动态装载程序和主程序连接时有一定要求,这限制了透明度。
1987年1月的IBM技术公开月报中3521页的名为“使用自修改存根的执行时间装载”的文章提出了略为不同的方案。这个方案要求把子程序存根加到每个主程序中。当首次调用子程序时,把库复制件装载完,并修改程序存根使之转移到被装载的库复制件。这个方案有个缺点,即要求特殊编码技术和在执行时间内修改程序流。
最后,1991年11月的IBM技术公开月报中209-210页的名为“DOS环境下动态连接库机制”的文章提出了DOS环境下的“结束和驻留”(TSR)程序,用于管理一系列库子程序。这些库程序对“软中断”作出响应,而该软中断是由插入主程序中的特定联编调用所产生的。当TSR程序接收到中断后,检查一个表,确定一个该函数以前是否已装载,如果没有装载,该函数即被装载并把表更新。然后控制即被交给该函数。这个方案的缺点是需要一个专门中断处理程序来管理动态库。还需要在主程序中插入特定的中断调用,这也限制了应用的普遍性。
提出的技术问题是要提供一个机制,它只在执行过程中需要可执行库目标程序时才把后者动态地装载。问题的解决方案应对应用程序开发人员和执行程序都是透明的。也即,和库函数与主程序连接在一起的情况相比较时,应显不出任何差别。
本发明涉及一种系统,该系统只当执行过程中需要库目标程序时才把后者动态地装载。该系统包括一种方法,用于延缓对不调用目标程序的装载,直至需要调用时才装载它。本发明把这种性能加入系统装载程序和执行处理中,成为装载程序的一部分,同时并不需要修改可执行程序。
本发明包括一种系统,该系统用于管理可执行程序的内存分配,该系统有一种方法,可在接到要求后把主可执行程序装入内存;用于确定主可执行程序所调用的次可执行程序的方法;可以不把次可执行程序装入内存而只给它分配内存段的方法;用于检测对已分配而未装载的内存段中的某一个的调用的方法;可在检测到调用后产生一个检测信号的方法;可对检测信号作出响应,把已分配内存段的可执行程序装入内存的方法。
本发明的上面所述以及其他目的,性能和优点将在下面的本发明最佳实施例的更专门的描述中得以明了,该实施例在附图中都有描述,该附图中相应的参考数字代表了本发明的相应部分。
图1是用于描述一个可用于本发明的信息处理系统的框图。
图2是可执行目标程序结构及相互间关系的图例。
图3是表示本发明的最佳实施例的各部分的框图。
图4是描述本发明的处理步骤的流程图。
本发明和信息处理系统一起使用。图1中100是该系统的一例。该系统有一个处理单元或CPU102,后者通过系统总线103和不同系统装置相连。这些装置包括,但不限于,硬盘存储器104,随机存取存储器106,网络接口108,输入/输出接口110。输入/输出接口协调来自键盘114和指向(pointing)装置116的输入,以及控制送至显示器112的输出。本系统还可以附加一些永久性存储装置,诸如软盘驱动器,磁带驱动器或CD-ROM光盘驱动器。
在现有系统上运行的信息处理系统最好是一个IBM PS/2计算机系统。所公开的系统和方法并不局限于这类系统,而可以在其他系统上运行。这些系统可以是:其他的微机系统,工作站系统例如IBM RISC系统/6000工作站(RISC系统/6000是IBM公司的注册商标),或者主机系统例如IBM ES/9000计算机系统(ES/9000是IBM公司的注册商标)。
本发明的最佳实施例是在一个支持动态连接库(DDL)的系统中实现的。这些库的特点是每个库的目标程序可在装载时重定位,也即,可由装载程序赋予它任何地址。
每个可执行模块按规定格式存储在永久存储器中(例如,在硬盘上)。在本最佳实施例中,主可执行文件和所有动态连接库都按照“LX-线性可执行模块”格式存储起来。只要装载程序能识别所有存储格式,那么在主可执行程序和动态连接库之间,或者甚至于在动态连接库内部都可采用不同格式。
图2中202是可执行模块的例子。主可执行程序或者由操作系统或者直接由用户首先调用,以完成一定功能。用户调用的例子是由用户在操作系统的命令提示下键入程序名称,例如,键入MYPROGM将导致装载并执行MYPROGM.EXE。
可执行模块的首部包括众多的装载和执行该程序时所需信息块。这些包括模块名称,版本级别,CPU或操作系统的依赖关系,模块大小,地址重定位时所需定位信息,和对于执行过程中要引入的DLL模块的引入模块调用。
主可执行程序通过引入模块表来调用动态连接库。系统开发人员插入程序中的显式程序调用或者编译程序在编译时的插入操作都能产生DLL调用。如图2所示,模块202包括对DLL204和206中目标程序的调用。模块204包括对模块208,210,和212的调用,而模块206包括对模块212和214的调用。
每个动态连接库(DLL)被分为一系列的目标程序,它们包括正文,可共享的数据,和实例数据,可执行目标程序可包括几个子程序,也可只包括一个,这取决于建立目标程序时的选项。每一个目标程序在装载时重定位,就是说,装载时可赋予任何地址,每个目标程序进一步分为若干页面,该页面的尺寸对应于计算机系统虚存管理程序所用页面的大小。每一页面有一相关连的“定位流”,后者识别并解译模块装载时必须修改的地址。这些修改分为局部定位和外部定位,在局部定位中把目标程序的起始地址加上偏移量就得到局部地址,在外部定位中把其他目标程序或其他动态连接库的地址加上偏移量才得到所需地址。
本发明的最佳实施例是用一个具有OS/2操作系统性能的基于Mach微核的系统实现的。图3显示了该系统的主要功能部件。用户302是一个在用户空间运行的程序。它可以是一个应用程序,也可以是一个系统实用程序。OS/2服务器304包括的OS/2操作系统为:可提供OS/2用户接口并产生必要的对微核306的微核服务请求。文件服务器308管理磁盘文件或其他永久性存储媒体。
OS/2服务器304包括三项和本发明有关的部件。任务管理程序310建立执行任务,以便执行所请求的操作。装载程序312完成的功能为:向文件服务器308请求可执行模块,把这些可执行模块定位,并且把它们装入内存。内存管理程序314利用微核内存管理功能来管理内存资源。微核有一个虚存系统316。虚存系统负责把VM页面赋予内存目标程序,并检测内存页面故障。当一个任务请求内存页面而分配到页面,但该页面当时并不在内存中时,就导致页面故障。处理故障时应对不用的或最近未用过的页面执行页出操作,而对所请求页面执行页入操作。
本发明的延缓装载过程的操作将参照图4和图3一起来描述。此过程从用户空间对可执行程序的初始化402的要求开始。这导致任务管理程序310建立一个任务以便执行,并虚存系统316登记该任务。接着任务管理程序让装载程序312启动404,装载.EXE文件进入内存。装载程序通过文件服务器308来存取.EXE文件。
装载程序开始装载初始可执行代码406。装载程序读取.EXE首部并为该模块建立模块表登记项(MTE)。模块表登记项向VM316进行登记。装载程序建立一个.EXE文件所调用的所有DLL的列表。装载程序为每个DLL目标模块确定一下该目标模块是否有MTE,如果没有,装载程序利用文件服务器访问该DLL,并为它装载和建立一个MTE。该MTE向VM登记。
执行任务后接着启动408。装载过程中把和.EXE及所调用DLL有关连的数据页面之每一页都映射到用户虚存空间,但在调用之前并不装载循环页面。调用一个并未装载的虚存页面将产生页面故障410。有一个外部页面管理程序用于处理内存目标页面故障。该页面管理程序可把所请求页面装入用户内存。一旦页面装载后,省缺的微核页面管理程序就处理后续的装载或卸载。
页面故障410产生后,微核VM316确定目标名称,页面和MTE412。对于有效页面,外部页面管理程序要求(416)装载程序把该页面定位并装载(418)。在定位过程中可检测任何附加的外部目标,也就是其他DLL目标,并确定该目标是否已分配到内存420。如果没有,则请求一个大小合适的内存段422,并把页面映射到用户地址空间424。
最佳实施例是在共享内存系统中实现的,在该系统中多个任务能共享一定的内存区域。当另一个用户任务调用早已分配给一个用户的页面时(414),系统核把核高速缓冲中该页面的复制件给予第二个用户,从而不必要求装载程序为该页面定位。这种共享可节省为第二个用户再次读入并定位页面所需开销。当第二个用户调用共享页面上的目标程序时,将产生页面保护故障,共享页面上的目标没有装载到用户空间,因为没有定位而只复制了被定位的页面。服务器处理故障时把该目标映射入第二用户的地址空间430并重新启动用户任务。
上述过程的结果是延缓评价库目标模块要求。在库目标可被使用以前,装载程序延缓对它的装载。所有.EXE文件中的DLL目标调用都在初始时装载,因为初始执行时会包括这些目标中的任何一个,当每个DLL目标被调用时,下一级被该目标调用的DLL目标就被处理。
本发明的优点是限制内存分配和装载到只满足所调用目标的要求即可。它也限制应分配的Mach端口和内存页面的数目,因而减少了总的系统开销。
最佳实施例是连同Mach微核一起描述的。然而,熟悉业务的人知道,延缓装载过程并不限于此种操作系统,这里所描述的过程可用于其他操作系统,特别是那些支持虚存管理的系统。
从上面的描述可以明白,在不背离本发明真实本质的情况下,本发明的最佳实施例可做不同修改和更动。本描述本来只是为了解释而用,因此不能局限地理解它。本发明的范围应只受下面权利要求书的文字所约束。
Claims (14)
1、一个管理可执行程序的内存分配的系统,其特征包括:
用于接受把主可执行程序装入内存的请求的装置;
用于确定所述主可执行程序所调用的次可执行程序的装置;
用于为所述次可执行程序分配内存段,但不把所述程序装入内存的装置;
用于检测对于一个所述只分配而未装载段的调用的装置,所述用于检测的装置在检测到调用时产生一个检测信号;和
用于对所述检测信号作出响应,从而把被分配了所述段的可执行程序装入内存的装置。
2、权利要求1的系统,其特征在于所述用于装载可执行程序的装置包括:
用于从存储装置中复制所述可执行程序的装置;
用于把所述可执行程序内的调用进行地址重定位的装置;
用于确定被所述可执行程序调用的可执行程序的装置;和
用于为所述被调用可执行程序分配内存段、但不把所述程序装入内存的装置。
3、权利要求2的系统,其特征在于所述用于检测的装置是一个页面故障检测系统。
4、权利要求1的系统,其特征在于所述用于装载的装置是一个外部页面管理程序。
5、权利要求3的系统,其特征在于所述用于装载的装置是一个外部页面管理程序。
6、一种用于动态装载可执行程序的方法,其特征包括以下步骤:
接受一个把主可执行程序装入内存的请求;
建立一个被所述主可执行程序所调用的全部程序表;
为所述程序分配内存区域,但不装载所述程序;
检测到对所述已分配的内存区域中的调用,并产生一个检测信号;和
对所述检测信号作出响应,把所述程序装入所述已分配的内存区域。
7、权利要求6的方法,其特征在于所述装载步骤包括下列步骤:
从一个存储装置复制所述程序;
对所述程序内的调用作地址重定位;
建立一个被所述已装载程序所调用的程序表;和
为所述被调用程序分配内存区域,但不把所述程序装入内存。
8、权利要求6的方法,其特征在于所述检测步骤包括检测一个内存页面故障调用。
9、权利要求6的方法,其特征在于所述装载步骤包括把控制交给一个外部页面管理程序,以完成所述装载步骤。
10、一种具有计算机可读媒体的计算机程序产品,该媒体带有已记录的计算机程序逻辑,用于动态地把可执行程序装入内存,所述计算机程序产品的特征包括:
用于接受把主可执行程序装入内存的请求的装置;
用于确定由所述主可执行程序调用的次可执行程序的装置;
用于为所述次可执行程序分配内存段、但不把所述程序装入内存的装置;
用于检测对所述已分配但未装载的内存段中的调用的装置,所述用于检测的装置在检测到调用时产生一个检测信号;和
对所述检测信号作出响应、把已分配了所述内存段的所述可执行程序装入内存的装置。
11、权利要求10的计算机程序,其特征在于所述用于装载可执行程序的装置包括:
用于从存储装置复制所述可执行程序的装置;
用于在所述可执行程序中对调用地址重定位的装置。
用于确定由所述可执行程序调用的可执行程序的装置;和
用于把内存段分配给所述被调用的可执行程序、但不把所述程序装入内存的装置。
12、权利要求11的计算机程序,其特征在于所述用于检测的装置是一个页面故障检测系统。
13、权利要求10的计算机程序,其特征在于所述用于装载的装置是一个外部页面管理程序。
14、权利要求12的计算机程序,其特征在于所述用于装载的装置是一个外部页面管理程序。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US2364393A | 1993-02-26 | 1993-02-26 | |
US023,643 | 1993-02-26 | ||
US023643 | 1993-02-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1101142A true CN1101142A (zh) | 1995-04-05 |
CN1042862C CN1042862C (zh) | 1999-04-07 |
Family
ID=21816373
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN94102158A Expired - Fee Related CN1042862C (zh) | 1993-02-26 | 1994-02-24 | 延缓装载共享库的系统和方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US5708811A (zh) |
EP (1) | EP0613084A1 (zh) |
JP (1) | JP3314378B2 (zh) |
KR (1) | KR0152461B1 (zh) |
CN (1) | CN1042862C (zh) |
BR (1) | BR9400603A (zh) |
CA (1) | CA2102883A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101187899B (zh) * | 2006-11-17 | 2010-05-12 | 中兴通讯股份有限公司 | 嵌入式系统存储空间的优化方法 |
US9990569B2 (en) | 2013-06-20 | 2018-06-05 | Weihai Hualing Opto-Electronics Co., Ltd. | Image scanning device and control method thereof |
Families Citing this family (116)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5379432A (en) * | 1993-07-19 | 1995-01-03 | Taligent, Inc. | Object-oriented interface for a procedural operating system |
US7188352B2 (en) | 1995-07-11 | 2007-03-06 | Touchtunes Music Corporation | Intelligent digital audiovisual playback system |
US8661477B2 (en) * | 1994-10-12 | 2014-02-25 | Touchtunes Music Corporation | System for distributing and selecting audio and video information and method implemented by said system |
US7424731B1 (en) | 1994-10-12 | 2008-09-09 | Touchtunes Music Corporation | Home digital audiovisual information recording and playback system |
EP0786121B1 (fr) | 1994-10-12 | 2000-01-12 | Touchtunes Music Corporation | Systeme de reproduction audio-visuelle numerique intelligent |
US6466992B2 (en) * | 1994-12-07 | 2002-10-15 | Next Computer, Inc. | Method for providing stand-in objects |
FR2753868A1 (fr) | 1996-09-25 | 1998-03-27 | Technical Maintenance Corp | Procede de selection d'un enregistrement sur un systeme numerique de reproduction audiovisuel et systeme pour mise en oeuvre du procede |
US5960204A (en) * | 1996-10-28 | 1999-09-28 | J.D. Edwards World Source Company | System and method for installing applications on a computer on an as needed basis |
US6363436B1 (en) * | 1997-01-27 | 2002-03-26 | International Business Machines Corporation | Method and system for loading libraries into embedded systems |
US5878263A (en) * | 1997-03-05 | 1999-03-02 | International Business Machines Corporation | Internal chaining technique for fixup records |
US6385567B1 (en) * | 1997-07-31 | 2002-05-07 | Microsoft Corporation | Program-module substitution in a program loader for multiple-platform emulation |
JPH1185526A (ja) * | 1997-09-12 | 1999-03-30 | Hitachi Ltd | プログラムロード方法 |
FR2769165B1 (fr) * | 1997-09-26 | 2002-11-29 | Technical Maintenance Corp | Systeme sans fil a transmission numerique pour haut-parleurs |
US6292843B1 (en) * | 1998-01-16 | 2001-09-18 | International Business Machines Corporation | Quick loading of run time dynamic link library for OS/2 |
US6185733B1 (en) * | 1998-01-20 | 2001-02-06 | International Business Machines Corporation | Method and apparatus for remote object code inclusion |
US6074432A (en) * | 1998-03-19 | 2000-06-13 | Xilinx, Inc. | Method for generating a software class compatible with two or more interpreters |
US6158047A (en) * | 1998-07-08 | 2000-12-05 | Hewlett-Packard Company | Client/server system for fast, user transparent and memory efficient computer language translation |
FR2781582B1 (fr) | 1998-07-21 | 2001-01-12 | Technical Maintenance Corp | Systeme de telechargement d'objets ou de fichiers pour mise a jour de logiciels |
FR2781580B1 (fr) | 1998-07-22 | 2000-09-22 | Technical Maintenance Corp | Circuit de commande de son pour systeme de reproduction audiovisuelle numerique intelligent |
US8028318B2 (en) | 1999-07-21 | 2011-09-27 | Touchtunes Music Corporation | Remote control unit for activating and deactivating means for payment and for displaying payment status |
FR2781591B1 (fr) | 1998-07-22 | 2000-09-22 | Technical Maintenance Corp | Systeme de reproduction audiovisuelle |
GB2340266B (en) * | 1998-07-31 | 2003-03-12 | Sony Uk Ltd | Data processing |
US6430569B1 (en) * | 1998-08-14 | 2002-08-06 | Sun Microsystems, Inc. | Methods and apparatus for type safe, lazy, user-defined class loading |
US8434099B2 (en) * | 1998-09-09 | 2013-04-30 | Microsoft Corporation | Efficient linking and loading for late binding and platform retargeting |
US7409694B2 (en) * | 1998-09-09 | 2008-08-05 | Microsoft Corporation | Highly componentized system architecture with loadable virtual memory manager |
US6486897B1 (en) * | 1998-09-29 | 2002-11-26 | Apple Computer, Inc. | Multi-repository display system using separate presentation, adaptation and access layers |
US6314566B1 (en) * | 1998-09-29 | 2001-11-06 | Apple Computer, Inc. | Method and apparatus for “Just-in-Time” dynamic loading and unloading of computer software libraries |
US8726330B2 (en) | 1999-02-22 | 2014-05-13 | Touchtunes Music Corporation | Intelligent digital audiovisual playback system |
US6308184B1 (en) * | 1999-04-09 | 2001-10-23 | Hewlett-Packard Company | Delayed unloading of a dynamically loadable file |
US6601114B1 (en) * | 1999-05-27 | 2003-07-29 | Sun Microsystems, Inc. | Fully lazy linking with module-by-module verification |
US6618769B1 (en) * | 1999-05-27 | 2003-09-09 | Sun Microsystems, Inc. | Module-by-module verification |
US6763397B1 (en) | 1999-05-27 | 2004-07-13 | Sun Microsystems, Inc. | Fully lazy linking |
AU2004200283B2 (en) * | 1999-05-27 | 2006-11-02 | Sun Microsystems, Inc. | Module-by-module verification |
US6766521B1 (en) * | 1999-05-27 | 2004-07-20 | Sun Microsystems, Inc. | Dataflow algorithm for symbolic computation of lowest upper bound type |
US7539973B2 (en) * | 1999-06-01 | 2009-05-26 | Bruce Hodge | Object type-declaration prefix syntax |
US6634019B1 (en) | 1999-07-16 | 2003-10-14 | Lamarck, Inc. | Toggling software characteristics in a fault tolerant and combinatorial software environment system, method and medium |
FR2796482B1 (fr) | 1999-07-16 | 2002-09-06 | Touchtunes Music Corp | Systeme de gestion a distance d'au moins un dispositif de reproduction d'informations audiovisuelles |
US6973560B1 (en) | 1999-07-16 | 2005-12-06 | Lamarck, Inc. | Fault tolerant and combinatorial software environment system, method and medium |
US6609246B1 (en) * | 1999-12-07 | 2003-08-19 | Bull Hn Information Systems Inc. | Integrated development environment for high speed transaction processing WWW applications on heterogeneous computer systems |
FR2805377B1 (fr) | 2000-02-23 | 2003-09-12 | Touchtunes Music Corp | Procede de commande anticipee d'une selection, systeme numerique et juke-box permettant la mise en oeuvre du procede |
FR2805060B1 (fr) | 2000-02-16 | 2005-04-08 | Touchtunes Music Corp | Procede de reception de fichiers lors d'un telechargement |
FR2805072B1 (fr) | 2000-02-16 | 2002-04-05 | Touchtunes Music Corp | Procede d'ajustement du volume sonore d'un enregistrement sonore numerique |
FR2808906B1 (fr) | 2000-05-10 | 2005-02-11 | Touchtunes Music Corp | Dispositif et procede de gestion a distance d'un reseau de systemes de reproduction d'informations audiovisuelles |
FR2811175B1 (fr) * | 2000-06-29 | 2002-12-27 | Touchtunes Music Corp | Procede de distribution d'informations audiovisuelles et systeme de distribution d'informations audiovisuelles |
FR2811114B1 (fr) | 2000-06-29 | 2002-12-27 | Touchtunes Music Corp | Dispositif et procede de communication entre un systeme de reproduction d'informations audiovisuelles et d'une machine electronique de divertissement |
US6498937B1 (en) | 2000-07-14 | 2002-12-24 | Trw Inc. | Asymmetric bandwidth wireless communication techniques |
EP1303802B1 (en) * | 2000-07-25 | 2013-01-16 | Rovi Solutions Corporation | System and method of verifying the authenticity of dynamically connectable executable images |
FR2814085B1 (fr) | 2000-09-15 | 2005-02-11 | Touchtunes Music Corp | Procede de divertissement base sur les jeux concours a choix multiples |
FR2820221B1 (fr) * | 2001-02-01 | 2004-08-20 | Cimai Technology | Procede et systeme pour gerer des executables a bibliotheques partagees |
US6960291B2 (en) * | 2001-06-19 | 2005-11-01 | Exxonmobil Research And Engineering Company | Naphtha desulfurization method |
DE10130115A1 (de) * | 2001-06-20 | 2003-01-02 | Oliver H Wesling | Verfahren zur beschleunigten, gesicherten und bedarfsorientierten Übertragung und Ferninstallation von Daten auf mobilen und stationären Computersystemen zum Zwecke der Datenreduktion und peerorientierten individuellen Beschaffung |
DE50104035D1 (de) * | 2001-12-10 | 2004-11-11 | Aladdin Knowledge Systems Gmbh | Verfahren zum Ausführen eines Programms auf einem Computer |
US7533101B2 (en) * | 2002-03-04 | 2009-05-12 | Microsoft Corporation | Extensible loader |
US7346780B2 (en) | 2002-04-03 | 2008-03-18 | Microsoft Corporation | Integrity ordainment and ascertainment of computer-executable instructions |
US7228426B2 (en) * | 2002-04-03 | 2007-06-05 | Microsoft Corporation | Integrity ordainment and ascertainment of computer-executable instructions with consideration for execution context |
US7117507B2 (en) * | 2002-06-03 | 2006-10-03 | Sumisho Computer Systems Corporation | Software atomization |
US20030226929A1 (en) * | 2002-06-06 | 2003-12-11 | Robert Knizner | Holding device for spare string trimmer line spools with slotted inner cavities |
US7281017B2 (en) * | 2002-06-21 | 2007-10-09 | Sumisho Computer Systems Corporation | Views for software atomization |
US7165075B2 (en) * | 2002-07-20 | 2007-01-16 | Microsoft Corporation | Object graph faulting and trimming in an object-relational database system |
US11029823B2 (en) | 2002-09-16 | 2021-06-08 | Touchtunes Music Corporation | Jukebox with customizable avatar |
US8584175B2 (en) | 2002-09-16 | 2013-11-12 | Touchtunes Music Corporation | Digital downloading jukebox system with user-tailored music management, communications, and other tools |
US7822687B2 (en) * | 2002-09-16 | 2010-10-26 | Francois Brillon | Jukebox with customizable avatar |
US10373420B2 (en) | 2002-09-16 | 2019-08-06 | Touchtunes Music Corporation | Digital downloading jukebox with enhanced communication features |
US8151304B2 (en) * | 2002-09-16 | 2012-04-03 | Touchtunes Music Corporation | Digital downloading jukebox system with user-tailored music management, communications, and other tools |
US9646339B2 (en) | 2002-09-16 | 2017-05-09 | Touchtunes Music Corporation | Digital downloading jukebox system with central and local music servers |
US8332895B2 (en) | 2002-09-16 | 2012-12-11 | Touchtunes Music Corporation | Digital downloading jukebox system with user-tailored music management, communications, and other tools |
US8103589B2 (en) | 2002-09-16 | 2012-01-24 | Touchtunes Music Corporation | Digital downloading jukebox system with central and local music servers |
US8090943B1 (en) * | 2003-04-28 | 2012-01-03 | Teradata Us, Inc. | Preventing unauthorized access of routines in a library |
KR100617698B1 (ko) * | 2004-06-07 | 2006-08-28 | 삼성전자주식회사 | 기능별 데이터 저장을 위한 바이너리 파일 생성 장치 및방법과 그 방법이 저장된 컴퓨터 판독 가능한 저장 매체 |
US8117607B2 (en) * | 2004-08-18 | 2012-02-14 | International Business Machines Corporation | Administration of kernel extensions |
US8196098B2 (en) | 2006-01-03 | 2012-06-05 | International Business Machines Corporation | System and method for executing temporary processing agents |
US8171482B1 (en) | 2006-05-09 | 2012-05-01 | Vmware, Inc. | Application environment specifications for provisioning application specific runtime environments using subsets of resources required for execution |
KR100790053B1 (ko) * | 2006-06-05 | 2008-01-02 | 주식회사 대우일렉트로닉스 | 마스터 장치의 번들 처리 장치 및 방법 |
US20080163185A1 (en) * | 2006-12-29 | 2008-07-03 | Rto Software, Inc. | Delay-load optimizer |
US9171419B2 (en) | 2007-01-17 | 2015-10-27 | Touchtunes Music Corporation | Coin operated entertainment system |
US9330529B2 (en) * | 2007-01-17 | 2016-05-03 | Touchtunes Music Corporation | Game terminal configured for interaction with jukebox device systems including same, and/or associated methods |
KR100866627B1 (ko) * | 2007-01-29 | 2008-11-03 | 삼성전자주식회사 | 컨트롤 플로우를 이용한 페이지 프리로드 방법 및 그시스템 |
US9953481B2 (en) * | 2007-03-26 | 2018-04-24 | Touchtunes Music Corporation | Jukebox with associated video server |
US8707283B2 (en) * | 2007-03-29 | 2014-04-22 | Microsoft Corporation | Parallel DLL tree initialization |
US7900217B2 (en) * | 2007-03-29 | 2011-03-01 | Microsoft Corporation | Dynamic DLL cycle resolution |
US8219987B1 (en) | 2007-08-24 | 2012-07-10 | Vmware, Inc. | Optimized virtual machine specification for provisioning application specific runtime environment |
US8001083B1 (en) | 2007-05-09 | 2011-08-16 | Vmware, Inc. | Repository including version management |
US9015180B1 (en) | 2007-05-09 | 2015-04-21 | Vmware, Inc. | Repository including file identification |
US8577937B1 (en) | 2007-05-09 | 2013-11-05 | Vmware, Inc. | Repository including exclusion list |
US7971047B1 (en) | 2007-09-10 | 2011-06-28 | Vmware, Inc. | Operating system environment and installation |
US8347263B1 (en) | 2007-05-09 | 2013-01-01 | Vmware, Inc. | Repository including installation metadata for executable applications |
US11262996B2 (en) | 2007-05-09 | 2022-03-01 | Vmware, Inc. | Repository including exclusion list |
US10290006B2 (en) * | 2008-08-15 | 2019-05-14 | Touchtunes Music Corporation | Digital signage and gaming services to comply with federal and state alcohol and beverage laws and regulations |
US8332887B2 (en) | 2008-01-10 | 2012-12-11 | Touchtunes Music Corporation | System and/or methods for distributing advertisements from a central advertisement network to a peripheral device via a local advertisement server |
GB2456019A (en) * | 2007-12-31 | 2009-07-01 | Symbian Software Ltd | Loading dynamic link libraries in response to an event |
GB2461499A (en) * | 2008-05-30 | 2010-01-06 | Symbian Software Ltd | Loading software stored in two areas into RAM, the software in a first area is loaded whole and from a second it is demand paged loaded. |
GB2460462A (en) * | 2008-05-30 | 2009-12-02 | Symbian Software Ltd | Method for loading software components into RAM by modifying the software part to be loaded based on the memory location to be used. |
US8849435B2 (en) | 2008-07-09 | 2014-09-30 | Touchtunes Music Corporation | Digital downloading jukebox with revenue-enhancing features |
CN101645019A (zh) * | 2008-08-04 | 2010-02-10 | 优诺威讯国际有限公司 | 虚拟操作系统创建方法 |
US8370932B2 (en) * | 2008-09-23 | 2013-02-05 | Webroot Inc. | Method and apparatus for detecting malware in network traffic |
CN101727345B (zh) * | 2008-10-29 | 2013-09-04 | 国际商业机器公司 | 控制动态链接库dll加载状态的方法和系统 |
US10564804B2 (en) | 2009-03-18 | 2020-02-18 | Touchtunes Music Corporation | Digital jukebox device with improved user interfaces, and associated methods |
US10719149B2 (en) | 2009-03-18 | 2020-07-21 | Touchtunes Music Corporation | Digital jukebox device with improved user interfaces, and associated methods |
US9292166B2 (en) | 2009-03-18 | 2016-03-22 | Touchtunes Music Corporation | Digital jukebox device with improved karaoke-related user interfaces, and associated methods |
CN102449658A (zh) | 2009-03-18 | 2012-05-09 | 踏途音乐公司 | 娱乐服务器及相关的社交网络系统 |
US8171141B1 (en) | 2009-04-02 | 2012-05-01 | Vmware, Inc. | Provisioning system including stack manager |
JP5338452B2 (ja) * | 2009-04-24 | 2013-11-13 | 日本電気株式会社 | メモリ管理システム、メモリ管理方法及びプログラム |
KR101446403B1 (ko) | 2010-01-26 | 2014-11-04 | 터치튠즈 뮤직 코포레이션 | 개선된 사용자 인터페이스를 갖는 디지털 쥬크박스 장치, 및 관련된 방법 |
US8793809B2 (en) * | 2011-04-25 | 2014-07-29 | Apple Inc. | Unified tracking data management |
GB2522772B (en) | 2011-09-18 | 2016-01-13 | Touchtunes Music Corp | Digital jukebox device with karaoke and/or photo booth features, and associated methods |
US11151224B2 (en) | 2012-01-09 | 2021-10-19 | Touchtunes Music Corporation | Systems and/or methods for monitoring audio inputs to jukebox devices |
US9921717B2 (en) | 2013-11-07 | 2018-03-20 | Touchtunes Music Corporation | Techniques for generating electronic menu graphical user interface layouts for use in connection with electronic devices |
JP6777545B2 (ja) | 2014-03-25 | 2020-10-28 | タッチチューンズ ミュージック コーポレイションTouchtunes Music Corporation | 改善されたユーザインターフェースを備えたデジタルジュークボックス装置および関連する方法 |
US9348625B2 (en) | 2014-05-23 | 2016-05-24 | Google Inc. | Application access to native and bundled libraries |
US10528735B2 (en) * | 2014-11-17 | 2020-01-07 | Morphisec Information Security 2014 Ltd. | Malicious code protection for computer systems based on process modification |
US11200070B2 (en) | 2018-08-03 | 2021-12-14 | International Business Machines Corporation | Dynamic-link library usage based on memory size |
US10754796B2 (en) * | 2018-08-29 | 2020-08-25 | Red Hat, Inc. | Efficient user space driver isolation by CPU page table switching |
US10983926B2 (en) | 2018-08-29 | 2021-04-20 | Red Hat, Inc. | Efficient userspace driver isolation for virtual machines |
US11662987B2 (en) * | 2021-08-06 | 2023-05-30 | International Business Machines Corporation | Logically splitting object code into modules with lazy loading of content |
US20230305883A1 (en) * | 2022-03-22 | 2023-09-28 | Nvidia Corporation | Application programming interface to perform selective loading |
US20230305890A1 (en) * | 2022-03-22 | 2023-09-28 | Nvidia Corporation | Application programming interface to identify location of program portions |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60252973A (ja) * | 1984-05-30 | 1985-12-13 | Fujitsu Ltd | ダイナミツクロ−デイング制御方式 |
US5291601A (en) * | 1989-06-01 | 1994-03-01 | Hewlett-Packard Company | Shared libraries implemented with linking program loader |
US5247678A (en) * | 1989-10-12 | 1993-09-21 | Texas Instruments Incorporated | Load time linker for software used with a multiprocessor system |
JPH0418638A (ja) * | 1990-05-11 | 1992-01-22 | Fujitsu Ltd | 静的メモリ割当て処理方法 |
US5241623A (en) * | 1990-09-27 | 1993-08-31 | General Electric Company | Method and system for delineation of structure and linkages between knowledge base modules |
US5291593A (en) * | 1990-10-24 | 1994-03-01 | International Business Machines Corp. | System for persistent and delayed allocation object reference in an object oriented environment |
US5247681A (en) * | 1990-12-18 | 1993-09-21 | International Business Machines Corporation | Dynamic link libraries system and method |
IL97894A0 (en) * | 1991-04-17 | 1992-06-21 | Ibm | Multi-processor computer system |
GB2261753B (en) * | 1991-11-19 | 1995-07-12 | Intel Corp | Multi-mode microprocessor with electrical pin for selective re-initialization of processor state |
US5359721A (en) * | 1991-12-18 | 1994-10-25 | Sun Microsystems, Inc. | Non-supervisor mode cross address space dynamic linking |
US5303392A (en) * | 1992-02-27 | 1994-04-12 | Sun Microsystems, Inc. | Accessing current symbol definitions in a dynamically configurable operating system |
-
1993
- 1993-11-10 CA CA002102883A patent/CA2102883A1/en not_active Abandoned
-
1994
- 1994-01-24 JP JP00572894A patent/JP3314378B2/ja not_active Expired - Fee Related
- 1994-02-10 EP EP94300983A patent/EP0613084A1/en not_active Withdrawn
- 1994-02-17 BR BR9400603A patent/BR9400603A/pt active Search and Examination
- 1994-02-24 KR KR1019940003597A patent/KR0152461B1/ko not_active IP Right Cessation
- 1994-02-24 CN CN94102158A patent/CN1042862C/zh not_active Expired - Fee Related
-
1995
- 1995-02-21 US US08/391,300 patent/US5708811A/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101187899B (zh) * | 2006-11-17 | 2010-05-12 | 中兴通讯股份有限公司 | 嵌入式系统存储空间的优化方法 |
US9990569B2 (en) | 2013-06-20 | 2018-06-05 | Weihai Hualing Opto-Electronics Co., Ltd. | Image scanning device and control method thereof |
Also Published As
Publication number | Publication date |
---|---|
CA2102883A1 (en) | 1994-08-27 |
KR940020238A (ko) | 1994-09-15 |
JP3314378B2 (ja) | 2002-08-12 |
BR9400603A (pt) | 1994-09-27 |
CN1042862C (zh) | 1999-04-07 |
EP0613084A1 (en) | 1994-08-31 |
JPH06250924A (ja) | 1994-09-09 |
US5708811A (en) | 1998-01-13 |
KR0152461B1 (ko) | 1998-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1042862C (zh) | 延缓装载共享库的系统和方法 | |
US6282703B1 (en) | Statically linking an application process with a wrapper library | |
US5734904A (en) | Method and system for calling one of a set of routines designed for direct invocation by programs of a second type when invoked by a program of the first type | |
KR100518584B1 (ko) | 공유 라이브러리 시스템 및 상기 시스템 구축 방법 | |
US5146593A (en) | Procedure call interface | |
US5375241A (en) | Method and system for dynamic-link library | |
US6052778A (en) | Embedded system having dynamically linked dynamic loader and method for linking dynamic loader shared libraries and application programs | |
US7461241B2 (en) | Concurrent physical processor reassignment method | |
EP1763774B1 (en) | Multiple computer architecture with replicated memory fields | |
US6295638B1 (en) | Method and apparatus for loading native object code in data processing system | |
US5291601A (en) | Shared libraries implemented with linking program loader | |
US6317870B1 (en) | System and method for optimization of inter-module procedure calls | |
US6341345B1 (en) | Mixed-endian computer system that provides cross-endian data sharing | |
Clark et al. | Application System/400 performance characteristics | |
US5546586A (en) | Method and apparatus for vectorizing the contents of a read only memory device without modifying underlying source code | |
US5774722A (en) | Method for efficient external reference resolution in dynamically linked shared code libraries in single address space operating systems | |
EP0679273B1 (en) | Shared library locating system and method | |
EP0573190A2 (en) | Dynamically configurable kernel | |
CN101271409A (zh) | 用于迁移逻辑分区的装置和方法以及产品 | |
EP0855056B1 (en) | Object-oriented method maintenance mechanism that does not require cessation of the computer system | |
WO1994027219A1 (en) | Method and apparatus for patching code residing on a read only moemory device | |
EP0867806A2 (en) | Operating system provision for computer system | |
US5692187A (en) | Shadow mechanism having masterblocks for a modifiable object oriented system | |
US6324688B1 (en) | Method and apparatus for optimizing execution of Java programs | |
US6438621B1 (en) | In-memory modification of computer programs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |