CN112083959A - 服务配置管理方法、装置、终端和计算机可读存储介质 - Google Patents
服务配置管理方法、装置、终端和计算机可读存储介质 Download PDFInfo
- Publication number
- CN112083959A CN112083959A CN201910509159.9A CN201910509159A CN112083959A CN 112083959 A CN112083959 A CN 112083959A CN 201910509159 A CN201910509159 A CN 201910509159A CN 112083959 A CN112083959 A CN 112083959A
- Authority
- CN
- China
- Prior art keywords
- subsystem
- hal
- service
- peripheral
- service request
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
Abstract
本发明实施例提供了一种服务配置管理方法,包括设置需要管理的硬件抽象层HAL服务列表;当接收到一子系统发送的HAL服务请求时,依据上述设置的HAL服务列表,将子系统发送的HAL服务请求转接到主控系统进行处理;确认所接收到的HAL服务请求所对应的需要驱动操作的外设,并获取该外设在各子系统的实际工作状态;根据上述获取的实际工作状态执行上述子系统所发送的HAL服务请求,从而解决的双系统外设冲突的问题。
Description
技术领域
本发明实施例涉及但不限于通信领域,具体而言,涉及但不限于服务配置管理方法、装置、终端和计算机可读存储介质。
背景技术
现有双系统架构上,由于在一个内核上同时运行多个子系统,所以各子系统都是通过各自的HAL(Hardware Abstraction Layer,硬件抽象层)服务直接进行外设的访问和控制。由于系统间是共享内核(kernel)的,所以外设驱动也是系统间共享的,因此很容易出现设备资源冲突的问题。比如,一个系统在关闭外设时,会通过HAL请求到kernel进行驱动的卸载操作,当驱动卸载后另外一个同时在使用该外设的系统也就无法正常使用了。
发明内容
本发明实施例提供的服务配置管理方法、装置、终端和计算机可读存储介质,至少可以解决上述相关技术中双系统结构上外设并发操作导致资源冲突的问题。
依据本发明的一种实施例,提供了一种服务配置管理方法,包括下述步骤设置需要管理的硬件抽象层HAL服务列表;当接收到一子系统发送的HAL服务请求时,依据上述设置的HAL服务列表,将子系统发送的HAL服务请求转接到主控系统进行处理;确认所接收到的HAL服务请求所对应的需要驱动操作的外设,并获取该外设在各子系统的实际工作状态;根据上述获取的实际工作状态执行上述子系统所发送的HAL服务请求。
本发明实施例还提供一种服务配置管理装置,包括:配置设置单元,配置为设置需要管理的硬件抽象层HAL服务列表;请求转接单元,配置为当接收到一子系统发送的HAL服务请求时,依据上述设置的HAL服务列表,将子系统发送的HAL服务请求转接到主控系统进行处理;状态管理单元,配置为确认所接收到的HAL服务请求所对应的需要驱动操作的外设,并获取该外设在各子系统的实际工作状态;服务处理单元,配置为根据上述获取的实际工作状态执行上述子系统所发送的HAL服务请求。
本发明实施例还提供一种终端设备,终端设备包括处理器、存储器及通信总线;通信总线用于实现处理器和存储器之间的连接通信;处理器用于执行存储器中存储的一个或者多个计算机程序,以实现上述的服务配置管理方法的步骤。
本发明实施例还提供一种计算机存储介质,计算机可读存储介质存储有一个或者多个程序,一个或者多个程序可被一个或者多个处理器执行,以实现上述的服务配置管理方法的步骤。
本发明的有益效果至少包括:根据本发明实施例提供的服务配置管理方法、装置、终端设备和存储介质,不仅能够有效解决现有双系统架构下外设资源访问容易出现冲突的问题,以满足外设可以同时支持双工工作的需求。同时,还能减少系统所运行的HAL服务进程数,很好的减少系统的内存开销和提升系统运行的性能。
本发明其他特征和相应的有益效果在说明书的后面部分进行阐述说明,且应当理解,至少部分有益效果从本发明说明书中的记载变的显而易见。
附图说明
图1为本发明实施例中终端设备的架构示意图。
图2为本发明实施例中双系统的架构示意图。
图3为本发明实施例中服务配置管理方法的流程示意图。
图4为本发明实施例中服务配置管理方法的步骤S102的细化流程示意图。
图5为本发明实施例中服务配置管理方法的步骤S106的细化流程示意图。
图6为本发明实施例中服务配置管理装置的组成示意图。
图7为本发明实施例中双系统的服务配置管理方法的运行架构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(Personal Communications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global Positioning System,全球定位系统)接收器等;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
如图1、图2所示,本发明实施例的终端设备的内部结构的框架示意。所述终端设备10至少包括主控系统13(host system,也可以称为宿主系统、主机容器等)、第一子系统14,以及第二子系统15。应说明的是,上述示意图中仅示出两个子系统(也可以称为虚拟容器),但实际上并不限于两个子系统,可以是多个子系统。当然实际上也并不限于图中所示的一个主控系统13,也可以是包括多个主控系统。
在一实施方式中,本发明实施例中的子系统,可以是设置在以Linux container(容器)虚拟化技术创建的容器中的操作系统。操作系统可以为传统意义上的Linux操作系统或Unix操作系统,也可以是基于Linux操作系统衍生出来的Android系统、Ubuntu系统或FireFox系统等,还可以为以Windows平台为基础的windows系统等等。实际上,本发明中的子系统不限于前述例举的操作系统,可以涵盖所有能够在容器中运行的操作系统。
在一实施例中,上述主控系统13可以是上述传统的操作系统,也可以是对传统的kernel(内核)进行改进和/或在kernel之外(例如框架层和应用层)增加功能模块之后,得到的操作系统。如图2所示,所述主控系统13主要用于对两个子系统进行前后台管理,与各子系统进行交互等。
在一实施方式中,所述终端设备1还包括处理器11(可以是一个或多个,图中仅示出一个)、存储器12(可以是一个或多个,图中仅示出一个)。所述处理器11和存储器12之间可以通过通用总线(未标号)连接通信。
本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端设备10的结构造成限定。例如,终端设备10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
所述处理器11可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置。所述存储器12可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的服务配置管理方法对应的计算机程序,处理器11通过运行存储在存储器12内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器12可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器12可进一步包括相对于处理器11远程设置的存储器,这些远程存储器可以通过网络连接至终端设备10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合等各类适用的网络。
应说明的是,所述终端设备10可以对双系统或多系统的HAL(HardwareAbstraction Layer,硬件抽象层)服务的请求进行管理,能够有效解决现有双/多系统架构下外设资源访问容易出现冲突的问题,满足外设可以同时支持双/多工工作的需求。
在一实施例中,提供了一种服务管理方法。如图3所示,图3为本发明实施例中服务配置管理方法的流程示意图。所述服务管理方法可以包括,但不限于下述步骤。
步骤S100,设置需要管理的HAL服务列表。
在一实施例方式中,子系统(例如第一子系统14/第二子系统15)启动之前,在各个子系统上会预先设置好需要管理的HAL服务列表。所述HAL服务列中记录或保存了所有需要管控的HAL服务的数据。在一实施方式中,可以预先将一些需要管控的操作行为预置到所述需要管理的HAL服务列表中,该操作行为可以是与硬件外设有关的接口/驱动服务相关的操作,也可以是会导致外设工作冲突的相关操作的操作。应说明的是,所述操作行为可以指但不限于服务请求、API(Application Programming Interface,应用程序编程)接口调用请求等。在其他较佳实施方式中,也可以根据实际实际需求进行修改或更新所述HAL服务列表。在一实施方式中,所述需要管理的HAL服务列表中可以记录所有需要管控的HAL服务的服务名。
步骤S102,当接收到子系统发送的HAL服务请求时,依据上述设置的HAL服务列表,将子系统发送的HAL服务请求转接到主控系统13进行处理。
在一实施方式中,为了实现能够将子系统发送的HAL服务请求进行转接控制处理,本发明预先针对进程间通信(Inter-Process Communication,IPC)机制进行了扩展,通过将各系统间的应用组件(进程)设有对应的句柄标志,以实现针对不同系统间应用组件的句柄标志进行区别。例如,在一实施例中,当主控系统13和第一子系统14、第二子系统15之间基于Binder机制进行进程间通信时,可以通过将主控系统13的ServiceManager(系统服务管理)组件对应的句柄(handle)设为“1”,将第一子系统14的ServiceManager组件对应的handle设为“2”,以及将第二子系统15的ServiceManager组件对应的handle设为“3”,以此实现在所述不同系统间所述系统服务管理组件的对应的句柄标志进行区别,从而有效地分开各系统之间所述系统服务管理组件对应的句柄。
基于上述对进程间通信的扩展操作后,在接收到子系统发送的HAL服务请求后且确认需要转接到主控系统13进行处理时,会将当前的目标应用组件的句柄号修改为将所述主控系统13中的对应应用组件的句柄号,以完成将所述子系统发送的HAL服务请求转接到主控系统13处理。具体细化的介绍可以参见后续步骤S102的细化步骤流程示意图。
步骤S104,确认所接收到的HAL服务请求所对应的需要驱动操作的外设,并获取该外设在各子系统的实际工作状态。
在一实施方式中,本发明会实时或定期记录及管理当前所有外设在所有子系统上的工作状态(只要各外设在所有子系统上的工作状态发生变化,都会记录下来的)。所述工作状态可以包括,但不限于使用状态、可用状态等。这里的使用状态可以指所述外设正在运行被子系统使用中或者是外设(驱动)开启状态等,这里的可用状态可以指关闭状态或未被子系统使用中的状态等。所述外设可以是无线网络、蓝牙、全球定位系统GPS、通用串行总线USB、相机(camera)、音频(audio)等理论上基于HAL服务设计架构的所有终端外设。
当收到子系统的HAL服务请求时,确认了该HAL服务请求中对应的需要进行驱动操作的外设后,进一步地获取该外设目前在各子系统的实际工作状态。
步骤S106,根据上述获取的实际工作状态执行上述子系统所发送的HAL服务请求。
在一实施例中,如果获取到该外设在其中一个子系统上处于外设使用状态时,则确认不需要实际操作外设驱动,模拟一个驱动操作成功的结果事件信息,并上报给该子系统,以保证所有子系统正常轮转。例如,当接收到到开启/关闭一外设的操作请求时,会先判断该外设是否在子系统上处于使用状态,若是的话,则不真正开启/关闭设备,而是模拟开启/关闭成功状态回复给子系统,以能保证各子系统外设工作正常。即,当根据当前获取的所述外设的实际工作状态,如果执行所述子系统所发送的HAL服务请求会发生冲突的话,是不会实际操作来执行该HAL服务请求的,而是通过模拟操作成功的结果时间信息上报给子系统。
如果获取到该外设在所有子系统上均处于可用状态(即该外设没有在任何一个子系统上处于使用状态),则确认需要实际操作外设驱动,完成该外设的驱动操作。也即,当根据当前获取的所述外设的实际工作状态,如果执行所述子系统所发送的HAL服务请求不会发生冲突的话,则进行实际操作来执行所述子系统的该HAL服务请求的。
在一实施方式中,进一步地,步骤S106还包括,更新并记录所述外设在所有子系统上的工作状态。例如,当确认需要进行实际操作以完成该外设的驱动操作时,将所述外设在该发送HAL服务请求的子系统上更新工作状态为使用状态。例如,当确认不需要实际操作外设驱动时,在模拟该操作成功的结果事件信息后,也同步更新该外设在该发送HAL服务请求的子系统上更新工作状态为使用状态。
如图4所示,为本发明实施例中服务配置管理方法的步骤S102的细化流程示意图。所述步骤S102的细化流程可以包括下述步骤:
步骤S1020,监听子系统的HAL服务请求。
步骤S1022,当监听到一子系统的HAL服务请求时,拦截并解析该请求的服务名。
步骤S1024,将解析出来的服务名与设置的HAL服务列表进行匹配,依据匹配结果来确认该HAL服务请求是否需要转接处理。在一实施方式中,如果所述HAL服务列表中存在所述解析的服务名(即所述HAL服务列表中存在与所述解析的服务名相同的服务名),则表示该HAL服务请求需要进行转接处理。如果所述HAL服务列表中不存在所述解析出来的服务名(即所述HAL服务列表中不存在与所述解析的服务名相同的服务名)时,则表示该HAL服务请求不需要转接处理。当然在其他实施方式中,如果针对不同的服务请求使用了代号或简称的方式,那服务列表中也是记录了相应的代号或简称,因此匹配也是匹配是否具有相同的代号或简称即可。
步骤S1026,当确认需要转接处理时,将该HAL服务请求转接到主控系统13进行处理。
如图5所示,图5为本发明实施例中服务配置管理方法的步骤S106的细化流程示意图。所述步骤S106的细化流程可以包括下述步骤。
步骤S1060,判断是否需要实际操作外设驱动。
在一实施方式中,依据所获取的所述外设在所有子系统上的实际工作状态,来确认是否需要实际操作外设驱动。例如,当获取到该外设在其中一个子系统上处于外设使用状态时,则确认不需要实际操作外设驱动;如果获取到该外设在所有子系统上均处于可用状态(即该外设没有在任何一个子系统上处于使用状态),则确认需要实际操作外设驱动。当确认不需要实际操作外设驱动时,进入步骤S1062。当确认需要实际操作外设驱动时,进入步骤S1064。
步骤S1062,模拟一个外设驱动操作成功的结果事件信息,并上报给该子系统,进入步骤S1066。
步骤S1064,调用API(Application Programming Interface,应用程序编程接口)完成实际驱动操作,进入步骤S1066。
步骤S1066,根据上述针对该驱动操作请求的执行结果更新并记录该在外设在所有子系统上的工作状态。
在一实施方式中,例如,当确认需要进行实际操作以完成该外设的驱动操作时,将所述外设在该发送HAL服务请求的子系统上更新工作状态为使用状态。例如,当确认不需要实际操作外设驱动时,在模拟该操作成功的结果事件信息后,也同步更新该外设在该发送HAL服务请求的子系统上更新工作状态为使用状态。
在本实施例中还提供了一种服务配置管理装置,可以运行于终端设备10中。该装置用于实现上述实施例及实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块/单元”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
如图6所示,为本发明实施例中服务配置管理装置16的组成示意图。所述服务配置管理装置16可以包括配置管理单元161、节点隔离单元162、请求转接单元163、状态管理单元164以及服务处理单元165。
所述配置管理单元161被配置为设置需要管理的HAL服务列表。
在一实施例方式中,子系统(例如第一子系统14/第二子系统15)启动之前,所述配置管理单元161会在各个子系统上会预先设置好需要管理的HAL服务列表。所述HAL服务列中记录或保存了所有需要管控的HAL服务的数据。在一实施方式中,可以预先设定一些需要管控的HAL服务数据,例如,预先设置与硬件外设有关的接口/驱动服务为需要管控的HAL服务数据,或设置一些可能会导致外设工作冲突的相关操作为需要管控的HAL服务数据,也可以设置包括上述sh所有需要管控的数据。在其他较佳实施方式中,也可以根据实际实际需求进行修改或更新所述HAL服务列表。在一实施方式中,所述需要管理的HAL服务列表中可以记录所有需要管控的HAL服务的服务名。
所述节点隔离单元162被配置为预先针对进程间通信机制进行了扩展,通过将各系统间的应用组件(进程)设有对应的句柄标志,以实现针对不同系统间应用组件的句柄标志进行区别。例如,在一实施方式中,以主控系统13和第一子系统14、第二子系统15之间基于Binder机制进行进程间通信针对节点隔离单元162如何隔离操作进行介绍。
应说明的是,所述Binder机制基于C/S(client/server,客服端/服务器)的结构下,定义了4个角色:Server(服务器)、Client(客服端)、ServerManager(系统服务管理组件)、Binder驱动,其中前三者运行于用户空间(user space)的,也就是彼此之间无法直接进行交互;而Binder驱动是运行于内核空间(kernel space)的。其中所述ServiceManager是管理系统所有服务的进程,用于提供API给用户注册以及查找相应的服务。ServiceManager直接与binder驱动打交道去实现跨进程的IPC。
基于上述说明,所述节点隔离单元162可以通过将主控系统13的ServiceManager(系统服务管理)组件对应的句柄(handle)设为“1”,将第一子系统14的ServiceManager组件对应的handle设为“2”,以及将第二子系统15的ServiceManager组件对应的handle设为“3”,以此实现在所述不同系统间所述系统服务管理组件的对应的句柄标志进行区别,从而有效地分开各系统之间所述系统服务管理组件对应的句柄。
其次,基于上述的应用组件隔离操作,所述节点隔离单元162可以通过下述步骤进行进程间的隔离通信。
步骤1,监听“ServiceManager open binder”驱动的初始化系统调用,其中的“opern binder”是一个具体操作,即,加载驱动的意思。
步骤2,当函数“binder_open”初始化时,在“binder_proc”对象中新增对应host(宿主)、子系统的binder context成员变量,并完成其初始化处理。
步骤3,完成各新增“binder context”(即binder驱动进程上下文)成员变量对应handle句柄号映射处理,使得后续能够根据client端的请求传入的handle句柄号进入到对应的binder context进行实际处理。
上述步骤是通过对Binder驱动中的binder_proc对象额外扩展,支持各系统binder context上下文引用和记录的区分。
基于上述对进程间通信的扩展操作,所述请求转接单元163被配置为在接收到子系统发送的HAL服务请求时,依据上述设置的HAL服务列表,将子系统发送的HAL服务请求转接到主控系统13进行处理。
在一实施方式中,当监听到一子系统的HAL服务请求时,所述请求转接单元163通过下述步骤来确认是否转接所述子系统的HAL服务请求:
拦截并解析该请求的服务名;
将解析出来的服务名与设置的HAL服务列表进行匹配,依据匹配结果来确认该HAL服务请求是否需要转接处理。在一实施方式中,如果所述HAL服务列表中存在所述解析的服务名(即所述HAL服务列表中存在与所述解析的服务名相同的服务名),则表示该HAL服务请求需要进行转接处理。如果所述HAL服务列表中不存在所述解析出来的服务名(即所述HAL服务列表中不存在与所述解析的服务名相同的服务名)时,则表示该HAL服务请求不需要转接处理。
当确认需要转接处理时,将该HAL服务请求转接到主控系统13进行处理。
应说明的是,在一实施方式中,在接收到子系统发送的HAL服务请求后且确认需要转接到主控系统13进行处理时,所述请求转接单元163会将当前的目标应用组件的句柄号修改为将所述主控系统13中的对应应用组件的句柄号,以完成将所述子系统发送的HAL服务请求转接到主控系统13处理。
所述状态管理单元164被配置为实时或定期(或依据某些预设的机制/条件)记录及管理当前所有外设在所有子系统上的工作状态。所述工作状态可以包括使用状态、可用状态等。这里的使用状态可以指所述外设正在运行被子系统使用中等,这里的可用状态可以指关闭状态并未被子系统使用中的状态等。所述外设可以是无线网络、蓝牙、全球定位系统GPS、通用串行总线USB、相机(camera)、音频(audio)等理论上基于HAL服务设计架构的所有终端外设。进一步地,所述状态管理单元164还被配置为及时更新所有外设在所有子系统上的工作状态。
所述服务处理单元165被配置为确认所接收到的HAL服务请求所对应的需要驱动操作的外设,并获取该外设在各子系统的实际工作状态,以及根据上述获取的实际工作状态执行上述子系统所发送的HAL服务请求。
在一实施方式中,在确认所接收到的HAL服务请求所对应的需要驱动操作的外设后,所述服务处理单元165会从所述状态管理单元164获取该外设在所有子系统上的实际工作状态,从而判断是否需要实际操作外设驱动。
例如,当获取到该外设在其中一个子系统上处于外设使用状态时,则确认不需要实际操作外设驱动;如果获取到该外设在所有子系统上均处于可用状态(即该外设没有在任何一个子系统上处于使用状态),则确认需要实际操作外设驱动。
当确认不需要实际操作外设驱动时,所述服务处理单元165被配置为模拟一个外设驱动操作成功的结果事件信息,并上报给该子系统。当确认需要实际操作外设驱动时,所述服务处理单元165被配置为调用API(Application Programming Interface,应用程序编程接口)完成实际驱动操作。
应说明的是,当上述服务处理单元165执行完上述HAL服务请求后,所述状态管理单元164被配置为根据上述针对该驱动操作请求的执行结果更新并记录该在外设在所有子系统上的工作状态。
如图7所示,图7为本发明一实施例中双系统的服务配置管理方法如何运行的架构示意图。在本实施例中,所述主控系统13包括第一服务管理组件130(主控系统的serviceManager,即handle(句柄)1),HAL服务131,以及设备状态管理模块132。所述HAL服务131为向子系统提供的接口的服务。
所述第一子系统14可以至少包括配置管理模块140、请求管理模块141、第二服务组件142(子系统的serviceManager,即handle(句柄)2)。所述第二子系统14可以至少包括配置管理模块150、请求管理模块151、第三服务组件152(子系统的serviceManager,即handle(句柄)3))。
结合上述实施例的描述可知,通过预先针对进程间通信机制进行了扩展,以有效地区分了所述主控系统13、所述第一子系统14、第二子系统15中的应用组件(例如第一服务管理组件130、第二服务管理组件142、及第二服务管理组件152)对应的句柄标志。
在一实施方式中,所述配置管理模块140、150为在各个子系统(如第一子系统14、第二子系统14)中提供管控HAL服务数据功能的模块。即,所述配置管理模块140、150记录或保存了所有需要管控的HAL服务的数据。当子系统(如所述第一子系统14、第二子系统14)在启动HAL服务141和请求HAL服务141时,需要基于对应的所述配置管理模块140、150提供的管控服务数据,以确认是否启动所述HAL服务141或确认是否将HAL服务141请求转接到主控系统13。
在一实施方式中,当对应的子系统(如第一子系统14、第二子系统14)进行请求HAL服务141的操作时,所述请求管理模块141、151可以通过从配置管理模块140、150获取数据以决定是否需要将对该请求转接到主控系统13下的第一服务管理组件140。当确认不需要转接的情况下,直接由该子系统的ServiceManager处理。当确认需要转接的情况下,修改目标ServiceManager handle为主控系统13对应的句柄号,即完成将请求转接到主控系统13处理。应说明的是,此时所述主控系统13的ServiceManager会查找并返回其HAL服务142对应过的句柄号给该子系统,使得后续该子系统的所述HAL服务请求,将会直接透传到主控系统13下的HAL服务142进行处理。
所述的设备状态管理模块152可以实时或定期记录及管理当前所有外设在所有子系统上的工作状态。所述工作状态可以包括使用状态、可用状态等。这里的使用状态可以指所述外设正在运行被子系统使用中等,这里的可用状态可以指关闭状态并未被子系统使用中的状态等。所述外设可以是无线网络、蓝牙、全球定位系统GPS、通用串行总线USB、相机(camera)、音频(audio)等理论上基于HAL服务设计架构的所有终端外设。进一步地,所述状态管理模块152还可以及时更新所有外设在所有子系统上的工作状态。
另外,所述主控系统13上的设备状态管理模块152还可以根据当前所有外设在所有子系统上的工作状态,针对收到的子系统的HAL服务请求执行进一步处理策略。例如,当接收到子系统需要加载/卸载外设驱动时,判断该外设是否已在其它子系统处于使用状态,若是的话,则不真正操作设备驱动而是模拟操作成功事件上报给子系统,如该外设没有在其他子系统上处于使用状态的话,则实际操作设备驱动。
在确认需要实际操作设备驱动时,所述主控系统13直接通过HAL服务142与内核空间17中的设备驱动程序170来调用API,以完成实际驱动操作。
通过采用本发明的HAL服务管理方法,不仅能够有效解决现有Android双系统架构下外设资源访问容易出现冲突的问题,以满足外设可以同时支持双工工作的需求。同时,还能减少系统所运行的HAL服务进程数,很好的减少系统的内存开销和提升系统运行的性能。
根据本发明的另一个实施例,还提供一种计算机可读存储介质,所述计算机可读存储介质可用于存储一个或者多个计算机程序,其存储的一个或者多个计算机程序可被处理器执行,以实现上述各实施例中的服务配置管理方法的至少一个步骤。
根据本发明的另一个实施例,还提供一种处理器,其特征在于,上述处理器用于运行程序,其中,上述程序运行时执行以上任一项上述的方法,或在所述程序运行时执行上述任一项方法中的步骤。
本实施例还提供了一种计算机程序产品(计算机程序或软件),包括计算机可读装置,该计算机可读装置上存储有如上所示的计算机程序。本实施例中该计算机可读装置可包括如上所示的计算机可读存储介质。所述计算机程序产品可以分布在计算机可读介质上,由可计算装置来执行,以实现上述各实施例中的服务配置管理方法的至少一个步骤。
本技术领域技术人员可以理解,本发明包括涉及用于执行本申请中所述操作中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随即存储器)、EPROM(Erasable ProgrammableRead-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically ErasableProgrammable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。
可见,本领域的技术人员应该明白,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件(可以用计算装置可执行的计算机程序代码来实现)、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。
本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本发明公开的结构图和/或框图和/或流图的框或多个框中指定的方案。
本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
进一步地,相关技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种服务管理方法,运行于包括有主控系统及两个或多个子系统的终端上,该方法包括:
设置需要管理的硬件抽象层HAL服务列表;
当接收到一子系统发送的HAL服务请求时,依据上述设置的HAL服务列表,将子系统发送的HAL服务请求转接到主控系统进行处理;
确认所接收到的HAL服务请求所对应的需要驱动操作的外设,并获取该外设在各子系统的实际工作状态;
根据上述获取的实际工作状态执行上述子系统所发送的HAL服务请求。
2.权利要求1所述的服务管理方法,其特征在于,所述根据上述获取的实际工作状态执行上述子系统所发送的HAL服务请求的步骤包括:
当获取到该外设在一个子系统上处于外设使用状态时,模拟一个驱动操作成功的结果事件信息,并上报给该子系统;或
当获取到该外设在所有子系统上均处于可用状态,调用相应接口完成该外设的驱动操作。
3.如权利要求1所述的服务管理方法,其特征在于,所述HAL服务列表中记录下述至少一类数据:
与硬件外设有关的接口/驱动服务相关的操作;
会导致外设工作冲突的相关操作的操作。
4.如权利要求1所述的服务管理方法,其特征在于,所述方法还包括步骤:预先针对进程间通信机制进行扩展,通过将各系统间的应用组件或进程设有对应的句柄标志,以实现针对不同系统间应用组件的句柄标志进行区别。
5.如权利要求1所述的服务管理方法,其特征在于,所述步骤当接收到一子系统发送的HAL服务请求时,依据上述设置的HAL服务列表,将子系统发送的HAL服务请求转接到主控系统进行处理包括:
拦截并解析所述HAL服务请求的服务名;
将解析出来的服务名与设置的HAL服务列表进行匹配;
当所述HAL服务列表中存在所述解析的服务名时,确认该HAL服务请求需要进行转接处理,并将该HAL服务请求转接到主控系统进行处理。
6.如权利要求1所述的服务管理方法,其特征在于,所述方法还包括:
实时或定期记录及管理所有外设在所有子系统上的工作状态;
以及当根据上述获取的实际工作状态执行上述子系统所发送的HAL服务请求后,根据上述针对该驱动操作请求的执行结果更新并记录该在外设在所有子系统上的工作状态。
7.一种服务管理装置,包括:
配置设置单元,配置为设置需要管理的硬件抽象层HAL服务列表;
请求转接单元,配置为当接收到一子系统发送的HAL服务请求时,依据上述设置的HAL服务列表,将子系统发送的HAL服务请求转接到主控系统进行处理;
状态管理单元,配置为确认所接收到的HAL服务请求所对应的需要驱动操作的外设,并获取该外设在各子系统的实际工作状态;
服务处理单元,配置为根据上述获取的实际工作状态执行上述子系统所发送的HAL服务请求。
8.如权利要求7所述的服务管理装置,其特征在于,所述服务处理单元通过下述步骤来执行所述子系统所发送的HAL服务请求:
当获取到该外设在一个子系统上处于外设使用状态时,模拟一个驱动操作成功的结果事件信息,并上报给该子系统;或
当获取到该外设在所有子系统上均处于可用状态,调用相应接口完成该外设的驱动操作。
9.一种终端设备,包括处理器、存储器;
所述处理器用于执行存储器中存储的一个或者多个计算机程序,以实现如权利要求1至6中任一项所述的服务管理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个计算机程序,所述一个或者多个计算机程序可被一个或者多个处理器执行,以实现如权利要求1至6中任一项所述的服务管理方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910509159.9A CN112083959A (zh) | 2019-06-13 | 2019-06-13 | 服务配置管理方法、装置、终端和计算机可读存储介质 |
PCT/CN2020/094285 WO2020248885A1 (zh) | 2019-06-13 | 2020-06-04 | 服务配置管理方法和装置、终端和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910509159.9A CN112083959A (zh) | 2019-06-13 | 2019-06-13 | 服务配置管理方法、装置、终端和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112083959A true CN112083959A (zh) | 2020-12-15 |
Family
ID=73733419
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910509159.9A Pending CN112083959A (zh) | 2019-06-13 | 2019-06-13 | 服务配置管理方法、装置、终端和计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112083959A (zh) |
WO (1) | WO2020248885A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113158166A (zh) * | 2021-05-20 | 2021-07-23 | 中国工商银行股份有限公司 | 一种外设调用方法、系统、电子设备及介质 |
CN115509767A (zh) * | 2021-06-23 | 2022-12-23 | 华为技术有限公司 | 一种服务进程的调用方法及相关装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7444621B2 (en) * | 2004-02-20 | 2008-10-28 | Microsoft Corporation | Method and system for providing a common operating system |
CN103353839A (zh) * | 2013-06-07 | 2013-10-16 | 杭州竞天数码科技有限公司 | 一种基于Android系统的通用串行设备通信模块 |
CN105808320B (zh) * | 2016-03-11 | 2018-12-04 | 四川安嵌科技有限公司 | 基于Linux容器的设备虚拟化系统及方法 |
CN107423095B (zh) * | 2017-07-24 | 2020-10-02 | 百富计算机技术(深圳)有限公司 | 适配硬件的数据处理方法、装置、存储介质和计算机设备 |
-
2019
- 2019-06-13 CN CN201910509159.9A patent/CN112083959A/zh active Pending
-
2020
- 2020-06-04 WO PCT/CN2020/094285 patent/WO2020248885A1/zh active Application Filing
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113158166A (zh) * | 2021-05-20 | 2021-07-23 | 中国工商银行股份有限公司 | 一种外设调用方法、系统、电子设备及介质 |
CN113158166B (zh) * | 2021-05-20 | 2024-04-19 | 中国工商银行股份有限公司 | 一种外设调用方法、系统、电子设备及介质 |
CN115509767A (zh) * | 2021-06-23 | 2022-12-23 | 华为技术有限公司 | 一种服务进程的调用方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2020248885A1 (zh) | 2020-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107506258B (zh) | 用于数据备份的方法和设备 | |
US20190108079A1 (en) | Remote Procedure Call Method for Network Device and Network Device | |
US7930371B2 (en) | Deployment method and system | |
JP5128708B2 (ja) | 持続型ポートコンフィギュレーションを備えたsasコントローラ | |
WO2017149825A1 (ja) | プログラム更新システム、プログラム更新方法及びコンピュータプログラム | |
JP2017059211A (ja) | ゲートウェイ装置、車載ネットワークシステム及びファームウェア更新方法 | |
EP1072973A2 (en) | Remote loading execution method, remote loading execution system, data processing apparatus, managing apparatus and computer readable recording medium | |
US11914987B2 (en) | Master update agent and distributed update agent architecture for vehicles | |
CN104471537A (zh) | 中介虚拟机任务管理 | |
US7502876B1 (en) | Background memory manager that determines if data structures fits in memory with memory state transactions map | |
WO2013036261A1 (en) | Virtual switch extensibility | |
CN101896889B (zh) | 无线终端、无线终端的非易失存储器、诊断信息的可靠性保存方法 | |
CN108073423B (zh) | 一种加速器加载方法、系统和加速器加载装置 | |
US11126422B2 (en) | Program update system, control system, mobile body, program update method, recording medium | |
US10409999B2 (en) | Communication between key manager and storage subsystem kernel via management console | |
US20230146364A1 (en) | Process running method and apparatus | |
CN112083959A (zh) | 服务配置管理方法、装置、终端和计算机可读存储介质 | |
CN105204932A (zh) | 智能终端及其应用程序状态控制方法 | |
CN116775085B (zh) | 多核异构片上系统更新方法、装置、芯片及交通设备 | |
CN111339541A (zh) | 基于binder驱动的进程间通信IPC机制的复用方法及装置 | |
CN107168774B (zh) | 一种基于本地存储的虚拟机迁移方法及系统 | |
US11836045B2 (en) | Electronic control device having a non-volatile memory with a reserved area storing failure data | |
CN115098301B (zh) | 一种云原生场景下有状态应用的快照生成方法和系统 | |
CN105511947B (zh) | 多系统中事件信息处理的方法及装置 | |
CN111708558B (zh) | 一种高并发终端固件更新方法及更新系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |