실행 중일 때 일정량의 CPU를 사용해야하는 C 코드 (Linux)를 작성 중입니다. 나는 특정 CPU 임계 값에 도달했을 때 특정 동작을 트리거하는 실험을 수행하고 있습니다. 따라서 사용률이 특정 임계 값에 도달하면 실험을 완료 할 때까지 30 초 동안 그 상태로 유지해야합니다. top 명령을 사용하여 CPU 사용률을 모니터링하고 있습니다.CPU 사용률 증가 및 C 코드를 사용하여 특정 수준으로 유지
내 질문은 - 입니다. 1. CPU 사용률을 가능한 한 결정적인 방식으로 증가 시키려면 어떻게합니까? 2. 임계 값에 도달하면 미리 정의 된 시간 동안 해당 수준에서 유지하는 방법이 있습니까? 상부 명령
샘플 출력 (9 열은 "상부"프로세스가 사용하는 CPU이다) - 19,304 0 5,448 1,212 808 16 ABCDE R 0.2 0.0 0 위 00.06 가기
마찬가지로, I는 모양 내 바이너리의 활용도를 보여주는 상단의 줄에.
도움을 주시면 감사하겠습니다. 또한 세부 정보가 필요한 경우 알려 주시기 바랍니다.
감사합니다.
편집 : 다음 코드 줄을 사용하면 CPU 사용률을 매우 잘 제어 할 수 있습니다. 다음과 같은 경우에는 50 % 이상으로 유지하고 50 % 미만으로 유지하는 두 가지 옵션이 있습니다. 시행 착오 후에 주어진 휴면 값으로 내려 앉았다.
endwait = clock() + (seconds * CLOCKS_PER_SEC);
while(clock() < endwait) {}
if (cpu_utilization > 50)
usleep(250000);
else
usleep(700000);
희망이 있습니다.
슬립 루프와 슬립 루프, 슬립 루프, 슬립 루프, 통화 중 루프 등을 조합하여 원하는 CPU 사용률을 달성하십시오. –
busy 루프는 분명히보고 된 CPU 사용량을 최소한으로 유지하지만, CPU를 사용중인 상태로 유지하기 위해 일부 정렬되지 않은 메모리 액세스를 throw 할 수 있습니다. –