プロセス管理
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/12/03 16:19 UTC 版)
プロセス管理(プロセスかんり)とは、オペレーティングシステムの主にカーネルの重要な機能の一つで、プロセスの生成・実行・消滅を管理することである。プロセス間通信や排他制御もプロセス管理の役割である。また、プロセスへのリソースの割り当てを制御する機構でもある。
- 1 プロセス管理とは
- 2 プロセス管理の概要
プロセス管理
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/09/16 14:38 UTC 版)
詳細は「プロセス管理」を参照 カーネルの主な仕事はアプリケーションの実行を許可し、ハードウェア抽象化などの機能によってそれをサポートすることである。 プロセスは、アプリケーションがアクセスできるメモリの範囲を定義する。カーネルのプロセス管理は、ハードウェアの持つメモリ保護機構を考慮しなければならない。 カーネルはアプリケーションを実行するためアドレス空間を設定し、アプリケーションのコードを含むファイルをメモリにロードし、プログラムのためのコールスタックを設定し、そのプログラムの所定の位置に制御を渡すことで実行を開始する。 マルチタスク可能なカーネルは、ユーザーから見て実際にそのコンピュータが同時実行できるプロセス数よりも、多数のプロセスが同時並行して実行されているかのように見せかける。一般にシステムが同時並行して実行できるプロセス数は、そのシステムの持つCPU数に等しい(同時マルチスレッディングをサポートしている場合はその限りではない)。 プリエンプティブ・マルチタスクシステムでは、カーネルは各プログラムにタイムスライス(そのプログラムがCPU上で実行される連続時間)を与え、プロセスからプロセスへと高速に切り換えていくので、ユーザーから見ればそれらのプロセスが同時並行して実行されているように見えるのである。カーネルは次に実行すべきプロセスを決定し、タイムスライスの長さを決定するスケジューリングアルゴリズムを持つ。一般にプロセスには優先度が設定される。カーネルはそれらのプロセス間の通信手段も提供する。これはプロセス間通信 (IPC) と呼ばれ、パイプ、共有メモリ、メッセージ、RPC、ソフトウェア割り込みなどがある。 他に協調型マルチタスクもあり、各プロセスは自らカーネルに制御を戻すまで割り込まれずに実行を続けることができる。制御をカーネルに戻すことを "yielding" と呼び、プロセス間通信の際や何らかのイベントを待つ際に行われ、そのときにカーネルが別のプロセスを動作させる。古い Windows や Mac OS はこの方式だったが、コンピュータの性能向上に伴ってプリエンプティブ方式に切り換えた。 オペレーティングシステムは、マルチプロセッシング(SMPやNUMA)をサポートすることもある。この場合、複数のプログラムやスレッドが複数のプロセッサ上で動作する。そのようなシステムでカーネルを動作させる場合、「リエントラント(再入可能)」あるいは「割り込み可能」になるよう大幅な改造が必要となる。これはつまり、何か処理をしている最中に他からも要求を受け付けるということである。この改造ができれば、異なるプロセッサ上で動作するプログラムが同時にカーネルを呼び出しても大丈夫になる。カーネルは複数のプロセッサからのメモリアクセスを同期させる方法(スピンロックなど)も提供しなければならない。これはメモリ管理とプロセス管理にまたがる問題である。
※この「プロセス管理」の解説は、「カーネル」の解説の一部です。
「プロセス管理」を含む「カーネル」の記事については、「カーネル」の概要を参照ください。
プロセス管理と同じ種類の言葉
固有名詞の分類
- プロセス管理のページへのリンク