Virtual Machine Thread Segmentation for Asynchronous MFP Processes
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing image forming apparatuses face challenges in carrying out asynchronous processes, such as communication with external apparatuses and user interface processes, due to limitations in thread usage, which require multiple OS threads and can suspend UI processes during long communication processes.
Innovation Solution
The implementation of an information processing apparatus that executes multiple virtual machines separately from the OS, allowing one thread to be used at a time, with control mechanisms for managing communications between threads using native programs running on the OS, enabling asynchronous processes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple OS threads are used to carry out asynchronous processes, then communication processes and UI processes can be executed simultaneously, but the device complexity increases and thread management becomes more difficult
Solution Approach 1:
The system segments thread management by introducing virtual machines as intermediate layers. Each virtual machine is assigned a single thread, but can internally manage multiple execution contexts. This segmentation allows asynchronous processes to be achieved without requiring multiple OS threads at the system level, thereby reducing thread management complexity while maintaining productivity.
Solution Approach 2:
Virtual machines serve as intermediaries between the OS thread and the extension programs. The virtual machine acts as a mediator that can execute multiple programs sequentially within a single thread context, enabling asynchronous process execution without directly using multiple OS threads. This intermediary approach resolves the contradiction by providing asynchronous capability through virtualization rather than through multi-threading.
2Device complexity
If one thread is used at a time in extension programs on OS, then device complexity is reduced, but asynchronous processes cannot be carried out
Solution Approach 1:
The virtual machine introduces dynamic execution capabilities within a single thread context. By dynamically switching between different execution contexts and managing program states internally, the virtual machine enables asynchronous process execution without requiring multiple static OS threads. This dynamic approach maintains thread usage simplicity while achieving asynchronous productivity.
Solution Approach 2:
The solution adds a new dimension of virtualization between the OS thread and extension programs. Instead of solving the asynchronous problem through horizontal expansion (multiple threads), the system uses vertical dimensionality change by introducing virtual machines as an intermediate execution layer. This allows single-threaded simplicity to coexist with asynchronous execution capability through the added virtualization dimension.
Data Source
AI summary
An information processing apparatus which is capable of carrying out asynchronous processes. In an MFP provided with an execution environment in which one thread is allowed to be used at one time regarding use of a thread, when an extension application 207a is started, a VM thread 205a and a VM 203a which uses the VM thread 205a are generated, and further another new VM thread 205b is generated in response to a request from the extension application 207a and a new VM 203b which uses the new VM thread 205b is generated.


