Operating System Startup Acceleration via Selective Class Loading

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The initialization routine for computing devices, such as those in vehicles, is slow due to the loading of unnecessary classes, resources, services, and hardware instances, which delays the availability of device functionality and can impact safety features.

Innovation Solution

A method of selectively loading classes and resources during the initialization process, prioritizing based on device characteristics, intended use, and criticality, using a thread pool to manage the loading of classes and services, and staging the initialization of hardware instances to reduce overall initialization time without compromising functionality.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If all classes, resources, services, and hardware instances are loaded during initialization, then complete functionality is available, but initialization time increases

Engineering Contradiction:
Improvefunctionality availabilityVSAvoidinitialization time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the initialization process into multiple stages: first loading essential classes and services required for basic functionality, then progressively loading additional classes and hardware instances in subsequent stages. This allows the system to become operational with core functions first, while non-critical components are loaded asynchronously, thereby reducing total initialization time while maintaining complete functionality.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary actions by pre-identifying and prioritizing which classes and services are essential for immediate functionality versus those that can be loaded later. The system pre-configures the initialization sequence to load critical components first, ensuring that core functionality is available as quickly as possible, while non-critical components are staged for later loading without blocking system startup.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If essential classes and services are loaded first, then device readiness improves, but some functionality may be unavailable initially

Engineering Contradiction:
Improvedevice readiness speedVSAvoidfunctionality availability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent implements a dynamic initialization approach where the system adapts its loading sequence based on priority levels. Critical classes and services are loaded immediately to ensure fast device readiness, while non-critical components are staged for asynchronous loading. The system dynamically manages resource allocation and loading priorities, allowing core functionality to become available quickly while progressively enabling additional features without blocking the startup process.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentEP3796159B1Operating system startup acceleration
Publication Date: 2022.08.31 HARMAN INT IND INC
  • EP3796159B1 patent drawingFigure 1
  • EP3796159B1 patent drawingFigure 2
  • EP3796159B1 patent drawingFigure 3

AI summary

It is provided a method of selectively loading classes during an initialization of an operating system of a computing device, the method comprising: detecting a trigger for initializing a virtual machine; and responsive to detecting the trigger for initializing the virtual machine: loading classes selected from a first class list; loading resources of the computing device; loading a service-loading process configured to initialize services of the operating system and register the services with a service manager; and loading classes selected from a second class list after loading the service-loading process, wherein classes are determined to be included in the first class list or the second class list based on at least one of respective load times of the classes, a respective number of processes that use the classes, and respective parameters indicating respective priorities of the classes.