CN102754082A - 更新方法、更新装置、以及更新程序 - Google Patents
更新方法、更新装置、以及更新程序 Download PDFInfo
- Publication number
- CN102754082A CN102754082A CN2010800632393A CN201080063239A CN102754082A CN 102754082 A CN102754082 A CN 102754082A CN 2010800632393 A CN2010800632393 A CN 2010800632393A CN 201080063239 A CN201080063239 A CN 201080063239A CN 102754082 A CN102754082 A CN 102754082A
- Authority
- CN
- China
- Prior art keywords
- file
- node
- legacy version
- dll
- redaction
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
如果管理程序(131)接收到存在通知,则对节点的参照对象进行扩展设定(S403),生成旧节点(N1)(S404),并向下载程序(135)通知下载开始(S405)。如果从链接程序(134)接收到检查结果通知(未使用),则设定对象库(a.dll)的调出禁止(S410)。如果设定调出禁止,则管理程序(131)将旧a.dll的删除指示通知给下载程序(135)(S411)。如果管理程序(131)接收到删除完成的通知,则管理程序(131)将旧节点(N1)的识别位从“0”改写为“1”(S414)。然后,解除对象库(a.dll)的调出禁止(S415)。由此,实现系统规模和费用的降低,并且实现无中断的数据更新。
Description
技术区域
本发明涉及对库进行更新的更新方法、更新装置、以及更新程序。
技术区域
在以往的便携式终端中,当库进行数据更新时,在更新期间需要使功能停止。因此,在更新期间中,使用者不能使用功能。但是,与通用计算机不同,假定便携式终端等嵌入系统24小时365天持续运转,则必须使功能停止将成为问题。
作为现有技术,提出了在服务器区域中不停止地进行更新数据的方法。主要是除主系统以外准备待机系统并在主系统进行数据更新的过程中使用待机系统进行处理的技术(例如,参照下述专利文献1)。
另外,提出了不为系统全体准备待机系统而仅安装多个OS(Operating System:操作系统),由此来不中断地进行数据更新的方法(例如,参照下述的专利文献2~4)。
在下述专利文献1中,在安装了多个OS的系统中,通过并非保护对象的系统来补充保护对象的系统的功能。例如,将系统全体分为多个子系统,并分别安装OS(本地OS)。另外,准备具有各OS的全部功能的OS(全局OS),在本地OS中的一个进行更新处理时该OS的功能由全局OS代为执行,由此能够在使系统不停止的情况下进行数据更新。
在先技术文献
专利文献1:日本专利文献特开2002-342102号公报
专利文献2:日本专利文献特开昭54-106146号公报
专利文献3:日本专利文献特开2005-63050号公报
专利文献4:日本专利文献特开2006-31312号公报
发明内容
然而,在上述的现有技术中,如果除主系统以外准备待机系统并且在主系统进行数据更新的过程中使用待机系统进行处理,则在嵌入系统中存在引起系统规模和费用增大的问题。
另外,在专利文献1中,由于通过由全局OS代为执行而在使系统不停止的情况下进行数据更新,因此在嵌入系统中存在系统规模和费用增大的问题。
另一方面,由于在不具有待机系统或全局OS(例如,单一OS)的情况下无法代为执行数据更新,因此存在着在进行数据更新时必须停止系统的问题。
如此,假定便携式终端等的嵌入系统24小时365天持续运转,则在上述的现有技术中,存在着在更新期间中使用者不能使用功能并且必须使功能停止的问题。
本发明为了解决上述的现有技术中存在的问题,其目的是提供能够实现系统规模和费用的降低并且能够实现无中断的数据更新的更新方法、更新装置、以及更新程序。
为了解决上述的技术问题并实现上述的目的,本发明的更新方法、更新装置、以及更新程序的主要内容是:在执行与OS内的库组中的对象库有关的新版本的文件的下载和与所述对象库有关的旧版本的文件的删除的更新程序、更新装置、以及更新方法中,检测所述新版本的文件的存在,在所述新版本的文件被检测到时,生成指定与第一节点不同的保存区域的第二节点,所述第一节点指定所述旧版本的文件的保存区域,在所述新版本的文件被下载到由所生成的第二节点指定的保存区域时,判定所述旧版本的文件是否处于使用中,在判断为未处于使用中时,通知所述旧版本的文件以及所述第一节点的删除指示。
管理程序131判断旧版本的文件(旧a.dll)是否处于使用中。然后,在判断为未处于使用中时,管理程序131通知旧版本的文件(旧a.dll)的删除指示。
通过本发明的更新方法、更新装置、以及更新程序,能够实现减小系统规模或费用的降低并且能够实现无中断的数据更新的更新方法、更新装置、以及更新程序。
附图说明
图1是示出本实施方式涉及的更新装置的硬件构件的框图;
图2是示出管理程序对文件系统的控制的说明图;
图3是示出进程表、链接表、以及状态表的参照关系的说明图;
图4是更新数据模式的时序图(其1);
图5是更新数据模式的时序图(其2);
图6是更新数据模式的时序图(其3);
图7是示出本实施方式涉及的库更新处理步骤的流程图;
图8是示出图7所示的更新数据处理的详细的处理步骤的流程图;
图9是示出由管理程序执行的状态表的更新处理的流程图;
图10是示出由管理程序执行的库的读出处理的流程图。
具体实施方式
以下,参照附图对本发明涉及的更新方法、更新装置、以及更新程序的优选的实施方式进行详细说明。
(更新装置的硬件构成)
图1是示出本实施方式涉及的更新装置的硬件构成的框图。更新装置100具有CPU(Central Processing Unit:中央处理器)101、I/F(Interface:接口)102、存储器103。CPU 101、I/F 102以及存储器103通过总线104连接。
在此,CPU 101是负责更新装置100的全体的控制的处理器。I/F 102通过通信电线与LAN(Local Area Network:局域网)、WAN(Wide AreaNetwork:广域网)、互联网等网络105例如以无线方式连接,并经由该网络105与下载发源地的服务器106连接。并且,I/F 102负责网络105和内部之间的接口,并控制来自外部装置的数据的输入输出。
存储器103存储各种信息或者作为CPU 101的工作区使用。具体而言,存储器103例如是ROM(Read Only Memory:只读存储器)、RAM(Random Access Memory:随机存取存储器)、闪存、硬盘驱动器等存储装置。
存储器103中存储有管理程序131、OS 132、文件系统133、链接程序134、下载程序135、应用程序136。通过将存储于存储器103中的程序下载到CPU 101中,使CPU 101执行被编码的处理。
管理程序131是在CPU 101等硬件上直接工作的程序。管理程序131能够执行下述特权命令:例如直接参照CPU 101内的寄存器、或读出CPU101内的寄存器的信息、或改写CPU 101内的寄存器的信息。并且,管理程序131直接访问文件系统133。
管理程序131通常除具有执行上述的处理的通常模式以外,还具有更新数据模式。在更新数据模式中,通过由管理程序131执行特殊的处理,能够在不停止OS 132的情况下更新库。在更新数据模式以外时,处于通常模式。
另外,管理程序131在更新数据模式时在存储器103内创建状态表151。也可以分配给CPU 101内的空寄存器。状态表151是管理诸如库是否正在执行、下载是否完成这样的状态的表。
OS 132是通过管理程序131工作的软件。OS 132具有内核141和库组142。内核141执行诸如CPU管理、任务管理、存储器管理、文件管理这样的处理。例如,在任务管理中,内核141将当前正在执行的一个或多个应用程序136等进程登记在进程表152中。
由此,能够监视哪个应用程序136正在执行、哪个应用程序136的执行已结束。另外,在文件管理中,OS 132能够通过访问文件系统133来访问存储在存储器103内的文件。
库组142是库的集合。库是将通用性很高的多个程序要素文件化后的程序,并作为通过应用程序136等OS 132工作的其他的程序的一部分工作。库不能单独执行。例如,在应用程序136等的执行过程中从存储器103中调出动态链接库进行使用。
文件系统133管理保存在存储器103内的文件。文件系统133具有指定存储器103内的文件的保存区域的节点(也称作节点ID、i节点)。一个节点是规定宽度的位串,并通过位串的值来指定文件的保存区域。
链接程序134是对应用程序136和被该应用程序136利用的库进行链接的程序。链接程序134将被当前正在执行的应用程序136调出的库登记在链接表153中。由此,能够监视当前正在执行的应用程序136调出了哪个库。
应用程序136是通过OS 132工作的程序,并根据需要将库调出而执行处理。下载程序135是检测应该更新的库、从服务器106下载新的库、删除旧库的应用程序136。
(管理程序131对文件系统133的控制)
图2是示出管理程序131对文件系统133的控制的说明图。以下,作为例子,将库名“a.dll”的库设为更新对象的库。此外,为了方便,将对象库a.dll中的、存储在更新前的存储器103中的旧版本的文件a.dll称作“旧a.dll”,将所下载的新版本的文件a.dll称作“新a.dll”。
同样地,将旧a.dll的节点称作旧节点,将新a.dll的节点称作新节点。另外,为了方便,将节点的位数设为6位,将旧a.dll的节点设为“010010”。另外,管理程序131在(A)和(E)中为通常模式,在(B)至(D)中为更新数据模式。
(A)示出了下载前的通常模式下的旧节点和库之间的关系。旧节点N1中的首位是识别位。识别位是识别作为对象的库是处于更新中(更新数据模式)还是处于非更新中(通常模式)的位。如果处于更新中,则识别位为“1”,如果处于非更新中,则识别位为“0”。
另外,在通常模式中,管理程序131遮蔽识别位而将剩余的位串作为参照对象。例如,在(A)的情况下,旧a.dll被保存在由旧节点N1中第2位以后的“10010”指定的保存区域中。因此,在像(A)那样的通常模式时,通过参照对象的剩余的位串来指定库的保存区域。
(B)示出了从通常模式向更新数据模式转移时的状态。当向更新数据模式转移时,管理程序131将旧节点N1的参照对象扩展至识别位。例如,在旧a.dll的情况下,旧节点N1内的参照对象从“10010”被扩展至“010010”。
然后,管理程序131生成新节点N2。管理程序131复制作为更新对象的旧a.dll的旧节点N1的剩余位串“10010”,并生成将识别位设为“1”的新节点N2“110010”。新a.dll被保存在由该旧节点N1指定的保存区域中。如此,旧节点N1和新节点N2成为仅识别位不同的位串。
(C)示出了新a.dll的下载以及将旧a.dll及其旧节点N1删除后的状态(由虚线表示)。新a.dll被保存在由新节点N2指定的保存区域中。因此,旧a.dll不会被新a.dll覆盖。通过下载程序135将旧a.dll及其旧节点N1一起删除。
(D)示出了更新数据模式的完成状态。由于在(C)中新a.dll的下载完成,因此管理程序131将新节点N2的识别位从“1”改写为“0”。然后,通过将参照对象恢复到从全部位中去除识别位得到的剩余位串,使更新数据模式结束。
(E)示出了从更新数据模式向通常模式转移的状态。由于识别位被遮蔽使得剩余位串成为参照对象,因此,在该通常模式下,与(A)同样地,通过指定剩余位串“10010”,能够调出新a.dll。当相对于该新a.dll再次存在更新文件时,将新a.dll作为旧a.dll而执行(B)以后的处理即可。
如此,如果返回到通常模式,则新a.dll与旧a.dll同样地由剩余位串“10010”指定保存区域。从调出a.dll的应用程序136而言,在通常模式时,能够在不关注新旧的情况下在更新前后使用相同的节点“10010”调出a.dll。
此外,在上述的例子中,将识别位设为最前面的1位,但如果预先确定识别位在哪个位置上,则也可以将识别位设定为其他的位。另外,即使将节点内的位的一部分以上述方式分配为识别位,使用剩余位串也能够充分地指定其他的文件,因此不存在问题。
图3是示出进程表152、链接表153、以及状态表151的参照关系的说明图。进程表152管理正在执行的进程,链接表153管理进程表152中的每个进程所链接的文件的节点。如果是相同的应用程序136但进程不同,则存在不同的链接表153(153-0、153-1)。由各链接表153-0、153-1管理的库的节点根据进程的启动时期和下载完成的前后关系也不同。
对更新对象的每个库配备状态表151。状态表151是用于识别库的下载处理是否结束、以及基于各链接表153中的节点识别在下载处理结束后是否存在正使用旧版本的库的进程的表。管理程序131参照状态表151进行文件的切换指示。
例如,在作为对象的库中新版本的文件完成下载并且旧版本的文件正在被应用程序136(Appli#0)执行的情况下,如果应用程序136(Appli#1)被启动,则管理程序131指示调出新版本的文件。在除此以外的组合的情况下,将指示调出旧版本的文件。
(更新数据模式的顺序)
接下来,使用图4至图6对更新数据模式时的顺序进行说明。
图4是更新数据模式的时序图(其1)。在图4中,示出了作为更新对象的库(旧a.dll)没有被使用的状态下的顺序。首先,如果下载程序135检测到存在a.dll的更新(步骤S401),则将存在通知发送给管理程序131(步骤S402)。如果管理程序131接收到存在通知,则从通常模式向更新数据模式转移,从而如图2的(B)所示进行节点的参照对象的扩展设定(步骤S403)。
然后,管理程序131如图2的(B)所示生成旧节点N1(步骤S404),从而将文件系统133设定为旧节点N1。之后,管理程序131向下载程序135通知下载开始(步骤S405)。
如果管理程序131向下载程序135通知下载开始,则下载程序135从服务器106下载新a.dll,并将新a.dll保存在由新节点N2指定的保存区域中(步骤S406)。然后,下载程序135将下载完成通知给管理程序131以及链接程序134(步骤S407)。
在此,链接程序134若接收到下载完成的通知,则参照链接表153检查旧a.dll的使用(步骤S408)。由于在链接表153中登记有当前被调出而执行的库,因此通过参照链接表153可知旧a.dll没有被使用。并且,在图3的例子中,由于旧a.dll没有被使用,因此链接程序134将检查结果通知(未使用)通知给管理程序131(步骤S409)。
如果管理程序131从链接程序134接收到检查结果通知(未使用),则管理程序131设定对象库a.dll的调出禁止(步骤S410)。具体而言,例如,管理程序131对OS 132暂时地禁止应用程序136的启动。
例如,对于OS 132的调度程序,仅允许将想要启动的应用程序136排队而禁止调用。在该阶段,由于旧a.dll和新a.dll均存在,如果允许调出,则作为删除对象的旧a.dll将被调出,因此设定调出禁止。
如果设定调出禁止,则管理程序131将旧a.dll的删除指示通知给下载程序135(步骤S411)。删除指示中包含旧a.dll的旧节点N1。如果下载程序135从管理程序131接收到旧a.dll的删除指示,则下载程序135着手于旧节点N1的处理而访问文件系统133,并将旧a.dll和旧节点N1从存储器103中删除(步骤S412)。然后,下载程序135向管理程序131通知删除完成(步骤S413)。
如果管理程序131接收到删除完成的通知,则管理程序131如图2的(D)所示将新节点N2的识别位从“1”改写为“0”(步骤S414)。然后,管理程序131解除a.dll的调出禁止(步骤S415)。具体而言,例如,管理程序131允许被OS 132的调度程序排队的应用程序136的调用。由此,在解除后,调出作为新文件的a.dll。
最后,如图2的(E)所示,通过将新节点N2的参照对象复原(遮蔽设定)为扩展设定(S403)前的状态(步骤S416),从更新数据模式向通常模式转移。
图5是更新数据模式的时序图(其2)。在图5中示出了作为更新对象的库(旧a.dll)被应用程序136(Appli#0)使用的状态下的顺序。另外,对与图4所示的处理相同的处理标记相同的步骤编号,并省略对它们的说明。
当在步骤S408中链接程序134进行旧a.dll的使用检查时,由于链接表153中登记有当前被调出的旧a.dll,因此链接程序134向管理程序131和文件系统138发送检查结果通知(使用中)(步骤S501)。
如果管理程序131从链接程序134接收到检查结果通知(使用中),则管理程序131生成检查线程(步骤S502)。由于在进程表152中登记有当前正在执行的进程,因此所生成的检查线程参照进程表152检查正使用旧a.dll的应用程序136(Appli#0)的结束(步骤S503)。
如果检查线程检查到应用程序136(Appli#0)的结束,则检查线程将结束通知发送给管理程序131(步骤S504)。如果管理程序131接收到结束通知,则管理程序131设定a.dll的调出禁止(步骤S410)。
如此,即使在旧a.dll的使用过程中转移到更新数据模式的情况下,也能够在不停止OS 132或应用程序136(Appli#0)的情况下执行库的更新数据。
图6是更新数据模式的时序图(其3)。在图6中示出了作为更新对象的库(旧a.dll)的使用和更新后的库(新a.dll)的使用混在一起时的顺序。另外,对与图4和图5所示的处理相同的处理标记相同的步骤编号,并省略对它们的说明。
在步骤S503中,如果在检查线程对进程表152的检查过程中,应用程序136(Appli#1)被启动而请求a.dll的调出(步骤S601),则管理程序131检查状态表151(步骤S602)。管理程序131通过参照状态表151,能够确定旧a.dll是否正在执行、新a.dll是否下载完成。
在这种情况下,由于旧a.dll处于使用中且新a.dll下载完成,因此管理程序131向文件系统133通知调出对象为新a.dll的内容(步骤S603),并且新a.dll被从文件系统133中调出(步骤S604)。由此,即使旧a.dll的使用和新a.dll的使用混合在一起,也能够在不停止OS 132或应用程序136的情况下执行更新数据处理。
(库更新处理步骤)
接下来,使用图7至图10对本实施方式涉及的库更新处理步骤进行说明。
图7是示出本实施方式涉及的库更新处理步骤的流程图。首先,管理程序131等待接收来自下载程序135的更新存在的通知(步骤S701),在不存在更新通知时(步骤S701:否),管理程序131执行基于通常模式的通常处理(步骤S702)。另一方面,在存在更新通知时(步骤S701:是),管理程序131执行基于更新数据模式的更新数据处理(步骤S703)。
图8是示出图7所示的更新数据处理的详细的处理步骤的流程图。首先,管理程序131对节点的参照对象进行扩展设定(步骤S801)。接下来,管理程序131生成新a.dll的新节点N2并设定为文件系统133(步骤S802)。然后,管理程序131向下载程序135通知下载的开始指示(步骤S803),由此新a.dll被保存在由旧节点N1指定的保存区域中。
然后,管理程序131判断旧a.dll是否处于使用中(步骤S804)。在旧a.dll处于使用中时(步骤S804:是),管理程序131生成检查线程(步骤S805),并检查使用旧a.dll的应用程序136的结束(步骤S806:否)。在使用旧a.dll的应用程序136结束时(步骤S806:是),转移到步骤S807。
另外,在步骤S804中,在旧a.dll未处于使用中时(步骤S804:否),管理程序131设定库的调出禁止(步骤S807),并将旧a.dll的删除指示通知给下载程序135(步骤S808)。然后,管理程序131等待接收来自下载程序135的删除通知(步骤S809:否)。
在接收到删除完成的通知时(步骤S809:是),管理程序131改写新节点N2的识别位(步骤S810)。然后,管理程序131设定库的调出禁止的解除(步骤S811)并进行节点的遮蔽设定,由此返回到通常模式(步骤S812)。
图9是示出管理程序131对状态表151的更新处理的流程图。首先,管理程序131对状态表151进行初始化(步骤S901)。然后,管理程序131判断旧a.dll是否处于使用中(步骤S902),在旧a.dll处于使用中时(步骤S902:是),将使用中标识Fe设为Fe=1(使用中)(步骤S903),而转移到步骤S905。另一方面,在旧a.dll未处于使用中时(步骤S902:否),管理程序131将使用中标识Fe设为Fe=0(未使用)(步骤S904),而转移到步骤S905。
另外,在步骤S905中,管理程序131判断新a.dll是否下载完成(步骤S905)。在新a.dll下载完成时(步骤S905:是),管理程序131将下载标识Fd设定为Fd=1(下载完成)(步骤S906),而转移到步骤S908。
另一方面,在步骤S905中,在未下载完成时(步骤S905:否),管理程序131将下载标识Fd设定为Fd=0(未下载)(步骤S907),而转移到步骤S908。在步骤S908中,管理程序131判断更新数据模式是否结束(步骤S908),在更新数据模式未结束时(步骤S908:否),返回到步骤S902。另一方面,在更新数据模式结束时(步骤S908:是),使状态表151的更新处理结束。
图10是示出由管理程序131执行的库的读出处理的流程图。首先,管理程序131等待来自接收应用程序136的访问事件(调出请求)(步骤S1001:否)。然后,在有访问事件时(步骤S1001:是),管理程序131判断状态表151的状态(步骤S1002)。在状态为“11”时(步骤S1002:11),即、旧a.dll处于使用中且新a.dll下载完成时,管理程序131将新a.dll确定为调出对象(步骤S1003),而转移到步骤S1005。
另一方面,在状态为“11”时(步骤S1002:11以外),管理程序131将旧a.dll确定为调出对象(步骤S1004),而转移到步骤S1004。在步骤S1005中,管理程序131将调出对象的调出指示通知给文件系统133(步骤S1005)。由此,文件系统133将调出对象的库移交给请求了访问事件的应用程序136,因此应用能够使用库。
如上所述,在本实施方式中,CPU 101执行与对象库a.dll有关的新版本的文件(新a.dll)的下载以及与对象库a.dll有关的旧版本的文件(旧a.dll)的删除。在这种情况下,管理程序131首先使CPU 101检测新版本的文件(新a.dll)的存在。如果新版本的文件被检测到,则管理程序131生成指定与第一节点(旧节点N1)不同的保存区域的第二节点(新节点N2),所述第一节点(旧节点N1)指定旧版本的文件(旧a.dll)的保存区域。
接着,在新版本的文件(新a.dll)被下载到由所生成的第二节点(新节点N2)指定的保存区域时,管理程序131判断旧版本的文件(旧a.dll)是否处于使用中。然后,在判断为未处于使用中时,管理程序131通知旧版本的文件(旧a.dll)的删除指示。
由此,在检测到存在新版本的文件(新a.dll)后(更新数据模式时),新版本的文件(新a.dll)被保存在由第二节点(新节点N2)指定的保存区域中,因此旧版本的文件(旧a.dll)不会被覆盖。因此,即使在更新数据模式时使用旧版本的文件(旧a.dll)的应用程序136正在执行,也能够在不停止OS 132或应用程序136的情况下执行更新数据处理。
另外,由于在旧版本的文件(旧a.dll)不再被使用时进行旧版本的文件(旧a.dll)和旧节点N1的删除通知,因此在旧版本的文件(旧a.dll)正在使用时不进行旧版本的文件(旧a.dll)和旧节点N1的删除。由此,即使在更新数据模式时使用旧版本的文件(旧a.dll)的应用程序136正在执行,并且即使旧版本的文件(旧a.dll)正在删除,也能够在不停止OS132或应用程序136的情况下执行更新数据处理。
另外,在旧版本的文件(旧a.dll)处于使用中时,管理程序131判断正在使用旧版本的文件(旧a.dll)的进程是否结束。然后,在判断为进程已结束时,通知旧版本的文件(旧a.dll)以及第一节点(旧节点N1)的删除指示。
如此,通过监视正在调出旧版本的文件(旧a.dll)的进程,能够确认旧版本的文件(旧a.dll)是否不再被使用。即,如果进程结束,则旧版本的文件(旧a.dll)不再被调出,因此,即使在进程结束后删除旧版本的文件(旧a.dll),也能够在不停止OS 132或应用程序136的情况下执行更新数据处理。
在存在对象库a.dll的调出请求时旧版本的文件(旧a.dll)处于使用中且新版本的文件(新a.dll)下载完成的情况下,管理程序131将新版本的文件(新a.dll)确定为调出对象。
通过在这样的状态的情况下将旧版本的文件(旧a.dll)从调出对象中去除,能够防止旧版本的文件(旧a.dll)的删除处理的延迟。并且,即使将旧版本的文件(旧a.dll)从调出对象中去除,由于新版本的文件(新a.dll)下载完成,由于即使是发出了对象库a.dll的调出请求的进程也调出最新版本,因此是高效的。因此,通过进行这样的决定,能够在不停止OS 132或应用程序136的情况下执行更新数据处理。
另外,在旧版本的文件(旧a.dll)未处于使用中时,在进行旧版本的文件(旧a.dll)以及第一节点(旧节点N1)的删除指示的通知之前,管理程序131执行对象库a.dll的调出的禁止设定。然后,在旧版本的文件(旧a.dll)和第一节点(旧节点N1)被删除时,管理程序131解除禁止设定。
由此,在删除前,新旧两版本的文件的调出被禁止,在删除后,新版本的文件(新a.dll)的调出被禁止。然后,通过解除调出禁止,能够使用新版本的文件(新a.dll)。因此,能够在不停止OS 132或应用程序136的情况下执行更新数据处理。
另外,管理程序131将各节点的参照对象从节点的一部分的指定区域(剩余位)切换至节点的全部区域,各节点的参照对象指定OS 132中所包含的各库的保存区域。另外,在旧版本的文件(旧a.dll)以及第一节点(旧节点N1)被删除时,将指定各库的保存区域的节点的参照对象从节点的全部区域切换至节点的一部分的指定区域(剩余位)。
然后,管理程序131将与第一节点(旧节点N1)的一部分的指定区域(剩余位)的值相同的值分配给指定第二节点(新节点N2)的一部分的指定区域(剩余位)。并且,将与第一节点(旧节点N1)的一部分的指定区域(剩余位)以外的剩余的区域(识别位)的值不同的值分配给第二节点(新节点N2)的一部分的指定区域(剩余位)以外的剩余的区域(识别位)的值。
即,将识别位分配给节点的一部分来识别更新数据模式和通常模式,并且将节点的剩余位在新旧库中设为相同。然后,使参照对象在更新数据模式下为包含识别位的所有位,在通常模式下为去除识别位以后的剩余位,从而使参照对象切换自如。
而且,通过在更新数据完成后将节点的参照对象复原到更新数据模式前的状态、即去除识别位以后的剩余位,来遮蔽识别位。由此,通常,在调出对象库a.dll时,着手于剩余位的处理,之后应用程序136执行调出。
在此,由于剩余位无论对新节点N2还是对旧节点N1都是相同的值,因此从应用程序136而言,如果在更新数据的前后访问由使用剩余位确定的节点指定的保存区域,则能够调出新版本的文件(新a.dll)。因此,能够在对通常模式不产生不良影响的情况下执行应用程序136。
以上,更新程序、本更新装置、以及更新方法能够应用于经由便携电话等网络进行更新数据处理的便携式终端。
符号说明
100更新装置
131管理程序
133文件系统
134链接程序
135下载程序
136应用程序
141内核
142库组
151状态表
152进程表
153链接表
N1旧节点
N2新节点
Claims (8)
1.一种更新方法,其特征在于,由执行与操作系统内的库组中的对象库有关的新版本的文件的下载和与所述对象库有关的旧版本的文件的删除的处理器执行下述步骤:
检测步骤,检测所述新版本的文件的存在;
生成步骤,在通过所述检测步骤检测到所述新版本的文件的存在时,生成指定与第一节点不同的保存区域的第二节点,所述第一节点指定所述旧版本的文件的保存区域;
判断步骤,在所述新版本的文件被下载到由通过所述生成步骤生成的第二节点所指定的保存区域时,判断所述旧版本的文件是否处于使用中;以及
通知步骤,在通过所述判断步骤判断为未处于使用中时,通知所述旧版本的文件以及所述第一节点的删除指示。
2.如权利要求1所述的更新方法,其特征在于,
在通过所述判断步骤判断为处于使用中时,所述判断步骤判断正在使用所述旧版本的文件的进程是否结束,
在通过所述判断步骤判断为所述进程结束时,所述通知步骤通知所述旧版本的文件以及所述第一节点的删除指示。
3.如权利要求1或2所述的更新方法,其特征在于,
在存在所述对象库的调出请求时,在所述旧版本的文件处于使用中且所述新版本的文件下载完成的情况下,执行将所述新版本的文件确定为调出对象的确定步骤,
所述通知步骤将通过所述确定步骤确定的调出对象通知给发出了所述调出请求的进程。
4.如权利要求1或2所述的更新方法,其特征在于,
在所述旧版本的文件未处于使用中时,在所述旧版本的文件以及所述第一节点的删除指示的通知之前,执行所述对象库的调出的禁止设定,在所述旧版本的文件以及所述第一节点被删除时,执行解除所述禁止设定的禁止/解除设定步骤。
5.如权利要求1或2所述的更新方法,其特征在于,
执行第一切换步骤和第二切换步骤,
在所述第一切换步骤中,在通过所述检测步骤检测到所述新版本的文件的存在时,将指定所述操作系统中所包含的各库的保存区域的各节点的参照对象从所述节点的一部分的指定区域切换至所述节点的全部区域,
在所述第二切换步骤中,在所述旧版本的文件以及所述第一节点被删除时,将指定所述各库的保存区域的节点的参照对象从所述节点的全部区域切换至所述节点的一部分的指定区域,
所述生成步骤将与所述第一节点的所述一部分的指定区域的值相同的值分配给指定所述第二节点的所述一部分的指定区域,并且将与所述第一节点的所述一部分的指定区域以外的剩余的区域的值不同的值分配给所述第二节点所述的一部分的指定区域以外的剩余的区域的值,由此生成所述第二节点。
6.如权利要求5所述的更新方法,其特征在于,
执行改写步骤,在所述改写步骤中,在所述旧版本的文件以及所述第一节点被删除时,将所述第二节点的所述剩余的区域的值改写为与所述第一节点的所述剩余的区域的值相同的值。
7.一种更新装置,执行与操作系统内的库组中的对象库有关的新版本的文件的下载和与所述对象库有关的旧版本的文件的删除,所述更新装置的特征在于,包括:
检测单元,所述检测单元检测所述新版本的文件的存在;
生成单元,在通过所述检测单元检测到所述新版本的文件的存在时,所述生成单元生成指定与第一节点不同的保存区域的第二节点,所述第一节点指定所述旧版本的文件的保存区域;
判断单元,在所述新版本的文件被下载到由通过所述生成单元生成的第二节点所指定的保存区域时,所述判断单元判定所述旧版本的文件是否处于使用中;以及
通知单元,在通过所述判断单元判断为未处于使用中时,通知所述旧版本的文件以及所述第一节点的删除指示。
8.一种更新程序,其特征在于,使执行与操作系统内的库组中的对象库有关的新版本的文件的下载和与所述对象库有关的旧版本的文件的删除的处理器执行下述步骤:
检测步骤,检测所述新版本的文件的存在;
生成步骤,在通过所述检测步骤检测到所述新版本的文件的存在时,生成指定与第一节点不同的保存区域的第二节点,所述第一节点指定所述旧版本的文件的保存区域;
判断步骤,在所述新版本的文件被下载到由通过所述生成步骤生成的第二节点所指定的保存区域时,判断所述旧版本的文件是否处于使用中;以及
通知步骤,在通过所述判断步骤判断为未处于使用中时,通知所述旧版本的文件以及所述第一节点的删除指示。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/052794 WO2011104825A1 (ja) | 2010-02-23 | 2010-02-23 | 更新方法、更新装置、および更新プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102754082A true CN102754082A (zh) | 2012-10-24 |
Family
ID=44506272
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010800632393A Pending CN102754082A (zh) | 2010-02-23 | 2010-02-23 | 更新方法、更新装置、以及更新程序 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20120304162A1 (zh) |
EP (1) | EP2541412A4 (zh) |
JP (1) | JPWO2011104825A1 (zh) |
CN (1) | CN102754082A (zh) |
WO (1) | WO2011104825A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014183692A1 (zh) * | 2013-12-06 | 2014-11-20 | 中兴通讯股份有限公司 | 一种软件升级方法和装置 |
CN107885516A (zh) * | 2016-09-30 | 2018-04-06 | 环鸿电子(昆山)有限公司 | 应用程序更新方法及移动装置 |
CN111796941A (zh) * | 2020-07-06 | 2020-10-20 | 北京字节跳动网络技术有限公司 | 内存管理方法、装置、计算机设备和存储介质 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014206967A (ja) * | 2013-03-18 | 2014-10-30 | 株式会社Genusion | 記憶装置 |
KR101907418B1 (ko) * | 2014-07-01 | 2018-10-12 | 한국전자통신연구원 | 동적 모듈, 이를 구비한 동적 업그레이드 장치 및 방법 |
DE102015214385A1 (de) * | 2015-07-29 | 2017-02-02 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Absichern der Anwendungsprogrammierschnittstelle eines Hypervisors |
US10572275B2 (en) * | 2017-06-15 | 2020-02-25 | Microsoft Technology Licensing, Llc | Compatible dictionary layout |
US10684881B2 (en) * | 2017-11-07 | 2020-06-16 | International Business Machines Corporation | Batch processing of computing elements to conditionally delete virtual machine(s) |
CN109753319B (zh) * | 2018-12-28 | 2020-01-17 | 中科寒武纪科技股份有限公司 | 一种释放动态链接库的装置及相关产品 |
CN111190628B (zh) * | 2019-12-31 | 2023-10-20 | 京信网络系统股份有限公司 | 基站升级方法、装置、设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07319683A (ja) * | 1994-05-30 | 1995-12-08 | Nippon Telegr & Teleph Corp <Ntt> | 運用中プログラム更新方式 |
JPH11345114A (ja) * | 1998-06-02 | 1999-12-14 | Nec Corp | クライアントアプリケーションプログラムの管理方法及びその装置 |
US20020066093A1 (en) * | 2000-09-14 | 2002-05-30 | Yen Hsiang Tsun | System and method for updating an executing executable file |
JP2006004373A (ja) * | 2004-06-21 | 2006-01-05 | Sanyo Electric Co Ltd | 電気機器管理装置およびソフトウェア更新装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06110668A (ja) * | 1992-09-25 | 1994-04-22 | Fujitsu Ltd | 世代付きロードモジュールライブラリの更新処理システム |
US6154878A (en) * | 1998-07-21 | 2000-11-28 | Hewlett-Packard Company | System and method for on-line replacement of software |
US6397385B1 (en) * | 1999-07-16 | 2002-05-28 | Excel Switching Corporation | Method and apparatus for in service software upgrade for expandable telecommunications system |
US7346009B2 (en) * | 2002-09-30 | 2008-03-18 | Mosaid Technologies, Inc. | Dense mode coding scheme |
US7389505B2 (en) * | 2004-07-30 | 2008-06-17 | Extreme Networks, Inc. | Method and apparatus for modifying software |
-
2010
- 2010-02-23 JP JP2012501564A patent/JPWO2011104825A1/ja active Pending
- 2010-02-23 WO PCT/JP2010/052794 patent/WO2011104825A1/ja active Application Filing
- 2010-02-23 CN CN2010800632393A patent/CN102754082A/zh active Pending
- 2010-02-23 EP EP10846492.6A patent/EP2541412A4/en not_active Withdrawn
-
2012
- 2012-08-08 US US13/569,659 patent/US20120304162A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07319683A (ja) * | 1994-05-30 | 1995-12-08 | Nippon Telegr & Teleph Corp <Ntt> | 運用中プログラム更新方式 |
JPH11345114A (ja) * | 1998-06-02 | 1999-12-14 | Nec Corp | クライアントアプリケーションプログラムの管理方法及びその装置 |
US20020066093A1 (en) * | 2000-09-14 | 2002-05-30 | Yen Hsiang Tsun | System and method for updating an executing executable file |
JP2006004373A (ja) * | 2004-06-21 | 2006-01-05 | Sanyo Electric Co Ltd | 電気機器管理装置およびソフトウェア更新装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014183692A1 (zh) * | 2013-12-06 | 2014-11-20 | 中兴通讯股份有限公司 | 一种软件升级方法和装置 |
CN107885516A (zh) * | 2016-09-30 | 2018-04-06 | 环鸿电子(昆山)有限公司 | 应用程序更新方法及移动装置 |
CN111796941A (zh) * | 2020-07-06 | 2020-10-20 | 北京字节跳动网络技术有限公司 | 内存管理方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2011104825A1 (ja) | 2011-09-01 |
US20120304162A1 (en) | 2012-11-29 |
EP2541412A4 (en) | 2013-04-10 |
JPWO2011104825A1 (ja) | 2013-06-17 |
EP2541412A1 (en) | 2013-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102754082A (zh) | 更新方法、更新装置、以及更新程序 | |
US7353375B2 (en) | Method and apparatus for managing processor availability using a microcode patch | |
CN100412865C (zh) | 效率得到提高的读取-复制更新系统和方法 | |
KR101255382B1 (ko) | 운영체제에 친숙한 부트로더 | |
US7890950B1 (en) | Software uninstallation that integrates transfer activation | |
CN102630320B (zh) | 信息处理装置以及应用程序不正当协作防止方法 | |
CN102150105B (zh) | 虚拟容器的部署和管理 | |
CN101026848B (zh) | 移动终端和软件更新方法 | |
CN100456303C (zh) | 文件删除方法和文件打开方法 | |
US5537596A (en) | Method and apparatus for overriding resource maps in a computer system | |
CN1327345C (zh) | 信息处理设备和程序 | |
CN102567128B (zh) | 系统复位 | |
CN103221921A (zh) | 利用流技术的软件映像的直接迁移 | |
CN100373337C (zh) | 一种嵌入式系统的引导系统 | |
MX2013005599A (es) | Instalacion precalentada de software. | |
US20110131364A1 (en) | Reprogramming a non-volatile solid state memory system | |
CN101639785A (zh) | 软件升级方法及装置 | |
EP2329368B1 (en) | Updating content without using a mini operating system | |
CN103984585A (zh) | 一种Linux内核可热插拨内核模块运行时升级方法 | |
CN111221553A (zh) | 一种固件升级的方法及装置 | |
US6009414A (en) | Computer system with checkpoint facility and accounting facility indicating charges payable for processes | |
CN103493022B (zh) | 多核处理器系统 | |
CN104573496A (zh) | 一种禁止启动项启动的方法和装置 | |
EP3786830A1 (en) | Protecting device and protecting method | |
US20160041782A1 (en) | Storage Device Copying of a larger system to a smaller system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20121024 |