4
뮤텍스, 세마포 또는 퓨 텍스의 대기 시간을 어떻게 측정 할 수 있습니까? 두 이벤트 사이의 대기 시간을 의미합니다. 이전에 잠긴 뮤텍스를 잠금 해제하고 뮤텍스를 잠그는 것입니다. 다음과 같은 두 가지 경우가 있습니다. 모든 스레드/프로세스가 동일한 CPU에있는 경우 (스레드를 다시 예약하는 데 걸리는 시간) 및 첫 번째 스레드가 첫 번째 CPU에 있고 두 번째 스레드가 초에있을 때.뮤텍스 또는 퓨 텍스 대기 시간 측정
Thread1: Lock(Mutex) Critical1 Unlock(Mutex)|<------->|
Thread2: while{trylock} |Lock(Mutex) Critical2 Unlock(Mutex)|
심지어
Thread1: work..work..very hard..work... sem_post()|<----->|
Thread2: sem_wait(semaphore)...............................|sem_wait unlocks here work2..
이 시간 (1 ~ K주기) 매우 짧은, 그래서 gettimeofday()
또는 직접 CPU 클럭 카운터 (RDTSC)를 사용할 수 있습니까? – osgx