Adaptive Partitioning Operating System Scheduler
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional fair-share scheduling systems in operating systems face challenges where high-priority workloads experience low response times due to high CPU usage by low-priority processes, leading to resource scarcity for critical processes, and untrusted applications can monopolize CPU resources, causing infinite loops and starving legitimate processes.
Innovation Solution
An adaptive partitioning system that dynamically allocates CPU time budgets to threads or groups, designates critical threads for immediate execution, and implements microbilling to manage CPU usage, ensuring critical processes receive adequate resources and preventing priority inversion.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If fair-share scheduling distributes CPU cycles equally among users, then each user receives equal CPU budget, but critical processes cannot receive adequate resources when needed
Solution Approach 1:
The patent segments the CPU scheduling system into multiple priority levels (critical priority and normal priority queues), allowing different resource allocation strategies for different process types. Critical processes are isolated in a separate queue that can be serviced independently, ensuring they receive adequate resources even when normal processes are consuming CPU budget.
Solution Approach 2:
The patent applies different scheduling qualities to different process segments: critical processes receive guaranteed resource allocation with higher priority, while normal processes receive fair-share allocation. This local differentiation allows the system to optimize for both reliability (critical processes) and productivity (overall CPU utilization) simultaneously.
2Productivity
If low priority processes consume large quantities of CPU budget, then more processes can be executed, but high priority workload response time increases
Solution Approach 1:
The patent divides the process queue into two distinct segments: a critical priority queue for time-sensitive processes and a normal priority queue for standard fair-share processes. This segmentation allows the scheduler to service critical processes first, ensuring low response times, while still allowing normal processes to consume CPU budget during periods when critical processes are not ready to run.
Solution Approach 2:
The patent ensures continuous useful action by allowing normal processes to execute during CPU cycles when critical processes are blocked or not ready. This maximizes CPU utilization without compromising critical process response times, as the scheduler continuously switches between queues based on readiness and priority.
3Adaptability or versatility
If untrusted applications are allowed to access CPU resources, then system versatility is improved, but system stability deteriorates due to infinite loops
Solution Approach 1:
The patent introduces an intermediary mechanism (the fair-share scheduler with CPU budget allocation) that mediates between untrusted applications and the CPU resource. The scheduler acts as a gatekeeper, allocating CPU budget to applications based on their priority and behavior, preventing any single application from monopolizing resources and causing system-wide instability while still allowing diverse applications to execute.
Solution Approach 2:
The patent dynamically changes the parameter of CPU budget allocation based on application behavior and priority. By adjusting the amount of CPU budget allocated to different applications and processes, the system can accommodate untrusted applications while preventing them from consuming excessive resources that would destabilize the system.
Data Source
AI summary
An adaptive partition scheduler is a priority-based scheduler that also provides execution time guarantees (fair-share). Execution time guarantees apply to threads or groups of threads when the system is overloaded. When the system is not overloaded, threads are scheduled based strictly on priority, maintaining strict real-time behavior. When the system is overloaded, threads are scheduled based priority of threads that are in a ready state and based on the available guaranteed processor time budget of the adaptive partition associated with each thread.


