Microkernel Scheduling Executive for Multi-Processor Scalability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing micro-kernel operating systems face challenges in scalability, latency, and complexity, particularly in multi-processor systems, which affect their ability to handle interrupts and scheduling efficiently, leading to potential vulnerabilities and performance issues.

Innovation Solution

The separation of the scheduling executive from the micro-kernel into its own entity allows for preemptive scheduling and thread management, enabling both scalability and low latency on multi-processor systems, while also enhancing security through simplified code paths and improved thread scheduling.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If the scheduling executive is integrated into the micro-kernel, then the system structure is simpler, but scalability and latency performance deteriorate

Engineering Contradiction:
Improvesystem structureVSAvoidscalability and latency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The scheduling executive is segmented from the micro-kernel into a separate, independent entity. This segmentation allows the scheduling function to operate autonomously with its own ready queues for each processor, enabling scalable thread management across multiple processors without increasing micro-kernel complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The scheduling executive is extracted from the micro-kernel codebase and implemented as a separate executable module. This extraction removes scheduling logic from the micro-kernel, allowing the micro-kernel to remain simple while the scheduling executive handles thread management and processor coordination independently.

Inventive Principle:
Principle #2Taking out (Extraction)

2Adaptability or versatility

If preemptive scheduling is implemented, then thread management flexibility improves, but system complexity increases

Engineering Contradiction:
Improvethread management flexibilityVSAvoidscheduling implementation
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The preemptive scheduling implementation is segmented into the separate scheduling executive, which manages thread priorities and processor assignment independently. Each processor has its own ready queue managed by the scheduling executive, allowing preemptive scheduling without embedding complex logic in the micro-kernel.

Inventive Principle:
Principle #1Segmentation

3Productivity

If a separate scheduling executive is introduced, then scalability and latency improve, but device complexity increases

Engineering Contradiction:
Improvescalability and latencyVSAvoidsystem architecture
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system is segmented into distinct functional components: the simple micro-kernel and the separate scheduling executive. The scheduling executive maintains its own data structures including per-processor ready queues, enabling scalable thread management while keeping the micro-kernel architecture clean and simple.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The scheduling executive is designed as a self-contained entity that manages its own scheduling operations independently of the micro-kernel. It maintains its own ready queues, thread lists, and scheduling logic, reducing the burden on the micro-kernel and enabling easier implementation and maintenance.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS20250004830A1Scheduling of threads for clusters of processors
Publication Date: 2025.01.02 BLACKBERRY LTD
  • US20250004830A1 patent drawing
  • US20250004830A1 patent drawing
  • US20250004830A1 patent drawing

AI summary

In some examples, a system includes a plurality of processors and a kernel scheduler. The kernel scheduler associates each respective processor of the plurality of processors with a collection of clusters, wherein each cluster of the collection of clusters represents a respective different subset of the plurality of processors, and the respective processor is a member of each cluster of the collection of clusters. For each corresponding cluster of the collection of clusters, the kernel scheduler maintains a data structure associated with a ready queue of the kernel scheduler, the data structure comprising elements representing thread priorities, wherein an element of the data structure is associated with an ordered list of threads in the ready queue.