kernel_taskが何を担当しているのかを知りたいだけです。また、許容される最大RAMおよびCPU使用量はどれくらいですか?
kernel_taskが何を担当しているのかを知りたいだけです。また、許容される最大RAMおよびCPU使用量はどれくらいですか?
回答:
カーネルタスクは、Mach 3.0に基づくオペレーティングシステム/マイクロカーネル全体であるため、特別です。コアハードウェア、タイミング、メッセージパッシング、およびメモリ処理のほとんどを抽象化します。
アクティビティモニターでほとんどの人が気づくのは、kernel_task
入出力(i / o)処理の遅延と計算、およびプロセスとスレッドのスケジューリングオーバーヘッドのすべてのCPU時間を蓄積することです。同様に、ユーザー空間にないすべてのメモリ割り当てを蓄積します。2014年以降のMacでは、このタスクはCPUを抑制するために存在します-プロセッサの温度が高すぎると、カーネルタスクに「作業なし」が割り当てられ、CPUがビジー状態になり、プロセッサがアイドル状態になり、コンピューターが過熱しなくなります。これは、ポータブルラインで特に顕著です。特に、プロセッサを冷却するためのファンや送風機を備えていないMacBookです。Appleは、「カーネルでのプログラミングから離れなければならない理由」で、潜在的なカーネルプログラマーにこれを警告します。 冷却を無効にすると、修復不可能なハードウェアの永続的な損傷が発生します。
要約すると、カーネルプログラミングは大きな責任です。コードがシステムをクラッシュさせたり、他の誰かのファイルやメモリへの不正なユーザーアクセスを提供したり、リモートまたはローカルのルートエクスプロイトを導入したり、不注意によるデータの損失や破損を引き起こさないように、コードを非常に注意深くする必要があります。
再起動後に見ると、最小限のRAMとCPUの必要性で起動し、代わりに他のプログラムが実行されてシステムサービスが必要になったときにのみ成長します。
スリム化するには、不要なポート(WiFi、bluetoothなど)およびアイドル/未使用プログラムをシャットオフします。物事が落ち着かない場合は、再起動を検討して、タスクがスタックしたりメモリがリークしたりしないようにしてください。実際の作業を行っているプログラムがある場合、カーネルはメモリとプロセッサ時間の両方を使用します。他のどのプログラムがこの動作を引き起こしているのかを確認するために開始するのを見てください。カーネルに問題が発生することはめったにありません。パフォーマンスの悪いプログラムであっても、ログアウトして再度ログインしても解決することはできません。kernel_taskは適切にクリーンアップされ、通常はワークロードに必要なリソースのみを使用するように注意します。
Mac OS X内部:システムアプローチ-アミットシン-Googleブックス:
カーネルはタスクとスレッドの抽象化を使用して、その機能をさまざまな実行フローに分割します。カーネルは、スケジューリング、スレッドリーピング、コールアウト管理、ページング、Unix例外処理などのカーネル操作を実行する複数のスレッドを持つ単一のタスク(カーネルタスク)を使用します。したがって、xnuは、Mach、BSD、I / O Kitなどの著しく異なるコンポーネントを含むモノリシックカーネルであり、すべて同じアドレススペースの単一タスクでスレッドのグループとして実行されます。
http://lists.apple.com/archives/darwin-kernel/2010/Sep/msg00014.html:
カーネルタスクは実際のタスクではありません。オペレーティングシステムのコアであるカーネルを表します。それが行うことの大部分は、アプリケーションの直接要求で発生します。メモリの大きなブロックを割り当てたり、ファイルを開いたり閉じたり、ファイルを読み書きしたり、ネットワーク経由でデータをプルしたり、新しいプロセスやスレッドを作成したりするたびに、アプリケーションはシステムコールを実行します。これらの呼び出しにより、カーネルはアプリケーションに対して動作します。その作業の多くはカーネルタスクに請求されますが、間接的ではありますが、実際にはアプリケーションによって実行されています。
カーネルが過度に機能している実際的な理由は、システムのメモリが不足しており、スラッシングが発生していることです。アクティビティモニターの [ メモリ ]タブの下のメモリ負荷グラフを確認して、黄色か赤色かを確認します。
この場合、プロセスをメモリでソートし、その多くを消費するプロセスを終了して、プレッシャーを軽減できます。(たとえば、いくつかのGoogle Chromeヘルパープロセスを強制終了します)