Dynamic OS Priority Scheduling for Mixed-Mode Latency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing operating systems are unsuitable for running both real-time and general-purpose applications concurrently, leading to inefficiencies and latency issues, particularly for secondary operating systems, as they often prioritize primary real-time systems over others.
Innovation Solution
Implementing a method where multiple operating systems share resources using a common program that dynamically adjusts priorities based on task importance, allowing secondary operating systems to preempt primary systems when less critical tasks are being executed, and utilizing barrier routines to manage interrupts and resource allocation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a primary real-time operating system is given highest priority to ensure real-time performance, then real-time task reliability is improved, but secondary operating systems experience increased interrupt latency and reduced responsiveness
Solution Approach 1:
The patent implements dynamic priority adjustment where the primary operating system's priority level is not fixed but can be lowered when it enters idle states. The scheduler monitors the primary OS's task queue and temporarily reduces its priority to allow secondary OS interrupts to be processed promptly, then restores high priority when real-time tasks become ready. This dynamic adjustment resolves the contradiction by making the primary OS's priority adaptive rather than static.
Solution Approach 2:
The patent changes the priority parameter of the primary operating system based on its current state. When the primary OS has no ready real-time tasks, its priority parameter is lowered to allow secondary OS interrupts to proceed without excessive latency. When real-time tasks are ready, the priority parameter is raised to ensure timely execution. This parameter change strategy allows the system to optimize both real-time reliability and secondary system responsiveness at different moments.
2Reliability
If the primary operating system always executes before secondary operating systems, then real-time performance is guaranteed, but overall system productivity and resource utilization decrease
Solution Approach 1:
The patent implements periodic priority adjustment where the primary OS's high priority is temporarily suspended at intervals when no real-time tasks are ready, allowing secondary OS to execute. This periodic switching pattern ensures that real-time tasks receive prompt attention when needed while secondary OS makes periodic progress, improving overall system productivity without compromising real-time guarantees.
Solution Approach 2:
The patent applies partial action by allowing the primary OS to yield its highest priority status partially - only when no real-time tasks are ready. The primary OS maintains its ability to preempt immediately when real-time tasks arise, while permitting secondary OS execution during idle periods. This partial yielding of priority improves resource utilization without fully sacrificing real-time performance guarantees.
3Ease of operation
If secondary operating systems are allowed to preempt primary operating system tasks, then responsiveness to secondary system interrupts is improved, but real-time task execution reliability may be compromised
Solution Approach 1:
The patent introduces a scheduler as an intermediary layer between the primary and secondary operating systems. The scheduler monitors the primary OS's task queue and acts as a gatekeeper, allowing secondary OS interrupts to proceed only when the primary OS has no ready real-time tasks. This intermediary mechanism ensures that secondary system responsiveness is improved without directly compromising primary real-time task execution reliability.
Solution Approach 2:
The patent implements feedback control where the scheduler continuously monitors the primary OS's task queue state and adjusts interrupt handling behavior accordingly. When real-time tasks are present in the queue, the scheduler prevents secondary OS preemption and maintains high priority for the primary OS. When the queue is empty, the scheduler allows secondary OS execution. This feedback mechanism ensures real-time reliability is maintained while improving secondary system responsiveness.
Data Source
Figure 1~2
Figure 3~4
Figure 5~6
AI summary
The invention relates to a method of enabling multiple operating systems to run concurrently on the same computer, the method comprising: scheduling a plurality of tasks for execution by at least first and second operating systems, wherein each task has one of a plurality of priorities; setting the priority of each operating system in accordance with the priority of the next task scheduled for execution by the respective operating system; and providing a common program arranged to compare the priorities of all operating systems and to pass control to the operating system having the highest priority. Accordingly, the invention resides in the idea that different operating systems can be run more efficiently on a single CPU by changing the priority of each operating system over time. In other words, each operating system has a flexible priority.