CN114372261B - 一种多线程处理方法及电子设备 - Google Patents

一种多线程处理方法及电子设备 Download PDF

Info

Publication number
CN114372261B
CN114372261B CN202210281606.1A CN202210281606A CN114372261B CN 114372261 B CN114372261 B CN 114372261B CN 202210281606 A CN202210281606 A CN 202210281606A CN 114372261 B CN114372261 B CN 114372261B
Authority
CN
China
Prior art keywords
operating system
context
thread
electronic device
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
Application number
CN202210281606.1A
Other languages
English (en)
Other versions
CN114372261A (zh
Inventor
路来承
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honor Device Co Ltd
Original Assignee
Honor Device Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202210281606.1A priority Critical patent/CN114372261B/zh
Publication of CN114372261A publication Critical patent/CN114372261A/zh
Application granted granted Critical
Publication of CN114372261B publication Critical patent/CN114372261B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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/53Monitoring 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)密集型的动作。而安全空间的操作系统是单线程处理,并不具备同时处理多线程的能力。即安全空间的操作系统需要先执行载入采集的指纹信息的线程,在采集的指纹信息载入完成时,才能进行另一个线程,即对载入的指纹信息进行校验。由于安全空间的操作系统是单线程处理,并不具备同时处理多线程的能力,这就导致指纹验证应用程序进行指纹校验时,处理速度较低,导致用户体验较低。
又如,以安全应用程序为音乐播放应用程序为例。用户在使用音乐播放应用程序时,可以播放已有的歌曲,也可以下载另一首歌曲。即音乐播放应用程序在运行时,包括两个线程,一个线程是播放已有的歌曲,一个线程是下载另一首歌曲。而安全空间的操作系统是单线程处理,并不具备同时处理多线程的能力。即安全空间的操作系统需要先执行播放已有的歌曲的线程,在播放已有的歌曲完成时,才能进行另一个线程,即下载另一首歌曲。由于安全空间的操作系统是单线程处理,并不具备同时处理多线程的能力,这就导致音乐播放应用程序在运行时,不能在播放已有歌曲的同时下载另一首歌曲,导致用户体验较低。
针对上述问题,本申请实施例提供一种多线程处理方法,应用于电子设备。在安全应用程序在电子设备的安全空间的操作系统上运行时,若安全应用程序对应的第一任务包括多个线程,电子设备可以获取每个线程对应的上下文,并通过电子设备的非安全空间的回调,使电子设备的安全应用程序可以根据每个线程对应的上下文,同时执行每个线程,即电子设备的安全空间的操作系统可以同时处理多个线程。相较于现有技术中安全空间的操作系统并不具备同时处理多线程的能力,本申请的方案电子设备的安全空间的操作系统可以同时处理多个线程,从而能够提高电子设备的安全空间的操作系统对多线程的任务的处理速度。
且在电子设备的安全空间的操作系统同时处理多个线程时,若多个线程之间的关联度较高,即多个线程之间的对应的功能相互不独立,也就是说,电子设备在执行该多个线程时访问的存储区域相同。电子设备可以将多个线程对应的上下文的存储在相同的区域,从而能够使得电子设备的安全空间的操作系统在同时处理多个线程时,多个线程之间可以共享内存,从而能够使得电子设备的安全空间的操作系统在同时处理多个线程时,可以通过多个线程同时处理一个数据或同一个内存对应的任务,从而能够进一步提高安全空间的操作系统对安全应用程序的处理速度。
例如,在用户需要使用电子设备在一个比较大的内存中确定中所有关键字K的位置。为了提高找出中所有关键字K的位置的速度和效率,电子设备可以创建出多个线程来对该内存进行扫描,不同的线程可以扫描该内存的不同位置,通过多个线程同时扫描该内存,从而能够快速确定出该内存中所有关键字K的位置。例如,可以创建两个线程(如线程A和线程B)同时扫描该内存,线程A扫描该内存中从0到N/2位置,线程B扫描该内存中从N/2到N的位置,最后将两个线程的扫描结果合并,就可以快速得到最终的扫描结果。
且电子设备在创建出线程A和线程B时,可以将线程A和线程B对应的上下文的存储在相同的区域,从而能够使得电子设备的安全空间的操作系统在同时处理线程A和线程B时,线程A和线程B之间可以共享内存,从而能够通过线程A和线程B同时在该较大的内存中确定中所有关键字K的位置。
又如,以安全应用程序为指纹验证应用程序为例。在指纹验证应用程序在安全空间的操作系统上运行并进行指纹校验时,安全空间的操作系统需要载入采集的指纹信息,同时需要对载入的指纹信息进行校验。
在载入采集到指纹信息时,可以将采集到的指纹信息存储到电子设备的一个存储区域。而在对载入的指纹信息进行校验时,需要读取该存储区域中存储的指纹信息,即载入指纹信息和校验指纹信息时需要访问电子设备上的同一个存储区域。电子设备可以创建出两个线程来进行指纹校验,一个线程用于载入采集的指纹信息(如称为载入线程),一个线程用于对载入的指纹信息进行校验(如称为校验线程),从而电子设备能够在载入采集的指纹信息的同时对载入采集的指纹信息进行校验,可以快速对指纹信息进行校验。
且电子设备可以将载入线程和校验线程对应的上下文的存储在相同的区域,从而能够使得电子设备的安全空间的操作系统在同时载入线程和校验线程时,载入线程和校验线程之间共享内存,能够使载入线程和校验线程同时访问电子设备上的同一个存储区域,从而可以快速对指纹信息进行校验。
下面对本申请实施例提供的多线程处理方法进行描述。
本申请实施例提供的多线程处理方法可以应用于电子设备。在一些实施例中,上述电子设备可以是手机、平板电脑、手持计算机,个人计算机(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。
以下结合附图2对本申请实施例提供的多线程处理方法进行详细说明。图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、电子设备的非安全应用程序接收第一执行结果。
在非安全应用程序接收到第一执行结果之后,非安全应用程序可以根据第一执行结果执行相应的动作。
例如,继续以用户通过手机上的锁屏应用程序进行解锁为例,在电子设备的安全应用程序(如指纹验证应用程序)确定第一任务包括一个线程的情况下,电子设备的安全应用程序执行第一线程时,电子设备的安全应用程序获取第一线程对应的执行结果,即第一执行结果,第一执行结果可以为指纹验证失败,也可以为指纹验证成功。
之后,电子设备的安全应用程序将第一执行结果发送给电子设备的非安全应用程序。电子设备的非安全应用程序在第一执行结果为指纹验证失败时,电子设备可以不解锁。电子设备的非安全应用程序在第一执行结果为指纹验证成功时,电子设备可以解锁,并显示对应的界面。
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,还可以用于从电子设备的第一存储区域获取第一任务的第一上下文。
存储模块502,可以用于根据第一上下文获取第二上下文,并将第二上下文存储在第一存储区域。
执行模块503,可以用于基于第二操作系统的回调,并根据第一上下文在第一空间执行第一线程。
执行模块503,还可以用于基于第二操作系统的回调,并根据第二上下文在第一空间执行第二线程。
在另一种可能的实现方式中,上述多线程处理装置还可以包括发送模块504。
发送模块504,可以用于向第二操作系统发送第一通知,第一通知包括第一上下文的标识以及第二上下文的标识。
发送模块504,还可以用于根据第一通知,向第一操作系统发送第二通知;第二通知用于指示第一应用程序执行第一线程,第二通知包括第一上下文的标识。
发送模块504,还可以用于向第一应用程序发送第二通知。
获取模块501,还可以用于序根据第一上下文的标识,获取第一上下文。
执行模块503,还可以用于根据第一上下文执行第一线程。
在另一种可能的实现方式中,上述多线程处理装置还可以包括创建模块505和运行模块506。
发送模块504,可以用于向第二操作系统发送第一通知,第一通知包括第一上下文的标识以及第二上下文的标识。
创建模块505,可以用于根据第一通知创建工作队列,工作队列用于指示第二操作系统向第一操作系统发送第三通知。
运行模块506,可以用于运行工作队列。
发送模块504,还可以用于向第一操作系统发送第三通知;第三通知用于指示第一应用程序执行第二线程,第三通知包括第二上下文的标识。
发送模块504,还可以用于向第一应用程序发送第三通知。
获取模块501,还可以用于根据第二上下文的标识,获取第二上下文。
执行模块503,还可以用于根据第二上下文执行第二线程。
在另一种可能的实现方式中,第二操作系统上运行有与第一应用程序对应的第二应用程序。
上述多线程处理装置还可以包括接收模块507。
接收模块507,可以用于接收用户的操作,操作用于触发电子设备实现第一应用程序的功能。
获取模块501,用于获取第一任务。
发送模块504,可以用于向第二操作系统发送第一任务。
接收模块507,还可以用于接收第一任务。
发送模块504,可以用于在第一任务由第一操作系统执行的情况下,通过第一操作系统向第一应用程序发送第一任务。
接收模块507,还可以用于接收第一任务。
在另一种可能的实现方式中,发送模块504,还可以用于向第一操作系统发送第四通知,第四通知用于指示所述第一操作系统获取第一上下文。
获取模块501,还可以用于根据第四通知,从电子设备的第一存储区域获取第一任务的第一上下文。
在另一种可能的实现方式中,获取模块501,可以用于复制第一上下文,得到第二上下文。
在另一种可能的实现方式中,执行模块503,可以用于根据第一上下文执行第一线程。
获取模块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中任一项所述的方法。
CN202210281606.1A 2022-03-22 2022-03-22 一种多线程处理方法及电子设备 Active CN114372261B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210281606.1A CN114372261B (zh) 2022-03-22 2022-03-22 一种多线程处理方法及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210281606.1A CN114372261B (zh) 2022-03-22 2022-03-22 一种多线程处理方法及电子设备

Publications (2)

Publication Number Publication Date
CN114372261A CN114372261A (zh) 2022-04-19
CN114372261B true CN114372261B (zh) 2022-07-22

Family

ID=81145506

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210281606.1A Active CN114372261B (zh) 2022-03-22 2022-03-22 一种多线程处理方法及电子设备

Country Status (1)

Country Link
CN (1) CN114372261B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109960582A (zh) * 2018-06-19 2019-07-02 华为技术有限公司 在tee侧实现多核并行的方法、装置及系统
US10884830B1 (en) * 2019-07-16 2021-01-05 Advanced New Technologies Co., Ltd. Method and apparatus for multithreaded data transmission in a tee system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190140846A1 (en) * 2017-11-03 2019-05-09 Microsoft Technology Licensing, Llc Provisioning trusted execution environment(s) based on chain of trust including platform
GB2579682B (en) * 2019-03-25 2021-03-24 Trustonic Ltd Trusted execution environment migration method
GB2586640B (en) * 2019-08-30 2021-12-08 Trustonic Ltd Trusted execution environment scheduling method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109960582A (zh) * 2018-06-19 2019-07-02 华为技术有限公司 在tee侧实现多核并行的方法、装置及系统
US10884830B1 (en) * 2019-07-16 2021-01-05 Advanced New Technologies Co., Ltd. Method and apparatus for multithreaded data transmission in a tee system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于TrustZone的可信执行环境构建技术研究;范冠男等;《信息网络安全》;20160310(第03期);全文 *

Also Published As

Publication number Publication date
CN114372261A (zh) 2022-04-19

Similar Documents

Publication Publication Date Title
EP4002108B1 (en) Application start method and electronic device
CN113596810B (zh) 基于双卡的网络制式切换方法及终端设备
WO2021023032A1 (zh) 设备解锁方法、系统和相关设备
WO2021017901A1 (zh) 一种屏幕显示方法及电子设备
WO2020000448A1 (zh) 一种柔性屏幕的显示方法及终端
CN111835530B (zh) 群组加入方法及装置
CN111859418B (zh) 原子能力调用方法及终端设备
CN111371849A (zh) 数据处理的方法和电子设备
WO2022247639A1 (zh) 保存密文的方法和装置
CN112930533A (zh) 一种电子设备的控制方法及电子设备
CN110647731A (zh) 一种显示方法及电子设备
CN112860445A (zh) 一种快应用与原生应用间数据共享的方法及终端
CN113242349B (zh) 一种数据传输方法、电子设备及存储介质
CN113973398A (zh) 无线网络连接方法、电子设备及芯片系统
CN114372260B (zh) 一种多线程处理方法及电子设备
CN111191227B (zh) 阻止恶意代码执行的方法和装置
CN114077502A (zh) 建立数据传输通道的方法、终端系统以及存储介质
CN114090102A (zh) 启动应用程序的方法、装置、电子设备和介质
CN114498028A (zh) 数据传输方法、装置、设备及存储介质
CN112085872A (zh) 基于nfc的解锁方法、相关装置及系统
CN114372261B (zh) 一种多线程处理方法及电子设备
CN114741256A (zh) 传感器监听方法、装置及终端设备
WO2023051094A1 (zh) 内存回收方法、装置、电子设备及可读存储介质
WO2022022466A1 (zh) 一种确定文件存储位置的方法、装置及终端
CN112306314B (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