제 목표는 제온 파이 코 프로세서에 1ms 지연을 삽입하는 것이었지만 결과가 9 밀리미터 차이가났습니다. 그래서, 제온 호스트 컴퓨터와 파이 코 프로세서를 사용하여 타이머 해상도를 찾으려고 시도했습니다. 호스트에서 다음 프로그램을 실행제온 파이 타이머 해상도
#include <stdio.h>
#include <time.h>
#include <sys/time.h>
int main()
{
struct timespec tim, tim2;
tim.tv_sec = 0;
tim.tv_nsec = 100000;
struct timeval tv;
double temp_2=0;
int i =0;
for (i=0;i<1000;i++)
{
gettimeofday(&tv, NULL);
double t1=tv.tv_sec+(tv.tv_usec/1000000.0);
nanosleep(&tim , NULL);
gettimeofday(&tv, NULL);
double t2=tv.tv_sec+(tv.tv_usec/1000000.0);
temp_2+=(t2-t1);
}
printf("Nano sleep successfull %lf\n",temp_2/1000);
return 0;
}
: 나는 다음과 같은 코드를 실행
나노 잠 성공적인 0.000155
은 제온 파이 코 프로세서에서 실행 ./a.out :
. /nsleep_mic 나노 수면 성공 0.009 998
soo 제온 파이에서 거의 90 % 오류 대기가 발생합니다.
- 왜 이러한 오류 대기가 발생합니까?
- 1ms의 수면 시간을 원한다면 어떻게 해결할 수 있습니까?