ホームページ  >  記事  >  運用・保守  >  Linuxプロセスの状態は何ですか?

Linuxプロセスの状態は何ですか?

青灯夜游
青灯夜游オリジナル
2022-04-12 19:33:1412888ブラウズ

1. 実行可能状態、2. 割り込み可能待機状態、3. 割り込み不可待機状態、4. 停止状態、5. アボート状態の 5 つの状態があります。 「実行可能状態」の状態値は TASK_RUNNING です。この時点で、プログラムは実行キューに置かれ、実行可能状態にあります。プロセッサの使用権を取得すると、実行状態に入ることができます。州。

Linuxプロセスの状態は何ですか?

#このチュートリアルの動作環境: linux5.9.8 システム、Dell G3 コンピューター。

オペレーティング システムによって定義され、オペレーティング システムによって制御される特別なデータ構造インスタンスは、プロセスと呼ばれます。ユーザー コードに接続されており、コードの実行に必要な独立したメモリ領域があり、割り当てられたプロセッサ タイム スライスを使用してスケジューラのスケジュールに従って実行されます。

Linux プロセスの 5 つの状態

Linux システムでは、プロセスが作成された後、システムは次の 5 つの状態を持つことができます。 : 。プロセスの現在の状態は、プロセス制御ブロックの state メンバーに記録されます。

準備完了状態と実行状態(実行可能状態)

準備完了状態の状態フラグstateの値はTASK_RUNNINGです。この時点で、プログラムは実行キューに配置され、実行する準備ができています。プロセッサーの使用権を取得すると、プロセッサーは実行状態に入ることができます。

プロセスがプロセッサを取得して実行すると、state の値は TASK_RUNNING のままで変化しませんが、Linux は、現在実行中のタスクを指すために特別に使用されるポインタ current をポイントして、タスクが実行中であることを示します。実行中のプロセス。

割り込み待機状態

ステータスフラグ状態の値は TASK_INTERRUPTIBL です。この時点では、プロセスは要求したリソースを取得していないため、待機状態になります。リソースが利用可能になるか、ウェイクアップ信号があると、プロセスはすぐに待機を終了し、準備完了状態に入ります。

無中断待機状態

ステータス フラグ状態の値は TASK_UNINTERRUPTIBL です。この時点で、プロセスもリソースを待機しています。リソースが利用可能になると、プロセスはすぐに準備完了状態になります。この待機状態と割り込み可能な待機状態の違いは、TASK_UNINTERRUPTIBL 状態のプロセスはセマフォや割り込みによって起動できず、適用されるリソースが有効な場合にのみ起動できることです。

この状態は、カーネルの特定のシナリオで使用されます。たとえば、プロセスがディスクの読み取りと書き込みを行う必要があり、データが DMA のメモリにコピーされているとき、プロセスがスリープ状態になっている場合などです。この時点で中断されると (強制終了信号など)、問題が発生する可能性が高くなります。そのため、この時点ではプロセスは中断できない状態になります。

停止状態

ステータス フラグ状態の値は TASK_STOPPED です。プロセスは、SIGSTOP シグナルを受信すると実行状態から停止状態に入り、SIGCONT シグナルを受信すると実行状態に戻ります。この状態は主にプログラムのデバッグに使用され、「一時停止状態」または「サスペンド状態」とも呼ばれます。

ステータスの中止

ステータス フラグ状態の値は TASK_DEAD です。プロセスが何らかの理由で実行を停止し、task_struct 構造体 (およびいくつかのリソース) を除いて、プロセスによって占有されていたすべてのリソースがリサイクルされ、システムはこれに注意を払わなくなるため、この状態は「状態」とも呼ばれます。 「ゾンビ状態」となり、プロセスはゾンビプロセスになります。

プロセスのライフサイクル全体を通じて、プロセスは 5 つの状態の間で遷移する可能性があります。 Linux プロセスの 5 つの状態間の変換関係を次の図に示します。

Linuxプロセスの状態は何ですか?

関連する推奨事項: 「Linux ビデオ チュートリアル

以上がLinuxプロセスの状態は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。