Hardware Resource Dispatcher for Concurrent Real-Time and General-Purpose OS Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing operating systems, such as Linux and Windows, are unsuitable for running real-time applications concurrently with general-purpose applications due to their lack of provision for real-time tasks, leading to performance issues when attempting to integrate real-time environments into non-real-time systems using emulation or virtual machines.
Innovation Solution
A system with a hardware resource dispatcher that schedules and allocates resources between multiple operating systems, prioritizing a critical real-time operating system while allowing a secondary general-purpose operating system to operate efficiently by denying access to resources that would interfere with the critical system, and handling interrupts to prevent pre-emption.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If emulation or virtual machines are used to run real-time applications on non-real-time operating systems, then real-time applications can execute on general-purpose systems, but performance degradation occurs due to the heavier load and instruction replacement overhead
Solution Approach 1:
The patent introduces a real-time kernel as an intermediary layer between the non-real-time operating system and real-time applications. This kernel provides direct hardware access and interrupt handling capabilities to real-time applications without requiring full emulation or virtual machine overhead, thereby maintaining high execution performance while enabling real-time capabilities on general-purpose systems.
2Reliability
If a dual boot system is used to run either real-time or general-purpose operating systems, then each operating system can run independently, but the ability to run both types of applications simultaneously is lost
Solution Approach 1:
The patent segments the operating system into two distinct kernels: a non-real-time kernel for general-purpose applications and a real-time kernel for time-critical applications. Both kernels can run simultaneously on the same system, with the real-time kernel having priority access to hardware resources and interrupt handling, thereby enabling concurrent execution of both real-time and general-purpose applications without mutual interference.
3Ease of operation
If hardware interrupts are allowed to preempt the real-time operating system, then responsive interrupt handling is achieved, but real-time performance and timing guarantees are compromised
Solution Approach 1:
The patent implements different interrupt handling policies for different kernels: the real-time kernel has exclusive or priority access to hardware interrupts, ensuring that time-critical operations can preempt non-real-time operations. This local differentiation of interrupt handling quality allows the real-time system to maintain strict timing guarantees while still providing responsive interrupt handling for time-critical applications.
Data Source
AI summary
A method of enabling multiple different operating systems to run concurrently on the same computer, comprising selecting a first operating system to have a relatively high priority (the realtime operating system. such as C5); selecting at least one secondary operating system to have a relatively lower priority (the general purpose operating system, such as Linux); providing a common program (a hardware resource dispatcher similar to a nanokernel) arranged to switch between said operating systems under predetermined conditions; and providing modifications to said first and second operating systems to allow them to be controlled by said common program.


