ระบบปฏิบัติการแบบเวลาจริง หรือ ระบบปฏิบัติการแบบทันที (Real-time operating system: RTOS) คือระบบปฏิบัติการที่เวลาเป็นปัจจัยสำคัญสำหรับประสิทธิภาพของระบบ นั่นคือมีชุดคำสั่งหรือโปรเซสบางอย่าง ที่จำเป็นต้องทำ ณ เวลาที่กำหนด หรือทำให้เสร็จในเวลาที่กำหนด ถ้าทำไม่ได้อาจสร้างความเสียหายหรือเกิดค่าความเสียหาย (cost) กับระบบ โดยทั่วไปสำหรับระบบปฏิบัติการแบบเวลาจริง การทำงานไม่ทันในเวลาที่กำหนด มีค่าเทียบเคียงได้กับ การไม่ได้ทำงานนั้นเลย ระบบปฏิบัติการแบบเวลาจริงมักถูกออกแบบมาเพื่อแอปพลิเคชันแบบฝังตัวหรือแอปพลิเคชันที่ติดตั้งมากับระบบตั้งแต่แรกเพื่อทำงานเฉพาะด้าน เช่น ระบบปฏิบัติการของเครื่องเล่นซีดี ทันทีที่ระบบปฏิบัติการอ่านข้อมูลจากแผ่นซีดีแล้ว จะต้องประมวลผลข้อมูล และส่งสัญญาณเสียงออกไปให้ผู้ฟังทันที ถ้าระบบปฏิบัติการทำงานไม่ทันก็จะทำให้เพลงฟังไม่รู้เรื่อง
ระบบปฏิบัติการบางตัวไม่ได้ถูกออกแบบมาตั้งแต่ต้นให้เป็นระบบปฏิบัติการแบบเวลาจริง แต่ก็สามารถถูกดัดแปลงให้เป็นได้
เช่นหลายบริษัทพัฒนาและขายลินุกซ์ที่ถูกดัดแปลงเพิ่มขีดความสามารถในการปฏิบัติการแบบเวลาจริง และเมื่อ 8 ตุลาคม พ.ศ. 2547 บริษัท มอนตาวิสตา (Montavista) ได้ส่งแพตช์ (patch) ไปยัง Linux kernel mailing list เพื่อทำให้ลินุกซ์เป็นระบบปฏิบัติการแบบเวลาจริง
คุณลักษณะที่สำคัญของระบบปฏิบัติการแบบเวลาจริง
ระบบปฏิบัติการแบบเวลาจริงมีจุดที่ต้องระวังในการออกแบบเป็นพิเศษอยู่ 2 จุดก็คือ
การจัดลำดับแบบเวลาจริง
โดยโปรแกรมจัดลำดับ (scheduler) จะต้องมีความสามารถในการจัดลำดับการทำงาน ให้ทุกโปรเซสสามารถทำงานได้ทันตามที่ต้องการ โดยในปี ค.ศ. 1973 2 นักวิจัยคือ ลิวและเลย์แลนด์ ได้พิสูจน์ทฤษฎีบทบางอย่างเกี่ยวกับการจัดเวลาว่า กลุ่มโปรเซสลักษณะแบบใด จะสามารถจัดเวลาได้ทัน หรือในกรณีที่ไม่สามารถจัดเวลาได้ทันสำหรับทุกโปรเซส ลิวและเลย์แลนด์ก็ยังได้เสนอขั้นตอนวิธีการจัดลำดับ ที่จัดเวลาให้มีค่าความเสียหายน้อยที่สุด โดยปกติแล้วระบบปฏิบัติการที่ถูกออกแบบเพื่อใช้กับงานทั่วไป (general-purpose OS) ไม่เหมาะที่จะจัดลำดับโปรเซสแบบเวลาจริง เนื่องจากจะมี ค่าใช้จ่ายส่วนเกินหรือค่าใช้จ่ายอื่น (overhead) ในการทำกระบวนการสับเปลี่ยนโปรเซส (context-switching) สูง
การจัดสรรหน่วยความจำ
อีกปัญหาหนึ่งคือการจัดสรรหน่วยความจำ ซึ่งระบบปฏิบัติการ จำเป็นที่จะต้องจองหน่วยความจำ ขนาดที่โปรเซส หรือโปรแกรมต้องการ ให้ทันภายในช่วงเวลาสั้นๆ ที่โปรเซสทำงานอยู่ โดยขั้นตอนวิธีปกติ จะใช้ไล่หาตามรายการโยงของหน่วยความจำที่ว่าง ซึ่งอาจจะมีประสิทธิภาพในแง่เวลาต่ำ
นอกจากนั้น ยังมีปัญหาเรื่อง การแตกกระจายของหน่วยความจำ (memory fragmentation) เนื่องจากการจัดสรรเนื้อที่หน่วยความจำในทันทีเ ป็นเรื่องยากที่จะจัดสรรให้มีระเบียบ ปัญหานี้ไม่เป็นปัญหาใหญ่นัก สำหรับเครื่องคอมพิวเตอร์แบบตั้งโต๊ะทั่วไป เพราะว่ามีการเปิด-ปิดอยู่บ่อยครั้ง อย่างไรก็ตามสำหรับระบบฝังตัว ที่ทำงานอยู่ตลอดปี โดยไม่ได้เปิด-ปิดเลย ปัญหานี้ถือเป็นประเด็นสำคัญ
ตัวอย่างของระบบปฏิบัติการแบบเวลาจริง
ดูเพิ่ม
อ้างอิง
- A. Tanenbaum and A. Woodhull. Operating Systems: Design and Implementation. Prentice Hall, 1997.