Virtual Machine Boot Sequencing for Faster Image Processor Startup
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional methods to accelerate boot-up speed of electronic devices, such as replacing rich OS with a simple OS or simplifying the rich OS, face challenges like high application porting difficulty and limited boot time reduction.
Innovation Solution
An image processing device with multiple processors executes a virtual machine monitor and virtual machines in a specific order, loading a first virtual machine with a shorter loading time before a second virtual machine, and allocates hardware resources based on priority, enabling simultaneous execution of OS types.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If a rich OS is replaced with a simple OS to accelerate boot-up speed, then boot-up speed is improved, but software functionality and hardware support deteriorate
Solution Approach 1:
The system segments the OS into multiple virtual machines with different complexity levels. A lightweight first OS is loaded first for fast boot-up, while a complete second OS is loaded subsequently for full functionality. This segmentation allows the system to achieve fast boot-up while maintaining access to complete OS features when needed.
Solution Approach 2:
The system performs preliminary action by loading a simplified first OS before the complete second OS. The first OS is prepared in advance with minimal components to enable rapid boot-up, while the second OS is loaded afterward to provide full functionality. This preliminary action resolves the contradiction by separating the boot-up phase from the full-operation phase.
2Speed
If a rich OS is simplified to accelerate boot-up speed, then boot-up speed is improved, but the amount of booting time that can be shortened is limited
Solution Approach 1:
The OS is segmented into a first OS with minimal components for rapid loading and a second OS with complete functionality for subsequent loading. This segmentation enables significant boot time reduction by only loading essential components initially, while the remaining components are loaded asynchronously without blocking the boot process.
Solution Approach 2:
The system performs preliminary action by loading the first OS in advance before the second OS. The first OS is prepared with only the minimum necessary components to enable basic system operation and fast boot-up. This preliminary action achieves substantial boot time reduction while maintaining the option to load the complete second OS for full functionality.
3Productivity
If multiple virtual machines are loaded in parallel to improve resource utilization, then resource utilization is improved, but system complexity increases
Solution Approach 1:
The system segments the OS into multiple virtual machines with distinct functions and priority levels. The first virtual machine contains essential system components for immediate execution, while the second virtual machine contains additional functionality. This segmentation enables parallel loading and execution, improving resource utilization while managing complexity through clear functional separation.
Solution Approach 2:
The system introduces a virtual machine monitor as an intermediary to manage multiple virtual machines. The monitor handles the complexity of parallel loading, resource allocation, and context switching between virtual machines. This intermediary abstracts the complexity, allowing multiple VMs to run in parallel while presenting a simplified interface for management and reducing the burden on the underlying hardware.
Data Source
AI summary
An image processing device is coupled to an external memory and includes a memory, a first processor, and a second processor. The first processor is configured to perform the following steps: loading a virtual machine monitor to the external memory; loading a first virtual machine to the external memory; waking up the second processor; and loading a second virtual machine to the external memory. The second processor is configured to perform the following steps: executing the virtual machine monitor; and executing the first virtual machine. The first processor first loads the first virtual machine and then loads the second virtual machine, and the loading time of the first virtual machine is less than the loading time of the second virtual machine.


