Lably
Skip to content

Process management (computing)

Computer system for maintaining order among running programs

  • 14 min read
  • 10 chapters

Related on Lably

Through Operating system, Process (computing) and Data structure

Multiprogramming

In any modern operating system, there can be more than one instance of a program loaded in memory at the same time. For example, more than one user can be executing the same program, with each user having separate copies of the program loaded into memory. With some programs, it is possible to have one copy loaded into memory, while several users have shared access to it so that they can each execute the same program-code. Such a program is called re-entrant. At a given instant, the processor can only be executing one instruction from one program, but several processes can be sustained over a period of time by assigning each process to the processor at intervals while the remainder become temporarily inactive. The execution of multiple processes over a period of time, rather than simultaneously, is known as concurrent execution.

A multiprogramming or multitasking O.S. is an Operating System that can execute many processes concurrently. Multiprogramming requires that the processor be allocated to each process for a period of time and de-allocated or issued at an appropriate moment. If the processor is de-allocated during the execution of a process, it must be done in a way that the process can restart later as efficiently as possible.

There are two ways for an OS to regain control of the processor during a program's execution in order for the OS to perform de-allocation or allocation:

  1. The process issues a system call (sometimes called a software interrupt); for example, an I/O request occurs requesting to access a file on a hard disk.
  2. A hardware interrupt occurs; for example, a key was pressed on the keyboard, or a timer runs out (used in preemptive multitasking).

The stopping of one process and starting (or restarting) of another process is called a context switch or context change. In many modern operating systems, processes can consist of many sub-processes. This introduces the concept of a thread. A thread may be viewed as a sub-process; that is, a separate, independent sequence of execution within the code of one process. Threads are becoming increasingly important in the design of distributed and client–server systems and in software run on multi-processor systems.

Sign in to keep reading

9 more chapters are free with a Lably account.

More in Computing and communication