これは、リエントラントなコードの発明とともに必要になった。
スレッドという概念が生まれるのはその少し後になる。タイムシェアリングシステム、コンピュータネットワーク、マルチプロセッサ、メモリ共有型コンピュータなどが登場し、古い「マルチプログラミング」は真のマルチタスクやマルチプロセッシングにとって代わられ、さらにはマルチスレッドへと進化していったのである。
マルチタスクOSにおけるプロセス管理.
組み込みシステムのオペレーティングシステムでは、プロセスをタスクと呼ぶことが多い。「プロセス」（あるいはタスク）という用語は「時間を占める何か」であり、対照的に「メモリ」は「空間を占める何か」である。また、ジョブがユーザーから見た処理の単位であるのに対し、「プロセス」は、コンピュータ側から見た処理の単位である。
以上の説明はオペレーティングシステムに管理されるプロセスにも、プロセス計算で定義されるプロセスにも当てはまる。
プロセスが中断された状態ならば、ディスクにスワップアウトすることができるが、仮想記憶システムではこれは透過的であって、あるメモリブロックの内容がディスク上にあってメモリ上にないという状態は正常な状態である。動作中プロセスの「未使用」部分もディスクにスワップアウト（ページアウト）することができる。実行中プログラムやそのデータのいかなる部分も、対応するプロセスを実行するにあたって物理メモリ上に存在する必要はない。しかし、プロセスがディスク上のコードやデータを必要としたとき（対応する仮想アドレスにアクセスしようとしたとき）、実行が中断されてページングとして知られている方法でその内容が物理メモリに移動される。
プロセスの状態遷移.
マルチタスクが可能なOSのカーネルは、個々のプロセスの状態を保持する必要がある。この状態の名称は標準化されていないが、どのOSでも似たような機能を持っている。
以下の典型的なプロセス状態は多くのコンピュータシステム上で見られる。これらの状態のほとんどで、プロセスはメインメモリ上に存在する。
生成.
走行可能.
走行中.
ブロック状態.
終了状態.
その他のプロセス状態.