Linuxのプロセスの概要

  
Linuxの各プロセスはtask_structデータ構造で記述されていますLinuxでは、tasks
(task)とprocess
(process)は2つの同じ用語で、task_structは実際にはいわゆる「プロセス制御ブロック」はPCBです。 Task_structはプロセスのすべての情報を保持し、システムがプロセスを制御するための唯一の手段であり、最も効果的な手段です。
Linux 2.4では、Linuxは新しく作成された各プロセスにtask_struct構造体を動的に割り当てます。システムが許可する最大プロセス数は、マシンが所有する物理メモリのサイズによって決まりますたとえば、IA32アーキテクチャでは、512Mメモリマシンは最大32Kのプロセスを持つことができます。以前のバージョンは大幅に改善されました。
Linuxはマルチプロセッサ(SMP)をサポートしているため、システムで複数のCPUを使用できます。Linuxをマルチプロセッサオペレーティングシステムとして使用する場合、システムで使用できるCPUの最大数は32です。 。明らかに、Linuxがスタンドアロンのオペレーティングシステムとして使用されている場合、システム内にはCPUが1つしかありません。
他のオペレーティングシステムと同様に、Linuxも2つのプロセスをサポートしています。通常のプロセスとリアルタイムプロセスです。リアルタイムプロセスは、外部イベントへの非常に迅速な対応を必要とする緊急度がありますが、通常のプロセスはそうではありません。そのため、スケジューラは2つのプロセスを別々に扱う必要があります通常、リアルタイムプロセスは通常のプロセスよりも高速に実行されます。これら2つのプロセスの違いはtask_structデータ構造にも反映されています。
つまり、プロセスのすべての情報を含むtask_structデータ構造は非常に大きいですが、データ構造自体はそれほど複雑ではありません。 >
·プロセスの状態<状態:

·スケジュール情報

·識別子)

·プロセス通信情報(IPC:プロセス間通信)

·時間とタイマー

·プロセスリンク情報(リンク)
&·ファイルシステム情報(ファイルシステム)

·仮想メモリ情報(仮想メモリ)
ページ管理情報(page)

·対称型マルチプロセッサ(SMP)情報

·プロセッサ固有のコンテキスト(プロセッサ固有のコンテキスト)

·その他の情報

以下にtask_struct構造体を詳細に説明します。
Copyright © Windowsの知識 All Rights Reserved