iowait
Aşağıda gösterildiği gibi üst yarar çıktısı gösterilen özelliği bakıyordum .
top - 07:30:58 up 3:37, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 86 total, 1 running, 85 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
iowait
genellikle aşağıdaki gibi tanımlanır:
"CPU'nun boşta kaldığı zamandır ve beklemede olan bazı ES vardır."
Anladığım kadarıyla bir işlem tek bir CPU üzerinde yürütülüyor. Zaman aralığını kullandığından ya da bloke edildikten sonra programdan çıkarıldıktan sonra, tekrar herhangi bir CPU'da tekrar programlanabilir.
GÇ isteği durumunda, süreci kesintisiz olarak uyku moduna geçiren bir CPU, iowait
zamanı izlemekten sorumludur . Diğer CPU'lar, gerçekte boş oldukları için uçlarındaki boşta kalma süresi ile aynı zamanda rapor verecektir. Bu varsayım doğru mu?
Ayrıca, uzun bir G / Ç talebi olduğu varsayılarak (işlemin planlanmak için çeşitli fırsatlara sahip olduğu, ancak G / Ç tam olmadığı için planlanmadığı anlamına gelir), bir CPU "beklemede G / Ç" olduğunu nasıl bilebilir? Bu tür bilgiler nereden getiriliyor? Bir CPU, herhangi bir işlemin bir IO'nun tamamlanması için biraz zaman uyuduğunu nasıl öğrenebilir, çünkü CPU'lardan herhangi biri bu süreci uyku durumuna sokabilir. "Bekleyen ES" durumu nasıl doğrulanır?