Preemptive Scheduling for In-Enclave Threads
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional secure enclaves lack support for preemptive scheduling, which is essential for avoiding thread starvation and improving program responsiveness, despite their ability to provide secure and confidential data manipulation within trusted computation environments.
Innovation Solution
The implementation of preemptive scheduling enclaves that include a scheduler capable of rescheduling in-enclave threads, leveraging default enclave thread actions to initiate preemptive scheduling through a preemption manager, allowing for seamless handling of hardware interrupts and resourceful allocation of processor time without requiring modifications to the operating system or additional hardware.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional secure enclaves are used without preemptive scheduling, then security and confidentiality of data manipulation are maintained, but thread starvation occurs and program responsiveness deteriorates
Solution Approach 1:
The patent segments the enclave execution model into two distinct modes: secure enclave execution for maintaining confidentiality and a preemptive scheduling layer for improving responsiveness. The scheduler is divided into an enclave scheduler (executing within the enclave) and an exclave scheduler (executing outside the enclave), allowing different scheduling strategies to be applied in different contexts while preserving security boundaries.
Solution Approach 2:
The patent introduces an intermediary scheduling layer that mediates between the secure enclave environment and the external operating system. This intermediary scheduler monitors enclave thread execution and can trigger context switches without compromising the enclave's security model, thereby improving program responsiveness while maintaining security guarantees.
2Productivity
If preemptive scheduling is implemented in secure enclaves, then thread starvation is avoided and program responsiveness improves, but enclave complexity increases
Solution Approach 1:
The patent merges the preemptive scheduling functionality with the existing enclave thread management infrastructure. The scheduler utilizes existing enclave data structures and execution mechanisms, combining security enforcement and thread scheduling into a unified framework rather than adding separate complex systems.
Solution Approach 2:
The enclave scheduler is designed to perform multiple functions: it manages thread scheduling, handles context switches, enforces security policies, and coordinates with the exclave scheduler. This multi-functionality reduces overall system complexity by consolidating responsibilities into a single versatile component.
3Productivity
If preemptive scheduling is implemented in secure enclaves, then logical processor utilization improves, but requirements for OS modifications or additional hardware increase
Solution Approach 1:
The patent implements a self-service scheduling mechanism where the enclave scheduler autonomously manages thread scheduling within the enclave without requiring external intervention. The scheduler can independently make scheduling decisions, trigger context switches, and manage thread states, eliminating the need for operating system modifications or additional hardware support.
Solution Approach 2:
The patent prepares scheduling data structures and thread states in advance within the enclave before context switches are needed. Thread information, scheduling priorities, and execution contexts are pre-configured and maintained in enclave-managed data structures, allowing rapid context switches without requiring external system modifications.
Data Source
AI summary
Preemptive scheduling enclaves as disclosed herein support both cooperative and preemptive scheduling of in-enclave (IE) thread execution. These preemptive scheduling enclaves may include a scheduler configured to be executed as part of normal hardware interrupt processing by enclave threads. The scheduler identifies an IE thread to be scheduled and modifies enclave data structures so that when the enclave thread resumes processing after a hardware interrupt, the identified IE thread is executed, rather than the interrupted IE thread.


