เป็นที่ทราบกันดีอยู่แล้วว่าการทำงานของดิสก์ช้าและเรารู้สาเหตุที่ทำให้การทำงานช้า ดังนั้นคำถามที่นี่คือเหตุผลที่เราต้องรอ I / O หรือทำไมมีสิ่งเช่น IOWait ฯลฯ
ฉันหมายถึงฉันสังเกตเห็นว่าเมื่อคุณทำงาน I / O บางส่วนในพื้นหลังโดยทั่วไปคอมพิวเตอร์ของคุณจะช้าลงมากฉันสังเกตว่าโดยเฉพาะอย่างยิ่งเมื่อใช้ Linux ถ้าคุณทำภารกิจ I / O อีกต่อไป ระบบปฏิบัติการเกือบจะไม่สามารถใช้งานได้จนกว่าจะเสร็จสิ้น
ที่จริงฉันยังพบหัวข้อนี้ในบทความมีตัวอย่าง:
การรอ I / O คือ 12.1% เซิร์ฟเวอร์นี้มี 8 คอร์ (ผ่าน cat / proc / cpuinfo) สิ่งนี้อยู่ใกล้กับ (1/8 คอร์ = 0.125)
โดยพื้นฐานแล้วมันหมายความว่ามันทำให้คอมพิวเตอร์ช้าลงมากทำไมล่ะ? ฉันหมายถึงตกลงตอนนี้คอมพิวเตอร์ทั่วไปมีอย่างน้อย 2 คอร์บางครั้ง 4 หรือบางครั้งพวกเขามีมากขึ้นเพราะการทำไฮเปอร์เธรดหรืออะไรแบบนั้น แต่ตอนนี้คำถามคือทำไม CPU ถึงต้องอยู่ที่นั่นจริง ๆ แล้วไม่ได้ทำอะไรอย่างอื่นนอกจากแค่รอ IO? ฉันหมายถึงความคิดพื้นฐานหรือสถาปัตยกรรมของกระบวนการจัดการตอนนี้ฉันไม่รู้ว่ามันเป็นระบบปฏิบัติการที่รับผิดชอบเรื่องนั้นหรือไม่ก็ลงไปในส่วนของฮาร์ดแวร์ แต่ควรทำให้ซีพียูต้องรอหรือ ตรวจสอบเป็นประจำในขณะที่ปฏิบัติงานอื่น ๆ อีกมากมายจริง ๆ แล้วกลับไปที่กระบวนการ IO เมื่อพร้อม แน่นอนถ้านั่นเป็นงานที่ยากและซีพียูต้องรอทำไม isn ' จัดการกับฮาร์ดแวร์ได้อย่างมีประสิทธิภาพมากกว่างั้นเหรอ? เช่นมีมินิซีพียูบางชนิดที่เพิ่งจะรอและส่งข้อมูลส่วนเล็ก ๆ ไปยังซีพียูตัวจริงทันทีที่มันกลับไปที่กระบวนการดังนั้นกระบวนการจะทำซ้ำและเราจะไม่มี จริง ๆ แล้วอุทิศซีพียูคอร์ทั้งหมดสำหรับกระบวนการคัดลอกข้อมูล ... หรือฉันจะเป็นคนที่ควรคิดค้นสิ่งนี้และได้รับรางวัลโนเบลสำหรับสิ่งนั้น? : S
ตอนนี้โอเคฉันใส่ตอนนี้จากมุมมองของผู้สังเกตการณ์และฉันยังไม่ได้ลึกเข้าไปในหัวข้อ แต่ฉันไม่เข้าใจว่าทำไมซีพียูต้องทำงานกับความเร็วของ HDD ในขณะที่มันอาจ ทำอย่างอื่นแล้วกลับมาที่ HDD เมื่อพร้อม แนวคิดนี้ไม่ได้ทำให้แอพพลิเคชั่นเร็วขึ้นซึ่งต้องการการดำเนินการ IO หรือกระบวนการคัดลอกหรืออะไรก็ตาม แต่แนวคิดก็คือส่งผลกระทบเพียงเล็กน้อยต่อปริมาณการใช้ CPU ในขณะที่ทำการดำเนินการนั้นเพื่อให้ระบบปฏิบัติการสามารถใช้งานได้สำหรับกระบวนการอื่น ๆ ไม่ต้องรู้สึกคอมพิวเตอร์ช้าเมื่อทำการคัดลอก ...