Linuxシステムにおけるプロセス管理の詳細な説明

Linuxシステムにおけるプロセス管理の詳細な説明

1. プロセスとスレッドの概念

出典: Baidu 百科事典:

プロセスとは、コンピュータ内のプログラムが特定のデータ セットに対して行う操作です。システム内のリソース割り当てとスケジュールの基本単位であり、オペレーティング システム構造の基礎となります。 現代のスレッド指向のコンピュータ アーキテクチャでは、プロセスはスレッドのコンテナーです。プログラムは、命令、データ、およびそれらの構成形式の記述であり、プロセスはプログラムの実体です。これは、特定のデータ セットに対するコンピューターのプログラムの操作です。システムのリソース割り当てとスケジュールの基本単位であり、オペレーティング システム構造の基礎です。プログラムは、命令、データ、およびそれらの構成形式の記述であり、プロセスはプログラムの実体です。

スレッドは、オペレーティング システムが操作をスケジュールできる最小単位です。これはプロセス内に含まれており、プロセスの実際の操作単位です。スレッドとは、プロセス内の単一の連続した制御フローを指します。プロセス内で複数のスレッドを同時に実行することができ、各スレッドは異なるタスクを並行して実行します。

2. プロセス管理とは何ですか?

プロセスとは正確には何でしょうか?

プロセスとは、実行中のプログラムまたはコマンドです。各プロセスは実行中のエンティティであり、独自のアドレス空間を持ち、特定のシステム リソースを占有します。

ではプログラムとは何でしょうか?
プログラムとは、特定の目標を達成したり、特定の問題を解決したりするために、人間がコンピューター言語を使用して記述したコードの集合です。

別の言い方をしましょう:

プログラムとは、特定の機能を実現できる、人間がコンピューター言語で記述した実行可能コードの集合です。プロセスとは現在実行中のプログラムです。プログラムが実行されると、実行者の権限と属性、およびプログラム コードがメモリにロードされます。オペレーティング システムはプロセスに ID 番号を割り当てます。これを PID (プロセス ID) と呼びます。

3. プロセス管理の役割

サーバーの健全性状態を判断する: 運用保守エンジニアの主な仕事は、サーバーの安全で安定した動作を確保することです。理想的な状況は、サーバー上で問題が発生した場合、サーバーがクラッシュしたりサービスが停止したりする前に、人間の介入によって問題を解決できることです。プロセス管理の主なタスクは、サーバーが現在正常に動作しているかどうか、および人間の介入が必要かどうかを判断することです。サーバーの CPU 使用率とメモリ使用量が高すぎる場合、問題を解決するには人による介入が必要になります。

システム内のすべてのプロセスを表示する: システム内で実行中のすべてのプロセスを表示する必要があります。これらのプロセスを通じて、システム内でどのサービスが実行されているか、また不正なサービスが実行されているかどうかを確認できます。

プロセスの強制終了: これは、プロセス管理で最も一般的に使用されない方法です。サービスを停止する必要がある場合は、コマンドを適切にシャットダウンして停止します (たとえば、 apacheサービスは、 service httpd stopでシャットダウンできます)。プロセスを終了する正しい方法が失敗した場合にのみ、 killコマンドを使用してプロセスを終了させることを検討します (あなたはキラーではないので、kill を使用してすべてのプロセスを終了しないでください。そうしないと、サーバーが簡単にクラッシュします)

4. Linuxプロセスのさまざまな状態

D : 復帰できないスリープ状態。通常はI/O状況で使用されます。

R : プロセスは実行中です。

S : プロセスはスリープ モードにあり、起動できます。

T : 停止状態。バックグラウンドで一時停止されているか、プロセスがデバッグ状態にある可能性があります。

W : メモリ相互作用状態 (2.6 カーネル以降では無効)。

X : デッドプロセス(表示されないはずです)。

Z : ゾンビプロセス。プロセスは終了しましたが、その一部はまだメモリ内に残っています。

< : 優先度が高い (次のステータスは BSD 形式で表示されます)。

N : 優先度が低い。

L : メモリにロックされました。

s : サブプロセスを含めます。

l : マルチスレッド(小文字の L)。

+ : バックグラウンドで。

5. プロセスとスレッドの関係

(1)スレッドとプロセスの関係

たとえば、コンピューターは同時に 200 個のプロセスを実行しています。

スレッドとプロセスの概念: 各プロセスには少なくとも 1 つのスレッドが含まれており、これらのスレッドはプロセスのリソース空間を共有しています。スレッドが変更されると、CPU 実行プロセスのみが変更され、プロセスが所有するリソースは変更されません。同様に、プログラムには少なくとも 1 つのプロセスが含まれます。プロセス内で操作を実行するための最小単位であり、プロセッサ スケジューリングを実行するための基本単位でもあります。各プロセスには、独自のアドレス空間と、メモリ、I/O、CPU などのリソースがあります。同じプロセス内のスレッドは、プロセスのアドレス空間を共有します。では、他のプロセスのアドレス空間を使用できるのでしょうか。もちろん、これは許可されていません。プロセスは独立しているため、プロセスがクラッシュしても、保護モードの他のプロセスには影響しません。システムにおけるリソース割り当ての基本単位、操作スケジュールの基本単位、同時実行の単位。

同じプロセス内の 2 つのスケジューリングを比較すると、スレッドの切り替えによってプロセスの切り替えは発生しません。
あるプロセスのスレッドが別のスレッドのプロセスに切り替わると、プロセス切り替えが発生します。同時実行プロセスは同時に実行でき、プロセス内のスレッドも同時に実行できます。所有されているリソース 一般的に、スレッドは独自のリソースを所有しませんが、独自のプロセス内のリソースにアクセスできます。たとえば、プロセスによって開かれたファイルは、プロセス内の他のスレッドによって共有される可能性があります。

(2)まとめ

簡単にまとめてみましょう:

プロセス: システムで実行されているアプリケーションを指します。プログラムが実行されると、プロセスになります。プロセスは、リソース割り当ての最小単位です。スレッド: システムによってプロセッサ時間リソースを割り当てるための基本単位、またはプロセス内で独立して実行される単位実行フロー。スレッドは、プログラム実行の最小単位です。

Linux システムにおけるプロセス管理の詳細な説明に関するこの記事はこれで終わりです。Linux プロセス管理に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Linuxの運用と保守、基本的なプロセス管理、リアルタイム監視と制御
  • Linuxの運用と保守の基本プロセス管理と環境構成分析
  • Linux プロセス管理ツール スーパーバイザーのインストールと設定のチュートリアル

<<:  単一選択折りたたみメニュー機能を実現するCSS

>>:  実務経験7年のフロントエンドスーパーバイザーによる経験共有

推薦する

MySQLで自動作成時間と変更時間を設定する方法の例

この記事では、MySQL の自動作成時刻と変更時刻を設定する方法について説明します。ご参考までに、詳...

CocosCreator Typescriptでテトリスゲームを作る

目次1. はじめに2. 解決すべきいくつかの重要な問題3.最後に書く1. はじめに最近、Cocos ...

MySQL ジョイントインデックス(複合インデックス)の実装

共同インデックスこの記事におけるジョイントインデックスの定義は次のとおりです (MySQL): AL...

ウェブデザインにおける2種類のタブアプリケーション

現在、Web デザインではタブが広く使用されていますが、一般的に次の 2 つのタイプに分けられます。...

Nginx tp3.2.3 404 問題の解決

最近、Apache を nginx に変更しました。TP プロジェクトを実行に移すと、404 エラー...

vue-cropperプラグインは、画像キャプチャとアップロードコンポーネントのカプセル化を実現します。

vue-cropperプラグインをベースにした画像キャプチャとアップロードコンポーネントをカプセル...

DockerにFastDFSをインストールする方法

画像をプルする docker pull season/fastdfs:1.2トラッカーを開始 doc...

jQueryはシンプルなボタンの色の変更を実装します

HTML と CSS で、ボタンの色を設定したいとします。 目的の効果は得られますが、プロセスはかな...

無料のパブリック STUN サーバー

無料のパブリック STUN サーバーSIP 端末がプライベート IP アドレスを使用する場合、スタン...

CSSフロートの特性についての簡単な説明

この記事では、CSS フロートの特徴を紹介します。皆さんと共有し、自分用のメモとして残したいと思いま...

一般的な HBase 運用および保守ツール 10 個の概要

概要: HBase には、ユーザーに管理、分析、修復、デバッグ機能を提供するための多くの操作および保...

純粋な CSS3 で実装された三目並べゲーム

操作効果: html <div class="三目並べ"> <...

GIFアニメーション効果を模倣した自動ビデオ再生を実現するWeChatアプレットの例

需要背景:ミニプログラムページに GIF ダイナミック画像を挿入しますが、GIF 画像は通常サイズが...

Baidu の https 認証プロンプト「http サイトを 301 から https サイトにリダイレクトしてください」の解決方法の詳細な説明

最近、ウェブサイトを https アクセスに変換したいのですが、すべて完了した後、Baidu Web...