ฉันดูiowait
คุณสมบัติที่แสดงในเอาต์พุตยูทิลิตี้ด้านบนดังที่แสดงด้านล่าง
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
มีการกำหนดโดยทั่วไปดังนี้:
"เป็นเวลาที่ CPU ไม่ได้ใช้งานและมีบาง IO ค้างอยู่"
ฉันเข้าใจว่ากระบวนการทำงานบน CPU ตัวเดียว หลังจากที่ถูกกำหนดเวลาไว้อย่างใดอย่างหนึ่งเนื่องจากมีการใช้ช่วงเวลาที่มากเกินไปหรือหลังจากถูกบล็อกในที่สุดก็สามารถกำหนดเวลาอีกครั้งบน CPU ตัวใดตัวหนึ่งได้อีกครั้ง
ในกรณีที่มีคำขอ IO ซีพียูที่ทำให้กระบวนการอยู่ในโหมดสลีปจะรับผิดชอบในการติดตามiowait
เวลา ซีพียูอื่น ๆ จะรายงานในเวลาเดียวกับเวลาว่างเมื่อสิ้นสุดการใช้งานจริง ๆ สมมติฐานนี้ถูกต้องหรือไม่
นอกจากนี้สมมติว่ามีคำขอ IO ยาว (หมายถึงกระบวนการมีโอกาสมากมายที่จะกำหนดเวลา แต่ไม่ได้กำหนดเนื่องจาก IO ไม่สมบูรณ์) ซีพียูรู้ได้อย่างไรว่ามี "รอ IO" ข้อมูลประเภทไหนมาจากไหน ซีพียูจะรู้ได้อย่างไรว่ากระบวนการบางอย่างถูกพักการทำงานชั่วระยะเวลาหนึ่งเพื่อให้ IO ดำเนินการให้เสร็จสมบูรณ์เพราะ CPU ใด ๆ อาจทำให้กระบวนการนั้นเข้าสู่โหมดสลีป สถานะของ "pending IO" นี้ได้รับการยืนยันอย่างไร