CN1613061A - 程序执行处理终端装置、程序执行处理方法及程序 - Google Patents

程序执行处理终端装置、程序执行处理方法及程序 Download PDF

Info

Publication number
CN1613061A
CN1613061A CNA038019493A CN03801949A CN1613061A CN 1613061 A CN1613061 A CN 1613061A CN A038019493 A CNA038019493 A CN A038019493A CN 03801949 A CN03801949 A CN 03801949A CN 1613061 A CN1613061 A CN 1613061A
Authority
CN
China
Prior art keywords
working time
program
execute form
temporary transient
storage unit
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
CNA038019493A
Other languages
English (en)
Other versions
CN1310148C (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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN1613061A publication Critical patent/CN1613061A/zh
Application granted granted Critical
Publication of CN1310148C publication Critical patent/CN1310148C/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明具有将程序从类文件变换为运行时间执行形式的装入(loader)单元(102)、进行将运行时间执行形式变换为暂时运行时间执行形式的运行时间节省(saving)处理的运行时间节省单元(103)、存储暂时运行时间执行形式的暂时运行时间执行形式存储单元(302)、以及进行将暂时运行时间执行形式变换为运行时间执行形式的后装入处理的后装入单元(105),在得到进行程序起动的指示时,判断暂时运行时间执行形式存储单元中是否存在暂时运行时间执行形式,在不存在的情况下,向装入单元要求进行向运行时间执行形式的变换,在存在的情况下,向后装入单元要求进行向运行时间执行形式的变换。通过这样,在程序传送业务中,能够缩短下载程序的起动时间。

Description

程序执行处理终端装置、程序执行处理方法及程序
技术领域
本发明涉及对接收的程序进行解释执行处理的信息终端装置、程序执行处理方法及程序,特别是涉及实现高速程序起动的信息终端装置、程序执行处理方法及程序。
背景技术
近年来,利用以移动电话、PHS(Personal Handyphone System,个人手持电话系统)及PDA(Personal Digital Assistance,个人数字辅助设备)等为代表的便携信息终端所具有通信功能的数字传送业务正在普及。
作为其代表例子,可以举出有图像及接收旋律等内容的传送业务。另外,还可以不是单纯的数据,而是下载程序,可在便携信息终端上作为应用程序来执行。即,通过下载程序,便携信息终端不仅仅具有最初准备的功能(应用程序),还能够在以后新追加各种各样的功能来使用。
在该程序传送业务中,提供例如电子电话本及电子记事本等PIM(PersonalInfmation Manager,个人信息管理器)应用程序及游戏应用程序等。用户自由选择具有自己想使用的功能、或自己容易使用的用户接口、或自己看中的画面构成等的应用程序,通过下载程序,就能够使用所选择的应用程序。
为了实现程序传送的结构,作为有希望的软件结构,有Java(TM)。Java(TM)由于具有虚拟机结构,不取决于设备的硬件及OS,能够使程序工作,因此认为,不仅在工作站或个人计算机(以下简称为“PC”)等计算机领域中,对于家电设备也可以认为是有效的结构。
另外,在便携信息终端中,已经有多种机型装有Java(TM)虚拟机,开始程序传送业务,预计今后以虚拟机结构为前提的程序传送业务将更进一步普及。
但是,在便携信息终端上采用虚拟机结构,使下载的应用程序得以执行时,出现的问题是它的起动时间长。
这里的所谓起动时间是指,用户或便携信息终端中所安装的其它应用程序(浏览器、邮件程序、电话等),从对便携信息终端内部的虚拟机发出开始特定应用程序的解释执行的指示起,一直到在便携信息终端的显示画面上被指示开始的应用程序的初始画面被输出为止所经过的时间。也就是说,所谓起动时间是一直到应用程序能够使用为止的等待时间,对于用户来说,由于实际上是未能利用应用程序的多花费的时间,因此起动时间越长,则应用程序的执行效率越低。
例如,一般的Java(TM)虚拟机的起动处理大致由以下的三种处理构成。以下用Java(TM)进行说明,但是,应该预先说明的是,也可以是其它虚拟机。
(1)初始化处理
(2)类验证处理
(3)类装入处理
关于这些处理的详细内容,想参照文献(Tim Lindholm and Frank Yellin:
“The Java(TM)Virtual Machine Specification”,Addison-Wesley,1997)。这里仅叙述以后的说明中所必需的处理的内容概要。
在Java(TM)中,程序由称为类文件的1个以上的文件构成。在程序被下载时,通常类文件以打包成1个文件的形式提供,在下载后,将它展开作为1个以上的类文件,并作为便携信息终端内的文件加以保存。
(1)初始化处理是为了使Java(TM)虚拟机能够执行所必需的初始作业。具体地说,进行确保虚拟机器使用的存储器区域(Java堆累区域等)的处理、无用信息收集处理的初始化、类装入程序的初始化及线索(thread)管理的初始化等。
(2)类验证处理是为了保证执行的对象即程序的安全性而进行的处理。具体地说,检查类文件的形式及检查类文件中所含的字节码等要符合Java(TM)的标准。
(3)类装入处理是将类文件在虚拟机使用的存储器区域上展开作为Java(TM)虚拟机能够执行的记录形式(以下称为运行时间执行形式)的处理。成为对象的类文件是具有成为执行的程序的最初执行方法的主方法的类文件及能够根据该类文件寻找参照的全部类文件。
由于包含以上那样的各种处理,因此采用虚拟机结构的应用程序起动时间与起动便携信息终端的用机器语言描述的应用程序(本机应用程序)相比要长。
起动时间中,(2)类验证处理及(3)类装入处理一般来说,随着应用程序(程序)的大小越大,则其处理越需要更长的时间,应用程序的执行效率越降低。特别是像PIM应用程序那样的频繁多次进行起动的那种应用程序,由于起动时间长,因此常常变成很不方便的程序。
与此相反,在日本专利2000-29706号公报“类文件的预处理及打包用的方法及装置”以及特开平11-327906号公报“动态连接及动态装入存在的情况下动态调度的调用的静态结合”中揭示了一种技术,它通过对Java(TM)处理系统的类文件预先进行某种处理,以提高应用程序的执行效率。
但是,上述特开2000-29706号公报及特开平11-327906号公报中所揭示的技术,都是以应用程序的解释执行速度的高速化或存储器的有效利用为目的的,对于硬件资源,在价格及尺寸等方面有严格限制的便携信息终端等信息家电设备中,在采用Java(TM)等处理系统时常常造成问题的起动时间,尚没有达到起动时间缩短用的技术。
本发明正是为了解决上述问题而提出的,它是将起动处理中的(3)类装入处理分为“仅在初次起动应用程序时需要的类装入处理”及“在应用程序第2次及以后的起动也需要的类装入处理”两种处理,将利用“初次类装入处理”得到的处理结果作为与类文件形式不同的记录形式(以下称为暂时运行时间执行形式)加以存储,通过这样在该程序起动时,只要进行“第2次及以后的类装入处理”即可,其目的在于谋求缩短程序的起动时间。
发明内容
为了解决上述问题,本发明的程序执行处理终端装置具有:将程序从例如Java(TM)的类文件变换为运行时间执行形式的装入单元、存储所述装入单元变换的运行时间执行形式或根据所述程序存储单元中存储的程序生成的暂时运行时间执行形式的暂时运行时间执行形式存储单元、以及进行将所述暂时运行时间执行形式存储单元中存储的暂时运行时间执行形式变换为运行时间执行形式的后装入处理的后装入单元,在有程序起动的指示时,判断所述暂时运行时间执行形式存储单元中是否存在暂时运行时间执行形式,在不存在的情况下,请求所述装入单元进行使其向运行时间执行形式变换,在存在的情况下,请求所述后装入单元使其向运行时间执行形式变换。
另外,也可以通过将所述装入单元变换的运行时间执行形式变换为暂时运行时间执行形式,以此得到暂时运行时间执行形式。这样,在程序最初第1次起动时,进行通常的装入处理,在装入处理后,进行运行时间节省处理,生成暂时运行时间执行形式,通过这样,在该程序第2次及以后的起动中,能够将从暂时运行时间形式生成运行时间形式的后装入处理置换为通常的装入处理,能够缩短第2次及以后的程序起动所需要的处理时间。
另外,也可以通过将所述程序存储单元中存储的程序变换为暂时运行时间执行形式来得到暂时运行时间执行形式。这样,通过预先对程序进行预装入处理,生成暂时运行时间执行形式,这样,程序起动就能够从最初的第1次开始,利用后装入处理置换为通常的装入处理,能够缩短程序起动所需要的处理时间。
另外,本发明的程序执行处理方法,具有下面所述步骤,即将所述接收的程序存入程序存储单元的程序存储步骤、将所述程序存储单元中存储的程序变换为运行时间执行形式的装入步骤、将所述装入步骤中变换的运行时间执行形式或所述程序存储单元中存储的程序变换为暂时运行时间执行形式的变换步骤、将所述变换步骤中变换的暂时运行时间执行形式存入暂时运行时间执行形式存储单元的暂时运行时间执行形式存储步骤、在有程序起动的指示时判断所述暂行运行时间执行形式存储单元中是否存在暂时运行时间执行形式的判断步骤、在所述判断步骤的判断结果是,所述暂时运行时间执行形式存储单元中存在暂时运行时间执行形式时,将所述暂时运行时间执行形式存储单元中存储的暂时运行时间执行形式变换为运行时间执行形式的后装入步骤、以及解释执行所述后装入步骤中变换的运行时间执行形式的解释步骤。
另外,本发明的程序是使计算机执行上述的程序执行处理方法用的程序。该程序可以是以存储在计算机可读取的记录媒体中的状态提供给信息终端装置等的计算机,也可以是通过通信线路提供给信息终端装置等的计算机。
附图说明
图1为本发明实施形态的便携信息终端的硬件构成图。
图2为本发明实施形态的程序执行处理终端装置的构成方框图。
图3为本发明实施形态的类装入处理的数据变换关系图。
图4为本发明实施形态的程序结构的一个例子。
图5为本发明实施形态的运行时间执行形式的结构的一个例子。
图6为本发明实施形态的运行时间执行形式的结构的一个例子。
图7为本发明实施形态的暂时运行时间执行形式的结构的一个例子。
图8为本发明实施形态的暂时运行时间执行形式的结构的一个例子。
图9为本发明实施形态的装入单元动作顺序的一个例子的流程图。
图10为表示本发明实施形态的运行时间节省单元的动作顺序一个例子的流程图。
图11为表示本发明实施形态的预装入单元的动作顺序一个例子的流程图。
图12为表示本发明实施形态的后装入单元的动作顺序一个例子的流程图。
图13表示本发明实施形态的运行时间节省处理时的画面显示的一个例子。
图14所示为本发明实施形态的预装入处理时的画面显示一个例子。
图15所示为本发明实施形态的程序执行处理终端装置的构成方框图。
图16所示为本发明实施形态的设定信息的输入画面的一个例子。
图17所示为本发明实施形态的解释履历信息的一个例子。
图18所示为本发明实施形态的程序执行处理终端装置的构成方框图。
图19所示为本发明实施形态的预装入控制单元动作顺序一个例子的流程图。
图20所示为本发明实施形态的基准时间的输入画面的一个例子。
图21所示为本发明实施形态的基准时刻的输入画面的一个例子。
图22所示为本发明实施形态的内部状态转移的一个例子。
图23所示为本发明实施形态的预装入处理对应表的一个例子。
图24所示为本发明实施形态的程序执行处理终端装置的构成方框图。
图25所示为本发明实施形态的其它应用程序指示通知单元的处理概要的一个例子。
具体实施方式
以下使用附图详细说明本发明实施形态。
实施形态1
在采用便携信息终端的程序下载服务中,由于采用Java(TM)结构的设备已经普及,因此本发明通过将该结构扩展就能够实现。在本说明中,适当掺入在采用Java(TM)结构时会变成什么样的实施形态内容进行说明。
图1所示为本发明实施形态1的便携信息终端硬件构成图。在图1中,具有中央处理装置(CPU)1、存储装置2、输入装置3、输出装置4及接收发送装置5,它们分别通过系统总线6连接。
存储装置2由ROM、RAM及硬盘等构成,用作为CPU1进行处理时使用的存储区及存储程序本身的区域。输入装置3由键盘或按键、鼠标器及话筒等构成,对来自用户的指示进行输入处理。输出装置4由显示器等显示装置及扬声器等构成,对由CPU1输出的数据进行画面显示或对声音数据进行重放等处理。接收发送装置5通过无线或有线传送路径进行数据通信,CPU1能够通过接收发送装置5从外部装置(未图示)下载程序等数据。
图2所示为本实施形态的程序执行处理装置的构成方框图。程序执行处理终端装置具有程序下载单元101、装入单元102、运行时间节省单元103、预装入单元104、后装入单元105、解释单元106、控制单元107、程序存储单元301、暂时运行时间执行形式存储单元302及运行时间执行形式存储单元303。
程序下载单元101从程序传送方接收程序,将接收的程序通过控制单元107存入程序存储单元301。程序下载单元101可以采用已有的便携信息终端具有的程序下载结构来实现。
装入单元102根据来自控制单元107的请求,进行将程序存储单元301中存储的程序变换为运行时间执行形式,并存入运行时间执行形式存储单元303的处理。又,通知解释单元106开始执行程序。再将变换的运行时间执行形式通知运行时间节省单元103,请求进行运行时间节省处理。
运行时间节省单元103根据来自装入单元102的请求,进行将运行时间执行形式存储单元303中存储的运行时间执行形式变换为暂时运行时间执行形式,并存入暂时运行时间执行形式存储单元302的处理。
预装入单元104根据来自控制单元107的请求,进行将程序存储单元301中存储的程序变换为暂时运行时间执行形式,并存入暂时运行时间形式存储单元302的处理。
后装入单元105进行将暂时运行时间执行形式存储单元302中存储的暂时运行时间执行形式变换为运行时间执行形式,并存入运行时间执行形式存储单元303的处理。又通知解释单元106开始执行程序。
解释单元106根据来自装入单元102或后装入单元105的执行开始通知,对运行时间执行形式存储单元303中存储的运行时间执行形式进行解释执行。在采用Java(TM)结构的情况下,该解释单元106可以采用已有的Java(TM)虚拟机来实现。
控制单元107在有进行程序起动的指示时,判断在暂时运行时间执行形式存储单元302中是否存在起动对象程序的暂时运行时间执行形式,不存在时,请求装入单元102使其变换为运行时间执行形式,存在时,请求后装入单元105使其变换为运行时间执行形式。为了将暂时运行时间执行形式变换为运行时间执行形式,如下面所述,只要将大部分的数据建议拷贝,同时仅进行将间接参照表现的地址数据变换为实际地址即可,因此与将程序变换为运行时间执行形式的情况相比,处理时间短。通过这样,对于已经保持运行时间执行形式的程序,就能够缩短起动时间。
程序存储单元301存储有程序下载单元101从程序传送方接收的程序。另外,在利用以闪速存储器等为代表的非易失性存储器、即便携信息终端的电源即使切断也能够继续保持记录的器件来实现时,能够防止便携信息终端的电源切断时再下载程序。另外,不仅是下载的程序,也可以存储预先确定的程序。再有,也可以采用ROM等存储数据不能删除的存储器,预先存储的程序是固定的。
运行时间执行形式存储单元303存储有装入单元102或后装入单元105变换的运行时间执行形式。由于运行时间执行形式是作为进行解释执行的对象,解释单元106直接进行访问的存储区,因此最好利用能够高速访问的存储器件来实现。例如它可使用易失性的RAM等。
暂时运行时间执行形式存储单元302存储有运行时间节省单元103变换的暂时运行时间执行形式。暂时运行时间执行形式存储单元302不特别注意是易失性或非易失性。为了缩短程序起动时间,与实现程序存储单元301所用的器件相比,最好采用数据访问速度更高的存储器件。另外,作为暂时运行时间执行形式存储单元302,如果采用例如闪速存储那样的非易失性存储器,则由于能够将刚切断便携信息终端电源之前存入暂时运行时间执行形式存储单元302的暂时运行时间执行形式,在一旦切断电源之后,下一次接通电源时加以利用,因此比较理想。
另外,在本实施形态中,是假设同时具有运行时间节省单元103及预装入单元104,但本发明不限定于此。也就是说,也可以只具有某一单元。在这种情况下也与本实施形态相同,能够缩短程序的起动时间。
图3所示为用装入单元102、运行时间节省单元103、预装入单元104及后装入105等各处理单元进行的数据流的一个例子。所示为从程序传送方下载程序201之后到对运行时间执行形式203进行解释执行为止的数据变换流。
首先,程序下载单元101接收从程序传送方发送的程序201,存入程序存储单元301。
然后,一旦有启动程序201的指示,就根据来自控制单元107的指示,装入单元102将程序201变换为运行时间执行形式203,解释单元106对运行时间执行形式203进行解释执行。而且同时运行时间节省单元103将运行时间执行形式203变换为暂时运行时间执行形式202,将其存入暂时运行时间执行形式存储单元302。若再次得到程序201的起动指示,就根据来自控制单元107的指示,后装入105将暂时运行时间执行形式202变换为运行时间执行形式203,解释单元106对运行时间执行形式203进行解释执行。
还有,以下是表示进行预装入处理时的数据变换流。预装入单元104将程序201变换为暂时运行时间执行形式202,存入暂时运行时间执行形式存储单元302。若得到进行程序201起动的指示,就根据来自控制单元107的指示,后装入105将暂时运行时间执行形式202变换为运行时间执行形式203,解释单元106对运行时间执行形式203进行解释执行。
图4至图8所示为图3中说明的程序201、运行时间执行形式203及暂时运行时间执行形式202的结构的一个例子。以下依次进行说明。
程序201能够作为具有可利用移动电话解释执行的形式的数据获得。在移动电话中采用Java(TM)结构时,下载Java(TM)的执行形式、即类文件作为程序201。
图4所示为程序201的结构的一个例子。图4仿照C语言将程序201中记录的数据内容用结构表现。u1型、u2型及u4型分别表现为无符号的1字节、2字节和4字节的数据量。在Java(TM)中,程序201通常是由1个及1个以上的类文件构成,而类文件本身的结构无论什么类文件都相同。类文件结构本身在文献(Tim Lindholm and Frank Yellin:“The Java(TM)Virtual MachineSpecification”,Addison-Wesley,1997)中有详细说明。
接着,图5及图6所示为运行时间执行形式203的结构的一个例子。运行时间执行形式203作为运行时间执行形式存储单元303中存储的连续的存储器图像实现。类文件格式本身如前所述规定,但关于运行时间形式的格式,则取决于Java(TM)虚拟机的安装,没有进行任何规定。
在图5及图6中,将运行时间执行形式203作为以类为单位的存储器图像表示。Java(TM)的实际程序虽然由2个或2个以上的类文件构成的情况也比较多,但在那种情况下同样的存储器图像仅生成类文件的数目。表现类的存储器图像,其中包含更低层结构、即常数池结构的运行时间形式、接口结构的运行时间形式、信息组(field)结构的运行时间形式、方法结构的运行时间形式及属性结构的运行时间形式。
在图5及图6的存储器图像中用白色方框表示的数据意味着图4的同名数据值被原封不动加以纪录。在图5及图6的存储器图像中用网格表现的数据是表现指向该数据在存储器图像中的其它数据存储地点的地址的参照值(指针)。具体如下所示。
“*constant_pool”是指向常数池结构的运行时间形式的头部的指针,“(constant_pool*)this_class”及“(constant_pool*)super_class”是指向常数池结构中的入口地址的指针,“*interfaces”是指向接口结构的运行时间形式的头部的指针,“*fields”是指向信息组结构的运行时间形式的头部的指针,“*methods”是指向方法结构的运行时间形式的头部的指针。“*attributes”是指向属性结构的运行时间形式的头部的指针。
另外,指针值不一定指向与包含该指针的相同类的存储器图像中的结构,也有指向其它类的存储器图像的结构的情况。
运行时间执行形式203的存储器图像包含指针,该指针值不在存储器图像生成时决定为一定值(这是由于指针值因在运行时间执行形式存储单元303中的存储器图像的配置位置而相应变化)。
更详细来说,在图5及图6中所画出的指针以外,在常数池结构中的入口、接口结构中的入口、信息组结构中的入口、方法结构中的入口、以及属性结构中的入口的各数据中也有可能包含指针值,但在本说明中加以省略。
接着,图7及图8所示为暂时运行时间执行形式202的结构的一个例子。暂时运行时间执行形式202存入暂时运行时间执行形式存储单元302。可以作为存储器图像加以记录,也可以作为将数据以字节串形式的文件加以记录,任何一种形式均可,但这里决定表示作为与图5及图6的表现一样的存储器图像。这里所示的是与图5及图6所示的运行时间执行形式203的实施形态相对应的暂时运行时间执行形式202的实现例子。
在图7及图8的存储器图像中,与图5及图6相比,在头部新加入了以下的数据。
“class_id”是对存储器图像以类为单位唯一提供的识别数据(类的识别号)。在生成多个类的存储器图像的情况下,该class_id的值不可重复。“runtime_image_size”是记录由本暂时运行时间执行形式生成的运行时间执行形式的存储器大小。
另外,在图7及图8的存储器图像中,与图5与图6不同,没有指针值。在图5及图6中作为指针表现的数据全部变换为下面的2个数据的组(在图7及图8中去掉网格的部分)。
“ref_class_id”指定类的识别号。在其后续数据中一定跟着入口号。“入口号”表示常数池结构/接口结构/信息组结构/方法结构/属性结构中的数据的入口号。
在暂时运行时间执行形式202的实施形态中,将运行时间执行形式203中作为指针表现的部分全部变换为“类ID”+“入口号”的形式(间接参照表现)进行记录。
如前所述,运行时间执行形式203中的指针表现,在有的情况下指别的类的储存器图像结构。为了确定是哪一个类的存储器图像结构,入口号一定以与class-id组合的形式表现。
由于暂时运行时间执行形式203的存储器图像不包含指针,因此不取决于暂时运行时间执行形式存储单元302中的存储器图像的配置位置,而由存储器图像生成时唯一的数据串决定。即,表现某类的暂时运行时间执行形式的记录内容始终保持所谓唯一的状态。
以上是有关各数据形式的结构的说明。
下面说明图2的构成图中所画的各处理单元进行的处理内容。
图9所示为装入单元102中的数据变换处理流程的一个例子。
首先,计算利用装入单元102生成的运行时间执行形式203的存储器使用量(步骤601)。这可以检查程序201中包含的类文件,并根据表示constant_pool_count、interfaces_count、fields_count、methods_count、attributes_count等各结构的入口数的数值及各结构的入口的大小算出。
根据在步骤601计算出的值,检查运行时间执行形式203的存储地点、即运行时间执行形式存储单元303中是否存在保存存储区域的空白区(步骤602)。在不存在空白区时(步骤602为N),判断为不能够继续利用装入单元102进行数据变换处理,取消装入处理本身,通知用户程序不可能起动,并结束处理(步骤603)。另外,在存在空白区时(步骤602为Y),则在运行时间执行形式存储单元303中确保步骤601中计算的值的份额的存储器区域(步骤604)。
接着,检查类文件,将运行时间执行形式203中作为指针值表现的部分以外的数据加以拷贝,以此将数据存入运行时间执行形式存储单元303(步骤605)。这相当于图5与图6的存储器图像中用白色方框表示的数据。
最后,根据类文件计算运行时间执行形式203中作为指针值表现的数据,将计算出的数据存入运行时间执行形式存储单元303,然后结束从程序201向运行时间执行形式203的变换处理(步骤606)。这相当于图5及图6的存储器图像中的用网格表现的方框所表示的数据。
图10所示为运行时间节省单元103中的数据变换处理流程的一个例子。
首先,计算利用运行时间节省单元103生成的暂时运行时间执行形式202的存储器使用量(步骤701)。这可以检查运行时间执行形式203,并根据表示constant_pool_count、interfaces_count、fields_count、methods_ount、attributes_count等各结构的入口数的数值及各结构的入口的大小算出。
根据在步骤701计算出的值,检查暂时运行时间执行形式202的存储地点即暂时执行形式存储单元302是否存在保存存储器区域的空白区(步骤702)。在不存在空白区时(步骤702为N),则判断为不能够继续利用运行时间节省单元103进行数据变换处理,则取消运行时间节省处理本身,然后结束处理(步骤703)。另外,在存在空白区时(步骤702为Y)。则在暂时运行时间执行形式存储单元302中确保步骤601中计算的值的份额的存储器区域(步骤704)。
接着,对成为运行时间节省处理对象的所有类给予识别号,将数据作为暂时运行时间执行形式202的class_id数据存入暂时运行时间执行形式存储单元302(步骤705)。
作为运行时间节省处理的处理源的数据、即运行时间执行形式203,计算在运行时间执行形式存储单元303中用于其记录的存储器量的数值,作为暂时运行时间执行形式202的runtime_image_size数据存入暂时运行时间执行形式存储单元302(步骤706)。
检查运行时间执行形式203的存储器图像,将运行时间执行形式203中作为指针值表现的部分以外的数据作为暂时运行时间执行形式202的数据进行拷贝,通过这样将数据存入暂时执行形式存储单元302(步骤707)。这相当于图7及图8的存储器图像中用白色方框表示的数据。
最后,检查运行时间执行形式的存储器图像,对于运行时间执行形式203中作为指针值表现的数据进行变换,将变换的数据存入暂时运行时间执行形式存储单元302,然后结束从运行时间执行形式203向暂时运行时间执行形式202的变换处理(步骤708)。指针值的数据变换为“包含该指针指向的结构的类的识别号”及“结构中的入口号”的形式。这相当于图7及图8的存储器图像中class_id及runtime_image_size以外的用网格表现的方框所表示的数据。
图11所示为预装入单元104中的数据变换处理流程的一个例子。
首先,计算利用预装入单元104生成的的暂时运行时间执行形式202的存储器使用量(步骤801),这可以检查处理前的类文件,根据constant-pool-count、interfaces-count、fields-count、methods-count、attributes-count等表示各结构的入口数的数值及各结构的入口的大小算出。
根据在步骤801计算出的值,检查暂时运行时间执行形式202的存储地点即暂时运行时间执行形式存储单元302中是否存在保存存储区域的空白区(步骤802)。在不存在空白区时(步骤802为N),则判断为不能够继续利用预装入单元104进行数据变换处理,取消预装入处理本身,并结束处理(步骤803)。而在存在空白区时(步骤802为Y),则在暂时运行时间执行形式存储单元302中确保步骤801中计算的值的份额的存储器区域(步骤804)。
然后,对成为预装入处理对象的所有类给予识别号,将数据作为暂时运行时间执行形式202的class_id数据存入暂时运行时间执行形式存储单元302(步骤805)。
对于成为预装入处理的处理源的数据、即程序201,计算变换为运行时间执行形式203时使用的存储器量的数值,作为暂时运行时间执行形式202的runtime_image_size数据存入暂时运行时间执行形式存储单元302(步骤806)。
检查程序201,将暂时运行时间执行202中作为对其它结构的参照值表现的部分以外的数据作为暂时运行时间执行形式202的数据进行拷贝(步骤807)。这相当于图7及图8的存储器图像中用白色方框表示的数据。
最后,检查程序201,将暂时运行时间执行形式202中作为对其它结构的参照值表现的部分的数据变换为“包含参照对象的结构的类的识别号”及“结构中的入口号”的形式,结束从程序201向暂时运行时间执行形式202的变换处理(步骤808)。
这相当于图7及图8的存储器图像中class_id及runtime_image_size以外的用网格方框表示的数据。
图12所示为后装后单元105中的数据变换处理流程的一个例子。
首先,计算利用后装入单元105生成的运行时间执行形式203的存储器使用量(步骤901)。这通过参照暂时运行时间执行形式202的数据runtime_image_size能够简单地得到。
根据在步骤901计算出的值,检查运行时间执行形式203的存储地点、即运行时间执行形式存储单元303中是否存在保存存储器区域的空白区(步骤902)。在不存在空白区时(步骤902为N),判断为不能够继续利用后装入单元105进行处理,通知用户取消后装入处理本身,程序不可能起动,并结束处理(步骤903)。而在存在空白区时(步骤902Y),则在运行时间执行形式存储单元303中确保步骤901中计算的值的份额的存储器区域(步骤904)。
接着,检查暂时运行时间执行形式202,将运行时间执行形式203中作为指针值表现的部分以外的数据加以拷贝,通过这样将数据存入运行时间执行形式存储单元303(步骤905)。这相当于图5及图6的存储器图像中的用白色方框表示的数据。
最后,计算运行时间执行形式203中作为指针值表现的数据,将计算出的数据存入运行时间执行形式存储单元303,结束从暂时运行时间执行形式202向运行时间执行形式203的变换处理(步骤906)。该计算可以通过将暂时运行时间执行形式202中的参照值、即“包含参照对象的结构的类的识别号”及“结构中的入口号”的形式的数据变换为指针来实现。该数据相当于图5及图6的存储器图像中用网格表现的方框所表示的数据。
根据上述,通过预先保持暂时运行时间执行形式,能够仅通过后装入处理来起动执行程序。通过这样,(1)生成的运行时间执行形式203的存储器使用量的计算简单;(2)暂时运行时间执行形式202的存储器图像,与程序201(类文件形式)的数据相比,以非常接近运行时间执行形式203的存储器图像的形式来保存数据,指针值以外几乎都能够以将存储器图像加以拷贝的形式简单地得到运行时间执行形式203。利用上述两大效果,能够在大幅度减少图像生成的处理量,能够缩短程序起动时间。
图13为运行时间节省处理时的画面显示的说明图。
另外,在本发明的实施形态1中,设在程序装入后,继续进行运行时间节省处理。即运行时间节省单元103在利用装入单元102进行装入处理处理的结束时刻,生成暂时运行时间执行形式,并检查存储的存储器区域是否存在空白区,在判断为有空白时,只要立即进行运行时间节省处理即可。
在图13(a)中所示的例子是,改变装入单元102在将程序201变换为运行时间执行形式203的处理中的便携信息终端的显示画面输出、以及运行时间节省单元103在将运行时间执行形式203变换为暂时运行时间执行形式202的处理中的便携信息终端的显示画面输出,并将处理状况通知用户。在这种情况下,用户将运行时间节省处理看作是多余的处理,在一直到程序开始执行为止的等待时间内有可能感到格外焦急。
在图13(b)中所示的例子是,不特意改变这两个处理的显示画面输出,使其为同一画面,不通知用户这些处理的分界线。通过这样,将运行时间节省处理的处理时间隐藏在装入处理中,可以使用户不增加无谓的焦急。
图14为预装入处理时的画面显示的说明图。
另外,在本发明的实施形态1中,在程序下载时,若生成暂时运行时间执行形式并存储的存储器区域存在空白区,则无条件地进行预装入处理。即预装入单元104在下载处理结束后,生成暂时运行时间执行形式并检查存储的存储器区域是否存在空白区,在判断为有空白区时,只要直接进行预装入处理即可。
在图14(a)中所示的例子是,改变程序下载单元101在将程序201下载的处理中的便携信息终端的显示画面输出、以及预装入单元104在将程序201变换为暂时运行时间执行形式202的处理中的便携信息终端的显示画面输出,并将处理状况通知用户。在这种情况下,用户将预装入处理看作是多余的处理,在一直到程序开始执行为止的等待时间内有可能感到格外焦急。
在图4(b)中所示的例子是,不必特意改变这两个处理的显示画面输出,使其为同一画面,不通知用户这些处理的分界线。通过这样,将预装入处理的处理时间隐藏在下载处理中,可以使用户不增加无谓的焦急。
根据上述,利用运行时间节省单元103或预装入单元104,能够预先保持暂时运行时间执行形式,能够仅通过后装入处理来解释执行程序,通过这样能够缩短起动时间。
实施形态2
在本发明的实施形态1中,利用运行时间节省单元进行的运行时间节省处理是在程序装入之后,继续对装入的程序进行的处理。但是,根据除此以外的判断基准,可以选择决定运行时间节省处理的对象程序。以下用附图说明详细内容。
图15所示为本发明实施形态2的程序执行处理终端装置的构成方框图。由程序下载单元101、装入单元102、预装入单元104、后装入单元105、解释单元106、控制单元107、运行时间节省单元110、程序存储单元301、暂时运行时间执行形式存储单元302、运行时间执行形式存储单元303、设定信息存储单元304及解释履历存储单元305构成。程序下载单元101、装入单元102、预装入单元104、后装入单元105、解释单元106、控制单元107、程序存储单元301、暂时运行时间执行形式存储单元302及运行时间执行形式存储单元303与图2中说明的相同。这里,对于新追加的运行时间节省单元110、设定信息存储单元304及履历存储单元305进行说明。
运行时间节省单元110根据设定信息存储单元304或解释履历存储单元305中存储的设定信息或履历信息,选择决定运行时间节省处理的开始时刻及对象程序。
设定信息存储单元304存储有识别进行运行时间节省处理的对象程序的设定信息。运行时间节省单元110参照该设定信息,在装入指定为运行时间节省处理对象的程序(指定高速起动的程序)时,继续进行运行时间节省处理。
设定信息存储单元304中存储的设定信息,是例如根据用户的输入指定来决定的。图16所示为输入画面的一个例子。用户可以从便携信息终端的显示画面上显示的程序一览表,对每个程序指定高速起动的ON或OFF。在图16中,“Schedule”及“Memo Pad”的程序指定作为高速起动ON。在指定作为高速ON的程序装入时,进行运行时间节省处理,在除此以外的程序装入时,不进行运行时间节省处理。也可以与用户的输入指定无关地,始终对特定的程序指定高速起动。
解释履历储单元306存储有各程序过去进行解释执行的履历信息。运行时间节省单元110参照该履历信息,在根据履历信息判断为使用频次高的程序装入时,继续进行运行时间节省处理。
图17所示为解释履历存储单元305中存储的履历信息的一个例子。在图17中,对程序存储单元301中存储的全部程序的每个程序,将至今起动了几次的信息及最后起动的时刻是什么时候这样的信息作为表格加以保持。另外,也可以包含平均起动时间及起动间隔等其它信息,另外也可以只有例如起动次数这样的一个信息。在某程序装入时,关于对该程序判断是否进行运行时间节省处理,可以考虑采用例如以下的判断基准。另外,也可以是采用解释履历存储单元305的履历信息的其它判断基准。
第1判断基准是,在曾经起动3次及以上的程序装入时,认为该程序频繁使用,将进行运行时间节省处理。关于选择基准数值也可以不是3次,而是任意数。
第2判断基准是,在全部程序中,对于至今起动次数最多的前2位的程序,认为该程序频繁使用,将进行运行时间节省处理。关于选择基准数值也可以不是前2位,而是任意数。
根据以上所述,能够选择运行时间节省处理的对象程序,能够选择必须高速起动的程序或使用频次高的程序,实施运行时间节省处理。因此,能够防止因不需要高速起动的程序或使用频次低的程序的暂时运行时间执行形式而占用完暂时运行时间执行形式存储单元302的存储区域。即,能够防止因暂时运行时间执行形式存储单元302的空白存储区域不足而导致必须高速起动的程序或使用频次高的程序的运行时间节省处理失败地结束,能够实现有效的运行时间节省处理。
实施形态3
在本发明的实施形态1中,利用预装入单元进行的预装入处理是在程序下载时,对继续下载的程序进行的处理。但是,可以根据除此以外的判断基准,选择决定预装入处理的开始时刻及对象程序。
图18所本发明实施形态3的程序执行处理终端装置的构成方框图。由程序下载单元101、装入单元102、后装入单元105、解释单元106、控制单元107、运行时间节省单元110、预装入单元111、预装入控制单元112、程序存储单元301、暂时运行时间执行形式存储单元302、运行时间执行形式存储单元303、设定信息存储单元304及解释履历存储单元305构成。程序下载单元101、装入单元102、后装入单元105、解释单元106、控制单元107、运行时间节省单元110、程序存储单元301暂时运行时间执行形式存储单元302、运行时间执行形式存储单元303、设定信息存储单元304及解释履历存储单元305、与图15中说明的相同。这里,对于新追加的预装入单元111及预装入控制单元112进行说明。
预装入单元111从预装入控制单元112接收通知,通过这样进行将程序存储单元301中记录的程序变换为暂时运行时间执行形式、并存入暂时运行时间执行形式存储单元302的预装入处理。特别是在通知了指定特定程序的标识符时,选择所通知的程序作为预装入处理对象。另外,在从控制单元107接收预装入开始指示而下载程序时,也可以继续实施预装入处理。另外,根据设定信息存储单元304或解释履历存储单元305中存储的设定信息或履历信息,选择决定预装入处理的开始时刻及对象程序。
预装入控制单元112根据便携信息终端的设备状态,决定预装入开始的时刻,通知预装入单元111开始处理。另外,用预装入控制单元112决定预装入对象的程序,可以将已决定的程序通知预装入单元111,也可以不指定预装入对象的程序而仅通知开始的时刻,由预装入单元111来选择处理对象的程序。另外,作为设备状态,可以考虑采用例如以下的各判断基准。
第1判断基准是,若便携信息终端处于一定时间以上没有接受任何用户输入操作(等待)的状态,则进行预装入处理。在这种情况下,预装入控制单元112保持预先设定的时间长度数据(基准时间),测量对便携信息终端没有用户输入操作(等待)状态的连续时间,通过与基准时间进行比较,来决定开始时刻。
图19所示为预装入控制单元112中的处理流程的一个例子。
首先,将等待状态的连续时间初始化(步骤1501)。
作为便携信息终端的设备状态,检测是否处于一定时间以上没有接受任何的用户输入(等待)的状态(步骤1502)。在不是等待状态时(步骤1502为N),则转移至步骤1501,重复进行处理。而在是等待状态时(步骤1502为Y),则更新等待状态的连续时间(步骤1503),进行该连续时间的长度与基准时间的比较(步骤1504)。
在等待状态的连续时间超过基准时间之前(步骤1504为N),重复步骤1502至步骤1504。在等待状态的连续时间超过基准时间时(步骤1504为Y),则决定为预装入处理的开始时刻,通知预装入单元111开始处理。
另外,基准时间可以通过ROM固化等方式在便携信息终端中为固定的值,也可以利用用户输入来改变数值。图20所示为由用户设定时的显示画面的一个例子。这里,设定15分钟作为基准时间,在等待状态的连续时间超过15分钟的时刻,开始预装入处理。
若采用第1判断基准,则由于在用户没有操作便携信息终端的期间进行预装入处理,因此预装入处理对用户来说是被隐藏起来。因而其优点是,不因执行预装入处理而给用户带来任何焦急心态。
第2判断基准是,在便携信息终端脱离等待状态时进行预装入处理。在这种情况下,预装入控制单元112通过检测出便携信息终端从等待状态转入用户进行输入操作等而进入非等待状态、即等待状态已结束的情况,以此决定开始时刻。
第3判断基准是,在便携信息终端中的内部时刻达到一定值时进行预装入处理。在这种情况下,预装入控制单元112保持预先设定的时刻数据(基准时刻),将实际的当前时刻与基准时刻进行比较,根据检测出一致的情况决定开始时刻。
另外,基准时刻可以通过ROM固化等方式在便携信息终端中为固定的值,也可以利用用户输入来改变数值。图21所示为由用户设定时的显示画面的一个例子。这里,设定13时15分作为基准时刻,在实际的当前时刻到达13时15分的时刻,开始预装入处理。
第4判断基准是,在便携信息终端接通电源时进行预装入处理。在这种情况下,预装入控制单元112通过电源接通来决定开始时刻。便携信息终端的电源输入的检测结构本身,可以用从已有的便携信息终端所用的器件来构成的事件通知等的结构来实现。
第5判断基准是,在便携信息终端是折叠式形状的终端(例如折叠式的移动电话)时,在由用户开闭折叠式便携信息终端时进行预装入处理。在这种情况下,预装入控制单元112通过检测便携信息终端从关闭状态变成打开状态或便携信息终端从打开状态变成关闭状态,来决定开始时刻。便携信息终端的折叠开闭检测结构本身可以采用从已有的便携信息终端所用的器件来构成事件通知等结构来实现。
第6判断基准是,在便携信息终端与别的电子设备之间产生通信时进行预装入处理。在这种情况下,预装入控制单元112通过检测便携信息终端与别的电子设备之间产生数据通信来决定开始时刻,检测产生通信的结构本身可采用从已有的移动电话所用的器件构成的事件通知等结构来实现。
这里的所谓通信,具体地说可以认为有声音通话的呼入、用HTTP的数据通信、用FTP的数据通信、用SSL的数据通信及用IrDA的数据通信等。当然,也可以是便携信息终端支持的其它种类的通信。另外,根据发生通信而开始的预装入处理对象程序也可以选择与发生通信的种类相关联的程序。关于该程序的选择将在后面叙述(图23)。
第7判断基准是,在便携信息终端安装于别的电子设备或从其上卸下时进行预装入处理。在这种情况下,预装入控制单元112通过检测对便携信息终端上附加(装上)别的电子设备或将便携信息终端上附加(装上)的别的电子设备卸下来决定开始时刻。检测有外部设备装卸的情况的结构本身可采用从已有的便携信息终端所用的外部装置构成的事件通知等结构来实现。
这里的所谓外部装置,具体地说可以认为是SD卡等外部存储装置、蓝牙等功能扩展单元、USB连接器、耳机、话筒、电源连接器、充电器及键盘等。当然,也可是便携信息终端支持的其它种类的外部装置。另外,根据外部装置的装卸开始的预装入处理对象程序也可以选择与外部装置的种类相关联的程序。关于该程序的选择将在后面叙述(图23)。
第8判断基准是,在便携信息终端上安装的别的应用程序开始执行或结束执行时进行预装入处理。在这种情况下,预装入控制单元112通过检测便携信息终端上安装的别的应用程序开始执行或别的应用程序结束执行,来决定开始时刻。检测别的应用程序开始或结束执行的结构本身,可采用已有的便携信息终端所用的软件之间通信的结构来实现。
这里的所谓别的应用程序,具体地说只要是浏览器、邮件程序、记事本、媒体播放器等便携信息终端中安装的应用程序,则任何应用程序都行。另外,该别的应用程序也可以是用机器语言(本机的)描述的,也可以利用采用除Java(TM)等的其它执行系统的结构描述的。另外,随着别的应用程序的开始或结束而进行预装入处理的程序也可以选择有可能由开始执行的应用程序连带起动等、与该别的应用程序相关联的程序。关于该程序的选择将在后面叙述(图23)。
第9判断基准是,随着便携信息终端的用户输入操作,在进行一定的画面转移时进行预装入处理。在这种情况下,预装入控制单元112根据用户的输入操作,通过检测出便携信息终端内部状态发生转移的情况,决定开始时刻。另外,对每一内部状态,设定用户可输入操作的指标的组合,在进行特定的输入操作时,决定接下来的处理动作。即,内部状态是根据用户的输入操作或与外部的通信状况等依次转移下去的,多数情况下随着内部状态的转移改变显示画面。预装入控制单元112是在内部状态转移过程中,在进行预先设定的某特定转移时,对其进行检测。内部状态转移的检测本身可采用已有的便携信息终端所用的软件之间的通信的结构来实现。
图22所示为内部状态转移的一个例子。在该例子中,表示了“(1)菜单选择状态”、“(2)应用程序选择状态”、“(3)Java应用程序选择状态“等三个内部状态。若发生特定的内部状态转移(从图22(2)向(2)的转移),则预装入控制单元112就检测出该转移,通知预装入单元111开始处理。预装入单元111接受该通知,就开始程序的预装入处理。另外,随着内部状态转移而进行预装入处理的程序也可以选择与内部状态转移种类相关联的程序。关于该程序的选择将在后面叙述(图23)。
利用以上所述,可根据各判断基准来决定预装入处理的开始时刻,不仅在下载时能够实施有效的预装入处理。
下面说明如何选择作为处理对象的程序。
大致来说有两个选择基准,分为(A)预装入单元111选择程序的情况;(B)由预装入控制单元112通知处理对象程序的情况。(A)的情况下,可以考虑采用例如以下的各选择基准。
第1选择基准是从下载给便携信息终端的程序中适当(随机)选择。在这种情况下,预装入单元111只要从程序存储单元301中记录的程序中适当选择后进行预装入处理即可。
第2选择基准是根据设定信息存储单元304中存储的设定信息,从下载给便携信息终端的程序中选择作为指定高速起动的程序而设定的程序,进行预装入程序。除此以外的程序,则不作为预装入处理的对象。另外,对于设定信息存储单元304,已经在实施形态2中进行了说明。
第3选择基准是根据解释履历存储单元305中存储的履历信息,选择判断为使用频度高的程序,进行预装入处理。例如选择起动次数最多的程序或选择最近刚起动过的程序。另外,关于解释履历存储单元305,已经在实施形态2中进行了说明。
在(B)的情况下,按照预装入处理开始的条件,预装入控制单元112选择处理对象程序。在这种情况下,预装入控制单元112保持有预装入处理的开始条件与处理对象程序的对应表、即预装入处理对应表,根据该对应表,来选择决定处理对象程序。
图23所示为预装入处理对应表的一个例子。在表中,对开始预装入处理的条件分配称为条件号的唯一的ID号,对各条件进行识别。另外,在图23中用文字语句来描述开始条件,而与条件号的意义的对应关系,只要编号不重复即可。而且是用字符串来表现预装入处理对象程序的标识符,但也可以采用其它的表现方式。将与各预装入处理开始条件相关性高的、即认为下面执行可能性大的程序预先记录在预装入处理对应表中,通过这样容易得到利用预装入处理而使起动高速化的效果。例如,在将本发明用于带电子邮件收发功能的移动电话的情况下,在移动电话接收电子邮件时,由于估计用户发现接收了电子邮件后想要看电子邮件,因此比较有效的是设定为,在移动电话接收了电子邮件时,使其预装入邮件程序。通过这样,能够缩短用户在起动邮件程序时的起动时间。
根据上面所述,能够选择预装入处理的开始时刻及对象程序,能够选择必须高速起动的程序或使用频度高的程序,实施有效的预装入处理。
实施形态4
图24所示为本发明实施形态4的程序执行处理终端装置的构成方框图。由程序下载单元101、装入单元102、运行时间节省单元110、后装入单元105、解释单元106、控制单元107、预装入单元113、其它应用程序指示通知单元114、程序存储单元301、暂时运行时间执行形式存储单元302、运行时间执行形式存储单元303、设定信息存储单元304及解释履历存储单元305构成。程序下载单元101、装入单元102、运行时间节省单元110、后装入单元105、解释单元106、控制单元107、程序存储单元301、暂时运行时间执行形式存储单元302、运行时间执行形式存储单元303、设定信息存储单元304及解释履历存储单元305与图15中说明的相同。这里,对于新追加的预行装入单元113及其它应用程序指示通知单元114进行说明。
预装入单元113从其它应用程序指示通知单元114接收通知,通过这样进行将程序存储单元301中记录的程序变换为暂时运行时间执行形式、并存入暂时运行时间执行形式存储单元302的预装入处理。特别是在通知指定特定程序的标识符时,选择所通知的程序作为预装入处理对象。另外,通过从控制单元107接收开始预装入的指示,在下载程序时,也能够继续实施预装入处理。
其它应用程序指示通知单元114,通知预装入单元113,有从便携信息终端上安装的其它应用程序来的开始预装入的指示。
图25所示为其它应用程序指示开始预装入的情况下的处理概要的一个例子。
从其它应用程序接收开始预装入的指示的结构本身可以通过在便携信息终端中具有例如能够从其它应有程序的源代码中调用的API来实现。通过调用该API,其它应用程序指示通知单元114进行处理,指示预装入单元113开始进行预装入处理。在图25中,所示的例子是,用preloading_start表示的API起到从其它应用程序进行调用,并通知预装入单元113开始进行预装入处理的作用。
另外,进行预装入处理的程序,也可以在API调用时一起指定。在图25中所示的例子是,作为API的变量指定程序。变量program_id表示程序存储单元301中存储的程序的标识符,设利用Proloading_start的处理对预装入单元113进行的通知也包含program_id的信息。预装入单元113接收该program_id的信息,选择预装入处理的程序。另外,也可以不指定程序,预装入单元113选择执行下一个预装入的对象程序。
根据以上所述,可以不根据设备状态来决定预装入处理发生的触发动作,而在正在执行的应用程序中自由指定。即,通过生成调用特定程序的预装入处理那样的应用程序,在执行该应用程序的便携信息终端中进行对接下来的预定有效等特定程序进行预装入处理,通过这样能够缩短特定程序的起动时间。
工业上的实用性
采用本发明,在起动利用程序传送服务下载给便携信息终端的例如Java(TM)等编制的程序时,通过进行预装入处理或运行时间节省处理,能够缩短程序的起动时间。

Claims (28)

1.一种程序执行处理终端装置,是对接收的程序进行解释执行处理的终端装置,其特征在于,具有
存储所述接收的程序的程序存储单元;
将所述程序存储单元中存储的程序变换为运行时间执行形式的装入单元;
存储所述装入单元变换的运行时间执行形式或根据所述程序存储单元中存储的程序生成的暂时运行时间执行形式的暂时运行时间执行形式存储单元;
将所述暂时运行时间执行形式存储单元中存储的暂时运行时间执行形式变换为运行时间执行形式的后装入单元;
对运行时间执行形式进行解释执行的解释单元;以及
在有进行程序起动的指示时,判断所述暂时运行时间执行形式存储单元中是否存在暂时运行时间执行形式,在不存在时,向所述装入单元请求进行向运行时间执行形式的变换,而在存在时,向所述后装入单元请求进行向运行时间执行形式的变换的控制单元。
2.如权利要求1所述的程序执行处理终端装置,其特征在于,
还具有将所述装入单元变换的运行时间执行形式变换为暂时运行时间执行形式的运行时间节省单元,
所述暂时运行时间执行形式存储单元存储所述运行时间节省单元变换的暂时运行时间执行形式。
3.如权利要求1所述的程序执行处理终端装置,其特征在于,
还具有进行将所述程序存储单元中存储的程序变换为暂时运行时间执行形式的预装入处理的预装入单元,
所述暂时运行时间执行形式存储单元存储所述预装入单元变换的暂时运行时间执行形式。
4.如权利要求1所述的程序执行处理终端装置,其特征在于,
还具有存储利用所述装入单元变换的运行时间执行形式的运行时间执行形式存储单元,
运行时间执行形式包含表示所述运行时间执行形式存储单元中该运行时间执行形式中所包含的规定数据的存储地址的指针,
所述暂时运行时间执行形式包含利用间接参照表现表示与所述指针相当的信息的参照值数据。
5.如权利要求1所述的程序执行处理终端装置,其特征在于,所述暂时运行时间执行形式包含表示该暂时运行时间执行形式变换为运行时间执行形式时的大小的数据。
6.如权利要求2所述的程序执行处理终端装置,其特征在于,
还具有将所述程序存储单元中存储的程序变换为暂时运行时间执行形式的预装入单元,
所述暂时运行时间执行形式存储单元存储所述运行时间节省单元及所述预装入单元变换的暂时运行时间执行形式。
7.如权利要求2所述的程序执行处理终端装置,其特征在于,将所述装入单元将程序变换为运行时间执行形式的处理中、以及所述运行时间节省单元将运行时间执行形式变换为暂时运行时间执行形式的处理中作为同一显示画面输出。
8.如权利要求2所述的程序执行处理终端装置,其特征在于,
还具有存储对所述程序存储单元中存储的程序的高速起动设定信息的设定信息存储单元,
所述运行时间节省单元根据所述设定信息存储单元中存储的高速起动设定信息,选择决定变换为暂时运行时间执行形式的程序。
9.如权利要求2所述的程序执行处理终端装置,其特征在于,
还具有存储对所述程序存储单元中存储的程序进行了解释执行的履历信息的解释履历存储单元,
所述运行时间节省单元根据所述解释履历存储单元中存储的履历信息,选择决定变换为暂时运行时间执行形式的程序。
10.如权利要求3所述的程序执行处理终端装置,其特征在于,连续进行接收程序的处理、以及所述预装入单元将程序变换为暂时运行时间执行形式后生成暂时运行时间执行形式的处理。
11.如权利要求10所述的程序执行处理终端装置,其特征在于,将接收程序处理中、以及所述预装入单元将程序变换为暂时运行时间执行形式后生成暂时运行时间执行形式的处理中作为同一显示画面输出。
12.如权利要求3所述的程序执行处理终端装置,其特征在于,
还具有存储对所述程序存储单元中存储的程序的高速起动设定信息的设定信息存储单元,
所述预装入单元根据所述设定信息存储单元中存储的高速起动设定信息,选择决定变换为暂时运行时间执行形式的程序。
13.如权利要求3所述的程序执行处理终端装置,其特征在于,
还具有存储对所述程序存储单元所存储的程序进行解释执行的履历信息的解释履历存储单元,
所述预装入单元根据所述解释履历存储单元中存储的履历信息,选择决定变换为暂时运行时间执行形式的程序。
14.如权利要求3所述的程序执行处理终端装置,其特征在于,
还具有根据所述信息终端装置的机器状态来决定进行向暂时运行时间执行形式变换的开始时刻,并请求所述预装入单元开始处理的预装入控制单元,
所述预装入单元在所述预装入控制单元请求开始时,进行将程序变换为暂时运行时间执行形式的处理。
15.如权利要求14所述的程序执行处理终端装置,其特征在于,
所述机器状态是用户没有对所述信息终端装置进行操作的等待状态的连续经过时间,
所述预装入控制单元根据比较所述等待状态的连续经过时间与预先设定的开始时间长度的结果,来决定开始时刻。
16.如权利要求14所述的程序执行处理终端装置,其特征在于,
所述机器状态是所述信息终端装置在内部管理的当前时刻,
所述预装入控制单元根据比较所述当前时刻与预先设定的开始时刻的结果,来决定开始时刻。
17.如权利要求14所述的程序执行处理终端装置,其特征在于,
所述机器状态是折叠式信息终端装置中的折叠终端开闭状态,
所述预装入控制单元根据所述折叠终端开闭状态的变化,来决定开始时刻。
18.如权利要求14所述的程序执行处理终端装置,其特征在于,
所述机器状态是与用户对所述信息终端装置的输入操作相应而转移的终端内部转移状态,
所述预装入控制单元根据所述终端内部转移状态,来决定开始时刻。
19.如权利要求14所述的程序执行处理终端装置,其特征在于,
具有记录表示所述预装入单元开始将程序变换为暂时运行时间执行形式的处理的条件与作为变换对象的程序的对应关系的对应信息的预装入处理对应存储单元,
所述预装入控制单元根据所述预装入处理对应存储单元中存储的对应信息,决定开始时刻,并选择决定作为变换为暂时运行时间执行形式的对象的程序。
20.如权利要求19所述的程序执行处理终端装置,其特征在于,在所述预装入处理对应存储单元存储的对应信息中,所述预装入单元开始将程序变换为暂时运行时间执行形式的处理的条件、与预计在满足该条件后由用户执行的程序建立对应关系。
21.如权利要求3所述的程序执行处理终端装置,其特征在于,
所述信息终端装置保持有不接收程序而能够工作的应用程序,
还具有接收来自所述应用程序的指示通知,并根据接收的来自所述应用程序的指示通知来决定进行向暂时运行时间执行形式的变换的开始时刻,请求所述预装入单元开始处理的预装入指示通知单元,
所述预装入单元在所述预装入指示通知单元请求开始时,进行将程序变换为暂时运行时间执行形式的处理。
22.如权利要求21所述的程序执行处理终端装置,其特征在于,
在来自所述应用程序的指示通知中,包含从所述程序存储单元中存储的程序判断特定程序用的程序标识符,
所述预装入指示通知单元指定接收的指示通知中所包含的程序标识符,请求所述预装入单元开始处理,
所述预装入单元根据来自所述预装入指示通知单元的开始请求中所包含的程序标识符,决定作为变换为暂时运行时间执行形式的对象的程序。
23.一种程序执行处理方法,是对接收的程序进行解释执行处理的方法,其特征在于,具有
将所述接收的程序存入程序存储单元的程序存储步骤、
将所述程序存储单元中存储的程序变换为运行时间执行形式的装入步骤、
将所述装入步骤中变换的运行时间执行形式或所述程序存储单元中存储的程序变换为暂时运行时间执行形式的变换步骤、
将所述变换步骤中变换的暂时运行时间执行形式存入暂时运行时间执行形式存储单元的暂时运行时间执行形式存储步骤、
在得到进行程序起动的指示时,判断所述暂时运行时间执行形式存储单元中是否存在暂时运行时间执行形式的判断步骤、
所述判断步骤的判断结果是,所述暂时运行时间执行形式存储单元中存在暂时运行时间执行形式时,将所述暂时运行时间执行形式存储单元中存储的暂时运行时间执行形式变换为运行时间执行形式的后装入步骤、以及
解释执行在所述后装入步骤变换的运行时间执行形式的解释步骤。
24.如权利要求23所述的程序执行处理方法,其特征在于,
在所述装入步骤中变换的运行时间执行形式存入运行时间执行形式存储单元,
运行时间执行形式包含表示所述运行时间执行形式存储单元中该运行时间执行形式中所包含的规定数据的存储地址的指针,
所述暂时运行时间执行形式包含利用间接参照表现表示与所述指针相当的信息的参照值数据。
25.如权利要求23所述的程序执行处理方法,其特征在于,所述暂时运行时间执行形式包含表示该暂时运行时间执行形式被变换为运行时间执行形式时的大小的数据。
26.一种程序,是对接收的程序进行解释执行处理用的程序,其特征在于,是使计算机执行下列步骤用的程序,所述步骤包含
将所述接收的程序存入程序存储单元的程序存储步骤、
将所述程序存储单元中存储的程序变换为运行时间执行形式的装入步骤、
将所述装入步骤中变换的运行时间执行形式或所述程序存储单元中存储的程序变换为暂时运行时间执行形式的变换步骤、
将所述变换步骤中变换的暂时运行时间执行形式存入暂时运行时间执行形式存储单元的暂时运行时间执行形式存储步骤、
在有进行程序起动的指示时,判断所述暂时运行时间执行形式存储单元中是否存在暂时运行时间执行形式的判断步骤、
在所述判断步骤的判断结果是所述暂时运行时间执行形式存储单元中存在暂时运行时间执行形式时,将所述暂时运行时间执行形式存储单元中存储的暂时运行时间执行形式变换为运行时间执行形式的后装入步骤、以及
解释执行所述后装入步骤中变换的运行时间执行形式的解释步骤。
27.如权利要求26所述的程序,其特征在于,
所述装入步骤中变换的运行时间执行形式被存入运行时间执行形式存储单元,
运行时间执行形式包含表示所述运行时间执行形式存储单元中该运行时间执行形式中所包含的规定数据的存储地址的指针,
所述暂时运行时间执行形式包含利用间接参照表现表示与所述指针相当的信息的参照值数据。
28.如权利要求26所述的程序,其特征在于,所述暂时运行时间执行形式包含表示该暂时运行时间执行形式变换为运行时间执行形式时的大小的数据。
CNB038019493A 2002-06-18 2003-06-03 程序执行处理终端装置和程序执行处理方法 Expired - Fee Related CN1310148C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP176855/2002 2002-06-18
JP2002176855 2002-06-18

Publications (2)

Publication Number Publication Date
CN1613061A true CN1613061A (zh) 2005-05-04
CN1310148C CN1310148C (zh) 2007-04-11

Family

ID=29728124

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038019493A Expired - Fee Related CN1310148C (zh) 2002-06-18 2003-06-03 程序执行处理终端装置和程序执行处理方法

Country Status (6)

Country Link
US (1) US7506323B2 (zh)
EP (1) EP1515232A4 (zh)
JP (1) JP4376181B2 (zh)
CN (1) CN1310148C (zh)
AU (1) AU2003241885A1 (zh)
WO (1) WO2003107186A1 (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100697416B1 (ko) * 2003-09-30 2007-03-20 교세라 가부시키가이샤 모바일 통신 단말기, 정보 제공 시스템 및 프로그램을기록한 컴퓨터 판독가능한 기록 매체
US7493596B2 (en) * 2004-06-30 2009-02-17 International Business Machines Corporation Method, system and program product for determining java software code plagiarism and infringement
US7539975B2 (en) * 2004-06-30 2009-05-26 International Business Machines Corporation Method, system and product for determining standard Java objects
US7647581B2 (en) * 2004-06-30 2010-01-12 International Business Machines Corporation Evaluating java objects across different virtual machine vendors
US9361137B2 (en) 2006-03-10 2016-06-07 International Business Machines Corporation Managing application parameters based on parameter types
US9727604B2 (en) * 2006-03-10 2017-08-08 International Business Machines Corporation Generating code for an integrated data system
US8160999B2 (en) * 2006-12-13 2012-04-17 International Business Machines Corporation Method and apparatus for using set based structured query language (SQL) to implement extract, transform, and load (ETL) splitter operation
US8219518B2 (en) 2007-01-09 2012-07-10 International Business Machines Corporation Method and apparatus for modelling data exchange in a data flow of an extract, transform, and load (ETL) process
US9298721B2 (en) * 2007-02-28 2016-03-29 Qualcomm Incorporated Prioritized search results based on monitored data
US8745507B2 (en) 2007-11-30 2014-06-03 At&T Intellectual Property I, L.P. Preloader employing enhanced messages
CN101520733B (zh) * 2008-02-27 2014-04-16 国际商业机器公司 装载类的方法和装置及重组类存档文件方法
US20100011357A1 (en) * 2008-07-13 2010-01-14 International Business Machines Corporation System and method for garbage collection in a virtual machine
US8875115B2 (en) * 2008-11-29 2014-10-28 International Business Machines Corporation Type merging technique to reduce class loading during Java verification
US8458676B2 (en) * 2009-06-30 2013-06-04 International Business Machines Corporation Executing platform-independent code on multi-core heterogeneous processors
US9069543B2 (en) 2011-12-22 2015-06-30 International Business Machines Corporation Predictive operator graph element processing
EP2932379B1 (en) * 2012-12-17 2019-09-04 BlackBerry Limited System and methods for launching an application on an electronic device
US11489941B2 (en) 2014-07-16 2022-11-01 Tensera Networks Ltd. Pre-loading of user applications including skipping of selected launch actions
US11095743B2 (en) * 2014-07-16 2021-08-17 Tensera Networks Ltd. Optimized content-delivery network (CDN) for the wireless last mile
US11483415B2 (en) 2014-07-16 2022-10-25 Tensera Networks Ltd. Background pre-rendering of user applications
KR102401772B1 (ko) * 2015-10-02 2022-05-25 삼성전자주식회사 전자 장치에서 어플리케이션 실행 장치 및 방법
US11922187B2 (en) 2018-03-05 2024-03-05 Tensera Networks Ltd. Robust application preloading with accurate user experience
US11915012B2 (en) 2018-03-05 2024-02-27 Tensera Networks Ltd. Application preloading in the presence of user actions
US11824956B2 (en) 2019-07-30 2023-11-21 Tensera Networks Ltd. Pre-rendering of application user-interfaces in user devices using off-line pre-render mode
CN116670646A (zh) 2020-12-03 2023-08-29 腾赛拉网络有限公司 预加载具有现有任务的应用

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07191853A (ja) * 1993-12-27 1995-07-28 Nec Corp メモリファイル化処理システム
JPH07271603A (ja) * 1994-03-31 1995-10-20 Mitsubishi Electric Corp オーバレイプログラムロード方式
JP3727677B2 (ja) * 1994-09-20 2005-12-14 石塚硝子株式会社 ガラス製品のプレス成形装置
JP3586943B2 (ja) 1995-10-20 2004-11-10 富士通株式会社 プログラムロード装置と方法
US5958003A (en) * 1996-02-21 1999-09-28 International Business Machines Corporation Method and computer system for improving the response time of a computer system to a user request
JPH11212893A (ja) * 1997-10-08 1999-08-06 Sony Corp 電子機器におけるプログラム起動装置、プログラム起動方法、媒体および電子機器
US5966702A (en) 1997-10-31 1999-10-12 Sun Microsystems, Inc. Method and apparatus for pre-processing and packaging class files
GB2331814B (en) * 1997-11-19 2002-11-13 Ibm Pre-emptive download of software in data processing network
US6513155B1 (en) * 1997-12-12 2003-01-28 International Business Machines Corporation Method and system for merging event-based data and sampled data into postprocessed trace output
US6349344B1 (en) * 1997-12-16 2002-02-19 Microsoft Corporation Combining multiple java class files into a run-time image
DE69911104T2 (de) 1998-03-24 2004-07-08 Sun Microsystems, Inc., Palo Alto Statische Bindung von dynamisch abgesendeten Anrufen in Anwesenheit von dynamischer Verknüpfung und Ladung
GB9825102D0 (en) * 1998-11-16 1999-01-13 Insignia Solutions Plc Computer system
CA2255042C (en) * 1998-11-30 2004-04-13 Leonard W. Theivendra Class loader
JP3889227B2 (ja) * 2000-01-21 2007-03-07 富士通株式会社 プログラム実行装置、プログラム実行方法、記録媒体、及び制御プログラム
GB0013132D0 (en) * 2000-05-31 2000-07-19 Ibm Virtual machine with reiitialisation

Also Published As

Publication number Publication date
JPWO2003107186A1 (ja) 2005-10-20
CN1310148C (zh) 2007-04-11
EP1515232A4 (en) 2007-09-05
US20050066283A1 (en) 2005-03-24
AU2003241885A1 (en) 2003-12-31
EP1515232A1 (en) 2005-03-16
JP4376181B2 (ja) 2009-12-02
US7506323B2 (en) 2009-03-17
WO2003107186A1 (ja) 2003-12-24

Similar Documents

Publication Publication Date Title
CN1310148C (zh) 程序执行处理终端装置和程序执行处理方法
CN1288556C (zh) 运算处理系统和控制方法,任务管理系统和方法
CN1142489C (zh) 信息处理方法和服务器
CN1795434A (zh) 程序执行控制设备,程序执行控制方法,控制程序和记录介质
CN1276562A (zh) 虚拟机系统
CN1870478A (zh) 数字广播接收装置中的事件发送方法和装置
CN1757027A (zh) 新式的个人电子装置
CN1534471A (zh) 应用程序中心用户界面技术
CN1873690A (zh) 图像处理设备、方法和存储有程序的存储介质
CN1873689A (zh) 图像处理设备、方法和存储有程序的存储介质
CN1613058A (zh) 配有jit编译器的虚拟计算机,操作所述计算机的方法以及包括所述虚拟计算机的终端设备
CN1677352A (zh) 移动电话终端、及其程序管理方法和相应的计算机程序
CN1328280A (zh) 信息处理设备、信息输入设备和信息处理主单元
CN1645323A (zh) 以存储技术抽象方式在文件内创建文件系统
CN1760836A (zh) 信息处理系统、信息处理方法和程序
CN1684048A (zh) 可靠擦除电子设备的非易失性存储器的信息的方法和系统
CN1325069A (zh) 应用执行装置及方法
CN1906583A (zh) 信息处理设备、中断处理控制方法、以及计算机程序
CN1873687A (zh) 图像处理装置、方法以及存储程序的存储介质
CN1315062C (zh) 处理器装置、使用它的信息处理装置、编译装置及其方法
CN101078999A (zh) 一种实现数据备份和恢复的方法及系统
CN1908904A (zh) 实时内部简易监视器
CN1610881A (zh) Gui应用开发支持设备、gui显示设备和方法及计算机程序
CN1731402A (zh) 用协处理器加速文件系统操作的方法及装置
CN1916842A (zh) 构件化软件系统中实现反射机制的构件封装方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070411

Termination date: 20100603