CN1174358A - 减少运行时间存储空间需求的计算机系统和方法 - Google Patents

减少运行时间存储空间需求的计算机系统和方法 Download PDF

Info

Publication number
CN1174358A
CN1174358A CN97115954A CN97115954A CN1174358A CN 1174358 A CN1174358 A CN 1174358A CN 97115954 A CN97115954 A CN 97115954A CN 97115954 A CN97115954 A CN 97115954A CN 1174358 A CN1174358 A CN 1174358A
Authority
CN
China
Prior art keywords
those
methods
computer system
working time
compression
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
CN97115954A
Other languages
English (en)
Other versions
CN1097770C (zh
Inventor
蒂莫西·G·林霍尔姆
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of CN1174358A publication Critical patent/CN1174358A/zh
Application granted granted Critical
Publication of CN1097770C publication Critical patent/CN1097770C/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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/44557Code layout in executable memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)

Abstract

在提供具有方法的程序的计算机网络中的一种客户计算机系统和相关方法。该客户计算机能够以减少的运行时间存储空间需求执行程序。该客户计算机系统包括网络通信接口、网络通信管理器、执行控制器和压缩器。其中,该压缩器在运行时间存储器内压缩未被调用的未压缩方法中的那些可压缩方法,以便在运行时间存储器内得到可用空间;还在运行时间存储器的可用空间内解压缩方法中的那些可解压缩方法,以便它们可被调用。

Description

减少运行时间存储空间需求 的计算机系统和方法
本发明涉及以减少的运行时间存储空间需求执行程序的计算机系统和方法。本发明尤其涉及在网络中执行根据经由网络传送的代码(即网络移动码)以使代码的运行时间存储空间需求得到减少的计算机系统和方法。
现在建立或配置的计算机系统利用了其代码是体系结构中性(AN)二进制格式(以下称为AN码)的程序的特性。于是这些程序的AN码与计算机系统的具体体系结构或平台无关。
本说明书中的术语“体系结构”指一系列型号的计算机的操作特性。具体体系结构的例子包括Macintosh计算机、采用Dos或Windows操作系统的IBM PC兼容计算机、运行Solaris操作系统的Sun Microsystems计算机和采用Unix操作系统的计算机系统。
本说明书中的术语“体系结构专用(AS)”指这样的要求,即二进制格式的某些程序的代码(以后称为AS码)仅在具有特定计算机体系结构的计算机系统上被执行。因此,具有利用普通编程语言(例如C语言)书写并对特定体系结构(例如IBM兼容PC)编译的代码的程序只能在该体系结构或该体系结构的仿真器上运行。
本说明书中的术语“体系结构中性(AN)”指其编译代码能够在具有不同体系结构的各种计算机系统上被执行。例如,特定体系结构的计算机系统可以利用Java(Sun Microsystems的商标)虚拟机模块来进行配置。对于Java虚拟机的指令集,Java虚拟机模块能够执行具有利用Java编程语言书写和被编译为字节码的代码(以后称为Java字节码)的程序。Java字节码与计算机系统的特定体系结构无关。
具有AN码的程序的重要特性包括了它们的可移值性。例如,由于AN码形式的程序能够在被配置用来执行AN码的任何计算机系统上执行,而不管该计算机系统的具体体系结构如何,所以可以容易地通过网络把这些程序从一个计算机系统移植到另一个计算机系统。例如,编译为Java字节码的程序可以在具有Java虚拟机模块的任何计算机系统上执行,并可容易地利用Hot Java(Sun Microsystems的商标)网络通信管理器通过网络从一个计算机系统移植到另一个计算机系统。
此外,与被编译为Java字节码的程序的可移植性有关的另一重要特性是这些程序的可验证性。具体来说,Java虚拟机模块能够容易地验证这些程序满足预定的完整性标准。这种完整性标准包括堆栈和数据类型使用约束,这种约束保证Java字节码不能够上溢或下溢Java虚拟机模块的堆栈,并且Java字节码形式的全部指令只使用其数据类型满足对这些指令的数据类型约束的数据。因此Java字节码形式的程序不能够伪造目标指针,并且一般来说只能够访问已明确允许用户使用的系统资源。
出于这些原因,把计算机系统配置成执行通过网络接收的AN码形式的程序。实际上,在某些情况下,由于程序被直接装入计算机系统的运行时间(即执行时间)存储器(例如随机存取存储器(RAM)),所以这种计算机系统甚至可以不需要辅助存储器(例如硬盘)。这样一来,这种计算机系统的用户就在软件购买、安装、配置和更新的周期之外,这种周期是软件产品的当前特点。
AN码的上述特点使其特别适合于供被连网和根据需要被装入AN码的小型或廉价计算机系统使用。例如,这种计算机系统可以是视频游戏机、个人数字助理(PDA)、蜂窝电话、或其它类似的计算机系统或计算机操作设备。
但是,遗憾的是AN码形式的程序的运行比AS码形式的相同程序的运行要慢。例如,Java虚拟机模块执行的Java字节码形式的程序的运行通常比AS码形式的相同程序慢了2.5至20倍。因此,计算机系统的用户可能发觉需要通过网络接收程序的AS码,以便AS码能够在该计算机系统的特定体系结构上执行。但是,为了保证这些程序安全地传送给计算机系统,网络必需是封闭的或可靠的,或者这些程序必需具有可被验证的嵌入式数字标符。
此外,根据AN码生成的AS码比原始AN码大得多。例如,根据Java字节码生成的AS码通常是Java字节码大小的2至5倍。于是固定数量的运行时间存储器能够存储的编译AS码要比能够存储的AN码少得多。但是,如上所述,AS码比生成该AS码的AN码快得多,并且AS码也许是获得满足要求性能的唯一方法。
在上述计算机系统中,价格是极其重要的。实际上,配置这种计算机系统的最主要的成本之一是执行被装入程序所需的运行时间存储器的数量。因此,减少这些计算机系统所需的运行时间存储器的数量是非常重要的,这是因为这种减少提供了竞争性强的优点。
此外,在上述这种计算机系统中,也许不能够对辅助存储器进行分页。在这种情况下,当在运行时间存储器内需要用于通过网络接收的AS码或AS码的空间时,可以在运行时间存储器内对它进行高速缓存和冲洗。但是,一旦要继续执行被冲洗的程序,就必需通过网络再次下载原始代码。这就会显著影响程序的执行速度。此外,即使在能够对辅助存储器进行分页的计算机系统中,从辅助存储器检索原始代码所需的时间可能过长。
在本发明中,利用通过对网络接收的程序的代码进行压缩和解压缩来减少该代码在运行时间存储器内的存储成本。由于这要比冲洗该代码在检索它要快得多,所以压缩和解压缩不显著影响该代码的执行速度。
总之,本发明是计算机网络中的客户计算机系统和相关方法,通过该计算机网络提供具有方法的程序。客户计算机能够以减少的运行时间存储空间需求执行程序。客户计算机系统包括运行时间存储器、网络通信接口、网络通信管理器、执行控制器、以及压缩器。
网络通信接口接收程序的方法,而网络通信管理器把接收到的方法无压缩地装入运行时间存储器的可用空间。执行控制器控制程序的执行,以便方法被调用或不被调用。
压缩器在运行时间存储器内压缩未被调用的未压缩程序中的那些可压缩程序。这样就在运行时间存储器内得到可用空间。压缩器还在运行时间存储器内的可用空间内解压缩压缩方法中的那些可解压缩方法以便它们可被调用。
在一个实施例中,一旦压缩方法中的那些可解压缩方法要被调用,压缩器就解压缩它们。
在另一实施例中,代码压缩器在预定时间间隔之后解压缩压缩方法中的那些可解压缩方法。
在再一实施例中,一旦未压缩方法中的那些可压缩方法不再被调用,压缩器就压缩它们。
在还一实施例中,当需要运行时间存储器内的空间但得不到时,压缩器就压缩未压缩方法中的那些可压缩方法。此外,在这一实施例,客户计算机系统可以进一步包括一调用顺序表,该调用顺序表按照最早被调用方法至最近被调用方法的顺序列出当前未被调用的那些方法。这样一来,当需要运行时间存储器内的空间但得不到时,未压缩方法中的那些可压缩方法就是在该调用顺序表中的最早被调用的方法。
在另一实施例中,当需要运行时间存储器内的空间但得不到时,压缩器就将压缩方法中的那些可冲洗方法从运行时间存储器中冲洗出去。
作为以上实施例的一替代实施例,客户计算机系统可进一步包括一辅助存储器。在这种情况下,当需要运行时间存储器内的空间但得不到时,压缩器就把压缩方法中的那些可存储方法存储在该辅助存储器内。压缩器然后从该辅助存储器中检索将要被解压缩的压缩方法中的那些可检索方法。
结合附图参看以下详细说明和所附的权利要求书将更容易理解本发明的其它目的和特点,附图中:
图1是采用了本发明的客户计算机系统的方框图。
图2是客户计算机系统的操作的功能方框图。
图3是客户计算机系统的压缩方法的流程图。
图4是客户计算机系统的解压缩方法的流程图。
图5表示客户计算机系统的一替代实施例。
图6表示客户计算机系统的该替代实施例的操作的功能方框图。
参看图1,该图表示本发明的计算机网络100。该计算机网络100包括一个或多个客户计算机系统102、一个或多个服务器计算机系统104和网络通信连接106。
客户计算机系统102通过网络通信连接106与服务器计算机系统104连接。网络通信连接可以是局域网或广域网、互联网(Intemet)或某些其它类型的网络通信连接。
每一服务器计算机系统104包括中央处理单元(CPU)110、用户接口112、网络通信接口116和存储器118。网络通信接口使每一服务器计算机系统能够通过网络通信连接106与客户计算机系统102通信。
每一服务器计算机系统104的存储器118存储操作系统120、网络通信管理器(或服务器)122和程序145。操作系统和通信管理器都在CPU120上运行。操作系统响应用户利用用户接口112发送的或由网络通信接口116通过网络通信连接106从客户计算机系统102的用户接收的命令,控制并协调网络通信管理器的运行。
程序145包括方法147和/或148。在本说明书中,在程序执行期间各个时刻被调用和不被调用的程序的任何分立的段或部分都被看作是方法。
每一服务器计算机系统104的方法147包含独立于客户计算机系统102的具体体系结构(即平台)的体系结构中性(AN)码。这些程序被从特定的编程语言编译成为AN码。在最佳实施例中,这些程序用Java编码语言书写并被编译成为Java字节码。此外,这些程序被包括在组成了按照面向对象方式被编程的软件程序的具有方法的对象类内。
相反地,每一服务器计算机系统104的方法148包含对于客户计算机系统102的具体体系结构编译的体系结构专用(AS)码。如上所述,需要这种方法是因为它们比AN码形式的相同方法运行要快。如以下更详细说明得那样,网络100最好是封闭的和可靠的网络,在其内可以高度的可靠性安全地把这些程序传送给客户计算机102,或者这些程序最好具有可被验证的嵌入式数字标符。
如后面还将更详细地说明的那样,一旦用户请求,就利用网络通信管理器122把方法147和/或148传送给客户计算机系统102。因此,这些方法的AN码被看作是网络移动码。
每一客户计算机系统102可以是视频游戏机、个人数字助理(PDA)、蜂窝电话、台式计算机、或要求少量运行时间存储器的其它计算机系统或计算机操作设备。此外,每一客户计算机系统包括中央处理单元(CPU)126、用户接口128、网络通信接口132、只读存储器(ROM)134和运行时间随机存取存储器(RAM)136。网络通信接口使客户计算机系统能够通过网络通信连接106与服务器计算机系统104通信。
每一客户计算机系统102的RAM136存储操作系统138、网络通信管理器140、虚拟机模块142、以及代码压缩器146,它们都装载自ROM134。该RAM还存储具有方法147和/或方法148的程序145,方法147包含AN码,而方法148包含从服务器计算机系统104下载的体系结构专用(AS)码。操作系统、网络通信管理器、虚拟机模块、代码编译器、代码压缩器以及程序都在CPU126上被执行。操作系统响应用户利用用户接口128发送的命令,控制并协调网络通信管理器、虚拟机模块、代码编译器、代码压缩器以及程序的执行。
如上所述,一旦用户请求,就从服务器计算机系统104接收的方法147和/或148。利用在最佳实施例中是HotJava网络通信管理器的网络通信管理器140获得这些方法。该网络通信管理器然后把这些方法装入RAM136。
虚拟机模块142的代码校验器151验证装入方法147的AN码满足预定的完整性标准。如上所述,这一标准可以包括堆栈和数据类型使用约束,以确保装入方法不上溢和或下溢虚拟机模块的堆栈,并且所有指令只使用其数据类型与这些指令的数据类型约束一致的数据。在最佳实施例中,虚拟机模块是Java虚拟机模块。
但是,在具有AS码的接收方法148的情况下,不能够用代码校验器151直接验证它们的完整性。因此,为了间接验证它们的完整性,网络100可以是可在其内以高度的可靠性安全地把这些方法传送给客户计算机102的封闭的和可靠的网络。或者,如果该网络100不是安全的,这些程序可以具有使网络通信管理器140能够验证它们来自可靠源的嵌入式数字标符。
虚拟机模块142的执行控制器153控制程序145的执行。具体来说,执行控制器解释方法147的AN码以便在客户计算机系统102的特定体系结构上执行,并使这些方法能够调用包含AS码的方法148以便在该特定体系结构上执行。在程序的执行期间产生的执行数据149存储在RAM136内。此外,如果网络通信管理器140、代码编译器144和/或代码压缩器146都是AN码,则执行控制器还控制它们的执行。
此外,为了保持低的客户计算机系统102的RAM空间需求,代码压缩器146在不同时刻在RAM 136内压缩和解压缩方法147和/或148的代码。对可压缩和可解压缩的方法这样做,这是因为它们分别满足存储在RAM 136内的和由用户利用用户接口128输入的预定压缩和解压缩标准152和154。以下将更详细描述压缩和解压缩标准,在本发明的一些实施例中,压缩和解压缩标准是用户可选择和/或可改变的(利用用户接口128)一组预定的存储器管理策略。
利用方法状态数据结构155保持方法147和/或148的存储和调用状态。方法状态数据结构被网络通信管理器148、执行控制器153、和代码压缩器146进行更新。
图2表示各客户计算机系统102在RAM136内压缩和解压方法147和/或148时的操作的功能方框图。此外,图3和4分别表示优选的压缩和解压缩方法300和400。
参看图1至3,当用户请求执行某一服务器计算机系统104的某一程序145时,用户的客户计算机系统102从服务器计算机系统获得被请求的程序(图3的步骤302)。当用户利用用户接口128发出命令从服务器计算机系统下载并执行程序时就完成了被请求程序的获得。作为响应,操作系统120调用网络通信管理器140,后者产生表示已作出了这种请求的信息。网络通信接口132然后把该信息传送给服务器计算机系统。
服务器计算机系统104的网络通信接口116接收传送的信息。作为响应,服务器计算机系统的网络通信管理器122把被请求程序145的方法147和/或148提供给网络通信接口,该网络通信接口然后把这些方法传送给用户的客户计算机系统102。
传送的方法147和/或148被用户的客户计算机系统102的网络通信接口132接收。作为响应,网络通信管理器140则判断在RAM136内是否有足够的空间用于装入所接收的方法(图3的判断步骤304)。如果有,则网络通信管理器将未压缩的这些方法的代码装入RAM内的可用空间(图3的步骤306)。这样一来,这些方法就与其它程序145先前装入程序的方法147和/或148一道被装入RAM。在装入这些方法时,网络通信管理器更新方法状态数据结构155的方法存储状态表200,以便区分方法和被这些方法占据的RAM136内的存储空间的相应指针。此外,网络通信管理器还更新程序状态表来指出这些方法的代码是未被压缩的(U)。
网络通信管理器140然后调用虚拟机模块142的代码校验器151。作为响应,该代码校验器验证最近被装入的方法147的AN码满足上述的预定完整性标准(图3的步骤307)。
其方法147和/或148最近被装入的程序145则与任何先前装入的程序一道在执行控制器的控制下被执行(图3的步骤314)。当程序被执行时,它们的方法就在它们被执行期间的不同时刻被调用和不被调用。如上所述,执行控制器解释方法147的AN码以便在用户的客户计算机系统102的特定体系结构上执行,并使这些方法能够调用包含AS码的方法148以便在该特定体系结构上执行。
各装入方法147和/或148可以因为必需等待数据或进行休眠状态等而在各个时刻都不被调用。一旦执行控制器确认出现了这种情况,它就将该方法加入到程序状态数据结构155的调用顺序(LRI)表202,以便指出该方法目前不被调用。LRI表中的方法按照从最近被调用至最早被调用的次序列出。
如上所述,为了减少RAM136的空间需求,满足了预定压缩标准152的每一装入方法147和/或148的代码被代码压缩器146进行压缩。在最佳实施例中,压缩标准规定:可压缩方法147或148的代码应在(1)需要RAM136内的空间但得不到时、以及在(2)该方法是LRI表202中的尚未使其代码被压缩的最早被调用的方法时被压缩。
一旦网络通信管理器140确认在RAM 136内没有可用于装入被服务器计算机系统104接收的一个或多个方法147和/或148(图3的判断步骤304)的空间,它就调用代码压缩器146。作为响应,该代码压缩器就压缩LRI表202中其代码尚未被压缩的最早被调用方法的代码,直到有足够的空间为止(图3的步骤316)。代码压缩器还更新方法存储状态表200,以便区分该方法的压缩代码的存储空间的相应指针和指出该方法的代码已被压缩(C)。网络通信管理器然后如上所述地把已有对应可用空间的方法装入到该可用空间(图3的步骤306)。
代码压缩器146可以使用本领域众所周知的任何快速数据压缩技术。此外,代码压缩器还可以使用单独的压缩技术来对方法147的AN码和方法148的AS码进行最佳压缩。
此外,在装入方法147和/或148被调用时,它们就产生执行数据。对于任何被执行控制器153确认是被调用的(图3的判断步骤320)和在RAM 136内有空间可用来存储其执行数据的(判断步骤322)方法,执行控制器把执行数据存储在RAM内(图3的步骤324)。
但是,对于被执行控制器153确认为是被调用的(图3的判断步骤320)和在RAM内虽没有但需要可用来存储执行数据的空间的(判断步骤322)每个装入方法147和/或148,执行控制器调用代码压缩器146。如同在需要RAM内的空间的先前情形一样,代码压缩器压缩LRI表202中其代码尚未被压缩的最早被调用方法的代码,直到有足够的空间为止(图3的步骤326)。如上所述,代码压缩器更新方法存储状态表200,以便区分该方法的压缩代码的存储空间的相应指针和指出该方法的代码已被压缩(C)。如上所述,执行控制器然后把执行数据存储在RAM的可用空间内(图3的步骤324),并继续具有其执行数据已被存储的方法的程序的执行(图3的步骤314)。
此外,参看图1、2和4,一旦在RAM 136内有可用空间,被压缩的并满足了预定解压缩标准154的每一装入方法147和/或148就被代码压缩器146进行解压缩。在最佳实施例中,用于解压缩可解压方法的代码的预定解压缩标准仅规定该方法的代码是压缩的,且将在该方法要再次被调用时被解压缩。
因此,每当执行控制器153确认装入方法147和/或148之一要被调用(图中的判断步骤402),它就判断该方法的代码是否被进行了压缩(图4的判断步骤404)。根据方法存储状态表200进行这种判断。如果该方法的代码没有被压缩,则该方法就被执行控制器调用(图4的步骤406)。当其不再被调用时,其代码就可被代码压缩器146按照上述方式进行压缩。
但是,如果要被调用的方法147或148的代码被进行了压缩,则执行控制器就调用代码压缩器146来解压缩该方法的代码。代码压缩器判断在RAM 136内是否有足够的空间用来解压缩该方法的代码(图4的判断步骤408)。如果有足够的空间,代码压缩器就在该可用空间内解压缩该方法的代码(图4的步骤410)。在这样做的时候,它还更新方法存储状态表200,以便区分未被压缩代码的存储空间的相应指针和指出该方法的代码现在未被压缩(U)。
但是,如果没有足够的空间,则代码压缩器146就压缩LRI表202中的其代码尚未被压缩的最早被执行方法的代码,直到有可用空间为止(图4的步骤412)。按照上述方式进行这种压缩。在有可用空间之后,要被解压缩的方法147或148的代码就按照刚才所描述的方式被代码压缩器在可用空间内进行解压缩,然后被执行控制器153调用(图4的步骤410和406)。
根据以上所述,本发明显然在保持执行速度的同时减小了运行时间存储器的空间。这是因为当需要RAM内的空间时,通过压缩装入方法147和/或148,不需要把它们从RAM 136中冲洗出去和再次从服务器计算机系统104下载的缘故。但是,本领域的普通技术人员都懂得,可以用其它替代的实施例来提供相同的优点。
具体来说,上述压缩标准152规定:当需要RAM 136内的空间但得不到时,就压缩具有未被压缩代码的最早被调用方法147和/或148的代码。但是,压缩标准可以由用户从广泛的选择范围中进行选择,并且以用户的客户计算机系统102特有的一些条件为基础。例如,压缩标准可简单地规定一旦方法不再被调用就压缩每一方法的代码。或者,可以规定只在有时间进行压缩时才压缩某些方法的代码。作为上述任一压缩标准的额外变化,压缩标准可规定只压缩特定大小或类型的方法的代码。
此外,如上所述,解压缩标准154规定了一旦其代码是压缩码的方法147或148要被调用,该方法就使其代码被解压缩。但是,解压缩标准可以规定在预定时间间隔过去之后才解压缩压缩码。在这种情况下,数据压缩器将包括对时间间隔进行计时的定时器。在一个例子中,可将这一技术用于被置于休眠状态一段已知的时间间隔的方法,以便该方法在此时间间隔内被压缩、然后就在其要被唤醒之前被解压缩。或者,在另一个例子中,该技术可用于正在等待数据的方法,即选择压缩方法时占用的一段时间间隔以便预测什么时候可将数据提供给该方法。
在另一实施例中,压缩标准152还可以包括规定何时把装入方法147和/或148冲洗出RAM 136的冲洗标准。例如,该冲洗标准可以规定:如果在RAM内再也没有不被调用和未压缩的装入方法,则LRI表202中的具有压缩码的最早被调用的方法就是可冲洗的并将被从RAM 136中冲洗出去,直到有足够的空间为止。因此,一旦方法被从RAM中冲洗出去然后被再次调用,网络通信管理器140就必需从按照上述方式提供程序的服务器计算机系统104中重新下载方法。执行控制器153通过消除对任何被冲洗方法的引用更新程序存储状态表200。
由于从执行速度的观点来看把装入方法147和/或148冲洗出RAM 136是昂贵的,所以可如图5和6所示,用辅助存储器500来存储否则要被冲洗的方法。在这种情况下,以上讨论的压缩标准152将包括辅助存储标准,该标准类似于刚才讨论的冲洗标准并用于存储因为满足辅助存储标准而是可存储的方法。但是,在这种情况下,代码压缩器146将更新程序存储状态表200内的指针来指向在辅助存储器内的这些方法。此外,对于在这样的意义上是可被检索的方法,即它们的代码被进行了压缩、被存储在辅助存储器内以及要被解压缩,将从辅助存储器中检索这些方法的代码,然后按照上述方式在RAM 136内对它们进行解压缩。
此外,在客户计算机系统102包括辅助存储器500的实施例中(例如连网的台式计算机),可以从服务器计算机系统104中把方法147和/或148下载至该辅助存储器。然后,就可以从该辅助存储器而不是从该服务器计算机系统104直接把这些方法装入RAM 136。此外,在这样的实施例中,操作系统138、网络通信管理器140、虚拟机模块142和代码压缩器146都可以存储在该辅助存储器内,并可从该辅助存储器中被装入RAM。
在又一实施例中,可从服务器计算机系统104之一中把操作系统138、网络通信管理器140、虚拟机模块142、以及代码压缩器146下载至客户计算机系统102的RAM 136。可以按照与以上对于服务器计算机系统的方法147和/或148所描述的相同方式进行这种下载。
在再一实施例中,虚拟机模块142实际上在硅片上实现并用作客户计算机系统102的CPU126。在这种情况下,不对于特定的体系结构解释具有AN码的方法147而是直接执行它。在这一实施例中将不使用具有AS码的方法148。
最后,虽然参照一些具体实施例描述了本发明,但这种描述是对本发明的一种说明而不是对其进行限制。不超出由所附权利要求书所限定的本发明的精神和范围,本领域的普通技术人员可以作出各种改进。

Claims (17)

1.在一计算机网络中,通过该计算机网络提供具有方法的程序,一种客户计算机系统以减少的运行时间存储空间需求执行程序,该客户计算机系统包括:
运行时间存储器;
接收方法的网络通信接口;
把接收到的方法无压缩地装入运行时间存储器的可用空间的网络通信管理器;
控制程序的执行,由此在不同的时刻调用和不调用方法的执行控制器;
压缩器,(A)在运行时间存储器内压缩未被调用的未压缩方法中的那些可压缩方法,由此在运行时间存储器内得到可用空间,以及(B)在运行时间存储器内的可用空间内解压缩压缩方法中的那些可解压缩方法,以便压缩方法中的那些可解压缩方法可被调用。
2.权利要求1的客户计算机系统,在该系统中,一旦压缩方法中的那些可解压缩方法要被调用,压缩器就解压缩压缩方法中的那些可解压缩方法。
3.权利要求1的客户计算机系统,其中的压缩器在预定时间间隔之后解压缩压缩方法中的那些可解压缩方法。
4.权利要求1、2或3的客户计算机系统,在该系统中,一旦未压缩方法中的那些可压缩方法不再被调用,压缩器就压缩未压缩方法中的那些可压缩方法。
5.权利要求1、2或3的客户计算机系统,在该系统中,当需要运行时间存储器内的空间但得不到时,压缩器就压缩未压缩方法中的那些可压缩方法。
6.权利要求1至5中的任一权利要求的客户计算机系统,还包括:
按照最早被调用方法至最近被调用方法的顺序列出当前未被调用的那些方法的调用顺序表;
当需要运行时间存储器内的空间但得不到时,未压缩方法中的那些可压缩方法是在调用顺序表中的未被压缩的最早被调用的方法。
7.权利要求1至6中的任一权利要求的客户计算机系统,在该系统中:
该方法包括独立于该客户计算机系统体系结构的体系结构中性码形式的方法;以及
该客户计算机系统还包括虚拟机模块,该虚拟机模块包括执行控制器并允许体系结构中性码形式的方法的执行。
8.权利要求1至7中的任一权利要求的客户计算机系统,在该系统中,当需要运行时间存储器内的空间但得不到时,压缩器就把压缩方法中的那些可被冲洗方法从运行时间存储器中冲洗出去。
9.权利要求1至8中的任一权利要求的客户计算机系统,还包括:
辅助存储器;
压缩器,(A)当需要运行时间存储器内的空间但得不到时,就在该辅助存储器内存储压缩方法中的那些可存储方法,以及(B)从该辅助存储器中检索要被解压缩的压缩方法的那些可被检索的方法。
10.在一计算机网络中,通过该计算机网络提供具有方法的程序,一种方法以减少的运行时间存储空间需求执行程序,该方法包括以下步骤:
提供运行时间存储器;
接收方法;
把接收到的方法无压缩地装入运行时间存储器的可用空间;
执行程序,以便方法在不同的时刻被调用和不被调用;
在存储器内压缩未被调用的未压缩方法中的那些可压缩方法,由此在运行时间存储器内得到可用空间;以及
在运行时间存储器的可用空间内解压缩压缩方法中的那些可解压缩方法,以便压缩方法中的那些可解压缩方法可被调用。
11.权利要求10的方法,其中的解压缩步骤包括一旦压缩方法中的那些可解压缩方法要被调用就解压缩压缩方法中的那些可被压缩方法。
12.权利要求10的方法,其中的解压缩步骤包括在预定时间间隔之后解压缩压缩方法中的那些可解压缩方法。
13.权利要求10、11或12的方法,其中的压缩步骤包括一旦未压缩方法中的那些可压缩方法不再被调用就压缩未被压缩方法中的那些可被压缩方法。
14.权利要求10、11或12的方法,其中的压缩步骤包括当需要运行时间存储器内的空间但得不到时就压缩未被压缩方法中的那些可压缩方法。
15.权利要求10至14中的任一权利要求的方法,还包括以下步骤:
提供按照最早被调用方法至最近被调用方法的顺序列出当前未被调用的那些方法的调用顺序表;
当需要运行时间存储器内的空间但得不到时,未压缩方法中的那些可压缩方法是在调用顺序表中的未被压缩的最早被调用的方法。
16.权利要求10至15中的任一权利要求的方法,还包括当需要运行时间存储器内的空间但得不到时就把压缩方法中的那些可被冲洗方法从运行时间存储器中冲洗出去的步骤。
17.权利要求10至16中的任一权利要求的方法,还包括以下步骤:
提供辅助存储器;
当需要运行时间存储器内的空间但得不到时,把压缩方法中的那些可存储方法存储在该辅助存储器内;以及
从该辅助存储器中检索要被解压缩的压缩方法中的那些可被检索的方法。
CN97115954A 1996-06-05 1997-06-05 减少运行时间存储空间需求的计算机系统和方法 Expired - Fee Related CN1097770C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/658,472 US5859982A (en) 1996-06-05 1996-06-05 Computer system and method for executing methods of downloaded programs with reduced run-time memory space requirements
US658472 1996-06-05
US658,472 1996-06-05

Publications (2)

Publication Number Publication Date
CN1174358A true CN1174358A (zh) 1998-02-25
CN1097770C CN1097770C (zh) 2003-01-01

Family

ID=24641373

Family Applications (1)

Application Number Title Priority Date Filing Date
CN97115954A Expired - Fee Related CN1097770C (zh) 1996-06-05 1997-06-05 减少运行时间存储空间需求的计算机系统和方法

Country Status (8)

Country Link
US (1) US5859982A (zh)
EP (1) EP0811911B1 (zh)
JP (1) JP3210606B2 (zh)
KR (1) KR100264940B1 (zh)
CN (1) CN1097770C (zh)
DE (1) DE69740171D1 (zh)
SG (1) SG74592A1 (zh)
TW (1) TW424195B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101116054B (zh) * 2005-02-03 2010-05-19 三菱电机株式会社 程序码生成支持装置及方法、程序执行装置及方法、程序码压缩装置及方法及其程序
CN104737137A (zh) * 2013-10-18 2015-06-24 三星电子株式会社 电子设备的存储器压缩方法及其装置

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7043537B1 (en) * 1997-09-05 2006-05-09 Cisco Technology, Inc System and method for remote device management
JPH11296381A (ja) * 1998-04-08 1999-10-29 Matsushita Electric Ind Co Ltd 仮想マシン及びコンパイラ
FR2777673B1 (fr) * 1998-04-15 2001-09-21 Bull Cp8 Dispositif de traitement de l'information comprenant des moyens pour gerer une memoire virtuelle, et procede de stockage d'informations associe
US6397385B1 (en) * 1999-07-16 2002-05-28 Excel Switching Corporation Method and apparatus for in service software upgrade for expandable telecommunications system
GB9921720D0 (en) 1999-09-14 1999-11-17 Tao Group Ltd Loading object-oriented computer programs
WO2001031442A2 (en) * 1999-10-22 2001-05-03 General Instrument Corporation Management of volatile and non-volatile memory resources in digital communications terminals
KR100319755B1 (ko) * 1999-12-02 2002-01-05 오길록 내장형 자바가상머신을 위한 바이트코드 압축 방법
US6629227B1 (en) 2000-05-04 2003-09-30 Scientific-Atlanta, Inc. System and method for a communication terminal to manage memory and maintain a current application version for multiple applications
JP4568963B2 (ja) * 2000-06-08 2010-10-27 ソニー株式会社 情報処理装置、情報通信システム
US20020026474A1 (en) * 2000-08-28 2002-02-28 Wang Lawrence C. Thin client for wireless device using java interface
FR2817055B1 (fr) * 2000-11-22 2003-02-14 Gemplus Card Int Execution d'une application dans un objet electronique portable a faible capacite de memoire
US20040015960A1 (en) * 2001-03-16 2004-01-22 Sanjay Wanchoo Method for loading and executing an application in an embedded environment
JP2002318696A (ja) 2001-04-23 2002-10-31 Mitsubishi Electric Corp プログラム実行装置および方法
US6895463B2 (en) 2001-10-30 2005-05-17 Pioneer Digital Technologies, Inc. Method and apparatus for efficiently running an execution image using volatile and non-volatile memory
WO2003102769A2 (en) * 2002-06-04 2003-12-11 Georgia Tech Research Corporation System, method and computer program product for leakage-proof program partitioning
GB2403033A (en) * 2003-06-18 2004-12-22 Research In Motion Ltd PDA software compression
EP1665040A2 (en) 2003-09-17 2006-06-07 Research In Motion Limited System and method for dynamic version management of applications
DE602004020492D1 (de) 2003-10-02 2009-05-20 Research In Motion Ltd Selektives laden und konfigurieren einer anwendung auf einer drahtlosen einrichtung unter verwendung von relationalen informationen
CA2604901A1 (en) * 2005-04-18 2006-10-26 Research In Motion Limited System and method for customizing services for applications
US8566481B2 (en) 2009-06-10 2013-10-22 Cisco Technology, Inc. Managing configuration data
EP2280343A1 (en) * 2009-07-23 2011-02-02 Research In Motion Limited Method and device for application archiving

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1337132C (en) * 1988-07-15 1995-09-26 Robert Filepp Reception system for an interactive computer network and method of operation
US5280613A (en) * 1990-06-25 1994-01-18 Hewlett-Packard Company ANDF installer using the HPcode-Plus compiler intermediate language
JPH04105129A (ja) * 1990-08-24 1992-04-07 Nec Corp プログラム実行方式
US5307413A (en) * 1991-07-19 1994-04-26 Process Software Corporation Method and apparatus for adding data compression and other services in a computer network
EP0626635B1 (en) * 1993-05-24 2003-03-05 Sun Microsystems, Inc. Improved graphical user interface with method for interfacing to remote devices
US5603031A (en) * 1993-07-08 1997-02-11 General Magic, Inc. System and method for distributed computation based upon the movement, execution, and interaction of processes in a network
US5497494A (en) * 1993-07-23 1996-03-05 International Business Machines Corporation Method for saving and restoring the state of a CPU executing code in protected mode
US5432937A (en) * 1993-08-20 1995-07-11 Next Computer, Inc. Method and apparatus for architecture independent executable files
GB2284492B (en) * 1993-12-06 1998-05-13 Graeme Roy Smith Improvements to computer control units
US5682550A (en) * 1995-06-07 1997-10-28 International Business Machines Corporation System for restricting user access to default work area settings upon restoration from nonvolatile memory where the settings are independent of the restored state information
US5734822A (en) * 1995-12-29 1998-03-31 Powertv, Inc. Apparatus and method for preprocessing computer programs prior to transmission across a network

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101116054B (zh) * 2005-02-03 2010-05-19 三菱电机株式会社 程序码生成支持装置及方法、程序执行装置及方法、程序码压缩装置及方法及其程序
CN104737137A (zh) * 2013-10-18 2015-06-24 三星电子株式会社 电子设备的存储器压缩方法及其装置
CN104737137B (zh) * 2013-10-18 2019-07-12 三星电子株式会社 电子设备的存储器压缩方法及其装置
US10895987B2 (en) 2013-10-18 2021-01-19 Samsung Electronics Co., Ltd. Memory compression method of electronic device and apparatus thereof

Also Published As

Publication number Publication date
CN1097770C (zh) 2003-01-01
JP3210606B2 (ja) 2001-09-17
EP0811911B1 (en) 2011-04-13
EP0811911A3 (en) 1999-03-10
TW424195B (en) 2001-03-01
US5859982A (en) 1999-01-12
EP0811911A2 (en) 1997-12-10
DE69740171D1 (de) 2011-05-26
KR980004098A (ko) 1998-03-30
JPH10228380A (ja) 1998-08-25
KR100264940B1 (ko) 2000-10-02
SG74592A1 (en) 2000-08-22

Similar Documents

Publication Publication Date Title
CN1122228C (zh) 减少运行时间存储空间需求的计算机系统和方法
CN1097770C (zh) 减少运行时间存储空间需求的计算机系统和方法
CN1096636C (zh) 执行减少运行存贮空间要求执行线程的计算机系统和方法
CN1211734C (zh) 计算机上自动安装和配置软件的方法和设备
US20050228820A1 (en) Partially embedded database and an embedded database manager for a control system
CN1819576A (zh) 在客户机和服务器之间分配应用任务的方法以及应用服务系统
CN1359491A (zh) 用于资源受限装置的面向对象的指令集
CN1918932A (zh) 在用户身份模块/可移动用户身份模块卡中的优选漫游列表更新
CN1886976A (zh) 用于使用动作列表及版本控制对一无线装置执行动作的方法、软件及设备
CN1859174A (zh) 通信网络中远程设备的升级方法及其系统
CN1251541C (zh) 缩短具有闪存的数字设备的启动时间的方法
CN100346297C (zh) 本地编译方法、本地编译预处理方法、服务器和通信系统
CN1295601C (zh) 进行软件应用的时间优化的替换
US9805045B2 (en) Method and system for compressing data records and for processing compressed data records
CN1425986A (zh) 自动压缩/解压缩文件系统及其压缩算法
US6654867B2 (en) Method and system to pre-fetch compressed memory blocks using pointers
CN1269034C (zh) 一种嵌入式系统中可执行文件的压缩及其加载方法
CN1474584A (zh) 将移动电话作为外围装置使用的便携式终端机
CN101059758A (zh) 屏幕转换程序生成方法及设备
CN113010172A (zh) 配置文件的处理方法、装置、系统及存储介质
CN1703675A (zh) 加速多媒体内容
EP3620912B1 (en) Deserialization method, apparatus, and computing device
CN1812336A (zh) 一种用户终端管理方法
WO2002082261A2 (en) Compression of codes of an application written in high-level language, for use in mobile telephony.
CN101069155A (zh) 用于执行期间的应用程序升级的方法、软件和装置

Legal Events

Date Code Title Description
C06 Publication
C10 Entry into substantive examination
PB01 Publication
SE01 Entry into force of request for substantive examination
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