Micro Kernel Scheduling via Direct Switching to Reduce Overhead

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional micro kernel scheduling methods in Linux systems have high switching costs and poor real-time performance due to the one-to-one correspondence between micro kernels and threads, limiting efficient software development and debugging in IoT applications.

Innovation Solution

A method and apparatus for micro kernel scheduling that allows direct switching between micro kernels using scheduling instructions, independent of Linux threads, utilizing the setjmp/longjmp functions for stack initialization and memory allocation, and separating the micro kernel from the Linux platform using the newlib library, enabling efficient simulation and debugging.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If micro kernels are scheduled using Linux threads with one-to-one correspondence, then the system can utilize Linux scheduling mechanisms, but the switching cost increases and real-time performance deteriorates

Engineering Contradiction:
Improveutilization of Linux scheduling mechanismsVSAvoidkernel switching cost
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent segments the micro kernel scheduling from the Linux thread scheduling by introducing a virtualization layer. The micro kernel runs in a virtualized environment where it can be switched independently without affecting Linux thread states, thus reducing switching overhead while maintaining compatibility with Linux scheduling mechanisms.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a virtual machine or container as an intermediary between the micro kernel and Linux threads. This intermediary layer allows the micro kernel to be scheduled and switched without directly involving Linux thread management, thereby reducing switching costs while preserving adaptability to Linux scheduling.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If micro kernels are tightly coupled with Linux platform and threads, then system integration is achieved, but independence for debugging and memory leakage detection is lost

Engineering Contradiction:
Improvesystem integration with LinuxVSAvoidindependence for debugging
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent extracts the micro kernel from the Linux platform by running it in a virtualized environment. This extraction allows the micro kernel to be independently debugged and tested for memory leakage using specialized tools without being constrained by Linux platform dependencies, while still maintaining system integration through controlled interfaces.

Inventive Principle:
Principle #2Taking out (Extraction)

3Quantity of substance

If conventional logging methods are used on MCU, then resource constraints are respected, but complex program debugging becomes impossible

Engineering Contradiction:
ImproveMCU resource constraintsVSAvoidprogram debugging capability
Core Design Contradiction:
Quantity of substanceVSDifficulty of detecting and measuring

Solution Approach 1:

The patent enables the MCU to run a virtualized Linux environment that provides universal debugging tools and logging capabilities. This allows complex program debugging on resource-constrained MCUs by leveraging the multi-functional Linux debugging ecosystem while the virtualization layer manages resource allocation efficiently.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS11954520B2Micro kernel scheduling method and apparatus
Publication Date: 2024.04.09 CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PTE LTD
  • US11954520B2 patent drawing
  • US11954520B2 patent drawing
  • US11954520B2 patent drawing

AI summary

A micro kernel scheduling method and apparatus are disclosed in embodiments of this disclosure. The method is applied to a software platform and includes: receiving a scheduling instruction for a current micro kernel; and switching the current micro kernel to a target micro kernel. In some embodiments, a micro kernel is switched directly according to a scheduling instruction, and this is completed without any thread of the software platform, which solves the problems in the conventional system of high micro kernel switching cost and poor real-time performance caused by one-to-one correspondence between micro kernels and threads of the software platform.