When using a computer, multiple programs can often be found running at the same time. Perhaps one for playing music, another for creating documents, and one for browsing the web. All of these programs have certain functionalities, but on their own they do nothing. To actually make use of them, they must be executed.
While a computer program is a static collection of coded instructions stored on a disk, a process is an abstraction representing the program when it is running. A process is created when a program is executed. These processes are not only central for the usability of a computer, but they are the building blocks of an operating system. Managing these processes is central to operating system development.
Processes can sometimes also be called “tasks” or “jobs”, although these definitions are ambiguous. The key defining factor is that processes generally operate independently and do not share data; for example, a music player program will launch a music player process that would be independent of the process managing an office suite.
All of the processes running on your system can be found in the operating system’s process manager:
- Task Manager in Windows
- Activity Monitor in MacOS
- System Monitor or top in most Linux Distributions