|In the practical operation of a computing system it is often necessary to halt the execution of a user's programs so that it can be restarted later just where it left off. The simplest example is suspending execution in order to handle a hardware interrupt. Sometimes it is necessary to suspend execution for longer period, as when a user has run out of funds or a user with higher priority desires to use the system. In interactive time-sharing systems, a user may desire to suspend his work in order to go home for the night. In all of these cases it is wasteful to destroy the work already done. Moreover, the job may have permanently altered a crucial storage file (such as the payroll records for an entire company). Hence the need for being able to suspend a job, i.e. to stop it so that it can be resumed just where it left off.