ข้อเสียอย่างฉับพลันที่สุดของการเรียกใช้กระบวนการแบบเรียลไทม์คือกระบวนการนั้นสามารถทำให้กระบวนการอื่น ๆ ในระบบหมดไปได้อย่างง่ายดาย ผลลัพธ์จากมุมมองของคุณคือคอมพิวเตอร์ไม่ตอบสนองต่อแป้นพิมพ์เมาส์และเครือข่ายอย่างสมบูรณ์ตราบใดที่กระบวนการเรียลไทม์ใช้ CPU สิ่งนี้อาจเกิดขึ้นได้หากมีสิ่งผิดปกติและกระบวนการเข้าสู่วงวนไม่สิ้นสุดหรือแม้กระทั่งชั่วคราวหากกระบวนการเริ่มการคำนวณที่ใช้เวลานานโดยไม่ต้องรออินพุตเป็นระยะ (ตัวอย่างเช่นอย่าใช้ SETI @ home พร้อมลำดับความสำคัญแบบเรียลไทม์)
กระบวนการแบบเธรดเดียวที่ทำงานบน CPU แบบมัลติคอร์มีแนวโน้มน้อยกว่าที่จะทำให้เกิดปัญหานี้เนื่องจากมีคอร์อื่นที่กระบวนการระดับความสำคัญต่ำกว่าสามารถใช้ได้ แต่ถ้ากระบวนการนั้นสร้างกระบวนการลูกใด ๆ พวกเขาจะสืบทอดลำดับความสำคัญแบบเรียลไทม์เดียวกันดังนั้นสิ่งต่าง ๆ สามารถควบคุมได้หากคุณไม่ระวัง
sched_setscheduler(2)
หน้าคนมีคำแนะนำที่ดี:
เนื่องจากการวนลูปไม่สิ้นสุดในกระบวนการที่กำหนดเวลาไว้ภายใต้ SCHED_FIFO หรือ SCHED_RR จะบล็อกกระบวนการทั้งหมดที่มีระดับความสำคัญต่ำกว่าตลอดไปนักพัฒนาซอฟต์แวร์ควรให้พร้อมใช้งานบนคอนโซลเชลล์ที่กำหนดเวลาภายใต้ลำดับความสำคัญคงที่สูงกว่าแอพพลิเคชันที่ทดสอบ สิ่งนี้จะช่วยให้เกิดการฆ่าฉุกเฉินของแอปพลิเคชันตามเวลาจริงที่ทดสอบซึ่งไม่ได้บล็อกหรือยกเลิกตามที่คาดไว้ ดูคำอธิบายของข้อ จำกัด ทรัพยากร RLIMIT_RTTIME ใน getrlimit (2)
นั่นควรเป็นเชลล์บนคอนโซล - ไม่ใช่ภายใต้ Xterm ยกเว้นว่าคุณต้องการให้ลำดับความสำคัญ X แบบเรียลไทม์ทั้งหมดเช่นกัน