Deterministic Runtime Execution Environment for Real-Time Scheduling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional execution environments are not deterministic, leading to unpredictable delays and failures in real-time applications due to non-deterministic behavior, particularly in heap memory management and garbage collection processes.
Innovation Solution
A deterministic runtime execution environment is created, where applications and background tasks are executed in different time slots, with a scheduler managing the execution to prevent interference and ensure predictable behavior, using incremental garbage collection and ahead-of-time compilation to maintain deterministic memory management.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If conventional execution environments are used with automatic garbage collection, then memory management is automated and programs can run without explicit memory return, but the execution becomes non-deterministic with unpredictable delays
Solution Approach 1:
The execution environment is segmented into distinct time slots: application time slots and background task time slots. This segmentation isolates the non-deterministic garbage collection operations into background time slots, preventing them from interfering with application execution timing while maintaining automated memory management benefits.
Solution Approach 2:
The system performs preliminary actions by pre-scheduling background tasks including garbage collection during designated background time slots before they can interfere with application execution. This ensures memory management activities are prepared and executed in advance of critical application time slots.
2Reliability
If background tasks like garbage collection are executed continuously, then memory management is maintained, but they interfere with application execution and cause unpredictable delays
Solution Approach 1:
Background tasks including garbage collection are executed periodically during scheduled background time slots rather than continuously. This periodic execution maintains memory management functionality while ensuring application time slots remain free from interference, eliminating unpredictable delays.
Solution Approach 2:
The system dynamically allocates time slots between application execution and background tasks based on scheduling needs. Background tasks are executed incrementally in multiple non-adjacent time slots, allowing the system to adapt memory management intensity without compromising application timing requirements.
3Productivity
If heap memory is frequently allocated and returned dynamically, then memory utilization is optimized, but the non-deterministic timing of garbage collection causes execution schedule failures
Solution Approach 1:
The garbage collection function is extracted from the application execution path and placed into separate background time slots. This extraction removes the source of non-deterministic delays from critical application timing while preserving the automated memory reclamation mechanism that optimizes heap utilization.
Data Source
AI summary
A method includes executing one or more applications in a deterministic execution environment and executing a plurality of background tasks in the deterministic execution environment. The one or more applications and the background tasks are executed in different time slots. At least one of the background tasks cannot be completed within a single time slot. The at least one of the background task is executed incrementally in multiple non-adjacent time slots so as to prevent the at least one background task from interfering with the execution of the one or more applications.


