CN112527508B - 基于sgx的云端飞地资源管理方法、装置、计算机设备和介质 - Google Patents
基于sgx的云端飞地资源管理方法、装置、计算机设备和介质 Download PDFInfo
- Publication number
- CN112527508B CN112527508B CN202011518608.5A CN202011518608A CN112527508B CN 112527508 B CN112527508 B CN 112527508B CN 202011518608 A CN202011518608 A CN 202011518608A CN 112527508 B CN112527508 B CN 112527508B
- Authority
- CN
- China
- Prior art keywords
- user
- thread
- enclave
- request
- user request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种基于SGX的云端飞地资源管理方法、装置、计算机设备和存储介质。本申请能够按需分配飞地资源,避免了动态创建和销毁的成本,节省了CPU的开销。该方法包括:创建监视器控制线程,通过该监视器控制线程接收用户请求,并判断上述用户请求是否合法;若该用户请求合法,则通过上述监视器控制线程从线程池随机选择空闲线程,通过该空闲线程调用预设***调用函数在飞地中处理上述用户请求;在上述用户请求被处理完成后,结束上述空闲线程与预设***调用函数的调用关系。
Description
技术领域
本申请涉及计算机安全技术领域,特别是涉及一种基于SGX的云端飞地资源管理方法、装置、计算机设备和存储介质。
背景技术
随着云计算技术的广泛运用,云端数据的安全性开始得到人们的重视,在云上部署的用户数据或程序有泄露隐私的风险,因为云端的监管者,例如***管理员,可以利用更高的特权窥探用户数据。基于可信执行环境(TEE,Trusted Execution Environment)技术,英特尔提出了软件保护扩展(SGX,Software Guard Extensions)技术,SGX是一种切实可行的用户隐私保护措施,它采用硬件辅助的enclave(飞地,也称为安全区)封装敏感数据以及关键程序代码,防止其被泄露。
由于对enclave的创建和销毁操作使得CPU开销较大,进一步降低了应用程序的性能。
发明内容
基于此,有必要针对上述技术问题,提供一种基于SGX的云端飞地资源管理方法、装置、计算机设备和存储介质。
一种基于SGX的云端飞地资源管理方法,所述方法包括:
创建监视器控制线程;
通过所述监视器控制线程接收用户请求,并判断所述用户请求是否合法;
若所述用户请求合法,则通过所述监视器控制线程从线程池随机选择空闲线程,通过所述空闲线程调用预设***调用函数在飞地中处理所述用户请求;
所述用户请求被处理完成后,解除所述空闲线程与所述预设***调用函数的调用关系。
在其中一个实施例中,所述通过所述监视器控制线程接收用户请求并判断所述用户请求是否合法之后,所述方法还包括:
若所述用户请求不合法,则按照先进先出原则将所述用户请求放入预先创建的请求队列。
在其中一个实施例中,所述解除所述空闲进程与所述预设***调用函数的调用关系之后,所述方法还包括:
通过所述监视器控制线程检测所述请求队列中的挂起请求,并按与所述先进先出原则对应的处理次序处理所述挂起请求。
在其中一个实施例中,所述方法还包括:
在所述请求队列中的挂起请求数量达到预设挂起请求数量时,设置所述请求队列的状态为非活动状态;其中,处于所述非活动状态的请求队列拒绝所述用户请求,并返回错误值至与所述用户请求对应的用户设备。
在其中一个实施例中,所述创建监视器控制线程之后,所述方法还包括:
分配预设数量的用户线程,以及与所述用户线程一一对应的飞地;
将所述预设数量的用户线程中的部分用户线程以及相应的所述飞地设置为挂起状态;
获取请求队列中调用同一预设***调用函数的用户请求的数目;
若所述调用同一预设***调用函数的用户请求的数目大于预设数目阈值,则唤醒并处理处于所述挂起状态的用户线程以及相应的所述飞地。
在其中一个实施例中,所述方法还包括:
若所述预设***调用函数被其他用户线程调用,则所述空闲进程进入休眠状态直到所述预设***调用函数被释放。
在其中一个实施例中,所述空闲线程处于第一资源池;所述飞地处于与所述第一资源池不同的第二资源池。
一种基于SGX的云端飞地资源管理装置,所述装置包括:
控制线程创建模块,用于创建监视器控制线程;
用户请求接收模块,用于通过所述监视器控制线程接收用户请求,并判断所述用户请求是否合法;
用户请求处理模块,用于若所述用户请求合法,则通过所述监视器控制线程从线程池随机选择空闲线程,通过所述空闲线程调用预设***调用函数在飞地中处理所述用户请求;
调用关系解除模块,用于所述用户请求处理完成后,解除所述空闲线程与所述预设***调用函数的调用关系。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一种基于SGX的云端飞地资源管理方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种基于SGX的云端飞地资源管理方法的步骤。
上述基于SGX的云端飞地资源管理方法、装置、计算机设备和存储介质,首先创建监视器控制线程,通过该监视器控制线程接收用户请求,并判断上述用户请求是否合法;若该用户请求合法,则通过上述监视器控制线程从线程池随机选择空闲线程,通过该空闲线程调用预设***调用函数在飞地中处理上述用户请求;以上步骤完成了飞地资源的调用工作,在上述用户请求被处理完成后,结束上述空闲线程与预设***调用函数的调用关系,从而释放出飞地资源,以便其他用户请求可使用该飞地资源。该方法使得CPU不必频繁地创建和销毁飞地资源,而是使用预先分配的线程池为用户请求按需分配,也就是按需分配飞地资源,避免了动态创建和销毁的成本,节省了CPU的开销。
附图说明
图1为一个实施例中基于SGX的云端飞地资源管理方法的应用环境图;
图2为一个实施例中基于SGX的云端飞地资源管理方法的流程示意图;
图3为另一个实施例中基于SGX的云端飞地资源管理方法的流程示意图;
图4为一个实施例中基于SGX的云端飞地资源管理装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的基于SGX的云端飞地资源管理方法,可以应用于如图1所示的应用环境中。其中,终端101通过网络与服务器102进行通信。其中,终端101可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器102为云端服务器,可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
飞地(enclave)是在将云端服务器102上的内存资源中开辟出的一组专用物理内存,EPC(enclave page cache)是所有飞地资源的集合,总大小在64MB至128MB之间。每个EPC页面提供的元数据由一个称为EPCM(enclave page cache map)的EPC页维护,负责跟踪EPC的内容。EPCM还包括一系列条目(entry),EPC中的每个页面都有一个条目。此外,另一个重要的数据结构,称为SECS(SGX enclave control struct),用于描述特定的飞地(enclave)可以访问受保护的地址,每个SECS使用EPC的一个内存页(4kB),同时严格地与创建的enclave关联。此外,SGX使用TCS(thread control struct)来支持在单个enclave内的多线程执行。一个enclave中的N个TCSs意味着N个线程可以同时进入enclave,但是每个TCS需要使用enclave的一个专用页面(4kB)。
在一个实施例中,如图2所示,提供了一种基于SGX的云端飞地资源管理方法,以该方法应用于图1中的服务器102为例进行说明,包括以下步骤:
步骤S201,创建监视器控制线程。
其中,监视器,用于监视线程池和飞地(enclave)池的运行状态。监视器是管理的控制面板,它包含关于这连个资源池的所有元数据。监视器中有一个enclave,因此SGX技术可以保护与资源管理相关的操作。通过这种方式,一些关键信息,如通信网关的地址在enclave内部进行加密。此外监视器还控制线程和飞地(enclave)的创建和销毁。
具体地,监视器首先创建控制线程,称为监视器控制线程Tc。
步骤S202,通过监视器控制线程接收用户请求,并判断上述用户请求是否合法。
具体地,监视器控制线程Tc接收用户请求Ru,并解析用户请求Ru,判断用户请求Ru是否合法。
步骤S203,若用户请求合法,则通过监视器控制线程从线程池随机选择空闲线程,通过空闲线程调用预设***调用函数处理用户请求;空闲线程位于飞地中;
具体地,监视器控制线程Tc判断用户请求Ru合法后,监视器控制线程Tc同时检查线程池和enclave池,从线程池中随机选择一个空闲线程Tu,空闲线程Tu开始处理用户请求Ru,调用一个或多个***调用函数ECALL,记为{Ec},其中空闲线程Tu在飞地中处理用户请求Ru。
步骤S204,用户请求被处理完成后,解除空闲线程与预设***调用函数的调用关系。
具体地,用户请求Ru被处理完成后,***调用函数例如ECALL与空闲线程Tu解绑。
上述实施例,先创建监视器控制线程,通过该监视器控制线程接收用户请求,并判断上述用户请求是否合法;若该用户请求合法,则通过上述监视器控制线程从线程池随机选择空闲线程,通过该空闲线程调用预设***调用函数在飞地中处理上述用户请求;以上步骤完成了飞地资源的调用工作,在上述用户请求被处理完成后,结束上述空闲线程与预设***调用函数的调用关系,从而释放出飞地资源,以便其他用户请求可使用该飞地资源。传统的飞地创建和销毁的方法是,通过控制线程接收用户请求,然后创建关联的用户线程响应用户发请求,用户线程只使用一个ECALL函数来处理用户请求,在每次调用ECALL之前,控制线程和用户线程都必须先创建enclave,然后在ECALL完成后销毁enclave,因此传统的方法中需要不断地创建和销毁飞地,而本申请中的方法使得CPU不必频繁地创建和销毁飞地资源,而是使用预先分配的线程池为用户请求按需分配用户线程以及相应的飞地资源,也就是按需分配飞地资源,避免了动态创建和销毁的成本,节省了CPU的开销。
在一实施例中,上述步骤S202之后还包括:若上述用户请求不合法,则按照先进先出原则将上述用户请求放入预先创建的请求队列。
其中,请求队列用于在enclave池或线程池耗尽时分配用户请求。请求队列由监视器直接控制。
具体地,通过监视器创建请求队列,若上述用户请求Ru不合法,则按照FIFO原则将用户请求Ru放入请求队列。
上述实施例,将不合法的用户请求放入请求队列,提高了CPU的资源处理效率。
在一实施例中,上述步骤S204之后,还包括:通过监视器控制线程检测请求队列中的挂起请求,并按与上述先进先出原则对应的处理次序处理挂起请求。
具体地,在上述***调用函数例如ECALL与空闲线程Tu解绑完成之后,监视器控制线程Tc会检查上述请求队列中是否有挂起的用户请求等待被处理,若有,则按顺序处理挂起的用户请求。
上述实施例,通过为用户请求分配空闲线程的方式利用飞地资源,避免了飞地资源频繁被销毁和创建,提高了CPU的使用效率。
在一实施例中,上述方法还包括:在请求队列中的挂起请求达到预设挂起请求数量时,设置请求队列的状态为非活动状态;其中,处于上述非活动状态的请求队列拒绝用户请求,并返回错误值至与所述用户请求对应的用户设备。
具体地,由于请求队列中的资源有限,当请求队列中的挂起请求达到一定数量时,可以将请求队列设置为非活动状态(inactive),如果此时请求队列收到用户请求,则拒绝接受给用户请求,并向用户返回一个错误值。
上述实施例,通过请求队列拒绝用户请求同时向用户设备返回错误值,消除了等待用户请求的阶段,从而提高了***负载能力。
在一实施例中,如图3所示,上述步骤S201之后还包括:
步骤S301,分配预设数量的用户线程,以及与上述用户线程一一对应的飞地;
具体地,监视器初始化后,创建监视器控制线程后,通过监视器控制线程初始化线程池和飞地(enclave)池大小;例如,分配δ个用户线程和相应的飞地(enclave),其中用户线程的数量与飞地的个数相同。
步骤S302,将上述预设数量的用户线程中的部分用户线程以及相应的飞地设置为挂起状态;
步骤S303,获取当前请求队列中调用同一预设***调用函数的用户请求的数目;
具体地,获取当前请求队列中调用同一ECALLs的用户请求数目K。
步骤S304,若上述调用同一预设***调用函数的用户请求的数目大于预设数目阈值,则唤醒并处理处于挂起状态的用户线程以及相应的飞地。
具体地,例如,当K大于阈值γ,则唤醒另一半挂起的用户线程和相应的飞地来处理。
上述实施例,根据请求队列中等待的用户请求的数量,动态监视用户线程和相应的非地段,具体来说,在开始时,通过监视器控制线程创建用户线程和飞地,然后挂起其中的一般,当请求流突发时,请求队列可能在短时间内被填满。然后监视器扫描请求队列并提取将在请求队列中等待的用户请求内部调用的所有ECALL。如果有多个用户请求调用同一个ECALL,监视器将立即分配挂起的飞地和用户线程来处理它们,这种动态分配的方法提高了***处理用户请求的效率。
在一实施例中,上述方法还包括:若上述预设***调用函数被其他用户线程调用,则空闲进程进入休眠状态直到上述预设***调用函数被释放。
具体地,当监视器控制线程从线程池中随机选择一个空闲线程Tu用于准备调用***调用函数处理用户请求时,如果***调用函数ECALL或其他***调用函数集合{Ec}被其他用户线程)占用,则上述空闲线程Tu进入休眠直到{Ec}被释放。
上述实施例,通过将***调用函数分配给用户线程处理用户请求,当***调用函数被占用时,将空闲线程设置为休眠状态,这种方法避免频繁地创建和销毁飞地(enclave),从而降低***开销。
在一实施例中,空闲线程处于第一资源池;上述飞地处于与上述第一资源池不同的第二资源池。
具体地,第一资源池为线程池,线程池包括一系列预先分配的挂起线程结构。如果当前挂起的线程都被使用,它还控制新线程的创建和销毁。线程与用户请求相关联。如果当前工作完成,线程池可以将另一个用户请求分配给这个线程。
第二资源池为飞地池,与线程池类似,它包含预先分配的enclave,同时控制新enclave的创建和销毁。预先分配的enclave构建SGXPool的固定区域。固定区域内的所有ECALLs都是预先确定的。本发明只支持线程和enclave之间的一对一映射模型。如果多个线程希望调用同一个ECALL,则需要两个具有冗余ECALL的不同enclave。
上述实施例,通过使用一个预先分配的飞地吃来按需分配/撤销飞地资源,避免了动态创建和销毁的成本,利用另一个资源池(线程池)来约束线程开销,例如线程初始化、调度和销毁,保证了资源的有效调度和分配。
应该理解的是,虽然图2至3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2至3中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图4所示,提供了一种基于SGX的云端飞地资源管理装置400,包括:控制线程创建模块401、用户请求接收模块402、用户请求处理模块403和调用关系解除模块404,其中:
控制线程创建模块,用于创建监视器控制线程;
用户请求接收模块,用于通过所述监视器控制线程接收用户请求,并判断所述用户请求是否合法;
用户请求处理模块,用于若所述用户请求合法,则通过所述监视器控制线程从线程池随机选择空闲线程,通过所述空闲线程调用预设***调用函数在飞地中处理所述用户请求;
调用关系解除模块,用于所述用户请求处理完成后,解除所述空闲线程与所述预设***调用函数的调用关系。
在一实施例中,还包括请求队列处理单元,用于创建请求队列;若所述用户请求不合法,则按照先进先出原则将所述用户请求放入所述请求队列。
在一实施例中,上述请求队列处理单元,还用于通过所述监视器控制线程检测所述请求队列中的挂起请求,并按预设次序处理所述挂起请求。
在一实施例中,上述请求队列处理单元,还用于在所述请求队列中的挂起请求数量达到预设数量时,设置所述请求队列的状态为非活动状态;在所述请求队列的状态为非活动状态后,拒绝接受所述用户请求,并返回错误值至与所述用户请求对应的用户设备。
在一实施例中,上述控制线程创建模块401,进一步用于,分配预设数量的用户线程,以及与所述用户线程一一对应的飞地;将所述预设数量的用户线程中的一半以及相应的所述飞地设置为挂起状态;上述用户请求接收模块402,进一步用于,获取当前所述请求队列中调用同一预设***调用函数的用户请求的数目;上述用户请求处理模块403,进一步用于若所述调用同一预设***调用函数的用户请求的数目大于预设的阈值,则唤醒处于所述挂起状态的用户线程以及相应的所述飞地,并处理所述用户请求。
在一实施例中,上述用户请求处理模块403,还用于若所述预设***调用函数被其他用户线程调用,则所述空闲进程进入休眠直到所述预设***调用函数被释放。
在一实施例中,上述空闲线程位于第一资源池;上述飞地位于第二资源池。
关于基于SGX的云端飞地资源管理装置的具体限定可以参见上文中对于基于SGX的云端飞地资源管理方法的限定,在此不再赘述。上述基于SGX的云端飞地资源管理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过***总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储用户请求数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于SGX的云端飞地资源管理方法。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
创建监视器控制线程;通过所述监视器控制线程接收用户请求,并判断所述用户请求是否合法;若所述用户请求合法,则通过所述监视器控制线程从线程池随机选择空闲线程,通过所述空闲线程调用预设***调用函数在飞地中处理所述用户请求;所述用户请求被处理完成后,解除所述空闲线程与所述预设***调用函数的调用关系。其中,所述空闲线程位于第一资源池;所述飞地位于第二资源池。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
创建请求队列;若所述用户请求不合法,则按照先进先出原则将所述用户请求放入所述请求队列。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
所述解除所述空闲进程与所述预设***调用函数的调用关系之后,还包括:通过所述监视器控制线程检测所述请求队列中的挂起请求,并按预设次序处理所述挂起请求。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
在所述请求队列中的挂起请求数量达到预设数量时,设置所述请求队列的状态为非活动状态;在所述请求队列的状态为非活动状态后,拒绝接受所述用户请求,并返回错误值至与所述用户请求对应的用户设备。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
分配预设数量的用户线程,以及与所述用户线程一一对应的飞地;将所述预设数量的用户线程中的一半以及相应的所述飞地设置为挂起状态;获取当前所述请求队列中调用同一预设***调用函数的用户请求的数目;若所述调用同一预设***调用函数的用户请求的数目大于预设的阈值,则唤醒处于所述挂起状态的用户线程以及相应的所述飞地,并处理所述用户请求。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
若所述预设***调用函数被其他用户线程调用,则所述空闲进程进入休眠直到所述预设***调用函数被释放。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
创建监视器控制线程;通过所述监视器控制线程接收用户请求,并判断所述用户请求是否合法;若所述用户请求合法,则通过所述监视器控制线程从线程池随机选择空闲线程,通过所述空闲线程调用预设***调用函数在飞地中处理所述用户请求;所述用户请求被处理完成后,解除所述空闲线程与所述预设***调用函数的调用关系。其中,所述空闲线程位于第一资源池;所述飞地位于第二资源池。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
创建请求队列;若所述用户请求不合法,则按照先进先出原则将所述用户请求放入所述请求队列。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述解除所述空闲进程与所述预设***调用函数的调用关系之后,还包括:通过所述监视器控制线程检测所述请求队列中的挂起请求,并按预设次序处理所述挂起请求。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
在所述请求队列中的挂起请求数量达到预设数量时,设置所述请求队列的状态为非活动状态;在所述请求队列的状态为非活动状态后,拒绝接受所述用户请求,并返回错误值至与所述用户请求对应的用户设备。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
分配预设数量的用户线程,以及与所述用户线程一一对应的飞地;将所述预设数量的用户线程中的一半以及相应的所述飞地设置为挂起状态;获取当前所述请求队列中调用同一预设***调用函数的用户请求的数目;若所述调用同一预设***调用函数的用户请求的数目大于预设的阈值,则唤醒处于所述挂起状态的用户线程以及相应的所述飞地,并处理所述用户请求。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
若所述预设***调用函数被其他用户线程调用,则所述空闲进程进入休眠直到所述预设***调用函数被释放。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于SGX的云端飞地资源管理方法,其特征在于,所述方法包括:
创建监视器控制线程;
通过所述监视器控制线程接收用户请求,并判断所述用户请求是否合法;
若所述用户请求合法,则通过所述监视器控制线程从线程池随机选择空闲线程,通过所述空闲线程调用预设***调用函数在飞地中处理所述用户请求;
所述用户请求被处理完成后,解除所述空闲线程与所述预设***调用函数的调用关系;
所述创建监视器控制线程之后,所述方法还包括:
分配预设数量的用户线程,以及与所述用户线程一一对应的飞地;
将所述预设数量的用户线程中的部分用户线程以及相应的所述飞地设置为挂起状态;
获取请求队列中调用同一预设***调用函数的用户请求的数目;
若所述调用同一预设***调用函数的用户请求的数目大于预设数目阈值,则唤醒处于所述挂起状态的用户线程以及相应的所述飞地,并通过所述监视器控制线程分配所述挂起状态的用户线程以及相应的所述飞地,来处理所述调用同一预设***调用函数的用户请求。
2.根据权利要求1所述的方法,其特征在于,所述通过所述监视器控制线程接收用户请求并判断所述用户请求是否合法之后,所述方法还包括:
若所述用户请求不合法,则按照先进先出原则将所述用户请求放入预先创建的请求队列。
3.根据权利要求2所述的方法,其特征在于,
所述解除所述空闲线 程与所述预设***调用函数的调用关系之后,所述方法还包括:
通过所述监视器控制线程检测所述请求队列中的挂起请求,并按与所述先进先出原则对应的处理次序处理所述挂起请求。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在所述请求队列中的挂起请求数量达到预设挂起请求数量时,设置所述请求队列的状态为非活动状态;其中,处于所述非活动状态的请求队列拒绝所述用户请求,并返回错误值至与所述用户请求对应的用户设备。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述预设***调用函数被其他用户线程调用,则所述空闲线 程进入休眠状态直到所述预设***调用函数被释放。
6.根据权利要求1所述的方法,其特征在于,所述空闲线程处于第一资源池;所述飞地处于与所述第一资源池不同的第二资源池。
7.一种基于SGX的云端飞地资源管理装置,其特征在于,所述装置包括:
控制线程创建模块,用于创建监视器控制线程;
用户请求接收模块,用于通过所述监视器控制线程接收用户请求,并判断所述用户请求是否合法;
用户请求处理模块,用于若所述用户请求合法,则通过所述监视器控制线程从线程池随机选择空闲线程,通过所述空闲线程调用预设***调用函数在飞地中处理所述用户请求;
调用关系解除模块,用于所述用户请求处理完成后,解除所述空闲线程与所述预设***调用函数的调用关系;
所述基于SGX的云端飞地资源管理装置,还用于分配预设数量的用户线程,以及与所述用户线程一一对应的飞地;将所述预设数量的用户线程中的部分用户线程以及相应的所述飞地设置为挂起状态;获取请求队列中调用同一预设***调用函数的用户请求的数目;若所述调用同一预设***调用函数的用户请求的数目大于预设数目阈值,则唤醒处于所述挂起状态的用户线程以及相应的所述飞地,并通过所述监视器控制线程分配所述挂起状态的用户线程以及相应的所述飞地,来处理所述调用同一预设***调用函数的用户请求。
8.根据权利要求7所述的装置,其特征在于,所述基于SGX的云端飞地资源管理装置还包括请求队列处理单元,用于创建请求队列;若所述用户请求不合法,则按照先进先出原则将所述用户请求放入所述请求队列。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011518608.5A CN112527508B (zh) | 2020-12-21 | 2020-12-21 | 基于sgx的云端飞地资源管理方法、装置、计算机设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011518608.5A CN112527508B (zh) | 2020-12-21 | 2020-12-21 | 基于sgx的云端飞地资源管理方法、装置、计算机设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112527508A CN112527508A (zh) | 2021-03-19 |
CN112527508B true CN112527508B (zh) | 2022-12-09 |
Family
ID=75002035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011518608.5A Active CN112527508B (zh) | 2020-12-21 | 2020-12-21 | 基于sgx的云端飞地资源管理方法、装置、计算机设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112527508B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116627549B (zh) * | 2023-05-30 | 2024-03-26 | 云海链控股股份有限公司 | Sgx多线程下通用的函数调用方法、装置、设备及介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19955004A1 (de) * | 1998-12-01 | 2000-06-29 | Ibm | Ableitung und Ausführung von Workload-Manager-Enklaven aus Workflows |
US7712143B2 (en) * | 2006-09-27 | 2010-05-04 | Blue Ridge Networks, Inc. | Trusted enclave for a computer system |
US10678908B2 (en) * | 2013-09-27 | 2020-06-09 | Mcafee, Llc | Trusted execution of an executable object on a local device |
CN103747097B (zh) * | 2014-01-22 | 2016-08-24 | 电子科技大学 | 移动终端http请求聚合压缩的***及方法 |
US10776308B2 (en) * | 2017-06-30 | 2020-09-15 | Intel Corporation | Smart memory data store or load method and apparatus |
CN111858046B (zh) * | 2020-07-13 | 2024-05-24 | 海尔优家智能科技(北京)有限公司 | 服务请求的处理方法及装置、存储介质、电子装置 |
-
2020
- 2020-12-21 CN CN202011518608.5A patent/CN112527508B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112527508A (zh) | 2021-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6509895B2 (ja) | デバイス固有又はユーザー固有のリソース使用プロファイルに基づくリソース管理 | |
US20150254108A1 (en) | Dynamic resource management for multi-process applications | |
CN112099979B (zh) | 一种访问控制方法、装置、计算机设备和存储介质 | |
WO2019080429A1 (zh) | 电子装置、访问请求控制方法和计算机可读存储介质 | |
US20100205303A1 (en) | Virtual machine software license management | |
EP3786794B1 (en) | Trusted execution environment scheduling method | |
US9898217B2 (en) | Two stage memory allocation using a cache | |
US11010190B2 (en) | Methods, mediums, and systems for provisioning application services | |
US10929537B2 (en) | Systems and methods of protecting data from malware processes | |
EP3279795B1 (en) | Method and apparatus for deleting cloud host in cloud computing environment, server and storage medium | |
JP2010113488A (ja) | オペレーティングシステムおよび情報処理装置 | |
CN112527508B (zh) | 基于sgx的云端飞地资源管理方法、装置、计算机设备和介质 | |
CN111078367A (zh) | 一种请求处理方法、装置、电子设备和存储介质 | |
US7783849B2 (en) | Using trusted user space pages as kernel data pages | |
US10536394B2 (en) | Resource allocation | |
WO2016183906A1 (zh) | 一种存储空间分配方法及装置 | |
US9684525B2 (en) | Apparatus for configuring operating system and method therefor | |
KR102088006B1 (ko) | 리소스모니터 분석을 통한 컴퓨터 시스템의 에너지 절감 방법 | |
EP2642387B1 (en) | Method, memory management unit and computer system for managing memory of computer system | |
US9652608B2 (en) | System and method for securing inter-component communications in an operating system | |
US20190370054A1 (en) | Information Protection Method and Apparatus | |
CN110866264A (zh) | 一种多芯片多板卡协同运算方法、装置及设备 | |
US20230267196A1 (en) | Confidential Computing with Device Memory Isolation | |
WO2022204873A1 (zh) | 电子装置、***级芯片和物理核分配方法 | |
KR102333693B1 (ko) | 전자 장치의 다중 프로세서 시스템 운영 방법 및 장치 |
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 |