C状態とS状態の違いは何ですか?

C状態とS状態の違いは何ですか?

Linuxの電源管理文書を見ていますが、CとSの状態が混乱しています。

  • C状態はに定義されています/sys/devices/system/cpux/cpuidle/。私が理解したのは、アイドルレベルに応じてCPUを別のスリープ状態に切り替えるために使用されます。
  • Sステータスインターフェイスはステータスであり、/sys/power/stateストップ、スタンバイ、メモリなどのさまざまなスリープ状態を表示できます。説明を読んで、彼らはC状態でやろうとしているのと同じことをしようとします。

これは私の質問を懇願します:それらの違いは何ですか?システムがアイドル状態になるのを防ぐには、どのパラメータを設定する必要がありますか? Cステータスの無効化パラメータを設定しましたが/sys/devices/system/cpux/cpuidle/(観察のため)、携帯電話がアイドル状態になるのを観察し続けることができますsystrace

ベストアンサー1

S状態はグローバルACPIステータス:システム全体の電源状態を説明します。このタイプの状態の変更は通常、ユーザーが要求したり、少なくともユーザーが構成したりできます(例えばタイムアウト、バッテリー不足待機など)。

C状態はプロセッサの状態:個々のCPUパッケージ(またはコア)の電源状態を説明します。このタイプの状態の変更は通常自動的に行われ、システムの全体的な状態には影響しません。 CPUは、システムの残りの部分を介さずに省電力モードに入り、再び目を覚ます可能性があります。

ほとんどの場合(特に携帯電話の場合)、C状態遷移を無効にするのが便利かどうかはわかりません。 S状態遷移を無効にすることもできます。 「アイドル」状態はソフトウェアで実装正式な ACPI 状態ではなく、ハードウェア制御が見つかりません。 S状態遷移はソフトウェアによって制御されます。例えば、システム制御システムではそこで睡眠を無効にする;携帯電話でスリープモードを無効にする方法がわかりません。

おすすめ記事