Java Thread Scheduler CPU Object Abstraction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing Java platforms rely on native code for thread scheduling, limiting the ability to execute multiple threads concurrently and efficiently across multiple processors, as they are tied to physical CPUs and require native APIs for context switching.
Innovation Solution
A Java Scheduler written entirely in Java that abstracts multiple CPUs as 'CPU Objects' allows for parallel execution of threads across these objects, using a volatile field for context switching, enabling efficient execution of multiple threads on abstracted processors without relying on native APIs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If native code and native APIs are used for thread scheduling, then thread execution is tied to physical CPUs, but this limits the ability to execute multiple threads concurrently and efficiently across multiple processors
Solution Approach 1:
The patent introduces a Java-level scheduler as an intermediary layer between the Java application and the native operating system scheduler. This Java scheduler uses volatile fields as mediators to coordinate thread execution across multiple processors, allowing threads to be decoupled from physical CPU bindings while maintaining efficient concurrent execution through Java-managed context switching.
2Ease of operation
If threads are tied to physical CPUs, then context switching can be performed using native APIs, but this reduces the ability to abstract and flexibly manage thread execution across processors
Solution Approach 1:
The patent creates a virtual representation of CPU resources through CPU objects in the Java environment. Instead of directly managing physical CPUs, the system uses Java objects that copy or represent CPU functionality, allowing context switching to be managed at the Java level through volatile field operations rather than requiring direct native API calls to physical processors.
3Productivity
If native APIs are used for thread management, then thread scheduling can be performed at the operating system level, but this prevents efficient parallel execution of multiple threads across multiple processors
Solution Approach 1:
The patent segments the thread scheduling function into two distinct layers: a Java-level scheduler that handles high-level thread management and coordination using volatile fields, and the native operating system scheduler that handles low-level process management. This segmentation allows parallel thread execution to be coordinated efficiently at the Java level while leveraging the native OS for actual process scheduling, simplifying the overall implementation.
Data Source
AI summary
A method and system of performing thread scheduling. At least some of the illustrative embodiments are computer-readable mediums storing a program that, when executed by a processor of a host system, causes the processor to instantiate a CPU object that represents a processor abstraction, create a CPU context object that represents a thread abstraction (wherein the CPU context object is associated to a method, and wherein the CPU context object is mapped onto the CPU object), and execute the method within the CPU object.


