ベンチマークを提供するプログラムがありますが、OS に依存せず、CPU 周波数の読み取り方法がわかりません。テスト プログラムはスクリプトによって実行されます。CPU 周波数を指定すると、プログラムは操作のスループットを計算できます。
現在の CPU 周波数 (最も正確な読み取りのため) を提供しようと思いましたが、その値は root に対しては読み取り専用で、他のユーザーにはアクセスできないようです。
$ ls -Al /sys/devices/system/cpu/cpu0/cpufreq/
total 0
-r--r--r-- 1 root root 4096 Jan 27 23:19 affected_cpus
-r-------- 1 root root 4096 Jan 27 23:19 cpuinfo_cur_freq
-r--r--r-- 1 root root 4096 Jan 27 23:19 cpuinfo_max_freq
-r--r--r-- 1 root root 4096 Jan 27 23:19 cpuinfo_min_freq
...
-rw-r--r-- 1 root root 4096 Jan 27 23:19 scaling_max_freq
-rw-r--r-- 1 root root 4096 Jan 27 23:19 scaling_min_freq
-rw-r--r-- 1 root root 4096 Jan 27 23:19 scaling_setspeed
としてls -l
ショー、cpuinfo_cur_freq
特定のACLを持つ唯一のオブジェクトです。他のエントリはほとんど0444
(0644
いくつかのための)。
現在の CPU 周波数が root には読み取り専用で、他のユーザーにはアクセスできないのはなぜですか?
答え1
読めるはずです
scaling_cur_freq
質問に答えるには:
読むと
cpuinfo_cur_freq
ハードウェアと直接通信するか、実装によっては、明らかに特権なしでは許可されないファームウェアと通信します。