2
A
답변
5
파이프를 통해 통신하는 두 개의 스레드를 갖는 것이 훨씬 간단합니다. 하나 개의 스레드 할 것이다 (의사 코드)
for(n = 1000; n--;) {
now = clock_gettime(CLOCK_MONOTONIC_RAW);
write(pipe, now);
sleep(1msec); // to make sure that the other thread blocks again on pipe read
}
다른 스레드 할 것이다 :이고
context_switch_times[1000];
while(n = 1000; n--;) {
time = read(pipe);
now = clock_gettime(CLOCK_MONOTONIC_RAW);
context_switch_times[n] = now - time;
}
, 그것은 데이터가 하나 개의 스레드에 의해 파이프에 기록 될 때의 시간 간격을 측정 할 그리고 다른 스레드가 깨어나서 그 데이터를 읽을 시간. context_switch_times
배열의 히스토그램은 컨텍스트 전환 시간의 분포를 보여줍니다.
시간에는 파이프 읽기 및 쓰기 오버 헤드가 포함되어 시간을 얻지 만 컨텍스트 전환 시간이 길다는 것이 좋습니다.
과거에는 Fedora 13 커널 및 실시간 FIFO 스레드를 사용하여 유사한 테스트를 수행했습니다. 내가 얻은 최소 컨텍스트 전환 시간은 4-5 usec 정도였습니다.
3
우리는 커널에서와 같이 사용자 공간에서이 시간을 실제로 측정 할 수 있다고 생각하지 않습니다. 시간 조각이 만료 된 후 프로세스가 선택되면 절대 알 수 없습니다. 따라서 사용자 공간에서 얻는 것이면 지연 스케줄링도 포함됩니다. 그러나 사용자 공간에서보다 정확한 측정을 얻을 수는 있지만 항상 정확한 것은 아닙니다. 지피 (jiffy) 지연조차도 중요합니다.
1
나는 특히 LTTng을 사용하여 컨텍스트 전환 타이밍의 자세한 흔적을 캡처 할 수 있다고 믿습니다.
관련 문제
- 1. 스레드 컨텍스트 스위치 대 프로세스 컨텍스트 스위치
- 2. Linux에서 컨텍스트 스위치 모니터링
- 3. 인터럽트 처리기의 컨텍스트 스위치
- 4. 불필요한 Java 컨텍스트 스위치
- 5. 페이지로드 시간을 측정 하시겠습니까?
- 6. 퍼가기 모노 - 네이티브 컨텍스트 컨텍스트 스위치 오버 헤드
- 7. 장치 드라이버 IRQL 및 스레드/컨텍스트 스위치
- 8. C++ 컨텍스트 스위치 및 뮤텍스 문제
- 9. 서버가 아니라 브라우저에서 Ping 시간을 측정 하시겠습니까?
- 10. 코코아 : 키를 누르는 사이의 시간을 측정 하시겠습니까?
- 11. 측정 방법은?
- 12. 스위치
- 13. 디버거에서 C# winforms .... 컨텍스트 스위치 교착 상태가 감지되었습니다.
- 14. Windows의 컨텍스트 스위치 사이의 시간은 얼마나됩니까? 를 통해
- 15. 비 선점 커널의 제어 경로에서 컨텍스트 스위치 (Linux)
- 16. 응용 프로그램/스레드에서 측정 된 측정 시간
- 17. PHP에서 구문 분석 시간을 측정 할 수있는 방법이 있습니까?
- 18. Windows에서 C 코드의 측정 시간을 밀리 초 단위로 표시합니다.
- 19. 스크립트의 실행 시간을 어떻게 측정 할 수 있습니까?
- 20. 어떻게 파이썬 프로세스의 CPU 시간을 정확하게 측정 할 수 있습니까?
- 21. Winforms 폼이 나타나는 데 걸리는 시간을 측정 할 수 있습니까?
- 22. ASP.NET MVC로 요청을 시간을 측정 할 수 있습니까?
- 23. 스위치 컨트롤러가있는 스위치 2 개
- 24. 측정 대기 시간
- 25. 페이지로드 시간 측정
- 26. 가변 컨텍스트 스위칭 시간
- 27. CodeIgniter : 페이지로드 시간 측정
- 28. 개발 플랫폼 효율성 측정
- 29. 다른 스위치 케이스 (기능이있는 스위치 케이스)
- 30. 파스칼 프로그램에서 실행 시간 측정
당신이 말하는 커널 * what */kernel (리눅스, OSX/Darwin, Windows 등)을 지정하는 태그를 추가하면 아마도 도움이 될 것입니다. –
[C 프로그램으로 측정하기 리눅스 OS에서 문맥 전환에 소비 된 시간] (http://stackoverflow.com/questions/2368384/write-ac-program-to-measure-time-spent-in-context-switch-in-linux-os) –
@ Jerry Coffin 리눅스 커널입니다. – soker