WO2005071522A1 - 高速再起動方法および情報処理装置ならびにプログラム - Google Patents

高速再起動方法および情報処理装置ならびにプログラム Download PDF

Info

Publication number
WO2005071522A1
WO2005071522A1 PCT/JP2005/001559 JP2005001559W WO2005071522A1 WO 2005071522 A1 WO2005071522 A1 WO 2005071522A1 JP 2005001559 W JP2005001559 W JP 2005001559W WO 2005071522 A1 WO2005071522 A1 WO 2005071522A1
Authority
WO
WIPO (PCT)
Prior art keywords
restart
information
user
area
main storage
Prior art date
Application number
PCT/JP2005/001559
Other languages
English (en)
French (fr)
Inventor
Akihito Kohiga
Original Assignee
Nec Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nec Corporation filed Critical Nec Corporation
Priority to JP2005517342A priority Critical patent/JP4683218B2/ja
Priority to US10/587,022 priority patent/US9298472B2/en
Publication of WO2005071522A1 publication Critical patent/WO2005071522A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering

Definitions

  • the present invention relates to a high-speed restart method suitable for an AP server, a general-purpose information processing device, and the like, and more particularly, to a high-speed restart method and information in which an application operated before restart can be continuously operated after restart. If it is a light processing unit, it relates to (1) the program. Background art
  • Reboot is used to reflect the settings when the OS settings are changed.
  • Windows registered trademark
  • restart is often used as the first means of recovering the system from the failure. Such restarts are frequently used during the operation of the system, and it is desired that the restart process be performed at a high speed in order to minimize the downtime of the system.
  • FIG. 1 shows the configuration of this conventional information processing apparatus.
  • a conventional information processing device 1 has a main storage device 11 disposed therein and an input / output device 2 externally.
  • An OS program area 111 into which an operating system (hereinafter referred to as OS) is loaded, an initialized data area 112, an uninitialized data area 113, and an initialized data save area 114 are arranged inside the main storage device 11.
  • the restart start means 12 the fast restart designation means 13, the execution control means 14, the initialization data saving means 15, the initialization data recovery means 16, the input / output It comprises stop means 17 and OS load means 18.
  • the OS initialization data is transferred to the initial initialization data when the OS is started.
  • the high-speed restart is specified by the high-speed restart specification means 13
  • the execution is transferred to the OS program execution start address by the execution control means 14, and the initialization data is saved.
  • the initialized data is recovered by the recovery means 16.
  • the conventional fast restart method described in Patent Document 1 can realize a fast restart of the OS, but does not mention an application (an application program) executed on the OS. .
  • an application an application program executed on the OS.
  • the application terminates normally the processing speed of the disk or the like and the access to the auxiliary storage device are frequently reduced in order to save the current service status. appear. Such access to the auxiliary storage device increases the system termination processing time and increases the system restart time.
  • Reboot is mainly used when the system settings are reflected in the OS or when the OS does not operate normally due to a failure of an application.
  • a server that provides services using multiple applications, if one of the applications fails and the OS does not operate normally, it is necessary to restart it. It is necessary to terminate applications other than the application in which the error occurred, and the application in the middle of the service is forced to interrupt the service.
  • the present invention provides a high-speed restart method and an information processing apparatus that can restart the system at high speed while minimizing the processing at the time of shut down.
  • the purpose is to provide the program to Lapu.
  • Another object of the present invention is to provide a program for a high-speed restart method and an information processing apparatus capable of continuously operating an application even after restart. Disclosure of the invention
  • the computer executes the program.
  • a program in a computer is divided into execution units called processes and executed. Since a computer can execute only one process at a time, a higher-level program that manages the process is required to execute multiple processes simultaneously.
  • This is the OS, but the OS has a process table in the main storage area used by the OS itself to manage multiple processes.
  • a process table is prepared for each process, and stores information for executing a process and information during execution. Therefore, a process can suspend a process that is in the middle of execution or resume processing from the point at which it was suspended by saving the main storage area and the process table used by the process.
  • An application consists of one or more processes.
  • the process table existing in the OS when the application is executed, and other information necessary for restoring the process are copied to a save area in the main storage area, and when the application is restarted, the information is stored in the save area.
  • the process information of the user process in the OS is saved in a save area on the main storage device before the OS is restarted.
  • the main storage area used by the OS is initialized without initializing the used main storage area, and the saved process information is restored in the OS after the OS is restarted. It is characterized by that.
  • a second fast restart method of the present invention before restarting the OS, the process information in the OS related to the user process is saved in a save area on the main storage device, and the restart is performed in the saved process information.
  • a restart flag that specifies whether or not the main storage area used by the user process whose restart flag is set to not restart when the OS is restarted is not initialized. After the OS is restarted, the process information of the set user process is restored in the OS until the restart flag of the saved process information is not restarted. It is characterized by doing.
  • the third fast restart method of the present invention is to save the process information in the OS on the user process that is continuously operated after the OS restart into the save area on the main storage device before the OS restart, and restart the OS.
  • the main storage area used by the user process is not initialized, the main storage area used by the OS is initialized, and after the OS is restarted, the saved process information is restored in the OS.
  • it is characterized by the following.
  • it is determined whether the user process is to be continuously operated after the OS is restarted, or vice versa.
  • the user process is to be restarted when the OS is restarted. It can be determined by referring to the process ID table that stores the process identifier.
  • a fourth fast restart method when a user process is generated, process information in the OS related to the generated user process is saved in a save area on a main storage device, and when the user process is switched, Set a restart flag to specify whether to restart the saved process information and, if not restarting, update the process information saved in the save area to the latest state, and At the end of the process, the saved process information is invalidated, and when the OS is restarted, the main storage area used by the user process whose restart flag is set to not restart is not initialized.
  • the main storage area used by the user is initialized, and after restarting the OS, the user flag is set so that the restart flag in the saved process information does not restart.
  • Process information of the scan characterized in that restored the OS.
  • a fifth fast restart method is characterized in that, in the second or fourth fast restart method, when a restart flag for designating whether or not to restart the process information on a certain user process is set by the user, It is characterized in that all other user processes belonging to the same user application program as the process are searched, and the restart flag in the process information on all the searched user processes is set to the same value.
  • the initialization of the main storage area used by the OS includes the steps of: It is characterized in that it is performed by overwriting the main storage image of the OS stored in the non-volatile storage unit to the main storage area used by the OS.
  • a write access occurs every time a write access from the OS to the nonvolatile storage unit occurs during system operation.
  • the data within the address range having a predetermined width including the address is copied from the nonvolatile storage unit to an alternative area secured in a readable and writable main storage unit which constitutes a part of the main storage device, and thereafter, the data having the predetermined width is copied.
  • the access to the address range is converted into the access to the alternative area.
  • a first information processing apparatus includes: a process information saving unit that saves process information of a user process in the OS into a save area on a main storage device before restarting the OS; Main memory initialization means for initializing the main storage area used by the OS without initializing the main storage area used by the user process, and after the OS restarts, saves the saved process information in the OS. And a process restoring means for restoring the data.
  • a second information processing apparatus includes: a process information saving unit that saves process information in the OS related to a user process in a save area on a main storage device before restarting the OS; A restart flag setting means for setting a restart flag for specifying whether or not to restart, and a main storage area used by a user process whose restart flag is set not to restart when the OS is restarted.
  • the main memory initializing means for initializing the main storage area used by the OS without initializing, and the restart flag in the saved process information is set so as not to restart after the OS is restarted.
  • Process restoring means for restoring process information of a user process in the OS.
  • a third information processing apparatus includes: a process information saving unit that saves process information in the OS related to a user process that is continuously operated after the OS restart into a save area on the main storage device before the OS is restarted.
  • a main memory initialization means for initializing a main storage area used by the OS without initializing a main storage area used by the user process when the OS is restarted; and
  • a process restoring means for restoring the saved process information in the OS.
  • the process information saving means refers to a process ID table that stores an identifier of a process that is continuously operated after the OS is restarted or a process that is not continuously operated, and restarts the OS. Process information in the OS related to user processes that are to be continuously operated later is saved in a save area on the main storage device.
  • the fourth information processing apparatus of the present invention is characterized in that, when a user process is generated, process save area creating means for saving process information in the OS related to the created user process to a save area on a main storage device; At the time of switching, the process information saved in the save area is updated to the latest state if the restart is specified in the saved process information to specify whether to restart or not.
  • the main memory initialization procedure that initializes the main storage area used by the OS without initializing the main storage area used by the user process that has been set
  • the fifth information processing apparatus of the present invention is characterized in that, in the second or fourth information processing apparatus, when setting a restart flag for designating whether or not to restart in the process information on a certain user process, the user process Searches all other user processes belonging to the same user application program as It is characterized in that it has means for setting the restart flag in the process information related to the same value.
  • a sixth information processing apparatus is the information processing apparatus according to any one of the first to fourth aspects, wherein the main memory initialization unit initializes a main storage area used by the OS.
  • the main storage image of the OS stored in the non-volatile storage unit forming a part of the OS is overwritten on the main storage area used by the OS.
  • the seventh information processing device of the present invention is characterized in that, in the sixth information processing device, every time a write access from the OS to the non-volatile storage unit occurs during the system operation, an address in which the write access occurs is included.
  • the data within the address range having a predetermined width is copied from the non-volatile storage unit to an alternate area secured in a readable and writable main storage unit which constitutes a part of the main storage device, and is then transferred to the address range having the predetermined width.
  • a first program of the present invention is a process information saving means for saving a process information of a user process in an OS to a save area on a main storage device before restarting the OS.
  • a main memory initialization means for initializing a main storage area used by the OS without initializing a main storage area used by the user process, and storing the saved process information in the OS after restarting the OS. It is characterized in that it functions as a process restoring means for restoring the data within the device.
  • a second program according to the present invention is a computer-readable storage medium storing process information saving means for saving, in a save area on a main storage device, process information of a user process in an OS before restarting the OS.
  • a restart flag setting means for setting a restart flag for specifying whether or not to restart the information, and a main memory used by a user process in which the restart flag is set not to restart when the OS is restarted.
  • Main memory initialization means for initializing the main storage area used by the OS without initializing the area. After the OS is restarted, the restart flag in the saved process information is set so as not to restart. It is characterized by functioning as a process restoration means for restoring process information of a user process in the OS.
  • the third program according to the present invention is a program for controlling the computer before the OS is restarted and after the OS is restarted.
  • Process information saving means for saving the process information in the OS related to the user process that is continuously operated in the save area in the main memory, and the main memory area used by the user process is initialized when the OS is restarted
  • the main storage area used by the OS without using it is initialized as main storage initialization means, and after the OS is restarted, it is made to function as a process restoration means for restoring the saved process information in the OS. I do.
  • the process information saving means refers to, for example, a process ID table that stores identifiers of processes to be continuously operated after the OS restart or processes not to be continuously operated before the OS is restarted, and after the OS is restarted.
  • the process information in the OS related to the user process that is continuously operated is saved in the save area on the main storage device.
  • a process save area creating means for saving process information in the OS relating to the created user process to a save area on a main storage device, At the time of switching, a process that sets a restart flag to specify whether or not to restart the process information saved in the save process, and updates the process information saved in the save area to the latest status if not restarted Save information update means, process information save area release means for invalidating the saved process information at the end of the user process, and a user whose restart flag is set not to restart when the OS is restarted.
  • the main memory used by the OS is initialized without initializing the main memory used by the process.
  • a process restoring means for restoring, within the OS, the process information of the user process in which the restart flag of the saved process information is not restarted after the OS restart.
  • the fifth program of the present invention is characterized in that, in the second or fourth program, when setting a restart flag for designating whether or not to restart the computer to process information relating to a certain user process, A means for searching for all other user processes belonging to the same user application program as the user process and for setting the restart flag in the process information relating to all the searched user processes to the same value.
  • the sixth program of the present invention is the program according to any of the first to fourth programs,
  • the main memory initializing means initializes the main storage area used by the OS by using the main memory image of the OS stored in the non-volatile storage unit constituting a part of the main storage device by using the OS. It is performed by overwriting the existing main storage area.
  • the computer is further configured to store an address at which a write access occurs every time a write access from the OS to the nonvolatile storage unit occurs during system operation.
  • the data within the address range having the predetermined width is copied from the non-volatile storage section to an alternative area secured in the readable and writable main storage section which constitutes a part of the main storage device, and is then transferred to the address range having the predetermined width. Means for converting the access to the access to the alternative area.
  • the present invention provides the following OS restart method. That is, the first OS memory area, which is a memory area for loading an OS, and the process memory area, which is a memory area for loading a process, are allocated on the main memory, and the OS and the corresponding process are assigned.
  • the OS acquires process information, which is information for the OS to manage the process, from the first OS memory area and stores the process information in a predetermined storage device. Of storing in the backup area
  • the stage 2 for initializing the first OS memory area while retaining the process memory area, the second OS memory area is allocated on the main memory, and the OS is loaded. And a step of updating the process information in the memory area according to the process information stored in the step.
  • a step of selecting a process to be retained from the processes loaded in the process memory area, and a step of initializing a process memory area allocated to the unselected process. May be included.
  • the save area may be provided on the main memory.
  • information indicating whether to restart each process may be stored in the save area together with the process information of the process.
  • the data may be stored in a storage device different from the storage device provided with the save area.
  • the process of creating, updating, and releasing the save area in accordance with the creation, switching, and termination of the process may be performed on the storage device provided with the save area.
  • a nonvolatile storage device that stores an image when the OS is loaded into the main memory is prepared in advance.
  • the image stored in the nonvolatile storage device is referred to.
  • the OS may be loaded into the main memory.
  • a process including a plurality of processes associated with one application program is loaded into the process memory area. Selecting the process to be performed and initializing the process memory area allocated to the selected process and processes other than the other processes associated with the same application program as the process. And it may be included.
  • FIG. 1 is a block diagram showing the configuration of a conventional information processing apparatus.
  • FIG. 2 is a block diagram illustrating a configuration of the information processing apparatus according to the first embodiment of the present invention.
  • FIG. 3 is a diagram showing a data structure of a save area according to the first embodiment of the present invention.
  • FIG. 4A and 4B are flowcharts showing the operation of the first embodiment of the present invention
  • FIG. 5 is a diagram showing a block identifier according to the first embodiment of the present invention
  • FIG. FIG. 5 is a flowchart showing processing of main memory initialization means in the first embodiment of the invention
  • FIG. 7 is a block diagram showing a configuration of a modification of the first embodiment of the present invention.
  • FIG. 8 is a flowchart showing an operation of a modification of the first embodiment of the present invention.
  • a block showing the configuration of the information processing apparatus according to the second embodiment of the present invention.
  • FIG. 10 is a flowchart showing the processing of the process save information creating means in the second embodiment of the present invention.
  • FIG. 11 is a flowchart showing the processing of the process save information updating means according to the second embodiment of the present invention.
  • FIG. 12 is a flowchart showing the processing of the process information save area releasing means in the second embodiment of the present invention.
  • FIG. 13 is a configuration diagram of an information processing apparatus to which a fast startup method using a main memory image used in the third embodiment of the present invention is applied.
  • FIG. 14 is a diagram showing an entry configuration of a mapping table section in an information processing device to which a fast-start method using a main memory image used in a third embodiment of the present invention is applied.
  • FIG. 15 is a diagram showing an entry configuration of a protection information section in an information processing apparatus to which a fast startup method using a main storage image used in the third embodiment of the present invention is applied.
  • FIG. 16 is a flowchart showing the processing of the information processing apparatus to which the fast startup method using the main memory image used in the third embodiment of the present invention is applied.
  • FIG. 17 is a flowchart showing the processing of the information processing apparatus to which the fast startup method using the main memory image used in the third embodiment of the present invention is applied.
  • FIG. 18 is a block diagram illustrating a configuration of an information processing apparatus according to the third embodiment of the present invention.
  • FIG. 19 is a flowchart showing processing of main memory initialization means in the information processing apparatus according to the third embodiment of the present invention.
  • FIG. 20 is a block diagram showing the configuration of the information processing apparatus according to the fourth embodiment of the present invention.
  • FIG. 21 is a flowchart showing the processing of the restart flag setting means in the information processing apparatus according to the fourth embodiment of the present invention.
  • FIG. 22 is a flow chart showing the processing of the process information saving means in the first embodiment of the present invention. It is a diagram,
  • FIG. 23 is a flowchart showing the processing of the main memory initialization means in the first embodiment of the present invention.
  • FIG. 24 is a flowchart showing the processing of the process save information creating means in the second embodiment of the present invention.
  • FIG. 25 is a flowchart showing the processing of the process save information updating means in the second embodiment of the present invention.
  • an information processing apparatus 100 includes a CPU (processor) 110 operated by program control, a main storage area 120, and an OS 130.
  • the process is executed by the CPU 110.
  • the main storage area 120 includes an OS program area 121, an OS data area 122, a process use area 123, and a save area 124.
  • the save area 124 there is a process information save area 125 for the number of executed processes.
  • 0S130 includes a process information saving unit 131, a process restoring unit 132, a main memory initialization unit 133, and a restart flag setting unit 134.
  • FIG. 3 shows the data structure of the save area 124.
  • the save area 124 includes an area called a process information save area 125 for saving information managed by the OS for each process, and the process information save areas 125 are connected by a unidirectional list 205. Further, it has a data area indicating the size of the save area 124 called the save area use size 201.
  • the information managed by the OS is a process table 202 and a block table 203. 0S creates and maintains one process table for each process.
  • the process table contains process status, program counters and stack pointers, memory allocation, open file status and schedule information, and all information about the process.
  • the main storage area 120 is managed in units of blocks.
  • the block table 203 has one block in each process and describes the address of a block used by the process.
  • the restart flag 204 is This is a flag for determining whether to restart the process.
  • the restart flag 204 is provided independently of the process table 202.
  • a restart flag may be provided in the process table 202.
  • the save area 124 basically starts from the rearmost address of the main storage area 120 and uses the main storage area 120 as many as the number of processes currently being executed toward the top of the main storage area 120.
  • the method of addressing the evacuation area 124 from the rear fixed position has the following advantages.
  • the OS initializes the main storage area to manage the main storage area at startup. In the present invention, at the time of initializing the main storage area, the OS needs to know the save area 124 used before the restart and the process use area 123 used by the process itself to execute the program. In order to know the process use area 123 used by the process before the restart, after the start, it is preferable to place the save area 124 from the home position.
  • the OS does not need to find out where the save area 124 is, and describe as a part of the OS program that "the process information save area 125 is located from the rearmost address of the main storage area 120".
  • the process information save area 125 is located, and to know the process use area 123 from the process information save area 125 of the save area 124. Therefore, the position of the save area 124 on the main storage area 120 does not have to be at the rearmost position as long as the position of the save area 124 before the restart is known, and another storage device (a nonvolatile memory such as a flash memory) may be used.
  • the save area 124 may be stored in the main storage device).
  • the process information saving unit 131, the process restoring unit 132, the main memory initialization unit 133, and the restart flag setting unit 134 have the following functions.
  • the process information saving means 131 saves the process table and the block table inside the OS in the process information saving area 125.
  • the process of saving the process table is to copy the process table of a certain process from the 0S data area 122 to the process information save area 125.
  • the OS manages the main storage area 120 by dividing it into a plurality of blocks, and the OS executes a process by giving a required amount of blocks to the process. Information about which blocks are used by the process is stored in a block table. Yes.
  • Block table evacuation processing is a block table attached to the process.
  • the restart flag setting means 134 is a means for setting a restart flag 204 provided in a certain process information save area 125 in response to an input from a user.
  • the input from the user is a process ID that identifies the process. Since the process for which the restart flag 204 is set is restarted, the process is not restored to the state before the restart after the restart, and the process information save area 125 and the process use area 123 of the process are released. On the other hand, a process for which the restart flag 204 is not set is not restarted, and is restored to the state before the restart using the process information save area 125 and the process use area 123 of the process.
  • the main memory initializing means 133 is a process for recognizing an area used by the process in the process executed before the OS is started. Normally, the OS performs initialization processing for each block in order to recognize the main storage area 120 available at the time of startup. Here, the block used by the process executed before the start is searched from the block table 203 from the process information save area 125, and the block used is not initialized.
  • the process restoring unit 132 is a process of restoring a process from the process table 202 and the block table 203 stored in the process information save area 125.
  • the restoration process is a process of copying back (copying) the process table 202 and the block table 203 into the OS data area 122.
  • a process information save area 125 is created using the process information save means 131 for all processes (FIG. 4, A100). This process is performed for all processes, and ends when the process information save area 125 has been created for all processes (S101).
  • To create the process information save area 125 first secure the process information save area 125 in the main memory, read the process table 202 of the process from the 0S data area 122, Copying is performed to the secured process information save area 125, and then the block table 203 is read from the OS data area 122 and copied to the secured process information save area 125.
  • the save area use size 201 is added for the main storage area used for the process.
  • a restart flag 204 is set as needed, and the process information save areas 125 are connected to each other in the one-way list 205.
  • the process information save area 125 After the process information save area 125 has been created for all the processes in this way, normal termination processing of the OS is performed (S102). The process is not terminated, and the process waits for the process to be restored after OS startup.
  • the process information save area 125 is created immediately before system shutdown, that is, between the time the user issues a system shutdown command and the creation starts and the OS shutdown process starts, but it is created at any time. You may.
  • the setting of the restart flag 204 by the restart flag setting means 134 is performed at an arbitrary time until the system ends.
  • the restart flag 204 is set in the process information save area 125 and cannot be set until the save area for the process is created. If there is an instruction to restart, 0S needs to temporarily hold the restart flag setting information for the process. The information on the setting at that time is held as a list of process IDs in the restart flag setting means 134. Thereafter, when the process information save area 125 is created, the restart flag 204 is set according to the previous user's instruction.
  • OS startup including OS deployment is the same as OS such as Linux.
  • the deployment of Linux is described in, for example, Reference 1, "D. Bovet and M. Cesati. Detailed Linux Kernel, O'Reilly 'Japan, 2001.”
  • the description of the processing at the time of startup starts from the point where the expansion of the OS into the main memory is completed and the OS performs the first processing.
  • 0S has a block identifier 400 to recognize whether or not a certain block is in use (FIG. 5).
  • Block sense The bessier 400 includes a block number 401, a use flag 402, and a force. There is one block identifier 400 per block.
  • an area for the block identifier 400 is secured in the OS data area 122, and the use flag 402 is set to zero (not used), which is regarded as initialization of the main storage area 120.
  • the start address of the available main storage area is given its value in advance by the BIOS or the like.
  • FIG. 6 shows a flowchart of the main memory initialization means 133 in the present invention.
  • the area used by the save area 124 is confirmed in advance (S201).
  • the area used by the save area 124 can be confirmed by looking at the save area use size 201 in the save area 124.
  • all process information save areas 125 in the save area 124 are searched, and from the process table 203 of the process in which the restart flag 204 is not set (the process before restart is continuously used).
  • Blocks that do not require initialization are grasped in advance (S202).
  • a list of block numbers 401 of blocks used by the save area 124 is temporarily held and used for subsequent processing.
  • the main storage area for one block identifier for the specified address is initialized to 0 (S204).
  • the block initialized earlier is used in the save area 124 (S205). If the address is used (YES in S206), the use flag is set (S207), and the process moves to the next address. In this way, when all the block identifiers 400 of the available area are initialized (YES in S203), the main memory initialization means 133 ends.
  • the process is restored next.
  • the process information save area 125 in the save area 124 is checked, and it is checked whether the restart flag 204 is set (S107). If the restart is to be performed (S108), the save area 124 of the process information is released, and the process is performed with respect to the save information of the next process (S105). If the restart is not performed, the process is restored (S109).
  • the above processing is performed until all entries of the process information save area 125 in the save area 124 are exhausted (S106).
  • Restoring a process secures the area for the process table and block table on the OS data area 122. (S110, S112), copy the saved process table 202 and block table 203 to the prepared area (Slll, S113).
  • the following processing is performed.
  • the use flag 402 in the block identifier 400 of the main memory block used by the process information save area to be deleted is set to zero (not used).
  • the process of terminating the process is omitted, and the input / output process to the device having a low transfer speed such as the auxiliary storage device for terminating the process can be eliminated. Can be shortened.
  • any process can be continuously executed after restarting, maintaining the state before the restart. Therefore, the service provided by the process does not need to be forcibly interrupted when the system is restarted.
  • an information processing apparatus 100a includes a restart process ID table 134a and a restart setting means 134b instead of the restart flag setting means 134. This is different from the information processing apparatus 100 according to the first embodiment of the present invention shown in FIG.
  • the process information in the OS regarding the user process is saved in a save area on the main storage device, and the saved process information is stored in the save area.
  • a user who has set the restart flag 204 to specify whether or not to restart, and the restart flag 204 is set not to restart when the OS is restarted The main memory area used by the OS is initialized without initializing the main memory area used by the process, and after the OS is restarted, the setting is made so that the restart flag 204 in the saved process information does not restart.
  • the process information of the user process is restored in the OS.
  • a restart process ID table 134a that holds the ID of the user process to be restarted is provided, and the restart setting means 134b is input by the user at least before the OS is terminated.
  • the ID of the user process to be restarted is set in the restart process ID table 134a based on the process ID to be restarted.
  • the process information saving means 131 extracts one process table from the OS data area 122 before restarting the OS (S110), and the process ID set in the process table is used as the process ID.
  • the restart process ID table 134a By checking whether or not the user process is registered in the restart process ID table 134a (S111), it is determined whether the user process corresponding to the process table is a process to be restarted or a user process to be continuously operated after the OS restart ( (S112), the process information in the OS regarding the user process that is continuously operated without restarting is saved in the save area 124 on the main storage device (S100). That is, the process information save area 125 as shown in FIG. 3 is created. However, in the case of this modification, the restart flag 204 may be omitted.
  • the main memory initializing means 133 initializes the main memory area used by the saved user process without resetting the main memory area used by the 0S. Initialization (S104), the saved process information is restored in the OS (S105, S106, S109).
  • the process ID of the user process to be restarted is set in the restart process ID table 134a.
  • the process ID of the user process that is continuously operated without restarting is set. You may do so.
  • the process information save area 125 is also created for processes that need to be restarted.
  • the process information save area 125 is created only for processes that do not need to be restarted. Therefore, the number of times of creating the process information save area 125 can be reduced as compared with the first embodiment.
  • the information processing apparatus 100b includes a restart process ID table 134a and a restart setting means 134b instead of the restart flag setting means 134
  • the first embodiment of the present invention shown in FIG. 2 is different from the first embodiment shown in FIG. 2 in that a process save information creating unit 135, a process save information updating unit 136, and a process information save area releasing unit 137 are provided instead of the save unit 131.
  • the restart process ID table 134a and the restart setting means 134b are the same as those in the modification of the first embodiment of the present invention. That is, the restart setting unit 134b sets the ID of the user process to be restarted in the restart process ID table 134a based on the process ID input by the user.
  • the process information saving means 131 in the first embodiment of the present invention is divided into three means.
  • the process save information is created at any time by using the process information saving means 131, but in the present embodiment, when the process is created, when the process is switched, and when the process ends, Process information Create, update, and release the save area.
  • Process switching refers to the following processing. UNIX
  • a multitask OS such as (registered trademark)
  • the CPU can execute only one process in a certain short time ⁇ t. Therefore, in order to make it appear that multiple processes are running at the same time, the multitasking OS switches the execution of processes at regular intervals. This is called process switching.
  • process switching The following describes how to create, update, and release process information save areas.
  • FIG. 10 shows a flowchart of the process save information creation means 135 that operates when a process is created.
  • the process save information creation means 135 starts the process when the process creation by the OS is completed.
  • Completion of process creation means that the process table 202 of the process to be created is prepared in the OS data area 122, the process use area 123 is assigned to the process, the program to be executed is copied to the use area 123, and the process is executed by the process. Refers to the point at which execution preparation is completed.
  • the process information save area 125 is stored in the main memory. It is secured on the area 120 (S301 in FIG. 10).
  • the process table 202 of the process is copied from the OS data area 122 to the process information save area 125 (S302).
  • the block table 203 of the process is copied from the OS data area 122 to the process information save area 125 (S303).
  • the one-way list 205 is set and registered in the list of the save area 124 (S304).
  • FIG. 11 shows a flowchart of the process save information updating means 136 which operates at the time of process switching.
  • the process information save area 125 of the corresponding process is searched from the save area 124 (S401).
  • the restart flag 204 is canceled (S405), and the latest process table 202 in the OS data area 122 is copied to the process information save area 125 (S406).
  • the latest block table 203 in the OS data area 122 is copied to the process information save area 125 (S407), and the process save information updating means 136 ends. If there is no instruction from the user, it follows the restart flag. If the restart flag 204 is on, the update processing (S406, S407) is not performed and the process ends.
  • FIG. 12 shows a flowchart of the process information save area releasing means 137 which operates at the end of the process.
  • the process information save area 125 of the process is searched from the save area 124 (S501).
  • the process information save area 125 of the process is deleted from the one-way list 205 (S502).
  • This process (S502) is a process of joining a list of areas connected before and after the process information save area of the process with the list of connected areas.
  • the process information save area 125 of the process is released (S503). That is, the use flag 402 in the block identifier 400 of the main memory block used by the process information save area 125 to be deleted is set to zero (not used), and the process information is saved from the value of the save area use size 201. Subtract only the process information save area. This completes the process of the process information save area release means 137. Then, the process proceeds to the end processing of the service.
  • the process information save area 125 it is necessary to create the process information save area 125 at the end of the system in order to keep the latest information of the process. For example, if a process information save area 125 is created for a process 10 minutes before the end of the system, the process will execute the process for 10 minutes from the creation of the process information save area 125 to the end of the system, and the process table will be created.
  • the block table may have been rewritten or freed blocks that are no longer needed, and the block table may have been rewritten. In such a case, even if the process table 202 and the block table 203 are restored by the process restoring means 132, the process may not be executed.
  • an information processing device to which the main storage image method is applied has at least a main storage device 101 and a data processing device 150, and operates under program control.
  • the main storage device 101 includes a main storage unit 126 and a nonvolatile storage unit 140.
  • the non-volatile storage unit 140 is a unit that stores a main storage image after the initialization processing of the OS and the application program.
  • the nonvolatile storage unit 140 may be any type of memory as long as it is a nonvolatile memory.
  • a rewritable nonvolatile memory such as a flash RAM or a read-only nonvolatile memory such as a ROM can be used.
  • the method of changing the contents of the main storage image to be used is to replace the nonvolatile storage unit 140 or, if the nonvolatile storage unit 140 is rewritable, to download an image file using a network ⁇ Reading image files from storage media Such a method can be used.
  • the method of generating the main storage image stored in the non-volatile storage unit 140 is arbitrary.
  • the main storage image can be generated by dumping the main storage image immediately after the normal system startup method.
  • the main storage unit 126 is a part configuring a main storage area other than the nonvolatile storage unit 140.
  • the main storage unit 126 may be any type of memory as long as it is a readable and writable memory.
  • a volatile memory such as a DRAM or an SRAM is used.
  • non-volatile memories such as MRAM (Magnetoresistive RAM), FeRAM (Ferroelectric RAM), and flash RAM can be used.
  • the data processing device 150 includes functional units such as a mapping table changing unit 190, an address conversion unit 200, and a hardware initializing unit 180, and the hardware initializing unit 210 includes a matting tape hole initializing unit 180. are doing. Further, the data processing device 150 has a mapping table section 160 and a protection information section 170 as control tables.
  • the mapping table section 160 stores a memory address (logical address) specified when an OS application program (both are collectively called a program) operating on the data processing device 150 operates the main storage device 101.
  • 4 is a control table for storing information for converting to a memory address (physical address) actually allocated to the main storage unit 126 and the non-volatile storage unit 140 constituting the main storage device 101, and a protection mode.
  • the logical address is composed of a logical block address and an address in a block
  • the physical address is composed of a physical block address and the address in the block.
  • FIG. 14 shows a configuration example of the entry of the mapping table section 160.
  • the mapping table section 160 is composed of a set of such entries. Referring to FIG. 14, one entry holds a set of a logical block address 161, a physical block address 162, and a protection mode 163.
  • the logical block address 161 is an address for uniquely identifying each logical block formed when the logical address space is divided into blocks of a predetermined size.
  • the physical block address 162 is an individual physical block formed when the physical address space is divided into blocks of the same size as the logical address space. Address that uniquely identifies the network. Blocks can be processed efficiently by using units unique to the architecture called pages, but the main storage image method is not limited to those units.
  • the protection mode 163 takes one of the values of a read-only protection mode and a read-write protection mode.
  • the protection mode 163 is a pseudo mode different from the original protection attribute of the program executed by the information processing apparatus.
  • the read-only protection mode is set when the system starts up. It is set uniformly.
  • the protection information section 170 is a control table that holds the original protection attribute of the program executed by the information processing device.
  • FIG. 15 shows a configuration example of an entry of the protection information section 170.
  • the protection attribute section 170 is composed of a set of such entries. Referring to FIG. 15, one entry holds a pair of a logical block address 171 and a protection attribute 172.
  • the protection attribute 172 includes a read-only protection attribute and a read-write protection attribute. Which protection attribute is set depends on the original protection attribute of the block specified by the logical block address 171. Is determined.
  • the hardware initialization unit 210 is a unit that initializes the hardware of each unit of the system when the information processing apparatus is started and restarted, and includes a matching table initialization unit 180.
  • the mapping table initialization unit 180 has a function of assigning a physical address to the main storage unit 126 and the nonvolatile storage unit 140 constituting the main storage device 101, and a function of initializing the mapping table unit 160. Have. In general, for a device such as a memory under the control of the PCI bus, the physical address can be dynamically allocated to some extent without being physically fixed by the BIOS function.
  • the initialization unit 180 has a physical address allocation function similar to the BIOS processing.
  • the address conversion unit 200 has a function of converting a logical address specified by the program operating on the information processing apparatus into a physical address at the time of memory operation, and a function of detecting an exception due to a protection mode violation and starting an exception process. Have.
  • the conversion from the logical address to the physical address and the exception detection due to the protection mode violation are performed with reference to the matching table section 160.
  • the matching table changing unit 190 has a function of executing the exception processing started by the address conversion unit 200. In the exception processing, processing such as determination of the original protection attribute with reference to the protection information section 170, copying of the block of the nonvolatile storage section 140 to the main storage section 126, and updating of the mapping table section 160 are performed. .
  • FIG. 16 shows an example of the processing of the address conversion unit 200 and the mapping table change unit 190.
  • the address conversion unit 200 searches the mapping table unit 160 for the block address in the logical address related to the memory access specified by the program, and obtains an entry corresponding to the logical block address 161 shown in FIG. 14 (Step S70l) o
  • the address conversion unit 200 determines whether the memory access specified by the program is a write access or a read access (Step S702), and (NO in S702), using the physical block address 162 in the entry obtained in step S701, converts the logical address specified by the program into a physical address (step S703), and the main storage device specified by the physical address The 101 location is accessed (step S704).
  • the address conversion unit 200 determines whether the protection mode 163 in the entry acquired in step S701 is a read-only protection mode or a read / write protection mode (step S705). If the protection mode is readable and writable (NO in step S705), the end address conversion unit 200 converts the logical address specified by the program into a physical address using the physical block address 162 obtained in step S701 (step S705). (S703), the location of the main storage device 101 specified by the physical address is accessed (step S704).
  • the end address conversion unit 200 When the protection mode 163 is a read-only protection mode (YES in step S705), the end address conversion unit 200 temporarily suspends the processing of the memory access and generates an exception event. It notifies the mapping table changing unit 190 and starts exception handling (step S706). In this exception event, the logical block address 161 and the physical block address 162 in the entry obtained in step S701 are notified to the mapping table changing unit 190. The mapping table changing unit 190 uses the notified logical block address 161 to protect the protection information. The part 170 is searched to obtain the protection attribute 172 of the entry that matches the logical block address 171 in FIG. 15 (step S707).
  • the mapping table changing unit 190 determines whether the protection attribute 172 is a read-only protection attribute or a read-write protection attribute (step S708). If the attribute is a read-only protection attribute (YES in step S708), the mapping table changing unit 190 notifies the address conversion unit 170 of an error, and the end address conversion unit 200 rejects the pending memory access. Performs error processing.
  • the mapping table changing unit 190 sends the non-volatile storage specified by the physical block address 162 notified from the address conversion unit 200.
  • the block of the unit 140 is copied to an empty block of the main storage unit 126 (step S709).
  • the mapping table changing unit 190 searches the mapping table unit 160 for an entry whose logical block address 161 in FIG. Is rewritten to the physical block address of the block in the main storage unit 126 of the copy destination in step S709, and the protection mode 163 is rewritten to the readable / writable protection mode (step S710).
  • completion of the exception processing is notified to the address conversion unit 200.
  • the address conversion section 200 restarts the temporarily suspended memory access processing from step S701.
  • FIG. 17 is a flowchart showing a schematic operation of the information processing apparatus to which the main memory image method is applied.
  • the operation of the information processing apparatus to which the main storage image method is applied will be described with reference to the drawings.
  • mapping table initialization unit 180 When the information processing device is started, as shown in FIG. 17, first, hardware initialization is performed by a hardware initialization unit 210 (step S801), and then by a mapping table initialization unit 180. , The physical memory 126 and the non-volatile memory 140 Addresses are allocated and the mapping table section 160 is initialized (step S802). In the initial setting of the mapping table section 160, the correspondence between the logical block address and the physical block address is written in the mapping table section 160, and all the blocks in the non-volatile storage section 140 are read-only in the protection mode of the mapping table. Register in part 160.
  • the data processing device 150 starts up the system from the main storage image stored in the nonvolatile storage unit 140 (step S803). Since this main memory image is in the same state as immediately after the OS or application is started, the system returns to the environment immediately after startup. At this time, there is no operation interruption state from the start from the main storage image to the time when the system operation (step S804) becomes possible.
  • step S804 when the first write access occurs to a certain block in the nonvolatile storage unit 140 from the program, it is mapped in the read-only protection mode.
  • the conversion unit 200 notifies the exception event and temporarily suspends the write access (S706 in FIG. 16).
  • the mapping table changing section 190 refers to the protection information section 170 to determine the protection attribute of the block of the logical address in which the write has occurred (step S708 in FIG. 16). For example, an empty block having the size of the block is allocated from the main storage unit 126, and the contents of the block in the nonvolatile storage unit 140 are copied (step S709 in FIG. 16).
  • mapping table changing section 190 sets the mapping table section 160 so as to map the allocated main memory block to the logical block address where the writing has occurred in the read / write protection mode, and temporarily holds the block.
  • the write access process is restarted (step S710 in FIG. 16).
  • the pending write access and subsequent write operations to the block are performed on the assigned main storage block.
  • the copy time is shortened by reducing the unit of the block, and the time during which the system operation is interrupted can be shortened.
  • step S805 when restarting is performed (step S805 in Fig. 17), the processing is executed from the initialization processing of the playback hardware (step S801), and the mapping table is executed in the same way as when starting up.
  • the contents of the mapping table section 160 are initialized by the operation of the bunore initializing section 180, and the non-volatile storage section 140 is re-mapped (step S802). For this reason, the content of the writing performed to the main storage unit 126 during the operation of the system returns to a state where it is not reflected at all, which is the same as returning to the environment immediately after startup.
  • the main storage image after the initialization processing of the OS and the application program is stored in the nonvolatile storage unit 140, and the data processing device 150 Since the system is started from the main storage image stored in the non-volatile storage unit 140, the system can be started quickly.
  • the data processing device 150 stores the data within the address range of a predetermined width including the address at which the write access occurred in a nonvolatile manner.
  • a setting is made to copy from the sex storage unit 140 to the replacement area secured in the main storage unit 126 and to convert subsequent access to the address range of the predetermined width to access to the replacement area.
  • a main storage area 120 is constituted by a main storage section 126 and a non-volatile storage area 140, and a data processing apparatus 150 is added.
  • the configuration is different from the information processing apparatus 100 of the first embodiment shown in FIG.
  • the nonvolatile storage unit 140 stores only the boot image of only the OS. In other words, the contents of the main memory immediately after the normal startup of OS are stored.
  • Main memory image of 0S stored in the non-volatile storage unit 140 The page (boot image) includes an OS program area and an OS data area.
  • the OS data area 122 is also illustrated in the main storage unit 126.
  • the OS data area 122 is accessed for writing during the operation of the OS data area 122 in the nonvolatile storage unit 140. Is an area that is copied and generated in step S709 in FIG. 16 and corresponds to the “alternative area” described above.
  • the data processing device 150 has a configuration as described with reference to FIG. 13 and performs an address conversion and the like when executing a program.
  • a fast start method using a main memory image of 0S is used for the 0S start portion (S103) of FIGS. 4A and 4B for explaining the operation of the first embodiment.
  • the processing content of the main memory initialization means 133 is different from that of the first embodiment. That is, as in the first embodiment, it is necessary to make the 0S recognize the block that has already been used, but the main storage image can be regarded as having already finished the initialization of the main storage area. . Therefore, unlike the main storage area initialization step 133 in the first embodiment, there is no need to secure an area for the block identifier 400 in the main storage (S202), and the block identifier 400 is used for an existing block identifier. It is only necessary to confirm whether or not the force is applied. Also, as in the first embodiment, it is necessary to know in advance the save area use size 201 and the list of blocks used by the process.
  • FIG. 19 shows a flowchart of the main memory initialization means 133 in the present embodiment.
  • the difference from the first embodiment is whether a main storage area for a block identifier is prepared and initialized with 0 (S204), or whether an existing block identifier is searched (S904).
  • S204 main storage area for a block identifier
  • S904 existing block identifier
  • This embodiment is a modification of the first embodiment (FIG. 7) obtained by applying a high-speed start-up method using a main memory image or a modification of the first embodiment (FIG. 7). It is also possible to apply a high-speed boot method using a storage image to speed up the restart of the OS.
  • the information processing apparatus 100d according to the fourth embodiment of the present invention is different from the information processing apparatus 100 according to the first embodiment in FIG. Instead, a restart setting receiving unit 220, a restart process ID table 221 and a restart flag setting unit 222 are provided.
  • the restart setting receiving means 220 is a means for receiving the process ID of the process to be restarted from the user via a keyboard or the like and storing the process ID in the restart process ID table 221.
  • the restart flag setting means 222 is, similarly to the restart flag setting means 134 in the first embodiment, a restart flag provided in the process information save area 125 generated in the save area 124 by the process information save means 131. This is a means to set 204 at any time until the system shuts down, but not only the user-specified restart process whose process ID is stored in the restart process ID table 221 but also the same application as the restart process Search the restart flags 204 of all the processes belonging to, and set the restart flags 204 of these processes similarly.
  • the plurality of processes are assigned the same process group ID and stored in one entry of the process table 202. Therefore, which process belongs to the same application as a certain process can be determined by checking the process group ID stored in the process table 202.
  • FIG. 21 shows a flowchart of the processing of the restart flag setting means 222.
  • the restart flag setting means 222 focuses on one process whose process ID is stored in the restart process ID table 221 (step S1001), and the restart flag 204 of the process information save area 125 corresponding to that process. Access and set up if you are not standing (step S1002).
  • the process group ID is obtained from the process table 202 of the process of interest (step S1003), the process group ID of the process table 202 of the other process information save area 125 is checked, and another process group ID having the same process group ID is obtained.
  • Process A search is made for all characters (step S1004).
  • step S1005 the restart flag 204 of the process information save area 5 of all searched processes is accessed, and if it is not standing, it is turned on (step S1005).
  • step Sl'006 attention is paid to another process whose process ID is stored in the restart process ID table 221 (step Sl'006), and the process returns to step S1002 to repeat the same process as the above-described process.
  • step S1007 the process ends.
  • restart process if at least one of a plurality of processes constituting an application is specified as a restart process, the user explicitly specifies the remaining processes as restart processes. If not specified, it will be automatically processed as a restart process.
  • Normal applications are often composed of multiple processes. By restarting multiple processes that make up one application in this way and setting the restart, it is possible to restart each individual process. Users can be released from the complicated work of setting. In addition, it is possible to prevent mistakes such as running out of processes that make up the application after restarting (only one process in the application has been restarted).
  • This embodiment is based on the first embodiment, but the same idea can be applied to the second embodiment or the third embodiment.
  • Linux is used as a specific example of the OS.
  • the information that the kernel has to manage a process includes the process descriptor and other structures associated with the process descriptor.
  • the process descriptor holds most of the information needed to execute the process.
  • the other structures are, for example, if a file is opened, a file structure, a socket is opened, and if communication is performed with another computer, the socket structure is attached to the process descriptor.
  • the process descriptor stores pointers to these associated structures.
  • the main storage area 120 is managed in units called pages.
  • the main storage area 120 used by the process is composed of a plurality of pages, and one page table is prepared by the OS for each process in order to manage the plurality of pages collectively.
  • This page table corresponds to the block table 203.
  • the data in the CPU of the process whose execution has been suspended by the process switching is divided and stored in the task state segment 1 and the kernel mode stack.
  • the task state segment is one of the entries in the process descriptor, and the kernel mode stack is a part of the memory area used by the process.
  • To resume the process restore the task state segment and the state of the CPU registers when interrupted from the kernel mode stack, and resume execution.
  • the process information saving means 131 saves the information (process descriptor, page table, etc.) related to the process described above in the process information saving area 125.
  • FIG. 22 shows the process of the process information saving means 131 in Linux.
  • the process descriptors for all the created processes have a list structure, and the head address of the process descriptor is stored in a variable called init-task.
  • the address of the process descriptor is obtained from init_task (step S1301).
  • the process information save area 125 is secured in the main memory (step S1302), and is copied to the process information save area 125 where the process descriptor is created (step S1303).
  • step S1304 and S1305 Registers process information save area 125 unidirectionally list 205 (step Sl 3 06), plus the main memory size used to save area using the size 201 (step S1307). This completes one process of the process information saving unit 131. This process is executed for all generated processes. After creating the process information save area 125 for all processes, normally terminate Linux.
  • main memory is managed in units called pages.
  • a page has an area called a page descriptor that stores information about the page.
  • Linux uses all main storage areas except the area used by Linux itself and hardware. Is divided into pages, and a page descriptor is applied to each of the pages to initialize the available main storage area 120.
  • Such a process is a process common to the OS that manages the main storage area 120 in a certain unit (such as a page or a segment). For a process that does not restart at the time of main memory initialization processing, it is necessary for the OS to recognize the main memory space used by the process.
  • the page in the present embodiment corresponds to the block in the first embodiment, and the page descriptor corresponds to the block identifier 400.
  • Linux manages the main storage area 120 in units of pages as described above, and a page descriptor exists for each page in the main storage.
  • the main storage area 120 is initialized by the initialization of the page descriptor.
  • the page descriptor has a fixed length, which is located immediately after the area called the OS reserved area, which is prepared for expanding the OS on the memory. Therefore, even after the restart, the position and size in the main memory where the page descriptor is arranged do not change.
  • Whether or not the page of the main storage area 120 is used is managed by a count variable in the page descriptor. When the count variable is 1 or more, the page is used. Multiple processes using shared memory will use one page for multiple processes. In such cases, the count variable will have a value greater than one.
  • FIG. 23 shows the processing of the main memory initialization means 133 in this embodiment.
  • the main storage area 120 used by the save area 124 is checked from the save area use size 201 (step S1401).
  • all process information save areas 125 in the save area 124 The page table is searched to find out which page is used by which process (step S1402).
  • the result of the check is stored in a table of page descriptor numbers and the number of processes used.
  • step S1404 From the first address of the main storage area 120 (strictly speaking, the address immediately after the reserved area of the OS), page descriptors are installed. A single descriptor area is prepared at the specified address and initialized with 0 (step S1404). Next, it is checked whether the specified address is used in the page table stored in the save area 124 (step S1405). For confirmation, a table of the page descriptor numbers and the number of processes used is used. If it is used (YES in step S1406), the number of used processes is substituted for the count variable in the page descriptor (step S1407). If not used (NO in step S1406) or when the process in step S1407 is completed, the process proceeds to initialization of the next page descriptor. When all the available main storage areas 120 are initialized (YES in step S1403), the processing of the main storage initialization means 133 is completed.
  • the process restoring means 132 copies the process descriptor and other accompanying structures and a page table into the OS data area 122 prepared for restoration. This is the same as the restoration process.
  • FIG. 24 shows the processing contents of the process save information creation means 135 when a process is created.
  • 0S creates a process.
  • one process is called process A.
  • Process A is executed only when Process A is created and the process descriptor is registered in the process execution queue.
  • the process save information generation means 135 executes before the process is registered in the process execution queue.
  • Process A is created, the address where the process descriptor is stored is already held by 0S (the generated process A process descriptor is stored in a temporary variable in 0S). Therefore, the process of acquiring the address of the process descriptor is not performed.
  • step S150l Without first securing an area for storing the backup information of the process A in the memory (step S150l) o will be copied to process information saving area 125 to secure the process descriptor of a process A (step S1502). Further, other structures (file structure, socket structure, etc.) attached to the process descriptor are copied to the save area 125 (step S1503). Next, the page table of the process A is copied to the save area 125 (step S1504). The address where the page table is located is stored in the memory descriptor in the process descriptor, so refer to it. Finally, the save area 125 is registered in the save area list, and the main storage size used for the save area size is added (steps S1505 and SI 506).
  • FIG. 25 shows the processing contents of the process save information updating means 136.
  • the update process is performed before all processes related to process switching are completed and before register information of the next process to be executed is restored from the task state segment.
  • a command to restart the process Before performing the process of updating the process information save area 125 of the process A, it is first confirmed whether or not a command to restart the process has been received from the user. This instruction may be implemented as a system call or use other methods. If the user indicates that the process is to be restarted (YES in step S1601), the update process sets the restart flag 203 in the process of process A / blue report save area 125, and ends the process. (Step S1607). If the restart has not been instructed by the user (N0 in step S1601), the processing is performed as follows.
  • the address of the process descriptor is obtained from the stack pointer of the process A (step S1602).
  • the address of the process information save area 125 of the process A is acquired from the save area 124.
  • the save area 124 manages a list of the process information save areas 125 of each process. Therefore, the address of the top (the first process information save area 125 in the list) is obtained, and then the list is searched to obtain the address of the process information save area 125 of the target process.
  • step S1604 If the address of the save area 124 of the process A can be obtained, the process descriptor of the process A and the associated structure are copied to the process information save area 125 of the process A (steps S1604 and S1605). Finally, the page table is copied (step S1606).
  • the processing content of the process information save area release means 137 at the time of the process termination is the same as that of the second embodiment.
  • the address of the process information save area 125 of the process A is obtained from the list of the save area 124.
  • the process information save area 125 is deleted from the list and the area is released. After that, the process is terminated. This completes the process for saving the process information of the OS.
  • a first effect of the present invention is that the end time of the system can be reduced.
  • System termination processing consists of OS termination processing and application termination processing.
  • the OS normally terminates, but only the process information such as the process table of the processes that make up the application is saved in the save area on the main memory for the process of terminating the application. Accordingly, access to the auxiliary storage device having a low transfer rate due to the termination processing of the termination is reduced, and the termination time of the system can be reduced.
  • a second effect of the present invention is that, even after the restart, the application operated before the restart can be continuously executed.
  • the reason is that process information such as the process table is saved from the main memory used by the OS before the restart, and the process information such as the process table is restored to the main memory used by the OS after the restart Therefore, the process that backs up and restores the process table has only suspended and resumed execution, and appears to be operating continuously. Therefore, an application in which no failure has occurred can continue to provide services. Therefore, according to the present invention, since the service to the user is not interrupted at the time of restart, the present invention can be applied to an application such as a large-scale application server that requires continuous operation for a long time.

Abstract

プロセス情報退避手段131と、プロセス復元手段132とを備え、アプリケーションの実行時にOS 130内に存在するプロセス表201やその他、プロセスを復元するために必要な情報を主記憶領域120上の退避領域124に複写しておき、再起動時には、アプリケーションの使用していた主記憶領域はそのままに、OSのみを初期化する。初期化の後に、退避しておいたプロセス情報(プロセス表やその他OSが管理していた情報)をOSデータ領域122に上書きするよう動作する。このような構成を採用し、再起動前のプロセスを再起動後も継続実行できる環境を提供する。

Description

高速再起動方法およぴ情報処理装置ならぴにプログラム 技術分野
本発明は、 APサーバーや汎用情報処理装置などに好適な高速再起動方法に関し、 特に、再起動前に運用していたアプリケーションをそのまま再起動後も継続して運 用できる高速再起動方法および情報明処理装置ならぴにプログラムに関する。 背景技術 書
再起動は、 OS の設定を変更した場合、 設定を反映させるために利用される。 Windows (登録商標) OSの場合は、 レジストリの内容を変更し、 変更を反映させるた めに再起動が必要になる。 さらに、 システムに何らかの障害が発生し、発生した障 害の原因を特定することが困難である場合は、いち早く障害からシステムを回復さ せる最初の手段として、再起動を用いることが多い。 このような再起動は、 システ ムを運用している間は頻繁に利用するものであり、システムの停止時間を最小限に とどめるため、 再起動処理は高速化が望まれていた。
再起動処理の高速化を実現するための従来の技術の例としては、 特開平 11 - 24936号公報第 7頁、 図 1等に記載される情報処理装置の高速再起動方法があ る。図 1はこの従来の情報処理装置の構成を示したものである。 図 1に示すように 従来の情報処理装置 1は、 その中に主記憶装置 11が配置され、 外部には入出力装 置 2がある。 また、主記憶装置 11の内部にはオペレーティングシステム(以下、 OS と呼ぶ)がロードされる OSプログラム領域 111、 初期化データ領域 112、 非初期化 データ領域 113、 初期化データ退避領域 114が配置されており、 主記憶装置 11以 外の情報処理装置内部は、 再起動開始手段 12、 高速再起動指定手段 13、 実行制御 手段 14、初期化データ退避手段 15、初期化データ回復手段 16、入出力停止手段 17、 OSロード手段 18から構成されている。
この従来の情報処理装置 1では、 OS起動時に OSの初期化データを初期ィ匕データ 退避手段 15 により初期化データ退避領域 114に退避し、 高速再起動指定手段 13 により高速再起動が指定されると、実行制御手段 14により OSプログラムの実行開 始番地に実行を移し、 初期化データ回復手段 16により初期化データを回復する。 以上の処理を行うことで、 OS のプログラムおよびデータを再ロードすることなく 情報処理装置を高速に再起動する高速再起動方式を提供している。
しかしながら、 特許文献 1に記載された従来の高速再起動方法では、 OSの高速 再起動を実現することはできるが、 OS上で実行されているアプリケーション(ァプ リケーションプログラム)については言及されていない。 OSを再起動する際にはァ プリケーシヨンを正常終了または強制終了させる必要がある。再起動時間を短縮す るためにアプリケーションを強制終了させると、再起動後の当該アプリケーション の正常運用を保障できない。 なぜなら、 アプリケーションの強制終了は、現在のサ 一ビス状態を保存しない。 アプリケーションによっては、運用時のサービス状態が 再起動後に必要な場合がある。そのような場合には再起動後にアプリケーションの 正常運用を保障することができなくなる。 よって、アプリケーションを正常終了さ せる必要があるが、アプリケ一ションの正常終了は、現在のサービス状態を保存す るために、ディスクなどの処理速度の遅レ、補助記憶装置へのァクセスが頻繁に発生 する。 このような補助記憶装置へのアクセスは、 システムの終了処理時間を増大さ せることとなり、 システムの再起動時間を増大させるものとなる。
また、再起動を利用する際に考慮すべき事項として、次のような場合が想定され る。 再起動は主にシステムの設定を OSに反映させたり、 あるアプリケーションの 障害により OSが正常に動作しなくなった場合に利用される。 複数のアプリケーシ ョンを使ってサービスを提供するサーバにおいて、ある一つのアプリケーションに 障害が発生し、 OS が正常に動作しなくなった場合は、 再起動する必要があるが、 その際には、障害の発生したアプリケーション以外のアプリケーションも終了させ る必要があり、サービス途中にあるアプリケーションはサ一ビスを強制中断せざる を得なくなる。
上記の問題点を克服するために、本発明では、シャツトダウン時の処理を最小限 にとどめて、システムを高速に再起動できる高速再起動方法および情報処理装置な らぴにプログラムを提供することを目的とする。
本発明の他の目的は、再起動後もアプリケーションを継続運用できる高速再起動 方法およぴ情報処理装置ならぴにプログラムを提供することを目的とする。 発明の開示
課題を解決するための手段を説明するにあたり、本発明を理解するための要素技 術の説明を行う。
計算機はプログラムを実行する。計算機中のプログラムはプロセスという実行単 位に分割されて実行される。ある時点において計算機が実行できるプロセスは一つ であるので、 プロセスを複数同時に実行するには、当該プロセスを管理する上位プ ログラムが必要となる。 それが OSにあたるが、 OSは複数のプロセスを管理するた めに、 OS自身が利用している主記憶領域上にプロセス表というものを持っている。 プロセス表はプロセス一つにつき一つ用意され、プロセスを実行するための情報や、 実行途中の情報を格納している。 よって、 あるプロセスは当該プロセスの利用して いる主記憶領域とプロセス表を保存しておくことにより、実行途中にあるプロセス を中断したり、 中断した時点から処理を再開することができる。一つまたは複数の プロセスによってアプリケーションが構成される。そこで本発明では、アプリケー ションの実行時などに OS内に存在するプロセス表やその他、 プロセスを復元する ために必要な情報を主記憶領域上の退避領域に複写しておき、再起動時には、アブ リケーシヨンの使用していた主記憶の領域はそのままに、 OS のみを初期化する。 そして初期化の後に、退避しておいたプロセス情報(プロセス表やその他 OSが管理 していた情報)を OSのプロセス管理領域に上書きするよう動作する。このような構 成を採用することで、再起動前のプロセスを再起動後も継続実行できる環境を提供 することができる。 より具体的には、 本発明は以下のような構成を有する。
本発明の第 1の高速再起動方法は、 OSの再起動前に、 ユーザプロセスに関する OS内のプロセス情報を主記憶装置上の退避領域に退避させ、 OSの再起動時に、 前 記ユーザプロセスの使用していた主記憶領域は初期化せずに OSの使用していた主 記憶領域は初期化し、 OS再起動後に、 前記退避したプロセス情報を OS内に復元す ることを特徴とする。
本発明の第 2の高速再起動方法は、 OSの再起動前に、 ユーザプロセスに関する OS 内のプロセス情報を主記憶装置上の退避領域に退避させると共に、 前記退避さ せたプロセス情報に再起動するかどうかを指定する再起動フラグを設定し、 OS の 再起動時に、前記再起動フラグが再起動しない設定になっているユーザプ口セスの 使用していた主記憶領域は初期化せずに OSの使用していた主記憶領域は初期化し、 OS再起動後に、 前記退避したプロセス情報のうち前記再起動フラグが再起動しな レ、設定になっているユーザプロセスのプロセス情報を OS内に復元することを特徴 とする。
本発明の第 3の高速再起動方法は、 OSの再起動前に、 OS再起動後に継続運用す るユーザプロセスに関する OS内のプロセス情報を主記憶装置上の退避領域に退避 させ、 OS の再起動時に、 前記ユーザプロセスの使用していた主記憶領域は初期化 せずに OSの使用していた主記憶領域は初期化し、 OS再起動後に、 前記退避したプ ロセス情報を OS内に復元することを特徴とする。 ここで、 OS再起動後に継続運用 するユーザプロセスかどう力 \ あるいはその反対に OS再起動時に再起動するユー ザプロセスかどうかは、 例えば、 OS の再起動後に継続運用するプロセスまたは継 続運用しないプロセスの識別子を保存してあるプロセス IDテーブルを参照して、 判断することができる。
本発明の第 4の高速再起動方法は、ユーザプロセスの生成時、前記生成したユー ザプロセスに関する OS内のプロセス情報を主記憶装置上の退避領域に退避させ、 前記ユーザプロセスの切替え時、前記退避させたプロセス情報に再起動するかどう かを指定する再起動フラグを設定するとともに、再起動しない場合には退避領域に 退避されているプロセス情報を最新の状態に更新し、前記ユーザプ口セスの終了時、 前記退避させたプロセス情報を無効にし、 OS の再起動時に、 前記再起動フラグが 再起動しない設定になっているユーザプロセスの使用していた主記憶領域は初期 化せずに OSの使用していた主記憶領域は初期化し、 OS再起動後に、 前記退避した プロセス情報のうち前記再起動フラグが再起動しない設定になっているユーザプ 口セスのプロセス情報を OS内に復元することを特徴とする。 本発明の第 5の高速再起動方法は、 第 2または第 4の高速再起動方法において、 或るユーザプロセスに関するプロセス情報に再起動するかどうかを指定する再起 動フラグを設定する際、そのユーザプロセスと同じユーザアブリケーシヨンプログ ラムに属する他の全てのユーザプロセスを検索し、該検索した全てのユーザプロセ スに関するプロセス情報中の再起動フラグも同じ値に設定することを特徴とする。 本発明の第 6の高速再起動方法は、第 1乃至第 4の何れかの高速再起動方法にお いて、 OS の使用していた主記憶領域の初期化は、 主記憶装置の一部を構成する不 揮発性記憶部に記憶された OSの主記憶ィメージを OSの使用していた主記憶領域に 上書きすることで行うことを特徴とする。
本発明の第 7の高速再起動方法は、第 6の高速再起動方法において、 システム運 用中に OSから前記不揮発性記憶部への書き込みアクセスが発生する毎に、 書き込 みアクセスが発生したァドレスを含む所定幅のァドレス範囲内のデータを前記不 揮発性記憶部から主記憶装置の一部を構成する読み出し書き込み可能な主記憶部 に確保した代替領域にコピーし且つ以後の前記所定幅のァドレス範囲へのァクセ スを前記代替領域へのァクセスに変換することを特徴とする。
本発明の第 1の情報処理装置は、 OSの再起動前に、 ユーザプロセスに関する OS 内のプロセス情報を主記憶装置上の退避領域に退避させるプロセス情報退避手段 と、 OS の再起動時に、 前記ユーザプロセスの使用していた主記憶領域は初期化せ ずに OSの使用していた主記憶領域は初期化する主記憶初期化手段と、 OS再起動後 に、 前記退避したプロセス情報を OS内に復元するプロセス復元手段とを備えるこ とを特徴とする。
本発明の第 2の情報処理装置は、 OSの再起動前に、 ユーザプロセスに関する OS 内のプロセス情報を主記憶装置上の退避領域に退避させるプロセス情報退避手段 と、前記退避させたプロセス情報に再起動するかどうかを指定する再起動フラグを 設定する再起動フラグ設定手段と、 OS の再起動時に、 前記再起動フラグが再起動 しない設定になっているユーザプロセスの使用していた主記憶領域は初期化せず に OSの使用していた主記憶領域は初期化する主記憶初期化手段と、 OS再起動後に、 前記退避したプロセス情報のうち前記再起動フラグが再起動しない設定になって いるユーザプロセスのプロセス情報を OS内に復元するプロセス復元手段とを備え ることを特徴とする。
本発明の第 3の情報処理装置は、 OSの再起動前に、 OS再起動後に継続運用する ユーザプロセスに関する OS内のプロセス情報を主記憶装置上の退避領域に退避さ せるプロセス情報退避手段と、 OS の再起動時に、 前記ユーザプロセスの使用して いた主記憶領域は初期化せずに OSの使用していた主記憶領域は初期化する主記憶 初期化手段と、 OS再起動後に、 前記退避したプロセス情報を OS内に復元するプロ セス復元手段とを備えることを特徴とする。 ここで、 プロセス情報退避手段は、例 えば、 OSの再起動前に、 OSの再起動後に継続運用するプロセスまたは継続運用し ないプロセスの識別子を保存するプロセス IDテーブルを参照して、 OS再起動後に 継続運用するユーザプロセスに関する OS内のプロセス情報を主記憶装置上の退避 領域に退避させるものである。
本発明の第 4の情報処理装置は、ユーザプロセスの生成時、前記生成したユーザ プロセスに関する OS内のプロセス情報を主記憶装置上の退避領域に退避させるプ ロセス退避領域作成手段と、前記ユーザプロセスの切替え時、前記退避させたプロ セス情報に再起動するかどうかを指定する再起動フラグを設定するとともに、再起 動しない場合には退避領域に退避されているプロセス情報を最新の状態に更新す るプロセス退避情報更新手段と、前記ユーザプロセスの終了時、前記退避させたプ ロセス情報を無効にするプロセス情報退避領域解放手段と、 OS の再起動時に、 前 記再起動フラグが再起動しなレ、設定になっているユーザプロセスの使用していた 主記憶領域は初期化せずに OSの使用していた主記憶領域は初期化する主記憶初期 化手段と、 OS再起動後に、 前記退避したプロセス情報のうち前記再起動フラグが 再起動しない設定になっているユーザプロセスのプロセス情報を OS内に復元する プロセス復元手段とを備えることを特徴とする。
本発明の第 5の情報処理装置は、第 2または第 4の情報処理装置において、或る ユーザプロセスに関するプロセス情報に再起動するかどうかを指定する再起動フ ラグを設定する際、そのユーザプロセスと同じユーザアプリケーションプログラム に属する他の全てのユーザプロセスを検索し、該検索した全てのユーザプロセスに 関するプロセス情報中の再起動フラグも同じ値に設定する手段を備えることを特 徵とする。
本発明の第 6の情報処理装置は、第 1乃至第 4の何れかの情報処理装置において、 前記主記憶初期化手段は、 OS の使用していた主記憶領域の初期化は、 主記憶装置 の一部を構成する不揮発性記憶部に記憶された OSの主記憶ィメージを OSの使用し ていた主記憶領域に上書きすることで行うものであることを特徴とする。
本努明の第 7の情報処理装置は、第 6の情報処理装置において、 システム運用中 に OSから前記不揮発性記憶部への書き込みアクセスが発生する毎に、 書き込みァ クセスが発生したァドレスを含む所定幅のァドレス範囲内のデータを前記不揮発 性記憶部から主記憶装置の一部を構成する読み出し書き込み可能な主記憶部に確 保した代替領域にコピーし且つ以後の前記所定幅のァドレス範囲へのアクセスを 前記代替領域へのァクセスに変換する手段を備えることを特徴とする。
本発明の第 1のプログラムは、 コンピュータを、 OSの再起動前に、 ユーザプロ セスに関する OS内のプロセス情報を主記憶装置上の退避領域に退避させるプロセ ス情報退避手段、 OS の再起動時に、 前記ユーザプロセスの使用していた主記憶領 域は初期化せずに OSの使用していた主記憶領域は初期化する主記憶初期化手段、 OS再起動後に、 前記退避したプロセス情報を OS内に復元するプロセス復元手段、 として機能させることを特徴とする。
本発明の第 2のプログラムは、 コンピュータを、 OSの再起動前に、 ユーザプロ セスに関する OS内のプロセス情報を主記憶装置上の退避領域に退避させるプロセ ス情報退避手段、前記退避させたプロセス情報に再起 するかどうかを指定する再 起動フラグを設定する再起動フラグ設定手段、 OS の再起動時に、 前記再起動フラ グが再起動しない設定になっているユーザプロセスの使用していた主記憶領域は 初期化せずに OSの使用していた主記憶領域は初期化する主記憶初期化手段、 OS再 起動後に、前記退避したプロセス情報のうち前記再起動フラグが再起動しない設定 になっているユーザプロセスのプロセス情報を OS内に復元するプロセス復元手段、 として機能させることを特徴とする。
本発明の第 3のプログラムは、 コンピュータを、 OSの再起動前に、 OS再起動後 に継続運用するユーザプロセスに関する OS内のプロセス情報を主記憶装置上の退 避領域に退避させるプロセス情報退避手段、 OS の再起動時に、 前記ユーザプロセ スの使用していた主記憶領域は初期化せずに OSの使用していた主記憶領域は初期 化する主記憶初期化手段、 OS再起動後に、 前記退避したプロセス情報を OS内に復 元するプロセス復元手段、 として機能させることを特徴とする。 ここで、 プロセス 情報退避手段は、 例えば、 OSの再起動前に、 OSの再起動後に継続運用するプロセ スまたは継続運用しないプロセスの識別子を保存するプロセス IDテーブルを参照 して、 OS再起動後に継続運用するユーザプロセスに関する OS内のプロセス情報を 主記憶装置上の退避領域に退避させるものである。
本発明の第 4のプログラムは、 コンピュータを、 ユーザプロセスの生成時、 前記 生成したユーザプロセスに関する OS内のプロセス情報を主記憶装置上の退避領域 に退避させるプロセス退避領域作成手段、前記ユーザプロセスの切替え時、前記退 避させたプロセス情報に再起動するかどうかを指定する再起動フラグを設定する とともに、再起動しない場合には退避領域に退避されているプロセス情報を最新の 状態に更新するプロセス退避情報更新手段、前記ユーザプロセスの終了時、前記退 避させたプロセス情報を無効にするプロセス情報退避領域解放手段、 OS の再起動 時に、前記再起動フラグが再起動しない設定になっているユーザプロセスの使用し ていた主記憶領域は初期化せずに OSの使用していた主記憶領域は初期化する主記 憶初期化手段、 OS 再起動後に、 前記退避したプロセス情報のうち前記再起動フラ グが再起動しない設定になっているユーザプロセスのプロセス情報を OS内に復元 するプロセス復元手段、 として機能させることを特徴とする。
本発明の第 5のプログラムは、第 2または第 4のプログラムにおいて、 コンビュ ータを、 さらに、或るユーザプロセスに関するプロセス情報に再起動するかどうか を指定する再起動フラグを設定する際、そのユーザプロセスと同じユーザアプリケ —ションプログラムに属する他の全てのユーザプロセスを検索し、該検索した全て のユーザプロセスに関するプロセス情報中の再起動フラグも同じ値に設定する手 段、 として機能させることを特徴とする。
本発明の第 6のプログラムは、第 1乃至第 4の何れかのプログラムにおいて、前 記主記憶初期化手段は、 OS の使用していた主記憶領域の初期化は、 主記憶装置の 一部を構成する不揮発性記憶部に記憶された OSの主記憶ィメージを OSの使用して いた主記憶領域に上書きすることで行うものであることを特徴とする。
本発明の第 7のプログラムは、第 6のプログラムにおいて、 コンピュータを、 さ らに、 システム運用中に OSから前記不揮発性記憶部への書き込みアクセスが発生 する毎に、書き込みアクセスが発生したァドレスを含む所定幅のァドレス範囲内の データを前記不揮発性記憶部から主記憶装置の一部を構成する読み出し書き込み 可能な主記憶部に確保した代替領域にコピーし且つ以後の前記所定幅のァドレス 範囲へのアクセスを前記代替領域へのアクセスに変換する手段、として機能させる ことを特徴とする。 ,
更に、 本発明は、 次のような O S再起動方法を提供する。 即ち、 メインメモリ上 に、 O Sをロードするためのメモリ領域である第 1の O Sメモリ領域と、プロセス をロードするためのメモリ領域であるプロセスメモリ領域とを割り当てて、 O S及 ぴプロセスを該当する領域にロードしたコンピュータで、 O Sを再起動する方法に おいて、 O Sがプロセスを管理するための情報であるプロセス情報を、第 1の O S メモリ領域から取得し、予め定められた記憶装置に設けた退避領域に格納する段階
1と、プロセスメモリ領域を保持したまま、第 1の O Sメモリ領域を初期化する段 階 2と、 メインメモリ上に第 2の〇 Sメモリ領域を割り当てて、 O Sをロードする 段階 3と、 O Sメモリ領域中のプロセス情報を、段階 1にて格納されたプロセス情 報に応じて更新する段階 4とを含むことを特徴とする O S再起動方法を提供する。 この O S再起動方法において、更に、プロセスメモリ領域にロードされたプロセ スから保持すベきプロセスを選択する段階と、選択されなかったプロセスに割り当 てられたプロセスメモリ領域を初期化する段階とを含むこととしてもよい。
この O S再起動方法において、退避領域をメインメモリ上に設けることとしても よい。
この O S再起動方法において、各プロセスを再起動するか否かを示す情報を、 当 該プロセスのプロセス情報と共に、 退避領域に記憶することとしてもよい。
この O S再起動方法において、各プロセスを再起動するか否かを示す情報を、退 避領域を設けた記憶装置とは別の記憶装置に記憶することとしてもよレ、。
この O S再起動方法において、 プロセスの生成、切り替え及ぴ終了に応じて、退 避領域を生成、更新及び解放する処理を、退避領域を設けた記憶装置に対して実行 することとしてもよい。
この O S再起動方法において、 O Sをメインメモリにロードしたときのイメージ を格納した不揮発性記憶装置を予め用意する方法であって、段階 3は、不揮発性記 憶装置に格納したイメージを参照してメインメモリに O Sをロードすることとし てもよい。
この O S再起動方法において、更に、一のアプリケーションプログラムに対して 関連付けられた複数のプロセスを含むプロセスを、プロセスメモリ領域にロードす る段階と、プロセスメモリ領域にロードされたプロセスの中から、保持すべきプロ セスを選択する段階と、選択されたプロセス、及ぴ、 当該プロセスと同じアプリケ ーシヨンプログラムに関連付けられた他のプロセス以外のプロセスに割り当てら れたプロセスメモリ領域を、 初期化する段階とを含むこととしてもよレ、。 図面の簡単な説明
図 1は従来の情報処理装置の構成を示すプロック図であり、
図 2は本発明の第 1 の実施の形態にかかる情報処理装置の構成を示すブロック 図であり、
図 3は本発明の第 1 の実施の形態における退避領域のデータ構造を示す図であ 、
図 4 A及び図 4 Bは本発明の第 1の実施の形態の動作を示す流れ図であり、 図 5は本発明の第 1の実施の形態におけるプロック識別子を示す図であり、 図 6は本発明の第 1 の実施の形態における主記憶初期化手段の処理を示す流れ 図であり、
図 7は本発明の第 1の実施の形態の変形例の構成を示すプロック図であり、 図 8は本発明の第 1の実施の形態の変形例の動作を示す流れ図であり、 図 9は本発明の第 2 の実施の形態にかかる情報処理装置の構成を示すプロック 図であり、 ·
図 1 0は本発明の第 2 の実施の形態におけるプロセス退避情報作成手段の処理 を示す流れ図であり、
図 1 1は本発明の第 2 の実施の形態におけるプロセス退避情報更新手段の処理 を示す流れ図であり、
図 1 2は本発明の第 2 の実施の形態におけるプロセス情報退避領域解放手段の 処理を示す流れ図であり、
図 1 3は本発明の第 3 の実施の形態で利用する主記憶イメージを用いた高速起 動方式を適用した情報処理装置の構成図であり、
図 1 4は本発明の第 3 の実施の形態で利用する主記憶イメージを用いた髙速起 動方式を適用した情報処理装置におけるマッピングテーブル部のェントリ構成を 示す図であり、
図 1 5は本発明の第 3 の実施の形態で利用する主記憶イメージを用いた高速起 動方式を適用した情報処理装置における保護情報部のェントリ構成を示す図であ り、
図 1 6は本発明の第 3 の実施の形態で利用する主記憶イメージを用いた高速起 動方式を適用した情報処理装置の処理を示す流れ図であり、
図 1 7は本発明の第 3 の実施の形態で利用する主記憶イメージを用いた高速起 動方式を適用した情報処理装置の処理を示す流れ図であり、
図 1 8は本発明の第 3 の実施の形態にかかる情報処理装置の構成を示すブロッ ク図であり、
図 1 9は本発明の第 3 の実施の形態にかかる情報処理装置における主記憶初期 化手段の処理を示す流れ図であり、
図 2 0は本発明の第 4 の実施の形態にかかる情報処理装置の構成を示すプロッ ク図であり、
図 2 1は本発明の第 4 の実施の形態にかかる情報処理装置における再起動フラ グ設定手段の処理を示す流れ図であり、
図 2 2は本発明の第 1 の実施例におけるプロセス情報退避手段の処理を示す流 れ図であり、
図 2 3は本発明の第 1 の実施例における主記憶初期化手段の処理を示す流れ図 であり、
図 2 4は本発明の第 2 の実施例におけるプロセス退避情報作成手段の処理を示 す流れ図であり、
図 2 5は本発明の第 2 の実施例におけるプロセス退避情報更新手段の処理を示 す流れ図である。 発明を実施するための最良の形態
次に、 本発明の第 1の実施の形態について図面を参照して詳細に説明する。 図 2を参照すると、本発明の第 1の実施の形態にかかる情報処理装置 100は、 プ ログラム制御により動作する CPU (プロセッサ) 110 と、 主記憶領域 120 と、 0S130 から構成されている。 プロセスは CPU110により実行される。 主記憶領域 120は、 OSプログラム領域 121、 OSデータ領域 122、 プロセス使用領域 123、 退避領域 124 を含み、退避領域 124内には実行されているプロセス分だけプロセス情報退避領域 125が存在する。 0S130は、 プロセス情報退避手段 131、 プロセス復元手段 132、 主 記憶初期化手段 133、 再起動フラグ設定手段 134を含む。
図 3に退避領域 124のデータ構造を示す。退避領域 124には、プロセス情報退避 領域 125とよばれる個々のプロセスごとに OSの管理している情報を退避させる領 域があり、 プロセス情報退避領域 125は単方向リスト 205でつながれている。 さら に、退避領域使用サイズ 201という退避領域 124の大きさを示すデータ領域を持つ。 OSの管理している情報とは、 プロセス表 202 とブロックテーブル 203である。 0S は 1つのプロセスにっき 1つのプロセス表を作成して保守している。プロセス表に は、 プロセスの状態、 プログラムのカウンタやスタックポインタ、 メモリの割り当 て、オープンしているファイルの状態やスケジュール情報、 プロセスに関するあら ゆる情報が入っている。 また、 0Sは主記憶領域 120をブロックという単位で管理 しており、 ブロックテーブル 203とは、 個々のプロセスに一つ存在し、 当該プロセ スの使用しているブロックのアドレスが記述されている。 再起動フラグ 204は、 当 該プロセスを再起動させるかどうかを判断するためのフラグである。本実施の形態 では、 プロセス表 202 とは独立に再起動フラグ 204を設けてあるが、 プロセス表 202の中に再起動フラグを持つようにしてもよい。
退避領域 124は、基本的に主記憶領域 120の一番後方のァドレスから始まり、主 記憶領域 120 の先頭に向かって、 現在実行しているプロセスの数だけ主記憶領域 120を使用する。 退避領域 124を後方の定位置からァドレッシングする方法は、 次 のような利点がある。 OS は、 起動の際に主記憶領域の管理を行うために、 主記憶 領域の初期化を行う。 本発明において主記憶領域初期化の際に OSは、 再起動前に 使用されていた退避領域 124と、プロセス自身がプログラムを実行するために使用 していたプロセス使用領域 123を知る必要がある。再起動前にプロセスによって使 用されていたプロセス使用領域 123を起動後に知るには、定位置から退避領域 124 を置くとよい。 起動後に OSは、 退避領域 124がどこにあるのかを調べる必要がな く、 OSプログラムの一部として 「プロセス情報退避領域 125は主記憶領域 120の 一番後方のアドレスから置かれる」 と記述することで、 プロセス情報退避領域 125 がどこにあるのかを知ることができ、 退避領域 124 のプロセス情報退避領域 125 からプロセス使用領域 123を知ることができる。 よって、 再起動前の退避領域 124 の位置がわかりさえすれば退避領域 124の主記憶領域 120上での位置は一番後方で なくてもよく、 また別の記憶装置(フラッシュメモリなどの不揮発性主記憶装置) に退避領域 124を保存しておいてもよい。
プロセス情報退避手段 131、 プロセス復元手段 132、 主記憶初期化手段 133、 再 起動フラグ設定手段 134は、 それぞれ次のような機能を有する。
プロセス情報退避手段 131は、 0S内部にあるプロセス表とブロックテーブルを プロセス情報退避領域 125に退避させる。
プロセス表の退避処理とは、あるプロセスについて、プロセス表をプロセス情報 退避領域 125 へ 0Sデータ領域 122からコピーすることである。
通常、 0Sは主記憶領域 120を複数のプロックに分割して管理しており、 0Sはプ 口セスに必要量のブロックを与えることで、 プロセスを実行している。 どのブロッ クを当該プロセスが使用しているかという情報はプロックテーブルに保存されて いる。 ブロックテーブルの退避処理とは、 プロセスに付随するプロックテープル
203を退避領域 124に OSデータ領域 122からコピーすることである。
再起動フラグ設定手段 134は、ユーザからの入力によって、 あるプロセス情報退 避領域 125内に設けられた再起動フラグ 204を設定する手段である。ユーザからの 入力は、 プロセスを特定するためのプロセス IDである。 再起動フラグ 204を設定 されたプロセスは、再起動されるため、再起動後に再起動前の状態に復元せず、 当 該プロセスのプロセス情報退避領域 125と、 プロセス使用領域 123は解放される。 これに対して、 再起動フラグ 204を設定されないプロセスは、再起動されず、 当該 プロセスのプロセス情報退避領域 125 とプロセス使用領域 123を用いて、再起動前 の状態に復元される。
主記憶初期化手段 133は、 OSが起動前に実行していたプロセスについて、 当該 プロセスが利用していた領域を認識するための処理である。 通常、 OS は起動時に 利用できる主記憶領域 120を認識するために、 プロックごとに初期化処理を行う。 ここでプロセス情報退避領域 125より、起動前に実行していたプロセスが使用して いるプロックをプロックテーブル 203より検索し、使用しているブロックについて は初期化処理を施さないようにする。
プロセス復元手段 132は、プロセス情報退避領域 125に格納されているプロセス 表 202、ブロックテーブル 203からプロセスを復元する処理である。復元処理とは、 OSデータ領域 122にプロセス表 202およびブロックテーブル 203を書き戻す(コピ 一)処理である。
次に、図 2ないし図 6を参照して本実施の形態について全体の動作を詳細に説明 する。
最初に、 システム終了時までの処理について説明する。 まず、全てのプロセスに ついて、プロセス情報退避手段 131を用いてプロセス情報退避領域 125を作成する (図 4 A S100)。 この処理は全てのプロセスについて行い、 全てのプロセスについ てプロセス情報退避領域 125が作成できたとき終了する(S101)。
プロセス情報退避領域 125の作成は、 まず主記憶上にプロセス情報退避領域 125 を確保し、 当該プロセスのプロセス表 202を 0Sデータ領域 122から読み出して、 確保したプロセス情報退避領域 125にコピーし、 次に OSデータ領域 122からプロ ックテーブル 203を読み出して、確保したプロセス情報退避領域 125にコピーする ことで行う。 また、作成時には退避領域使用サイズ 201を当該プロセスのために使 用した主記憶領域分だけ足す。 さらに、 必要に応じて再起動フラグ 204を設定し、 単方向リスト 205でプロセス情報退避領域 125どうしをつなげる。
こうして全てのプロセスについてプロセス情報退避領域 125の作成を行った後、 OS の通常終了処理を行う(S102)。 プロセスについては終了処理をせず、 そのまま の状態で OS起動後のプロセスの復元処理を待つ。 プロセス情報退避領域 125の作 成は、システム終了直前、つまりユーザがシステム終了命令を発行してから作成を 開始し、 OS の終了処理を始めるまでの間に作成するが、 任意の時間に作成しても よい。
再起動フラグ設定手段 134による再起動フラグ 204の設定は、システム終了まで の任意の時間に行う。再起動フラグ 204は、プロセス情報退避領域 125の中に設置 されており、当該プロセスの退避領域が作成されるまで設定することができないの で、当該プロセスの退避領域が作成される前にユーザから再起動する旨の指示があ れば、 0S は一時的に当該プロセスに対する再起動フラグ設定の情報を保持してお く必要がある。その際の設定の情報は、再起動フラグ設定手段 134の中にプロセス IDのリストとして保持しておく。 その後プロセス情報退避領域 125が作成された ら、 以前のユーザの指示に従い、 再起動フラグ 204を設定する。
次に、 起動時の処理を説明する。 0Sの展開を含む OSの起動(S103)については、 Linuxなどの 0Sと同様である。 Linuxの展開については、例えば参考文献 1 「D. Bovet and M. Cesati. 詳解 Linuxカーネル, オライリー ' ジャパン, 2001.」 に記載され ている。 起動時の処理の説明は、 0Sの主記憶上への展開が終了し、 0Sが最初の処 理を行うところから始める。
まず、 主記憶領域 120の利用可能領域を認識するために 0Sにより主記憶の初期 化がプロック単位で行われる(S104)。この初期化の際には再起動前にプロセスによ つて使用されていた領域を 0Sに認識させる必要がある。 0Sはあるブロックが使用 中であるか否かを認識するために、ブロック識別子 400を持つ(図 5 )。ブロック識 別子 400は、ブロック番号 401と使用フラグ 402と力 ら構成される。ブロック識別 子 400は一つのブロックについて一つ存在する。 起動時には、 OSデータ領域 122 にプロック識別子 400のための領域を確保し、 使用フラグ 402を零 (使用されてい ない)に設定することにより主記憶領域 120の初期化とみなされる。 利用可能であ る主記憶領域の開始アドレスは、 あらかじめ BIOSなどによってその値が与えられ ている。
図 6は本発明における主記憶初期化手段 133のフローチャートを示している。本 発明における主記憶初期化手段 133を実行する前にあらかじめ退避領域 124の使用 している領域を確認する(S201)。 退避領域 124 の使用している領域は、 退避領域 124にある退避領域使用サイズ 201を見ることで確認することができる。 次に、 退 避領域 124内にあるすベてのプロセス情報退避領域 125を検索し、 再起動フラグ 204 の設定されていない(再起動前のプロセスを継続利用する)プロセスのプロッ クテーブル 203 からあらかじめ初期化の必要のないプロックを把握しておく (S202)。退避領域 124によつて使用されているブロックのブロック番号 401のリス トを一時的に保持しておき、 のちの処理に使用する。
退避領域使用サイズ 201を確認し、初期化の必要のないプロックを把握した上で、 指定されたァドレスに対するブロック識別子一つ分の主記憶領域を 0で初期化す る(S204)。次に、退避領域 124で先ほど初期化したブロックが使用されているかを 確認する(S205)。使用しているなら(S206の YES)、使用フラグを立て(S207)、次の アドレスへ移る。 このようにして、 利用可能である領域の全てのブロック識別子 400を初期化すると(S203の YES)主記憶初期化手段 133を終了する。
主記憶領域 120の初期化が終了すると、 次にプロセスを復元する。 退避領域 124 内のプロセス情報退避領域 125を確認し、再起動フラグ 204が設定されているか確 認する(S107)。 再起動を行うのであれば (S108)、 当該プロセス情報の退避領域 124 を解放し、次のプロセスの退避情報に関して処理を行う(S105)。再起動を行わない のであれば、プロセスを復元する(S109)。以上の処理を退避領域 124内にあるプロ セス情報退避領域 125のエントリが全てなくなるまで行う(S106)。プロセスの復元 は、 プロセス表とプロックテーブルのための領域を OSデータ領域 122上に確保し (S110、 S112)、退避しておいたプロセス表 202とブロックテーブル 203を用意した 領域にコピーする(Slll、 S113)。 あるプロセス情報の退避領域 124の解放時には、 以下の処理を行う。
1)削除するプロセス情報退避領域の一つ前のプロセス情報退避領域 (単方向リス ト 205での一つ前のリスト要素)の単方向リスト 205が指す次のプロセス情報退避 領域へのボインタを、削除するプロセス情報退避領域に格納されている単方向リス ト 205の内容に置き換える。
2)削除するプロセス情報退避領域が使用している主記憶ブロックのブロック識 別子 400内の使用フラグ 402を零 (使用していない)にする。
3)退避領域使用サイズ 201の値から、削除するプロセス情報退避領域分だけ差し 引く。
次に、 本実施の形態の効果について説明する。
本実施の形態では、プロセス(アプリケーション)の終了処理を省略し、プロセス の終了にかかる補助記憶装置などの転送速度の遅い装置への入出力処理をなくす ことができるので、 システムの再起動時間を短縮することができる。
さらに、任意のプロセスを再起動後も再起動前の状態を保持したまま継続実行す ることができる。 よって、 システムの再起動に際してプロセスが提供していたサー ビスを強制的に中断する必要がなくなる。
次に、本発明の第 1の実施の形態の変形例について図面を参照して詳細に説明す る。
図 7を参照すると、 本発明の第 1 の実施の形態の変形例にかかる情報処理装置 100aは、 再起動フラグ設定手段 134の代わりに再起動プロセス IDテーブル 134a と再起動設定手段 134bを備えている点などで、 図 2に示した本発明の第 1の実施 の形態の情報処理装置 100と相違する。
本発明の第 1の実施の形態においては、 OSの再起動前に、 ユーザプロセスに関 する OS内のプロセス情報を主記憶装置上の退避領域に退避させると共に、 前記退 避させたプロセス情報に再起動するかどうかを指定する再起動フラグ 204 を設定 し、 OSの再起動時に、 再起動フラグ 204が再起動しない設定になっているユーザ プロセスの使用していた主記憶領域は初期化せずに OSの使用していた主記憶領域 は初期化し、 OS 再起動後に、 前記退避したプロセス情報のうち再起動フラグ 204 が再起動しない設定になっているユーザプロセスのプロセス情報を OS内に復元し た。
これに対して、 第 1 の実施の形態の変形例では、 再起動するユーザプロセスの IDを保持する再起動プロセス IDテーブル 134aを設け、 再起動設定手段 134b 少なくとも OSの終了前に、ユーザから入力されるプロセス IDに基づいて、再起動 するユーザプロセスの IDを再起動プロセス IDテーブル 134aに設定する。 プロセ ス情報退避手段 131は、 図 8のフローチャートに示すように、 OS の再起動前に、 OSデータ領域 122から一つのプロセス表を取り出し(S110)、 そのプロセス表に設 定されたプロセス IDが再起動プロセス IDテーブル 134aに登録されているかどう かを調べることにより(S111)、当該プロセス表に対応するユーザプロセスが再起動 するプロセスか、 OS 再起動後に継続運用するユーザプロセスかを判断し(S112)、 再起動せずに継続運用するユーザプロセスに関する OS内のプロセス情報を主記憶 装置上の退避領域 124に退避させる(S100)。すなわち、図 3に示したようなプロセ ス情報退避領域 125を作成する。 但し、本変形例の場合、再起動フラグ 204は省略 してよい。 そして、 0Sの再起動時 (S102、 S103)、 主記憶初期化手段 133により、 前記退避したユーザプロセスの使用していた主記憶領域は初期化せずに 0Sの使用 していた主記憶領域は初期化し(S104)、 前記退避したプロセス情報を OS内に復元 する(S105、 S106、 S109)。
なお、 上記の説明では、再起動プロセス IDテーブル 134aに、再起動するユーザ プロセスのプロセス IDを設定したが、 その反対に、 再起動せずに継続運用するュ 一ザプロセスのプロセス IDを設定するようにしてもよい。
第 1の実施の形態では、再起動の必要なプロセスについてもプロセス情報退避領 域 125を作成していたが、本変形例では、再起動の必要のないプロセスのみプロセ ス情報退避領域 125を作成するので、第 1の実施の形態よりも、 プロセス情報退避 領域 125を作成する回数を減らすことができる。
次に、 本発明の第 2の実施の形態について図面を参照して詳細に説明する。 図 9を参照すると、 本発明の第 2の実施の形態にかかる情報処理装置 100bは、 再起動フラグ設定手段 134の代わりに、再起動プロセス IDテーブル 134aと再起動 設定手段 134bを備え、 プロセス情報退避手段 131の代わりに、 プロセス退避情報 作成手段 135、 プロセス退避情報更新手段 136及びプロセス情報退避領域解放手段 137を備えている点などで、 図 2に示した本発明の第 1の実施の形態と相違する。 ここで、 再起動プロセス IDテーブル 134aと再起動設定手段 134bは、 本発明の第 1の実施の形態の変形例におけるものと同様のものである。 つまり、 再起動設定手 段 134bは、ユーザから入力されるプロセス IDに基づいて、再起動するユーザプロ セスの IDを再起動プロセス IDテーブル 134aに設定する。
本実施の形態では、 本発明の第 1 の実施の形態におけるプロセス情報退避手段 131を 3つの手段に分割する。 第 1の実施の形態では、 任意の時間にプロセス情報 退避手段 131を用いてプロセスの退避情報を作成していたが、 本実施の形態では、 プロセス生成時、 プロセス切り替え時、 プロセス終了時にそれぞれ、 プロセス情報 退避領域を作成し、 更新し、領域を解放する。 これら三つの処理をそれぞれプロセ ス退避情報作成手段 135、 プロセス退避情報更新手段 136、 プロセス情報退避領域 解放手段 137で実行する。 プロセス切り替えとは、 以下のような処理を指す。 UNIX
(登録商標)のようなマルチタスク OSでは、プロセスは複数同時に実行されるが、 ある微小時間 Δ tで CPUは一つのプロセスしか実行することができない。 よってプ 口セスがあたかも複数同時に実行しているように見せかけるために、マルチタスク OS では、 プロセスの実行を一定時間ごとに切り替えている。 これをプロセス切り 替えという。 以下では、 プロセス情報退避領域の作成、 更新、領域解放について説 明する。
図 1 0はプロセス生成時に動作するプロセス退避情報作成手段 135 のフローチ ヤートを示している。 プロセス退避情報作成手段 135は、 OSによるプロセスの生 成が完了した時点で処理を開始する。 プロセスの生成完了とは、生成するプロセス のプロセス表 202を OSデータ領域 122に用意し、 当該プロセスにプロセス使用領 域 123を割り当て、その使用領域 123に実行するプログラムをコピーし、 当該プロ セスが実行準備を完了した時点を指す。 まず、プロセス情報退避領域 125を主記憶 領域 120上に確保する(図 1 0の S301)。 次に、 当該プロセスのプロセス表 202を OSデータ領域 122からプロセス情報退避領域 125にコピーする(S302)。 次に、 当 該プロセスのブロックテーブル 203を OSデータ領域 122からプロセス情報退避領 域 125にコピーする(S303)。 最後に、 単方向リスト 205を設定し、 退避領域 124 のリストに登録する(S304)。
図 1 1はプロセス切り替え時に動作するプロセス退避情報更新手段 136 のフロ 一チャートを示している。まず該当するプロセスのプロセス情報退避領域 125を退 避領域 124から検索する(S401)。次に、ユーザから当該プロセスを再起動する旨の 指示があるかどうかを再起動プロセス IDテープル 134aを参照してチェックする (S402)。ユーザからの指示により再起動するのであれば (S403)、前記検索したプロ セス情報退避領域 125における再起動フラグ 204を立て(S404)、プロセス退避情報 更新手段 136を終了する。再起動せず継続運用するのであれば (S403)、再起動フラ グ 204を取り消し(S405)、 OSデータ領域 122上の最新のプロセス表 202をプロセ ス情報退避領域 125にコピー(S406)し、 OSデータ領域 122上の最新のプロックテ 一ブル 203をプロセス情報退避領域 125にコピー(S407)し、プロセス退避情報更新 手段 136を終了する。ユーザからの指示が存在しない場合は、再起動フラグに従う、 再起動フラグ 204が立っている状態であるのなら、更新処理(S406、 S407)は行わず 終了する。
図 1 2はプロセス終了時に動作するプロセス情報退避領域解放手段 137 のフロ 一チャートを示している。まず退避領域 124から当該プロセスのプロセス情報退避 領域 125を検索する(S501)。次に単方向リスト 205から当該プロセスのプロセス情 報退避領域 125を削除する(S502)。 この処理 (S502)は、 当該プロセスのプロセス情 報退避領域の前につながっている領域と後につながつている領域のリストをつな ぎ合わせる処理になる。次に、 当該プロセスのプロセス情報退避領域 125を解放す る(S503)。つまり、削除するプロセス情報退避領域 125が使用している主記憶プロ ックのブロック識別子 400内の使用フラグ 402を零 (使用していない)にし、退避領 域使用サイズ 201の値から、削除するプロセス情報退避領域分だけ差し引く。 これ でプロセス情報退避領域解放手段 137 の処理が終了し、 この後、 0Sによるプロセ スの終了処理に移ることになる。
再起動後の主記憶初期化、プロセス復元などは、第 1の実施の形態と同様である。 本実施の形態における効果は以下の通りである。
第 1の実施の形態では、プロセスの最新の情報を保持するためにはシステム終了 時にプロセス情報退避領域 125 を作成する必要があった。 例えば、 システム終了 10分前にあるプロセスについてプロセス情報退避領域 125を作成すると、 プロセ ス情報退避領域 125を作成してからシステム終了までの 10分間の間にプロセスは 処理を実行し、 プロセス表を書き換えたり、 必要のなくなったブロックを解放し、 プロックテーブルを書き換えている可能性がある。このような場合にはプロセス復 元手段 132にてプロセス表 202、 ブロックテーブル 203を元に戻しても実行できな い場合がある。 よって、プロセスの最新の情報を保持するためにシステム終了時に プロセス情報退避領域 125を作成する必要があった。 し力 し、本実施の形態を適用 すると、常にプロセス情報を最新の状態にしておくことができ、 システム終了時に プロセスの終了処理を一切行う必要がなくなる。 よって、第 1の実施の形態と比較 し、 より高速にシステムを終了することができる。
次に、本発明の第 3の実施の形態について図面を参照して詳細に説明するが、そ の前に、 第 3の実施の形態に利用する主記憶イメージを用いた高速起動方式 (以下 主記憶ィメージ方式と呼ぶ)について説明する。
図 1 3を参照すると、主記憶ィメージ方式を適用した情報処理装置は、少なくと も主記憶装置 101とデータ処理装置 150とを有し、プログラム制御により動作する。 主記憶装置 101は、 主記憶部 126と不揮発性記憶部 140とを含んで構成される。 不揮発性記憶部 140は、 OS及ぴアプリケーションプログラムの初期化処理後の 主記憶ィメージを記憶する部分である。 この不揮発性記憶部 140は、不揮発なメモ リなら任意の種類のメモリで良く、例えばフラッシュ RAM等の書き換え可能な不揮 発性メモリや、 ROM等の読み出し専用の不揮発性メモリが使用できる。 使用する主 記憶イメージの内容を変更する方法としては、不揮発性記憶部 140の差し替え、 ま たは、不揮発性記憶部 140が書き換え可能な場合は、ネットワークを利用したィメ ージファイルのダウンロードゃ、外部記憶媒体からのイメージフアイルの読み込み などの方法が使用可能である。
不揮発性記憶部 140に記憶する主記憶ィメージの生成方法は任意であるが、例え ば、通常のシステム起動方法で起動した直後の主記憶ィメージをダンプすることに より生成することができる。
主記憶部 126は、 不揮発性記憶部 140以外の主記憶領域を構成する部分である。 この主記憶部 126は、読み書き可能なメモリなら任意の種類のメモリで良く、一般 的には DRAM、 SRAM等の揮発性のメモリが使用される。但し、 MRAM (Magnetoresistive RAM)、 FeRAM (Ferroelectric RAM)、 フラッシュ RAM等の不揮発性のメモリを使用 することも可能である。
他方、データ処理装置 150は、マッビングテーブル変更部 190と了ドレス変換部 200とハードウエア初期化部 180の機能手段を備え、ハードウエア初期化部 210は マツビングテープノレ初期化部 180を有している。またデータ処理装置 150は、制御 テーブルとしてマッビングテーブル部 160および保護情報部 170を有している。 マッビングテーブル部 160は、 データ処理装置 150上で動作する OSゃァプリケ ーシヨンプログラム(両者を総称してプログラムと言う)が主記憶装置 101 を操作 する際に指定するメモリアドレス(論理ァドレス)を、主記憶装置 101を構成する主 記憶部 126および不揮発性記憶部 140に実際に割り当てられているメモリアドレス (物理ァドレス)に変換するための情報、および保護モードを記憶する制御テーブル である。 ここで、論理ァドレスは論理ブロックアドレスとブロック内アドレスとで 構成され、物理ァドレスは物理ブロックアドレスと前記プロック内アドレスとで構 成される。
図 1 4にマッビングテーブル部 160のェントリの構成例を示す。マッピングテー ブル部 160は、 このようなエントリの集合から構成される。 図 1 4を参照すると、 1つのェントリには、論理ブロックァドレス 161と物理ブロックァドレス 162と保 護モード 163の組が保持される。論理プロックアドレス 161は、論理ァドレス空間 を所定の大きさのプロックに分割したときにできる個々の論理ブ口ックを一意に 識別するァドレスである。物理プロックアドレス 162は、物理ァドレス空間を論理 ァドレス空間と同じ大きさのプロックに分割したときにできる個々の物理プロッ クを一意に識別するアドレスである。 ブロックとしては、ページと呼ばれるァーキ テクチヤに固有の単位を用いることで効率良く処理することが可能となるが、主記 憶ィメージ方式はその単位に制限されるわけではない。保護モード 163は、読み込 み専用の保護モードと読み書き可能の保護モードの何れか一方の値をとる。この保 護モード 163は、当該情報処理装置で実行されるプログラムの本来の保護属性とは 異なる擬似的なものであり、不揮発性記憶部 140のプロックに関してはシステム起 動時に読み込み専用の保護モードが一律に設定される。
保護情報部 170は、当該情報処理装置で実行されるプログラム本来の保護属性を 保持する制御テーブルである。図 1 5に保護情報部 170のェントリの構成例を示す。 保護属性部 170は、このようなエントリの集合で構成される。図 1 5を参照すると、 1つのェントリには、論理プロックアドレス 171と保護属性 172の組が保持される。 保護属性 172には、読み込み専用の保護属性と、読み書き可能の保護属性とがあり、 何れの保護属性が設定されるかは、論理ブロックアドレス 171で特定されるブロッ クの本来の保護属性によつて決定される。
ハードウエア初期化部 210は、当該情報処理装置の起動時および再起動時にシス テム各部のハードウェアの初期化を行う部分であり、マツビングテーブル初期化部 180を備えている。 このマッビングテーブル初期化部 180は、 主記憶装置 101を構 成する主記憶部 126およぴ不揮発性記憶部 140への物理ァドレスの割り当て機能と、 マッビングテーブル部 160の初期設定機能とを有する。一般に PCIバスの制御下に 置かれているメモリなどのデバイスに対しては、 BIOS の機能で物理アドレスを物 理的に固定させずに或る程度動的に割り当てることができるが、マッピングテープ ル初期化部 1 8 0は、 このような BIOSの処理と同様な物理ァドレスの割り当て機 能を有している。但し、主記憶イメージ方式において物理アドレスの動的な割り当 ては必須の事項でなく、物理ァドレスが静的に割り当てられている計算機システム に対しても適用可能である。マッピングテーブル部 160の初期設定では、論理アド レス空間を構成する各論理プロックに対して、不揮発性記憶部 140に割り当てた物 理プロックを順次に対応付け、それら全てのブロックの保護モードを、そのブロッ クの本来の保護属性にかかわらず読み出し専用に設定する。 ァドレス変換部 200は、当該情報処理装置上で動作するプログラムがメモリ操作 の際に指定する論理ァドレスを物理ァドレスに変換する機能と保護モード違反に よる例外を検出し例外処理を起動する機能とを有する。論理ァドレスから物理ァド レスへの変換おょぴ保護モード違反による例外検出は、マツビングテーブル部 160 を参照して行う。マツビングテーブル変更部 190は、ァドレス変換部 200で起動さ れた例外処理を実行する機能を有する。例外処理では、保護情報部 170の参照によ る本来の保護属性の判定、不揮発性記憶部 140のプロックの主記憶部 126へのコピ 一、 マッビングテーブル部 160の更新などの処理が行われる。
図 1 6にァドレス変換部 200およびマッピングテーブル変更部 190の処理の一例 を示す。 アドレス変換部 200は、プログラムから指定されたメモリアクセスにかか る論理ァドレス中のプロックアドレスでマッビングテーブル部 160を検索し、図 1 4に示した論理ブロックアドレス 161 がー致するエントリを取得する(ステップ S70l) o 次に、 アドレス変換部 200は、 プログラムから指定されたメモリアクセス が、 書き込みアクセスか、 読み出しアクセスかを判別し(ステップ S702)、 読み出
Figure imgf000026_0001
S702で NO)、 ステップ S701で取得したェントリ中 の物理プロックァドレス 162を用いて、プログラムから指定された論理ァドレスを 物理ァドレスに変換し(ステップ S703)、 その物理ァドレスで特定される主記憶装 置 101の個所をアクセスする(ステップ S704)。
プログラムから指定されたメモリアクセスが書き込みアクセスの場合(ステップ
S702で YES)、了ドレス変換部 200は、ステップ S701で取得したェントリ中の保護 モード 163が読み込み専用の保護モードか、読み書き可能な保護モ一ドかを判別す る(ステップ S705)。読み書き可能な保護モードであれば(ステップ S705で NO)、了 ドレス変換部 200は、 ステップ S701で取得した物理ブロックァドレス 162を用い て、 プログラムから指定された論理ァドレスを物理ァドレスに変換し(ステップ S703)、その物理ァドレスで特定される主記憶装置 101の個所をアクセスする(ステ ップ S704)。
保護モード 163が読み込み専用の保護モードである場合(ステップ S705で YES)、 了ドレス変換部 200は、 当該メモリアクセスの処理を一時保留し、例外イベントを マッピングテーブル変更部 190に通知して例外処理を起動する(ステップ S706)。 この例外ィベントでは、 ステップ S701で取得したェントリ中の論理プロックアド レス 161と物理プロックアドレス 162をマッビングテーブル変更部 190に通知する, マッピングテーブル変更部 190は、通知された論理プロックアドレス 161で保護 情報部 170を検索し、図 1 5の論理プロックァドレス 171がー致するェントリの保 護属性 172を取得する(ステップ S707)。次に、マッビングテーブル変更部 190は、 保護属性 172が読み込み専用の保護属性か、読み書き可能な保護属性かを判別する (ステップ S708)。 読み込み専用の保護属性であれば(ステップ S708で YES)、 マッ ビングテーブル変更部 190はァドレス変換部 170に対してエラーを通知し、了ドレ ス変換部 200は保留中のメモリアクセスを拒否する等のエラー処理を行う。
他方、 保護属性 172が読み書き可能な保護属性であれば(ステップ S708で N0)、 マッビングテーブル変更部 190は、了ドレス変換部 200から通知された物理プロッ クアドレス 162で特定される不揮発性記憶部 140のブロックを、主記憶部 126の空 きブロックにコピーする (ステップ S709)。次にマッピングテーブル変更部 190は、 図 1 4の論理プロックァドレス 161がァドレス変換部 200から通知された論理ブロ ックァドレスに一致するェントリをマッピングテーブル部 160から検索し、そのェ ントリの物理プロックァドレス 162をステップ S709におけるコピー先の主記憶部 126のプロックの物理ブロックァドレスに書き換え、 かつ保護モード 163を読み書 き可能な保護モードに書き換える(ステップ S710)。 そして、 例外処理の完了をァ ドレス変換部 200に通知する。 了ドレス変換部 200は、 マッビングテーブル変更部 190から例外処理の完了通知を受けると、 一時保留していたメモリアクセスの処理 をステップ S701から再度開始する。
図 1 7は主記憶ィメージ方式を適用した情報処理装置の概略動作を示すフロー チャートである。 以下、各図を参照して主記憶イメージ方式を適用した情報処理装 置の動作を説明する。
情報処理装置は起動されると、 図 1 7に示されるように、 先ず、 ハードウェア初 期化部 210によってハードウェアの初期化を行った後(ステップ S801)、 マツピン グテーブル初期化部 180によって、主記憶部 126および不揮発性記憶部 140に物理 ァドレスを割り当て、マッビングテーブル部 160を初期設定する(ステツプ S802)。 マッビングテーブル部 160の初期設定では、論理プロックアドレスと物理ブロック ァドレスの対応関係をマツビングテーブル部 160に書き込み、且つ、不揮発性記憶 部 140の全てのプロックは読み込み専用の保護モードでマッビングテーブル部 160 に登録する。
次にデータ処理装置 150は、不揮発性記憶部 140に保存されている主記憶ィメ一 ジからシステムを起動する(ステップ S803)。 この主記憶イメージは、 OSやアプリ ケーションの起動直後と同じ状態であるため、システムは立ち上げ直後の環境に復 帰することになる。 このとき、主記憶イメージから起動してから、システム運用(ス テップ S804)が可能になるまでの運用中断状態は存在しない。
システム運用(ステップ S804)の段階において、 プログラムから不揮発性記憶部 140のとあるブロックに対して初めての書き込みアクセスが発生したときには、 そ こは読み込み専用の保護モードでマッピングされているので、 了ドレス変換部 200 が例外イベントを通知し、 当該書き込みアクセスを一時保留する(図 1 6の S706)。 例外ィベントを受け取ったマッビングテーブル変更部 190は、保護情報部 170を参 照してその書き込み発生論理ァドレスのブロックの保護属性を判断し(図 1 6のス テツプ S708)、 読み書き可能属性であれば、 そのブロックの大きさの空きブロック を主記憶部 126から割り当て、その不揮発性記憶部 140の当該プロックの内容をコ ピーする(図 1 6のステップ S709)。 更に、 マッピングテーブル変更部 190は、 割 り当てられた主記憶プロックを書き込みが発生した論理プロックアドレスに読み 書き可の保護モードでマッビングするようマツビングテーブル部 160に設定して、 一時保留された書き込みアクセスの処理を再開させる(図 1 6のステップ S710)。 この結果、一時保留された書き込みアクセスおよびその後の当該プロックへの書き 込み操作は、 割り当てられた主記憶プロックに対して実行される。 このとき、 プロ ックの単位を小さくすることでコピー時間が短くなり、システム運用が中断される 時間を短くすることができる。
この状態で、 再起動が行われると(図 1 7のステップ S805)、 再ぴハードウェア の初期化処理(ステップ S801)から実行され、 起動時と同じようにマッピングテー ブノレ初期化部 180の動作によってマッピングテーブル部 160の内容が初期化され、 不揮発性記憶部 140 がマッピングし直される(ステップ S802)。 このため、 システ ムの運用中に主記憶部 126 に対して行われた書き込みの内容は一切反映されてい ない状態に戻り、これがつまり、立ち上げ直後の環境に復帰することと同じになる。 このように主記憶ィメージ方式を適用した情報処理装置にあっては、不揮発性記 憶部 140に、 OS及びアプリケーションプログラムの初期化処理後の主記憶ィメー ジが記憶されており、データ処理装置 150は、不揮発性記憶部 140に記憶された主 記憶イメージからシステムを起動するため、 システムの高速起動が可能になる。 ま た、 システム運用中に OSまたはアプリケーションプログラムから不揮発性記憶部 140への書き込みアクセスが発生すると、 データ処理装置 150は、 書き込みァクセ スが発生したァドレスを含む所定幅のァドレス範囲内のデータを不揮発性記憶部 140から主記憶部 126に確保した代替領域にコピーし且つ以後の前記所定幅のァド レス範囲へのアクセスを前記代替領域へのアクセスに変換する設定を行う。このた め、前記書き込みァクセスおよびそれ以降の前記所定幅のアクセス範囲へのァクセ スは、 前記代替領域へのアクセスに変換され、 代替領域上のコピーが更新される。 このように、 OS やアプリケーションプログラムによって書き換える必要のあるデ ータをシステムの起動時に不揮発性記憶部 140 力 ら読み書き可能な主記憶部 126 へ連続してコピーしておくのではなく、書き込みアクセスが発生した都度実施する ことにより、 システム起動後に直ちにシステムの運用を開始することができる。 以上が主記憶イメージを用いた高速再起動方式の説明である。続いて、 この高速 起動方式を応用した本発明の第 3の実施の形態について図面を参照して説明する。 図 1 8を参照すると、本発明の第 3の実施の形態にかかる情報処理装置 100cは、 主記憶領域 120が主記憶部 126と不揮発性記憶領域 140で構成され、データ処理装 置 150が追カ卩されている点で、 図 2に示した第 1の実施の形態の情報処理装置 100 と構成が相違する。
不揮発性記憶部 140には、 図 1 3の不揮発性記憶部 140の場合と異なり、 OSの みの起動イメージだけが記憶されている。 つまり、 0S を通常起動した直後の主記 憶上の内容を記憶している。 不揮発性記憶部 140に記憶される 0Sの主記憶ィメ一 ジ(起動イメージ)には、 OSプログラム領域と OSデータ領域とが含まれる。 主記憶 部 126内にも OSデータ領域 122が図示されている力 S、この OSデータ領域 122は不 揮発性記憶部 140内の OSデータ領域 122が運用中に書き込みのためにアクセスさ れたことによって、図 1 6のステップ S709でコピーされて生成された領域であり、 前述した 「代替領域」 に相当する。
データ処理装置 150は、図 1 3で説明したような構成を備え、プログラムを実行 する際のァドレス変換などを担う。
本実施の形態では、 第 1 の実施の形態の動作を説明した図 4 A及ぴ図 4 Bの 0S 起動部分 (S103)に、 0S の主記憶イメージを用いた高速起動方式を用いる。 また、 本実施の形態では、主記憶初期化手段 133の処理内容が第 1の実施の形態と異なる。 すなわち、 第 1の実施の形態と同様、 0Sに対し既に使用されているブロックを認 識させる必要があるが、主記憶ィメージはすでに主記憶領域の初期化を終了したも のとみなすことができる。 よって、第 1の実施の形態における主記憶領域初期化手 段 133とは異なり、プロック識別子 400のための領域を主記憶上に確保する(S202) 必要がなく、すでに存在するブロック識別子に関して使用されている力否かを確認 するのみでよい。 また、第 1の実施の形態と同様に、退避領域使用サイズ 201とプ ロセスが使用しているブロックのリストは事前に知つておく必要がある。
図 1 9に本実施の形態における主記憶初期化手段 133のフローチャートを示す。 第 1の実施の形態との違いは、プロック識別子のための主記憶領域を用意し 0で初 期化するか (S204)、 すでに存在するプロック識別子を検索するか (S904)である。 本実施の形態によれば、 0Sの起動に 0S起動イメージを利用するため、 0S起動時 の初期化処理および転送速度の遅レ、補助記憶装置からの入出力をなくすことがで きるので、 第 1の実施の形態よりもさらに高速な再起動を実現することができる。 勿論、 常に再起動されるのは 0Sだけであり、 再起動前に実行中のアプリケーショ ンは、再起動フラグの値に応じて、再起動される力、継続運用されるかが決定され る。
本実施の形態は、第 1の実施の形態に主記憶ィメージによる高速起動方式を適用 したものである力 第 1の実施の形態の変形例(図 7 )または第 2の実施の形態に主 記憶イメージによる高速起動方式を適用し、 OS の再起動の高速化を図るようにす ることもできる。
次に、 本発明の第 4の実施の形態について図面を参照して詳細に説明する。 図 2 0を参照すると、本発明の第 4の実施の形態にかかる情報処理装置 100dは、 図 2の第 1の実施の形態にかかる情報処理装置 100と比較して、再起動フラグ設定 手段 134に代えて、 再起動設定受付手段 220、 再起動プロセス IDテーブル 221及 ぴ再起動フラグ設定手段 222を備えている点で相違する。
再起動設定受付手段 220は、 ユーザから再起動するプロセスのプロセス IDをキ 一ボード等を通じて受け付け、 再起動プロセス IDテーブル 221に保存する手段で ある。再起動フラグ設定手段 222は、第 1の実施の形態における再起動フラグ設定 手段 134と同様に、プロセス情報退避手段 131によって退避領域 124に生成された プロセス情報退避領域 125に設けられた再起動フラグ 204の設定を、システム終了 までの任意の時間に行う手段であるが、 再起動プロセス IDテーブル 221にプロセ ス IDが保存されたユーザ指定の再起動プロセスだけでなく、 その再起動プロセス と同じアプリケーションに属するすべてのプロセスの再起動フラグ 204 をサーチ し、 これらのプロセスの再起動フラグ 204も同様に設定する機能を有する。
一般に、複数のプロセスによってアプリケーションが構成される場合、 それら複 数のプロセスには、 同じプロセスグループ IDが付与され、 プロセス表 202の 1ェ ントリに保存される。 従って、或るプロセスと同じアプリケーションに属する他の プロセスがどれであるかは、 プロセス表 202 に保存されているプロセスグループ IDを調べることで可能である。
図 2 1に再起動フラグ設定手段 222の処理のフローチヤ一トを示す。まず再起動 フラグ設定手段 222は、再起動プロセス IDテーブル 221にプロセス IDが保存され ている 1つのプロセスに注目し(ステップ S1001)、 そのプロセスに対応するプロセ ス情報退避領域 125の再起動フラグ 204をアクセスし、立っていなければ立てる(ス テツプ S1002)。 次に、 注目中のプロセスのプロセス表 202からプロセスグループ ID を取得し(ステップ S1003)、 他のプロセス情報退避領域 125 のプロセス表 202 のプロセスグループ IDを調べて、同じプロセスグループ IDを持つ他のプロセスす ベてを検索する(ステップ S1004)。 そして、 検索したすべてのプロセスのプロセス 情報退避領域 5の再起動フラグ 204をアクセスし、 立っていなければ立てる(ス テツプ S1005)。 次に、 再起動プロセス IDテーブル 221にプロセス IDが保存され ている他の 1つのプロセスに注目を移し(ステップ Sl'006)、 ステップ S1002に戻つ て上述した処理と同様の処理を繰り返す。 再起動プロセス IDテーブル 221に保存 されたすべてのプロセス ID に注目した処理を終えた時点で(ステップ S1007 で YES) , 処理を終える。
このように本実施の形態によれば、ユーザは、 アプリケーションを構成する複数 のプロセスのうち少なくとも 1 つのプロセスを再起動プロセスとして指定してお けば、残りのプロセスを再起動プロセスとして明示的に指定しなくても、 自動的に 再起動プロセスとして処理される。通常のアプリケーシヨンは複数のプロセスから 構成されることが多く、 1つのアプリケーションを構成する複数のプロセスをこの ように一括管理して再起動の設定を施すことで、個々のプロセスごとに再起動の設 定を施すという煩雑な作業からユーザを解放することができる。 また、再起動後に アプリケーシヨンを構成するプロセスが足りない(アプリケーションの中の 1つの プロセスのみ再起動してしまった。 )などというミスを防ぐことができる。
本実施の形態は、第 1の実施の形態を前提としたが、 同様の考えを第 2の実施の 形態あるいは第 3の実施の形態に対して適用することが可能である。
次に本発明の第 1の実施例を、 図面を参照して説明する。 かかる実施例は本発明 における第 1の実施の形態に対応するものである。
本実施例は具体的な OSの例として、 Linuxを使用する。
Linuxにおいて、 プロセスを管理するためにカーネルが持っている情報としては、 プロセスディスクリプタと、このプロセスディスクリプタに付随する他の構造体が ある。 プロセスディスクリプタは、 プロセスを実行するために必要なほとんどの情 報を保持している。 他の構造体とは、 例えばファイルをオープンしていれば、 ファ ィル構造体、 ソケットをオープンし、他の計算機と通信を行えば、 ソケット構造体 がプロセスディスクリプタに付随する。 プロセスディスクリプタには、 これら付随 する構造体へのボインタが格納されている。これらプロセスディスクリプタと付随 する構造体が、 図 3のプロセス表 202にあたる。
また、 Linuxでは、 主記憶領域 120をページという単位で管理している。 プロセ スの使用している主記憶領域 120は複数のページから構成され、複数のページをま とめて管理するためにプロセス 1つにつき 1つのページテーブルが OSにより用意 される。 このページテーブルが、 ブロックテーブル 203にあたる。
プロセスを途中で中断し、再起動後にプロセスを継続実行するには、上記のプロ セスディスクリプタ、 ページテーブル、 プロセスの使用メモリ領域のほかに、 当該 プロセスが実行中であれば、 CPU内のレジスタに格納されてレヽるデータが必要とな る。 マルチタスク OSではプロセスを複数同時に実行するためにプロセス切り替え を行っている。
プロセス切り替えによって、実行を一時中断されたプロセスの CPU内のデータは、 タスク状態セグメン 1、とカーネルモードスタックに分割して格納される。タスク状 態セグメントは、 プロセスディスクリプタの中にあるェントリの一つであり、 カー ネルモードスタックは、 プロセスが使用しているメモリ領域の一部である。 プロセ スを再開するときは、 タスク状態セグメントと、 カーネルモードスタックから中断 されたときの CPUレジスタの状態を復元し実行を再開する。
プロセス情報退避手段 131では、 上記に記載したプロセスに関する情報(プロセ スディスクリプタ、 ページテーブルなど)をプロセス情報退避領域 125に退避させ ることである。図 2 2はプロセス情報退避手段 131の Linuxでの処理を表している。 生成された全てのプロセスのためのプロセスディスクリプタは、リスト構造にな つており、 プロセスディスクリプタの先頭ァドレスは、 init一 taskという変数に収 められている。 まず、 init_taskからプロセスディスクリプタのアドレスを取得す る(ステップ S1301)。 次にプロセス情報退避領域 125を主記憶上に確保し(ステツ プ S1302)、 プロセスディスクリプタを作成したプロセス情報退避領域 125にコピ 一する(ステップ S1303)。同様に、プロセスディスクリプタに付随する他の構造体、 ページテーブルもプロセス情報退避領域 125にコピーする (ステップ S1304、S1305)。 プロセス情報退避領域 125を単方向リスト 205に登録し(ステップ Sl306)、 退避領 域使用サイズ 201に使用した主記憶サイズを足す(ステップ S1307)。 以上でプロセス情報退避手段 131の一度の処理が終了する。この処理を生成され たプロセス全てについて実行する。 プロセス全てについてプロセス情報退避領域 125を作成したのち Linuxを通常終てさせる。
システム起動時は主記憶初期化とプロセス復元の二つの処理を行う。
Linuxでは、 主記憶をページという単位で管理している。 ページにはページディ スクリプタとよばれる当該ページに関する情報を格納している領域があり、起動時 に Linuxでは、 Linux自身とハードウェアによって使用されている領域を除き、 す ベての主記憶領域 120をページ単位に分割し、その各々にページディスクリプタを 害 ϋり当てることで、利用できる主記憶領域 120の初期化を行う。このような処理は、 主記憶領域 120をある単位(ページやセグメントなど)で管理している OSに共通す る処理である。主記憶初期化処理の時点で、再起動を行わないプロセスについては、 当該プロセスが使用している主記憶空間を OSに認識させる必要がある。 本実施例 におけるページは、第 1の実施の形態におけるプロックに相当し、ページディスク リプタはブロック識別子 400に相当する。
Linuxは、 上述したとおり主記憶領域 120をページという単位で管理しており、 主記憶上のページの一つ一つにページディスクリプタが存在する。 Linuxでは、 こ のページディスクリプタの初期化作業をもって、主記憶領域 120の初期化としてい る。 Linuxの実装では、 ページディスクリプタは、 OS予約領域と呼ばれる OSをメ モリ上に展開するために用意された領域の直後に配置され、固定長である。よって、 再起動後もページディスクリプタを配置している主記憶上の位置、大きさは変わら ない。 また、 主記憶領域 120のページが使用されているかどうかは、ページデイス ク リプタ内の count変数によって管理されている。 count変数が 1以上の時に当該 ページは使用されていることになる。 共有メモリを使用する複数のプロセスは、 1 つのページを複数のプロセスで使用することになる。 このような場合には、 count 変数は 1以上の値をとることになる。
図 2 3に本実施例における主記憶初期化手段 133の処理を示す。 まず、退避領域 124 の使用している主記憶領域 120 を退避領域使用サイズ 201力 ら確認しておく (ステップ S1401)。 次に退避領域 124内にある全てのプロセス情報退避領域 125内 のページテーブルを検索し、どのページがどのプロセスによつて利用されてるかど うかを調べておく(ステップ S1402)。 調べた結果は、 ページディスクリプタ番号と 使用しているプロセス数のテーブルにして保持しておく。
主記憶領域 120の最初のァドレス(厳密には、 OSの予約領域の直後のァドレス) から、ページディスクリプタを設置していく。指定されたアドレスにっき一つのデ イスタリプタ領域を用意し 0で初期化する(ステップ S1404)。 次に、 指定されたァ ドレスが退避領域 124 に格納されているページテーブルで使用されているかを確 認する(ステップ S1405)。 確認には上記にて調べたページディスクリプタ番号と使 用しているプロセス数のテーブルを利用する。 使用していれば(ステップ S1406の YES)、ページディスクリプタ内の count変数に使用しているプロセス数を代入する (ステップ S1407)。 使用していない場合(ステップ S1406の NO)もしくはステップ S1407の処理を終了すると、 次のページディスクリプタの初期化に移る。 利用でき るすべての主記憶領域 120を初期化すると(ステップ S1403の YES)、 主記憶初期化 手段 133の処理が完了する。
プロセス復元手段 132は、プロセスディスクリプタおよび付随する他の構造体な らぴにぺ一ジテーブルを復元のために用意した OSデータ領域 122にコピーするこ とであり、 実施の形態 1に記載したプロセス復元処理と同様である。
次に、 第 2の実施の形態について実施例を以下に示す。
図 2 4はプロセス生成時のプロセス退避情報作成手段 135 の処理内容を示して いる。
ユーザによりプログラムの実行要求が 0Sに指示されると、 0Sはプロセスを生成 する。 ここでは、 ある一つのプロセスの名称としてプロセス Aと呼ぶ。 プロセス A が生成され、プロセスディスクリプタがプロセス実行キューに登録されることで初 めてプロセス Aが実行される。 プロセス退避情報生成手段 135は、 プロセス実行キ ユーに当該プロセスが登録される前に実行する。 プロセス Aが生成された時点で、 プロセスディスクリプタが格納されているァドレスは、 すでに 0Sが保持している (0S内の一時変数に生成したプロセス Aのプロセスディスクリプタが格納されてい る)。 よって、 プロセスディスクリプタのアドレスを取得する処理は行わない。 ま ず最初にプロセス A の退避情報を格納する領域をメモリ上に確保する(ステップ S150l) o 次に、 プロセス Aのプロセスディスクリプタを確保したプロセス情報退避 領域 125にコピーする(ステップ S1502)。 さらにプロセスディスクリプタに付随す る他の構造体(ファイル構造体、ソケット構造体など)を同退避領域 125にコピーす る(ステップ S1503)。 次に、 プロセス Aのページテーブルを同退避領域 125にコピ 一する(ステップ S1504)。 ページテーブルが置かれているアドレスは、 プロセスデ イスクリプタ中のメモリディスクリプタに格納されているので、 それを参照する。 最後に同退避領域 125を退避領域リストに登録し、退避領域サイズに使用した主記 憶サイズを足す(ステップ S1505、 SI 506)。
図 2 5にプロセス退避情報更新手段 136の処理内容を示す。更新処理は、 プロセ ス切り替えに関する処理がすべて終了し、次に実行されるプロセスのレジスタ情報 がタスク状態セグメントから復元される前に行う。プロセス Aのプロセス情報退避 領域 125の更新処理を行う前に、まずユーザから当該プロセスを再起動するかどう かの命令を受け取っているかを確認する。この命令はシステムコールとして実装さ れてもよいし、他の方法を使っても良い。 ユーザから当該プロセスを再起動すると の 旨示があると(ステップ S1601の YES)、 更新処理としては、 プロセス Aのプロセ ス†青報退避領域 125にある再起動フラグ 203を立てて、 処理を終了する(ステップ S1607)。 ユーザから再起動が指示されていなければ(ステップ S1601 の N0)、 以下 のように処理を行う。
まず、プロセス Aのスタックポィンタよりプロセスディスクリプタのァドレスを 取得する(ステップ S1602)。 次に、 退避領域 124からプロセス Aのプロセス情報退 避領域 125のァドレスを取得する。図 3における退避領域 124のデータ構造を参照 するとわかるように、 退避領域 124 は、 各プロセスのプロセス情報退避領域 125 をリス トで管理している。 よって、 一番先頭(リストの最初のプロセス情報退避領 域 125)のアドレスを取得し、 つぎにリストを探索していくことで目的のプロセス のプロセス情報退避領域 125のアドレスが取得できる。 現在、 アクセスしている退 避鎮域 124がどのプロセスのプロセス情報退避領域 125かを確認するには、プロセ ス生成時点でコピーされているプロセスディスクリプタ内のプロセス IDを見れば よい。 プロセス Aの退避領域 124のアドレスを取得できれば、次にプロセス Aのプ ロセスディスクリプタと付随する構造体をプロセス Aのプロセス情報退避領域 125 にコピーする(ステップ S1604、 S1605)。 最後に、 ページテーブルをコピーする(ス テツプ S1606)。
プロセス終了時のプロセス情報退避領域解放手段 137の処理内容は、第 2の実施 の形態と同様である。 まず、退避領域 124のリストからプロセス Aのプロセス情報 退避領域 125のァドレスを取得する。 了ドレスが取得できたら、プロセス情報退避 領域 125をリストから削除し、領域を解放する。その後プロセスの終了処理を行う。 以上で OSの持つプロセス情報の退避処理がすべて完了する。 このように計算機 システムの運用中に退避情報を作成しておくことで、再起動時には終了処理を行わ なくてすむ。 よって、終了処理に伴う補助記憶装置へのアクセスの削減に伴って再 起動時間の短縮が実現できる。 産業上の利用可能性
本発明の第 1の効果は、 システムの終了時間を削減できることにある。その理由 は次の通りである。 システムの終了処理とは、 OS の終了処理とアプリケーション の終了処理から構成される。 OS は通常終了することになるが、 アプリケーション の終了処理に関しては、当該アプリケーションを構成するプロセスのプロセス表な どのプロセス情報を主記憶上の退避領域に退避させているだけである。 よって、了 プリケーシヨンの終了処理に伴う転送速度の遅い補助記憶装置に対するアクセス を軽減することになるので、 システムの終了時間を短縮することができる。
本発明の第 2の効果は、再起動後も再起動前に運用していたアプリケーションを 継続実行できることにある。 その理由は、 再起動前に OSの使用している主記憶上 よりプロセス表などのプロセス情報を退避し、 再起動後には OSの使用している主 記憶上にプロセス表などのプロセス情報を復元するため、プロセス表を退避、復元 したプロセスは、 実行を中断、 再開したに過ぎず、 あたかも継続運用されているよ うに見えるためである。 よって、 障害の発生していないアプリケーションは、 サー ビスを継続提供することができる。 よって、本発明によれば、再起動時にユーザへのサービスを中断することがない ので、長時間連続運用が求められる大規模ァプリケーシヨンサーバーといった用途 に適用できる。 また、 通常のパーソナル情報処理装置上の 0S、 たとえば Windows などにおけるレジストリ書き換えによる再起動の際にも、ユーザの作業状況はその ままに、 OS のみ再起動することにより書き換えたレジストリ情報を反映させるよ うな用途として適用可能である。

Claims

請 求 の 範 囲
1 . OSの再起動前に、.ユーザプロセスに関する OS内のプロセス情報を主記憶装 置上の退避領域に退避させ、 OS の再起動時に、 前記ユーザプロセスの使用してい た主記憶領域は初期化せずに OSの使用していた主記憶領域は初期化し、 OS再起動 後に、 前記退避したプロセス情報を OS内に復元することを特徴とする高速再起動 方法。
2 . OSの再起動前に、 ユーザプロセスに関する OS内のプロセス情報を主記憶装 置上の退避領域に退避させると共に、前記退避させたプロセス情報に再起動するか どう力 を指定する再起動フラグを設定し、 OS の再起動時に、 前記再起動フラグが 再起動しない設定になっているユーザプロセスの使用していた主記憶領域は初期 化せずに OSの使用していた主記憶領域は初期化し、 OS再起動後に、 前記退避した プロセス情報のうち前記再起動フラグが再起動しない設定になっているユーザプ 口セスのプロセス情報を OS内に復元することを特徴とする高速再起動方法。
3 . OS の再起動前に、 OS再起動後に継続運用するユーザプロセスに関する OS 内のプロセス情報を主記憶装置上の退避領域に退避させ、 OS の再起動時に、 前記 ユーザプロセスの使用していた主記憶領域は初期化せずに osの使用していた主記 憶領域は初期化し、 OS再起動後に、 前記退避したプロセス情報を OS内に復元する ことを特徴とする高速再起動方法。
4 . OSの再起動前に、 OSの再起動後に継続運用するプロセスまたは継続運用し ないプロセスの識別子を保存してあるプロセス IDテーブルを参照して、 OS再起動 後に ^続運用するユーザプロセスに関する OS内のプロセス情報を主記憶装置上の 退避鰐域に退避させ、 OS の再起動時に、 前記ユーザプロセスの使用していた主記 憶領¾¾は初期化せずに OS の使用していた主記憶領域は初期化し、 OS再起動後に、 前記退避したプロセス情報を OS内に復元することを特徴とする高速再起動方法。
5 . ユーザプロセスの生成時、 前記生成したユーザプロセスに関する OS内のプ ロセス情報を主記憶装置上の退避領域に退避させ、前記ユーザプロセスの切替え時、 前記退避させたプロセス情報に再起動するかどうかを指定する再起動フラグを設 定するとともに、再起動しない場合には退避領域に退避されているプロセス情報を 最新の状態に更新し、前記ユーザプロセスの終了時、前記退避させたプロセス情報 を無効にし、 OS の再起動時に、 前記再起動フラグが再起動しない設定になってい るユーザプロセスの使用していた主記憶領域は初期化せずに OSの使用していた主 記憶領域は初期化し、 OS 再起動後に、 前記退避したプロセス情報のうち前記再起 動フラグが再起動しない設定になっているユーザプロセスのプロセス情報を OS内 に復元することを特徴とする高速再起動方法。
6 .或るユーザプロセスに関するプロセス情報に再起動するかどうかを指定する 再起動フラグを設定する際、そのユーザプロセスと同じユーザアプリケーションプ ログラムに属する他の全てのユーザプロセスを検索し、該検索した全てのユーザプ ロセスに関するプロセス情報中の再起動フラグも同じ値に設定することを特徴と する請求の範囲第 2項に記載の高速再起動方法。
7 .或るユーザプロセスに関するプロセス情報に再起動するかどうかを指定する 再起動ブラグを設定する際、そのユーザプロセスと同じユーザアブリケーションプ ログラムに属する他の全てのユーザプロセスを検索し、該検索した全てのユーザプ ロセスに関するプロセス情報中の再起動フラグも同じ値に設定することを特徴と する請求の範囲第 5項に記載の高速再起動方法。
8 . 主記憶装置の一部を構成する不揮発性記憶部に記憶された OSの主記憶ィメ ージから OSの起動を行うことを特徴とする請求の範囲第 1項に記載の高速再起動 方法。
9 . システム運用中に OSから前記不揮発性記憶部への書き込みアクセスが発生 する毎に、書き込みアクセスが発生したァドレスを含む所定幅のァドレス範囲内の データを前記不揮発性記憶部から主記憶装置の一部を構成する読み出し書き込み 可能な主記憶部に確保した代替領域にコピーし且つ以後の前記所定幅のァドレス 範囲へのアクセスを前記代替領域へのアクセスに変換することを特徴とする請求 の範囲第 8項に記載の高速再起動方法。
1 0 . OSの再起動前に、 ユーザプロセスに関する OS内のプロセス情報を主記憶 装置上の退避領域に退避させるプロセス情報退避手段と、 OS の再起動時に、 前記 ユーザプロセスの使用していた主記憶領域は初期化せずに OSの使用していた主記 憶領域は初期化する主記憶初期化手段と、 OS再起動後に、 前記退避したプロセス 情報を OS内に復元するプロセス復元手段とを備えることを特徴とする情報処理装 置。
1 1 . OSの再起動前に、 ユーザプロセスに関する OS内のプロセス情報を主記憶 装置上の退避領域に退避させるプロセス情報退避手段と、前記退避させたプロセス 情報に再起動するかどうかを指定する再起動フラグを設定する再起動フラグ設定 手段と、 OS の再起動時に、 前記再起動フラグが再起動しない設定になっているュ 一ザプロセスの使用していた主記憶領域は初期化せずに OSの使用していた主記憶 領域は初期化する主記憶初期化手段と、 OS 再起動後に、 前記退避したプロセス情 報のうち前記再起動フラグが再起動しない設定になっているユーザプロセスのプ ロセス情報を OS内に復元するプロセス復元手段とを備えることを特徴とする情報 処理装置。
1 2 . OSの再起動前に、 OS再起動後に継続運用するユーザプロセスに関する OS 内のプロセス情報を主記憶装置上の退避領域に退避させるプロセス情報退避手段 と、 OS の再起動時に、 前記ユーザプロセスの使用していた主記憶領域は初期化せ ずに OSの使用していた主記憶領域は初期化する主記憶初期化手段と、 OS再起動後 に、 前記退避したプロセス情報を OS内に復元するプロセス復元手段とを備えるこ とを特徴とする情報処理装置。
1 3 . 前記プロセス情報退避手段は、 OSの再起動前に、 OSの再起動後に継続運 用するプロセスまたは継続運用しないプロセスの識別子を保存するプロセス IDテ 一ブルを参照して、 OS再起動後に継続運用するユーザプロセスに関する OS内のプ ロセス情報を主記憶装置上の退避領域に退避させるものであることを特徴とする 請求の範囲第 1 2項に記載の情報処理装置。
1 4 . ユーザプロセスの生成時、 前記生成したユーザプロセスに関する OS内の プロセス情報を主記憶装置上の退避領域に退避させるプロセス退避領域作成手段 と、前記ユーザプロセスの切替え時、前記退避させたプロセス情報に再起動するか どうかを指定する再起動フラグを設定するとともに、再起動しない場合には退避領 域に退避されているプロセス情報を最新の状態に更新するプロセス退避情報更新 手段と、前記ユーザプロセスの終了時、前記退避させたプロセス情報を無効にする プロセス情報退避領域解放手段と、 OS の再起動時に、 前記再起動フラグが再起動 しない設定になっているユーザプロセスの使用していた主記憶領域は初期化せず に OSの使用していた主記憶領域は初期化する主記憶初期化手段と、 OS再起動後に、 前記退避したプロセス情報のうち前記再起動フラグが再起動しなレ、設定になって いるユーザプロセスのプロセス情報を OS内に復元するプロセス復元手段とを備え ることを特徴とする情報処理装置。
1 5 .或るユーザプロセスに関するプロセス情報に再起動するかどうかを指定す る再起動フラグを設定する際、そのユーザプロセスと同じユーザアプリケーション プログラムに属する他の全てのユーザプロセスを検索し、該検索した全てのユーザ プロセスに関するプロセス情報中の再起動フラグも同じ値に設定する手段を備え ることを特徴とする請求の範囲第 1 1項に記載の情報処理装置。
1 6 .或るユーザプロセスに関するプロセス情報に再起動するかどうかを指定す る再起動フラグを設定する際、そのユーザプロセスと同じユーザアブリケーシヨン プログラムに属する他の全てのユーザプロセスを検索し、該検索した全てのュ一ザ プロセスに関するプロセス情報中の再起動フラグも同じ値に設定する手段を備え ることを特徴とする請求の範囲第 1 4項に記載の情報処理装置。
1 7 . 主記憶装置の一部を構成する不揮発性記憶部に記憶された OSの主記憶ィ メージから OSの起動を行う手段を備えることを特徴とする請求の範囲第 1 0項に 記載の情報処理装置。
1 8 . システム運用中に OSから前記不揮発个生記憶部への書き込みアクセスが発 生する毎に、書き込みアクセスが発生したァドレスを含む所定幅のァドレス範囲内 のデータを前記不揮発性記憶部から主記憶装置の一部を構成する読み出し書き込 み可能な主記憶部に確保した代替領域にコピーし且つ以後の前記所定幅のァドレ ス範囲へのアクセスを前記代替領域へのアクセスに変換する手段を備えることを 特徴とする請求の範囲第 1 7項に記載の情報処理装置。
1 9 . コンピュータを、 OSの再起動前に、 ユーザプロセスに関する OS内のプロ セス情報を主記憶装置上の退避領域に退避させるプロセス情報退避手段、 OS の再 起動時に、 前記ユーザプロセスの使用していた主記憶領域は初期化せずに OSの使 用していた主記憶領域は初期化する主記憶初期化手段、 OS再起動後に、 前記退避 したプロセス情報を OS内に復元するプロセス復元手段、 として機能させることを 特徴とするプログラム。
2 0 . コンピュータを、 OSの再起動前に、 ユーザプロセスに関する OS内のプロ セス情報を主記憶装置上の退避領域に退避させるプロセス情報退避手段、前記退避 させたプロセス情報に再起動するかどうかを指定する再起動フラグを設定する再 起動フラグ設定手段、 OS の再起動時に、 前記再起動フラグが再起動しない設定に なつているユーザプロセスの使用していた主記憶領域は初期化せずに OSの使用し ていた主記憶領域は初期化する主記憶初期化手段、 OS 再起動後に、 前記退避した プロセス情報のうち前記再起動フラグが再起動しない設定になっているユーザプ 口セスのプロセス情報を OS内に復元するプロセス復元手段、 として機能させるこ とを特徴とするプログラム。
2 1 . コンピュータを、 OSの再起動前に、 OS再起動後に継続運用するユーザプ ロセスに関する OS内のプロセス情報を主記憶装置上の退避領域に退避させるプロ セス情報退避手段、 OS の再起動時に、 前記ユーザプロセスの使用していた主記憶 領:^は初期化せずに OSの使用していた主記憶領域は初期化する主記憶初期化手段、 OS再起動後に、 前記退避したプロセス情報を OS内に復元するプロセス復元手段、 として機能させることを特徴とするプログラム。
2 2 . 前記プロセス情報退避手段は、 OSの再起動前に、 OSの再起動後に継続運 用するプロセスまたは継続運用しないプロセスの識別子を保存するプロセス IDテ 一ブルを参照して、 OS再起動後に継続運用するユーザプロセスに関する OS内のプ ロセス情報を主記憶装置上の退避領域に退避させるものであることを特徴とする 請求の範囲第 2 1項に記載のプログラム。
2 3 . コンピュータを、 ユーザプロセスの生成時、前記生成したユーザプロセス に閿する OS内のプロセス情報を主記憶装置上の退避領域に退避させるプロセス退 避慎域作成手段、前記ユーザプロセスの切替え時、前記退避させたプロセス情報に 再起動するかどうかを指定する再起動フラグを設定するとともに、再起動しない場 合には退避領域に退避されているプロセス情報を最新の状態に更新するプロセス 退避情報更新手段、前記ユーザプロセスの終了時、前記退避させたプロセス情報を 無効にするプロセス情報退避領域解放手段、 OS の再起動時に、 前記再起動フラグ が再起動しない設定になっているユーザプロセスの使用していた主記憶領域は初 期化せずに OSの使用していた主記憶領域は初期化する主記憶初期化手段、 OS再起 動後に、前記退避したプロセス情報のうち前記再起動フラグが再起動しない設定に なっているユーザプロセスのプロセス情報を OS内に復元するプロセス復元手段、 として機能させることを特徴とするプログラム。
2 4 . コンピュータを、 さらに、或るユーザプロセスに関するプロセス情報に再 起動するかどうかを指定する再起動フラグを設定する際、そのユーザプロセスと同 じユーザアプリケーションプログラムに属する他の全てのユーザプロセスを検索 し、該検索した全てのユーザプロセスに関するプロセス情報中の再起動フラグも同 じ値に設定する手段、として機能させることを特徴とする請求の範囲第 2 0項に記 載のプログラム。
2 5 . コンピュータを、 さらに、或るユーザプロセスに関するプロセス情報に再 起動するかどうかを指定する再起動フラグを設定する際、そのユーザプロセスと同 じユーザアプリケ——ンョンプログラムに属する他の全てのユーザプロセスを検索 し、該検索した全てのユーザプロセスに関するプロセス情報中の再起動フラグも同 じ値に設定する手段、として機能させることを特徴とする請求の範囲第 2 3項に記 載のプログラム。
2 6 . コンピュータを、 さらに、 主記憶装置の一部を構成する不揮発性記憶部に 記憶された OSの主記憶イメージから OSの起動を行う手段、として機能させること を特徴とする請求の範囲第 1 9項に記載のプログラム。
2 7 . コンピュータを、 さらに、 システム運用中に OSから前記不揮発性記憶部 への書き込みアクセスが発生する毎に、書き込みアクセスが発生したァドレスを含 む所定幅のァドレス範囲内のデータを前記不揮発性記憶部から主記憶装置の一部 を構成する読み出し書き込み可能な主記憶部に確保した代替領域にコピーし且つ 以後の前記所定幅のァドレス範囲へのアクセスを前記代替領域へのアクセスに変 換する手段、として機能させることを特徴とする請求の範囲第 2 6項に記載のプロ グラム。
2 8 . メインメモリ上に、 O Sをロードするためのメモリ領域である第 1の O S メモリ領域と、プロセスをロードするためのメモリ領域であるプロセスメモリ領域 とを割り当てて、 〇 S及びプロセスを該当する領域にロードしたコンピュータで、 o Sを再起動する方法において、
O Sがプロセスを管理するための情報であるプロセス情報を、前記第 1の〇 Sメ モリ領域から取得し、予め定められた記憶装置に設けた退避領域に格納する段階 1 と、
前記プロセスメモリ領域を保持したまま、前記第 1の O Sメモリ領域を初期化す る段階 2と、
前記メインメモリ上に第 2の O Sメモリ領域を割り当てて、前記 O Sをロードす る段 P皆 3と、
O Sメモリ領域中のプロセス情報を、前記段階 1にて格納されたプロセス情報に 応じて更新する段階 4と
を含むことを特徴とする O S再起動方法。
2 9 . 請求の範囲第 2 8項に記載の O S再起動方法において、 更に、
プロセスメモリ領域にロードされたプロセスから保持すベきプロセスを選択す る段階と、
選択されなかったプロセスに割り当てられたプロセスメモリ領域を初期化する 段階と
を含むことを特徴とする O S再起動方法。
3 0 . 請求の範囲第 2 8項に記載の O S再起動方法において、前記退避領域をメ インメモリ上に設けることを特徴とする O S再起動方法。
3 1 . 請求の範囲第 2 8項に記載の O S再起動方法において、各プロセスを再起 動するか否かを示す情報を、 当該プロセスのプロセス情報と共に、前記退避領域に 記憶することを特徴とする O S再起動方法。
3 2 . 請求の範囲第 2 8項に記載の O S再起動方法において、各プロセスを再起 動するか否かを示す情報を、前記退避領域を設けた記憶装置とは別の記憶装置に記 憶することを特徴とする O S再起動方法。
3 3 . 請求の範囲第 2 8項に記載の O S再起動方法において、 プロセスの生成、 切り替え及び終了に応じて、前記退避領域を生成、更新及び解放する処理を、 前記 退避領域を設けた記憶装置に対して実行することを特徴とする O S再起動方法。
3 4 . 請求の範囲第 2 8項に記載の O S再起動方法において、
前記 O Sをメインメモリにロードしたときのイメージを格納した不揮発性記憶 装置を予め用意する方法であって、
前記段階 3は、前記不揮発性記憶装置に格納したィメージを参照して前記メィン メモリに前記 O Sをロードする
ことを特徴とする O S再起動方法。
3 5 . 請求の範囲第 2 8項に記載の O S再起動方法において、 更に、
一のアプリケーションプログラムに対して関連付けられた複数のプロセスを含 むプロセスを、 プロセスメモリ領域にロードする段階と、
プロセスメモリ領域にロードされたプロセスの中から、保持すべきプロセスを選 択する段階と、
選択されたプロセス、及ぴ、 当該プロセスと同じアプリケーシヨンプログラムに 関連付けられた他のプロセス以外のプロセスに割り当てられたプロセスメモリ領 域を、 初期化する段階とを含むことを特徴とする O S再起動方法。
PCT/JP2005/001559 2004-01-27 2005-01-27 高速再起動方法および情報処理装置ならびにプログラム WO2005071522A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005517342A JP4683218B2 (ja) 2004-01-27 2005-01-27 高速再起動方法および情報処理装置ならびにプログラム
US10/587,022 US9298472B2 (en) 2004-01-27 2005-01-27 High-speed restart method, information processing device, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004018524 2004-01-27
JP2004-018524 2004-01-27

Publications (1)

Publication Number Publication Date
WO2005071522A1 true WO2005071522A1 (ja) 2005-08-04

Family

ID=34805573

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/001559 WO2005071522A1 (ja) 2004-01-27 2005-01-27 高速再起動方法および情報処理装置ならびにプログラム

Country Status (3)

Country Link
US (1) US9298472B2 (ja)
JP (1) JP4683218B2 (ja)
WO (1) WO2005071522A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009169797A (ja) * 2008-01-18 2009-07-30 Nec Corp 仮想クライアントシステム、仮想クライアントサーバ、仮想クライアント管理サーバ、仮想クライアントシステム制御方法、及びプログラム
JP2010079837A (ja) * 2008-09-29 2010-04-08 Fujitsu Ltd プログラム更新方法及びプログラム更新装置
JP2012173754A (ja) * 2011-02-17 2012-09-10 Nec Corp 情報処理装置、情報処理方法及びプログラム
CN110134460A (zh) * 2019-05-17 2019-08-16 联想(北京)有限公司 系统控制方法、控制器、处理器及计算机可读介质

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006065440A (ja) * 2004-08-25 2006-03-09 Evolium Sas プロセス管理システム
US8706950B2 (en) 2008-03-01 2014-04-22 Kabushiki Kaisha Toshiba Memory system
CN103777871B (zh) * 2014-02-14 2017-10-10 北京猎豹移动科技有限公司 一种锁屏状态下启动应用的方法及装置
US9384144B1 (en) * 2014-03-25 2016-07-05 SK Hynix Inc. Error detection using a logical address key
CN113127085A (zh) * 2015-08-20 2021-07-16 美光科技公司 从nand媒体快速引导的固态存储装置
US9678865B1 (en) 2016-09-23 2017-06-13 International Business Machines Corporation Pre-allocating save areas of a memory
JP6765322B2 (ja) * 2017-02-28 2020-10-07 キオクシア株式会社 メモリシステムおよび制御方法
US10585736B2 (en) 2017-08-01 2020-03-10 International Business Machines Corporation Incremental dump with fast reboot
CN110365839B (zh) * 2019-07-04 2020-08-28 Oppo广东移动通信有限公司 关机方法、装置、介质及电子设备
CN113138878B (zh) * 2020-01-19 2022-11-18 华为技术有限公司 可信执行环境操作系统崩溃处理方法及电子设备
KR20220125836A (ko) * 2021-03-03 2022-09-15 삼성전자주식회사 스토리지 장치, 스토리지 장치의 동작 방법, 그리고 스토리지 장치를 포함하는 전자 장치

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0527875A (ja) * 1991-07-18 1993-02-05 Canon Inc 電子機器
JPH10232796A (ja) * 1997-02-18 1998-09-02 Sony Corp 暴走回避手段
JPH1124936A (ja) * 1997-07-09 1999-01-29 Mitsubishi Electric Corp 情報処理装置の高速再起動方式
JPH11143764A (ja) * 1997-11-04 1999-05-28 Victor Co Of Japan Ltd フラッシュ型メモリ,その管理装置,記憶装置,コンピュータシステム
JPH11345129A (ja) * 1998-05-29 1999-12-14 Nec Eng Ltd インターバルタイマ回路
JP2000035919A (ja) * 1998-07-17 2000-02-02 Victor Co Of Japan Ltd フラッシュ型メモリ、その管理装置、その管理方法
JP2002082808A (ja) * 2000-09-07 2002-03-22 Seiko Epson Corp プログラム制御方法
JP2002517034A (ja) * 1998-05-26 2002-06-11 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド エミュレーションコプロセッサ
JP2002259201A (ja) * 2001-03-02 2002-09-13 Hitachi Ltd 計算機システムの起動方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07311749A (ja) * 1994-05-19 1995-11-28 Toshiba Corp マルチプロセッサシステム及びカーネル置換方法
JP3593241B2 (ja) * 1997-07-02 2004-11-24 株式会社日立製作所 計算機の再起動方法
JPH1139143A (ja) * 1997-07-22 1999-02-12 Teijin Seiki Co Ltd 演算装置、該装置の制御方法、前記装置の制御プログラムを記憶した記憶媒体、演算装置を利用した電子回路装置、該装置の制御方法、前記装置の制御プログラムを記憶した記憶媒体
US6058490A (en) * 1998-04-21 2000-05-02 Lucent Technologies, Inc. Method and apparatus for providing scaleable levels of application availability
KR100283243B1 (ko) * 1998-05-11 2001-03-02 구자홍 운영체제의 부팅방법
JP2000134650A (ja) * 1998-10-22 2000-05-12 Nec Eng Ltd システムファイルの入れ替え方法及びこれを利用した交換システム
US6715016B1 (en) * 2000-06-01 2004-03-30 Hitachi, Ltd. Multiple operating system control method
JP2002244885A (ja) * 2001-02-20 2002-08-30 Mitsubishi Electric Corp コンピュータシステム監視システム
US7356677B1 (en) * 2001-10-19 2008-04-08 Flash Vos, Inc. Computer system capable of fast switching between multiple operating systems and applications
US6901298B1 (en) * 2002-09-30 2005-05-31 Rockwell Automation Technologies, Inc. Saving and restoring controller state and context in an open operating system
US7162629B2 (en) * 2003-11-20 2007-01-09 Intel Corporation Method to suspend-and-resume across various operational environment contexts

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0527875A (ja) * 1991-07-18 1993-02-05 Canon Inc 電子機器
JPH10232796A (ja) * 1997-02-18 1998-09-02 Sony Corp 暴走回避手段
JPH1124936A (ja) * 1997-07-09 1999-01-29 Mitsubishi Electric Corp 情報処理装置の高速再起動方式
JPH11143764A (ja) * 1997-11-04 1999-05-28 Victor Co Of Japan Ltd フラッシュ型メモリ,その管理装置,記憶装置,コンピュータシステム
JP2002517034A (ja) * 1998-05-26 2002-06-11 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド エミュレーションコプロセッサ
JPH11345129A (ja) * 1998-05-29 1999-12-14 Nec Eng Ltd インターバルタイマ回路
JP2000035919A (ja) * 1998-07-17 2000-02-02 Victor Co Of Japan Ltd フラッシュ型メモリ、その管理装置、その管理方法
JP2002082808A (ja) * 2000-09-07 2002-03-22 Seiko Epson Corp プログラム制御方法
JP2002259201A (ja) * 2001-03-02 2002-09-13 Hitachi Ltd 計算機システムの起動方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009169797A (ja) * 2008-01-18 2009-07-30 Nec Corp 仮想クライアントシステム、仮想クライアントサーバ、仮想クライアント管理サーバ、仮想クライアントシステム制御方法、及びプログラム
JP2010079837A (ja) * 2008-09-29 2010-04-08 Fujitsu Ltd プログラム更新方法及びプログラム更新装置
JP2012173754A (ja) * 2011-02-17 2012-09-10 Nec Corp 情報処理装置、情報処理方法及びプログラム
CN110134460A (zh) * 2019-05-17 2019-08-16 联想(北京)有限公司 系统控制方法、控制器、处理器及计算机可读介质
CN110134460B (zh) * 2019-05-17 2022-04-22 联想(北京)有限公司 系统控制方法、控制器、处理器及计算机可读介质

Also Published As

Publication number Publication date
US20070168724A1 (en) 2007-07-19
JPWO2005071522A1 (ja) 2007-09-13
JP4683218B2 (ja) 2011-05-18
US9298472B2 (en) 2016-03-29

Similar Documents

Publication Publication Date Title
JP4683218B2 (ja) 高速再起動方法および情報処理装置ならびにプログラム
US7313683B2 (en) Computer system and method which boots from a bootup-memory-image stored in nonvolatile memory and copies data within an address range of predetermined width to main memory so that the system boots quickly after initialization
JP3593241B2 (ja) 計算機の再起動方法
US8127099B2 (en) Resource recovery using borrowed blocks of memory
EP3502877B1 (en) Data loading method and apparatus for virtual machines
JP5636034B2 (ja) データ利用についてのマウント時間の調停
JP5783809B2 (ja) 情報処理装置、起動方法およびプログラム
US20110213954A1 (en) Method and apparatus for generating minimum boot image
JP2004145886A (ja) 大容量記憶デバイスから実行するファームウェアの信頼性およびセキュリティ性の高い更新および復旧
JP2007133471A (ja) ストレージ装置及びスナップショットのリストア方法
JPWO2006107095A1 (ja) 計算機システム,メモリ管理方法,およびそのプログラム
JP2005316809A (ja) 計算機、計算機起動方法、管理サーバ装置およびプログラム
TWI383296B (zh) 使用內部儲存操作之用於資料的資料寫入儲存裝置及方法
US11640244B2 (en) Intelligent block deallocation verification
US7234039B1 (en) Method, system, and apparatus for determining the physical memory address of an allocated and locked memory buffer
CN113127263A (zh) 一种内核崩溃恢复方法、装置、设备及存储介质
KR20170037017A (ko) 메모리 업그레이드 시스템 및 방법
WO2008135969A1 (en) Storage device and method for data-smuggling
US20200026453A1 (en) Method and system for dynamically expanding a storage system
KR101104361B1 (ko) Nvram과 휘발성 램을 이용하여 선택적으로 프로세스의 영속성을 구현하는 컴퓨팅 시스템 및 방법
WO2018075676A1 (en) Efficient flash management for multiple controllers
JP2013120549A (ja) 電子計算機、メモリ管理方法、およびメモリ管理プログラム

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2005517342

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2007168724

Country of ref document: US

Ref document number: 10587022

Country of ref document: US

122 Ep: pct application non-entry in european phase
WWP Wipo information: published in national office

Ref document number: 10587022

Country of ref document: US