กระบวนการเข้าสู่สถานะสลีปเมื่อพวกเขากำลังรอบางสิ่งซึ่งโดยปกติคือ I / O
กระบวนการของคุณจะอยู่ในS
สถานะเมื่อมีการอ่านและอาจเป็นไปได้ว่าการเขียนที่กำลังปิดกั้น สามารถเกิดขึ้นได้ในขณะที่รอเซมาฟอร์หรือการซิงโครไนซ์ดั้งเดิม
คุณไม่สามารถ "ปลุกมัน" - มันจะดำเนินการต่อเมื่อข้อมูล / ทรัพยากรที่กำลังรออยู่เท่านั้น
นี่เป็นเรื่องปกติและคาดหวังและไม่เป็นปัญหา โดยทั่วไป "โปรแกรม" นี้จะทำงานบนบรรทัดคำสั่งโดยไม่มีไฟล์:
while (<>) { print; }
จะใช้เวลาส่วนใหญ่ในสถานะสลีปซึ่งดี - คุณไม่ต้องการให้ CPU เสียขณะที่รอการป้อนข้อมูลจากผู้ใช้
หากคุณคิดว่านี่เป็นปัญหาให้ลองเปลี่ยนวิธีการทำ I / O ของคุณ (อ่านส่วนที่ใหญ่ขึ้นเป็นทวีคูณของขนาดบล็อกของอุปกรณ์พื้นฐาน