プロセスとは、情報処理においてプログラムの動作中のインスタンスを意味し、全ての変数やその他の状態を含む。マルチタスクオペレーティングシステムでは多くのプロセスを並列実行するためにプロセス間でコンテキストスイッチを行うことがある。スレッドとは異なり、OSから記憶領域やディスク資源を割り当てられて、処理を実行する。
組み込みシステムのオペレーティングシステムでは、プロセスをタスクと呼ぶことが多い。「プロセス」(あるいはタスク)という用語は「時間を占める何か」であり、対照的に「メモリ」は「空間を占める何か」である。タスクという語は、タスク=スレッドの意味で使われることもあり、プロセスという語より適用範囲が広い。また、ジョブがユーザーから見た処理の単位であるのに対し、「プロセス」は、コンピュータ側から見た処理の単位。
ひとつのCPUスレッドにおいてはある一時点にひとつのプロセスしか実行できない。Athlon 64 X2のようなデュアルコアのプロセッサでは、2つのプロセスを一度に実行することができる。インテルのPentium 4での同時マルチスレッディングはそれとは異なる設計である。マルチスレッドでないプロセスに関して言えば、メモリレイテンシを隠蔽することによってコンテキストスイッチを高速化する効果が期待できる。
主プログラムを1つのプロセスとし、それ以外を並列に動作するプロセス群として独立させ、非同期に動作するサブルーチンとして実装することもある。プロセスはリソースを所有しており、メモリ上のプログラムの「イメージ」はそのようなリソースの1つと言える。マルチプロセッシングシステムでは多くのプロセスが同じリエントラントなプログラムのメモリ上のコピーを共有しているが、プログラムの「イメージ」は個々のプロセスが所有していると言える(多重仮想記憶)。
以上の説明はオペレーティングシステムに管理されるプロセスにも、プロセス代数で定義されるプロセスにも当てはまる。
新規営業用、企業情報リスト作成ツールの決定版!顧客開拓エージェント【無料版絶賛配布中】
タグ: プロセス