Я пишу код на C (в Linux), который должен потреблять определенное количество процессора, когда он работает. Я провожу эксперимент, в котором я запускаю определенные действия при достижении определенного порога процессора. Итак, когда использование достигает определенного порога, мне нужно держать его в этом состоянии, скажем, 30 секунд, пока я не закончу свои эксперименты. Я наблюдаю за использованием ЦП с помощью команды top.
Итак, мои вопросы -
1. Как мне увеличить использование ЦП до заданного значения (если возможно, детерминированным способом)?
2. Как только я доберусь до порога, есть ли способ сохранить его на этом уровне в течение заранее определенного времени?
Пример вывода команды top (9-й столбец - CPU, используемый процессом top) -
19304 abcde 16 0 5448 1212 808 R 0,2 0,0 0: 00,06 top
Как и выше, я посмотрю на строку сверху, которая показывает использование моего двоичного файла.
Любая помощь будет оценена. Кроме того, дайте мне знать, если вам нужно больше деталей.
Спасибо!
Edit:
Следующие строки кода позволили мне достаточно хорошо контролировать загрузку процессора - в следующем случае у меня есть 2 варианта - держать его выше 50% и держать ниже 50% - после некоторой проб и ошибок я установил заданные значения срабатывания .
endwait = clock() + ( seconds * CLOCKS_PER_SEC );
while( clock() < endwait ) {}
if (cpu_utilization > 50)
usleep(250000);
else
usleep(700000);
Надеюсь, это поможет!