通常、私はuptime
表示される数字を理解しようとしています(そして多くの注文コマンド)。
$ uptime
13:40:52 up 18 days, 2:10, 8 users, load average: 0.20, 0.30, 0.64
ここで、過去1分間のシステムの平均負荷は次のとおりです。0.2。非常に高いレベルでは、この数はサンプル期間中に平均0.2プロセスは生産と見なされます。ジムシステム[2]の場合。
私はプロセスがさまざまな状態にある可能性があることを知っています。しかし、私は3つの主要な状態についてのみしっかり理解しています。
- プロセスがCPUでタスクを実行しています。
- プロセスできるすぐに動作しますが、空きCPUはありません。
- プロセスは、システムの内部または外部で何かが起こるのを待っています。
最初の2つの状態のプロセスが常にシステムプロセスに含まれると確信しているので、最後の状態はより詳細に見なければならない状態だと思います。ジム。システムが最終状態に達するために何かをすることができると想像してください。
- 呼ぶ
sleep()
。 read()
キャッシュにないオープンファイルを呼び出します。read()
誰も何も書かないパイプを呼び出します。accept()
ネットワークソケットを呼び出します。send()
バッファがいっぱいのネットワークソケットを呼び出します。- ディスクにスワップされたプライベートメモリにアクセスしようとします。
- キャッシュに存在せず、ディスクまたはネットワークファイルシステムからロードする必要があるメモリマップファイルにアクセスしようとしました。
- 残念ながら、まだメモリにロードされていないコードセクションに移動します。
私は読んだこの回答インターネットの他のリソースだけでなく、次の用語も見ました。中断のない状態そして邪魔されない睡眠何度もこの状態のプロセスも計算されます。だから私はこれが含まれると仮定しています一部上記の状態のどれですか?確かにすべてではありません。
だから私の主な質問はいつですか?正確にシステムに含まれるプロセスです。ジム?
脚注
[1]: 例えば1000サンプル、200単一プロセス[2]の回数を計算し、他のプロセスは800時間は計算されません。または200プロセスは一度だけ計算され、他のプロセスは計算されません。999移流。わかりました。
[2]:私は使っています。プロセスそしてワイヤー私が理解している限り、スケジューラの観点から大きく変わらないように見えるので、ここでは交換が可能です。私の問題を説明するには、プロセスごとに1つのスレッドしかないシステムについて話しているとします。複数のスレッドを持つプロセスを見て興味深い違いがある場合は注意してください!