CN1101142A - 延缓装载共享库的系统和方法 - Google Patents

延缓装载共享库的系统和方法 Download PDF

Info

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
Application number
CN94102158A
Other languages
English (en)
Other versions
CN1042862C (zh
Inventor
詹姆森·文德尔·阿兰德
鲍尔·普拉西多·吉安格拉
拉文德拉纳斯·卡辛纳斯·马尼昆德拉姆
多纳尔德·罗伯特·帕吉特
詹姆斯·迈克尔·弗兰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1101142A publication Critical patent/CN1101142A/zh
Application granted granted Critical
Publication of CN1042862C publication Critical patent/CN1042862C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance 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的计算机程序,其特征在于所述用于装载的装置是一个外部页面管理程序。
CN94102158A 1993-02-26 1994-02-24 延缓装载共享库的系统和方法 Expired - Fee Related CN1042862C (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (2)

* Cited by examiner, † Cited by third party
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