กระบวนการสลีปได้รับเวลา CPU เดียวกันหรือไม่


11

กระบวนการบางอย่างใช้เวลาส่วนใหญ่ของ "ชีวิต" ของพวกเขาในsleepสถานะ Daemons เซิร์ฟเวอร์และผู้ฟังทั่วไปเป็นที่สนใจ ฉันสงสัยว่าพวกเขาใช้เวลา CPU เท่าเดิมในสถานะนั้นหรือไม่? ในบางสิ่งบางอย่างเช่นแล็ปท็อปของฉันมันจะไม่เหมาะที่สุด!

ฉันจำได้ไม่ชัดเจนจากหลักสูตรระบบปฏิบัติการว่ามีวิธีการตั้งเวลาที่แตกต่างกัน ฉันสนใจที่จะหาข้อมูลเพิ่มเติมเกี่ยวกับกล่อง Linux (Debian) ปัจจุบันของฉัน

ฉันจะหาข้อมูลเกี่ยวกับนโยบายการตั้งเวลาปัจจุบันได้อย่างไร ฉันสามารถเปลี่ยนพวกมันแบบไดนามิกได้หรือไม่? ด้วยแอป userland ที่น่ารัก

คำตอบ:


15

กระบวนการไม่กินทรัพยากร CPU ในขณะที่หลับ พวกเขาอาจเพิ่มค่าใช้จ่ายบางส่วนเนื่องจากเคอร์เนลต้องเล่นปาหี่พวกเขาไปรอบ ๆ แต่นั่นไม่สำคัญมาก

อย่างไรก็ตามเนื่องจากวิธีการตั้งคำถามฉันควรพูดถึงว่าเมื่อใช้ CFS ของ Linux (Complete Fair Fair Scheduler) ของ Linux มันจะพยายามให้โปรแกรมเพิ่มเวลา CPU ในสัดส่วนตามเวลาที่หลับ - นั่นคือถ้ากระบวนการหลับมาก เมื่อกลับมาทำงานต่อจะได้รับลำดับความสำคัญสูงกว่า

ดูhttp://www.ibm.com/developerworks/linux/library/l-completely-fair-scheduler/สำหรับคำอธิบายของ CFS


2
ฉันต้องการโหวตคำตอบนี้ แต่คะแนนตัวแทนปัจจุบันของคุณ (6,666) สวยเกินไปที่จะเปลี่ยนแปลง อ่าฉันกำลังทำอยู่แล้ว ...
rahmu

2
@rahmu noooo! แตกตรงที่สวยงามของฉัน! ฉันจะต้องไปสามัคคีกันตอนนี้
Shawn J. Goff

4

ตามคำนิยามกระบวนการพักการทำงานไม่ได้ดำเนินการบน cpu ดังนั้นจำนวนเวลาของ cpu ที่ใช้จะเป็นศูนย์อย่างชัดเจน


หากเป็นจริงเครื่องจะทราบได้อย่างไรว่าเวลาสลีปเสร็จสมบูรณ์และควรเริ่มต้นการทำงานใหม่
Dave Goldsmith
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.