Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C语言中的cpu频率调整linux API_Linux_Api_Arm_Frequency - Fatal编程技术网

C语言中的cpu频率调整linux API

C语言中的cpu频率调整linux API,linux,api,arm,frequency,Linux,Api,Arm,Frequency,我想在linux(Ubuntu)上的程序中更改cpu(ARM)频率 在C中是否存在cpu频率调整和关闭核心API的问题 如果有的话,API可以处理多核cpu中的每个核心?您可能必须使用/sys和/proc/文件系统,并将其写入到一些文件中,例如/sys/devices/system/cpu/ 我会调查一下他们在做什么 顺便说一句,您可以使用system(3)acpufreq set命令进行分叉 (我不知道ARM处理器在这些方面的特点)在Linux中,有几种方法可以控制频率。您可以使用IA32_P

我想在linux(Ubuntu)上的程序中更改cpu(ARM)频率

在C中是否存在cpu频率调整和关闭核心API的问题


如果有的话,API可以处理多核cpu中的每个核心?

您可能必须使用
/sys
/proc/
文件系统,并将其写入到一些文件中,例如
/sys/devices/system/cpu/

我会调查一下他们在做什么

顺便说一句,您可以使用
system(3)
a
cpufreq set
命令进行分叉


(我不知道ARM处理器在这些方面的特点)

在Linux中,有几种方法可以控制频率。您可以使用IA32_PERF_CTL寄存器设置受支持英特尔处理器的电源状态。但是,您可以使用通过sysfs文件系统导出的cpufreq接口,该文件系统不仅支持Intel CPU

您可以在/sys/devices/system/cpu/cpuX/*中查看可能更改的参数。以下是一些提示:

关闭频率缩放是通过一个调控器完成的,它处理处理器处于不同状态的策略。例如,要获得完整的性能,请执行以下操作:

echo performance > /sys/devices/system/cpu/cpuX/cpufreq/scaling_governor
有多个调控器,您可以在此处看到:

cat /sys/devices/system/cpu/cpuX/cpufreq/scaling_available_governors
因为通过文件系统接口访问它很麻烦。您可以使用libudev访问cpufreqs成员。有关教程,请参见和


关于单独处理每个核心的一个限制。这取决于CPU的支持。有时,两个或多个内核必须以相同的频率运行,这是硬件的一个简单限制。请参阅此以获取答案。

我不明白为什么通过sysfs更改频率会很麻烦。在这里使用libudev库有什么好处。