多卡通讯终端的业务冲突处理方法、装置、介质及终端与流程

文档序号:18453505发布日期:2019-08-17 01:25阅读:264来源:国知局
多卡通讯终端的业务冲突处理方法、装置、介质及终端与流程

本公开涉及移动通信领域,具体地,涉及一种多卡通讯终端的业务冲突处理方法、装置、介质及终端。



背景技术:

由于移动通信发展的不均衡,以及各个运营商的网络覆盖程度不同,双卡双待手机应运而生。现有技术中,是通过基于单芯片的架构实现双卡双待,即每个卡都独立支持各种功能。而在同一时间只能执行一个卡的网络业务,所以在单芯片上实现双卡双待时,则会出现双卡之间的业务冲突的现象。

现有技术中主要通过以下方式进行业务冲突处理:

一是按照业务的优先级进行业务冲突处理。此方法中必须预先设置好终端系统中各个业务的优先级,然后在两个业务存在冲突时,高优先级的业务先处理,低优先级的业务后处理。但在该方案中,高优先级的业务抢占资源后,会出现语音掉话或数据掉线等现象,影响用户体验。

二是按照”暂停激活-恢复激活”的机制进行业务冲突处理。此方法中终端协议栈高层完成业务过滤,之后根据其过滤结果下发“暂停激活请求”和“恢复激活请求”来通知协议栈的物理层,物理层内部根据其接收到的请求实现各个模块的资源释放和现场恢复。例如,当卡1的业务正在运行时,如果此时卡2也有业务需要运行,经过协议栈高层的业务过滤,物理层就会收到卡1的“暂停激活请求”,此时,卡1释放当前物理资源并保存当前业务运行的上下文,之后切换到卡2。待卡2的业务运行完成后,物理层会收到卡1的“恢复激活请求”,此时卡2就释放物理资源并切换到卡1,以继续执行卡1的业务。因此,在该方案中,物理层不仅需要额外增加大量的资源来保存当前业务的上下文,还需要不断地处理来自于高层的“暂停激活请求”和“恢复激活请求”的消息,对终端的物理资源及性能的要求较高。



技术实现要素:

本公开的目的是提供一种多卡通讯终端的业务冲突处理方法、装置、介质及终端。

为了实现上述目的,本公开提供一种多卡通讯终端的业务冲突处理方法,所述方法包括:

确定第一业务与第二业务是否存在冲突,其中,所述第一业务为业务队列中的任一业务,所述第二业务为待插入所述业务队列中的业务,所述业务队列用于存储所述多卡的业务;

在确定所述第一业务与所述第二业务存在冲突时,根据预设的处理规则,将所述第二业务插入所述业务队列或删除所述第二业务。

可选地,所述处理规则包括:

在所述第一业务和所述第二业务存在冲突时,若所述第一业务处于运行状态,删除所述第二业务。

可选地,所述方法还包括:

确定所述第一业务和所述第二业务的处理优先级;

所述处理规则包括:

在所述第一业务和所述第二业务存在冲突时,若所述第一业务未处于运行状态且所述第二业务的处理优先级高于所述第一业务的处理优先级,将所述第二业务插入所述业务队列中;

在所述第一业务和所述第二业务存在冲突时,若所述第一业务未处于运行状态且所述第一业务的处理优先级高于所述第二业务的处理优先级,删除所述第二业务。

可选地,所述确定所述第一业务和所述第二业务的处理优先级,包括:

获取所述第一业务和所述第二业务各自对应的卡的权重;

根据所述第一业务对应的初始优先级与所述第一业务对应的卡的权重,确定所述第一业务的处理优先级;

根据所述第二业务对应的初始优先级与所述第二业务对应的卡的权重,确定所述第二业务的处理优先级。

可选地,在将所述第二业务插入所述业务队列中之后,所述方法还包括:

将所述业务队列中、与所述第二业务存在冲突的所述第一业务删除。

可选地,所述将所述第二业务插入所述业务队列,包括:

获取所述第二业务在第二网络时基下的起始执行时间作为第一起始执行时间,所述第二网络时基为所述第二业务对应的卡的网络时基;

将所述第一起始执行时间转换为在统一时基下的起始执行时间,作为第二起始执行时间;

根据所述第二起始执行时间,将所述第二业务插入所述业务队列,其中,所述业务队列中的各个业务,在队头到队尾的方向上,按照各自的起始执行时间由早到晚的顺序排列。

可选地,所述确定第一业务与第二业务是否存在冲突包括:

在所述第一业务和所述第二业务所对应的卡不同的情况下,分别确定所述第一业务在第一网络时基下的业务处理时间和所述第二业务在第二网络时基下的业务处理时间,其中,所述业务处理时间包括起始执行时间和结束执行时间,所述结束执行时间为业务的实际结束执行时间或所述实际结束执行时间与该业务对应的预设时长之和,所述第一网络时基为所述第一业务对应的卡的网络时基,所述第二网络时基为所述第二业务对应的卡的网络时基;

分别将所述第一业务的业务处理时间和所述第二业务的业务处理时间转换为在统一时基下的业务处理时间;

确定所述第一业务和所述第二业务在所述统一时基下的业务处理时间是否有冲突。

根据本公开的第二方面,提供一种多卡通讯终端的业务冲突处理装置,所述装置包括:

第一确定模块,用于确定第一业务与第二业务是否存在冲突,其中,所述第一业务为业务队列中的任一业务,所述第二业务为待插入所述业务队列中的业务,所述业务队列用于存储所述多卡的业务;

处理模块,用于在所述第一确定模块确定所述第一业务与所述第二业务存在冲突时,根据预设的处理规则,将所述第二业务插入所述业务队列或删除所述第二业务。

可选地,所述第一处理模块包括:

第一删除子模块,用于根据所述处理规则,

在所述第一业务和所述第二业务存在冲突时,若所述第一业务处于运行状态,删除所述第二业务。

可选地,所述装置还包括:

第二确定模块,用于确定所述第一业务和所述第二业务的处理优先级;

所述第一处理模块包括:

第一插入子模块,用于根据所述处理规则,

在所述第一业务和所述第二业务存在冲突时,若所述第一业务未处于运行状态且所述第二业务的处理优先级高于所述第一业务的处理优先级,将所述第二业务插入所述业务队列中;

第二删除子模块,用于根据所述处理规则,

在所述第一业务和所述第二业务存在冲突时,若所述第一业务未处于运行状态且所述第一业务的处理优先级高于所述第二业务的处理优先级,删除所述第二业务。

可选地,所述第二确定模块包括:

第一获取子模块,用于获取所述第一业务和所述第二业务各自对应的卡的权重;

第一确定子模块,用于根据所述第一业务对应的初始优先级与所述第一业务对应的卡的权重,确定所述第一业务的处理优先级;

第二确定子模块,用于根据所述第二业务对应的初始优先级与所述第二业务对应的卡的权重,确定所述第二业务的处理优先级。

可选地,所述装置还包括:

第二处理模块,用于在第一插入子模块将所述第二业务插入所述业务队列中之后,将所述业务队列中、与所述第二业务存在冲突的所述第一业务删除。

可选地,所述第一插入子模块包括:

第二获取子模块,用于获取所述第二业务在第二网络时基下的起始执行时间作为第一起始执行时间,所述第二网络时基为所述第二业务对应的卡的网络时基;

第一转换子模块,用于将所述第一起始执行时间转换为在统一时基下的起始执行时间,作为第二起始执行时间;

第二插入子模块,根据所述第二起始执行时间,将所述第二业务插入所述业务队列,其中,所述业务队列中的各个业务,在队头到队尾的方向上,按照各自的起始执行时间由早到晚的顺序排列。

可选地,所述第一确定模块包括:

第三确定子模块,用于在所述第一业务和所述第二业务所对应的卡不同的情况下,分别确定所述第一业务在第一网络时基下的业务处理时间和所述第二业务在第二网络时基下的业务处理时间,其中,所述业务处理时间包括起始执行时间和结束执行时间,所述结束执行时间为业务的实际结束执行时间或所述实际结束执行时间与该业务对应的预设时长之和,所述第一网络时基为所述第一业务对应的卡的网络时基,所述第二网络时基为所述第二业务对应的卡的网络时基;

第二转换子模块,用于分别将所述第一业务的业务处理时间和所述第二业务的业务处理时间转换为在统一时基下的业务处理时间;

第四确定子模块,用于确定所述第一业务和所述第二业务在所述统一时基下的业务处理时间是否有冲突。

根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面任一所述方法的步骤。

根据本公开的第四方面,提供一种多卡通讯终端,包括:

多个卡槽,每个所述卡槽用于安装sim卡;

存储器,所述存储器上存储有计算机程序;以及

一个或者多个处理器,用于执行所述存储器中的计算机程序,实现上述任意一种多卡通讯终端的业务冲突处理方法。

在上述技术方案中,通过一业务队列对多卡的业务进行管理,可以将多个卡的业务进行统一管理,便于进行冲突判断。因此,该方法可以适用于协议栈中的多个层次,适用范围广泛。之后,并在确定业务队列中的第一业务与待插入业务队列的第二业务存在冲突时,根据预设的处理规则,将第二业务插入业务队列或删除第二业务,一方面,在处理冲突的业务时不会出现业务抢占或是中断的现象,保证用户的使用体验。另一方面,也不会出现像现有技术中需要响应高层的消息及业务运行上下文的维护,节省缓存及性能开销,进一步拓宽该方法的适用范围,提高业务冲突处理的效率。

本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1是根据本公开的一种实施方式提供的多卡通讯终端的业务冲突处理方法的流程图;

图2是本公开提供的确定第一业务与第二业务是否存在冲突的一种示例实现方式的流程图;

图3是本公开提供的业务队列的一种示例示意图;

图4是本公开提供的业务队列的另一种示例示意图;

图5是根据本公开的一种实施方式提供的多卡通讯终端的业务冲突处理装置的框图;

图6是根据本公开的另一种实施方式提供的多卡通讯终端的业务冲突处理装置的框图;

图7是根据本公开的一种实施方式提供的多卡通讯终端的业务冲突处理装置的第二确定模块的框图;

图8是根据本公开的一种实施方式提供的多卡通讯终端的业务冲突处理装置的第一确定模块的框图;

图9根据本公开一示例性实施例示出的一种多卡通讯终端的框图。

具体实施方式

以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。

为了解决上述问题,本公开中通过一业务冲突处理装置对存在冲突的业务进行处理,该业务冲突处理装置可以位于物理层,即可以直接对业务之间出现的资源占用的冲突进行处理,也可以是协议栈中的其他层,如接入层,本公开对此不进行限定。具体地,该业务冲突处理装置可以执行以下方法。

图1所示,为根据本公开的一种实施方式提供的多卡通讯终端的业务冲突处理方法的流程图。如图1所示,所述方法包括:

在s11中,确定第一业务与第二业务是否存在冲突,其中,所述第一业务为业务队列中的任一业务,所述第二业务为待插入所述业务队列中的业务,所述业务队列用于存储所述多卡的业务,可选地,业务队列可以通过一双向链表实现。

可选地,图2所示,为确定第一业务与第二业务是否存在冲突的一种示例实现方式的流程图。如图2所示,该步骤包括:

在s21中,在所述第一业务和所述第二业务所对应的卡不同的情况下,分别确定第一业务在第一网络时基下的业务处理时间和第二业务在第二网络时基下的业务处理时间,其中,所述业务处理时间包括起始执行时间和结束执行时间,所述结束执行时间为业务的实际结束执行时间或所述实际结束执行时间与该业务对应的预设时长之和,所述第一网络时基为所述第一业务对应的卡的网络时基,所述第二网络时基为所述第二业务对应的卡的网络时基。

其中,对于多卡通信终端而言,多个卡可以处于相同的模式,例如,卡1和卡2都处于gsm(globalsystemformobilecommunication,全球移动通信系统)模式;也可以处于不同的模式,例如,卡1处于gsm模式,卡2处于lte(longtermevolution,长期演进)模式。由于不同的模式下的时间结构不同,每个卡在其所处的模式下按照该模式对应的网络时基进行计时。示例地,当卡1需要进行话音业务时,可以确定出卡1的话音业务在gsm模式的网络时基下的起始执行时间和所用时长。又例如,卡2需要进行读mib(masterinformationblock,主系统模块)消息或者sib(systeminformationblocks,系统信息块)消息时,也可以确定该业务在lte模式的网络时基下的起始执行时间和所用时长。其中,确定业务在其所对应的卡的网络时基下的起始执行时间和所用时长为现有技术,在此不再赘述。另外,基于业务的起始执行时间和所用时长也可以确定出业务的实际结束执行时间。

在一实施例中,所述结束执行时间可以为业务的实际结束执行时间,即根据业务的起始执行时间和所用时长确定出的时间。例如,在业务对应的卡的网络时基下,该业务的起始执行时间位于3ms处,所用时长为1ms,则在该实施例中,该业务对应的结束执行时间在4ms(3+1)处。

在另一实施例中,所述结束执行时间可以为所述实际结束执行时间与该业务对应的预设时长之和。其中,在业务的运行过程中,业务的切换也需要消耗时间,因此,可以通过对业务增加一预设时长,以充分避免业务切换对业务运行所造成的影响。为保证业务切换的稳定性,可以根据不同的业务设置不同的预设时长,如,可以通过预先调测确定好,并保存该业务与该预设时长之间的对应关系。示例地,在业务对应的卡的网络时基下,该业务的起始执行时间在3ms处,所用时长为1ms,该业务对应的预设时长为1ms,则在该实施例中,该业务对应的结束执行时间在5ms(3+1+1)处。因此,通过上述技术方案,即可以保证业务在运行时无其他业务干扰,保证业务的顺利运行,又可以为业务的顺利切换提供充足的时间保证。

在s22中,分别将第一业务的业务处理时间和第二业务的业务处理时间转换为在统一时基下的业务处理时间。

由于每个卡在其所处的模式下按照该模式对应的网络时基进行计时,因此,在确定出业务在其对应的卡的网络时基下的业务处理时间后,需要将该业务处理时间转换成在统一时基下的业务处理时间。

可选地,可以通过如下方式将某一网络时基下的业务处理时间转换成在统一时基下的业务处理时间:

dest_ut_time=function(mode,curfn_time,destfn_time,curut_time)

其中,dest_ut_time表示该业务在统一时基下的业务处理时间;

mode表示所述该业务对应的卡的模式,示例地,可以分别用不同的数字对模式进行表示,如,“0”表示“gsm模式”,“1”表示“wcdma(widebandcodedivisionmultipleaccess,宽带码分多址)模式”,“2”表示“lte-fdd(longtermevolution-frequencydivisionduplexing,频分双工的长期演进)模式”,“3”表示“lte-tdd(longtermevolution-timedivisionduplexing,时分双工的长期演进)模式”;

curfn_time表示在该业务对应的卡的网络时基下的当前时间;

destfn_time表示在该业务对应的卡的网络时基下的业务处理时间;

curut_time表示在统一时基下的当前时间。

function表示该转换方法,具体地:业务冲突处理装置可以获取在统一时基下的当前时间curut_time、以及在该业务对应的卡的网络时基下的当前时间curfn_time。其中,curut_time和curfn_time为同一时间在不同时基下的不同表示。之后,根据在该业务对应的卡的网络时基下、确定出的该业务的业务处理时间destfn_time,与该网络时基下的当前时间curfn_time,计算时间差delta_fn,即:

delta_fn=destfn_time-curfn_time

其中,时间差delta_fn一般用frame(子帧)或者slot(时隙)表示。将在该网络时基下的时间差delta_fn转换成在统一时基下的时间差delta_ut,其中,不同的网络时基对应的转换基数不同,如在wcdma模式的网络时基下的时间差2子帧对应在统一时基下的时间差为4ms,在lte-tdd模式的网络时基下的时间差2子帧对应在统一时基下的时间差为2ms。该转换基数为根据该网络时基对应的模式所确定。在确定出在统一时基下的时间差delta_ut后,该业务在统一时基下的业务处理时间dest_ut_time为在统一时基下的当前时间curut_time与在统一时基下的时间差delta_ut之和,即:

dest_ut_time=curut_time+delta_ut

在通过上述方式确定出各个业务在统一时基下的业务处理时间之后,则可以通过业务的业务处理时间确定业务之间是否存在冲突。

转回图2,在s23中,确定第一业务和所述第二业务在统一时基下的业务处理时间是否有冲突。

在确定业务队列中的任一业务(即第一业务)和待插入的业务(即第二业务)之间是否存在冲突时,若第二业务的业务处理时间与第一业务的业务处理时间有重叠,则确定第一业务和第二业务之间存在冲突。

在一实施例中,可以将业务队列中的任一未进行冲突判断的业务确定为第一业务,若确定出第一业务和第二业务之间存在冲突,则停止冲突判断,若未确定出第一业务和第二业务之间存在冲突,则重新选取第一业务,直至业务队列中的所有业务全部进行冲突判断。

在另一实施例中,业务队列通过双向链表实现,可以将业务队列中的各个业务,在队头到队尾的方向上,按照各自的起始执行时间由早到晚的顺序排列。示例地,如图3所示,业务队列中的业务与双向链表中的节点一一对应。双向链表中的每个节点除了指向前一节点的pre指针和指向后一节点的next指针之外,还可以包括一prelatest指针,该prelatest指针指向当前节点之前、结束执行时间最晚的业务对应的节点,即在当前节点可以确定当前节点之前的所有节点对应的业务的最晚结束执行时间,便于进行业务管理。

其中,属于同一张卡的同一模式下的不同业务可以并行处理,而同一张卡在同一时间内只能处于同一模式,因此,在同一时间内,对应于同一张卡的不同业务可以并行处理,不会出现冲突。因此,由于各个业务的业务处理时间不同,所以可能存在当前业务的结束执行时间比前一个业务的结束执行时间早的现象。如图3所示,节点a2对应的业务为卡1在wcdma模式下收寻呼,节点a3对应的业务为卡1在wcdma模式下做同频测量,虽然节点a2对应的业务和节点a3对应的业务的业务处理时间有重叠,且节点a3对应的业务比节点a2对应的业务的结束执行时间早。但由于该两个业务可以并行处理,因此认为该两个业务之间不存在冲突,可以插入到业务队列中。可选地,可以在确定第一业务和第二业务是否存在冲突之前,确定第一业务和第二业务所对应的卡是否相同,也可以在在确定第一业务和第二业务是否存在冲突的过程中确定第一业务和第二业务所对应的卡是否相同,本公开对此不进行限定。

示例地,如图3所示,在统一时基下,业务队列中节点a1对应的业务的prelatest指针指向null,节点a2对应的业务的prelatest指针指向a1,节点a3对应的业务的prelatest指针指向a2,节点a4对应的业务的prelatest指针指向a2。一待插入的业务的第二业务的起始执行时间在9.2ms处、结束执行时间在11ms处。因此,在确定第一业务时,可以按照第二业务的起始执行时间与业务队列中的各个业务的起始执行时间相比较,确定出第二业务的可插入位置。示例地,可以通过二分法确定出第二业务的可插入位置。如图3所示,第二业务的待插入位置为节点a3和节点a4之间。示例地,节点a4对应的业务与第二业务所对应的卡不同,之后将节点a4对应的业务,即业务队列中、可插入位置之后的第一个业务确定为第一业务,通过比较第一业务的prelatest指针指向的业务的结束执行时间和第二业务的起始执行时间、以及第二业务的结束执行时间和第一业务的起始执行时间之间的关系确定第一业务和第二业务之间是否存在时间重叠,从而进行冲突判断。其中,第一业务中prelatest指针指向的业务的结束执行时间早于或等于第二业务的开始时时间、且第二业务的结束执行时间早于或等于第一业务的起始执行时间时,确定第一业务和第二业务之间不存在冲突,否则,确定第一业务和第二业务之间存在冲突。在该实施例中,通过第一业务的prelatest指针可以快速确定出其之前的节点对应的业务的最晚的结束执行时间在10ms(即,节点a2对应的业务的结束执行时间),第二业务起始执行时间在9.2ms处,存在时间重叠,则确定第一业务和第二业务之间存在冲突。基于prelatest指针在进行冲突判断时,可以快速确定业务队列中当前节点之前的各个节点对应的业务的最晚的结束执行时间,而不需要逐个与前一节点对比以进行冲突判断。因此,通过上述技术方案,可以快速确定出第二业务的待插入位置及对第一业务和第二业务进行冲突判断,可以有效减少进行冲突判断的业务范围,从而有效节省业务冲突处理时间、提高业务冲突处理的效率。

在上述技术方案中,由于不同的网络时基下,时间计时结构不同,因此,将业务在其对应的卡的网络时基下的业务处理时间转换成在统一时基下的业务处理时间,可以对各个业务的业务处理时间进行统一的表示,从而可以在保证冲突判断的准确性。同时,根据业务在统一时基下的业务处理时间确定业务之间是否存在冲突,也可以有效提高冲突判断的效率。

在s12中,在确定第一业务与第二业务存在冲突时,根据预设的处理规则,将第二业务插入业务队列或删除第二业务。

可选地,所述处理规则包括:

在所述第一业务和所述第二业务存在冲突时,若所述第一业务处于运行状态,删除所述第二业务。

示例地,当前业务队列如图3所示,在统一时基下,若当前时间在3.2ms处,则节点a1对应的业务已处于运行状态,且该业务的结束执行时间在4ms处。若此时一第二业务的起始执行时间在3.5ms处,即第二业务与该运行中的业务存在冲突,此时,将该第二业务删除。通过上述技术方案,可以保证运行中的业务的运行流畅度,有效避免业务中断造成的缓存占用或业务切换造成的掉线现象,提升用户使用体验。另外,由于不需要对运行中的业务的上下文进行维护,也可以进一步降低业务冲突处理方法的复杂度,降低维护成本,有利于拓宽该方法的适用性。

可选地,所述方法还包括:

确定所述第一业务和所述第二业务的处理优先级;

示例地,所述确定所述第一业务和所述第二业务的处理优先级的一种示例实现方式如下:

获取所述第一业务和所述第二业务各自对应的卡的权重。

根据所述第一业务对应的初始优先级与所述第一业务对应的卡的权重,确定所述第一业务的处理优先级。

根据所述第二业务对应的初始优先级与所述第二业务对应的卡的权重,确定所述第二业务的处理优先级。

示例地,用户可以根据对每个卡的使用需求设置等级,每个等级对应不同的权重,用户也可以直接对每个卡的权重进行设置,本公开对此不进行限定。例如,用户可以设置卡1、卡2、卡3的等级分别为1、2、3,等级1对应的权重为0.8,等级2对应的权重为1,等级3对应的权重为1.2。

其中,该初始优先级可以静态获取。示例地,可以预先设置各个业务所对应的优先级,并将该业务与优先级的对应关系进行存储。因此,可以将根据该对应关系查询到的优先级直接确定为该业务的初始优先级,实现方法简单、快速。可选地,该初始优先级也可以动态获取。示例地,可以预先设置各个业务所对应的优先级,并将该业务与优先级的对应关系进行存储。在确定业务的初始优先级时,可以根据当前的资源剩余情况和/或运行环境等对根据对应关系查询出的优先级进行动态调整,将调整后的优先级确定为该业务的初始优先级。

以下,详细说明根据业务的初始优先级和业务对应的卡的权重确定业务的处理优先级的实现方式。

在一实施例中,可以通过将业务的初始优先级和业务对应的卡的权重的和确定为业务的处理优先级。示例地,第一业务的初始优先级为3,权重为0.8,第二业务的初始优先级为1,权重为1.2,则最终确定出的第一业务的处理优先级为3.8(即,3+0.8),第二业务的处理优先级为2.2。因此,可以确定第一业务的处理优先级高于第二业务的处理优先级。

在另一实施例中,可以通过将业务的初始优先级和业务对应的卡的权重的乘积确定为业务的处理优先级。示例地,第一业务的初始优先级为3,权重为0.8,第二业务的初始优先级为1,权重为1.2,则最终确定出的第一业务的处理优先级为2.4(即,3×0.8),第二业务的处理优先级为1.2。因此,可以确定第一业务的处理优先级高于第二业务的处理优先级。

需要进行说明的是,在实际的处理过程中,对业务的初始优先级进行设置时,充分考虑了业务的初始优先级与业务对应的卡的权重的关系,以确保不会出现业务的处理优先级相同的情况。

在上述技术方案中,通过业务的初始优先级和业务对应的卡的权重确定业务的处理优先级,既考虑了业务本身的优先级,又充分考虑了用户对某一卡的业务的优先处理顺序,贴合用户的使用需求,提升用户的使用体验。

可选地,所述处理规则包括:

在所述第一业务和所述第二业务存在冲突时,若所述第一业务未处于运行状态且所述第二业务的处理优先级高于所述第一业务的处理优先级,将所述第二业务插入所述业务队列中。

示例地,第一业务与第二业务存在冲突,在统一时基下,当前时间在5ms处、第一业务的起始执行时间在6ms处,即第一业务此时尚未运行。此时,确定出第一业务的处理优先级为2,第二业务的处理优先级为3,即第二业务的处理优先级高于第一业务的处理优先级,此时,可以将第二业务插入业务队列中,表示第二业务可执行。在该种情况下,第二业务的处理优先级高于第一业务的处理优先级时,表示用户更希望优先处理第二业务。因此,在第一业务未处于运行状态时,可以将第二业务插入业务队列中,既不会出现业务切换所造成的运行不流畅现象,也不会出现中断业务所带来的缓存及性能的大量占用问题,贴合用户的使用需求。

示例地,所述将所述第二业务插入所述业务队列的一种示例实现方式如下,包括:

获取所述第二业务在第二网络时基下的起始执行时间作为第一起始执行时间,所述第二网络时基为所述第二业务对应的卡的网络时基。

将所述第一起始执行时间转换为在统一时基下的起始执行时间,作为第二起始执行时间。

其中,如何确定业务在其对应的卡的网络时基下的第一起始执行时间以及将该起始执行时间转换成在统一时基下的第二起始执行时间的方式在上文中已经进行详述,在此不再赘述。

根据所述第二起始执行时间,将所述第二业务插入所述业务队列,其中,所述业务队列中的各个业务,在队头到队尾的方向上,按照各自的起始执行时间由早到晚的顺序排列。

示例地,根据第二业务队列的第二起始执行时间可以确定出第二业务在业务队列中的可插入位置,之后将第二业务在该位置插入,并相应地修改第二业务、及业务队列中该可插入位置的前后节点的指针指向。

可选地,在将所述第二业务插入所述业务队列中之后,所述方法还包括:

将所述业务队列中、与所述第二业务存在冲突的所述第一业务删除。

其中,由于将第二业务插入业务队列中,且第一业务和第二业务存在冲突,在业务队列中的第一业务不会完全运行、甚至不会运行。因此,将该第一业务删除既可以及时释放业务队列中的存储空间,又可以在进行冲突判断时对其他业务的影响,确定业务冲突处理的准确性和有效性。

可选地,在业务队列中插入或删除业务之后,可以确定业务队列中的各个节点的prelatest指针的指向是否需要更新。

示例地,如图3所示,其中,node表示业务对应的节点,start表示起始执行时间,end表示结束执行时间。其中,每个节点中的时间均为在统一时基下的业务处理时间。节点a1对应的业务的起始执行时间在3ms处、结束执行时间在4ms处;节点a2对应的业务的起始执行时间在7ms处、结束执行时间在10ms处;节点a3对应的业务的起始执行时间在8ms处、结束执行时间在9ms处;节点a4对应的业务的起始执行时间在12ms处、结束执行时间在14ms处。一待插入的业务(即第二业务)的起始执行时间在9.2ms处、结束执行时间在11ms处。此时,若确定出第二业务与节点a2对应的业务(即第一业务)之间存在冲突。若第一业务的处理优先级为2,第二业务的处理优先级为3,根据仲裁规则,此时可以将第二业务插入业务队列中。另外,也可以将业务队列中的第一业务删除。示例地,业务冲突处理后的业务队列如图4所示。其中,第二业务对应的节点a5插入到业务队列中,并删除第一业务对应的节点a2,以及更新业务队列中的各相关节点的pre指针、next指针及prelatest指针。

在所述第一业务和所述第二业务存在冲突时,若所述第一业务未处于运行状态且所述第一业务的处理优先级高于所述第二业务的处理优先级,删除所述第二业务。

在上述技术方案中,在第一业务在第二业务存在冲突时,通过结合业务的运行状态和处理优先级进行综合的业务冲突处理,一方面,使得业务冲突处理更加精细化,有利于提高呼通率及数据业务的成功率,保证业务运行的流畅度,提升用户使用体验。

可选地,在确定所述第一业务与所述第二业务不存在冲突时,将所述第二业务插入业务队列。其中,将第二业务插入业务队列的方式在上文已经详述,在此不再赘述。

可选地,可以以预定时间间隔检查业务队列中的业务的业务处理时间是否已过期,从而可以删除已过期的业务,保证业务队列中的业务为正在运行或是当前时间之后待运行的业务,避免过期业务对业务队列的资源占用,便于业务队列的维护。

综上所述,在上述技术方案中,通过一业务队列对多卡的业务进行管理,可以将多个卡的业务进行统一管理,便于进行冲突判断。因此,该方法可以适用于协议栈中的多个层次,适用范围广泛。之后,并在确定业务队列中的第一业务与待插入业务队列的第二业务存在冲突时,根据预设的处理规则,将第二业务插入业务队列或删除第二业务,一方面,在处理冲突的业务时不会出现业务抢占或是中断的现象,保证用户的使用体验。另一方面,也不会出现像现有技术中需要响应高层的消息及业务运行上下文的维护,节省缓存及性能开销,进一步拓宽该方法的适用范围,提高业务冲突处理的效率。

本公开还提供一种多卡通讯终端的业务冲突处理装置。图5所示,为根据本公开的一种实施方式提供的多卡通讯终端的业务冲突处理装置的框图,如图5所示,所述装置10包括:

第一确定模块100,用于确定第一业务与第二业务是否存在冲突,其中,所述第一业务为业务队列中的任一业务,所述第二业务为待插入所述业务队列中的业务,所述业务队列用于存储所述多卡的业务;

第一处理模块200,用于在所述第一确定模块100确定所述第一业务与所述第二业务存在冲突时,根据预设的处理规则,将所述第二业务插入所述业务队列或删除所述第二业务。

可选地,所述第一处理模块200包括:

第一删除子模块,用于根据所述处理规则,

在所述第一业务和所述第二业务存在冲突时,若所述第一业务处于运行状态,删除所述第二业务。

可选地,如图6所示,所述装置10还包括:

第二确定模块300,用于确定所述第一业务和所述第二业务的处理优先级;

所述第一处理模块200包括:

第一插入子模块201,用于根据所述处理规则,

在所述第一业务和所述第二业务存在冲突时,若所述第一业务未处于运行状态且所述第二业务的处理优先级高于所述第一业务的处理优先级,将所述第二业务插入所述业务队列中;

第二删除子模块202,用于根据所述处理规则,

在所述第一业务和所述第二业务存在冲突时,若所述第一业务未处于运行状态且所述第一业务的处理优先级高于所述第二业务的处理优先级,删除所述第二业务。

可选地,如图7所示,所述第二确定模块300包括:

第一获取子模块301,用于获取所述第一业务和所述第二业务各自对应的卡的权重;

第一确定子模块302,用于根据所述第一业务对应的初始优先级与所述第一业务对应的卡的权重,确定所述第一业务的处理优先级;

第二确定子模块303,用于根据所述第二业务对应的初始优先级与所述第二业务对应的卡的权重,确定所述第二业务的处理优先级。

可选地,所述装置10还包括:

第二处理模块,用于在第一插入子模块将所述第二业务插入所述业务队列中之后,将所述业务队列中、与所述第二业务存在冲突的所述第一业务删除。

可选地,所述第一插入子模块包括:

第二获取子模块,用于获取所述第二业务在第二网络时基下的起始执行时间作为第一起始执行时间,所述第二网络时基为所述第二业务对应的卡的网络时基;

第一转换子模块,用于将所述第一起始执行时间转换为在统一时基下的起始执行时间,作为第二起始执行时间;

第二插入子模块,根据所述第二起始执行时间,将所述第二业务插入所述业务队列,其中,所述业务队列中的各个业务,在队头到队尾的方向上,按照各自的起始执行时间由早到晚的顺序排列。

可选地,如图8所示,所述第一确定模块100包括:

第三确定子模块101,用于在所述第一业务和所述第二业务所对应的卡不同的情况下,分别确定所述第一业务在第一网络时基下的业务处理时间和所述第二业务在第二网络时基下的业务处理时间,其中,所述业务处理时间包括起始执行时间和结束执行时间,所述结束执行时间为业务的实际结束执行时间或所述实际结束执行时间与该业务对应的预设时长之和,所述第一网络时基为所述第一业务对应的卡的网络时基,所述第二网络时基为所述第二业务对应的卡的网络时基;

第二转换子模块102,用于分别将所述第一业务的业务处理时间和所述第二业务的业务处理时间转换为在统一时基下的业务处理时间;

第四确定子模块103,用于确定所述第一业务和所述第二业务在所述统一时基下的业务处理时间是否有冲突。

图9是根据一示例性实施例示出的一种多卡通讯终端700的框图。如图9所示,该多卡通讯终端700可以包括:多个卡槽,每个所述卡槽用于安装sim(subscriberidentificationmodule,用户身份识别卡),处理器701,存储器702。该多卡通讯终端700还可以包括多媒体组件703,输入/输出(i/o)接口704,以及通信组件705中的一者或多者。

其中,处理器701用于控制该多卡通讯终端700的整体操作,以完成上述的多卡通讯终端的业务冲突处理方法中的全部或部分步骤。存储器702用于存储各种类型的数据以支持在该多卡通讯终端700的操作,这些数据例如可以包括用于在该多卡通讯终端700上操作的任何应用程序或方法的指令,以及应用程序相关的数据。该存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(staticrandomaccessmemory,简称sram),电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,简称eeprom),可擦除可编程只读存储器(erasableprogrammableread-onlymemory,简称eprom),可编程只读存储器(programmableread-onlymemory,简称prom),只读存储器(read-onlymemory,简称rom),磁存储器,快闪存储器,磁盘或光盘。多媒体组件703可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器702或通过通信组件705发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口704为处理器701和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件705用于该多卡通讯终端700与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(nearfieldcommunication,简称nfc),2g、3g或4g,或它们中的一种或几种的组合,因此相应的该通信组件705可以包括:wi-fi模块,蓝牙模块,nfc模块。

在一示例性实施例中,多卡通讯终端700可以被一个或多个应用专用集成电路(applicationspecificintegratedcircuit,简称asic)、数字信号处理器(digitalsignalprocessor,简称dsp)、数字信号处理设备(digitalsignalprocessingdevice,简称dspd)、可编程逻辑器件(programmablelogicdevice,简称pld)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的多卡通讯终端的业务冲突处理方法。

在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的多卡通讯终端的业务冲突处理方法的步骤。上述程序指令可由多卡通讯终端700的处理器701执行以完成上述的多卡通讯终端的业务冲突处理方法。

以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。

此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

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