用于嵌入式装置的进程管理方法及嵌入式装置与流程

文档序号:18642159发布日期:2019-09-11 23:34阅读:129来源:国知局
用于嵌入式装置的进程管理方法及嵌入式装置与流程

本发明属于网络技术领域,尤其涉及一种用于嵌入式装置的进程管理方法及嵌入式装置。



背景技术:

现有的嵌入式操作系统是建立在外存+内存的结构基础上的,如闪存(flash)+随机存取存储器(ram),系统的所有进程被保存在外存中。运行过程中,系统将原本在flash中运行的程序(包括启动代码、操作系统及其任务)调入到ram中运行,这就导致系统的能力受flash大小的制约,如果外存小,操作系统的功能就会减少,如果外存大,整个系统变得臃肿不便于维护。

对于处于多变环境的嵌入式操作系统,不同的嵌入式装置需要不同的进程来处理问题,如果为每个嵌入式装置单独配置一个操作系统,则代价太大,当环境发生改变时,嵌入式装置也无法自己适应新的环境,这就导致系统的环境适应能力较弱。如果将不同环境各自的进程都放进外存中,虽然一定程度上增加了系统的环境适应能力,但是环境变化多种多样的,这就导致进程数量也很庞大。并且,当嵌入式装置处于一个开发时未考虑到的环境时,操作系统很难根据新出现的环境来得到正确的结果。

可见,如何解决存储空间的限制所导致的嵌入式操作系统的环境适应能力差的问题,是提高嵌入式系统性能的重要方面。



技术实现要素:

因此,本发明的目的在于克服上述现有技术的缺陷,提供一种用于嵌入式装置的进程管理方法及嵌入式装置。

本发明的目的是通过以下技术方案实现的:

一方面,本发明实施例提供了一种用于嵌入式装置的进程管理方法,所述方法包括:获取云端服务器传输的进程的标识以及所述进程的数据,其中所述云端服务器中保存有嵌入式装置所需的多个进程的数据;根据所述进程的标识以及所述进程的数据,更新或者新增所述嵌入式装置的所述进程。

上述方法中,根据所述进程的标识以及所述进程的数据,更新或者新增所述嵌入式装置的所述进程之前,所述方法还包括:对所述进程的数据进行校验,确定校验通过后,采用测试数据对所述进程进行测试,获得测试结果。

上述方法中,获取云端服务器传输的进程的标识以及所述进程的数据之前,所述方法还包括:获取所述云端服务器传输的第一通知消息,所述第一通知消息中至少包括所述进程的标识、所述进程需占用的存储空间大小以及第一指示信息,所述第一指示信息用于指示更新或新增所述进程;根据所述第一通知消息,确定更新或者新增所述进程需占用的存储空间大小,预留更新或者新增所述进程所需的存储空间。

上述方法中,所述第一指示信息用于指示新增所述进程;根据所述进程的标识以及所述进程的数据,新增所述嵌入式装置的所述进程,包括:确定所述测试结果指示测试通过后,将所述进程的数据写入外部存储器中,并维护所述进程的进程表项,所述进程表项中包括所述进程的唯一标识以及新增后所述进程的存储位置。

上述方法中,所述第一指示信息用于指示更新所述进程;根据所述进程的标识以及所述进程的数据,更新所述嵌入式装置的所述进程,包括:若确定所述测试结果指示测试通过,采用所述进程的数据对所述进程进行更新,并在所述进程的进程表项中更新所述进程的版本信息;若确定所述测试结果指示测试未通过,保持所述进程的原有数据以及所述进程表项的原有参数不变。

上述方法中,根据所述进程的标识以及所述进程的数据,更新或者新增所述嵌入式装置的所述进程之后,所述方法还包括:获取所述云端服务器传输的第二通知消息,所述第二通知消息中至少包括所述进程的标识以及第二指示信息,所述第二指示信息用于指示删除所述进程;根据所述第二通知消息,在所述进程未运行的状态下,释放所述进程占用的存储空间,并在进程表中将所述进程标记为无效。

上述方法中,所述进程的数据包括所述进程经编译后的可执行文件。

又一方面,本发明实施例提供一种嵌入式装置,包括处理器和存储器,所述存储器中存储有供所述处理器运行的计算机程序,所述处理器运行所述计算机程序实现所述的进程更新方法

与现有技术相比,本发明的优点在于:通过在云端服务器中保存嵌入式装置所需的多个进程的数据,嵌入式装置需要更新或新增进程时,从云端服务器获取该进程的唯一标识以及该进程的数据。通过利用云端服务器无限的存储空间,提高了嵌入式系统的环境适应能力,解决了因存储空间的限制所导致的嵌入式操作系统的环境适应能力差的问题,提高了嵌入式系统的性能。

附图说明

以下参照附图对本发明实施例作进一步说明,其中:

图1为根据本发明实施例的进程更新过程示意图;

图2为根据本发明实施例的嵌入式装置从云端服务器获得进程数据的过程示意图;

图3a为根据本发明实施例的新增进程时第一通知消息格式示意图;

图3b为根据本发明实施例的更新进程时第一通知消息格式示意图;

图4为根据本发明实施例的新增进程的过程示意图;

图5为根据本发明实施例的更新进程的过程示意图;

图6a为根据本发明实施例的第二通知消息格式示意图;

图6b为根据本发明实施例的删除进程的过程示意图;

图7为根据本发明实施例的嵌入式装置结构示意图;

图8为根据本发明实施例的云端服务器的结构示意图。

具体实施方式

为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

仅利用嵌入式装置本地有限的存储空间无法保存几乎无限的环境的进程,单纯增加嵌入式装置本地存储空间的大小无法解决该问题,本发明实施例中提出了利用云端无限的存储空间来存储进程数据的方案,在云端服务器中保存嵌入式装置本地没有但能够被嵌入式装置调用的进程,并且能够增加新的进程。以下各实施例中所称的嵌入式装置,是指任意一个安装有嵌入式系统的设备。

根据本发明,在一个新的运行环境出现,嵌入式装置需要该新的运行环境的进程时,从云端服务器下载该进程的数据,并采用标识标记进程,嵌入式装置将该新的运行环境的进程保存在本地,例如保存在外部存储器中。也可以是,在嵌入式装置的进程需要更新时,从云端服务器下载该进程的更新数据,嵌入式装置采用该进程的更新数据替换该进程的原有数据。

如图1所示,根据本发明的一个实施例,进程更新或新增的过程如下:

步骤101,云端服务器获取本地保存的、嵌入式装置待更新的进程的标识以及该进程的数据,云端服务器中保存有嵌入式装置所需的多个进程的数据;

步骤102,云端服务器将该进程的标识以及该进程的数据,传输给该嵌入式装置;

步骤103,嵌入式装置获取云端服务器传输的进程的标识以及该进程的数据;

步骤104,嵌入式装置根据该进程的标识以及该进程的数据,更新或者新增该嵌入式装置的该进程。

该实施例,通过加入云端服务器来扩展嵌入式装置的能力,实现了嵌入式装置进程的可重加载。嵌入式装置可通过操作系统中内核级的进程实现对其他进程的更新或新增,该内核级的进程称为更新程序。嵌入式装置的操作系统,通过该更新程序既能够调用本地外部存储器中包含的进程,也能够调用云端服务器中的进程。当进程处于云端服务器且嵌入式装置不包含该进程时,嵌入式装置通过该更新程序能够向云端服务器申请并下载进程。嵌入式装置中保存有各进程的进程表项,一个进程的进程表项中保存有该进程的标识、该进程的存储位置(例如是存储在本地,还是存储在云端服务器中)、该进程所占用的存储空间大小等。当需要添加新进程时,嵌入式装置能够将该新进程添加至维护的进程表中。通过加入云端服务器,扩大了嵌入式装置的进程存储空间,在不同的环境下采用不同的进程解决问题,增强了嵌入式系统的环境适应能力。

一个实施例中,云端服务器中保存所有嵌入式装置能够执行的进程,嵌入式装置仅保存当前使用或使用频率较高的进程,当环境改变后,嵌入式装置需要使用更多的进程时,云端服务器通过置换或新增进程到嵌入式装置,以扩展嵌入式装置的能力。

一个实施例中,每个进程都有各自的标识,嵌入式装置向云端服务器请求进程的过程为:嵌入式装置在需要使用某个进程时,按照该进程的标识,从本地的进程表中查找该进程的进程表项,根据进程表项中保存的该进程的存储位置信息,判断该进程的数据是否保存在本地,如果在,则直接调用该进程,否则,向云端服务器请求该进程。嵌入式装置在本地未保存有该进程的数据时,产生一个中断,通过该中断向云端服务器请求获得该进程的数据。

一个实施例中,嵌入式装置从云端服务器获得进程数据的过程如图2所示,包括如下步骤:

步骤201,嵌入式装置调用一个进程;

步骤202,嵌入式装置判断该进程是否在本地,若不是,执行步骤203,否则,直接调用该进程后结束流程;

步骤203,嵌入式装置向云端服务器请求获取该进程的数据;

步骤204,云端服务器向嵌入式装置传输第一通知消息,该第一通知消息中至少包括该进程的标识、该进程需占用的存储空间大小以及第一指示信息,该第一指示信息用于指示新增或更新该进程;

步骤205,嵌入式装置获取云端服务器传输的第一通知消息,并调用更新程序;

步骤206,嵌入式装置通过更新程序判断剩余存储空间是否大于该进程需占用的存储空间大小,若不大于,则执行步骤207,若大于,执行步骤208;

步骤207,嵌入式装置释放至少一个最近未使用的进程所占用的存储空间,并修改进程表中被释放的进程的进程表项,执行步骤208,例如,修改被释放的进程的进程表项中该进程的存储位置为未存储在本地;

步骤208,嵌入式装置向云端服务器返回继续传输该进程的数据的指示消息;

步骤209,云端服务器根据嵌入式装置返回的指示消息,传输该进程的数据至嵌入式装置,嵌入式装置将该新增或更新的进程的数据烧写至flash中;

步骤210,嵌入式装置对接收到的该进程的数据进行校验,判断校验是否通过,若未通过,则执行步骤214,若通过,则执行步骤211;

步骤211,嵌入式装置通过更新程序检测该进程的测试结果;

步骤212,嵌入式装置判断测试结果是否能够被接受,若是,则执行步骤213,否则,执行步骤214;

步骤213,嵌入式装置在进程表中更新该进程的进程表项,并向云端服务器返回传输成功的消息,结束流程;

步骤214,嵌入式装置向云端服务器返回进程错误的消息,并释放该新增或更新的进程所占用的存储空间,结束流程。

其中,若第一指示信息指示新增进程,则该第一通知消息的格式如图3a所示,若第一指示信息指示更新进程,则该第一通知消息的格式如图3b所示。当然,第一通知消息的格式并不限于此,此处仅是举例说明。

其中,新增进程是指开发人员开发了新的功能,产生了新的进程,并将该新的进程保存至云端服务器后,云端服务器通知嵌入式装置在进程表中增加进程表项。但是,为了保证进程数据的正确性,云端服务器在发现新增的进程后,将该新增的进程的可执行数据发送至嵌入式装置,由嵌入式装置对该进程的可执行进程进行测试,在测试结果正确后保存该进程的数据,否则通知云端服务器该进程有误。具体地,如图4所示,新增进程的过程如下:

步骤401,云端服务器发送第一通知消息至嵌入式装置,该第一通知消息中包括新增的进程的标识、新增该进程所需占用的存储空间大小以及用于指示操作类型为新增进程的第一指示信息;

步骤402,嵌入式装置收到第一通知消息后调用更新程序;

步骤403,嵌入式装置通过该更新程序判断剩余存储空间是否大于新增该进程所需占用的存储空间大小,若不大于,则执行步骤404,否则,执行步骤405;

步骤404,嵌入式装置释放至少一个最近未使用的进程所占用的存储空间,并修改进程表中被释放的进程的进程表项,执行步骤405,例如,修改被释放的进程的进程表项中该进程的存储位置为未存储在本地;

步骤405,嵌入式装置向云端服务器返回继续传输该新增的进程的数据的指示消息;

步骤406,云端服务器根据嵌入式装置返回的指示消息,传输该新增的进程的数据至嵌入式装置,嵌入式装置将该新增的进程的数据烧写至flash中;

步骤407,嵌入式装置对接收到的该新增的进程的数据进行校验,判断校验是否通过,若未通过,则执行步骤411,若通过,则执行步骤408;

步骤408,嵌入式装置通过更新程序检测该新增的进程的测试结果;

步骤409,嵌入式装置判断测试结果是否能够被接受,若是,则执行步骤410,否则,执行步骤411;

步骤410,嵌入式装置在进程表中增加进程的进程表项,并向云端服务器返回传输成功的消息,结束流程;其中,新增的进程表项中保存有新增的进程的标识以及新增的进程的存储位置,当然,进程表项中也可以保存新增的进程的其他信息,例如新增的进程所占用的存储空间大小等;

步骤411,嵌入式装置向云端服务器返回进程错误的消息,并释放该新增的进程所占用的存储空间,结束流程。

其中,除了进程的远程调用,还面临的问题是如何给嵌入式装置的操作系统增加本身不具有的功能。对于传统的嵌入式操作系统,进行系统升级可以一定程度上解决这一问题,但是一次升级带来的开销是非常大的,意味着嵌入式装置需要停机作业同时需要人工干预,而多变环境下的嵌入式装置频繁进行系统升级显然效率非常低,如何高效的解决这一问题也是本发明的难点之一。为了解决该问题,在一个实施例中,由云端服务器通知嵌入式装置有进程升级,并向嵌入式装置发送该进程的升级数据,嵌入式装置对该升级数据进行测试,如果测试不可接受,则回滚至上一版本,若可接受,则删除该进程的升级之前的数据。具体地,如图5所示,更新进程,即升级进程的具体过程如下:

步骤501,云端服务器向嵌入式装置发送第一通知消息至嵌入式装置,该第一通知消息中包括需要升级的进程的标识、升级该进程所需占用的存储空间大小以及用于指示操作类型为升级进程的第一指示信息;

步骤502,嵌入式装置接收第一通知消息后,调用更新程序;

步骤503,嵌入式装置通过更新程序判断需要升级的进程是否正在运行,若是,则执行步骤504,否则,执行步骤505;

步骤504,嵌入式装置通过更新程序阻塞该需要升级的进程并还原数据后,执行步骤505;

步骤505,嵌入式装置通过更新程序判断剩余存储空间是否大于升级该进程所需占用的存储空间大小,若不大于,则执行步骤506,否则,执行步骤507;

步骤506,嵌入式装置释放至少一个最近未使用的进程所占用的存储空间,并修改进程表中被释放的进程的进程表项,执行步骤507,例如,修改被释放的进程的进程表项中该进程的存储位置为未存储在本地;

步骤507,嵌入式装置向云端服务器返回继续传输该需要升级的进程的数据的指示消息;

步骤508,云端服务器根据嵌入式装置返回的指示消息,传输该需要升级的进程的数据至嵌入式装置,嵌入式装置将该需要升级的进程的数据烧写至flash中;

步骤509,嵌入式装置对接收到的该需要升级的进程的数据进行校验,判断校验是否通过,若未通过,则执行步骤515,若通过,则执行步骤510;

步骤510,嵌入式装置通过更新程序检测该需要升级的进程的测试结果;

步骤511,嵌入式装置判断测试结果是否能够被接受,若是,则执行步骤512,否则,执行步骤515;

步骤512,嵌入式装置判断该进程在升级之前是否存储在本地,若是,则执行步骤513,否则,执行步骤514;

步骤513,嵌入式装置释放该进程升级之前的数据所占用的存储空间,执行步骤514;

步骤514,嵌入式装置在进程表中更新该进程的进程表项,并向云端服务器返回升级成功的消息,结束流程;其中,更新该进程的进程表项包括更新进程表项中该进程的版本、升级后该进程所占用的存储空间大小以及升级后该进程的存储位置等;

步骤515,嵌入式装置向云端服务器返回进程错误的消息,并释放该升级该进程所占用的存储空间,结束流程。

其中,在升级进程的过程中,若对进程的升级数据进行测试的结果指示测试未通过,保持进程的原有数据以及该进程的进程表项的原有参数不变。

一个实施例中,当某一进程不需要再使用时,云端服务器向嵌入式装置传输第二通知消息,该第二通知消息中至少包括该进程的标识以及第二指示信息,该第二指示信息用于指示删除该进程,第二通知消息的格式如图6a所示;嵌入式装置获取云端服务器传输的该第二通知消息,根据该第二通知消息,在该进程未运行的状态下,释放该进程占用的存储空间,并在进程表中将该进程标记为无效。具体地,如图6b所示,删除进程的过程如下:

步骤601,云端服务器向嵌入式装置发送第二通知消息,该第二通知消息中包括需要删除的进程的标识以及用于指示删除该进程的第二指示信息;

步骤602,嵌入式装置接收第二通知消息后,调用更新程序;

步骤603,嵌入式装置通过该更新程序判断需要删除的进程是否在运行,若是,执行步骤604,否则,执行步骤605;

步骤604,嵌入式装置通过更新程序阻塞该需要删除的进程并还原数据后,执行步骤605;

步骤605,嵌入式装置判断该需要删除的进程是否保存在flash中,若是,执行步骤606,否则,执行步骤607;

步骤606,嵌入式装置释放该需要删除的进程所占用的存储空间,执行步骤607;

步骤607,嵌入式装置将进程表中删除的进程的进程表项标记为无效,例如,将该删除的进程的进程表项中用于表示该进程是否有效的比特位设置为0,其中,该比特位取值为0表示无效,取值为1表示有效;

步骤608,嵌入式装置向云端服务器返回删除成功的消息。

一个实施例中,云端服务器向嵌入式装置发送的进程的数据为经编译后的可执行文件,这样嵌入式装置在收到该进程的数据后直接执行即可。云端服务器在进程的数据转换为二进制文件后,在该二进制文件的基础上添加上该进程的基本信息,该基本信息包括进程优先级、堆栈大小以及校验信息。在云端传输的消息的起始两位比特位用于区别云端服务器的通知消息和进程的数据。其中,检验信息用于嵌入式装置对接收到的进程的数据进行校验,以保证传输数据的准确性。由于网络传输协议本身包含有检验过程,这种校验不是必须的。但是本实施例中在传输的数据中添加校验信息,能够使得对进程的数据的正确性校验与网络传输协议无关。例如,使用udp一类的协议也能够保证数据的正确性,使得进程更新的适用范围更广。用于传输进程的数据的消息的结构如表1所示,当然,此处仅为举例说明,该消息的结构并不以此为限制。

表1消息结构

基于同一发明构思,本发明实施例中还提供了一种嵌入式装置,如图7所示,该嵌入式装置主要包括处理器701和存储器702,该存储器702中存储有供处理器701运行的计算机程序,处理器701运行该计算机程序实现上述实施例所提供的进程更新方法。

存储器702可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储选项列表等。此外,存储器702可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施方式中,存储器702可选包括相对于处理器701远程设置的存储器,这些远程存储器可以通过网络连接至外接设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

基于同一发明构思,本发明实施例中还提供了一种云端服务器,如图8所示,该嵌入式装置主要包括处理器801和存储器802,该存储器802中存储有供处理器801运行的计算机程序,处理器801运行该计算机程序实现上述实施例所提供的进程更新方法。

存储器802可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储选项列表等。此外,存储器802可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施方式中,存储器802可选包括相对于处理器801远程设置的存储器,这些远程存储器可以通过网络连接至外接设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

本发明实施例中还提供了一种计算机可读存储介质,其中,该计算机可读存储介质中存储有计算机程序,该计算机程序被执行后实现本发明实施例所提供的嵌入式装置或云端服务器侧的进程更新方法。

本领域技术人员可以理解,实现上述进程更新方法的实施例中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

虽然本发明已经通过优选实施例进行了描述,然而本发明并非局限于这里所描述的实施例,在不脱离本发明范围的情况下还包括所做出的各种改变以及变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1