プロセス
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/04/18 03:12 UTC 版)
マルチタスクOSにおけるプロセス管理
マルチタスクオペレーティングシステムでは多くのプロセスを並行実行するためにプロセス間でコンテキストスイッチを行うことがある。ただし1つのシングルコアCPUにおいては、ある一時点にひとつのプロセスしか実行できない(ハードウェアマルチスレッディングなどの技術を使っていない場合[注 1])。
主プログラムを1つのプロセスとし、それ以外を並列に動作するプロセス群として独立させ、非同期に動作するサブルーチンとして実装することもある。プロセスはリソースを所有しており、メモリ上のプログラムの「イメージ」はそのようなリソースの1つと言える。マルチプロセッシングシステムでは多くのプロセスが同じリエントラントなプログラムのメモリ上のコピーを共有しているが、プログラムの「イメージ」は個々のプロセスが所有していると言える(多重仮想記憶)。
組み込みシステムのオペレーティングシステムでは、プロセスをタスクと呼ぶことが多い。「プロセス」(あるいはタスク)という用語は「時間を占める何か」であり、対照的に「メモリ」は「空間を占める何か」である[注 2]。また、ジョブがユーザーから見た処理の単位であるのに対し、「プロセス」は、コンピュータ側から見た処理の単位である。
以上の説明はオペレーティングシステムに管理されるプロセスにも、プロセス計算で定義されるプロセスにも当てはまる。
プロセスが中断された状態ならば、ディスクにスワップアウトすることができるが、仮想記憶システムではこれは透過的であって、あるメモリブロックの内容がディスク上にあってメモリ上にないという状態は正常な状態である。動作中プロセスの「未使用」部分もディスクにスワップアウト(ページアウト)することができる。実行中プログラムやそのデータのいかなる部分も、対応するプロセスを実行するにあたって物理メモリ上に存在する必要はない。しかし、プロセスがディスク上のコードやデータを必要としたとき(対応する仮想アドレスにアクセスしようとしたとき)、実行が中断されてページングとして知られている方法でその内容が物理メモリに移動される。
注釈
- ^ 最近のマルチコアのプロセッサでは、2つ以上のプロセスを一度に実行することができる。インテルのハイパースレッディング・テクノロジーで使われている同時マルチスレッディングは複数プロセスまたは複数スレッドの同時実行をシミュレートできる。
- ^ タスクという語は、タスク=スレッドの意味で使われることもあり、歴史的にはプロセスという語より適用範囲が広い。
出典
- ^ a b c d SILBERSCHATZ, Abraham; CAGNE, Greg, GALVIN, Peter Baer (2004). “Chapter 4 - Processes”. Operating system concepts with Java (Sixth Edition ed.). John Wiley & Sons, Inc.. ISBN 0-471-48905-0
- ^ Vahalia, Uresh (1996). “2 - The Process and the Kernel”. UNIX Internals - The New Frontiers. Prentice-Hall Inc.. ISBN 0-13-101908-2
- ^ Stallings, William (2005). Operating Systems: internals and design principles (5th edition). Prentice Hall. ISBN 0-13-127837-1
- Particularly chapter 3, section 3.2, "process states", including figure 3.9 "process state transition with suspend states"
- ^ 村井純、井上尚司、砂原秀樹『プロフェッショナルUNIX』株式会社アスキー、1986年1月15日、52頁。ISBN 4-87148-184-0。
プロセスと同じ種類の言葉
- プロセスのページへのリンク