Patent ID: 8316220

Claim:
A method for operating a client processor and a host processor over a network, wherein the client processor has a client main memory, a client main processor and two or more client secondary processors and the host processor has a host main processor, a host main memory and two or more host secondary processors, wherein each client secondary processor and each host secondary processor has an exclusively associated memory and a memory flow controller (MFC), the method comprising: running a process on a client processor wherein the process runs on two or more client secondary processors, wherein the process uses a message box in the form of a window of memory where incoming and outgoing streams of data can be accessed by the client main processor and client secondary processors; suspending the process that runs on the two or more client secondary processors; saving an execution state of the process that runs on the two or more client secondary processors by either a) saving an execution state of two or more client secondary processors running the process on the client processor into a single file in the main memory, wherein the execution state includes contents of the exclusively associated memories for the two or more client secondary processors, information regarding the message box that a host processor can use to set up the message box and communicate with the client processor through the message box, and data regarding a state of the MFC and a hardware state of the two or more client secondary processors that were running the process, wherein the contents of the exclusively associated memories for the two or more client secondary processors includes executable code for running the process, or b) saving an execution state of one or more of the client secondary processors that were running the process that runs on the two or more client secondary processors and shared initialized data for the process that runs on the two or more client secondary processors into a single file in the main memory, wherein the execution state includes contents of the exclusively associated memory for at least one of the client secondary processors and shared initialized data of the suspended process, information regarding the message box that a host processor can use to set up the message box and communicate with the client processor through the message box, and data regarding a state of the MFC and a hardware state of the at least one of the client secondary processors that were running the suspended process, wherein the contents of the exclusively associated memory of the at least one of the client secondary processors includes executable code for running the process; and transferring the single file from the client processor over a network to the host processor; wherein the single file containing the saved execution state of the process is configured to permit the host processor to resume processing of the suspended process.