Method to Improve UNIX Fork/Exec Performance in a Virtual Machine
Original Publication Date: 1986-Jul-01
Included in the Prior Art Database: 2005-Mar-09
A method is described to eliminate unneeded copying of data when creating a UNIX* process to run in a Virtual Machine environment under a Resource Manager. The UNIX fork service creates an exact copy of the current process's address space. The address space consists of a code, data, and stack segment. Typically, when executing a new command, the fork service is followed by an exec service to load and execute the new command in the new copy of the address space. This results in replacing the forked address space with the address space of the new command, thus undoing much of the work of the fork. Copying the current process's address space is expensive and time-consuming, especially if it is to be subsequently deleted by the exec service. Most UNIX systems are swapping systems instead of paging systems.