ミューテックス、セマフォ、またはフューテックスのレイテンシーを測定するにはどうすればよいですか?つまり、以前にロックされたミューテックスのロックを解除することと、そのミューテックスをロックすることの2つのイベント間のレイテンシーを意味します。2つのケースがあります。すべてのスレッド/プロセスが同じCPU上にある場合(スレッドの再スケジュールにかかる時間)と、最初のスレッドが最初のCPU上にあり、2番目が2番目の場合です。
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..
今回は非常に短い(〜1kサイクル)ので使えませんgettimeofday()