CN114372260B - 一种多线程处理方法及电子设备 - Google Patents
一种多线程处理方法及电子设备 Download PDFInfo
- Publication number
- CN114372260B CN114372260B CN202210280101.3A CN202210280101A CN114372260B CN 114372260 B CN114372260 B CN 114372260B CN 202210280101 A CN202210280101 A CN 202210280101A CN 114372260 B CN114372260 B CN 114372260B
- Authority
- CN
- China
- Prior art keywords
- operating system
- context
- electronic device
- thread
- application
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Telephone Function (AREA)
Abstract
本申请实施例公开了一种多线程处理方法及电子设备,涉及电子设备领域,用于提高安手机安全空间的操作***的处理速度。具体方案为:电子设备获取第一应用程序的第一任务,第一任务至少包括第一线程和第二线程,第一线程和第二线程用于实现第一应用程序的功能;电子设备从电子设备的第一存储区域获取第一任务的第一上下文;电子设备根据第一上下文获取第二上下文,并将第二上下文存储在电子设备的第二存储区域,第二存储区域与第一存储区域为不同的存储区域;电子设备基于第二操作***的回调,并根据第一上下文执行在第一空间第一线程;电子设备基于第二操作***的回调,并根据第二上下文执行在第一空间第二线程。
Description
技术领域
本申请涉及电子设备领域,尤其涉及一种多线程处理方法及电子设备。
背景技术
目前,为了保证手机的安全性,手机可以包括安全空间和非安全空间。安全空间,即可信执行环境(trusted execution environment,TEE), 是同非安全空间相隔离的安全区域,其可作为一个独立的环境运行操作***,且安全区域运行的操作***与非安全空间运行的操作***可并行运行。非安全空间的操作***可以运行安全性要求低的应用程序,安全空间的操作***可以运行安全性要求高的应用程序。例如,指纹验证应用程序对安全性要求较高,可以运行在安全空间的操作***上。
然而,应用程序在安全空间的操作***上运行时会包括多个线程,而安全空间的操作***并不具备同时处理多线程的能力,这就导致手机的安全空间的操作***对其上运行的应用程序的处理速度较低。
发明内容
本申请实施例提供一种多线程处理方法及电子设备,用于提高安手机安全空间的操作***的处理速度。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,本申请实施例提供一种多线程处理方法,应用于电子设备,该电子设备可以包括第一空间和第二空间,第一空间的安全性大于第二空间的安全性,第一空间包括第一操作***以及运行在第一操作***上的第一应用程序,第二空间包括第二操作***,该多线程处理方法可以包括:电子设备获取第一应用程序的第一任务,其中,第一任务至少包括第一线程和第二线程,第一线程和第二线程用于实现第一应用程序的功能,电子设备执行第一线程时访问的存储区域与电子设备执行第二线程时访问的存储区域不同;电子设备从电子设备的第一存储区域获取第一任务的第一上下文;电子设备根据第一上下文获取第二上下文,并将第二上下文存储在电子设备的第二存储区域,第二存储区域与第一存储区域为不同的存储区域;电子设备基于第二操作***的回调,并根据第一上下文在第一空间执行第一线程;电子设备基于第二操作***的回调,并根据第二上下文在第一空间执行第二线程。
基于第一方面所述的方法,在电子设备确定安全应用程序对应的第一任务包括多个线程时,电子设备可以获取每个线程对应的上下文,并通过电子设备的非安全空间的(操作***)回调,使电子设备的安全应用程序可以根据每个线程对应的上下文,同时执行每个线程,即电子设备的安全空间的操作***可以同时处理多个线程,从而能够提高电子设备的安全空间的操作***对多线程的任务的处理速度。
且由于电子设备执行该多个线程时访问的存储区域不同,即多个线程之间不共享内存,电子设备可以将多个线程对应的上下文存储在不同的位置,从而电子设备在同时处理该多个线程时,多个线程之间是相互独立的,彼此之间不受影响,从而能够进一步提高安电子设备对多个线程的任务的处理速度。
结合第一方面,在另一种可能的实现方式中,上述电子设备基于第二操作***的回调,并根据第一上下文在第一空间执行第一线程,可以包括:基于第二操作***中的TEE驱动的回调 ,并根据第一上下文在第一空间执行第一线程。
结合第一方面,在另一种可能的实现方式中,上述电子设备基于第二操作***的回调,并根据第二上下文在第一空间执行第二线程,可以包括:基于第二操作***中的TEE驱动的回调 ,并根据第二上下文在第一空间执行第二线程。结合第一方面,在另一种可能的实现方式中,上述电子设备基于第二操作***的回调,并根据第一上下文在第一空间执行第一线程,可以包括:第一操作***向第二操作***发送第一通知,第一通知包括第一上下文的标识以及第二上下文的标识;第二操作***根据第一通知,向第一操作***发送第二通知;第二通知用于指示第一应用程序执行第一线程,第二通知包括第一上下文的标识;第一操作***向第一应用程序发送第二通知;第一应用程序根据第一上下文的标识,获取第一上下文;第一应用程序根据第一上下文执行第一线程。
基于该可能的实现方式,电子设备的第二操作***可以向第一操作***发送第一上下文的标识,从而第一应用程序可以根据第一上下文的标识,确定第一上下文,从而电子设备的第一应用程序可以根据第一上下文执行第一线程,即通过电子设备的非安全空间的回调,使电子设备的安全应用程序根据第一线程对应的上下文,执行第一线程。
结合第一方面,在另一种可能的实现方式中,上述电子设备基于第二操作***的回调,并根据第二上下文在第一空间执行第二线程,可以包括:第一操作***向第二操作***发送第一通知,第一通知包括第一上下文的标识以及第二上下文的标识;第二操作***根据第一通知创建并运行工作队列,工作队列用于指示第二操作***向第一操作***运行发送第三通知;第二操作***向第一操作***发送第三通知;第三通知用于指示第一应用程序执行第二线程,第三通知包括第二上下文的标识;第一操作***向第一应用程序发送第三通知;第一应用程序根据第二上下文的标识,获取第二上下文;第一应用程序根据第二上下文执行第二线程。
基于该可能的实现方式,电子设备的第二操作***可以向第一操作***发送第二上下文的标识,从而第一应用程序可以根据第二上下文的标识,确定第二上下文,从而电子设备的第一应用程序可以根据第二上下文执行第二线程,即通过电子设备的非安全空间的回调,使电子设备的安全应用程序根据第二线程对应的上下文,执行第二线程。
结合第一方面,在另一种可能的实现方式中,第二操作***上运行有与第一应用程序对应的第二应用程序;上述电子设备获取第一应用程序的第一任务,可以包括:第二应用程序接收用户的操作,用于触发电子设备实现第一应用程序的功能;第二应用程序获取第一任务;第二应用程序向第二操作***发送第一任务;第二操作***接收第一任务,并在第一任务由第一操作***执行的情况下,通过第一操作***向第一应用程序发送第一任务;第一应用程序接收第一任务。
基于该可能的实现方式,对于包括第一空间和第二空间的电子设备,电子设备可以根据不同的上下文同时执行对应的线程,即电子设备可以同时处理多个线程。且电子设备的第二应用程序可以获取第一任务,并在第一任务由第一应用程序执行的情况下,将第一任务通过第二操作***以及第一操作***发送给第一应用程序,从而第二应用程序可以对第一任务进行处理。
结合第一方面,在另一种可能的实现方式中,上述电子设备从电子设备的第一存储区域获取第一任务的第一上下文,可以包括:第一应用程序向第一操作***发送第四通知,第四通知用于指示第一操作***获取第一上下文;第一操作***根据第四通知,从电子设备的第一存储区域获取第一任务的第一上下文。
基于该可能的实现方式,电子设备的第一应用程序可以确定第一任务是否包括多个线程,并在第一任务包括多个线程的情况下,通知第一操作***,由第一操作***获取第一任务对应的上下文,从而第一应用程序可以对第一任务进行处理。
结合第一方面,在另一种可能的实现方式中,上述电子设备根据第一上下文获取第二上下文,可以包括:第一操作***复制第一上下文,得到第三上下文;第一操作***将第三上下文包括的第一地址信息修改为第二地址信息,以获得第二上下文。
基于该可能的实现方式,电子设备的第一操作***可以根据第一上下文得到第二上下文,从而第一应用程序可以根据不同的上下文同时对应的线程,即电子设备可以同时处理多个线程。且第二上下文对应的第二地址信息与第一上下文对应的第一地址信息不同,从而第一上下文和第二上下文的存储位置不同,从而能够使得电子设备的第二应用程序在同时处理多个线程时,多个线程之间是相互独立的,彼此之间不受影响,从而能够进一步提高安电子设备对多个线程的任务的处理速度。
结合第一方面,在另一种可能的实现方式中,上述电子设备根据第一上下文执行第一线程可以包括:第一应用程序根据第一上下文执行第一线程,并获取第一执行结果;上述电子设备根据第二上下文执行第二线程,可以包括:第一应用程序根据第二上下文执行第二线程,并获取第二执行结果;上述多线程处理方法还可以包括:第一应用程序根据第一执行结果以及第二执行结果,得到第三执行结果,以使得电子设备实现第一应用程序的功能。
基于该可能的实现方式,电子设备的第一应用程序可以根据不同的上下文同时对应的线程,并获取不同线程对应的执行结果,从而电子设备的第一应用程序可以根据不同线程对应的执行结果,获取第一任务的执行结果,以使得电子设备实现第一应用程序的功能。
结合第一方面,在另一种可能的实现方式中,上述第一操作***复制第一上下文,得到第三上下文,可以包括:第一操作***通过预设应用程序接口,复制第一上下文,得到第三上下文。
基于该可能的实现方式,第一操作***可以通过预设应用程序接口,复制第一上下文,从而得到第三上下文,进而根据第三上下文能够得到第二上下文。
结合第一方面,在另一种可能的实现方式中,上述第一空间可以为安全空间,第一应用程序可以为安全应用程序,第一操作***可以为安全空间操作***,第二空间可以为非安全空间,第二应用程序可以为非安全应用程序,第二操作***可以为非安全空间操作***。
基于该可能的实现方式,对于包括安全空间和非安全空间的电子设备,电子设备可以根据不同的上下文同时对应的线程,即电子设备可以同时处理多个线程。
第二方面,本申请实施例提供一种多线程处理装置,该多线程处理装置可以应用于电子设备,用于实现上述第一方面中的方法。该多线程处理装置的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,例如,获取模块、存储模块和执行模块等。
其中,获取模块,可以用于获取第一应用程序的第一任务,第一应用程序运行在电子设备的第一空间的第一操作***上;第一任务至少包括第一线程和第二线程,第一线程和第二线程用于实现第一应用程序的功能;电子设备执行第一线程时访问的存储区域与电子设备执行第二线程时访问的存储区域不同。
获取模块,还可以用于从电子设备的第一存储区域获取第一任务的第一上下文。
获取模块,还可以用于根据第一上下文获取第二上下文。
存储模块,可以用于将第二上下文存储在电子设备的第二存储区域,第二存储区域与第一存储区域为不同的存储区域。
执行模块,可以用于基于第二操作***的回调,并根据第一上下文在第一空间执行第一线程。
执行模块,还可以用于基于第二操作***的回调,并根据第二上下文在第一空间执行第二线程。
结合第二方面,在另一种可能的实现方式中,上述多线程处理装置还可以包括发送模块。
发送模块,可以用于向第二操作***发送第一通知,第一通知包括第一上下文的标识以及第二上下文的标识。
发送模块,还可以用于根据第一通知,向第一操作***发送第二通知;第二通知用于指示第一应用程序执行第一线程,第二通知包括第一上下文的标识。
发送模块,还可以用于向第一应用程序发送第二通知。
获取模块,还可以用于根据第一上下文的标识,获取第一上下文。
执行模块,还可以用于根据第一上下文执行第一线程。
结合第二方面,在另一种可能的实现方式中,上述多线程处理装置还可以包括创建模块和运行模块。
发送模块,可以用于向第二操作***发送第一通知,第一通知包括第一上下文的标识以及第二上下文的标识。
创建模块,可以用于根据第一通知创建工作队列,工作队列用于指示第二操作***向第一操作***发送第三通知。
运行模块,可以用于运行工作队列。
发送模块,还可以用于向第一操作***发送第三通知;第三通知用于指示第一应用程序执行第二线程,第三通知包括第二上下文的标识。
发送模块,还可以用于向第一应用程序发送第三通知。
获取模块,还可以用于根据第二上下文的标识,获取第二上下文。
执行模块,还可以用于根据第二上下文执行第二线程。
结合第二方面,在另一种可能的实现方式中,第二操作***上运行有与第一应用程序对应的第二应用程序。
上述多线程处理装置还可以包括接收模块。
接收模块,可以用于接收用户的操作,操作用于触发电子设备实现第一应用程序的功能。
获取模块,用于获取第一任务。
发送模块,可以用于向第二操作***发送第一任务。
接收模块,还可以用于接收第一任务。
发送模块,可以用于在第一任务由第一操作***执行的情况下,通过第一操作***向第一应用程序发送第一任务。
接收模块,还可以用于接收第一任务。
结合第二方面,在另一种可能的实现方式中,发送模块,还可以用于向第一操作***发送第四通知,第四通知用于指示第一操作***获取第一上下文。
获取模块,还可以用于根据第四通知,从电子设备的第一存储区域获取第一任务的第一上下文。
结合第二方面,在另一种可能的实现方式中,获取模块,还可以用于复制第一上下文,得到第三上下文。
上述多线程处理装置还可以包括修改模块。
修改模块,可以用于将第三上下文包括的第一地址信息修改为第二地址信息,以获得第二上下文。
结合第二方面,在另一种可能的实现方式中,执行模块,可以用于根据第一上下文执行第一线程。
获取模块,还可以用于获取第一执行结果。
执行模块,可以用于根据第二上下文执行第二线程。
获取模块,还可以用于获取第二执行结果。
获取模块,还可以用于根据第一执行结果以及第二执行结果,得到第三执行结果,以使得电子设备实现第一应用程序的功能。
结合第二方面,在另一种可能的实现方式中,获取模块,可以用于通过预设应用程序接口,复制第一上下文,得到第三上下文。
结合第二方面,在另一种可能的实现方式中,第一空间可以为安全空间,第一应用程序可以为安全应用程序,第一操作***可以为安全空间操作***,第二空间可以为非安全空间,第二应用程序可以为非安全应用程序,第二操作***可以为非安全空间操作***。
第三方面,本申请实施例提供一种电子设备,包括:处理器,用于存储该处理器可执行指令的存储器。该处理器被配置为执行上述指令时,使得该电子设备实现如第一方面或第一方面的可能的实现方式中任一项所述的多线程处理方法。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序指令。当计算机程序指令被电子设备执行时,使得电子设备实现如第一方面或第一方面的可能的实现方式中任一项所述的多线程处理方法。
第五方面,本申请实施例提供一种计算机程序产品,包括计算机可读代码,当所述计算机可读代码在电子设备中运行时,使得电子设备实现如第一方面或第一方面的可能的实现方式中任一项所述的多线程处理方法。
应当理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
图1为本申请实施例提供的一种电子设备的硬件结构示意图;
图2为本申请实施例提供的一种多线程处理方法的流程示意图一;
图3为本申请实施例提供的一种多线程处理方法的流程示意图二;
图4为本申请实施例提供的一种多线程处理方法的流程示意图三;
图5为本申请实施例提供的一种多线程处理装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
目前,为了保证手机的安全性,手机可以包括安全空间和非安全空间。安全空间,即可信执行环境TEE, 是同非安全空间相隔离的安全区域,其可作为一个独立的环境运行操作***,且安全区域运行的操作***与非安全空间运行的操作***可并行运行。
即为了保证终端设备(如手机)的安全性,出现了以微处理器(advance RISCmachines,ARM)为代表的终端设备安全框架。在该安全框架下,***级的安全是通过将片上***(system on chips,SOC)的软硬件资源划分到两个空间中获得的。这两个空间可以称为安全空间和非安全空间。非安全空间可以对应富执行环境(rich executionenvironment ,REE),安全空间可以对应可信执行环境TEE。REE和TEE运行于同一台物理设备上,分别运行一套操作***。
非安全空间的操作***可以运行安全性要求低的应用程序,例如视频应用程序、办公应用程序等。安全空间的操作***,如开放的可移植可信执行环境操作***(openportable trusted execution environment operating system,OP-TEE OS)可以运行对安全性要求高的应用程序,如算法验证、校验、加解密等相关的工作的应用程序。例如,手机上的安全应用程序可以包括指纹验证应用程序,即指纹验证应用程序对安全性要求较高,可以运行在安全空间对应的操作***上。
然而,安全应用程序在安全空间的操作***运行时会包括多个线程,而安全空间的操作***并不具备同时处理多线程的能力,这就导致安全空间的操作***对安全应用程序的处理速度较低。
例如,以安全应用程序为指纹验证应用程序为例。在指纹验证应用程序在安全空间的操作***上运行并进行指纹校验时,安全空间的操作***需要载入采集的指纹信息,同时需要对载入的指纹信息进行校验。即指纹验证应用程序在进行指纹校验时,包括两个线程,一个线程是载入采集的指纹信息,一个线程是对载入的指纹信息进行校验,即一个线程是输入/输出(input/output,I/O)密集型的动作,一个线程是中央处理器(centralprocessing unit,CPU)密集型的动作。而安全空间的操作***是单线程处理,并不具备同时处理多线程的能力。即安全空间的操作***需要先执行载入采集的指纹信息的线程,在采集的指纹信息载入完成时,才能进行另一个线程,即对载入的指纹信息进行校验。由于安全空间的操作***是单线程处理,并不具备同时处理多线程的能力,这就导致指纹验证应用程序进行指纹校验时,处理速度较低,导致用户体验较低。
又如,以安全应用程序为音乐播放应用程序为例。用户在使用音乐播放应用程序时,可以播放已有的歌曲,也可以下载另一首歌曲。即音乐播放应用程序在运行时,包括两个线程,一个线程是播放已有的歌曲,一个线程是下载另一首歌曲。而安全空间的操作***是单线程处理,并不具备同时处理多线程的能力。即安全空间的操作***需要先执行播放已有的歌曲的线程,在播放已有的歌曲完成时,才能进行另一个线程,即下载另一首歌曲。由于安全空间的操作***是单线程处理,并不具备同时处理多线程的能力,这就导致音乐播放应用程序在运行时,不能在播放已有歌曲的同时下载另一首歌曲,导致用户体验较低。
针对上述问题,本申请实施例提供一种多线程处理方法,应用于电子设备。在安全应用程序在电子设备的安全空间的操作***上运行时,若安全应用程序对应的第一任务包括多个线程,电子设备可以获取每个线程对应的上下文,并通过电子设备的非安全空间的回调,使电子设备的安全应用程序可以根据每个线程对应的上下文,同时执行每个线程,即电子设备的安全空间的操作***可以同时处理多个线程。相较于现有技术中安全空间的操作***并不具备同时处理多线程的能力,本申请的方案电子设备的安全空间的操作***可以同时处理多个线程,从而能够提高电子设备的安全空间的操作***对多线程的任务的处理速度。
且在电子设备的安全空间的操作***同时处理多个线程时,若多个线程之间的关联度较低,即多个线程之间的对应的功能相互独立,电子设备在执行该多个线程时访问的存储区域不同,电子设备可以将多个线程对应的上下文的存储在不同的区域,从而能够使得电子设备的安全空间的操作***在同时处理多个线程时,多个线程之间不共享内存,多个线程之间是相互独立的,彼此之间不受影响,从而能够进一步提高安全空间的操作***对安全应用程序的处理速度。
例如,继续以安全应用程序为音乐播放应用程序为例。用户在使用音乐播放应用程序时,可以播放已有的歌曲,也可以下载另一首歌曲。即音乐播放应用程序在运行时,包括两个线程,一个线程是播放已有的歌曲,一个线程是下载另一首歌曲。通过本申请的方案,安全空间的操作***可以同时执行播放已有的歌曲的线程以及下载另一首歌曲的线程,即一边播放已有的歌曲一边下载另一首歌曲。由于音乐播放应用程序在运行时,安全空间的操作***可以在播放已有歌曲的同时下载另一首歌曲,即提高了安全空间的操作***对安全应用程序的处理速度,从而提高用户体验。
此外,在安全空间的操作***可以同时执行播放已有的歌曲的线程以及下载另一首歌曲的线程时,由于播放已有的歌曲的线程与下载另一首歌曲的线程之间的关联度较低,即播放已有的歌曲的线程与下载另一首歌曲的线程之间的对应的功能相互独立,手机在执行播放已有的歌曲的线程时访问的存储区域,与手机在执行下载另一首歌曲的线程时访问的存储区域不同。本申请的方案可以将播放已有的歌曲的线程对应的上下文的存储位置,与下载另一首歌曲的线程对应的上下文的存储位置不同,从而安全空间的操作***在播放已有歌曲以及下载另一首歌曲时,两个线程之间相互独立的,彼此之间不受影响,如下载另一首歌曲的下载进度,并不影响当前播放的已有歌曲的播放进度,从而能够进一步提高安全空间的操作***对安全应用程序的处理速度。
下面对本申请实施例提供的多线程处理方法进行描述。
本申请实施例提供的多线程处理方法可以应用于电子设备。在一些实施例中,上述电子设备可以是手机、平板电脑、手持计算机,个人计算机(personal computer,PC),蜂窝电话,个人数字助理(personal digital assistant,PDA),可穿戴式设备等具有安全空间和非安全空间的电子设备。本申请实施例在此对电子设备的具体形态不做限制。
示例地,以电子设备为手机为例,图1示出了本申请实施例提供的一种电子设备的结构示意图。
如图1所示,电子设备可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中,传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本实施例示意的结构并不构成对电子设备的具体限定。在另一些实施例中,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以是电子设备的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了***的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
电子设备的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
无线通信模块160可以提供应用在电子设备上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星***(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯***(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code divisionmultiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。
电子设备通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏394和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。在一些实施例中,电子设备可以包括1个或N个摄像头193,N为大于1的正整数。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作***,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备使用过程中所建立的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
加速度传感器180E可按照一定频率,周期性地采集电子设备的加速度数据。比如,可采集电子设备在各个方向(一般为XYZ三轴方向)上的加速度大小。
当然,可以理解的,上述图1所示仅仅为电子设备的形态为手机时的示例性说明。若电子设备是平板电脑,手持计算机,PC,PDA,可穿戴式设备(如:智能手表、智能手环)等其他设备形态时,电子设备的结构中可以包括比图1中所示更少的结构,也可以包括比图1中所示更多的结构,在此不作限制。
可以理解的是,一般而言,电子设备功能的实现除了需要硬件的支持外,还需要软件的配合。
例如,在本申请的一些示例中,如图2所示,实现电子设备的安全空间的操作***能够同时处理多个线程,至少需要处理器,存储器等硬件的支持,还需要应用程序(如非安全应用程序和安全应用程序)和操作***(如非安全空间操作***和安全空间操作***)的配合,其中,软件和硬件之间可通过硬件连接层连接。
在一些示例中,电子设备可以包括多个CPU。在电子设备包括多个CPU时,电子设备的安全空间和非安全空间可以对应不同的CPU,如图2所示,在电子设备包括多个CPU的情况下,电子设备的安全空间可以运行在电子设备的一个CPU上,电子设备的非安全空间可以运行在电子设备的另一个CPU上。
在另一些示例中,在电子设备包括一个CPU的情况下,而该CPU又可以包括个内核,电子设备的安全空间和非安全空间可以对应不同的内核,如图2所示,电子设备的安全空间可以运行在电子设备的一个内核上,电子设备的非安全空间可以运行在电子设备的另一个内核上。
下面结合附图2以音乐应用程序为例对本申请实施例提供的多线程处理方法进行说明。
其中,基于图2所示,以非安全应用程序为非安全音乐应用程序(application,APP)为例,对应的安全应用程序可以为安全音乐应用程序。即在用户通过电子设备上的安全音乐应用程序播放一首已有歌曲,并下载另一首歌曲时,安全音乐应用程序在进行运行时,可以包括两个线程,一个线程是播放已有歌曲线程,如称为播放线程,一个线程是下载另一个歌曲线程,如称为下载线程,则实现电子设备的安全空间的操作***同时处理两个线程的过程可以包括以下步骤。
在用户通过电子设备上的非安全音乐应用程序进行播放和下载安全性要求较高的歌曲时,非安全音乐应用程序包括的播放动作模块可以接收到用户的播放操作,即接收到用户播放一首已有歌曲的操作,播放动作模块还可以接收到用户的下载操作,即接收到用户下载另一首歌曲的操作。在播放动作模块接收到用户的播放操作以及下载操作时,可以将用户的播放操作以及下载操作发送给非安全音乐应用程序包括的校验运算模块,即图2中的步骤1。
非安全音乐应用程序包括的校验运算模块可以对用户的播放操作以及下载操作进行校验运算,从而确定是否需要通过电子设备上的安全音乐应用程序播放以及下载。在非安全音乐应用程序包括的校验运算模块确定需要通过电子设备上的安全音乐应用程序播放以及下载时,非安全音乐应用程序包括的校验运算模块可以发送通知给非安全空间操作***的TEE驱动中的校验运算模块,即图2中的步骤2。
非安全空间操作***中的校验运算模块,可以根据非安全音乐应用程序包括的校验运算模块发送通知,确定需要调用安全空间操作***中的安全应用程序(如安全音乐应用程序)进行指纹校验。在非安全空间操作***中的校验运算模块确定需要调用安全空间操作***中的安全应用程序进行播放以及下载时,非安全空间操作***中的校验运算模块可以调用非安全空间操作***的TEE驱动中的接口(如smc接口),从而进入安全空间的操作***,即图2中的步骤3。
在非安全空间操作***中的校验运算模块调用非安全空间操作***的TEE驱动中的smc接口之后,可以通过接口,如smc_entry,进入安全空间操作***,从而由安全空间的操作***继续进行处理,即图2中的步骤4。
在通过接口smc_entry,进入安全空间操作***之后,安全空间操作***可以发送通知给安全应用程序,即安全音乐应用程序,从而安全应用程序可以开始运行,即图2中的步骤5。
在安全应用程序开始运行之后,安全应用程序可以确定用户输入的任务是否包括多个线程,即图2中的步骤6。
需要说明的是,在安全应用程序确定用户输入的任务包括一个线程的情况下,安全应用程序可以将该线程(如播放线程,本申请实施例中可以称为第一线程)载入运行,通过播放线程进行歌曲播放。在播放线程进行歌曲播放时,即播放线程校验结束时,安全应用程序包括的校验结束模块可以将第一线程的校验结果发送给非安全空间操作***的TEE驱动中的smc接口。非安全空间操作***的TEE驱动中的smc接口,可以将播放线程的校验结果发送给非安全空间操作***的TEE驱动中的校验运算模块。非安全空间操作***的TEE驱动中的校验运算模块,可以将播放线程的校验结果发送给非安全音乐APP的校验运算模块,从而非安全音乐APP的校验运算模块根据播放线程的校验结果进行播放,或者不播放。即在安全应用程序确定用户输入的任务包括一个线程(如播放线程)的情况下,电子设备进行播放的过程依次包括图2中的步骤7、步骤8、步骤9、步骤10以及步骤11。
在安全应用程序确定用户输入的任务包括多个线程(如播放线程和下载线程,本申请实施例中播放线程可以称为第一线程,下载线程可以称为第二线程)的情况下,安全应用程序可以向安全空间操作***发送通知,从而调用安全空间操作***中的多线程应用编程接口(application programming interface,API),即图2中的步骤12。
在安全应用程序调用安全空间操作***的多线程API之后,安全空间操作***中可以创建新的上下文,新的上下文(如称为第二上下文)与原上下文(第一上下文)的地址不同,也就是说,第一上下文对应第一存储地址,第二上下文对应第二存储地址,第一存储地址与第二存储地址不同,即图2中的步骤13。上下文即当前任务的上下文,当前任务包括的线程运行时,需要依赖当前任务的上下文。新的上下文(如当前任务中下载线程对应的上下文)与原上下文(如当前任务中播放线程对应的上下文)的地址不同,即多个线程对应的上下文的存储位置不同,从而电子设备在同时执行多个线程时,多个线程之间不共享内存,从而能够使得电子设备的安全空间的操作***在同时处理多个线程时,多个线程之间是相互独立的,彼此之间不受影响。
在安全空间操作***中创建新的上下文之后,安全空间操作***可以调用安全空间操作***中的smc接口,从而可以通过smc接口返回到非安全空间的操作***,即图2中的步骤14。
在调用安全空间操作***中的smc接口之后,安全空间操作***中的smc接口可以向非安全操作***中TEE驱动中的TEE驱动回调模块发送通知,该通知可以包括上下文的参数,即图2中的步骤15。
在非安全操作***中TEE驱动中的TEE驱动回调模块发送接收到安全空间操作***中的smc接口发送的通知之后,并根据该通知可以包括确定当前任务包括播放线程以及下载线程,播放线程对应的上下文的存储位置,以及下载线程对应的上下文的存储位置,TEE驱动回调模块可以向安全空间操作***中的smc接口发送通知,从而安全空间操作***可以执行播放线程,即图2中的步骤16。
安全空间的smc接口接收到TEE驱动回调模块发送的通知之后,可以找到播放线程对应的上下文,从而根据播放线程对应的上下文,运行播放线程,从而能够获取播放线程的校验结果。即在校验结束时,安全应用程序包括的校验结束模块可以以获取播放线程的校验结果。即图2中的步骤16之后,可以依次执行步骤17、步骤18以及步骤8。
在TEE驱动回调模块可以向安全空间操作***中的smc接口发送通知的同时,TEE驱动回调模块可以创建工作队列,工作队列可以用于指示安全空间操作***执行下载线程。即图2中的步骤16和步骤19可以同时执行。
在TEE驱动回调模创建工作队列之后,TEE驱动可以运行工作队列。在TEE驱动运行工作队列之后,TEE驱动可以调用非安全空间操作***中的smc接口,通过安全空间操作***的smc_entry接口,进入安全空间操作***,从而安全空间操作***可以执行下载线程,即在图2中的步骤19之后,可以依次执行步骤20、步骤21和步骤22。
在通过接口smc_entry,进入安全空间操作***之后,安全空间操作***可以找到下载线程对应的上下文。在安全空间操作***找到下载线程对应的上下文之后,安全空间操作***可以调用接口smc_entry,进行多线程扩展,即根据下载线程对应的上下文,运行下载线程,从而能够获取下载线程的校验结果。即在下载线程校验结束时,安全应用程序可以将下载线程的校验结果发送给安全应用程序包括的校验结束模块,即在图2中的步骤22之后,可以依次执行步骤23、步骤24、步骤25、步骤26和步骤27。
在安全应用程序包括的校验结束模块获取到播放线程的校验结果以及下载线程的校验结果之后,校验结束模块获取可以根据播放线程的校验结果以及下载线程的校验结果,得到最终校验结果。
在校验结束模块得到最终校验结果时,安全应用程序包括的校验结束模块可以将最终校验结果发送给非安全空间操作***的TEE驱动中的smc接口。非安全空间操作***的TEE驱动中的smc接口,可以将最终校验结果发送给非安全空间操作***的TEE驱动中的校验运算模块。非安全空间操作***的TEE驱动中的校验运算模块,可以将最终校验结果发送给非安全音乐APP的校验运算模块,从而非安全音乐APP的校验运算模块根据最终校验结果进行播放和下载,或者不播放和下载。即在图2中的步骤8以及步骤27之后,手机进行播放和下载的过程可以依次包括图2中的步骤9、步骤10以及步骤11。
以下结合附图3对本申请实施例提供的多线程处理方法进行详细说明。图3为本申请实施例提供的一种多线程处理方法的流程示意图。如图3所示,该多线程处理方法可以包括下述S301-S335。
S301、电子设备的非安全应用程序获取第一任务。
本申请实施例提供的多线程处理方法可以应用于电子设备,该电子设备可以包括非安全空间以及安全空间,安全空间和非安全空间相互独立。第一空间的安全性大于第二空间的安全性,即第一空间的操作***上可以运行对安全性要求高的应用程序,如指纹验证应用程序、安全音乐应用程序等,第二空间的操作***上可以运行对安全性要求低的应用程序,如非安全音乐应用程序等。
安全空间可以包括安全应用程序(即对安全性要求较高的应用程序)以及安全空间操作***。非安全空间可以包括非安全应用程序(即对安全性要求不高的应用程序)以及非安全空间操作***。例如,手机上的安全应用程序可以包括安全音乐应用程序,即安全音乐应用程序对安全性要求较高,可以运行在安全空间对应的操作***上。
在用户使用电子设备时,电子设备的非安全应用程序可以获取用户使用电子设备的任务,如称为第一任务,第一任务可以为对安全性要求较高的任务,即第一任务用于触发电子设备实现安全应用程序的功能。例如,在用户通过手机上的非安全音乐应用程序进行播放和下载安全性要求较高的歌曲时,手机上的非安全应用程序,如非安全音乐应用程序可以获取用户在手机上的播放和下载动作,从而非安全音乐应用程序可以获取播放和下载任务,即第一任务。
第一任务可以包括一个或多个线程,即第一任务可以包括一个或多个子任务,每个子任务可以对应一个线程,也就是说,每个线程可以完成一个子任务。例如,第一任务可以包括第一线程和第二线程,第一线程可以为播放已有歌曲线程,第二线程可以为下载另一首歌曲线程。第一线程和第二线程之间的关联度较低,即第一线程和第二线程之间的对应的功能相互独立,也就是说,电子设备执行第一线程时访问的存储区域与电子设备执行第二线程时访问的存储区域不同。
例如,继续以用户通过手机上的非安全音乐应用程序进行播放和下载安全性要求较高的歌曲为例,手机上的非安全应用程序,如非安全音乐应用程序可以获取用户在手机上的播放已有歌曲和下载另一首歌曲的操作,从而非安全音乐应用程序可以获取播放和下载任务,该播放和下载任务可以包括两个线程,一个线程是播放线程,即播放已有歌曲线程,一个线程是下载线程,即下载另一首歌曲线程。播放已有的歌曲的线程与下载另一首歌曲的线程之间的关联度较低,即播放已有的歌曲的线程与下载另一首歌曲的线程之间的对应的功能相互独立,手机在执行播放已有的歌曲的线程时访问的存储区域,与手机在执行下载另一首歌曲的线程时访问的存储区域不同。
例如,结合图2所示,继续以用户通过手机上的非安全音乐应用程序进行播放和下载安全性要求较高的歌曲为例,电子设备的非安全应用程序可以为非安全音乐应用程序。电子设备的非安全应用程序获取第一任务,可以为非安全音乐应用程序包括的播放动作模块接收到用户的播放操作和下载操作,如用户对已有歌曲的播放操作和对另一个歌曲的下载操作。在播放动作模块接收到用户的播放操作和下载操作时,可以将用户的播放操作和下载操作发送给非安全音乐应用程序包括的校验运算模块,即电子设备的非安全应用程序获取第一任务可以为图2中的步骤1。非安全音乐应用程序包括的校验运算模块可以对用户的解播放操作和下载操作行校验运算,从而确定手机是否需要通过手机上的安全音乐应用程序播放以及下载。
S302、电子设备的非安全应用程序向非安全空间操作***发送第一任务。
在电子设备的非安全应用程序获取到第一任务之后,电子设备的非安全应用程序可以将第一任务发送给电子设备的非安全空间操作***。
例如,继续以用户通过手机上的非安全音乐应用程序进行播放和下载安全性要求较高的歌曲为例,在非安全音乐应用程序包括的校验运算模块确定需要通过电子设备上的安全音乐应用程序播放以及下载时,非安全音乐应用程序包括的校验运算模块可以发送第一任务给非安全空间操作***的TEE驱动中的校验运算模块,即电子设备的非安全应用程序向非安全空间操作***发送第一任务可以为图2中的步骤2。
S303、电子设备的非安全空间操作***接收第一任务。
在一些实施例中,电子设备的非安全空间操作***接收第一任务,可以为电子设备的非安全空间操作***的TEE驱动包括的校验运算模块接收电子设备的非安全应用发送的第一任务。
S304、电子设备的非安全空间操作***向安全空间操作***发送第一任务。
在电子设备的非安全空间操作***接收到非安全应用程序发送的第一任务时,电子设备的非安全空间操作***可以将第一任务发送给安全空间的操作***,从而通过安全空间的操作***执行第一任务包括的线程,并获取第一任务对应的执行结果。
在一些示例中,电子设备的非安全空间操作***向非安全空间操作***发送第一任务之前,电子设备的非安全空间操作***可以先确定第一任务是否需要由安全空间的操作***执行,在电子设备的非安全空间操作***确定第一任务需要由安全空间的操作***执行的情况下,电子设备的非安全空间操作***可以向安全空间的操作***发送第一任务。在电子设备的非安全空间操作***确定第一任务不需要由安全空间的操作***执行的情况下,电子设备的非安全空间操作***可以执行第一任务包括的线程,并获取第一任务对应的执行结果。
例如,继续以用户通过手机上的非安全音乐应用程序进行播放和下载安全性要求较高的歌曲为例,在非安全音乐应用程序包括的校验运算模块确定需要通过安全音乐应用程序执行第一任务(即播放和下载安全性要求较高的歌曲)时,非安全音乐应用程序包括的校验运算模块可以发送第一任务给非安全空间操作***的TEE驱动中的校验运算模块。非安全空间操作***的TEE驱动中的校验运算模块可以确定第一任务是否需要由安全空间操作***来执行。在非安全空间操作***的TEE驱动中的校验运算模块确定第一任务需要由安全空间操作***来执行的情况下,校验运算模块可以调用非安全空间操作***中的smc接口,从而进入安全空间,并第一任务发送给安全空间操作******smc_entry接口,即第一任务进入安全空间操作***,由安全空间的操作***进行处理。也就是说,电子设备的非安全空间操作***向安全空间的操作***发送第一任务,可以为图2中的步骤3和步骤4。
S305、电子设备的安全空间操作***接收第一任务。
在一些实施例中,电子设备的安全空间操作***接收第一任务,可以为电子设备的安全空间操作***的smc_entry接口接收电子设备的非安全空间操作***发送的第一任务。
S306、电子设备的安全空间操作***向安全应用程序发送第一任务。
在电子设备的安全空间操作***接收到非安全空间操作***发送的第一任务时,电子设备的安全空间操作***可以将第一任务发送给对应的安全应用程序,从而由安全应用程序执行第一任务包括的线程,并获取第一任务对应的执行结果。
例如,结合图2所示,继续以用户通过手机上的非安全音乐应用程序进行播放和下载安全性要求较高的歌曲为例。在电子设备的安全空间操作***包括的smc_entry接口接收电子设备的非安全空间操作***发送的第一任务之后,smc_entry接口可以通知安全应用程序(如安全音乐应用程序)开始运行,并向安全应用程序发送第一任务。即电子设备的安全空间操作***向安全应用程序发送第一任务,可以为图2中的步骤5。
S307、电子设备的安全应用程序接收第一任务。
S308、电子设备的安全应用程序确定第一任务是否包括多个线程。
在电子设备的安全应用程序接收到安全空间操作***发送的第一任务之后,电子设备的安全应用程序可以确定第一任务是否包括多个线程。
在电子设备的安全应用程序确定第一任务包括一个线程的情况下,电子设备的安全应用程序可以执行该一个线程,并获取对应的执行结果,并将获取的执行结果发送给非安全应用程序,即电子设备可以继续执行下述S309-S312。在电子设备的安全应用程序确定第一任务包括多个线程(如两个线程)的情况下,电子设备可以执行该两个线程,并分别获取两个线程对应的执行结果,从而根据两个线程对应的执行结果得到最终的执行结果,并将最终的执行结果发送给非安全应用程序,即电子设备可以继续执行下述S313-S335。
例如,结合图2所示,继续以用户通过手机上的非安全音乐应用程序进行播放和下载安全性要求较高的歌曲为例。在电子设备的安全应用程序(如安全音乐应用程序)接收到安全空间操作***中的smc_entry接口发送的第一任务之后,安全应用程序可以确定第一任务是否包括多个线程。即电子设备的安全应用程序确定第一任务是否包括多个线程,可以为图2中的步骤6。
S309、电子设备的安全应用程序执行第一线程。
在电子设备的安全应用程序确定第一任务包括一个线程的情况下,电子设备的安全应用程序可以执行该线程,从而获取对应的执行结果。
在一些示例中,电子设备的安全应用程序执行第一线程,可以包括电子设备获取第一任务对应的上下文,并根据第一任务对应的上下文执行第一线程。
例如,结合图2所示,继续以用户通过手机上的非安全音乐应用程序进行播放安全性要求较高的歌曲为例。在电子设备的安全应用程序(如安全音乐应用程序)确定第一任务包括一个线程的情况下,电子设备的安全应用程序可以执行第一线程。即电子设备的安全应用程序确定第一任务包括一个线程,如播放线程的情况下,电子设备的安全应用程序执行播放线程,可以为图2中的步骤7。
S310、电子设备的安全应用程序获取第一执行结果。
在电子设备的安全应用程序执行第一线程结束时,电子设备的安全应用程序可以获取第一线程对应的执行结果,可以称为第一执行结果。由于第一任务包括一个线程,则第一执行结果即为第一任务对应的执行结果。
例如,结合图2所示,继续以用户通过手机上的非安全音乐应用程序进行播放安全性要求较高的歌曲为例。在电子设备的安全应用程序(如安全音乐应用程序)确定第一任务包括一个线程的情况下,电子设备的安全应用程序执行第一线程时,电子设备的安全应用程序的校验结束模块可以获取第一线程对应的执行结果。即电子设备的安全应用程序第一执行结果,可以为图2中的步骤8。
S311、电子设备的安全应用程序向非安全应用程序发送第一执行结果。
在电子设备的安全应用程序获取到第一执行结果之后,电子设备的安全应用程序可以向非安全应用程序发送第一执行结果。
在一些示例中,电子设备的安全应用程序向非安全应用程序获取第一执行结果,可以包括:电子设备的安全应用程序向安全空间操作***发送第一执行结果。之后,安全空间操作***向非安全空间操作***发送第一执行结果。之后,非安全空间操作***向非安全应用程序发送第一执行结果。
例如,结合图2所示,继续以用户通过手机上的非安全音乐应用程序进行播放安全性要求较高的歌曲为例。在电子设备的安全应用程序(如安全音乐应用程序)确定第一任务包括一个线程的情况下,电子设备的安全应用程序执行第一线程时,电子设备的安全应用程序的校验结束模块可以获取第一线程对应的执行结果。
安全应用程序包括的校验结束模块可以将第一线程的校验结果发送给非安全空间操作***的TEE驱动中的smc接口。非安全空间操作***的TEE驱动中的smc接口,可以将第一线程的校验结果发送给非安全空间操作***的TEE驱动中的校验运算模块。非安全空间操作***的TEE驱动中的校验运算模块,可以将第一线程的校验结果发送给非安全音乐APP的校验运算模块,从而非安全音乐APP的校验运算模块根据播放线程的校验结果进行播放,或者不播放已有歌曲。即电子设备的安全应用程序向非安全应用程序发送第一执行结果的过程可以依次包括图2中的步骤9、步骤10以及步骤11。
S312、电子设备的非安全应用程序接收第一执行结果。
在非安全应用程序接收到第一执行结果之后,非安全应用程序可以根据第一执行结果执行相应的动作。
例如,继续以用户通过手机上的非安全音乐应用程序进行播放安全性要求较高的歌曲为例,在电子设备的安全应用程序(如安全音乐应用程序)确定第一任务包括一个线程的情况下,电子设备的安全应用程序执行第一线程时,电子设备的安全应用程序获取第一线程对应的执行结果,即第一执行结果,第一执行结果可以为播放已有歌曲失败,也可以为播放已有歌曲成功。之后,电子设备的安全应用程序将第一执行结果发送给电子设备的非安全应用程序(如非安全音乐APP)。电子设备的非安全应用程序在第一执行结果为播放已有歌曲失败时,电子设备可以不播放已有歌曲。电子设备的非安全应用程序在第一执行结果为播放已有歌曲成功时,电子设备可以播放已有歌曲,并显示对应的界面。
S313、电子设备的安全应用程序向安全空间操作***发送第四通知。
在电子设备的安全应用程序确定第一任务包括多个线程的情况下,电子设备的安全应用程序可以向安全空间操作***发送第四通知。第四通知用于指示第一任务包括多个线程,从而安全空间操作***可以根据第一任务复制第一任务对应的上下文,如称为第一上下文。本申请实施例中以第一任务包括两个线程(如称为第一线程和第二线程)为例进行示意说明。
在一些示例中,电子设备的安全应用程序向安全空间操作***发送第四通知,可以为电子设备的安全应用程序向安全空间操作***发送第四通知,从而能够调用安全空间操作***中的预设应用程序接口(也可以称为多线程应用程序接口),从而通过预设应用程序接口可以复制第一任务对应的上下文,如称为第一上下文。
例如,结合图2所示,继续以用户通过手机上的非安全音乐应用程序进行播放和下载安全性要求较高的歌曲为例。在电子设备的安全应用程序(如安全音乐应用程序)确定第一任务包括多个线程的情况下,电子设备的安全应用程序向安全空间操作***发送第四通知,从而能够调用安全空间操作***中的预设应用程序接口,即电子设备的安全应用程序向安全空间操作***发送第四通知,可以为图2中的步骤12。
S314、电子设备的安全空间操作***接收第四通知。
S315、电子设备的安全空间操作***获取第一上下文,第一上下文为第一任务对应的上下文。
在电子设备的安全空间操作***接收到安全应用程序发送的第四通知之后,电子设备的安全空间操作***获取第一上下文,第一上下文为第一任务对应的上下文。
S316、电子设备的安全空间操作***根据第一上下文,得到第二上下文。
在电子设备的安全空间操作***获取到第一上下文之后,电子设备可以根据第一上下文得到第二上下文。第一上下文可以用于执行第一线程。第二上下文可以用于执行第二线程。
第一上下文可以包括第一地址信息,用于指示第一存储区域,第一存储区域即第一上下文的存储位置。第二上下文可以包括第二地址信息,用于指示第二存储区域,第二存储区域即第二上下文的存储位置。
第二上下文的地址信息与第一上下文的地址信息不同,即第二上下文与第一上下文的存储位置不同,从而在电子设备执行第一线程和第二线程时不共享内存,从而能够使得电子设备的安全空间的操作***在同时处理第一线程和第二线程时,第一线程和第二线程之间是相互独立的,彼此之间不受影响。
在一些示例中,电子设备的安全空间操作***获取第一上下文之后,电子设备的安全空间操作***可以确定第一线程和第二线程是否共享内存,即确定电子设备执行第一线程时访问的存储区域与电子设备执行第二线程时访问的存储区域是否相同。在电子设备的安全空间操作***确定第一线程和第二线程共享内存,即确定电子设备执行第一线程时访问的存储区域与电子设备执行第二线程时访问的存储区域相同时,电子设备可以根据第一上下文得到第二上下文,第二上下文的地址信息可以与第一上下文的地址信息相同。电子设备将多个线程对应的上下文的存储在相同的区域,从而能够使得电子设备的安全空间的操作***在同时处理多个线程时,多个线程之间共享内存,从而能够使得电子设备的安全空间的操作***在同时处理多个线程时,可以通过多个线程同时处理一个数据或同一个内存对应的任务,从而能够进一步提高安全空间的操作***对安全应用程序的处理速度。
在电子设备的安全空间操作***确定第一线程和第二线程不共享内存,即确定电子设备执行第一线程时访问的存储区域与电子设备执行第二线程时访问的存储区域不同时,电子设备可以根据第一上下文得到第二上下文,第二上下文的地址信息可以与第一上下文的地址信息不同。在电子设备的安全空间的操作***在同时处理多个线程时,多个线程之间不共享内存,多个线程之间是相互独立的,彼此之间不受影响,从而能够进一步提高安全空间的操作***对安全应用程序的处理速度。
在一些示例中,第一上下文和第二上下文的起点函数(也可以称为入口函数)不同,即在电子设备执行第一线程时,电子设备可以根据第一上下文对应的起点函数找到第一上下文,从而根据第一上下文执行第一线程。在电子设备执行第二线程时,电子设备可以根据第二上下文对应的起点函数找到第二上下文,从而根据第二上下文执行第二线程。
在一些示例中,电子设备的安全空间操作***根据第一上下文,得到第二上下文可以为电子设备的安全空间操作***复制第一上下文,将复制的第一上下文中的地址信息以及起点函数进行修改,从而得到第二上下文。
例如,结合图2所示,继续以用户通过手机上的非安全音乐应用程序进行播放和下载安全性要求较高的歌曲为例。在电子设备的安全应用程序(如安全音乐应用程序)确定第一任务包括多个线程的情况下,电子设备的安全应用程序向安全空间操作***发送第四通知,从而能够调用安全空间操作***中的预设应用程序接口,通过预设应用程序接口可以创建新的上下文(即第二上下文),与原上下文(即第一上下文)的地址不同。即电子设备的安全空间操作***根据第一上下文,得到第二上下文,可以为图2中的步骤13。
S317、电子设备的安全空间操作***向非安全空间操作***发送第一通知,第一通知包括第一上下文的标识和第二上下文的标识。
在电子设备的安全空间操作***根据第一上下文,得到第二上下文之后,电子设备的安全空间操作***可以向非安全空间操作***发送第一通知。第一通知用于通知非安全空间操作***,第一任务包括多个线程,从而非安全空间操作***可以创建工作队列,通过工作队列可以执行多个线程中的线程(如第二线程)。
在一些示例中,第一通知可以包括第一上下文的标识(也可以称为上下文参数)和第二上下文的标识上下文。上下文的标识可以用于指示上下文的存储位置,即通过上下文的标识可以找到对应的上下文。
例如,结合图2所示,继续以用户通过手机上的非安全音乐应用程序进行播放和下载安全性要求较高的歌曲为例。在电子设备的安全应用程序(如安全音乐应用程序)确定第一任务包括多个线程的情况下,电子设备的安全空间操作***通过预设应用程序接口创建新的上下文之后,安全空间操作***可以通过smc接口向非安全操作***中TEE驱动中的TEE驱动回调模块发送第一通知,第一通知可以包括第一上下文的标识和第二上下文的标识,即电子设备的安全空间操作***向非安全空间操作***发送第一通知可以为图2中的步骤14和步骤15。
S318、电子设备的非安全空间操作***接收第一通知。
S319、电子设备的非安全空间操作***向安全空间操作***发送第二通知,第二通知包括第一上下文的标识。
在电子设备的非安全空间操作***接收到第一通知之后,电子设备的非安全空间操作***可以向安全空间操作***发送第二通知,第二通知可以包括第一上下文的标识。第二通知可以用于指示安全空间操作***执行第一线程。
例如,结合图2所示,继续以用户通过手机上的非安全音乐应用程序进行播放和下载安全性要求较高的歌曲为例。在电子设备的安全应用程序(如安全音乐应用程序)确定第一任务包括多个线程的情况下,电子设备的非安全操作***中TEE驱动中的TEE驱动回调模块接收安全空间操作***发送的第一通知之后,TEE驱动回调模块可以向安全空间操作***中的smc接口发送第二通知,第二通知包括第一上下文的标识,从而可以通过安全空间操作***执行第一线程,即电子设备的非安全空间操作***向安全空间操作***发送第二通知可以为图2中的步骤16。
S320、电子设备的安全空间操作***接收第二通知。
S321、电子设备的安全空间操作***向安全应用程序发送第二通知。
在电子设备的安全空间操作***接收到非安全空间操作***发送的第二通知之后,电子设备的安全空间操作***可以向安全应用程序发送第二通知,从而安全应用程序可以执行第一线程。
例如,结合图2所示,继续以用户通过手机上的非安全音乐应用程序进行播放和下载安全性要求较高的歌曲为例。在电子设备的安全应用程序(如安全音乐应用程序)确定第一任务包括多个线程的情况下,电子设备的非安全操作***中TEE驱动中的TEE驱动回调模块向安全空间操作***中的smc接口发送第二通知之后,安全空间操作***中的smc接口可以通过第二通知的包括第一上下文的标识,找到第一上下文,安全空间操作***向安全应用程序发送第二通知,从而安全应用程序可以根据第一上下文执行第一线程。即电子设备的安全空间操作***向安全应用程序发送第二通知,可以为图2中的步骤17和步骤18。
S322、电子设备的安全应用程序接收第二通知。
S323、电子设备的安全应用程序根据第一上下文,执行第一线程。
在电子设备的安全应用程序接收到安全空间操作***发送的第二通知之后,电子设备的安全应用程序可以根据第一上下文,执行第一线程。
S324、电子设备的安全应用程序获取第一执行结果。
在第一线程执行结束时,电子设备的安全应用程序可以获取到第一线程对应的执行结果,即第一执行结果。
S325、电子设备的非安全空间操作***创建工作队列。
在电子设备的非安全空间操作***向安全空间操作***发送第二通知的同时,电子设备的非安全空间操作***可以创建工作队列。工作队列可以包括第二上下文的标识,工作队列可以用于指示安全空间操作***执行第二线程。即上述S325可以与上述S319同时执行。
S326、电子设备的非安全空间操作***运行工作队列。
S327、电子设备的非安全空间操作***向安全空间操作***发送第三通知,第三通知包括第二上下文的标识。
在电子设备的非安全空间操作***运行工作队列之后,电子设备的非安全空间操作***可以向安全空间操作***发送第三通知,第三通知可以包括第二上下文的标识。第三通知可以用于指示安全空间操作***执行第二线程。
例如,结合图2所示,继续以用户通过手机上的非安全音乐应用程序进行播放和下载安全性要求较高的歌曲为例。在电子设备的安全应用程序(如安全音乐应用程序)确定第一任务包括多个线程的情况下,电子设备的非安全操作***中TEE驱动中的TEE驱动回调模块接收安全空间操作***发送的第一通知之后,TEE驱动回调模块可以创建工作队列。之后,TEE驱动可以运行工作队列。在TEE驱动运行工作队列之后,TEE驱动可以调用非安全空间操作***中的smc接口,向安全空间操作***发送第四通知,从而安全空间操作***可以执行第二线程。即电子设备的非安全空间操作***向安全空间操作***发送第四通知可以为图2中的步骤22。
S328、电子设备的安全空间操作***接收第三通知。
S329、电子设备的安全空间操作***向安全应用程序发送第三通知。
在电子设备的安全空间操作***接收到非安全空间操作***发送的第三通知之后,电子设备的安全空间操作***可以向安全应用程序发送第三通知,从而安全应用程序可以执行第一线程。
例如,结合图2所示,继续以用户通过手机上的非安全音乐应用程序进行播放和下载安全性要求较高的歌曲为例。在电子设备的安全应用程序(如安全音乐应用程序)确定第一任务包括多个线程的情况下,TEE驱动调用非安全空间操作***中的smc接口,向安全空间操作***发送第三通知之后,安全空间操作***中的smc接口可以通过第三通知的包括第二上下文的标识,找到第二上下文。安全空间操作***向安全应用程序发送第三通知,从而安全应用程序可以根据第二上下文执行第二线程。即电子设备的安全空间操作***向安全应用程序发送第三通知,可以为图2中的步骤23、步骤24和步骤25。
S330、电子设备的安全应用程序接收第三通知。
S331、电子设备的安全应用程序根据第二上下文,执行第二线程。
在电子设备的安全应用程序接收到安全空间操作***发送的第三通知之后,电子设备的安全应用程序可以根据第二上下文,执行第二线程。
S332、电子设备的安全应用程序获取第二执行结果。
在第二线程执行结束时,电子设备的安全应用程序可以获取到第二线程对应的执行结果,即第二执行结果。
S333、电子设备的安全应用程序根据第一执行结果以及第二执行结果,得到第三执行结果。
在电子设备的安全应用程序获取到第一执行结果以及第二执行结果之后,电子设备的安全应用程序可以根据第一执行结果以及第二执行结果,得到第三执行结果,即第一任务对应的执行结果。
S334、电子设备的安全应用程序向非安全应用程序发送第三执行结果。
在电子设备的安全应用程序获取到第三执行结果之后,电子设备的安全应用程序可以向非安全应用程序发送第三执行结果。
在一些示例中,电子设备的安全应用程序向非安全应用程序获取第三执行结果,可以包括:电子设备的安全应用程序向安全空间操作***发送第三执行结果。之后,安全空间操作***向非安全空间操作***发送第三执行结果。之后,非安全空间操作***向非安全应用程序发送第三执行结果。
例如,结合图2所示,继续以用户通过手机上的非安全音乐应用程序进行(如安全音乐应用程序)为例。在电子设备的安全应用程序(如安全音乐应用程序)确定第一任务包括多个线程(如播放线程和下载线程)的情况下,电子设备的安全应用程序的校验结束模块可以获取播放线程对应的执行结果,以及下载线程对应的执行结果,并根据播放线程对应的执行结果以及下载线程对应的执行结果,得到最终执行结果,即第三执行结果。安全应用程序包括的校验结束模块可以将第三执行结果发送给非安全空间操作***的TEE驱动中的smc接口。非安全空间操作***的TEE驱动中的smc接口,可以将第三执行结果发送给非安全空间操作***的TEE驱动中的校验运算模块。非安全空间操作***的TEE驱动中的校验运算模块,可以将第三执行结果发送给非安全音乐APP的校验运算模块,从而非安全音乐APP的校验运算模块根据第三执行结果进行播放和下载,或者不进行播放和下载。即电子设备的安全应用程序向非安全应用程序发送第三执行结果的过程可以依次包括图2中的步骤9、步骤10以及步骤11。
S335、电子设备的非安全应用程序接收第三执行结果。
在非安全应用程序接收到第三执行结果之后,非安全应用程序可以根据第三执行结果执行相应的动作。
例如,继续以用户通过手机上的非安全音乐应用程序进行播放和下载安全性要求较高的歌曲为例,在电子设备的安全应用程序(如安全音乐应用程序)确定第一任务包括多个线程(如播放线程和下载线程)的情况下,电子设备的安全应用程序执行播放线程时,电子设备的安全应用程序获取播放线程对应的执行结果,即第一执行结果,电子设备的安全应用程序执行下载线程时,电子设备的安全应用程序获取下载线程对应的执行结果,即第二执行结果。电子设备的安全应用程序根据第一执行结果以及第二执行结果,得到第三执行结果,即第一任务对应的执行结果。第三执行结果可以为播放和下载失败,也可以为播放和下载成功。之后,电子设备的安全应用程序将第三执行结果发送给电子设备的非安全应用程序。电子设备的非安全应用程序在第三执行结果为播放和下载失败时,电子设备可以不播放和下载。电子设备的非安全应用程序在第三执行结果为播放和下载成功时,电子设备可以播放和下载,并显示对应的界面。
本申请的方案,在安全应用程序在电子设备的安全空间的操作***上运行时,若安全应用程序对应的第一任务包括多个线程,电子设备可以获取每个线程对应的上下文,并通过电子设备的非安全空间的回调,使电子设备的安全应用程序可以根据每个线程对应的上下文,同时执行每个线程,即电子设备的安全空间的操作***可以同时处理多个线程,从而能够提高电子设备的安全空间的操作***对多线程的任务的处理速度。
且在电子设备的安全空间的操作***同时处理多个线程时,若多个线程之间的关联度较低,即多个线程之间的对应的功能相互独立,电子设备在执行该多个线程时访问的存储区域不同,电子设备可以将多个线程对应的上下文的存储在不同的区域,从而能够使得电子设备的安全空间的操作***在同时处理多个线程时,多个线程之间不共享内存,多个线程之间是相互独立的,彼此之间不受影响,从而能够进一步提高安全空间的操作***对安全应用程序的处理速度。
为了便于理解,下面结合附图4对本申请实施例提供的多线程处理方法进行说明。如图4所示,该设备连接方法可以包括以下S401-S409。
S401、电子设备获取第一任务。
电子设备可以包括非安全空间(本申请实施例中可以称为第二空间)以及安全空间(本申请实施例中可以称为第一空间),安全空间和非安全空间相互独立。第一空间的安全性大于第二空间的安全性,即第一空间的操作***上可以运行对安全性要求高的应用程序,如指纹验证应用程序、安全音乐应用程序等,第二空间的操作***上可以运行对安全性要求低的应用程序,如非安全音乐应用程序等。
安全空间可以包括安全应用程序(本申请实施例中可以称为第一应用程序)以及安全空间操作***(本申请实施例中可以称为第一操作***),即第一应用程序可以运行在电子设备的第一空间的第一操作***上。非安全空间可以包括非安全应用程序(本申请实施例中可以称为第二应用程序)以及非安全空间操作***(本申请实施例中可以称为第二操作***),即第二应用程序可以运行在电子设备的第二空间的第二操作***上。第一应用程序与第二应用程序对应,如第一应用程序为安全空间中的安全音乐应用程序时,第二应用程序即为非安全空间中的非安全音乐应用程序。
在用户使用电子设备时,电子设备获取第一任务可以包括电子设备的非安全应用程序获取用户使用电子设备的任务,如称为第一任务,第一任务可以为对安全性要求较高的任务,即第一任务可以用于触发电子设备实现第一应用程序的功能。第一任务可以包括一个线程,也可以包括多个线程,本申请实施例中以第一任务包括两个线程(如第一线程和第二线程)为例进行示意说明。
在电子设备的非安全应用程序获取到第一任务之后,电子设备的非安全应用程序可以将获取到的第一任务发送给安全应用,由安全应用执行第一任务。也就是说,在第二应用程序接收到用户操作的情况下,第二应用程序可以获取对应的第一任务,并将第一任务发送给第一应用程序。
本申请实施例中电子设备获取第一任务,可以参考上述S301-S307,本申请实施例在此不再赘述。
S402、电子设备确定第一任务是否包括多个线程。
在电子设备获取到第一任务之后,电子设备可以确定第一任务是否包括多个线程。本申请实施例中电子设备确定第一任务是否包括多个线程,可以参考上述S308,本申请实施例在此不再赘述。
在电子设备确定第一任务包括一个线程的情况下,电子设备可以继续执行S403-S404。在电子设备确定第一任务包括多个线程的情况下,电子设备可以继续执行S405-S409。
S403、电子设备获取第一上下文,第一上下文为第一任务对应的上下文。
在电子设备确定第一任务包括一个线程的情况下,电子设备可以第一任务对应的上下文,如称为第一上下文,从而可以根据第一上下文执行第一线程。
S404、电子设备根据第一上下文执行第一线程,并获取第一执行结果。
电子设备根据第一上下文执行第一线程完成时,电子设备可以获取第一执行结果,即第一任务对应的执行结果。
在电子设备获取到第一执行结果之后,电子设备可以执行相应的动作,如电子设备播放已有歌曲并显示对应的界面或者电子设备不播放已有歌曲。
本申请实施例中电子设备根据第一上下文执行第一线程,并获取第一执行结果,可以参考上述S309-S312,本申请实施例在此不再赘述。
S405、电子设备获取第一上下文,第一上下文为第一任务对应的上下文。
在电子设备确定第一任务包括多个线程(如第一线程和第二线程)的情况下,电子设备可以获取第一任务对应的上下文,如称为第一上下文,从而可以根据第一上下文执行第一线程以及第二线程。
本申请实施例中电子设备获取第一上下文,可以参考上述S313-S315,本申请实施例在此不再赘述。
S406、电子设备调用预设应用程序接口,并根据多第一上下文,得到第二上下文。
预设应用程序接口可以为安全空间操作***中的预设应用程序接口(也可以称为多线程应用程序接口),通过预设应用程序接口可以复制第一任务对应的上下文。
第一上下文可以包括第一地址信息,用于指示第一存储区域,第一存储区域即第一上下文的存储位置。第二上下文可以包括第二地址信息,用于指示第二存储区域,第二存储区域即第二上下文的存储位置。
在电子设备的安全空间操作***获取到第一上下文之后,电子设备可以根据第一上下文得到第二上下文。第一上下文可以用于执行第一线程。第二上下文可以用于执行第二线程。第二上下文的地址信息与第一上下文的地址信息不同,即第二上下文与第一上下文的存储位置不同。
在一些示例中,电子设备获取第一上下文之后,电子设备可以确定第一线程和第二线程是否共享内存,即确定电子设备执行第一线程时访问的存储区域与电子设备执行第二线程时访问的存储区域是否相同。在确定电子设备执行第一线程时访问的存储区域与电子设备执行第二线程时访问的存储区域相同时,电子设备可以根据第一上下文得到第二上下文,第二上下文的地址信息可以与第一上下文的地址信息相同。
在确定电子设备执行第一线程时访问的存储区域与电子设备执行第二线程时访问的存储区域不同时,电子设备可以根据第一上下文得到第二上下文,第二上下文的地址信息可以与第一上下文的地址信息不同。
在一些示例中,第一上下文和第二上下文的起点函数(也可以称为入口函数)不同,即在电子设备执行第一线程时,电子设备可以根据第一上下文对应的起点函数找到第一上下文,从而根据第一上下文执行第一线程。在电子设备执行第二线程时,电子设备可以根据第二上下文对应的起点函数找到第二上下文,从而根据第二上下文执行第二线程。
在一些示例中,电子设备的安全空间操作***根据第一上下文,得到第二上下文可以为电子设备的安全空间操作***通过预设应用程序接口复制第一上下文,得到第三上下文,第三上下文包括第一地址信息以及起点函数,电子设备的安全空间操作***可以将第三上下文中的第一地址信息修改为第二地址信息以及起点函数进行修改,第二地址信息与第三地址信息不同,从而得到第二上下文。
本申请实施例中电子设备调用预设应用程序接口,并根据多第一上下文,得到第二上下文,可以参考上述S316,本申请实施例在此不再赘述。
S407、电子设备基于第二操作***的回调,根据第一上下文在第一空间执行第一线程,并获取第一执行结果。
电子设备基于第二操作***的回调,根据第一上下文在第一空间执行第一线程,即电子设备通过第二操作***将第一线程再返回到第一空间中执行。
本申请实施例中电子设备基于第二操作***的回调,根据在第一空间第一上下文执行第一线程,并获取第一执行结果,可以参考上述S317-S324,本申请实施例在此不再赘述。
S408、电子设备基于第二操作***的回调,根据第二上下文在第一空间执行第二线程,并获取第二执行结果。
电子设备基于第二操作***的回调,根据第而上下文在第一空间执行第二线程,即电子设备通过第二操作***将第二线程再返回到第一空间中执行。
本申请实施例中电子设备基于第二操作***的回调,根据第二上下文在第一空间执行第二线程,并获取第二执行结果,可以参考上述S325-S332,本申请实施例在此不再赘述。
电子设备基于第二操作***的回调,根据第一上下文在第一空间执行第一线程,且电子设备基于第二操作***的回调,根据第二上下文在第一空间执行第二线程,即本申请的方案是通过第二操作***的回调,将第一线程和第二线程再返回到第一空间中执行,从而电子设备的第一操作***可以同时处理多个线程。
S409、电子设备根据第一执行结果以及第二执行结果,获取第三执行结果。
在电子设备获取到第一执行结果以及第二执行结果之后,可以根据第一执行结果以及第二执行结果,得到第三执行结果,即第一任务对应的执行结果,从而电子设备可以根据第三执行结果执行相应的动作。
本申请实施例中电子设备根据第一执行结果以及第二执行结果,获取第三执行结果,可以参考上述S333-S335,本申请实施例在此不再赘述。
本申请的方案,在电子设备的安全应用程序对应的第一任务包括多个线程时,电子设备可以获取每个线程对应的上下文,并通过电子设备的非安全空间的回调,使电子设备的安全应用程序可以根据每个线程对应的上下文,同时执行每个线程,即电子设备的安全空间的操作***可以同时处理多个线程,从而能够提高电子设备的安全空间的操作***对多线程的任务的处理速度。
且由于电子设备执行该多个线程在时访问的存储区域不同,即多个线程之间不共享内存,电子设备可以将多个线程对应的上下文存储在不同的位置,从而电子设备在同时处理该多个线程时,多个线程之间是相互独立的,彼此之间不受影响,从而能够进一步提高安电子设备对多个线程的任务的处理速度。
对应于前述实施例中的方法,本申请实施例还提供一种多线程处理装置。该多线程处理装置可以应用于电子设备,用于实现前述实施例中的方法。该多线程处理装置的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。
例如,图5示出了一种多线程处理装置500的结构示意图,如图5所示,该多线程处理置500可以包括:获取模块501、存储模块502和执行模块503等。
其中,获取模块501,可以用于获取第一应用程序的第一任务,第一应用程序运行在电子设备的第一空间的第一操作***上;第一任务至少包括第一线程和第二线程,第一线程和第二线程用于实现第一应用程序的功能;电子设备执行第一线程时访问的存储区域与电子设备执行第二线程时访问的存储区域不同。
获取模块501,还可以用于从电子设备的第一存储区域获取第一任务的第一上下文。
获取模块501,还可以用于根据第一上下文获取第二上下文。
存储模块502,可以用于将第二上下文存储在电子设备的第二存储区域,第二存储区域与第一存储区域为不同的存储区域。
执行模块503,可以用于基于第二操作***的回调,并根据第一上下文在第一空间执行第一线程。
执行模块503,还可以用于基于第二操作***的回调,并根据第二上下文在第一空间执行第二线程。
在另一种可能的实现方式中,上述多线程处理装置500还可以包括发送模块504。
发送模块504,可以用于向第二操作***发送第一通知,第一通知包括第一上下文的标识以及第二上下文的标识。
发送模块504,还可以用于根据第一通知,向第一操作***发送第二通知;第二通知用于指示第一应用程序执行第一线程,第二通知包括第一上下文的标识。
发送模块504,还可以用于向第一应用程序发送第二通知。
获取模块501,还可以用于根据第一上下文的标识,获取第一上下文。
执行模块503,还可以用于根据第一上下文执行第一线程。
在另一种可能的实现方式中,上述多线程处理装置还可以包括创建模块505和运行模块506。
发送模块504,可以用于向第二操作***发送第一通知,第一通知包括第一上下文的标识以及第二上下文的标识。
创建模块505,可以用于根据第一通知创建工作队列,工作队列用于指示第二操作***向第一操作***发送第三通知。
运行模块506,可以用于运行工作队列。
发送模块504,还可以用于向第一操作***发送第三通知;第三通知用于指示第一应用程序执行第二线程,第三通知包括第二上下文的标识。
发送模块504,还可以用于向第一应用程序发送第三通知。
获取模块501,还可以用于根据第二上下文的标识,获取第二上下文。
执行模块503,还可以用于根据第二上下文执行第二线程。
在另一种可能的实现方式中,第二操作***上运行有与第一应用程序对应的第二应用程序。
上述多线程处理装置500还可以包括接收模块507。
接收模块507,可以用于接收用户的操作,操作用于触发电子设备实现第一应用程序的功能。
获取模块501,用于获取第一任务。发送模块,可以用于向第二操作***发送第一任务。
接收模块507,还可以用于接收第一任务。
发送模块504,可以用于在第一任务由第一操作***执行的情况下,通过第一操作***向第一应用程序发送第一任务。
接收模块507,还可以用于接收第一任务。
在另一种可能的实现方式中,发送模块504,还可以用于向第一操作***发送第四通知,第四通知用于指示第一操作***获取第一上下文。
获取模块501,还可以用于根据第四通知,从电子设备的第一存储区域获取第一任务的第一上下文。
在另一种可能的实现方式中,上述多线程处理装置500还可以包括修改模块508。
获取模块501,还可以用于复制第一上下文,得到第三上下文。
修改模块508,还可以用于将第三上下文包括的第一地址信息修改为第二地址信息,以获得第二上下文。
在另一种可能的实现方式中,执行模块,可以用于根据第一上下文执行第一线程。
获取模块501,还可以用于获取第一执行结果。
执行模块503,可以用于根据第二上下文执行第二线程。
获取模块501,还可以用于获取第二执行结果。
获取模块501,还可以用于根据第一执行结果以及第二执行结果,得到第三执行结果,以使得电子设备实现第一应用程序的功能。
在另一种可能的实现方式中,获取模块501,可以用于通过预设应用程序接口,复制第一上下文,得到第三上下文。
在另一种可能的实现方式中,第一空间可以为安全空间,第一应用程序可以为安全应用程序,第一操作***可以为安全空间操作***,第二空间可以为非安全空间,第二应用程序可以为非安全应用程序,第二操作***可以为非安全空间操作***。
应理解以上装置中单元或模块(以下均称为单元)的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且装置中的单元可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分单元以软件通过处理元件调用的形式实现,部分单元以硬件的形式实现。
例如,各个单元可以为单独设立的处理元件,也可以集成在装置的某一个芯片中实现,此外,也可以以程序的形式存储于存储器中,由装置的某一个处理元件调用并执行该单元的功能。此外这些单元全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件又可以称为处理器,可以是一种具有信号的处理能力的集成电路。在实现过程中,上述方法的各步骤或以上各个单元可以通过处理器元件中的硬件的集成逻辑电路实现或者以软件通过处理元件调用的形式实现。
在一个例子中,以上装置中的单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个ASIC,或,一个或多个DSP,或,一个或者多个FPGA,或这些集成电路形式中至少两种的组合。
再如,当装置中的单元可以通过处理元件调度程序的形式实现时,该处理元件可以是通用处理器,例如CPU或其它可以调用程序的处理器。再如,这些单元可以集成在一起,以片上***SOC的形式实现。
在一种实现中,以上装置实现以上方法中各个对应步骤的单元可以通过处理元件调度程序的形式实现。例如,该装置可以包括处理元件和存储元件,处理元件调用存储元件存储的程序,以执行以上方法实施例所述的方法。存储元件可以为与处理元件处于同一芯片上的存储元件,即片内存储元件。
在另一种实现中,用于执行以上方法的程序可以在与处理元件处于不同芯片上的存储元件,即片外存储元件。此时,处理元件从片外存储元件调用或加载程序于片内存储元件上,以调用并执行以上方法实施例所述的方法。
例如,本申请实施例还可以提供一种装置,如:电子设备,可以包括:处理器,用于存储该处理器可执行指令的存储器。该处理器被配置为执行上述指令时,使得该电子设备实现如前述实施例所述的多线程处理方法。该存储器可以位于该电子设备之内,也可以位于该电子设备之外。且该处理器包括一个或多个。
在又一种实现中,该装置实现以上方法中各个步骤的单元可以是被配置成一个或多个处理元件,这些处理元件可以设置于对应上述的电子设备上,这里的处理元件可以为集成电路,例如:一个或多个ASIC,或,一个或多个DSP,或,一个或者多个FPGA,或者这些类集成电路的组合。这些集成电路可以集成在一起,构成芯片。
例如,本申请实施例还提供一种芯片,该芯片可以应用于上述电子设备。芯片包括一个或多个接口电路和一个或多个处理器;接口电路和处理器通过线路互联;处理器通过接口电路从电子设备的存储器接收并执行计算机指令,以实现以上方法实施例中所述的方法。
本申请实施例还提供一种计算机程序产品,包括如上述电子设备运行的计算机指令。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,如:程序。该软件产品存储在一个程序产品,如计算机可读存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
例如,本申请实施例还可以提供一种计算机可读存储介质,其上存储有计算机程序指令。当计算机程序指令被电子设备执行时,使得电子设备实现如前述方法实施例中所述的多线程处理方法。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (11)
1.一种多线程处理方法,其特征在于,应用于电子设备,所述电子设备包括第一空间和第二空间,所述第一空间的安全性大于所述第二空间的安全性,所述第一空间包括第一操作***以及运行在所述第一操作***上的第一应用程序,所述第二空间包括第二操作***,所述方法包括:
所述电子设备获取所述第一应用程序的第一任务,其中,所述第一任务至少包括第一线程和第二线程,所述第一线程和所述第二线程用于实现所述第一应用程序的功能,所述电子设备执行所述第一线程时访问的存储区域与所述电子设备执行所述第二线程时访问的存储区域不同;
所述电子设备从所述电子设备的第一存储区域获取所述第一任务的第一上下文;
所述电子设备根据所述第一上下文获取第二上下文,并将所述第二上下文存储在所述电子设备的第二存储区域,所述第二存储区域与所述第一存储区域为不同的存储区域;
所述电子设备基于所述第二操作***的回调,并根据所述第一上下文在所述第一空间执行所述第一线程;
所述电子设备基于所述第二操作***的回调,并根据所述第二上下文在所述第一空间执行所述第二线程。
2.根据权利要求1所述的方法,其特征在于,所述电子设备基于所述第二操作***的回调,并根据所述第一上下文在所述第一空间执行所述第一线程,包括:
所述第一操作***向所述第二操作***发送第一通知,所述第一通知包括所述第一上下文的标识以及所述第二上下文的标识;
所述第二操作***根据所述第一通知,向所述第一操作***发送第二通知;所述第二通知用于指示所述第一应用程序执行所述第一线程,所述第二通知包括所述第一上下文的标识;
所述第一操作***向所述第一应用程序发送所述第二通知;
所述第一应用程序根据所述第一上下文的标识,获取所述第一上下文;
所述第一应用程序根据所述第一上下文执行所述第一线程。
3.根据权利要求1所述的方法,其特征在于,所述电子设备基于所述第二操作***的回调,并根据所述第二上下文在所述第一空间执行所述第二线程,包括:
所述第一操作***向所述第二操作***发送第一通知,所述第一通知包括所述第一上下文的标识以及所述第二上下文的标识;
所述第二操作***根据所述第一通知创建并运行工作队列,所述工作队列用于指示所述第二操作***向所述第一操作***发送第三通知;
所述第二操作***向所述第一操作***发送第三通知;所述第三通知用于指示所述第一应用程序执行所述第二线程,所述第三通知包括所述第二上下文的标识;
所述第一操作***向所述第一应用程序发送所述第三通知;
所述第一应用程序根据所述第二上下文的标识,获取所述第二上下文;
所述第一应用程序根据所述第二上下文执行所述第二线程。
4.根据权利要求2或3所述的方法,其特征在于,所述第二操作***上运行有与所述第一应用程序对应的第二应用程序;
所述电子设备获取第一应用程序的第一任务,包括:
所述第二应用程序接收用户的操作,所述操作用于触发所述电子设备实现所述第一应用程序的功能;
所述第二应用程序获取所述第一任务;
所述第二应用程序向所述第二操作***发送所述第一任务;
所述第二操作***接收所述第一任务,并在所述第一任务由所述第一操作***执行的情况下,通过所述第一操作***向所述第一应用程序发送所述第一任务;
所述第一应用程序接收所述第一任务。
5.根据权利要求1所述的方法,其特征在于,所述电子设备从所述电子设备的第一存储区域获取所述第一任务的第一上下文,包括:
所述第一应用程序向所述第一操作***发送第四通知,所述第四通知用于指示所述第一操作***获取所述第一上下文;
所述第一操作***根据所述第四通知,从所述电子设备的第一存储区域获取所述第一任务的第一上下文。
6.根据权利要求1所述的方法,其特征在于,所述电子设备根据所述第一上下文获取第二上下文,包括:
所述第一操作***复制所述第一上下文,得到第三上下文;
所述第一操作***将所述第三上下文包括的第一地址信息修改为第二地址信息,以获得所述第二上下文。
7.根据权利要求1所述的方法,其特征在于,所述电子设备根据所述第一上下文执行所述第一线程,包括:
所述第一应用程序根据所述第一上下文执行所述第一线程,并获取第一执行结果;
所述电子设备根据所述第二上下文执行所述第二线程,包括:
所述第一应用程序根据所述第二上下文执行第二线程,并获取第二执行结果;
所述方法还包括:
所述第一应用程序根据所述第一执行结果以及所述第二执行结果,得到第三执行结果,以使得所述电子设备实现所述第一应用程序的功能。
8.根据权利要求6所述的方法,其特征在于,所述第一操作***复制所述第一上下文,得到第三上下文,包括:
所述第一操作***通过预设应用程序接口,复制所述第一上下文,得到第三上下文。
9.根据权利要求4所述的方法,其特征在于,所述第一空间为安全空间,所述第一应用程序为安全应用程序,所述第一操作***为安全空间操作***,所述第二空间为非安全空间,所述第二应用程序为非安全应用程序,所述第二操作***为非安全空间操作***。
10.一种电子设备,其特征在于,所述电子设备包括处理器,用于存储所述处理器可执行指令的存储器;所述处理器被配置为执行所述指令时,使得所述电子设备实现如权利要求1至9中任一项所述的方法。
11.一种计算机可读存储介质,其上存储有计算机程序指令;其特征在于,
当所述计算机程序指令被电子设备执行时,使得电子设备实现如权利要求1至9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210280101.3A CN114372260B (zh) | 2022-03-22 | 2022-03-22 | 一种多线程处理方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210280101.3A CN114372260B (zh) | 2022-03-22 | 2022-03-22 | 一种多线程处理方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114372260A CN114372260A (zh) | 2022-04-19 |
CN114372260B true CN114372260B (zh) | 2022-07-22 |
Family
ID=81145800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210280101.3A Active CN114372260B (zh) | 2022-03-22 | 2022-03-22 | 一种多线程处理方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114372260B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116821893B (zh) * | 2023-08-31 | 2023-11-28 | 北京华云安信息技术有限公司 | 代码执行方法、装置、电子设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6442620B1 (en) * | 1998-08-17 | 2002-08-27 | Microsoft Corporation | Environment extensibility and automatic services for component applications using contexts, policies and activators |
CN109960582A (zh) * | 2018-06-19 | 2019-07-02 | 华为技术有限公司 | 在tee侧实现多核并行的方法、装置及*** |
CN110442463A (zh) * | 2019-07-16 | 2019-11-12 | 阿里巴巴集团控股有限公司 | Tee***中的数据传输方法和装置 |
CN110971591A (zh) * | 2015-03-16 | 2020-04-07 | 阿里巴巴集团控股有限公司 | 一种多进程访问可信应用的方法和*** |
CN112732453A (zh) * | 2019-10-14 | 2021-04-30 | 北京嗨动视觉科技有限公司 | 跨线程消息处理方法、装置、***和计算机可读存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0226874D0 (en) * | 2002-11-18 | 2002-12-24 | Advanced Risc Mach Ltd | Switching between secure and non-secure processing modes |
US9027034B2 (en) * | 2009-07-29 | 2015-05-05 | EchoStar Technologies, L.L.C. | Communication among execution threads of at least one electronic device |
GB2586640B (en) * | 2019-08-30 | 2021-12-08 | Trustonic Ltd | Trusted execution environment scheduling method |
-
2022
- 2022-03-22 CN CN202210280101.3A patent/CN114372260B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6442620B1 (en) * | 1998-08-17 | 2002-08-27 | Microsoft Corporation | Environment extensibility and automatic services for component applications using contexts, policies and activators |
CN110971591A (zh) * | 2015-03-16 | 2020-04-07 | 阿里巴巴集团控股有限公司 | 一种多进程访问可信应用的方法和*** |
CN109960582A (zh) * | 2018-06-19 | 2019-07-02 | 华为技术有限公司 | 在tee侧实现多核并行的方法、装置及*** |
CN110442463A (zh) * | 2019-07-16 | 2019-11-12 | 阿里巴巴集团控股有限公司 | Tee***中的数据传输方法和装置 |
CN112732453A (zh) * | 2019-10-14 | 2021-04-30 | 北京嗨动视觉科技有限公司 | 跨线程消息处理方法、装置、***和计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114372260A (zh) | 2022-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4002108B1 (en) | Application start method and electronic device | |
WO2020000448A1 (zh) | 一种柔性屏幕的显示方法及终端 | |
WO2021017901A1 (zh) | 一种屏幕显示方法及电子设备 | |
CN110633090B (zh) | 补丁方法、相关装置及*** | |
CN113596810A (zh) | 基于双卡的网络制式切换方法及终端设备 | |
WO2021218429A1 (zh) | 应用窗口的管理方法、终端设备及计算机可读存储介质 | |
CN112860445B (zh) | 一种快应用与原生应用间数据共享的方法及终端 | |
CN111371849A (zh) | 数据处理的方法和电子设备 | |
CN114625525A (zh) | 一种资源管控方法及设备 | |
WO2022095744A1 (zh) | Vr显示控制方法、电子设备及计算机可读存储介质 | |
CN115499897B (zh) | WiFi网络接入方法及相关装置 | |
CN114372260B (zh) | 一种多线程处理方法及电子设备 | |
CN113242349A (zh) | 一种数据传输方法、电子设备及存储介质 | |
CN109783176A (zh) | 切换页面的方法和装置 | |
CN114372261B (zh) | 一种多线程处理方法及电子设备 | |
WO2021238376A1 (zh) | 功能包的加载方法、装置、服务器和电子设备 | |
WO2020233581A1 (zh) | 一种测量高度的方法和电子设备 | |
CN113971034A (zh) | 安装应用的方法和电子设备 | |
CN111866047A (zh) | 数据解码方法、装置、计算机设备及存储介质 | |
CN116703689B (zh) | 一种着色器程序的生成方法、装置和电子设备 | |
CN110442345B (zh) | 一种编译方法、运行方法及设备 | |
KR102115263B1 (ko) | 전자장치 및 전자장치의 사용자 입력 처리 방법 | |
WO2023236693A1 (zh) | 应用图标的显示方法及相关装置 | |
CN117692977A (zh) | 驻网方法及相关设备 | |
CN114692641A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |