Information processing device, method for controlling the information processing device, and control program for the information processing device

The information processing device facilitates snapshot booting in multi-OS configurations by inter-OS communication and storage of snapshot images, addressing device configuration inconsistencies and restricted memory access to enhance boot speed.

JP2026079092APending Publication Date: 2026-05-15NEC PLATFROMS LTD
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
NEC PLATFROMS LTD
Filing Date
2024-10-30
Publication Date
2026-05-15

AI Technical Summary

Technical Problem

Existing snapshot booting methods fail in multi-OS configurations due to inconsistent device configurations and restricted access to non-volatile memory, preventing the use of snapshot booting for some operating systems.

Method used

The information processing device enables snapshot booting in multi-OS configurations by allowing operating systems without direct access to non-volatile memory to send their snapshot images to other systems with access, and storing these images in the non-volatile memory for subsequent booting.

Benefits of technology

This approach allows for accelerated OS startup in multi-OS environments by enabling snapshot booting even for systems that cannot directly access non-volatile memory, thereby speeding up the boot process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026079092000001_ABST
    Figure 2026079092000001_ABST
Patent Text Reader

Abstract

This enables faster OS boot times in multi-OS configurations. [Solution] The information processing device comprises a boot unit for starting multiple operating systems, multiple execution units for executing the processes of each OS, non-volatile memory, and volatile memory. Each execution unit comprises a generation unit for generating snapshot images, a communication unit for communicating with other operating systems, and a storage processing unit. The storage processing unit, if its own OS is not permitted to access the non-volatile memory, sends a snapshot image of its own OS to an OS that is permitted to access the non-volatile memory. If its own OS is permitted to access the non-volatile memory, it stores its own snapshot image in the non-volatile memory and stores the received snapshot image of the other OS in the non-volatile memory. The boot unit then starts the OS using the snapshot images stored in the non-volatile memory.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to an information processing apparatus, a control method for an information processing apparatus, and a control program for an information processing apparatus.

Background Art

[0002] As a method for accelerating the startup of an OS (Operating System), there is snapshot startup. In snapshot startup, after the OS is started, the memory state is saved in a non-volatile memory as a snapshot image. The memory state refers to the stored content of the volatile memory. Then, when the OS is started next, the snapshot image is used, and the memory state at the time when the snapshot image was saved is restored. In snapshot startup, processes such as OS initialization can be omitted, so the startup of the OS can be accelerated.

[0003] However, in this method, the memory state at the time when it was saved as a snapshot image is directly deployed to the memory when the OS is started. Therefore, if a device with a different device configuration from the time when the snapshot image was saved attempts to start the OS using the saved snapshot image, the startup of the OS may fail due to an inconsistency in the device driver or the like.

[0004] As a countermeasure against the problem caused by the difference in device configuration between the time of saving the snapshot image and the time of starting the OS, for example, there is the method described in Patent Document 1. In the method described in Patent Document 1, at the time of saving the snapshot image, control is performed so as not to enable the device driver for a device driver set in advance. Also, at the time of starting the OS using the snapshot image, control is performed so as to enable the device driver.

Prior Art Documents

Patent Documents

[0005]

Patent Document 1

[0006] However, the method described in Patent Document 1 does not assume a multi-OS configuration. A multi-OS configuration is a configuration in which multiple operating systems are incorporated into a single device. In a multi-OS configuration, one microcomputer (MPC) runs multiple operating systems.

[0007] Snapshot booting in a multi-OS configuration can be achieved by the method described in Patent Document 1 when multiple operating systems can access non-volatile memory.

[0008] However, in a multi-OS configuration, access to devices may be configured separately for each OS to ensure security. In this case, there may be an OS that cannot access non-volatile memory. If there is an OS that cannot access non-volatile memory, snapshot booting cannot be used in a multi-OS configuration.

[0009] The purpose of this disclosure is to provide an information processing device, a control method for the information processing device, and a control program for the information processing device that enable the acceleration of OS startup in a multi-OS configuration, in view of the above-mentioned problems. [Means for solving the problem]

[0010] In one embodiment of the present disclosure, the information processing apparatus comprises a startup unit for starting each of a plurality of operating systems, a plurality of execution units for executing processes using each of the plurality of operating systems, a non-volatile memory, and a volatile memory, wherein each of the plurality of execution units includes a generation unit for generating a snapshot image of the volatile memory used by its own OS when instructed to generate a snapshot image showing the contents of the volatile memory used by the OS, a communication unit for communicating with other operating systems among the plurality of operating systems, and a storage processing unit for storing the snapshot image of its own OS in the non-volatile memory, wherein in the storage processing, the storage processing unit determines that the own OS is the If access to non-volatile memory is not permitted, the OS sends a snapshot image of itself to another OS that is permitted to access the non-volatile memory via the communication unit. If the OS is permitted to access the non-volatile memory, it stores the snapshot image of itself in the non-volatile memory. When the communication unit receives a snapshot image of another OS, it stores the snapshot image of the other OS in the non-volatile memory. When the startup unit is instructed to start using a snapshot image, it starts each of the multiple OSs using the snapshot image stored in the non-volatile memory.

[0011] Furthermore, in another embodiment of the present disclosure, the control method for the information processing device generates a snapshot image of the volatile memory used by its own OS when each of the multiple operating systems used in the information processing device is instructed to generate a snapshot image showing the contents of the volatile memory used by the OS; if the OS is not permitted to access the nonvolatile memory, it sends the snapshot image of its own OS to an OS among the other operating systems that is permitted to access the nonvolatile memory; if the OS is permitted to access the nonvolatile memory, it stores the snapshot image of its own OS in the nonvolatile memory; when it receives a snapshot image from another OS, it stores the snapshot image of the other OS in the nonvolatile memory; and when the information processing device is instructed to start using a snapshot image, it starts each of the multiple operating systems using the snapshot image stored in the nonvolatile memory.

[0012] Furthermore, in another embodiment of this disclosure, the control program for the information processing apparatus enables the computer to implement a startup function for starting each of a plurality of operating systems, and a plurality of execution functions for executing processes using each of the plurality of operating systems, each of the plurality of execution functions includes a generation function for generating a snapshot image of the volatile memory used by its own OS when instructed to generate a snapshot image showing the contents of the volatile memory used by the OS, a communication function for communicating with other operating systems among the plurality of operating systems, and a storage processing function for storing the snapshot image of its own OS in non-volatile memory, and in the storage processing, the storage processing function enables the own OS to If access to the non-volatile memory is not permitted, the OS sends a snapshot image of itself to another OS that is permitted to access the non-volatile memory via the communication function. If the OS is permitted to access the non-volatile memory, it stores the snapshot image of itself in the non-volatile memory. When the communication function receives a snapshot image of another OS, it stores the snapshot image of the other OS in the non-volatile memory. When the startup function is instructed to start using a snapshot image, it starts each of the multiple OSs using the snapshot image stored in the non-volatile memory. [Effects of the Invention]

[0013] According to this disclosure, it will be possible to speed up OS startup in a multi-OS configuration. [Brief explanation of the drawing]

[0014] [Figure 1] This figure shows an example of the configuration of the information processing device disclosed herein. [Figure 2] This figure shows an example of the configuration of the execution unit of the information processing device disclosed herein. [Figure 3] This figure shows an example of the operation flow of the information processing device disclosed herein. [Figure 4]It is a diagram showing an example of an operation flow of the information processing apparatus of the present disclosure. [Figure 5] It is a diagram showing a configuration example of the information processing apparatus of the present disclosure. [Figure 6] It is a diagram showing a configuration example of an execution unit of the information processing apparatus of the present disclosure. [Figure 7] It is a diagram showing an example of a device configuration of the information processing apparatus of the present disclosure. [Figure 8] It is a diagram showing an example of an OS that can be accessed for each device constituting the information processing apparatus of the present disclosure. [Figure 9] It is a conceptual diagram showing an example of a device that can be accessed from each OS in the information processing apparatus of the present disclosure. [Figure 10] It is a diagram showing an example of an operation flow of the information processing apparatus of the present disclosure. [Figure 11] It is a diagram showing an example of an operation flow of the information processing apparatus of the present disclosure. [Figure 12] It is a diagram showing an example of an operation flow of the information processing apparatus of the present disclosure. [Figure 13] It is a diagram showing an example of a device configuration of the information processing apparatus of the present disclosure. [Figure 14] It is a diagram showing an example of a device configuration of the information processing apparatus of the present disclosure. [Figure 15] It is a diagram showing an example of a device configuration of the information processing apparatus of the present disclosure. [Figure 16] It is a diagram showing an example of an OS that can be accessed for each device constituting the information processing apparatus of the present disclosure. [Figure 17] It is a conceptual diagram showing an example of a device that can be accessed from each OS in the information processing apparatus of the present disclosure. [Figure 18] It is a conceptual diagram showing an example of a device that can be accessed from each OS in the information processing apparatus of the present disclosure. [Figure 19] It is a diagram showing a configuration example of the information processing apparatus of the present disclosure. [Figure 20] It is a diagram showing a configuration example of an execution unit of the information processing apparatus of the present disclosure. [Figure 21] It is a diagram showing an example of an operation flow of the information processing apparatus of the present disclosure. [Figure 22] This figure shows an example of the operation flow of the information processing device disclosed herein. [Figure 23] This figure shows an example of the operation flow of the information processing device disclosed herein. [Figure 24] This figure shows an example of the operation flow of the information processing device disclosed herein. [Figure 25] This figure shows an example of a device configuration change procedure in Case 1 of this disclosure. [Figure 26] This figure shows an example of a device configuration change procedure in Case 2 of this disclosure. [Figure 27] This figure shows an example of the hardware configuration of each embodiment of the present disclosure. [Modes for carrying out the invention]

[0015] [First Embodiment] A first embodiment of this disclosure will be described.

[0016] Furthermore, specific examples of the information processing device 10 in the first embodiment are the information processing device 20 in the second embodiment and the information processing device 30 in the third embodiment, which will be described later.

[0017] First, an example of the configuration of the information processing device 10 will be explained using Figure 1. Figure 1 is a diagram showing an example of the configuration of the information processing device 10. The information processing device 10 includes a startup unit 11, a volatile memory 12, a non-volatile memory 13, and execution units 14-1 to 14-N.

[0018] The boot unit 11 starts each of the multiple operating systems. Each of the multiple operating systems is called OS-i (where i is an integer between 1 and N).

[0019] Each of the execution units 14-1 to 14-N executes processing using each of the multiple operating systems.

[0020] Figure 2 shows an example configuration of the execution unit 14-i (where i is an integer between 1 and N). The execution unit 14-i includes a generation unit 15-i, a communication unit 16-i, and a storage processing unit 17-i.

[0021] The generation unit 15-i generates a snapshot image of the volatile memory 12 used by its own OS (OS-i) when instructed to generate a snapshot image. The snapshot image shows the contents of the volatile memory 12 used by the OS. The own OS is its own operating system.

[0022] The communication unit 16-i communicates with other operating systems. These other operating systems are other operating systems among several operating systems.

[0023] The memory processing unit 17-i performs memory processing. This memory processing involves storing a snapshot image of the OS in the non-volatile memory 13.

[0024] During storage processing, if the storage processing unit 17-i is not permitted to access the non-volatile memory 13, it transmits a snapshot image of its own OS to another OS that is permitted to access the non-volatile memory 13 via the communication unit 16-i. Furthermore, if the storage processing unit 17-i is permitted to access the non-volatile memory 13 during storage processing, it stores a snapshot image of its own OS in the non-volatile memory 13. Also, if the communication unit 16-i receives a snapshot image of another OS during storage processing, the storage processing unit 17-i stores the snapshot image of the other OS in the non-volatile memory 13.

[0025] When instructed to boot using a snapshot image, the boot unit 11 uses the snapshot image stored in the non-volatile memory 13 to boot each of the multiple operating systems.

[0026] Next, we will describe an example of the operation flow of the information processing device 10. Figures 3 and 4 show an example of the operation flow of the information processing device 10.

[0027] When the generation unit 15-i is instructed to generate a snapshot image, it generates a snapshot image of the volatile memory 12 used by its own OS (step S101 in Figure 3).

[0028] If the memory processing unit 17-i is not permitted to access the non-volatile memory 13 during memory processing (NO in step S102), it sends a snapshot image of its own OS to another OS that is permitted to access the non-volatile memory 13 via the communication unit 16-i (step S103).

[0029] Furthermore, in the memory processing unit 17-i, if its own OS is permitted to access the non-volatile memory 13 (YES in step S102), it stores a snapshot image of its own OS in the non-volatile memory 13 (step S104).

[0030] Furthermore, in the memory processing, if the communication unit 16-i receives a snapshot image of another OS (YES in step S105), the memory processing unit 17-i stores the snapshot image of the other OS in the non-volatile memory 13 (step S106). Note that step S104 may be performed after step S106.

[0031] When instructed to boot using a snapshot image, the boot unit 11 uses the snapshot image stored in the non-volatile memory 13 to boot each of the multiple operating systems (step S107 in Figure 4). As described above, in the first embodiment of this disclosure, the information processing device 10 includes a startup unit 11, a volatile memory 12, a non-volatile memory 13, and execution units 14-1 to 14-N. The startup unit 11 starts each of the multiple operating systems. Each of the execution units 14-1 to 14-N executes processing using each of the multiple operating systems. The execution unit 14-i includes a generation unit 15-i, a communication unit 16-i, and a storage processing unit 17-i. When instructed to generate a snapshot image, the generation unit 15-i generates a snapshot image of the volatile memory 12 used by its own OS. The snapshot image shows the contents of the volatile memory 12 used by the OS. The own OS is its own OS. The communication unit 16-i communicates with other OSs. Other OSs are other OSs among the multiple operating systems. The storage processing unit 17-i performs storage processing. The storage processing is the process of storing the snapshot image of its own OS in the non-volatile memory 13. During memory processing, if the local OS is not permitted to access the non-volatile memory 13, the memory processing unit 17-i sends a snapshot image of its local OS to another OS that is permitted to access the non-volatile memory 13 via the communication unit 16-i. Also, during memory processing, if the local OS is permitted to access the non-volatile memory 13, the memory processing unit 17-i stores a snapshot image of its local OS in the non-volatile memory 13. Furthermore, during memory processing, if the communication unit 16-i receives a snapshot image of another OS, the memory processing unit 17-i stores the snapshot image of the other OS in the non-volatile memory 13. When the startup unit 11 is instructed to start using a snapshot image, it starts each of the multiple OSs using the snapshot image stored in the non-volatile memory 13.

[0032] Thus, in the information processing device 10, if the memory processing unit 17-i is not permitted to access the non-volatile memory 13, it sends a snapshot image of its own OS to another OS that is permitted to access the non-volatile memory 13. Furthermore, when the communication unit 16-i receives a snapshot image of another OS, the memory processing unit 17-i stores the snapshot image of the other OS in the non-volatile memory 13. This allows the information processing device 10 to store snapshot images of OSs that cannot access the non-volatile memory in the non-volatile memory 13, enabling snapshot booting even in a multi-OS configuration. Therefore, it becomes possible to speed up OS booting in a multi-OS configuration.

[0033] [Second Embodiment] Next, the information processing device 20 in the second embodiment of this disclosure will be described. Note that the information processing device 20 in the second embodiment is a specific example of the information processing device 10 in the first embodiment.

[0034] First, Figure 5 shows an example of the configuration of the information processing device 20. The information processing device 20 includes a startup unit 21, a volatile memory 22, a non-volatile memory 23, and execution units 24-1 to 24-N.

[0035] The information processing device 20 is a multi-OS configuration in which a single computer runs multiple operating systems. The computer may be, for example, a microcomputer. Regarding the unit that runs the OS in the information processing device 20, it is not limited to one CPU (Central Processing Unit) running one OS. In the information processing device 20, for example, one CPU may run multiple OSs, or individual cores within the CPU may run one or more OSs. Alternatively, each of the multiple virtual machines built on the information processing device 20 may run an OS.

[0036] In a multi-OS configuration, the accessible devices differ for each OS. Therefore, in a multi-OS configuration, the OS that can access non-volatile memory 23 may be limited. The settings for which each OS can access devices can be configured, for example, through security level setting functions provided by the chip vendor.

[0037] The boot unit 21 starts up two or more operating systems. Each of these operating systems is called OS-i (where i is an integer between 1 and N). The boot unit 21 implements the functions of a boot loader.

[0038] When instructed to perform a snapshot-based boot (snapshot boot), the boot unit 21 uses the snapshot image stored in the non-volatile memory 23 to start OS-1 to OS-N. The snapshot image represents the contents of the volatile memory 22 used by the OS. Specifically, the boot unit 21 stores the snapshot image stored in the non-volatile memory 23 into the volatile memory 22 and then starts OS-1 to OS-N.

[0039] Furthermore, if snapshot booting is not instructed, the boot unit 21 performs a normal boot (non-snapshot boot). In a normal boot, the boot unit 21 starts OS-1 to OS-N without using a snapshot image. A normal boot is a boot that does not use a snapshot image.

[0040] Execution unit 24-i executes processing using OS-i. Execution units 24-1 to 24-N are implemented by an arithmetic unit included in the computer, such as a CPU. Execution unit 24-i may also be implemented by an arithmetic unit 93, which will be described later. Execution unit 24-i is associated with OS-i. Note that execution units 24-1 to 24-N can share one or more CPUs provided by the computer.

[0041] The volatile memory 22 is a volatile memory accessible from the execution unit 24-i. The volatile memory 22 may also be the storage device 94 described later. The volatile memory 22 may be, for example, RAM (Random Access Memory). The volatile memory 22 stores programs and various data. The areas of volatile memory 22 used by each of the execution units 24-1 to 24-N are independent of each other. The areas of volatile memory 22 used by each of the execution units 24-1 to 24-N may be fixed or variable.

[0042] The non-volatile memory 23 is a non-volatile storage device. The non-volatile memory 23 may be, for example, ROM (Read Only Memory), flash memory, etc. The non-volatile memory 23 may also be the non-volatile storage device 95 described later. The non-volatile memory 23 can store various programs and data. In this embodiment, eMMC (embedded MultiMediaCard) will be used as an example of the non-volatile memory 23.

[0043] Next, Figure 6 shows an example of the configuration of the execution unit 24-i. The execution unit 24-i includes a generation unit 25-i, a communication unit 26-i, and a storage processing unit 27-i.

[0044] The generation unit 25-i generates a snapshot image of the volatile memory 22 used by its own OS when instructed to generate a snapshot image. The own OS is its own OS (OS-i).

[0045] The communication unit 26-i communicates with other operating systems. These other operating systems are other operating systems (OS-1 to OS-N, excluding OS-i). The communication unit 26-i can communicate with other operating systems, for example, by inter-OS communication as described in Japanese Patent Publication No. 7401484. The communication unit 26-i corresponds, for example, to the internal communication control means in the technology described in Japanese Patent Publication No. 7401484.

[0046] The memory processing unit 27-i performs memory processing. This memory processing involves storing a snapshot image of the OS (OS-i) in non-volatile memory.

[0047] As mentioned above, in a multi-OS configuration, accessible devices may be configured for each OS. In this case, there may be an OS that cannot access non-volatile memory. If there is an OS that cannot access non-volatile memory, snapshot booting cannot be used in a multi-OS configuration. Therefore, the memory processing unit 27-i performs the following processing in memory processing.

[0048] If the memory processing unit 27-i is not permitted to access the non-volatile memory 23, it sends a snapshot image of its own OS to another OS that is permitted to access the non-volatile memory 23 via the communication unit 26-i.

[0049] Furthermore, if the memory processing unit 27-i is permitted to access the non-volatile memory 23, it stores a snapshot image of its own OS in the non-volatile memory 23. Also, if the communication unit 26-i receives a snapshot image of another OS, the memory processing unit 27-i stores the snapshot image of that OS in the non-volatile memory 23.

[0050] Furthermore, if the memory processing unit 27-i is permitted to access the non-volatile memory 23, it can determine which OS is permitted to access the non-volatile memory 23, for example, from the device information stored in the non-volatile memory 23. Alternatively, the memory processing unit 27-i may determine which OS is permitted to access the non-volatile memory 23 by setting a DIP (Dual In-line Package) switch.

[0051] By having the memory processing unit 27-i perform the memory processing in this manner, even operating systems that are not permitted to access the non-volatile memory 23 can store snapshot images in the non-volatile memory 23.

[0052] Next, an example of the operation flow of the information processing device 20 will be explained using Figures 10 to 11. Note that the operation flow shown in Figures 10 to 11 is an example of the operation flow when the configuration of the information processing device 20 is configuration A as shown in Figures 7 to 9.

[0053] Figure 7 shows an example of the device configuration of an information processing device 200A, which is an example of an information processing device 20. In the example shown in Figure 7, the information processing device 200A includes a CPU 201, a memory 202, an eMMC 203, and a TPM (Trusted Platform Module) 204.

[0054] Figure 8 shows an example of an OS that can access each device constituting the information processing device 200A of configuration A. In this example, all OSs (OS-1 to OS-4) can access the CPU and memory, and OS-1 can access the TPM and eMMC.

[0055] Figure 9 is a conceptual diagram showing examples of devices accessible from each OS in the information processing device 200A of configuration A. OS-1 to OS-4 are executed in the information processing device 200A.

[0056] Figure 10 shows an example of the operation flow of the information processing device 20 during normal startup (non-snapshot startup). Figure 11 shows an example of the operation flow of the information processing device 20 regarding the generation of a snapshot image. Figure 12 shows an example of the operation flow of the information processing device 20 during snapshot startup.

[0057] The boot unit 21 (boot loader) of the information processing device 20 stores the OS images of OS-1 to OS-4 in the volatile memory 22 during normal startup (non-snapshot startup) (step S201 in Figure 10). Then, the boot unit 21 requests the execution unit 24-i (where i = an integer from 1 to 4) to start OS-i (step S202). The execution unit 24-i then starts OS-i (step S203).

[0058] Furthermore, the execution unit 24-i (generation unit 25-i) of the information processing device 20 generates a snapshot (SS) image of the volatile memory 22 used by its own OS (step S224) when it receives an instruction from another system to generate a snapshot (SS) image (step S211 in Figure 11). The local OS is its own OS (OS-i). In the case of Figure 11, the instruction to generate a snapshot image is received by the execution unit 24-1 of the OS (OS-1) which is authorized to access the non-volatile memory 23.

[0059] Furthermore, if the OS (OS-i) is permitted to access the non-volatile memory 23, the execution unit 24-i (generation unit 25-i) requests the OS that is not permitted to access the non-volatile memory 23 to generate a snapshot image. In the case of Figure 11, the execution unit 24-1 (generation unit 25-1) requests the OS-2 to OS-4 to generate a snapshot image (steps S212, S216, S220).

[0060] The execution unit 24-i (generation unit 25-i) generates a snapshot image of the volatile memory 22 used by the OS (OS-i) when requested to generate a snapshot image, if the OS is not permitted to access the non-volatile memory 23. In the case of Figure 11, the execution units 24-2 to 24-4 generate a snapshot image of the volatile memory 22 used by the OS when requested to generate a snapshot image (steps S213, S217, S221).

[0061] The execution unit 24-i (storage processing unit 27-i) performs the following processing in the storage process.

[0062] If the memory processing unit 27-i is not permitted to access the non-volatile memory 23, it sends a snapshot image of its own OS to another OS that is permitted to access the non-volatile memory 23 via the communication unit 26-i. In the case of Figure 11, the memory processing units 27-2 to 27-4 send a snapshot image of their own OS to OS-1 (steps S214, S218, S222).

[0063] Furthermore, if the storage processing unit 27-i is permitted to access the non-volatile memory 23, it stores a snapshot image of its own OS in the non-volatile memory 23 (step S225). In the case of Figure 11, the storage processing unit 27-1 (OS-1) stores a snapshot image of its own OS in the non-volatile memory 23 (step S225). Also, if the communication unit 26-i receives a snapshot image of another OS, the storage processing unit 27-i stores the snapshot image of the other OS in the non-volatile memory 23. In the case of Figure 11, if the communication unit 26-1 receives a snapshot image of another OS, the storage processing unit 27-1 stores the snapshot image of the other OS in the non-volatile memory 23 (steps S215, S219, S223).

[0064] Furthermore, the boot unit 21 (boot loader) of the information processing device 20 stores snapshot images of OS-1 to OS-4 in the volatile memory 22 during snapshot booting (step S231 in Figure 12). Then, the boot unit 21 requests the execution unit 24-i (where i = an integer from 1 to 4) to start OS-i (step S232). The execution unit 24-i then starts OS-i (step S233).

[0065] As described above, in the second embodiment of this disclosure, the information processing device 20 includes a startup unit 21, a volatile memory 22, a non-volatile memory 23, and execution units 24-1 to 24-N. The startup unit 21 starts each of the multiple operating systems. Each of the execution units 24-1 to 24-N executes processing using each of the multiple operating systems. The execution unit 24-i includes a generation unit 25-i, a communication unit 26-i, and a storage processing unit 27-i. When instructed to generate a snapshot image, the generation unit 25-i generates a snapshot image of the volatile memory 22 used by its own OS. The snapshot image shows the contents of the volatile memory 22 used by the OS. The own OS is its own OS. The communication unit 26-i communicates with other OSs. Other OSs are other OSs among the multiple operating systems. The storage processing unit 27-i performs storage processing. The storage processing is the process of storing the snapshot image of its own OS in the non-volatile memory 23. During memory processing, if the local OS is not permitted to access the non-volatile memory 23, the memory processing unit 27-i sends a snapshot image of its own OS to another OS that is permitted to access the non-volatile memory 23 via the communication unit 26-i. Also, during memory processing, if the local OS is permitted to access the non-volatile memory 23, the memory processing unit 27-i stores a snapshot image of its own OS in the non-volatile memory 23. Furthermore, during memory processing, if the communication unit 26-i receives a snapshot image of another OS, the memory processing unit 27-i stores the snapshot image of the other OS in the non-volatile memory 23. When instructed to start using a snapshot image, the startup unit 21 starts each of the multiple OSs using the snapshot images stored in the non-volatile memory 23.

[0066] Thus, in the information processing device 20, if the memory processing unit 27-i is not permitted to access the non-volatile memory 23, it sends a snapshot image of its own OS to another OS that is permitted to access the non-volatile memory 23. Furthermore, when the communication unit 26-i receives a snapshot image of another OS, the memory processing unit 27-i stores the snapshot image of the other OS in the non-volatile memory 23. This allows the information processing device 20 to store snapshot images of OSs that cannot access the non-volatile memory in the non-volatile memory 23, enabling snapshot booting even in a multi-OS configuration. Therefore, it becomes possible to speed up OS booting in a multi-OS configuration.

[0067] [Third Embodiment] Next, the information processing device 30 in the third embodiment of this disclosure will be described. The information processing device 30 in the third embodiment is a specific example of the information processing device 10 in the first embodiment. This embodiment is an example where the device configuration of the information processing device 30 is variable.

[0068] First, the device configuration of the information processing device 30 will be described. In this embodiment, the device configuration of the information processing device 30 is variable. The information processing device 30 can have a device configuration such as those shown in Figures 13 to 18. Figures 13 to 18 show examples of the device configuration of the information processing device 30.

[0069] Figure 13 shows an example of the device configuration (Configuration A) of an information processing device 300A, which is an example of an information processing device 30. In the example shown in Figure 13, the information processing device 300A includes a CPU 301, a memory 302, an eMMC 303, and a TPM 304. The CPU 301, memory 302, eMMC 303, and TPM 304 are the basic configuration devices. The basic configuration devices are included in the information processing device 30 regardless of its configuration.

[0070] The basic configuration is, for example, the minimum configuration of an embedded device or a configuration common to variations in a product series that is sold. The user can arbitrarily set which device will be used as the basic configuration.

[0071] Figure 14 shows an example of the device configuration (Configuration B) of an information processing device 300B, which is an example of an information processing device 30. In the example shown in Figure 14, the information processing device 300B includes a CPU 301, memory 302, eMMC 303, and TPM 304 as its basic configuration. The information processing device 300B also includes a LAN 305, an LCD (liquid crystal display) 306, and a speaker 307. Note that LAN 305 is a LAN (Local Area Network) port. The information processing device 300B also includes LAN 305, LCD (liquid crystal display) 306, and speaker 307 as a variable configuration. Devices in the variable configuration are devices that are not included in the information processing device 30 depending on the configuration of the information processing device 30. Devices in the variable configuration are devices that are not included in the basic configuration.

[0072] Figure 15 shows an example of the device configuration (configuration C) of an information processing device 300C, which is an example of an information processing device 30. In the example shown in Figure 15, the information processing device 300C includes a CPU 301, memory 302, eMMC 303, and TPM 304 as its basic configuration. In addition, the information processing device 300C includes a LAN 305 and an LCD 306 as part of its variable configuration.

[0073] Figure 16 shows an example of an OS that can access each device constituting the information processing units 300A to 300C. In this example, all OSs (OS-1 to OS-4) can access the CPU 301 and memory 302, and OS-1 can access the TPM 304 and eMMC 303. In information processing unit 300B (configuration B), OS-2 can access the LAN 305, OS-3 can access the LCD 306, and OS-4 can access the speaker 307. In information processing unit 300C (configuration C), OS-3 can access the LAN 305, and OS-2 can access the LCD 306.

[0074] Figure 17 is a conceptual diagram showing examples of devices accessible from each OS in the information processing device 300B of configuration B. Figure 18 is a conceptual diagram showing examples of devices accessible from each OS in the information processing device 300C of configuration C.

[0075] Device configuration changes are expected to occur in cases such as the following. However, the cases in which device configuration changes occur are not limited to these two cases.

[0076] (Case 1) A case in which a snapshot image is used in a derivative device with a different device configuration from the device on which the snapshot image was generated. In this case, for example, a snapshot image generated by the information processing device 300A with configuration A is used in the information processing device 300B, which is a derivative device with configuration B, or in the information processing device 300C, which is a derivative device with configuration C. The information processing device 30 of this embodiment can generate a snapshot image that can also be used in derivative devices.

[0077] (Case 2) A case in which the device configuration is changed in the same information processing device 30. This case is, for example, a case in which the configuration of the information processing device 30 is changed between configurations A to C described above. Also, for example, a device change due to the end-of-life (EOL) of a device falls under this case. In this case, it is assumed that the hardware configuration is such that it is easy to change the device configuration (attach or detach devices).

[0078] Next, Figure 19 shows an example of the configuration of the information processing device 30. The information processing device 30 includes a startup unit 31, a volatile memory 22, a non-volatile memory 23, and execution units 34-1 to 34-N.

[0079] The information processing device 30 is a multi-OS configuration in which a single computer runs multiple operating systems.

[0080] The boot unit 31 starts each of OS-1 to OS-N. The boot unit 31 implements the functions of a boot loader.

[0081] If snapshot booting is not instructed, the boot unit 31 performs a normal boot (non-snapshot boot). In a normal boot, the boot unit 31 starts OS-1 to OS-N without using a snapshot image. Specifically, the boot unit 21 stores the OS image in volatile memory 22 and starts OS-1 to OS-N.

[0082] Furthermore, in this embodiment, in order to respond to changes in the device configuration, the startup unit 31 reads device information from the non-volatile memory 23 or the like before the OS starts up. The device information is information indicating the device configuration of the information processing device 30. The device information is pre-stored in the non-volatile memory 23. The device information may also be stored in DIP switches or the like. When the device configuration is changed, the device information is changed before the information processing device 30 starts up by the user rewriting the non-volatile memory 23 or operating the DIP switches.

[0083] The device information may be, for example, a list of information indicating devices included in the information processing device 30, or it may be information indicating a pattern of device configuration (for example, a pattern number).

[0084] The boot unit 31 stores the read device information in the volatile memory 22 before the OS starts up. The device information may be, for example, equivalent to a device tree file in Linux (registered trademark).

[0085] In a normal boot (non-snapshot boot), the boot unit 31 stores device information in the volatile memory 22 and starts the OS, so when OS-1 to OS-N are started, the devices are also enabled. In this method, each OS starts without determining which devices should be enabled. In a normal boot (non-snapshot boot), when the OS starts, the devices are enabled according to the device information at the time the information processing unit 30 is started.

[0086] Furthermore, when instructed to perform a snapshot-based boot (snapshot boot), the boot unit 31 uses the snapshot image stored in the non-volatile memory 23 to start OS-1 to OS-N. Specifically, the boot unit 31 stores the snapshot image stored in the non-volatile memory 23 in the volatile memory 22 and then starts OS-1 to OS-N. In a snapshot boot, OS-1 to OS-N is started with the volatile memory 22 in the state it was in at the time the snapshot image was created. Therefore, in a snapshot boot, devices that were enabled at the time the snapshot image was created are enabled.

[0087] The execution unit 34-i executes processing using OS-i. The execution unit 34-i is associated with OS-i. The volatile memory 22 is volatile memory that can be accessed by the execution unit 34-i. The non-volatile memory 23 is a non-volatile storage device.

[0088] Next, Figure 20 shows an example of the configuration of the execution unit 34-i. The execution unit 34-i includes a generation unit 35-i, a communication unit 26-i, a storage processing unit 27-i, and a device control unit 38-i.

[0089] The generation unit 35-i generates a snapshot image of the volatile memory 22 used by its own OS when instructed to generate a snapshot image. The own OS is its own OS (OS-i).

[0090] The communication unit 26-i communicates with other operating systems. These other operating systems are other operating systems (OS-1 to OS-N, excluding OS-i).

[0091] The memory processing unit 27-i performs memory processing. This memory processing involves storing a snapshot image of the OS (OS-i) in non-volatile memory. The memory processing is the same as in the second embodiment, so its explanation is omitted.

[0092] The device control unit 38-i controls the enabling and disabling of the variable-configuration device. When instructed to generate a snapshot image, the device control unit 38-i disables the variable-configuration device before the generation unit 35-i generates the snapshot image.

[0093] In snapshot booting, OS-1 to OS-N are started with the volatile memory 22 in the state it was in when the snapshot image was created. To avoid inconsistencies between device drivers and device configurations, in this embodiment, the generation unit 35-i generates the snapshot image with the devices in the basic configuration enabled and the devices in the variable configuration disabled.

[0094] For example, if the information processing device 30 can take on any of the configurations A to C shown in Figures 13 to 18, a snapshot image is generated with the devices in the basic configuration enabled and the devices in the variable configuration disabled.

[0095] By doing this, during snapshot boot, the OS starts with the dynamically configured devices disabled, thus avoiding problems caused by device drivers being enabled for devices not included in the device configuration.

[0096] Furthermore, the device control unit 38-i activates the variable-configuration device after a snapshot image has been generated and the storage processing by the storage processing unit 27-i has been completed.

[0097] The following are some examples of methods for disabling a device. The device control unit 38-i can select one or more of the following methods depending on the device to be disabled. 1-1) Removing kernel modules in Linux (registered trademark) 1-2) Disabling devices using the dynamic device configuration change feature (device tree overlay) in Linux (registered trademark) 1-3) Transition to suspend state in a device driver that has the function to read the product ID (Identification) of a connected device.

[0098] Furthermore, there are several methods for activating a device, such as the following. The device control unit 38-i uses an activation method that corresponds to the method used to deactivate the device to be activated. For example, if the device control unit 38-i deactivates a device using the method described in 1-1 above, it activates the device using the method described in 2-1 below. 2-1) Incorporation of kernel modules in Linux (registered trademark) 2-2) Enabling devices using the dynamic device configuration change feature (device tree overlay) in Linux (registered trademark) 2-3) Resume from suspend using a device driver that has the function to read the product ID of the connected device.

[0099] Furthermore, in snapshot boot mode, the OS starts with variable-configuration devices disabled. Therefore, the device control unit 38-i enables the variable-configuration devices after snapshot boot mode.

[0100] Specifically, the device control unit 38-i reads device information from the non-volatile memory 23 if its own OS (OS-i) is permitted to access the non-volatile memory 23. Based on the device information, the device control unit 38-i enables devices that can be accessed by its own OS. The device control unit 38-i also transmits the read device information to an OS that is not permitted to access the non-volatile memory 23 via the communication unit 26-i.

[0101] Furthermore, if the device control unit 38-i is not permitted to access the non-volatile memory 23, it stores the device information received from another OS in the volatile memory 22. The device control unit 38-i also enables devices accessible from the OS based on the received device information.

[0102] Next, an example of the operation flow of the information processing device 30 will be explained using Figures 21 to 24. Note that the operation flow shown in Figures 21 to 24 is an example of the operation flow when the configuration of the information processing device 30 is one of the configurations A to C shown in Figures 13 to 18.

[0103] Figure 21 shows an example of the operation flow of the information processing device 30 during normal startup (non-snapshot startup). Figures 22 and 23 show examples of the operation flow of the information processing device 30 related to the generation of a snapshot image. Figure 23 shows an example of the operation flow of the information processing device 30 for step S318 in Figure 22. Figure 24 shows an example of the operation flow of the information processing device 30 during snapshot startup.

[0104] The boot unit 31 (boot loader) of the information processing device 30 reads device information from the non-volatile memory 23 or the like during normal startup (non-snapshot startup) (step S301 in Figure 21). Next, the boot unit 31 stores the device information and the OS images of OS-1 to OS-4 in the volatile memory 22 (step S302). Then, the boot unit 31 requests the execution unit 34-i (where i = an integer from 1 to 4) to start OS-i (step S303). The execution unit 34-i then starts OS-i (step S304).

[0105] Furthermore, if the execution unit 34-i is permitted to access the non-volatile memory 23, it may read device information from the non-volatile memory 23 after the OS has started (step S305). The execution unit 34-1 may then send the read device information to another OS (step S306). If the execution unit 34-i receives device information, it may store the received device information in the volatile memory 22 (step S307).

[0106] Furthermore, when the execution unit 34-i (generation unit 35-i) of the information processing device 30 receives an instruction from another system to generate a snapshot (SS) image, it requests the OS, which is not authorized to access the non-volatile memory 23, to generate the snapshot image. The instruction to generate a snapshot image is received by the execution unit 34-1 of the OS (OS-1) which is authorized to access the non-volatile memory 23. In Figures 22 and 23, when the execution unit 34-1 (OS-1) receives an instruction to generate a snapshot image (step S311), it requests the OS-2 to OS-4 to generate the snapshot image (steps S312, S318, S341, S347).

[0107] The execution unit 34-i (generation unit 35-i) generates a snapshot image of the volatile memory 22 used by the OS (OS-i) when requested to generate a snapshot image, provided that the OS is not authorized to access the non-volatile memory 23. The execution unit 34-i (device control unit 38-i) disables the variable-configuration device before the generation unit 35-i generates the snapshot image when requested to generate a snapshot image. In Figures 22 and 23, the execution units 34-2 to 34-4 generate a snapshot image of the volatile memory 22 used by the OS when requested to generate a snapshot image (steps S314, S318, S343, S349). Also, the execution unit 34-2 disables the variable-configuration device before the generation unit 35-2 generates the snapshot image when requested to generate a snapshot image (step S313). Furthermore, when the execution unit 34-3 is requested to generate a snapshot image, it disables the variable-configuration device before the generation unit 35-3 generates the snapshot image (steps S318, S342). Also, when the execution unit 34-4 is requested to generate a snapshot image, it disables the variable-configuration device before the generation unit 35-4 generates the snapshot image (steps S318, S348).

[0108] The execution unit 34-i (generation unit 35-i) generates a snapshot image of the volatile memory 22 used by the OS (OS-i) if the OS is permitted to access the non-volatile memory 23. The execution unit 34-i (device control unit 38-i) disables the variable-configuration device before the generation unit 35-i generates the snapshot image when instructed to generate a snapshot image. In Figure 22, the execution unit 34-1 (OS-1) generates a snapshot image of the volatile memory 22 used by the OS (step S320). The execution unit 34-1 disables the variable-configuration device before the generation unit 35-1 generates the snapshot image when instructed to generate a snapshot image (step S319).

[0109] The execution unit 34-i (storage processing unit 27-i) performs the following processing in the storage process.

[0110] If the memory processing unit 27-i is not permitted to access the non-volatile memory 23, it sends a snapshot image of its own OS to another OS that is permitted to access the non-volatile memory 23 via the communication unit 26-i. In Figures 22 and 23, the memory processing units 27-2 to 27-4 send a snapshot image of their own OS to OS-1 (steps S315, S318, S344, S350).

[0111] Furthermore, if the storage processing unit 27-i is permitted to access the non-volatile memory 23, it stores a snapshot image of its own OS in the non-volatile memory 23 (step S321). Also, if the communication unit 26-i receives a snapshot image of another OS, the storage processing unit 27-i stores the snapshot image of the other OS in the non-volatile memory 23. In Figures 22 and 23, the storage processing unit 27-1 stores a snapshot image of its own OS in the non-volatile memory 23 (step S321). Also, if the communication unit 26-1 receives a snapshot image of another OS, the storage processing unit 27-1 stores the snapshot image of the other OS in the non-volatile memory 23 (steps S316, S318, S345, S351).

[0112] Furthermore, the device control unit 38-i activates the variable-configuration device after a snapshot image is generated and the storage processing by the storage processing unit 27-i is completed. In Figures 22 and 23, the device control unit 38-1 activates the variable-configuration device after a snapshot image is generated and the storage processing by the storage processing unit 27-1 is completed (step S322). Also, the device control unit 38-2 activates the variable-configuration device after a snapshot image is generated and the storage processing by the storage processing unit 27-2 is completed (step S317). Also, the device control unit 38-3 activates the variable-configuration device after a snapshot image is generated and the storage processing by the storage processing unit 27-3 is completed (steps S318, S346). Also, the device control unit 38-4 activates the variable-configuration device after a snapshot image is generated and the storage processing by the storage processing unit 27-4 is completed (steps S318, S352).

[0113] Furthermore, the boot unit 31 (boot loader) of the information processing device 30 stores snapshot images of OS-1 to OS-4 in the volatile memory 22 during snapshot booting (step S331 in Figure 24). Then, the boot unit 31 requests the execution unit 34-i (where i = an integer from 1 to 4) to start OS-i (step S332). The execution unit 34-i then starts OS-i (step S333).

[0114] Furthermore, in snapshot boot mode, the OS starts with variable-configuration devices disabled. Therefore, the device control unit 38-i enables the variable-configuration devices after snapshot boot mode.

[0115] Specifically, the device control unit 38-i reads device information from the non-volatile memory 23 if its own OS (OS-i) is permitted to access the non-volatile memory 23 (step S334). Then, based on the device information, the device control unit 38-i enables devices that can be accessed by its own OS (step S336). In addition, the device control unit 38-i transmits the read device information to an OS that is not permitted to access the non-volatile memory 23 via the communication unit 26-i (step S335).

[0116] Furthermore, if the device control unit 38-i is not permitted to access the non-volatile memory 23, it stores the device information received from the other OS in the volatile memory 22. The device control unit 38-i also enables devices that can be accessed by the OS based on the received device information (step S336).

[0117] Next, we will describe an example of a procedure for changing the device configuration. Figure 25 is a diagram showing an example of the procedure for changing the device configuration in Case 1 described above. Figure 26 is a diagram showing an example of the procedure for changing the device configuration in Case 2 described above.

[0118] Case 1 is a case in which a snapshot image is used in a derivative device with a different device configuration from the device from which the snapshot image was generated. In Case 1, the information processing device 30 is first started up either normally or using a snapshot startup. Normal startup is performed, for example, by the flow shown in Figure 21. Snapshot startup is performed, for example, by the flow shown in Figure 24.

[0119] The information processing device 30 is then instructed to generate a snapshot image and performs the generation of a snapshot image (step S401 in Figure 25). The generation of the snapshot image is performed, for example, according to the flow shown in Figure 22. The information processing device 30 is then powered off. Here, for example, a snapshot image of configuration A is generated.

[0120] The snapshot image generated and stored in the non-volatile memory 23 is distributed to the derived device (step S402). Specifically, the snapshot image is stored in the non-volatile memory of the derived device.

[0121] The derived device is started using the delivered snapshot image (step S403). Snapshot startup is performed, for example, by the flow shown in Figure 24.

[0122] Thus, in Case 1, the snapshot image can be used on a derivative device with a different device configuration than the device from which the snapshot image was generated. This reduces the effort required for managing and evaluating snapshot images.

[0123] At least part of the steps S401 to S403 may be performed manually, or automatically by a control device (not shown) that controls the information processing device 30. For example, the control device may start the information processing device 30 normally, and after startup, instruct the information processing device 30 to generate a snapshot image. The control device may also turn off the power to the information processing device 30 after receiving a notification from the information processing device 30 indicating that the snapshot image storage process is complete. The control device may also store the snapshot image stored in the non-volatile memory 23 of the information processing device 30 in the non-volatile memory of the derived device. The control device may also start the derived device in snapshot mode.

[0124] Case 2 is a case in which the device configuration is changed within the same information processing device 30. In Case 2, the information processing device 30 is first started up either normally or as a snapshot. Normal startup is performed, for example, by the flow shown in Figure 21. Snapshot startup is performed, for example, by the flow shown in Figure 24.

[0125] The information processing device 30 is then instructed to generate a snapshot image and performs the generation of a snapshot image (step S501 in Figure 26). The generation of the snapshot image is performed, for example, according to the flow in Figure 22. Then, the information processing device 30 is powered off. Here, for example, a snapshot image of configuration A is generated.

[0126] The information processing device 30 has its device configuration changed. The information processing device 30 also has its device information stored in the non-volatile memory 23, etc., changed (step S502). Specifically, for example, an operator changes the device configuration and device information of the information processing device 30.

[0127] After the device configuration change, the information processing device 30 is started using a snapshot image stored in the non-volatile memory 23 (step S503). Snapshot startup is performed, for example, by the flow shown in Figure 24.

[0128] Thus, in Case 2, the same snapshot image can be used even if the device configuration changes. This reduces the effort required to manage and evaluate snapshot images.

[0129] As described above, in the third embodiment of this disclosure, the information processing device 30 includes a startup unit 31, a volatile memory 22, a non-volatile memory 23, and execution units 34-1 to 34-N. The startup unit 31 starts each of the multiple operating systems. Each of the execution units 34-1 to 34-N executes processing using each of the multiple operating systems. The execution unit 34-i includes a generation unit 35-i, a communication unit 26-i, and a storage processing unit 27-i. When instructed to generate a snapshot image, the generation unit 35-i generates a snapshot image of the volatile memory 22 used by its own OS. The snapshot image shows the contents of the volatile memory 22 used by the OS. The own OS is its own OS. The communication unit 26-i communicates with other OSs. Other OSs are other OSs among the multiple operating systems. The storage processing unit 27-i performs storage processing. The storage processing is the process of storing the snapshot image of its own OS in the non-volatile memory 23. During memory processing, if the local OS is not permitted to access the non-volatile memory 23, the memory processing unit 27-i sends a snapshot image of its own OS to another OS that is permitted to access the non-volatile memory 23 via the communication unit 26-i. Also, during memory processing, if the local OS is permitted to access the non-volatile memory 23, the memory processing unit 27-i stores a snapshot image of its own OS in the non-volatile memory 23. Furthermore, during memory processing, if the communication unit 26-i receives a snapshot image of another OS, the memory processing unit 27-i stores the snapshot image of the other OS in the non-volatile memory 23. When the startup unit 31 is instructed to start using a snapshot image, it starts each of the multiple OSs using the snapshot image stored in the non-volatile memory 23.

[0130] Thus, in the information processing device 30, if the memory processing unit 27-i is not permitted to access the non-volatile memory 23, it sends a snapshot image of its own OS to another OS that is permitted to access the non-volatile memory 23. Furthermore, when the communication unit 26-i receives a snapshot image of another OS, the memory processing unit 27-i stores the snapshot image of the other OS in the non-volatile memory 23. This allows the information processing device 30 to store snapshot images of OSs that cannot access the non-volatile memory in the non-volatile memory 23, enabling snapshot booting even in a multi-OS configuration. Therefore, it becomes possible to speed up OS booting in a multi-OS configuration.

[0131] In this embodiment, the execution unit 34-i also includes a device control unit 38-i. When instructed to generate a snapshot image, the device control unit 38-i disables the variable-configuration device before the generation unit 35-i generates the snapshot image. The device control unit 38-i then enables the variable-configuration device after the snapshot image has been generated and the storage processing by the storage processing unit 27-i has been completed. This allows the snapshot image to be generated with the variable-configuration device disabled, making it possible to use snapshot startup even if the device configuration is changed.

[0132] Furthermore, if its own OS (OS-i) is permitted to access the non-volatile memory 23, the device control unit 38-i reads device information from the non-volatile memory 23. The device control unit 38-i also transmits the read device information to an OS that is not permitted to access the non-volatile memory 23 via the communication unit 26-i. This makes it possible to share device information between OSs even if there is an OS that cannot access the non-volatile memory 23, so that snapshot startup can be used even if the device configuration is changed in a multi-OS configuration.

[0133] [Example Hardware Configuration] This section describes an example of hardware resource configurations for realizing the information processing devices (10, 20, 30) in each embodiment of the present disclosure described above using a single information processing device (computer). Note that an information processing device may be realized using at least two information processing devices, either physically or functionally. Furthermore, an information processing device may be realized as a dedicated device. Also, only some functions of an information processing device may be realized using an information processing device.

[0134] Figure 27 is a schematic diagram showing examples of hardware configurations of information processing devices that can implement each embodiment of the information processing device of this disclosure. The information processing device 90 includes a communication interface 91, an input / output interface 92, an arithmetic unit 93, a storage device 94, a non-volatile storage device 95, and a drive device 96.

[0135] For example, the startup unit 11 and execution unit 14-i in Figure 1 can be implemented by the arithmetic unit 93. Also, the volatile memory 12 can be implemented by the storage device 94. Furthermore, the non-volatile memory 13 can be implemented by the non-volatile storage device 95.

[0136] The communication interface 91 is a communication means for the information processing device of each embodiment to communicate with an external device by wire and / or wireless means. If the information processing device is implemented using at least two information processing devices, these devices may be connected via the communication interface 91 to enable mutual communication.

[0137] The input / output interface 92 is a human-machine interface, such as a keyboard as an example of an input device, or a display as an output device.

[0138] The arithmetic unit 93 is implemented by a general-purpose CPU (Central Processing Unit) or microprocessor, as well as multiple electrical circuits. The arithmetic unit 93 can, for example, read various programs stored in the non-volatile memory device 95 into the memory device 94 and execute processing according to the read programs.

[0139] The storage device 94 is a memory device such as RAM (Random Access Memory) that can be accessed by the arithmetic unit 93, and stores programs and various data. The storage device 94 may also be a volatile memory device.

[0140] The non-volatile storage device 95 is a non-volatile storage device such as ROM (Read Only Memory) or flash memory, and is capable of storing various programs and data.

[0141] The drive device 96 is, for example, a device that processes data reading and writing to the recording medium 97, which will be described later.

[0142] The recording medium 97 is any recording medium capable of recording data, such as an optical disc, magneto-optical disc, or semiconductor flash memory.

[0143] Each embodiment of this disclosure may be implemented, for example, by configuring an information processing device 90 as illustrated in Figure 27, and supplying this information processing device with a program capable of realizing the functions described in each embodiment above.

[0144] In this case, the embodiment can be realized by having the arithmetic unit 93 execute the program supplied to the information processing device. Furthermore, it is also possible to configure only some, rather than all, of the functions of the information processing device in the information processing device 90.

[0145] Furthermore, the above program may be recorded on the recording medium 97, and the information processing device may be configured so that the program is stored in the non-volatile storage device 95 as appropriate during the shipping stage or operation stage of the information processing device. In this case, the method of supplying the above program may be to install it into the information processing device using an appropriate jig during the manufacturing stage before shipping or during the operation stage. Alternatively, the method of supplying the above program may be to use a general procedure such as downloading it from an external source via a communication line such as the Internet.

[0146] Some or all of the above embodiments may also be described as follows, but are not limited to the following:

[0147] (Note 1) A boot unit that starts each of multiple operating systems, Multiple execution units that perform processing using each of the aforementioned multiple operating systems, Non-volatile memory and Volatile memory and Equipped with, Each of the aforementioned plurality of execution units is: When instructed to generate a snapshot image showing the contents of the volatile memory used by the OS, the generation unit generates a snapshot image of the volatile memory used by its own OS, A communication unit that communicates with other operating systems, which are other operating systems among the aforementioned multiple operating systems, A storage processing unit performs a storage operation, which is the process of storing a snapshot image of the OS in the non-volatile memory. Equipped with, The memory processing unit, in the memory processing, If the aforementioned OS is not permitted to access the non-volatile memory, The snapshot image of the OS is transmitted via the communication unit to another OS that is permitted to access the non-volatile memory. If the aforementioned OS is permitted to access the non-volatile memory, The snapshot image of the OS is stored in the non-volatile memory. When the communication unit receives a snapshot image of another OS, it stores the snapshot image of the other OS in the non-volatile memory. When instructed to start using a snapshot image, the boot unit starts each of the multiple operating systems using the snapshot image stored in the non-volatile memory. Information processing device.

[0148] (Note 2) The execution unit further comprises a device control unit, When the device control unit is instructed to generate a snapshot image, it disables the variable-configuration device before the generation unit generates the snapshot image. The variable-configuration device is a device that is not included in the information processing device depending on the configuration of the information processing device. The information processing device described in Appendix 1.

[0149] (Note 3) The device control unit activates the variable-configuration device after the snapshot image has been generated and the storage process has been completed. The information processing device described in Appendix 2.

[0150] (Note 4) The device control unit activates the variable-configuration device after the OS has finished booting using the snapshot image. The information processing device described in Appendix 2 or Appendix 3.

[0151] (Note 5) If the OS is permitted to access the non-volatile memory, the device control unit reads device information indicating the device configuration of the information processing device from the non-volatile memory and transmits the read device information via the communication unit to an OS that is not permitted to access the non-volatile memory. An information processing device described in any one of the appendices 2 through 4.

[0152] (Note 6) If the device control unit is not permitted to access the non-volatile memory, it stores the device information received from another OS in the volatile memory. The information processing device described in Appendix 5.

[0153] (Note 7) When a normal startup, which does not use a snapshot image, is instructed, the startup unit reads the device information from the non-volatile memory and stores the read device information in the volatile memory. The information processing device described in Appendix 5 or Appendix 6.

[0154] (Note 8) When instructed to start using a snapshot image, the startup unit stores the snapshot image stored in the non-volatile memory in the volatile memory and starts each of the multiple operating systems. An information processing device described in any one of the appendices 1 through 7.

[0155] (Note 9) Each of the multiple operating systems used in an information processing device, When instructed to create a snapshot image showing the contents of the volatile memory used by the OS, the OS itself will create a snapshot image of the volatile memory it uses. If the aforementioned OS is not permitted to access non-volatile memory, The snapshot image of the OS is sent to another OS that is authorized to access the non-volatile memory. If the aforementioned OS is permitted to access the non-volatile memory, The snapshot image of the OS is stored in the non-volatile memory. When a snapshot image of another OS is received, the snapshot image of the other OS is stored in the non-volatile memory. When the information processing device is instructed to start using a snapshot image, it starts each of the multiple operating systems using the snapshot image stored in the non-volatile memory. A method for controlling an information processing device.

[0156] (Note 10) On the computer, A boot function that starts each of multiple operating systems, Multiple execution functions that perform processing using each of the aforementioned multiple operating systems To make it happen, Each of the aforementioned multiple execution functions is: When instructed to generate a snapshot image showing the contents of the volatile memory used by the OS, the OS generates a snapshot image of the volatile memory used by its own OS. A communication function that communicates with other operating systems, which are other operating systems among the aforementioned multiple operating systems. The memory processing function performs a memory processing operation, which involves storing the aforementioned snapshot image of the OS in non-volatile memory. Includes, The memory processing function, in the memory processing, If the aforementioned OS is not permitted to access the non-volatile memory, The snapshot image of the OS is transmitted via the communication function to another OS that is permitted to access the non-volatile memory. If the aforementioned OS is permitted to access the non-volatile memory, The snapshot image of the OS is stored in the non-volatile memory. When the communication function receives a snapshot image of another OS, the snapshot image of the other OS is stored in the non-volatile memory. The aforementioned startup function, when instructed to start using a snapshot image, starts each of the multiple operating systems using the snapshot image stored in the non-volatile memory. A control program for an information processing device.

[0157] Furthermore, some or all of the configurations described in Appendices 2 to 8, which are subordinate to Appendice 1 above, may also be subordinate to Appendices 9 and 10 in the same way as those described in Appendices 2 to 8. Moreover, not limited to Appendices 1, 9, and 10, some or all of the configurations described as appendices may also be subordinate to various hardware, software, various recording means for recording software, or systems, without departing from the embodiments described above.

[0158] Although the present disclosure has been described above with reference to embodiments, the present disclosure is not limited to the embodiments described above. Various modifications to the structure and details of the present disclosure can be made as can be understood by those skilled in the art within the scope of the present disclosure. Furthermore, each embodiment can be combined with other embodiments as appropriate. [Explanation of Symbols]

[0159] 10, 20, 30 Information Processing Devices 11, 21, 31 Starting section 12, 22 Volatile memory 13, 23 Non-volatile memory 14-i, 24-i, 34-i Execution Units 15-i, 25-i, 35-i generation unit 16-i, 26-i Communications Department 17-i, 27-i Memory Processing Unit 38-i Device Control Unit 90 Information Processing Equipment 91 Communication Interface 92 Input / Output Interfaces 93 Arithmetic unit 94 Storage device 95 Non-volatile memory devices 96 Drive unit 97 Recording media

Claims

1. A boot unit that starts each of multiple operating systems, Multiple execution units that perform processing using each of the aforementioned multiple operating systems, Non-volatile memory and Volatile memory and Equipped with, Each of the aforementioned plurality of execution units is: When instructed to generate a snapshot image showing the contents of the volatile memory used by the OS, the system includes a generation unit that generates a snapshot image of the volatile memory used by its own OS, and A communication unit that communicates with another OS, which is one of the aforementioned multiple OSs, A storage processing unit performs a storage operation, which is the process of storing the snapshot image of the OS in the non-volatile memory. Equipped with, The memory processing unit, in the memory processing, If the aforementioned OS is not permitted to access the non-volatile memory, The snapshot image of the self-OS is transmitted via the communication unit to another OS that is permitted to access the non-volatile memory. If the aforementioned OS is permitted to access the non-volatile memory, The snapshot image of the OS is stored in the non-volatile memory. When the communication unit receives a snapshot image of another OS, it stores the snapshot image of the other OS in the non-volatile memory. When instructed to start using a snapshot image, the startup unit starts each of the multiple operating systems using the snapshot image stored in the non-volatile memory. Information processing device.

2. The execution unit further comprises a device control unit, When the device control unit is instructed to generate a snapshot image, it disables the variable-configuration device before the generation unit generates the snapshot image. The variable-configuration device is a device that is not included in the information processing device depending on the configuration of the information processing device. The information processing apparatus according to claim 1.

3. The device control unit activates the variable-configuration device after the snapshot image has been generated and the storage process has been completed. The information processing apparatus according to claim 2.

4. The device control unit activates the variable-configuration device after the OS has finished booting using the snapshot image. The information processing apparatus according to claim 2.

5. If the OS is permitted to access the non-volatile memory, the device control unit reads device information indicating the device configuration of the information processing device from the non-volatile memory, and transmits the read device information via the communication unit to an OS that is not permitted to access the non-volatile memory. The information processing apparatus according to claim 2.

6. The device control unit, if its own OS is not permitted to access the non-volatile memory, stores the device information received from another OS in the volatile memory. The information processing apparatus according to claim 5.

7. When a normal startup, which does not use a snapshot image, is instructed, the startup unit reads the device information from the non-volatile memory and stores the read device information in the volatile memory. The information processing apparatus according to claim 5.

8. When instructed to start using a snapshot image, the startup unit stores the snapshot image stored in the non-volatile memory in the volatile memory and starts each of the multiple operating systems. The information processing apparatus according to any one of claims 1 to 7.

9. Each of the multiple operating systems used in an information processing device, When instructed to create a snapshot image showing the contents of the volatile memory used by the OS, the system creates a snapshot image of the volatile memory used by its own OS. If the aforementioned OS is not permitted to access non-volatile memory, The snapshot image of the OS is sent to another OS that is authorized to access the non-volatile memory. If the aforementioned OS is permitted to access the non-volatile memory, The snapshot image of the OS is stored in the non-volatile memory. When a snapshot image of another OS is received, the snapshot image of the other OS is stored in the non-volatile memory. When the information processing device is instructed to start using a snapshot image, it starts each of the multiple operating systems using the snapshot image stored in the non-volatile memory. A method for controlling an information processing device.

10. On the computer, A boot function that starts each of multiple operating systems, Multiple execution functions that perform processing using each of the aforementioned multiple operating systems To make it happen, Each of the aforementioned multiple execution functions is: When instructed to generate a snapshot image showing the contents of the volatile memory used by the OS, the system generates a snapshot image of the volatile memory used by its own OS. A communication function that communicates with other operating systems, which are other operating systems among the aforementioned multiple operating systems. A memory processing function which performs a memory processing that stores the aforementioned snapshot image of the OS in non-volatile memory. Includes, The memory processing function, in the memory processing, If the aforementioned OS is not permitted to access the non-volatile memory, The snapshot image of the OS is transmitted via the communication function to another OS that is permitted to access the non-volatile memory. If the aforementioned OS is permitted to access the non-volatile memory, The snapshot image of the OS is stored in the non-volatile memory. When the communication function receives a snapshot image of another OS, the snapshot image of the other OS is stored in the non-volatile memory. The aforementioned startup function, when instructed to start using a snapshot image, starts each of the multiple operating systems using the snapshot image stored in the non-volatile memory. A control program for an information processing device.