プロセスとプロセスイメージの違いは何ですか?
一方には何が含まれ、もう一方には含まれないのですか?特徴的なコンポーネントは何ですか?
これはすべて、プロセス制御構造とメモリ内のプロセスの場所のコンテキスト内にあります。
私が理解しているところでは、プロセスイメージは、実行前にメモリが割り当てられたときに取得されたプロセスのイメージです。これは、マルチタスク時に、カーネルが中断したところからプロセスに再度入る必要があるためです。プロセスが実行中に変更された場合、オペレーティングシステムがプロセスの読み取り専用バージョンを作成し、実行中にそれを使用するように、問題が発生する可能性があります。
プロセスには、イメージ以上のものを含めることができます。これはライブで変化するimage、したがって名前であり、CPUによって実行されます。
単一のプロセスは、算術演算のように、イメージに直接含まれていないCPUへの影響とともに、異なる間隔で複数のイメージを持つことができます。
プログラムがプロセスとしてロードされると、使用可能なアドレス空間を形成する仮想メモリのセクションが割り当てられます。このプロセスイメージ内には、通常、少なくとも4つの要素があります。
プログラムコード(またはテキスト)
実行されるプログラム命令。 「動的ページング」として知られている手順ではなく、プログラムの実行時にプロセッサがプロセスの全体を物理メモリに読み込む必要はないことに注意してください。命令の次のブロックは必要に応じてロードされ、プロセス間で共有できます。
プログラムデータ
外部グローバル変数および静的変数を含む初期化された変数、初期化されていない変数(Unix派生システムではbss領域として知られている)として区別できます。デフォルトでは、データブロックはプロセス間で共有されません。
スタック
プロセスには通常、ユーザーモード用のユーザースタックとカーネルモード用のカーネルスタックを含む、少なくとも2つの後入れ先出し(LIFO)スタックがあります。
プロセス制御ブロック
オペレーティングシステムがプロセスを制御するために必要な情報。