5

このモデルに基づいて状態の変化を監視するプロセス監視機能を備えたC++アプリケーションを開発しています:http://www.macdesign.net/capella/it4813/images/stallings-Linux_process-thread_states-f4.18.png

ただし、/ proc / pid / statusは、「準備完了」状態と「実行中」状態の両方を「実行中」に結合するため、プロセスが実際にこれらの状態のどれにあるかを確認する方法がわかりません。誰でもできますか私がこれをどのように発見するかについて何か提案を提供しますか?

4

1 に答える 1

2

質問は不正です。単一のCPUでは、定義上、監視プロセスにCPUがあるため、文字通り「実行中」の状態のプロセスを確認することはできません。プロセス遷移に対するきめ細かいロギング制御が本当に必要な場合は、カーネルでそれを行う必要があります(または、少なくともカーネル内のサポートが必要です。ここで役立つツールについては、lttngまたはsystemtapを参照してください)。ユーザースペースからCPU使用率を追跡するためのツールは、カーネルによってすでに追跡されている合計使用数を使用するか(たとえば/usr/bin/time)、プロセステーブルを定期的にサンプリングすることによって(ブートチャートはこのように機能します)、より粗くなります。

于 2012-10-05T21:11:27.247 に答える