信息终端、计算机资源管理方法和虚拟计算机的运行切换方法

文档序号:6566328阅读:192来源:国知局
专利名称:信息终端、计算机资源管理方法和虚拟计算机的运行切换方法
技术领域
本发明涉及在虚拟计算机上运行中间代码程序的信息终端。
背景技术
当前,多种内置信息终端被广泛使用。作为一个例子,有搭载于汽车等车辆的信息终端。由这样的信息终端,提供通过地图显示和语音向导支持向目的地的移动的所谓导航装置。
近年的车载信息终端继续多功能化,有与导航功能结合,具有图像和音乐的视听、车的状态显示和控制等功能。为了迅速适应这种多功能化,中间代码技术对车载信息终端的运用在进展。由此在具有不同的OS和运算装置的多种信息终端中运行单一的程序成为可能,可以由不同的制造商分别从事车载信息终端的制造、面向车载信息终端的中间代码程序的生成,提高生产率。
但是,在运用中间代码技术的情况下,由于从外部取得中间代码程序,所以事前无法知道所需要的计算机资源的量,存在着计算机资源的管理变得困难这样的问题。如果运行恶意者生成的中间代码程序和含有错误的中间代码程序,则有时因无限地持续消耗文件和存储区域等,妨碍其他程序的资源确保,或使整个系统的响应性恶化。
作为用于避免这些问题的技术,在专利文献1中公开了设置监视进程(任务),定期地检查各进程的资源使用量,向监视器通知,根据使用量停止、结束、或再开始进程的技术。
此外,为了适应更多的车载信息终端的多功能化,希望同时运行多个运行中间代码程序的虚拟计算机的需求高起来。例如,可以举出同时运行空调控制用的中间代码程序、和音乐再现用的中间代码程序等。但是,多个虚拟计算机的同时运行引起使用资源的增加和计算机资源的互相争夺这样的问题。在使用资源之中,不仅包括存储器和输入输出装置,还包括CPU的占用时间等。
在同时运行多个虚拟计算机的情况下,通常,通过每隔很短的时间间隔就切换运行的多个虚拟计算机,就像同时运行一样运行多个处理。这样的处理例如,将多个处理的分别按照规定的时间间隔划分,通过每隔该时间间隔切换多个处理来实现。
专利文献1日本专利特开平7-311688号公报发明内容但是,专利文献1中记载的技术,个别设置使用计算机资源的资源使用进程,和监视使用资源使用进程使用的资源量的监视进程,在资源使用进程确保计算机资源后向监视进程报告其情况。因此,有时因资源使用进程确保的计算机资源的量而在计算机资源被确保的阶段,整个系统崩溃。
此外,在用于内置机器的OS(Operating System操作系统)中,有不具有以每隔规定的时间间隔切换划分成规定的时间间隔的多个处理的结构。例如,在运行某个具有优先度的处理中,也存在着直到该处理结束,无法运行优先度比它低的处理的结构的OS。在这种情况下,例如优先度相等的两个处理向OS请求运行的情况下,有时产生仅一方总是被运行的事态。
本发明是鉴于上述情况而作出的,本发明的目的在于将虚拟计算机确保的计算机资源抑制在分配到虚拟计算机的计算机资源的限制值内。此外,本发明的另一个目的在于可以适当地运行多个虚拟计算机。
为了解决上述课题,本发明的第一方式中的信息终端,在从虚拟计算机请求计算机资源的确保的情况下,在该请求未达到对该虚拟计算机分配的计算机资源的限制值时,向OS请求基于该请求的计算机资源的确保。
此外,本发明的第一方式提供一种信息终端,其特征在于,具有在OS中运行作为由中间代码表达的程序的中间代码程序的虚拟计算机;储存虚拟计算机能够利用的计算机资源的限制值的资源限制值存储机构;以及资源管理机构,其在从虚拟计算机受理资源确保的请求的情况下,参照储存在资源限制值存储机构中的限制值,确保基于该请求的计算机资源,由此在由虚拟计算机能够利用的计算机资源未达到限制值时,向OS请求基于该请求的计算机资源的确保,确保根据该请求的计算机资源,由此在由虚拟计算机能够利用的计算机资源超过所述限制值时,不向OS请求基于该请求的计算机资源的确保。
此外,本发明的第二方式中的信息终端,以规定的时间间隔,检查上次选择的虚拟计算机的连续选择次数,在该连续选择次数与限制值相等的情况下,或者,在该虚拟计算机正在待机的情况下,选择不同的虚拟计算机,向OS指示选择的虚拟计算机的运行。
此外,本发明的第二方式提供例如信息终端,其特征在于,具有在OS中运行作为由中间代码表达的程序的中间代码程序的多个虚拟计算机;使作为多个虚拟计算机分别连续并可选择的最大次数的可连续选择次数与多个虚拟计算机分别对应而将其存储的资源限制值存储机构;以及基于储存在资源限制值存储机构中的可连续选择次数,切换运行多个虚拟计算机的各个的虚拟计算机切换机构,其中,虚拟计算机切换机构,以预定的时间间隔,判定当前选择的虚拟计算机是否正在待机,在当前选择的虚拟计算机正在待机的情况下,选择与当前选择的虚拟计算机不同的虚拟计算机,向OS指示运行选择的虚拟计算机,同时设定该选择的虚拟计算机的连续选择次数为1,在当前选择的虚拟计算机正在运行的情况下,参照储存在资源限制值存储机构中的可连续选择次数,在当前选择的虚拟计算机的连续选择次数与对应于当前选择的虚拟计算机的可连续选择次数相等的情况下,选择与当前选择的虚拟计算机不同的虚拟计算机,向OS指示运行选择的虚拟计算机,同时设定该选择的虚拟计算机的连续选择次数为1,在当前选择的虚拟计算机的连续选择次数未达到与当前选择的虚拟计算机对应的可连续选择次数的情况下,再次选择当前选择的虚拟计算机,向OS指示运行再选择的虚拟计算机,同时将该再选择的虚拟计算机的连续选择次数加1。
根据本发明的信息终端,可以将虚拟计算机确保的计算机资源可靠地抑制在分配到虚拟计算机的计算机资源的限制值内。此外,根据本发明的车载信息终端,可以适当地运行多个虚拟计算机。


图1表示本发明的一个实施方式的车载通信系统10的构成。
图2表示使用资源组1a2和使用资源组1b2的详细构成的一例。
图3表示资源占用状态列表132的详细构成的一例。
图4表示经过安全性检查的中间代码列表140的详细构成的一例。
图5表示资源限制数据154的详细构成的一例。
图6表示资源违反履历155的详细构成的一例。
图7表示违反时处理设定156的详细构成的一例。
图8是表示车载终端101的动作的一例的程序框图。
图9是表示资源限制数据读入处理的一例的程序框图。
图10是表示中间代码程序读入处理的一例的程序框图。
图11是表示中间代码程序运行处理的一例的程序框图。
图12是表示任务生成/删除处理的一例的程序框图。
图13是表示文件生成/删除/写入处理的一例的程序框图。
图14是表示信号生成/删除处理的一例的程序框图。
图15是表示限制违反处理的一例的程序框图。
图16是表示虚拟计算机结束处理的一例的程序框图。
图17是表示虚拟计算机切换管理部137的动作的一例的程序框图。
图18是表示虚拟计算机再选择处理的一例的程序框图。
标号说明10…车载通信系统,101…车载终端,102…一次存储装置,103…二次存储装置,104…中央运算装置,105…显示装置,106…音响输出装置,107…车内通信装置,108…遥控通信装置,109…车外通信装置,111…空调控制装置,112…行驶状态监视装置,113…制动器状态监视装置,114…遥控器,115…便携通信终端,116…中间代码程序管理服务器,121…车内网络,122…车外网络,1a1…虚拟计算机,1a2…使用资源组,1a3…资源管理部,1a4…中间代码程序载入部,1a5…运行中间代码程序组,1a6…中间代码运行部,1a7…共有存储器退避区域,1b1…虚拟计算机,1b2…使用资源组,1b3…资源管理部,1b4…中间代码程序载入部,1b5…运行中间代码程序组,1b6…中间代码运行部,1b7…共有存储器退避区域,131…虚拟计算机管理任务,132…资源占用状态列表,1320、1541、1561…资源类别,1321、1540、1551、1560…虚拟计算机ID,133…画面管理部,134…音响输出管理部,135…事件管理部,136…中间代码程序管理部,137…虚拟计算机切换管理部,140经过安全性检查的中间代码列表,141…共有存储器,142…其他任务,143…OS,151…基本程序组,152…中间代码程序组,153…数据文件组,154…资源限制数据,1542…限制值,155…资源违反履历,1550…违反日期时间,1552…中间代码程序名,1553…违反的限制值,1554…违反量,156…违反时处理设定,1562…违反次数,1563…违反时处理,201…任务信息,202…文件信息,203…信号,204…动态存储区域信息具体实施方式
以下,对本发明的实施方式进行说明。
图1表示本发明的一个实施方式的车载通信系统10的构成。车载通信系统10搭载于车辆等移动体,具有车载终端101。车载终端101通过车内网络121连接有空调控制装置111、行驶状态监视装置112、制动器状态监视装置113等,从这些机器取得车辆的状态,控制空调机器等。此外,车载终端101与由车辆的搭乘者操作的遥控器114通过有线或无线进行通信。搭乘者通过遥控器114操作车载终端101。
车载终端101经由便携通信终端115和因特网以及无线电话通信网等车外网络122与中间代码程序管理服务器116进行通信。在本例中,便携通信终端115是例如便携式电话和PDA等无线通信机器,设置在车载终端101的外部。此外,作为另一个例子,车载终端101也可以内置便携通信终端115的功能。
中间代码程序管理服务器116经由车外网络122和便携通信终端115向车载终端101供给在车载终端101中运行的程序。此外,中间代码程序管理服务器116从车载终端101取得供给到车载终端101的程序的问题,通知在车载终端101中安装好的中间代码程序的最新消息。
接下来,对车载终端101进行详细说明。车载终端101包括一次存储装置101、二次存储装置103、中央运算装置104、显示装置105、音响输出装置106、车内通信装置107、遥控通信装置108、和车外通信装置109。
二次存储装置103具有即使在电源的供给阻断的情况下也保持所记录的数据的功能,储存程序和该程序所使用的数据、该程序的设定信息等。二次存储装置103包括基本程序组151、中间代码程序组152、数据文件组153、资源限制数据154、资源违反履历155、和违反时处理设定156。中央运算装置104在电源施加到车载终端101等的规定的定时,将储存在二次存储装置103中的程序等载入一次存储装置102,运行载入的程序。
显示装置105和音响输出装置106通过图像和语音向搭乘者提供各种信息。遥控通信装置108经由遥控器114取得来自搭乘者的操作信息。车载终端101的使用者通过遥控器114将信息输入到车载终端101,通过显示装置105、音响输出装置106从车载终端101取得信息。信息的输入输出装置不限于这里所示的装置,也可以是其他的装置。也可以使用例如设置在车载终端101上的按钮和触摸屏输入信息。车内通信装置107负责经由车内网络121的与空调控制装置111等的通信。车外通信装置109负责经由便携通信终端115和行驶状态监视装置112与中间代码程序管理服务器116等的通信。
多个任务和操作系统143(以下称为OS143)载入到一次存储装置102。而且,多个任务根据OS143的管理并行运行。这些任务和OS143包含在储存于二次存储装置103内的基本程序组151。
在一次存储装置102上运行的多个虚拟计算机(虚拟计算机1a1、1b1)各自与OS143管理的任务不同。该虚拟计算机的各自分配到OS143管理的任务的某一个,经由分配的任务,通过OS143运行。
其中,虽然在本例中,虚拟计算机各自分配到OS143管理的任务之一,但是作为另一个例子,也可以构成为一个虚拟计算机中,分配OS143管理的任务之一,通过在该虚拟计算机内切换经由分配的任务所运行的虚拟计算机,运行各自的虚拟计算机。
在一次存储装置102中载入虚拟计算机管理任务131和其他任务142等,由OS143管理并运行。此外,OS143使用内部的程序机功能,并行运行各任务,居中调停车载终端101外部的其他装置和车载终端101内的各任务的交换。
经过安全性检查的中间代码列表140储存有涉及通过后述的处理运行安全性检查的中间代码程序的信息。经过安全性检查的中间代码列表140被多个虚拟计算机(虚拟计算机1a1、虚拟计算机1b1)参照。
中间代码程序组152储存有中间代码程序的代码列和该程序的设定信息等。储存在中间代码程序组152中的中间代码程序可以在车载终端101的制造时预先储存,也可以经由车外网络122和便携通信终端115从中间代码程序管理服务器116取得并储存。
虚拟计算机1a1和虚拟计算机1b1分别从中间代码程序组152读入中间代码列等,使用例如JIT(Just In Time准时制)程序编制器等将读入的中间代码列转换成适于并行运行的形式而运行。数据文件组153储存这些任务和中间代码程序的运行所需的数据等。资源限制数据154是由虚拟计算机1a1和虚拟计算机1b1在启动时读入的数据,储存各虚拟计算机运行中间代码程序中利用的资源的限制信息。
资源违反履历155在虚拟计算机1a1和虚拟计算机1b1分别在对应的资源限制中违反的情况下,作为履历储存关于该违反的信息。违反时处理设定156储存关于虚拟计算机1a1和虚拟计算机1b1各自在中间代码程序的运行中违反资源限制的情况下的对应处理的信息。
其中,虽然在本例子中,以在车载终端101内动作的虚拟计算机两个的情况为例进行说明,但是本发明不限于此,只要是两个以上,可以是任意多个。
虚拟计算机1a1包括使用资源组1a2、资源管理部1a3、中间代码程序载入部1a4、运行中间代码程序组1a5、以及中间代码运行部1a6。在本例子中,虚拟计算机1a1与虚拟计算机1b1同样地构成,省略其说明。
使用资源组1a2保存中间代码程序的运行所需的资源。运行中间代码程序组1a5保存运行对象的中间代码程序的程序代码。中间代码程序载入部1a4从二次存储装置103中的中间代码程序组152将所需的中间代码程序读入到虚拟计算机内,将读入的中间代码程序转换成适于运行的形式,将转换的程序储存在运行中间代码程序组1a5中。
中间代码运行部1a6运行储存在运行中间代码程序组1a5中的程序。而且,中间代码运行部1a6在程序的运行中需要各种计算机资源的确保、释放或操作的情况下,向资源管理部1a3请求对应的计算机资源的确保、释放或操作。
资源管理部1a3管理使用资源组1a2,例如,在虚拟计算机启动时初始化使用资源组1a2,在从中间代码运行部1a6请求计算机资源的确保或操作的情况下,参照二次存储装置103内的资源限制数据154,在该请求为允许虚拟计算机1a1的资源限制值以内时,根据该请求向OS143请求资源的确保或操作。
虚拟计算机管理任务131执行各虚拟计算机与车载终端101的输入输出装置的调整,和各虚拟计算机运行的中间代码程序的删除,各虚拟计算机引起的中央运算装置104的占用时间的控制等。虚拟计算机管理任务131包括资源占用状态列表132、画面管理部133、音响输出管理部134、事件管理部135、中间代码程序管理部136、以及虚拟计算机切换管理部137。
资源占用状态列表132保存用于识别占用显示装置105、音响输出装置106、或遥控通信装置108的虚拟计算机的状态信息。画面管理部133控制虚拟计算机的显示装置105的占用权,将当前占用显示装置105的虚拟计算机的识别信息储存在资源占用状态列表132中。音响输出管理部134控制虚拟计算机的音响输出装置106的占用权,将当前占用音响输出装置106的虚拟计算机的识别信息储存在资源占用状态列表132。事件管理部135控制虚拟计算机的遥控通信装置108的占用权,将当前占用遥控通信装置108的虚拟计算机的识别信息储存在资源占用状态列表132中。
中间代码程序管理部136管理储存在二次存储装置103内的中间代码程序组152,进行多发计算机资源的违反限制的中间代码程序的删除,和中间代码程序更新到最新版本等。虚拟计算机切换管理部137是分配到各虚拟计算机的任务,通过向OS143指示OS143管理的任务停止和再开始,管理各虚拟计算机的运行时间,控制各虚拟计算机对中央运算装置104的占用时间。
图2表示使用资源组1a2和使用资源组1b2的详细构成的一例。使用资源组1a2使由虚拟计算机1a1确保的各自的资源的信息与识别资源的种类的资源类别对应而将其储存。其中,由于使用资源组1a2与使用资源组1b2具有同样的构成,所以以下对使用资源组1a2进行说明,省略对使用资源组1b2的说明。使用资源组1a2储存任务信息201、文件信息202、信号信息203、以及动态存储区域信息204。
任务信息201是分配到虚拟计算机内的多个虚拟计算机任务的各自的任务,使OS143管理的任务的状态、和任务的优先度与各自的任务ID对应而将其储存。所谓优先度是由虚拟计算机1a1运行的中间代码程序的设计者设定的虚拟计算机的优先度,由OS143在确定OS143管理的任务的运行时间分配或运行顺序之际使用。
中间代码运行部1a6根据程序的运行,判定为OS143管理的任务的确保是必要的情况下,中间代码运行部1a6向资源管理部1a3请求该任务的确保。而且,资源管理部1a3参照资源限制数据154,在该请求不满足限制值的情况下,向OS143请求对应于该请求的任务的确保,并且使状态为正在使用而追加到任务信息201。此外,在从中间代码运行部1a6收到确保的任务的结束通知的情况下,资源管理部1a3在任务信息201中,将对应的任务的状态变更成正在待机中。此时,资源管理部1a3不向OS143指示将状态变更成正在等机中的任务的释放。
文件信息202与文件名建立对应关系而储存作为管理储存在二次存储装置103内数据的单位的文件信息的中间代码程序名和数据服务器。
在根据程序的运行判定为文件的生成和写入、删除是必要的情况下,中间代码运行部1a6向资源管理部1a3请求该文件的生成等。而且,资源管理部1a3参照资源限制数据154,在该请求满足限制值的情况下,向OS143请求对应于该文件的生成等,并且变更文件信息202。
信号信息203使作为提供使多个任务存取同一计算机资源时同步的功能的软件资源的信号的使用状态与信号ID对应而将其储存。各个虚拟计算机通过向OS143请求在启动时确保限制个数量的信号,使所有的信号的状态为待机中而储存在信号信息203中。
如果资源管理部1a3从中间代码运行部1a6收到信号使用的请求,则参照信号信息203,将待机中的信号之中的一个的状态变更成使用中,向中间代码运行部1a6通知该信号的使用许可。此外,如果资源管理部1a3从中间代码运行部1a6收到信号的释放请求,则不对OS143请求信号的释放,将该信号的状态变更成待机中。这样一来,虚拟计算机1a1在程序运行中不进行信号的新的确保和释放,一边再利用预先确保的信号一边运行程序。
动态存储区域信息204使关于根据中间代码运行部1a6的程序的运行动态地确保的存储器的信息与存储器扇区ID对应而将其储存。各个虚拟计算机通过向OS143请求来确保在启动时限制大小量的存储器,根据来自中间代码运行部1a6的存储器确保的请求,在启动时确保的存储器的范围内动态地确保和释放存储器。
在根据程序的运行,判定为存储器的确保或释放是必要的情况下,中间代码运行部1a6向资源管理部1a3请求该存储器的确保。而且,资源管理部1a3参照资源限制数据154,在该请求满足限制值的情况下,实行对应于该请求的存储器的确保。
其中,使用资源组1a2和使用资源组1b2除了上述计算机资源以外,也可以储存盘分区的存取权和套接字等。
图3表示资源占用状态列表132的详细构成的一例。资源占用状态列表132使当前正在占用计算机资源的虚拟计算机ID 1321与表示计算机资源种类的资源类别1320对应而将其储存。画面、遥控器、声源、CPU等计算机资源可仅从一个虚拟计算机使用。
通过参照资源占用状态列表132可以判断当前正在使用该资源的虚拟计算机。
图4表示经过安全性检查的中间代码列表140的详细构成的一例。经过安全性检查的中间代码列表140使中间代码程序载入部1a4进行过安全性检查的经过安全性检查的中间代码列名1401和作为进行过该检查的虚拟计算机ID的检查实施虚拟计算机ID1402与中间代码程序名1400对应而将其储存,和作为实行了该检查的虚拟计算机的ID实施检查虚拟计算机ID1402。通过参照经过安全性检查的中间代码列表140,虚拟计算机1a1和虚拟计算机1b1可以判定载入对象的中间代码列的安全性检查是否已经结束。在安全性检查已经结束的情况下,可以省略中间代码程序载入部1a4进行的安全性检查而载入中间代码程序。
图5表示资源限制数据154的详细构成的一例。资源限制数据154针对限制值适用的每个虚拟计算机ID1540,使计算机资源的限制值1542与资源类别1541对应而将其储存。资源限制数据154中设定的各个计算机资源的限制值1542,例如在车载终端101出厂时由制造者等预先设定。
在本例子中,“aaa”表示虚拟计算机1a1的虚拟计算机ID,“bbb”表示虚拟计算机1b1的虚拟计算机ID。在资源限制数据154中,表示虚拟计算机1a1作为运行重要度高于虚拟计算机1b1的中间代码程序者设定的例子。因此,对应于虚拟计算机1a1的计算机资源的限制值高,对应于虚拟计算机1b1的计算机资源设定得低,计算机资源优先分配到虚拟计算机1a1。
其中,计算机资源的种类不限于图5所示的例子,也可以包括指定各虚拟计算机的读出、写入被允许的分区的计算机资源等。例如,在第一分区中储存基本程序组151等最重要数据,第二分区中储存车辆信息和个人信息等重要数据,第三分区中储存其他一般数据的情况下,也可以仅对特定的虚拟计算机许可对第一分区的存取。
图6表示资源违反履历155的详细构成的一例。资源违反履历155将虚拟计算机ID 1551、违反限制值的中间代码程序名1552、违反的限制值1553,以及违反量1554与该违反的违反日期时间1550建立对应关系而储存。
通过参照资源违反履历155,中央运算装置104可以经由便携通信终端115和车外网络122向中间代码程序管理服务器116通知发生的违反限制的内容。由此,中间代码程序的开发者等可以有效地进行资源限制违反的原因和预防措施的研究。
图7表示违反时处理设定156的详细构成的一例。违反时处理设定156在图5所示的限制值的各个中规定在违反的情况下进行的处理。违反时处理设定156对每一个适用处理的虚拟计算机ID1560使作为在计算机资源的违反次数1562和限制值的违反被检测出的情况下进行的处理的违反时处理1563与资源类别1561对应而储存。违反时处理设定156例如在车载终端101出厂时由制造者预先设定。其中,针对虚拟计算机,设定项目数或设定值也可以不同。
虽然在图7所示的例子中,在虚拟计算机1a1中,在对能够生成的任务数的违反发生三次时,虚拟计算机1a1被停止或结束,向中间代码程序管理服务器116通知违反的发生,但是在违反发生时动作的中间代码程序不被删除。此外,虽然在虚拟计算机1a1中,对能够生成最大文件大小的违反限制发生一次时,虚拟计算机1a1不被停止,但是如果违反次数达到十次,则虚拟计算机1a1被停止。
通过使用违反时处理设定156,可以极细地设定各虚拟计算机中的资源违反发生时的处理内容。通过根据各虚拟计算机的重要度、运行的应用的重要度、各资源的量、限制违反频度、限制违反规模等,变更指定处理,可以由车载终端101稳定地动作。
其中,虽然在本例子中基于违反次数规定处理内容,但是也可以另外根据违反规模、违反频度、违反的中间代码程序的开发者等规定处理内容。
接下来,参照图8~图18对车载终端101的动作进行说明。
图8是表示车载终端101的动作的一例的程序框图。在电源施加等规定的定时,车载终端101开始本程序框图中所示的处理。首先,包括虚拟计算机1a1、虚拟计算机1b1、虚拟计算机管理任务131的多个任务启动。其中,在以下说明的点中,因为虚拟计算机1a1与虚拟计算机1b1进行同样的处理,所以对于虚拟计算机1a1和虚拟计算机1b1同样的处理,仅对虚拟计算机1a1进行说明。
资源管理部1a3读入用于限制中间代码程序的运行中使用的计算机资源的资源限制数据154(S100)。此时,根据需要还进行用于资源管理的初始化等。
接着,中间代码程序载入部1a4从中间代码程序组152读入成为运行对象的中间代码程序(S200)。此时,中间代码程序载入部1a4将读入的中间代码程序转换成能够运行的形式,储存在运行中间代码程序组1a5中。然后,中间代码运行部1a6运行储存在运行中间代码程序组1a5中的程序(S300)。
图9是表示资源限制数据读入处理(S100)的一例的程序框图。资源管理部1a3从资源限制数据154读入可生成任务数的限制值(S101),读入关于文件的限制值(S102),读入关于能够生成的信号数的限制值(S103),读入能够确保的动态存储器的最大大小的限制值(S104)。
其中,在步骤103中,在读入关于可生成信号数的限制值时,资源管理部1a3向OS143请求而确保该限制值量的信号,以确保的限制值量的信号的状态作为完全待机而登录在使用资源组1a2中。同样,在步骤104中,在读入能够确保的动态存储器的最大大小的限制值时,资源管理部1a3通过向OS143请求而确保该限制值量的存储器,以确保的限制值量的存储器的状态为完全未使用而登录在使用资源组1a2中。
图10是表示中间代码程序读入处理(S200)的一例的程序框图。首先,中间代码程序载入部1a4从中间代码程序组152取得描述将要读入的中间代码程序的识别信息的列表(S201)。然后,中间代码程序载入部1a4选择取得的列表中所记述的中间代码程序之一(S202)。
然后,中间代码程序载入部1a4参照经过安全性检查的中间代码列表140判定选择的中间代码程序的安全性检查是否结束(S203)。在安全性检查已经结束的情况下(S203是),中间代码程序载入部1a4进行步骤207中所示的处理。
这样一来,通过省略已经由其他虚拟计算机实施了安全性检查的中间代码程序的安全性检查处理,可以减轻载入中间代码程序时的处理负担。
在安全性检查未结束的情况下(S203否),中间代码程序载入部1a4进行选择的中间代码程序的安全性检查(S204)。在步骤204中,中间代码程序载入部1a4进行在中间代码程序中是否含有不正确的命令码、是否取得命令码列的整合、是否成为存取不正确的地址的命令码列等的检查。
然后,在安全性被确认的情况下(S205是),中间代码程序载入部1a4在经过安全性检查的中间代码列表140中储存检查结果(S206)。然后,是否全都读入了判定列表中含有的中间代码(S207),如果尚未全都读入,则中间代码程序载入部1a4进行步骤203中所示的处理,如果全都读入,则结束本程序框图中所示的处理。
在安全性未被确认的情况下(S205否),中间代码程序载入部1a4经由105等通知车载终端101的使用者安全性上存在问题的情况,并且经由便携通信终端115和车外网络122通知到中间代码程序管理服务器116(S208),向中间代码运行部1a6指示中间代码程序的启动或运行的中断,结束本程序框图中所示的处理。
图11是表示中间代码程序运行处理(S300)的一例的程序框图。首先,中间代码运行部1a6通过逐个解释运行中间代码列的命令,运行中间代码程序(S301)。然后,中间代码运行部1a6判定是否需要调用中间代码程序中无法运行的各种资源的确保、释放、操作等本机功能(S302)。
在不需要本机功能的调用的情况下(S302否),中间代码运行部1a6判定中间代码程序的运行是否结束(S308)。在中间代码程序的运行未结束的情况下(S308否),中间代码运行部1a6在步骤301中运行中间代码列的下一个命令。在中间代码程序的运行已经结束的情况下(S308是),中间代码运行部1a6结束本流程图所示的处理。
在必需呼叫本机功能的情况下(S302是),中间代码运行部1a6向资源管理部1a3指示对应的本机功能的处理(S400、S500、S600、S303、S304)。步骤400~600的细节下文述及。在步骤303中,资源管理部1a3参照二次存储装置103内的资源限制数据154,一边将动态地确保的存储器的总大小限制在限制值以内,一边动态地确保或释放存储器。在步骤304中,资源管理部1a3实行上述以外的本机功能(通信套接字的确保等)的处理。
在实行上述本机处理的任一个中,在发生违反计算机资源的限制值的情况下(S305是),资源管理部1a3实行对应于发生的错误的处理(S700)。然后,在对应于错误的处理中,在虚拟计算机未被强制结束的情况下(S306否),资源管理部1a3通过向中间代码运行部1a6通知错误的信息,在中间代码运行部1a6中实行错误处理(S307),进行步骤308中所示的处理。
图12是表示任务生成/删除处理(S400)的一例的程序框图。首先资源管理部1a3判定是不是任务的生成处理(S401),在是任务的生成处理的情况下,参照使用资源组1a2,判定是不是未使用任务(S402)。在是未使用任务的情况下(S402是),资源管理部1a3请求将对应于OS143的任务的状态变更为动作状态(S406),结束本程序框图中所示的处理。
在没有未使用任务的情况下(S402否),资源管理部1a3通过生成任务判定所生成的任务的总数是否未达到可生成任务数的限制值(S403)。在超过限制值的情况下(S403否),资源管理部1a3向中间代码运行部1a6通知无法生成任务的意思的错误,结束本程序框图中所示的处理。
在未达到限制值的情况下(S403是),资源管理部1a3向OS143请求任务的生成(S404)。然后,资源管理部1a3以生成的任务的状态作为使用中登录在使用资源组1a2中(S405),结束本程序框图中所示的处理。
在是任务的删除处理的情况下(S401否),资源管理部1a3通过请求将对应于OS143的任务的状态变更成待机中而停止任务(S408)。在步骤408中,资源管理部1a3不向OS143请求停止的任务的释放,保持确保的状态。然后,资源管理部1a3将使用资源组1a2内停止的任务的状态变更成待机中(S409),结束本程序框图中所示的处理。
图13是表示文件生成/删除/写入处理(S500)的一例的程序框图。首先,资源管理部1a3在来自中间代码运行部1a6的请求是文件的生成处理的情况下(S501是),在参照资源限制数据154,根据来自中间代码运行部1a6的请求生成文件时,判定生成的文件数是否未达到可生成文件数的限制值(S502)。在超过限制值的情况下(S502否),资源管理部1a3向中间代码运行部1a6通知错误(S506),结束本程序框图中所示的处理。
在未达到限制值的情况下(S502是),资源管理部1a3在虚拟计算机1a1具有对生成文件的盘上的区域的存取权时(S503是),生成文件(S504)。然后,资源管理部1a3将生成的文件的信息登录在使用资源组1a2中(S505),结束本流程图中所示的处理。
在来自中间代码运行部1a6的请求不是文件的生成处理的情况下(S501否),资源管理部1a3在来自中间代码运行部1a6的请求是向文件的写入处理时,参照资源限制数据154,判定根据来自中间代码运行部1a6的请求进行写入的文件的大小是否未达到能够生成的最大文件大小的限制值(S508)。在超过限制值的情况下(S508否),资源管理部1a3进行步骤506中所示的处理。
在未达到限制值的情况下(S508是),资源管理部1a3通过许可向文件的写入,由中间代码运行部1a6将数据写入文件(S509),变更使用资源组1a2内对应的文件的大小(S510),结束本程序框图中所示的处理。
在来自中间代码运行部1a6的请求不是向文件的写入的情况下(S507否),资源管理部1a3删除文件(S511),从使用资源组1a2删除对应的文件的信息(S512),结束本程序框图中所示的处理。
图14是表示信号生成/删除处理(S600)的一例的程序框图。首先,资源管理部1a3判定是不是信号的生成处理(S601),在是信号的生成处理的情况下,参照使用资源组1a2,判定有没有未使用的信号(S602)。在有未使用的信号的情况下(S602是),资源管理部1a3向中间代码运行部1a6通知信号的使用许可,并且将使用资源组1a2内的信号的状态变更成使用中(S603),结束本程序框图中所示的处理。
在没有未使用的信号的情况下(S602否),资源管理部1a3向中间代码运行部1a6通知无法确保信号的意思的错误(S604),结束本程序框图中所示的处理。在不是信号生成处理的情况下(S601否),资源管理部1a3将使用资源组1a2内对应的信号的状态变更成待机中(S605),结束本程序框图中所示的处理。
其中,在本例中,在虚拟计算机1a1启动时预先确保与限制值同数的信号。在本程序框图中,当需要信号的生成时,不对OS143请求信号的新确保,从启动时已经确保的信号中分配未使用的信号。此外,即使在不需要时也不向OS143请求信号的释放,将信号的状态变更成等待中。
如图12~图14所示,虽然在资源的生成与删除的处理中有几种实现方法,但是全都可以根据生成、删除掌握使用的资源量,在限制值中发生违反的时刻立刻检测到。
图15是表示限制违反处理(S700)的一例的程序框图。首先,资源管理部1a3将图11中所示的步骤400、500、600、303、或304中发生的违反限制的内容记录在资源违反履历155中(S701),参照资源违反履历155和违反时处理设定156,根据发生的违反判定虚拟计算机的结束是否必要(S702)。
资源管理部1a3在判定成没有必要结束虚拟计算机的情况下(S702否),参照资源违反履历155和违反时处理设定156,根据发生的违反在虚拟计算机有必要停止的情况下(S703是),向虚拟计算机切换管理部137指示而使对应的虚拟计算机停止(S704),进行步骤705中所示的处理,在没有必要停止虚拟计算机的情况下(S703否),进行步骤705中所示的处理。
在参照资源违反履历155和违反时处理设定156,根据发生的违反判定为有必要结束虚拟计算机的情况下(S702是),资源管理部1a3向虚拟计算机切换管理部137指示而使对应的虚拟计算机结束(S720)。
接着,参照资源违反履历155和违反时处理设定156,根据发生的违反判定虚拟计算机运行的中间代码程序的删除是否必要(S705)。在对应的中间代码程序的删除不必要的情况下(S705否),进行步骤707中所示的处理。在对应的中间代码程序的删除必要的情况下(S705是),资源管理部1a3通过向中间代码程序管理部136请求删除对应的中间代码程序,使中间代码程序管理部136删除对应的中间代码程序(S706)。在步骤706中,中间代码程序管理部136从其他任务142中删除删除对象的中间代码程序。
图16是表示虚拟计算机结束处理(S720)的一例的程序框图。首先,资源管理部1a3参照使用资源组1a2,选择一个应该结束的中间代码程序确保的计算机资源(S721),向OS143请求选择的计算机资源的释放(S722)。然后,资源管理部1a3判定是否完全选择了应该结束的中间代码程序确保的计算机资源(S723)。资源管理部1a3在存在着未选择的计算机资源的情况下(S723否),再次进行步骤721中所示的处理,在选择了应该结束的中间代码程序确保的计算机资源的全部的情况下(S723是),结束本程序框图中所示的处理。
通过参照使用资源组1a2,资源管理部1a3可以可靠地释放应该结束的中间代码程序确保的计算机资源。
图17是表示虚拟计算机切换管理部137的动作的一例的程序框图。在将电源施加到车载终端101等规定的定时,虚拟计算机切换管理部137开始本程序框图中所示的处理。首先,虚拟计算机切换管理部137判定当前运行中的虚拟计算机的个数是否超过2(S801)。在当前运行的虚拟计算机数为1以下的情况下(S801否),重复步骤801直到虚拟计算机数超过2。
在当前运行中的虚拟计算机数为超过2的情况下(S801是),虚拟计算机切换管理部137实行选择多个虚拟计算机的任一个的虚拟计算机再选择处理(S810)。然后,虚拟计算机切换管理部137判定选择的虚拟计算机与当前运行的虚拟计算机是否不同(S802)。在选择的虚拟计算机与当前运行的虚拟计算机相同的情况下(S802否),进行步骤806中所示的处理。
在选择的虚拟计算机与当前运行的虚拟计算机不同的情况下(S802是),虚拟计算机切换管理部137向OS143请求作为分配到运行中的虚拟计算机的所有的任务,OS143管理的任务的暂时停止(S803)。然后,虚拟计算机切换管理部137进行虚拟计算机的切换准备(S804)。在步骤804中,虚拟计算机切换管理部137在资源占用状态列表132内,进行对应于选择的虚拟计算机使用的资源类别的虚拟计算机ID 1321的改写,使对应于处于运行中的虚拟计算机的任务在共有存储器141内使用的全局变量区域等运行环境,向处于运行中的虚拟计算机的共有存储器退避区域1a7或共有存储器退避区域1b7退避处理等。
接着,虚拟计算机切换管理部137向OS143请求对应于在步骤2602中选择的虚拟计算机的任务的再次开始运行(S805)。然后,虚拟计算机切换管理部137在100ms等规定期间等待后(S806),再次实行步骤801中所示的处理。
图18是表示虚拟计算机再选择处理(S810)的一例的程序框图。首先,虚拟计算机切换管理部137向OS143询问,取得当前运行中的任务,也就是上次选择的任务的状态(S811)。然后,虚拟计算机切换管理部137判定分配到上次选择的虚拟计算机的所有任务是不是等待输入或等待定时器等事件的状态(S812)。
在任何任务都不是等待状态的情况下(S812否),虚拟计算机切换管理部137判定上次选择的虚拟计算机的连续选择次数是否超过分配到该虚拟计算机的可连续选择次数(S814)。在步骤814中,虚拟计算机切换管理部137保持选择的虚拟计算机的连续选择次数。此外,虚拟计算机切换管理部137基于图5中所示的资源限制数据154内的CPU占用率的限制值,计算各个虚拟计算机的可连续选择次数。在本例中,虚拟计算机切换管理部137由于对应于虚拟计算机1a1的CPU占用率的限制值为70%,对应于虚拟计算机1b1的CPU占用率的限制值为30%,所以将与之成比例的值作为可连续选择次数计算。例如,虚拟计算机切换管理部137将虚拟计算机1a1的可连续选择次数计算为7次,将虚拟计算机1b1的可连续选择次数计算为3次。
在上次选择的虚拟计算机的连续选择次数未达到分配到该虚拟计算机的可连续选择次数的情况下(S814否),虚拟计算机切换管理部137这次也选择上次选择的虚拟计算机,并且增加选择的虚拟计算机的连续选择次数(S815),结束本程序框图中所示的处理。在上次选择的虚拟计算机的连续选择次数超过分配到该虚拟计算机的可连续选择次数的情况下(S814是),虚拟计算机切换管理部137选择与上次选择的虚拟计算机不同的虚拟计算机,并且将选择的虚拟计算机的连续选择次数置1(S813),结束本程序框图中所示的处理。
这样一来,通过按预先设定的分配,切换运行的虚拟计算机,可以一边按照接近于设计时所指定的CPU占用率的分配来分配CPU处理时间,一边并行运行多个虚拟计算机。该切换处理使用OS143具有的停止功能与任务再次开始功能,以及任务的事件等待询问功能。由此,只要是提供这些功能的多任务OS,即使没有CPU占用率的控制功能,也可以控制虚拟计算机的CPU占用率,可以使多个虚拟计算机适当地动作。
此外,上述虚拟计算机切换管理部137进行的虚拟计算机切换处理通过向OS的任务操作请求来实现,不是直接控制OS143具有的程序器。因此,该虚拟计算机对分配到虚拟计算机1a1、虚拟计算机1b1和虚拟计算机管理任务131的任务以外的进行本机处理的其他任务142的任务切换不产生影响。因而,在OS143的功能的范围内可以实现虚拟计算机切换处理,可以使系统稳定地动作。
以上对本发明的实施方式进行了说明。
从上述说明可以看出,根据本发明的车载终端101,可以将虚拟计算机1a1或虚拟计算机1b1确保的计算机资源可靠地抑制于分配到对应的虚拟计算机的限制值内。此外,根据本发明的车载终端101,可以适当地运行多个虚拟计算机。
其中,本发明不限于上述实施方式,在其精神的范围内,可以进行各种变形。
例如,虽然在本发明中,以两个虚拟计算机的情况进行了说明,但是本发明不限于此,在运行一个虚拟计算机的车载终端101中也可以运用本发明。在此情况下,在图1中所示的车载终端101中,除了以多个虚拟计算机的存在为前提进行处理的功能(共有存储器退避区域1a7、共有存储器退避区域1b7、资源占用状态列表132、虚拟计算机切换管理部137、经过安全性检查的中间代码列表140、以及共有存储器141)之外,成为另一个实施方式中的车载终端101的构成。
其中,本发明适用于搭载在汽车等的车载终端中等,内置机器中计算机资源比较丰富的,请求应用的并行运行的内置机器。此外,在用于车载终端以外也是,在向电视机和硬盘录相机等AV机器、便携式电话和PDA等便携终端运用中间代码技术时,本发明特别有效。
权利要求
1.一种信息终端,其特征在于,具有在OS(Operating System操作系统)中运行作为由中间代码表达的程序的中间代码程序的虚拟计算机;储存所述虚拟计算机能够利用的计算机资源的限制值的资源限制值存储机构;以及资源管理机构,其在从所述虚拟计算机受理资源确保的请求的情况下,参照储存在所述资源限制值存储机构中的限制值,确保基于该请求的计算机资源,由此在由所述虚拟计算机能够利用的计算机资源未达到所述限制值时,向所述OS请求基于该请求的计算机资源的确保,确保根据该请求的计算机资源,由此在由所述虚拟计算机能够利用的计算机资源超过所述限制值时,不向所述OS请求基于该请求的计算机资源的确保。
2.一种信息终端,其特征在于,具有在OS(Operating System操作系统)中运行作为由中间代码表达的程序的中间代码程序的多个虚拟计算机;使作为所述多个虚拟计算机分别连续并可选择的最大次数的可连续选择次数与所述多个虚拟计算机分别对应而将其存储的资源限制值存储机构;以及基于储存在所述资源限制值存储机构中的所述可连续选择次数,切换运行所述多个虚拟计算机的各个的虚拟计算机切换机构,其中,所述虚拟计算机切换机构,以预定的时间间隔,判定当前选择的虚拟计算机是否正在待机,在当前选择的虚拟计算机正在待机的情况下,选择与当前选择的虚拟计算机不同的虚拟计算机,向所述OS指示运行选择的虚拟计算机,同时设定该选择的虚拟计算机的连续选择次数为1,在当前选择的虚拟计算机正在运行的情况下,参照储存在所述资源限制值存储机构中的可连续选择次数,在当前选择的虚拟计算机的连续选择次数与对应于当前选择的虚拟计算机的可连续选择次数相等的情况下,选择与当前选择的虚拟计算机不同的虚拟计算机,向所述OS指示运行选择的虚拟计算机,同时设定该选择的虚拟计算机的连续选择次数为1,在当前选择的虚拟计算机的连续选择次数未达到与当前选择的虚拟计算机对应的可连续选择次数的情况下,再次选择当前选择的虚拟计算机,向所述OS指示运行再选择的虚拟计算机,同时将该再选择的虚拟计算机的连续选择次数加1。
3.一种信息终端的计算机资源管理方法,其特征在于所述信息终端,在从由OS(Operating System操作系统)运行作为由中间代码表达的程序的中间代码程序的虚拟计算机受理资源确保的请求的情况下,参照储存所述虚拟计算机能够利用的计算机资源的限制值的资源限制值存储机构,确保基于该请求的计算机资源,由此在由所述虚拟计算机能够利用的计算机资源未达到所述限制值时,向所述OS请求基于该请求的计算机资源的确保,确保基于该请求的计算机资源,由此在由所述虚拟计算机能够利用的计算机资源超过所述限制值时,不向所述OS请求基于该请求的计算机资源的确保。
4.一种车载信息终端的虚拟计算机的运行切换方法,其特征在于在由OS(操作系统)运行作为由中间代码表达的程序的中间代码程序的多个虚拟计算机中,以预定的时间间隔判定当前选择的虚拟计算机是否正在待机,在当前选择的虚拟计算机正在待机的情况下,选择与当前选择的虚拟计算机不同的虚拟计算机,向所述OS指示运行选择的虚拟计算机,同时设定该选择的虚拟计算机的连续选择次数为1,在当前选择的虚拟计算机正在运行的情况下,参照使作为所述多个虚拟计算机分别连续并可选择的最大次数的可连续选择次数与所述多个虚拟计算机分别对应而将其存储的资源限制值存储机构,在当前选择的虚拟计算机的连续选择次数与对应于当前选择的虚拟计算机的可连续选择次数相等的情况下,选择与当前选择的虚拟计算机不同的虚拟计算机,向所述OS指示运行选择的虚拟计算机,同时设定该选择的虚拟计算机的连续选择次数为1,在当前选择的虚拟计算机的连续选择次数未达到与当前选择的虚拟计算机对应的可连续选择次数的情况下,再次选择当前选择的虚拟计算机,同时将该选择的虚拟计算机的连续选择次数加1。
全文摘要
本发明提供具有将虚拟计算机(1a1)或虚拟计算机(1b1)确保的计算机资源分配到对应的虚拟计算机的可以可靠地抑制在计算机资源的限制值内的功能,或者可以适当地运行多个虚拟计算机的功能的车载终端(101)。车载终端(101)在虚拟计算机(1a1)或虚拟计算机(1b1)请求计算机资源的确保的情况下,在未达到分配到对应的虚拟计算机的计算机资源的限制值的情况下,向OS(143)请求根据该请求的计算机资源的确保。此外,车载终端(101)在规定的时间间隔检查上次选择的虚拟计算机的连续选择次数,在连续选择次数与限制值相等的情况下,或者在该虚拟计算机正在待机的情况下,选择不同的虚拟计算机,向OS(143)指示选择的虚拟计算机的运行。
文档编号G06F9/50GK1969261SQ20068000010
公开日2007年5月23日 申请日期2006年6月28日 优先权日2005年6月28日
发明者川崎进一郎, 池原洁, 中野正树 申请人:株式会社查纳位资讯情报
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1