Patent Publication Number: US-8533785-B2

Title: Systems and methods for managing the operation of multiple virtual machines among multiple terminal devices

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2010-33708, filed on Feb. 18, 2010, the entire contents of which are incorporated herein by reference. 
     FIELD 
     The embodiments relate to an information processing device, a computer system, and a program, which allow a virtual computer to be transferred to a corresponding terminal device from a server device on which the virtual computer operates. 
     BACKGROUND 
     There is a system that causes a plurality of virtual computers to operate on a single server device and assigns the virtual computers to multiple terminal devices, respectively, while the terminal devices are connected to the server device through a network. The virtual computers are called virtual machines (VMs). In the system, operating systems (OSs) run on the virtual machines that operate on the server device. Users operate the terminal devices so that the terminal devices each use the OS of the virtual machine assigned to the terminal device. In other words, the server device is used as a desktop computer for the terminal devices. 
     JP4242819 discusses a technique for transferring virtual machines between the server device and the terminal devices through a network. In JP4242819, information (data) that is used to cause each of the virtual machines to operate on the server device is synchronized between the server device and the terminal device so that an operating environment that is the same as the server device is achieved in the terminal device. Thus, even when the terminal device is in an offline state or is not connected to the server device, a user operates the terminal device so that the terminal device uses the virtual machine. 
     SUMMARY 
     According to an aspect of the invention, an information processing device includes: a management table that stores usage permission/prohibition information that indicates whether use of the first virtual computer is permitted; a usage permission/prohibition determining unit that updates the usage permission/prohibition information stored in the management table and controls, on the basis of the usage permission/prohibition information, whether use of the first virtual computer is permitted; a connection monitoring unit that monitors a first external device on which a second virtual computer to which the first virtual computer is switched operates and a second external device that uses the first virtual computer and on which the second virtual computer does not operate; and a receiving unit that receives a request to start using the first virtual computer from each of the first and second external devices, wherein the connection monitoring unit performs determining whether the first external device is connected, and determining whether the receiving unit receives the request from the first or second external device, wherein when the connection monitoring unit determines that the first external device is not connected, the usage permission/prohibition determining unit updates the usage permission/prohibition information stored in the management table so that the usage permission/prohibition information indicates that use of the first virtual computer is prohibited, and wherein when the connection monitoring unit determines that the receiving unit receives the request from the second external device and that the first external device is connected, the usage permission/prohibition determining unit transmits, to the first external device, information that instructs the first external device to prohibit use of the second virtual computer. 
     The object and advantages of the invention will be realized and attained by at least the features, elements and combinations particularly pointed out in the claims. 
     It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a diagram schematically illustrating a computer system according to an embodiment. 
         FIG. 2  is a block diagram illustrating a hardware configuration of the computer system. 
         FIG. 3  is a block diagram illustrating another hardware configuration of the computer system. 
         FIG. 4  is a block diagram illustrating functions that are included in a server device. 
         FIG. 5  is a diagram schematically illustrating a VM management table. 
         FIG. 6  is a block diagram illustrating functions that are included in a terminal device. 
         FIG. 7  is a flowchart of a process of monitoring a connection state of the terminal device. 
         FIG. 8  is a flowchart of a process that is performed by the server device when the server device receives a connection request. 
         FIG. 9  is a flowchart of a process of allowing the terminal device to use a VM, while the process is performed by the server device. 
         FIG. 10  is a flowchart of a process of allowing a thin client terminal to use the VM, while the process is performed by the server device and the terminal device. 
         FIG. 11  is a flowchart of the process of allowing the thin client terminal to use the VM, while the process is performed by the server device and the terminal device. 
         FIG. 12  is a flowchart of a process that is performed by the terminal device when the terminal device uses the VM. 
         FIG. 13  is a flowchart of the process that is performed by the terminal device when the terminal device uses the VM. 
         FIG. 14A  is a diagram illustrating an example of a monitor that is included in the terminal device and displays the results of a process performed by the VM. 
         FIG. 14B  is a diagram illustrating an example of the monitor that is included in the terminal device and displays the results of a process performed by the VM. 
         FIG. 15  is a block diagram illustrating functions that are included in the server device. 
         FIG. 16  is a block diagram illustrating functions that are included in the terminal device. 
         FIG. 17  is a flowchart of a process of allowing the terminal device to use the VM, while the process is performed by the server device. 
         FIG. 18  is a flowchart of a process that is performed by the terminal device. 
         FIG. 19  is a flowchart of the process that is performed by the terminal device. 
         FIG. 20  is a diagram illustrating an example of a screen for setting a time period for use of a terminal VM. 
         FIG. 21  is a block diagram illustrating functions that are included in the server device. 
         FIG. 22  is a block diagram illustrating functions that are included in the terminal device. 
         FIG. 23  is a flowchart of a process that is performed by the terminal device. 
         FIG. 24  is a flowchart of a process that is performed by the server device. 
     
    
    
     DESCRIPTION OF EMBODIMENTS 
     When a virtual machine operates on both a server device and a terminal device, there is a possibility that the same virtual machine is used on the server device and the terminal device. 
     For example, when the virtual machine that operates on the server device is accessed by multiple terminal devices, the virtual machine is exclusively used by one of the terminal devices. In this case, when the terminal devices that access the virtual machine are managed, an exclusive process can be performed without a problem. For example, when the server device and one of the terminal devices are set as a pair, and an environment in which the virtual machine operates on both the server device and the one of the terminal devices is provided, the virtual machine that operates on both the server device and the terminal device is exclusively used. In this case, when the server device and the one of the terminal devices are specified and synchronized with each other through online access, the exclusive process can be performed without a problem. 
     This restriction may limit convenience for users. An information processing device is provided, which allows each of virtual machines to be exclusively used without a problem even when the virtual machines that operate on a server device are used by multiple terminal devices, respectively, so that the virtual machines are switched between the server device and the terminal devices and operated. It is, therefore, possible to substantially prevent the convenience for users from being limited. 
     The information processing device, a computer system and a program are provided, which allow the same virtual machine to exclusively operate on each of different devices. 
     The information processing device disclosed herein includes a virtual machine monitor that causes a first virtual computer to operate. The information processing device allows the first virtual computer to be used by an external device. The external device includes a first external device and a second external device. The first virtual computer is switched to a second virtual computer so that the second virtual computer operates on the first external device. The second virtual computer does not operate on the second external device. The information processing device determines whether or not the first external device is connected to the information processing device. When the information processing device determines that the first external device is not connected to the information processing device, the information processing device prohibits use of the first virtual computer. The information processing device receives a request to start using the first virtual computer from the first or second external device. The information processing device determines whether the request to start using the first virtual computer is transmitted by the first or second external device. When the information processing device determines that the request to start using the first virtual computer is transmitted by the second external device and that the first external device is connected to the information processing device, the information processing device transmits, to the first external device, information that instructs the first external device to prohibit use of the second virtual computer. 
     From a perspective of the information processing device disclosed herein, when information on the virtual computers that are managed using the same ID is synchronized between the information processing device disclosed herein and the external device, and one of the virtual computers is switched to the other of the virtual computers after the synchronization, and the other of the virtual computers exclusively operates, one of the virtual computers, which operates on the information processing device and the external device, is set so that use of the one of the virtual computers is prohibited. It is, therefore, possible to prevent the virtual computers from being simultaneously used. 
     The information processing device disclosed herein, the computer system disclosed herein and the program disclosed herein are described below with reference to the accompanying drawings. 
     First Embodiment 
       FIG. 1  is a diagram schematically illustrating a computer system according to a first embodiment. 
     The computer system according to the present embodiment includes a server device  1  and a plurality of terminal devices  2 ,  3  and  4 . The server device  1  serves as an information processing device. The server device  1  is connected to the terminal devices  2 ,  3  and  4  via cables or wirelessly through a network N. The network N is a local area network (LAN), a wide area network (WAN) or the like. 
     A virtual machine monitor (VMM) that serves as a virtualization program is executed on the server device  1 , while multiple virtual machines (VMs) operate on the VMM. The VMM is a program that assigns resources (such as a central processing unit (CPU) and a read-only memory (ROM)) of the server device  1  to the VMs and allows the resources to be used by the VMs. The VMs are virtual computers that each independently execute an OS and an application in a similar manner to a physical computer. The VMs are assigned to the terminal devices  2 ,  3  and  4  (connected to the server device  1 ), respectively, so that the VMs are used by the terminal devices  2 ,  3  and  4  through the network N, respectively. The server device  1  may be a personal computer (hereinafter referred to as a PC) that includes a keyboard, a monitor and the like. 
     The terminal devices  2 ,  3  and  4  may be laptop computers that each include a keyboard, a mouse, a monitor and the like, for example. The terminal devices  2 ,  3  and  4  are connected to the server device  1  through the network N, while the VMs (hereinafter referred to as server VMs) that operate on the server device  1  are assigned to the terminal devices  2 ,  3  and  4 , respectively. Each of the terminal devices  2 ,  3  and  4  may use, through the network N, the VM assigned to the terminal device. For example, each of the terminal devices  2 ,  3  and  4  transmits, to the server VM assigned to the terminal device  2 ,  3  and  4 , respectively, a signal generated by an operation with the keyboard or mouse of the terminal device, receives the results of a process performed by the server VM from the server VM, and displays the results on the monitor of the terminal device. In the following description, the terminal device  2  is described below. 
     The terminal device  2  executes the VMM in a similar manner to the server device  1 , and the VM operates on the VMM. In this case, the VM that has the same information as the server VM operates on the VMM in the terminal device  2 . For example, VM information that is held by the server device  1  is synchronized with VM information that is held by the terminal device  2  so that the server device  1  and the terminal device  2  have the same VM information. The VM information includes information provided to implement an operating environment in which the VM operates; and information generated by the operating VM and stored (in a memory and a HDD). Thus, the VM that has the same VM information as the server VM operates on the VMM in the terminal device  2 . 
     The terminal device  2  may be a desktop PC, a set top box (connected to the monitor), a PDA, a mobile phone or the like. The number of terminal devices connected to the server device  1  may be one or two or four or more. 
     The server device  1  is connected to a thin client terminal  5  through the network N. The thin client terminal  5  is a computer that does not include a large-capacity storage medium such as a hard disk. The VM that operates on the server device  1  and is assigned to any of the terminal devices  2 ,  3  and  4  is assigned to the thin client terminal  5 . In the following description, the VM that is assigned to the terminal device  2  is assigned to the thin client terminal  5 , while the terminal device  2  and the thin client terminal  5  are operated by the same user. The thin client terminal  5  may use, through the network N, the server VM assigned to the terminal device  2 . The terminal device  2  and the thin client terminal  5  may use the same server VM that operates on the server device  1 . 
     The thin client terminal  5  may be connected to the server device  1  through a network that is different from the network N. In addition, the thin client terminal  5  may be directly connected to the server device  1  without any network. Furthermore, the thin client terminal  5  may be a laptop PC provided with a hard disk and the like; a desktop PC provided with a hard disk and the like; a PDA; or the like. In addition, a plurality of thin client terminals  5  that are of the same type as the terminal device  2  may be connected to the server device  1 . The thin client terminal  5  may be operated by a user who is different from the user of the terminal device  2 . 
     In the computer system, when the server VM of the server device  1  is used by either the terminal device  2  or the thin client terminal  5 , the server VM cannot be used by the other of the devices  2  and  5 . Thus, it is possible to prevent the same server VM from being simultaneously used by the terminal device  2  and the thin client terminal  5 . When the terminal device  2  is connected to the server device  1 , the terminal device  2  uses the server VM. When the terminal device  2  is not connected to the server device  1 , the terminal device  2  uses a VM (hereinafter referred to as a terminal VM) that operates on the terminal device  2 . When the terminal device  2  cannot be connected to the network N, the terminal device  2  that is operated by the user may use the terminal VM that has the same VM information as the server VM. 
     When the terminal device  2  is in a state (hereinafter referred to as an offline state) in which the terminal device  2  is not connected to the network N, the server VM cannot be used by the thin client terminal  5 . The reason is as follows. When the terminal device  2  is in the offline sate, there is a possibility that the terminal VM is being executed on the terminal device  2 . In this case, if the server VM were used by the thin client terminal  5 , the same VM (server VM and terminal VM) would be independently used by the server device  1  and the terminal device  2 . Thus, when the terminal device  2  is in the offline state, the thin client terminal  5  is prohibited to use the server VM. Therefore, the terminal device  2  and the thin client terminal  5  cannot use the same VM simultaneously. 
     The computer system is described below in detail. 
       FIGS. 2 and 3  are block diagrams each illustrating a hardware configuration of the computer system. The server device  1  and the terminal device  2  are described below. 
     The server device  1  includes hardware parts that are a CPU  10 , ROM  11 , a random access memory (RAM)  12 , a hard disk drive (HDD)  13 , a communicating unit  14  and the like. The hardware parts of the server device  1  are connected to each other through a bus. The CPU  10  reads a program  11   a  stored in the ROM  11  into the RAM  12  and executes the program  11   a  when necessary. In addition, the CPU  10  controls operations of the aforementioned hardware parts. The ROM  11  stores the program  11   a . The RAM  12  is a static RAM (SRAM), a dynamic RAM (DRAM), a flash memory or the like. The RAM  12  temporarily stores various types of data that is generated at the time of execution of the program  11   a . In this case, the program  11   a  is executed by the CPU  10 . 
     The HDD  13  is a large-capacity storage device. The HDD  13  stores a VMM program, a management OS program, guest OS programs, application programs, data tables and the like. The data tables are used for various types of processes. The programs are each read into the RAM  12  by the CPU  10  and executed by the CPU  10 . The program  11   a  may be installed in the HDD  13  through an external medium such as a CD-ROM  6   a  and used, or may be downloaded from the network and used. 
     The VMM program is a software program that achieves a virtual technique that allows the VMs to be operated on the server device  1 . The CPU  10  starts operating as the VMM by executing the VMM program after startup of the server device  1 . When the CPU  10  operates as the VMM, a virtual environment in which the VMs independently operate is provided to the server device  1 . 
     The management OS program is a software program that achieves a function of starting and stopping the VMs on the VMM and a function of assigning resources such as the CPU  10  to the VMs and releasing the assignments. The CPU  10  starts operating as a management OS by executing the management OS program after the startup of the server device  1 . 
     Each of the guest OS programs is a software program that is used to execute an OS on the VM. After the VM is executed, the CPU  10  starts operating as the OS (hereinafter referred to as a guest OS) by executing the guest OS program. The guest OS is Windows (registered trademark), Linux (registered trademark) or the like, for example. The guest OS generates data regarding a display screen on the basis of a performed process, while the display screen includes a character user interface (CUI), a graphic user interface (GUI) and the like, which are to be displayed. The generated data regarding the display screen is transmitted to the terminal device  2  (or the thin client terminal  5 ), and the display screen is displayed on the monitor of the terminal device  2  (or the thin client terminal  5 ). The guest OS receives control signals generated on the basis of operations with the keyboard and mouse of the terminal device  2  (or the thin client terminal  5 ). The guest OS performs various types of processes on the basis of the received control signals. 
     The application programs are software programs that are executed on the guest OSs, respectively. The server device  1  may read the application programs from an external memory that has, stored therein, the application programs, and the server device  1  may store the application programs in the large-capacity storage device  13 . In addition, the server device  1  may download the application programs through the network and store the application programs in the HDD  13 . 
     The terminal device  2  includes hardware parts that are a CPU  20 , a ROM  21 , a RAM  22 , a HDD  23 , an input/output unit  24 , a communicating unit  25 , a power supply circuit  26  and the like. The hardware parts of the terminal device  2  are connected to each other through a bus. The input/output unit  24  includes a keyboard, a mouse, a monitor and the like. The communicating unit  25  is connected to the network N and communicates with the other information processing device. 
     The CPU  20  reads a program  21   a  stored in the ROM  21  into the RAM  22  and executes the program  21   a  when necessary. The CPU  20  controls operations of the aforementioned hardware parts. The ROM  21  stores the program  21   a , various types of data and the like. The RAM  22  is an SRAM, a DRAM, a flash memory or the like and temporarily stores various types of data that is generated at the time of execution of the control program  21   a . In this case, the control program  21   a  is executed by the CPU  20 . 
     The HDD  23  has, stored therein, a VMM program, a management OS program, a guest OS program, an application program, various types of data and the like in a similar manner to the server device  1 . The program  21   a  may be installed in the HDD  23  through an external medium such as a CD-ROM  6   b  and used, or may be downloaded through the network and used. 
     The power supply circuit  26  is a circuit that controls power that is supplied to the terminal device  2 . When a main power switch of the terminal device  2  is turned on or off, the power supply circuit  26  supplies power to the CPU  20  and the like or stops the supply of the power to the CPU  20  and the like. Even when the main power switch is in an OFF state, standby power is supplied so that the power supply circuit  26  and the communicating unit  25  are operated. Thus, even when the main power switch is in the OFF state, the communicating unit  25  transmits and receives a signal to and from the server device  1 . When the main power switch is in the OFF state and the communicating unit  25  receives a power-on signal from the server device  1 , the power supply circuit  26  turns on the main power switch. When the main power switch is in an ON state and the communicating unit  25  receives a power-off signal from the server device  1 , the power supply circuit  26  turns off the main power switch. When the main power switch is in the ON state and the communicating unit  25  receives the power-on signal from the server device  1 , or when the main power switch is in the OFF state and the communicating unit  25  receives the power-off signal from the server device  1 , the power supply circuit  26  does not change the state of the main power switch. After the power supply circuit  26  cooperates with the guest OS and normally shuts down the guest OS, the circuit power circuit  26  may turn off the main power switch. 
     The thin client terminal  5  includes hardware parts that are a CPU  50 , a ROM  51 , a RAM  52 , an input/output device  53 , a communicating unit  54  and the like. The input/output device  53  includes a keyboard, a mouse, a monitor and the like. The communicating unit  54  connects the thin client terminal  5  to the network N. The hardware parts of the thin client terminal  5  are connected to each other through a bus. The CPU  50  reads a control program stored in the ROM  51  into the RAM  52  and executes the control program when necessary. The CPU  50  controls operations of the aforementioned hardware parts. The ROM  51  has, stored therein, the control program, various types of data and the like. The RAM  52  is an SRAM, a DRAM, a flash memory or the like and temporarily stores various types of data that is generated at the time of execution of the control program. In this case, the control program is executed by the CPU  50 . 
     Next, functions that are achieved by the server device  1  and the terminal device  2  are described. The server device  1  and the terminal device  2  are included in the computer system. 
       FIG. 4  is a block diagram illustrating functions that are included in the server device  1 . When the CPU  10  executes the programs, the VMM designated by reference numeral  100  is executed on the server device  1  and the management OS designated by reference numeral  101  is executed on the VMM  100 . The VMM  100  has a function that is a VM executing unit  110 . The VM executing unit  110  starts and stops the server VM (designated by reference numeral  102 ) on the VMM  100  according to a request from the management OS  101 . The plurality of server VMs operate on the VMM  100  and are assigned to the terminal devices  2 ,  3  and  4 . In  FIG. 4 , the server VM  102  assigned to the terminal device  2  is illustrated. 
     The management OS  101  includes functions that are a terminal information storage unit  120 , a connection monitoring unit  121 , a connection request receiving unit  122 , a VM usage permission/prohibition determining unit  123 , a VM execution requesting unit  124 , a connection request responding unit  125 , a VM information synchronizing unit  126 , a terminal power control unit  127 , a VM usage notifying unit  128  and the like. 
     The terminal information storage unit  120  has, stored therein, a VM management table that is used to manage the server VMs.  FIG. 5  is a diagram schematically illustrating the VM management table. 
     The VM management stores user IDs, passwords, VM_IDs, VM information and the addresses of the guest OSs of the server device  1 , while the user ID, the password, the VM_ID, the VM information and the address of the guest OS of the server device  1  are associated with each other in each of rows of the VM management table. When the terminal device  2  or the thin client terminal  5  transmits a user ID and a password to the server device  1 , the CPU  10  acquires the VM_ID corresponding to the transmitted user ID and the transmitted password and specifies the server VM  102  to be executed. Then, the CPU  10  acquires the VM information that is used to execute the specified VM  102 . The VM information stored in the VM management table includes: information on a storage unit that stores the VM information; a file name; and the like. The CPU  10  acquires the address to be used to access the guest OS that runs on the executed server VM  102 . Then, the CPU  10  transmits the acquired address to the terminal device  2  or the thin client terminal  5 , which has transmitted the user ID and the password. Thus, the server VM  102  is executed on the server device  1  regardless of whether the terminal device  2  or the thin client terminal  5  uses the server VM  102 . 
     In addition, the VM management table stores the addresses of the devices to be monitored whether or not the devices are connected to the network N; and the addresses of the guest OSs of the terminal devices. The address of the device to be monitored (whether or not the device is connected to the network N) and the address of the guest OS of the terminal device are associated with the user ID, the password, the VM_ID, the VM information and the address of the guest OS of the terminal device in each of the rows of the VM management table. The address of the device  2  to be monitored is an address that is assigned to the communicating unit  25  of the terminal device  2  used by the user who has the corresponding user ID. As described above, the communicating unit  25  functions even when the main power switch of the terminal device  2  is in the OFF state. The CPU  10  transmits a signal to the terminal device  2  that has the address of the device to be monitored. The CPU  10  determines whether or not to receive a response to the transmitted signal and monitors, on the basis of the determination result, whether or not the terminal device  2  is connected to the network N. The guest OS that has the address included in the VM management table is executed on the terminal VM  202  of the terminal device  2 . 
     In addition, the VM management table stores information that indicates whether or not use of the server VM is permitted. In each of the rows of the management table, the information that indicates whether or not use of the server VM is permitted is associated with the user ID, the password, the VM_ID, the VM information and the address of the guest OS of the terminal device. When the terminal device  2  or the thin client terminal  5  transmits the user ID and the like, the CPU  10  determines whether or not use of the corresponding server VM  102  is permitted. 
     For example, the connection monitoring unit  121  periodically transmits a confirmation signal to the terminal device  2  according to the address (included in the VM management table) of the device to be monitored whether or not the device is connected to the network N. When the connection monitoring unit  121  receives a response to the transmitted confirmation signal, the connection monitoring unit  121  determines that the terminal device  2  is connected to the network N (or is in an online state). When the connection monitoring unit  121  does not receive the response to the transmitted confirmation signal, the connection monitoring unit  121  determines that the terminal device  2  is in the offline state. The connection monitoring unit  121  notifies the VM usage permission/prohibition determining unit  123  of the determination result. 
     The connection request receiving unit  122  receives a connection request (request to start using the server VM) from the terminal device  2  or the thin client terminal  5 . The connection request is transmitted from the terminal device  2  or the thin client terminal  5  in order to start using the server VM. The connection request includes the user ID, the password and the like, which have been entered in the terminal device  2  or the thin client terminal  5 . The management OS  101  receives the connection request and determines whether or not the connection request is transmitted from the terminal device  2 . For example, the Internet Protocol (IP) address of the terminal device  2  is stored in the VM management table of the server device  1 . When the device that transmits the connection request has the IP address stored in the VM management table, the management OS  101  determines that the terminal device  2  transmits the connection request. On the other hand, when the device that transmits the connection request does not have the IP address stored in the VM management table, the management OS  101  determines that the thin client terminal  5  transmits the connection request. The connection request receiving unit  122  receives the connection request and notifies the VM usage permission/prohibition determining unit  123  of the connection request. 
     The VM usage permission/prohibition determining unit  123  determines, on the basis of the VM management table, whether or not use of the server VM that corresponds to the user ID included in the received connection request is permitted. The VM usage permission/prohibition determining unit  123  updates the VM management table so that use of the server VM  102  is permitted when the terminal device  2  is in the online state and that use of the server VM  102  is prohibited when the terminal device  2  is in the offline state. 
     When use of the server VM  102  is permitted, the VM execution requesting unit  124  notifies the VM executing unit  110  (of the VMM  100 ) of the VM information on the server VM  102 . Then, the VM executing unit  110  executes the server VM  102 , and the resources of the server device  1  are assigned to the executed server VM  102 . After the resources are assigned, the guest OS starts up and runs on the server VM  102 . 
     The connection request responding unit  125  transmits, on the basis of the result of the determination made by the VM usage permission/prohibition determining unit  123 , a response signal to the terminal device  2  or the thin client terminal  5 , which has transmitted the connection request. When use of the server VM is permitted, the connection request responding unit  125  transmits the response signal together with the address of the guest OS that runs on the executed server VM  102 . In this manner, the terminal device  2  or the thin client terminal  5  is connected (this connection is hereinafter referred to as a remote connection) to the guest OS that runs on the server VM  102 . When use of the server VM  102  is prohibited, the connection request responding unit  125  transmits the response signal as an error. 
     The VM information synchronizing unit  126  periodically synchronizes the VM information between the server device  1  and the terminal device  2 . For example, the VM information synchronizing unit  126  compares the time when the VM information held by the server device  1  has been updated with the time when the VM information held by the terminal device  2  has been updated so that the newer VM information is written over the older VM information. When the VM information held by the server device  1  is the older VM information, the VM information synchronizing unit  126  receives the VM information from the terminal device  2 . When the VM information held by the terminal device  2  is the older VM information, the VM information synchronizing unit  126  transmits the VM information to the terminal device  2 . The VM information may be copied every time the synchronization of the VM information is performed. In addition, the difference between the VM information and the previously synchronized VM information may be held as difference data, and the difference data may be synchronized between the server device  1  and the terminal device  2  so that the amount of data to be synchronized is reduced. 
     The terminal power control unit  127  transmits the power-on signal or the power-off signal according to the address that is included in the VM management table and assigned to the device to be monitored whether or not the device is connected to the network N. The terminal device  2  that receives the power-on signal or the power-off signal, and the power supply circuit  26  turns on or off the main power switch of the terminal device  2 . 
     When the thin client terminal  5  uses the server VM  102 , the VM usage notifying unit  128  notifies the terminal device  2  that the server VM  102  is used. In this case, the terminal device that is notified by the VM usage notifying unit  128  is prohibited to use the terminal VM. When the thin client terminal  5  terminates the use of the server VM  102 , the VM usage notifying unit  128  notifies the terminal device  2  that the use of the server VM  102  is terminated. Thus, the terminal device  2  is permitted to use the terminal VM. 
     The guest OS starts up and runs on the server VM  102  executed on the VMM  100 . A remote control server is executed on the guest OS that runs on the server VM  102 . In this case, the remote control server is remotely controlled through the network. The remote control server is remotely connected to the terminal device  2  or the thin client terminal  5 . The guest OS has a function that is a remote connection monitoring unit  130 . The remote connection monitoring unit  130  monitors the remote connection of the remote control server. The remote connection monitoring unit  130  monitors whether or not the remote connection is terminated. The remote control server and the remote connection monitoring unit  130  may be executed on the management OS  101 . In addition, although the management OS  101  is separated from the VMM  100 , the functions of the management OS  101  may be included in the VMM  100 . In addition, the functions of the management OS  101  may be present on a machine that is different from the machine that includes the VMM  100  so that the management OS  101  manages the VMM  100  through the network. In this case, a single management OS may manage a plurality of VMMs. 
       FIG. 6  is a block diagram illustrating functions that are included in the terminal device  2 . 
     The terminal device  2  includes functions that are a monitor responding unit  205 , a power control unit  206  and the like, which function regardless of whether the main power switch is in the ON or OFF state. The monitor responding unit  205  receives the confirmation signal from the connection monitoring unit  121  of the server device  1  and transmits, to the connection monitoring unit  121 , a response to the confirmation signal. The power control unit  206  turns on or off the main power switch of the terminal device  2  on the basis of a user operation or the signal transmitted from the terminal power control unit  127  of the server device  1 . For example, when the terminal device  2  receives the power-on signal from the server device  1 , the power control unit  206  turns on the main power switch of the terminal device  2 . For example, when the terminal device  2  receives the power-off signal from the server device  1 , the power control unit  206  turns off the main power switch of the terminal device  2 . 
     When the CPU  20  executes the programs, a VMM  200  is executed on the terminal device  2  and a management OS  201  runs on the VMM  200 . The VMM  200  has a function that is a VM executing unit  210 . The VM executing unit  210  starts and stops the terminal VM  202  on the VMM  200  on the basis of a request from the management OS  201 . 
     The management OS  201  has functions that are a connection request transmitting/receiving unit  220 , a VM usage permission/prohibition setting unit  221 , a VM information synchronizing unit  223  and a remote control client  224 . 
     When the terminal device  2  is in the online state and the terminal device  2  receives information (such as the entered user ID) on a user operation, the connection request transmitting/receiving unit  220  transmits the connection request to the server device  1 . In addition, the connection request transmitting/receiving unit  220  receives the response signal from the server device  1 . The connection request transmitting/receiving unit  220  executes the remote control client  224  so that the remote connection to the server VM  102  that is indicated by the response signal is established. When the terminal device  2  is on the offline state, the connection request transmitting/receiving unit  220  transmits a notification to the VM execution requesting unit  222 . The connection request transmitting/receiving unit  220  receives a response signal from a VM execution requesting unit  222  and executes the remote control client  224  so that the remote connection to the terminal VM that is indicated by the response signal is established. 
     The VM usage permission/prohibition setting unit  221  sets the terminal VM to permit or prohibit use of the terminal VM according to the notification transmitted from the server device  1 . For example, when the server device  1  notifies the terminal device  2  that the thin client terminal  5  uses the server VM  102 , the VM usage permission/prohibition setting unit  221  prohibits use of the terminal VM. When the server device  1  notifies the terminal device  2  that the use of the server VM  102  is terminated, the usage permission/prohibition setting unit  221  permits use of the terminal VM. 
     When use of the terminal VM is permitted, the VM execution requesting unit  222  requests the VM executing unit  210  of the VMM  200  to execute the terminal VM. Then, the VM executing unit  210  executes the terminal VM, and resources of the terminal device are assigned to the executed terminal VM. After the resources are assigned, the guest OS starts up and runs on the terminal VM  202 . 
     The VM information synchronizing unit  223  periodically synchronizes the VM information between the server device  1  and the terminal device  2 . The remote control client  224  establishes the remote connection to the guest OS of the server VM  102  on the basis of the guest OS address included in the response signal received from the server device  1 . In this manner, the terminal device  2  uses the server VM  102  that operates on the server device  1 . 
     Next, a process that is performed by the computer system is described. The computer system includes the server device  1  and the terminal device  2  as described above. 
       FIG. 7  is a flowchart of a process of monitoring a connection state of the terminal device  2 . In  FIG. 7 , a process that is performed by the server device  1  is illustrated together with a process that is performed by the terminal device  2 , while the processes are periodically performed. 
     The VMM  100  is executed on the server device  1 , and the management OS  101  starts up and runs on the VMM  100 . The management OS  101  transmits the confirmation signal to the terminal device  2  in order to monitor the connection state of the terminal device  2  (in operation S 1 ). 
     The monitor responding unit  205  is included in the terminal device  2  and functions regardless of whether the main power switch is in the ON or OFF state. The monitor responding unit  205  determines whether or not the monitor responding unit  205  receives the confirmation signal from the server device  1  (in operation S 5 ). When the terminal device  2  is not connected to the network N, the terminal device  2  cannot receive the confirmation signal. When the monitor responding unit  205  does not receive the confirmation signal (No in operation S 5 ), the process that is performed by the terminal device  2  is terminated. When the monitor responding unit  205  receives the confirmation signal (Yes in operation S 5 ), the monitor responding unit  205  transmits the response signal to the server device  1  (in operation S 6 ), and the process that is performed by the terminal device  2  is terminated. 
     The management OS  101  determines whether or not the management OS  101  receives the response signal from the terminal device  2  (in operation S 2 ). When the terminal device  2  is in the offline state, the terminal device  2  cannot receive the confirmation signal from the server device  1  and the server device  1  does not receive the response signal from the terminal device  2 . Thus, when the management OS  101  does not receive the response signal (No in operation S 2 ), the management OS  101  determines that the terminal device  2  is in the offline state, and the management OS  101  sets the server VM  102  to prohibit use of the server VM  102  (in operation S 3 ). For example, the management OS  101  updates the information that is included in the VM management table and indicates whether or not use of the server VM  102  is permitted. Since the management OS  101  updates the information that indicates whether or not use of the server VM  102  is permitted, the server VM  102  of the server device  1  is not used by the thin client terminal  5 . After that, the process that is performed by the server device  1  is terminated. When the server VM  102  is already set to prohibit use of the server VM  102 , operation S 3  may be omitted. 
     When the management OS  101  receives the response signal from the terminal device (Yes in operation S 2 ), the management OS  101  determines that the terminal device  2  is in the online state, and the management OS  101  sets the server VM  102  to permit use of the server VM  102  (in operation S 4 ). After that, the process that is performed by the server device  1  is terminated. When the server VM  102  is already set to permit use of the server VM  102 , operation S 5  may be omitted. 
     When the terminal device  2  is in the offline state, there is a possibility that the terminal VM  202  is being executed on the terminal device  2 . If the thin client terminal  5  were permitted to use the server VM, the same VM (server VM and terminal VM) would be separately used by the server device  1  and the terminal device  2 . Thus, when the terminal device  2  is in the offline state, the thin client terminal  5  is prohibited to use the server VM. Therefore, the terminal device  2  and the thin client terminal  5  cannot use the same VM simultaneously. When the state of the terminal device  2  is changed to the online state, use of the server VM may be permitted and the thin client terminal  5  may use the server VM  102 . 
       FIG. 8  is a flowchart of a process that is performed by the server device  1  when the server device  1  receives the connection request. 
     The management OS  101  determines whether or not the management OS  101  receives the connection request (in operation S 20 ). When the management OS  101  does not receive the connection request (No in operation S 20 ), the management OS  101  terminates the process. When the management OS  101  receives the connection request (Yes in operation S 20 ), the management OS  101  determines whether or not the received connection request has been transmitted from the terminal device  2  (in operation S 21 ). For example, the server device  1  has, stored therein, the Internet Protocol (IP) address of the terminal device  2  and the Internet Protocol (IP) address of the thin client terminal  5 , and the management OS  101  specifies the device that has transmitted the connection request. When the management OS  101  receives the connection request from the terminal device  2  (Yes in operation S 21 ), the management OS  101  performs a process of allowing the terminal device  2  to use the server VM (in operation S 22 ). 
       FIG. 9  is a flowchart of the process of allowing the terminal device  2  to use the server VM, while the process is performed by the server device  1 . 
     The management OS  101  performs a user authentication on the basis of the user ID and the like that are included in the connection request received from the terminal device  2  (in operation S 30 ). When the user authentication cannot be successfully performed, the management OS  101  may transmit an error message to the terminal device  2 . After operation S 30 , the management OS  101  determines whether or not the VM information needs to be synchronized between the server device  1  and the terminal device  2  (in operation S 31 ). When the management OS  101  determines that the VM information needs to be synchronized between the server device  1  and the terminal device  2  (Yes in operation S 31 ), the management OS  101  synchronizes the VM information between the server device  1  and the terminal device  2  (in operation S 32 ). After the synchronization or when the management OS  101  determines that the VM information does not need to be synchronized (No in operation S 31 ), the management OS  101  executes the server VM  102  (in operation S 33 ) and transmits, to the terminal device  2 , the address of the server VM  102  as a signal (response signal) in response to the received connection request (in operation S 34 ). Thus, the server VM  102  of the server device  1  is accessed by the terminal device  2  so that the remote connection is established. 
     The management OS  101  determines whether or not the management OS  101  receives, from the terminal device  2 , a notification that indicates that the remote connection is terminated (in operation S 35 ). When the management OS  101  does not receive, from the terminal device  2 , the notification that indicates that the remote connection is terminated (No in operation S 35 ), the management OS  101  continues the remote connection until the terminal device  2  notifies the server device  1  that the remote connection is terminated. When the management OS  101  receives, from the terminal device  2 , the notification that indicates that the remote connection is terminated (Yes in operation S 35 ), the management OS  101  terminates the remote connection and synchronizes the VM information between the server device  1  and the terminal device  2  (in operation S 36 ). Then, the management OS  101  terminates the process. 
     On the other hand, when the management OS  101  receives the connection request from the thin client terminal  5  (No in operation S 21  of  FIG. 8 ), the management OS  101  performs a process of allowing the thin client terminal to use the server VM (in operation S 23 ). 
       FIGS. 10 and 11  are a flowchart of the process of allowing the thin client terminal to use the server VM, while the process is performed by the server device  1  and the terminal device  2 . In each of  FIGS. 10 and 11 , a process that is performed by the terminal device  2  is illustrated together with a process that is performed by the server device  1 . 
     In the server device  1 , the management OS  101  references the VM management table and performs a user authentication on the basis of the user ID and the password that are included in the received connection request (in operation S 40 ). In this case, when the user authentication cannot be successfully performed, the management OS  101  may transmit an error message to the thin client terminal  5 . After operation S 40 , the management OS  101  determines whether or not use of the corresponding server VM  102  is permitted (in operation S 41 ). For example, when the terminal device  2  is in the offline state and whereby use of the server VM  102  is prohibited (No in operation S 41 ), the process that is performed by the server device  1  is terminated. In this case, the management OS  101  transmits, to the thin client terminal  5 , a notification that indicates that use of the server VM  102  is prohibited. 
     When use of the server VM is permitted (Yes in operation S 41 ), the management OS  101  transmits the power-on signal to the terminal device  2  (in operation S 42 ). In the terminal device  2 , the power control unit  206  receives the power-on signal and turns on the main power switch (in operation S 43 ). Then, the VMM  200  and the management OS  201  operate on the terminal device  2 . The server device  1  notifies the terminal device  2  that the server VM is used by the thin client terminal  5  (in operation S 44 ). After the terminal device  2  is notified by the server device  1 , the VM usage permission/prohibition setting unit  221  of the terminal device  2  sets the terminal VM  202  to prohibit use of the terminal VM  202  (in operation S 45 ). Thus, the user is prohibited to use the terminal VM  202 . Therefore, use of the terminal VM  202  that has the same VM_ID as the server VM  102  is prohibited. 
     The management OS  101  of the server device  1  transmits the power-off signal to the terminal device  2  (in operation S 46 ). The power control unit  206  of the terminal device  2  receives the power-off signal and turns off the main power switch (in operation S 47 ). When the main power switch is already in the ON state, operations S 42  to S 47  of controlling the main power switch may be omitted. 
     In the server device  1 , the management OS  101  starts the server VM  102  (in operation S 48 ). Then, the guest OS runs on the executed server VM  102 . When the server VM  102  notifies the thin client terminal  5  of a device connected to the guest OS, the remote connection to the thin client terminal  5  is established. When the remote connection is established, the server VM  102  of the server device  1  receives, from the thin client terminal  5 , information entered by an operation with the keyboard and mouse of the thin client terminal  5 , and transmits, to the thin client terminal  5 , the results of a process performed by the server VM  102 . 
     The management OS  101  determines whether or not the management OS  101  receives, from the thin client terminal  5 , a notification that indicates that the remote connection is terminated (in operation S 49 ). When the thin client terminal  5  receives information on a user operation, for example, when a power supply button of the thin client terminal  5  is turned off, the thin client terminal  5  transmits, to the server device  1 , the notification that indicates that the remote connection is terminated. When the management OS  101  does not receive, from the thin client terminal  5 , the notification that indicates that the remote connection is terminated (NO in operation S 49 ), the management OS  101  continues the remote connection until the management OS  101  receives the notification that indicates that the remote connection is terminated. When the management OS  101  receives, from the thin client terminal  5 , the notification that indicates that the remote connection is terminated (Yes in operation S 49 ), the management OS  101  stops the server VM  102  (in operation S 50 ). 
     Next, the management OS  101  transmits the power-on signal to the terminal device  2  (in operation S 51 ). In the terminal device  2 , the power control unit  206  receives the power-on signal and turns on the main power switch (in operation S 52 ). Then, the VMM  200  and the management OS  201  operate on the terminal device  2  (in operation S 52 ). The server device  1  notifies the terminal device  2  that the thin client terminal  5  terminates the use of the server VM (in operation S 53 ). In the terminal device  2 , the VM usage permission/prohibition setting unit  221  sets the terminal VM  202  to permit use of the terminal VM  202  (in operation S 54 ). The server device  1  and the terminal device  2  synchronize the VM information between the server device  1  and the terminal device  2  (in operations S 55  and S 56 ). The management OS  101  of the server device  1  transmits the power-off signal to the terminal device  2  (in operation S 57 ). Then, the process that is performed by the server device  1  is terminated. In the terminal device  2 , the power control unit  206  receives the power-off signal and turns off the main power switch (in operation S 58 ). Then, the process that is performed by the terminal device  2  is terminated. When the main power switch of the terminal device  2  is already in the ON state, operations S 51  to S 58  of controlling the main power switch may be omitted. 
     When the server VM  102  is used by the thin client terminal  5 , the VM information that is held by the server device  1  is changed. Thus, when the thin client terminal  5  terminates the use of the server VM  102 , the change in the VM information is reflected in the terminal device  2 . Therefore, the terminal device  2  holds the same VM information as the server device  1 . 
       FIGS. 12 and 13  are flowcharts of a process that is performed by the terminal device  2  in order to use the VM. 
     The management OS  201  determines whether or not the terminal device  2  starts using the VM (in operation S 60 ). The management OS  201  receives information on a user operation and determines that the terminal device  2  starts using the VM on the basis of the information on the user operation. When the terminal device  2  does not start using the VM (No in operation S 60 ), the management OS  201  terminates the process. When the terminal device  2  starts using the VM (Yes in operation S 60 ), the management OS  201  determines whether or not use of the terminal VM  202  is permitted (in operation S 61 ). 
     When the management OS  201  determines that use of the terminal VM  202  is prohibited (No in operation S 61 ), the server VM  102  that has the same VM information as the terminal VM  202  is operating on the server device  1  and being used by the thin client terminal  5 , and the management OS  201  determines that the VM cannot be used by the terminal device  2 . Then, the management OS  201  terminates the process. When the management OS  201  determines that use of the terminal VM  202  is permitted (Yes in operation S 61 ), the management OS  201  determines whether or not the terminal device  2  is in the online state (in operation S 62 ). 
     When the terminal device  2  is in the online state (Yes in operation S 62 ), the management OS  201  transmits the connection request to the server device  1  in order to use the server VM  102  (in operation S 63 ). In this case, the management OS  201  transmits the connection request that includes the user ID and the password that have been entered by the user. Then, the management OS  201  determines whether or not the management OS  201  receives a signal (response signal) transmitted in response to the transmitted connection request (in operation S 64 ). When the management OS  201  does not receive the response signal (No in operation S 64 ), the management OS  201  stands by until the management OS  201  receives the response signal. In this case, when the terminal device  2  does not receive the response signal for a certain time period, the management OS  201  may treats the transmitted connection request as an error. 
     When the management OS  201  receives the response signal (Yes in operation S 64 ), the management OS  201  determines whether or not the VM information needs to be synchronized between the server device  1  and the terminal device  2  (in operation S 65 ). When the VM information needs to be synchronized between the server device  1  and the terminal device  2  (Yes in operation S 65 ), the management OS  201  synchronizes the VM information between the server device  1  and the terminal device  2  (in operation S 66 ). Thus, when the terminal device  2  is in the offline state, the terminal VM  202  is used by the terminal device  2 . When the VM information is changed, the change in the VM information is reflected in the server device  1 . Thus, the same VM can operate on the server device  1  and the terminal device  2 . 
     The management OS  201  establishes, according to the received response signal, the remote connection to the guest OS that runs on the server VM executed on the server device  1  (in operation S 67 ). For example, the received response signal includes an address that allows the terminal device  2  to be connected to the guest OS that runs on the server device  1 . The management OS  201  starts the remote control client  224  so that the remote control client  224  is connected to the guest OS. The remote control client  224  receives information on a user operation and transmits the information to the guest OS of the server VM  102 . Then, the remote control client  224  receives information on a screen to be displayed as a result of the reception of the information on the user operation and causes the received information to be displayed on the monitor of the terminal device  2 . 
     The management OS  201  determines whether or not the management OS  201  receives a notification that indicates termination of the remote connection (in operation S 68 ). When the management OS  201  receives information on a user operation such as an operation of turning off a power supply button, the management OS  201  terminates the remote connection. When the management OS  201  does not receive the notification that indicates termination of the remote connection (No in operation S 68 ), the management OS  201  continues the remote connection until the management OS  201  receives the notification that indicates termination of the remote connection. When the management OS  201  receives the notification that indicates termination of the remote connection (Yes in operation S 68 ), the management OS  201  transmits, to the server device  1 , the notification that indicates termination of the remote connection (in operation S 69 ). After that, the management OS  201  synchronizes the VM information between the server device  1  and the terminal device  2  (in operation S 70 ) and terminates the process. Specifically, the VM information is synchronized between the server device  1  and the terminal device  2  when the use of the VM is terminated. When the user uses the VM again after the termination of the use of the VM, the VM can be executed on the server device  1  and the terminal device  2  according to the same VM information. As described above, whether to terminate the remote connection is determined on the basis of reception of the notification. However, the remote connection monitoring unit  130  may determine whether or not the remote connection is terminated. 
     When the management OS  201  determines that the terminal device is not in the online state (No in operation S 62 ), the management OS  201  executes the terminal VM  202  (in operation S 71 ). The user may operate the terminal VM  202  that operates on the terminal device  2 . For example, the guest OS runs on the executed terminal VM  202 . The management OS  201  executes the remote control client  224  so that the remote control client  224  is connected to the guest OS that runs on the terminal VM  202 . The remote control client  224  receives information on a user operation and transmits the received information to the guest OS that runs on the server VM  102 . Then, the remote control client  224  receives information regarding a screen to be displayed as a result of the reception of the information on the user operation and causes the received information to be displayed on the monitor of the terminal device  2 . 
     The management OS  201  determines whether or not the management OS  201  receives a notification that indicates that the use of the terminal VM  202  is terminated (in operation S 72 ). When the management OS  201  does not receive the notification that indicates that the use of the terminal VM  202  is terminated (No in operation S 72 ), the management OS  201  causes the terminal device  2  to continuously use the terminal VM  202 . When the management OS  201  receives the notification that indicates that the use of the terminal VM  202  is terminated (Yes in operation S 72 ), the management OS  201  stops the terminal VM  202  (in operation S 73 ) and determines whether or not the state of the terminal device  2  is changed to the online state (in operation S 74 ). When the state of the terminal device  2  is changed to the online state (Yes in operation S 74 ), the management OS  201  causes the process to proceed to operation S 70  so as to synchronize the VM information between the terminal device  2  and the server device  1 . When the state of the terminal device  2  is not changed to the online state (No in operation S 74 ), the management OS  201  stands by until the state of the terminal device  2  is changed to the online state. As described above, after the terminal device  2  in the offline state terminates the use of the terminal VM  202 , the VM information is synchronized between the server device  1  and the terminal device  2 . After that, the terminal device  2  in the online state can efficiently use the server VM  102 . 
     As described above, when the terminal device  2  is in the online state, the terminal device  2  uses the server VM. When the terminal device  2  is in the offline state, the terminal device  2  uses the terminal VM. Thus, even when the terminal device  2  is not connected to the network N, the user may use the terminal VM  202 . In addition, when the terminal device  2  starts using the server VM and terminates the use of the server VM, the terminal device  2  synchronizes the VM information between the server device  1  and the terminal device  2 . Therefore, the terminal device  2  holds the latest VM information. 
     As described above, in the present embodiment, 
     The server VM  102  operates on the server device  1 , and the terminal VM  202  operates on the terminal device  2 . When either the server VM  102  or the terminal VM  202  is used, use of the other of the VMs  102  and  202  is prohibited. Thus, the server VM  102  and the terminal VM  202 , which have the same VM information, are not used simultaneously. 
     Second Embodiment 
     The second embodiment is described below. In the second embodiment, the terminal device  2  has a function of notifying the user that the terminal device  2  uses either the server VM or the terminal VM. The notifying function is described below. 
       FIGS. 14A and 14B  are diagrams each illustrating an example of the monitor of the terminal device  2 . In  FIGS. 14A and 14B , the results of the process performed by the VM are displayed on the monitor of the terminal device  2 . When the terminal device  2  uses the server VM  102 , the management OS  101  notifies the terminal device  2  of a location at which the guest OS of the server VM  102  is executed, and an image that indicates that the VM that is being used is the server VM  102  is displayed on the upper right side of a monitor screen of the guest OS (refer to  FIG. 14A ). Thus, a screen illustrated in  FIG. 14A  is displayed on the upper right side of the screen of the terminal device  2 . In addition, when the terminal device  2  uses the terminal device VM  202 , the management OS  201  notifies the terminal device  2  of a location at which the guest OS of the terminal VM  202  is executed, and an image that indicates that the VM that is being used is the terminal VM  202  is displayed on the upper right side of the monitor screen of the guest OS (refer to  FIG. 14B ). Thus, a screen illustrated in  FIG. 14B  is displayed on the upper right side of the screen of the terminal device  2 . When the screen illustrated in  FIGS. 14A  or  14 B is displayed, the user recognizes the VM that is being used. In addition, the user can recognize whether the terminal device  2  is in the online state or the offline state by viewing the displayed image. 
       FIG. 15  is a block diagram illustrating functions that are included in the server device  1 . 
     The management OS  101  of the server device  1  according to the present embodiment includes the functions described in the first embodiment and a function that is a VM execution location notifying unit  129 . The VM execution location notifying unit  129  detects execution of the server VM  102  and notifies a VM execution location display unit  131  that a location at which the VM is executed is the server device  1 . The VM execution location display unit  131  is present in the guest OS executed on the server VM  102  and displays the notified location on the screen of the guest OS executed on the server VM  102 . 
       FIG. 16  is a block diagram illustrating functions that are included in the terminal device  2 . 
     The management OS  201  of the terminal device  2  according to the present embodiment includes the functions described in the first embodiment and a function that is a VM execution location notifying unit  225 . The VM execution location notifying unit  225  detects execution of the terminal VM  202  and notifies a VM execution location display unit  230  that a location at which the VM is executed is the terminal device  2 . The VM execution location display unit  230  is present in the guest OS executed on the terminal VM  202  and displays the notified location on the screen of the guest OS executed on the terminal VM  202 . 
       FIG. 17  is a flowchart of a process of allowing the terminal device  2  to use the server VM, while the process is performed by the server device  1 . When the management OS  101  receives the connection request from the terminal device  2 , the management OS  101  performs the process illustrated in  FIG. 17 . 
     The management OS  101  performs a user authentication on the basis of the user ID and the like that are included in the connection request received from the terminal device  2  (in operation S 80 ). Next, the management OS  101  determines whether or not the VM information needs to be synchronized between the server device  1  and the terminal device  2  (in operation S 81 ). When the management OS  101  determines that the VM information needs to be synchronized (Yes in operation S 81 ), the management OS  101  synchronizes the VM information between the server device  1  and the terminal device  2  (in operation S 82 ). After the synchronization or when the VM information is not synchronized (No in operation S 81 ), the management OS  101  executes the server VM  102  (in operation S 83 ) and transmits, to the terminal device  2 , a signal (response signal) in response to the received connection request (in operation S 84 ). The server VM  102  displays, on the screen of the guest OS, the location at which the VM is being executed and used (in operation S 85 ). Thus, characters, “SERVER VM”, are displayed on the monitor of the terminal device  2  as illustrated in  FIG. 14A . Therefore, the user recognizes that the server VM is being used. 
     The management OS  101  determines whether or not the management OS  101  receives, from the terminal device  2 , a notification that indicates termination of the remote connection (in operation S 86 ). When the server device  1  does not receive, from the terminal device  2 , the notification that indicates termination of the remote connection (No in operation S 86 ), the management OS  101  continues the remote connection until the management OS  101  receives, from the terminal device  2 , the notification that indicates termination of the remote connection. When the management OS  101  receives, from the terminal device  2 , the notification that indicates termination of the remote connection (Yes in operation S 86 ), the management OS  101  terminates the remote connection and stops the server VM  102  (in operation S 87 ). After that, the management OS  101  synchronizes the VM information between the server device  1  and the terminal device  2  (in operation S 88 ) and terminates the process. 
       FIGS. 18 and 19  are flowcharts of a process that is performed by the terminal device  2 . 
     The management OS  201  determines whether or not the terminal device  2  starts using the VM (in operation S 90 ). When the terminal device does not start using the VM (No in operation S 90 ), the management OS  201  terminates the process. When the terminal device  2  starts using the VM (Yes in operation S 90 ), the management OS  201  determines whether or not use of the terminal VM  202  is permitted (in operation S 91 ). 
     When use of the terminal VM  202  is prohibited (No in operation S 91 ), the management OS  201  terminates the process. When use of the terminal VM  202  is permitted (Yes in operation S 91 ), the management OS  201  determines whether or not the terminal device  2  is in the online state (in operation S 92 ). When the terminal device  2  is in the online state (Yes in operation S 92 ), the management OS  201  transmits the connection request to the server device  1  (in operation S 93 ). The management OS  201  then determines whether or not the management OS  201  receives a signal (response signal) transmitted in response to the connection request transmitted by the management OS  201  (in operation S 94 ). When the management OS  201  does not receive the response signal (No in operation S 94 ), the management OS  201  stands by until the management OS  201  receives the response signal. 
     When the management OS  201  receives the response signal (Yes in operation S 94 ), the management OS  201  determines whether or not the server device  1  requests the terminal device  2  to synchronize the VM information (in operation S 95 ). When the management OS  201  determines that the server device  1  does not request the terminal device  2  to synchronize the VM information (No in operation S 95 ), the management OS  201  causes the process to return to operation S 97 . When the management OS  201  determines that the server device  1  requests the terminal device  2  to synchronize the VM information (Yes in operation S 95 ), the management OS  201  synchronizes the VM information between the server device  1  and the terminal device  2  (in operation S 96 ). The management OS  201  then establishes the remote connection to the guest OS that operates on the server VM of the server device  1  (in operation S 97 ). Thus, the server VM may be used by the terminal device  2 . 
     The management OS  201  determines whether or not the management OS  201  receives a notification that indicates termination of the remote connection (in operation S 98 ). When the terminal device  2  does not receive the notification that indicates termination of the remote connection (No in operation S 98 ), the management OS  201  continues the remote connection until the management OS  201  receives the notification that indicates termination of the remote connection. When the terminal device  2  receives the notification that indicates termination of the remote connection (Yes in operation S 98 ), the management OS  201  notifies the server device  1  of termination of the remote connection (in operation S 99 ). After that, the management OS  201  synchronizes the VM information between the server device  1  and the terminal device  2  (in operation S 100 ) and then terminates the process. 
     When the management OS  201  determines that the terminal device  2  is not in the online state (No in operation S 92 ), the management OS  201  starts the terminal VM  202  (in operation S 101 ). The terminal VM  202  displays, on the screen of the guest OS, a location at which the VM is being executed and used (in operation S 102 ). Thus, characters, “TERMINAL VM”, are displayed on the monitor of the terminal device  2  as illustrated in  FIG. 14B . Therefore, the user recognizes that the terminal VM is being used. 
     Next, the management OS  201  determines whether or not the management OS  201  receives a notification that indicates termination of the use of the terminal VM  202  (in operation S 103 ). When the management OS  201  does not receive the notification that indicates termination of the use of the terminal VM  202  (No in operation S 103 ), the management OS  201  causes the terminal device  2  to continuously use the terminal VM  202  until the management OS  201  receives the notification that indicates termination of the use of the terminal VM  202 . When the terminal device  2  receives the notification that indicates termination of the use of the terminal VM  202  (Yes in operation S 103 ), the management OS  201  stops the terminal VM  202  (in operation S 104 ) and terminates the process. 
     As described above, in the present embodiment, when the terminal device  2  uses the server VM  102  or the terminal  202 , the terminal device  2  displays the image that indicates that the server VM  102  or the terminal VM  202  is used. Thus, when the user views the displayed image, the user can recognize the VM that is being used. Therefore, the user can recognize whether the terminal device  2  is in the online state or the offline state. 
     Third Embodiment 
     The third embodiment is described below. In the third embodiment, the terminal device  2  has a function of limiting a time period for use of the terminal VM  202  of the terminal device  2  when the terminal device  2  is in the offline state. 
       FIG. 20  is a diagram illustrating an example of a setting screen that is used to limit the time period for use of the terminal VM  202 . 
     The time period for use of the terminal VM  202  is set by an administrator of the server device  1 , for example. The screen illustrated in  FIG. 20  is displayed on a monitor by the management OS  101 . When the server device  1  has a monitor, the screen illustrated in  FIG. 20  may be displayed on the monitor of the server device  1 . In addition, the terminal device  2  or the thin client terminal  5  may be connected to the server device  1 , and the screen illustrated in  FIG. 20  may be displayed on the monitor of the terminal device  2  or the monitor of the thin client terminal  5 . The time period for use of the terminal VM  202  is determined using the setting screen. A user is selected on the setting screen so that the time period for use of the terminal VM is set for the selected user. The time period for use of the terminal VM  202  may be set for a plurality of users or all users. The time period for use of the terminal VM  202  may start from the time when the terminal VM is executed. In addition, the time period for use of the terminal VM  202  may start from the time when the state of the terminal device  2  is changed to the offline state. 
       FIG. 21  is a block diagram illustrating functions that are included in the server device  1 . 
     The management OS  101  of the server device  1  according to the present embodiment includes the functions described in the first embodiment and functions that are a time period setting unit  140 , a time period notifying unit  141  and a time period monitoring unit  142 . The time period setting unit  140  displays the screen illustrated in  FIG. 20  on the monitor. When the state of the terminal device  2  is changed to the offline state, the time period setting unit  140  sets the time period for use of the terminal VM  202 . The set time period for use of the terminal VM  202  is stored in the VM management table or the like, while the set time period for use of the terminal VM  202  is associated with the user ID in the VM management table or the like. The time period notifying unit  141  transmits, to the terminal device  2 , a notification that indicates the time period set by the time period setting unit  140 . When the VM information synchronizing unit  126  synchronizes the VM information, the time period notifying unit  141  may transmits, to the terminal device  2 , the notification that indicates the time period set by the time period setting unit  140 . The time period monitoring unit  142  monitors whether or not the state of the terminal device  2  is changed to the online state within the set time period. When the state of the terminal device  2  is not changed to the online state after the set time period elapses, the VM usage permission/prohibition determining unit  123  permits use of the server VM  102 . 
       FIG. 22  is a block diagram illustrating functions that are included in the terminal device  2 . 
     The management OS  201  of the terminal device  2  according to the present embodiment includes the functions described in the first embodiment and functions that are a time period receiving unit  226  and a time period monitoring unit  227 . The time period receiving unit  226  receives, from the server device  1 , the notification that indicates the time period for use of the terminal VM  202 . When the state of the terminal device  2  is changed to the offline state, the time period monitoring unit  227  monitors whether or not the actual time period for use of the terminal VM  202  exceeds the time period that is indicated by the notification received by the time period receiving unit  226 . When the actual time period for use of the terminal VM  202  exceeds the time period that is indicated by the notification received by the time period receiving unit  226 , the VM usage permission/prohibition setting unit  221  prohibits use of the terminal VM  202 . In addition, when the actual time period for use of the terminal VM  202  exceeds the time period that is indicated by the notification received by the time period receiving unit  226 , the time period monitoring unit  227  deletes information that has been generated due to use of the terminal VM  202  and stored in the HDD  23 , the RAM  23  or the like. 
       FIG. 23  is a flowchart of a process that is performed by the terminal device  2 . 
     The management OS  201  receives, from the server device  1 , the notification that indicates the time period (in operation S 110 ). The management OS  201  then determines whether or not the terminal device  2  is in the offline state (in operation S 111 ). When the terminal device  2  is not in the offline state (No in operation S 111 ), the management OS  201  terminates the process. However, the management OS  201  periodically performs the process. When the terminal device  2  is in the offline state (Yes in operation S 111 ), the management OS  201  determines whether or not the actual time period for use of the terminal VM  202  exceeds the set time period for use of the terminal VM  202  (in operation S 112 ). When the management OS  201  determines that the actual time period for use of the terminal VM  202  does not exceed the set time period for use of the terminal VM  202  (No in operation S 112 ), the management OS  201  terminates the process. When the management OS  201  determines that the actual time period for use of the terminal VM  202  exceeds the set time period for use of the terminal VM  202  (Yes in operation S 112 ), the management OS  201  deletes changed VM information (in operation S 113 ) and terminates the process. The changed VM information is information that indicates the results of a process performed by the terminal VM  202  and is stored in the HDD  23 , the RAM  22  or the like. When the changed VM information is deleted, the state of the terminal VM  202  returns to the state of the terminal VM  202  before the terminal VM  202  was used. After that, the management OS  201  terminates the process as described above. When the number of times of use of the terminal VM  202  exceeds a set value or when the number of failures of the user authentications exceeds a set value, the terminal device  2  may be prohibited to use the terminal VM  202 . 
       FIG. 24  is a flowchart of a process that is performed by the server device  1 . 
     The management OS  101  sets the time period for use of the terminal VM  202  (in operation S 120 ). After that, the management OS  101  notifies the terminal device  2  of the set time period (in operation S 121 ). Next, the management OS  101  determines whether or not the terminal device  2  is in the offline state (in operation S 122 ). When the terminal device is not in the offline state (No in operation S 122 ), the management OS  101  repeats operation S 122 . When the terminal device is in the offline state (Yes in operation S 122 ), the management OS  101  acquires the time period set for the user of the terminal device  2  and determines whether or not the actual time period for use of the terminal VM  202  exceeds the set time period (in operation S 123 ). 
     When the management OS  101  determines that the actual time period for use of the terminal VM  202  does not exceed the set time period (No in operation S 123 ), the management OS  101  performs operation S 122 . When the management OS  101  determines that the actual time period for use of the terminal VM  202  exceeds the set time period (Yes in operation S 123 ), the management OS  101  changes the usage setting of the server VM  102  from prohibited to permitted (in operation S 124 ). Then, the management OS  101  terminates the process. 
     As described above, in the present embodiment, even when the state of the terminal device  2  cannot be changed from the offline state to the online state, use of the server VM  102  is permitted after the certain time elapses. Thus, even when the state of the terminal device  2  cannot be changed to the online state due to the loss of the terminal device  2  or for another reason, it is possible to prevent use of the server VM  102  from being continuously prohibited, and avoid the problem that the thin client terminal  5  is prohibited to use the server VM  102 . 
     The present embodiment is described above. However, the aforementioned configurations and operations may be changed when necessary and are not limited to the aforementioned embodiments. 
     The programs described in the embodiments are stored in a computer-readable storage medium and delivered. Examples of the computer-readable storage medium are a flexible disk, a hard disk, a compact disc-read only memory (CD-ROM), a DVD-ROM, a DVD-random access memory (DVD-RAM), a Blue-ray disc (BD), a USB memory, and another nonvolatile memory such as a flash memory. The computer programs may be transmitted through at least one of networks represented by an electric communication line, a wireless or cable communication line, the Internet and the like. However, the examples of the computer-readable storage medium do not include a carrier wave that includes the computer programs. Even if the computer programs are included in a carrier wave and carried by the carrier wave, a computer that is a transmission source of the programs has a readable storage medium. Thus, the computer-readable storage medium is a physically tangible storage medium. 
     All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the principles of the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiment(s) of the present invention(s) has(have) been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.