Linuxプロセスの基本的な性質

Linuxシステム上のすべての実行中のタスクは、プロセスと呼ばれることができ、プロセス、各ユーザーのタスク、各システム管理、できるように、その共有のシステムリソースへのLinuxの時分割管理方法ですべてのタスク。

定義されたプロセス:
教科書の概念:プログラムのインスタンスの実装は、プログラムが実行されています。
ビューのカーネルポイント(CPU時間、メモリ)エンティティは、システムリソースの割り当てとして作用します。

四つの要素の1工程

  • プログラムのプログラムコードが実行されるがありました。
  • これは、専用のシステム・スタックスペースがあります。
  • Task_struckはプロセス制御ブロック(PCB)を達成するための構造を有しています。
  • これは、別々のストレージスペースがあります。

2.関係と分類プロセス

Linuxシステムのすべてのプロセスが相互に関係しています。

Linuxカーネルは、プロセスが0の番号とプロセスが1つのプロセス番号、プロセス1つのプロセスは、初期化プロセスINITある番号シェルプログラムの実行処理を開始するにはLinuxのすべてのプロセスは、それから誘導される生成しますシェルプロセスが子プロセスである、あなたはこのようにプロセスツリーを形成し、ユーザーのプロセスを開始するために、独自の子プロセスを起動することができ、各プロセスは、ツリー内のノードで、ツリーのルートは、初期化プロセスの初期化です。
ここに画像を挿入説明
プロセスの間に親族の図面によって説明することができ、典型的には、以下のセクションを含みます。

  • p_opptr(祖先、元の親):プロセス記述子を作成するプロセスにP点、親はINITプロセス記述子を指し、存在しない場合。ユーザは、バックグラウンドプロセスシェルとシェルの出口を開始すると、バックグラウンドプロセスは、サブinitプロセスになるであろう。
  • P_ PPTR(親、親):プロセスの点親、一般的、かつ一貫したopptr P_の値は、異なっていてもよいです。
  • P_ CPTR(子プロセス、子):プロセス記述子に最年少の子プロセスのポイント、すなわち記述子を作成するためのプロセスで処理します。
  • P_ ysptr(当然の弟、若い兄弟):親プロセスによって作成されたプロセスを作成するプロセスのこの時点の後。
  • P_ osptr(当然の兄、年上の兄弟):このプロセスを作成するために、親プロセスによって作成されたプロセスの前にポイント。

3.プロセスを入力

Linuxオペレーティングシステムは、通常のプロセスの3つの異なる種類が含まれています。

  • 対話型プロセス:両方がフォアグラウンドでプロセスを開始するには、シェルで実行することができ、それはまた、バックグラウンドで実行することができます。
  • バッチ処理:非接触と端末は、プロセスシーケンスです。
  • デーモン:バックグラウンドでのブートのLinuxシステムプロセスと実行のスタート。

状態の4工程

そのライフサイクル内の処理は次の状態であってもよく、これらの状態は、これらの状態を定義する状態のドメインtask_struct構造内の異なるキーワードを使用して、相互に排他的です。

  • Runnableを(TASK_RUNNING):プロセッサ集約型の実行または実行する準備ができて。
  • 割り込み待ち状態(TASK_INTERRUPTIBLE):プロセスは等、待機状態を終了するとき、特定の条件が真になる場合、懸濁又は睡眠れる:このような信号を通過させるようなハードウェア割り込み、プロセスが解放されるのを待ってシステムリソース、終了処理の後に待ち状態のTASK_RUNNING状態に戻ります。
  • 無停電待機状態(TASK_無停電)とウェイト差信号が受信されると同様に、中断することができ、待機状態を終了することができません。
  • サスペンド状態(TASK_STOPPING):プロセスの実行は、プロセスがSIGSTOP、SIGTTINまたはSIGTTOU信号を受信した場合、一般的に、懸濁状態をサスペンドされています。プロセスが別のプロセスを監視している場合は、任意の信号はTASK_STOPPEN状態にこのプロセスを置くことができます。
  • ゾンビ(TASK_ZOMBIE):実装プロセスが終了しているが、親プロセスは、コアは、親プロセスはまた、データを必要とするかもしれないので、対応するデータが、プロセス中に廃棄することができない含む場合にウェイトに対応する情報のリターンコールを、使用されていません。

いくつかの状態の間の相互変換の過程ではなく、ユーザーに対して透過的で、このハンドオーバープロセスは、多くの場合、スケジューリング処理で参照されます。

プロセスが実行してエンティティを変更する処理は、プロセスは、プログラムカウンタとプロセッサ・レジスタのすべてを含んで、それがスタックに格納されている(例えば、サブルーチン)引数、リターンアドレス及び変数などの一時的なデータ。
プログラム、またはプロセスの現在の実装は、現在のプロセッサのアクティブ状態を含んでいます。マルチプロセッシング・オペレーティング・システムでは、プロセスは、独立した権利と義務を持っています。システムは、プロセスの他の部分に影響を与えずに、プロセスがクラッシュしている場合。
各プロセスは、いくつかの通信機構を介して、それらの間の接触に、独自の仮想アドレス空間を実行しています。

公開された71元の記事 ウォンの賞賛131 ・は 20000 +を見て

おすすめ

転載: blog.csdn.net/qq_43239560/article/details/102830743