#Linux のプロセスとは何ですか?
プロセスとは、平たく言えば、進行中のプログラム、実行中のプログラムであり、PCB (プロセス制御ブロック) とも呼ばれます。
Linux オペレーティング システムでは、プロセスは次のように記述されます。 task_struct という構造体ですが、この構造体には何が含まれているのでしょうか?
プログラムを実行するには、まず対応する実行可能ファイルをディスクからメモリにロードする必要があることは誰もが知っていますが、では、そのファイルがメモリ内のどこにあるかをどのようにして知ることができるのでしょうか?このとき、プロセス識別子 (pid) と呼ばれるものを通じて見つける必要があります。私たちと同じように、私たちも自分のアイデンティティを表すもの、つまり ID カードを持っています。
プログラムの場所を見つけた後、それを実行したい場合は、対応するコードとそのコードが依存するデータを知る必要があるため、メモリ ポインターが誕生しました。メモリ ポインタは、プログラム コードと対応するデータを指すために使用されます。これでプログラムを実行する準備が整いました。
ただし、プロセスが多く、一般に中央処理装置 (CPU) は 1 つしかないため、多くのプロセスをスムーズに実行するには、プロセス間に実行順序を付ける必要があります。つまり、優先順位です。優先順位を付けた上で複数のプロセスを実装する方がはるかに簡単です。
ただし、CPU は 1 つのプロセスを実行してから次のプロセスを実行するのではなく、1 つのプログラムを一定時間実行した後、次のプロセスを実行します。一定時間実行した後、以降の処理を実行します。このとき問題になるのですが、実行していないプログラムを前の場所から実行し続けたい場合はどうすればよいでしょうか。心配しないでください。シーンは「コンテキスト」で保護されます。
前にも述べたように、プログラムは一定時間実行されてから CPU が次のプログラムを実行しますが、では、CPU がプログラムを実行するまでにどれくらいの時間プログラムを実行すればよいでしょうか?今回は「会計情報」を使って記録します。
さらに、プロセスは実行中に準備完了状態 (R)、割り込み可能なスリープ状態 (S)、割り込み不可のスリープ状態 (D) などのさまざまな状態で表示されるため、「記録」もあります。プロセスのステータス。もちろん、標準入力、標準出力、標準エラー出力といった I/O ステータス情報もあります。
要約すると、プロセスを記述する構造である task_struct には、次の部分が含まれています。
# 識別子: プロセスの ID、つまり pid を記録するために使用されます
##● メモリポインタ : プログラムコードや関連データなどを指す
#● 優先度;#● コンテキスト : CPU 上のプロセスの最後の実行場所を保存
● アカウンティング情報: プロセスが CPU を放棄する必要があるときに記録されます。
#● ステータス: 記録されたプロセス関連のステータス##● I/O ステータス情報;
#● 信号関連情報推奨:
Linux システムの基本チュートリアル
以上がLinuxのプロセスとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。