Cyclic Task Scheduling with FIFO Runtime Requests for Virtual Machines
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing hypervisor systems are limited to one virtual machine per core and lack flexibility in dynamically allocating CPU time to meet demanding latency requirements, particularly in real-time and safety-critical systems.
Innovation Solution
A hypervisor system that allows multiple virtual machines per core, using a round-robin scheduler with a FIFO queue for managing extra runtime requests, enabling dynamic allocation of CPU time through a management software API, while maintaining temporal separation and reasoning about VM execution times.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a traditional hypervisor is used with one virtual machine per core, then temporal separation and scheduling simplicity are maintained, but flexibility in dynamically allocating CPU time and meeting demanding latency requirements is lost
Solution Approach 1:
The system segments the hypervisor functionality into a round-robin scheduler for basic time slicing and a separate FIFO queue mechanism for handling extra runtime requests. This segmentation allows the core scheduling to remain simple while adding flexibility through the queue-based extra runtime allocation without compromising temporal separation.
2Reliability
If a round-robin scheduler is used with fixed time slots, then temporal separation between VMs is maintained, but the ability to meet immediate latency demands is compromised
Solution Approach 1:
The system prepares a FIFO queue in advance that can hold extra runtime requests from VMs. When a VM needs additional CPU time to meet latency requirements, it can submit a request to this pre-prepared queue. The round-robin scheduler then processes these requests in FIFO order, allowing immediate latency demands to be met while maintaining overall temporal separation through the structured queue management.
3Productivity
If multiple virtual machines are allowed per core, then CPU utilization and flexibility are improved, but reasoning about real-time behavior becomes more difficult
Solution Approach 1:
The FIFO queue acts as an intermediary between multiple VMs competing for CPU time and the round-robin scheduler. By routing extra runtime requests through this queue, the system maintains a clear, ordered sequence of operations that simplifies reasoning about real-time behavior. The queue mediates the complexity of multiple VMs per core while preserving temporal separation guarantees through its FIFO processing discipline.
Data Source
Figure 1~2
AI summary
Method (10) for scheduling tasks to a cyclic schedule (11), comprising maintaining a request queue (12), a count, the count being initialized to a given limit, and an index (13) of a current time slot within the schedule (11), characterized in that, periodically, - if the request queue (12) contains a reference to an urgent task among the tasks (14, Y), that reference is removed from the request queue (12) and the urgent task is dispatched (15) and - if the request queue (12) is empty (14, N), the index (13) is advanced (16) to the next time slot within the schedule (11), i. if the next time slot is statically assigned to a task among the tasks (17, Y), that task is dispatched (18), and ii. if the next time slot is unassigned (17, N) and the count is below the limit (19, N), the count is incremented and the index (13) is further advanced (20) to the next but one time slot.