ระบบปฏิบัติการแบบเวลาจริง

ระบบปฏิบัติการแบบเวลาจริง หรือ ระบบปฏิบัติการแบบทันที (Real-time operating system: RTOS) คือระบบปฏิบัติการที่เวลาเป็นปัจจัยสำคัญสำหรับประสิทธิภาพของระบบ นั่นคือมีชุดคำสั่งหรือโปรเซสบางอย่าง ที่จำเป็นต้องทำ ณ เวลาที่กำหนด หรือทำให้เสร็จในเวลาที่กำหนด ถ้าทำไม่ได้อาจสร้างความเสียหายหรือเกิดค่าความเสียหาย (cost) กับระบบ โดยทั่วไปสำหรับระบบปฏิบัติการแบบเวลาจริง การทำงานไม่ทันในเวลาที่กำหนด มีค่าเทียบเคียงได้กับ การไม่ได้ทำงานนั้นเลย ระบบปฏิบัติการแบบเวลาจริงมักถูกออกแบบมาเพื่อแอปพลิเคชันแบบฝังตัวหรือแอปพลิเคชันที่ติดตั้งมากับระบบตั้งแต่แรกเพื่อทำงานเฉพาะด้าน เช่น ระบบปฏิบัติการของเครื่องเล่นซีดี ทันทีที่ระบบปฏิบัติการอ่านข้อมูลจากแผ่นซีดีแล้ว จะต้องประมวลผลข้อมูล และส่งสัญญาณเสียงออกไปให้ผู้ฟังทันที ถ้าระบบปฏิบัติการทำงานไม่ทันก็จะทำให้เพลงฟังไม่รู้เรื่อง 
ระบบปฏิบัติการบางตัวไม่ได้ถูกออกแบบมาตั้งแต่ต้นให้เป็นระบบปฏิบัติการแบบเวลาจริง แต่ก็สามารถถูกดัดแปลงให้เป็นได้
เช่นหลายบริษัทพัฒนาและขายลินุกซ์ที่ถูกดัดแปลงเพิ่มขีดความสามารถในการปฏิบัติการแบบเวลาจริง และเมื่อ 8 ตุลาคม พ.ศ. 2547 บริษัท มอนตาวิสตา (Montavista) ได้ส่งแพตช์ (patch) ไปยัง Linux kernel mailing list เพื่อทำให้ลินุกซ์เป็นระบบปฏิบัติการแบบเวลาจริง

**คุณลักษณะที่สำคัญของระบบปฏิบัติการแบบเวลาจริง**
ระบบปฏิบัติการแบบเวลาจริงมีจุดที่ต้องระวังในการออกแบบเป็นพิเศษอยู่ 2 จุดก็คือ- การจัดลำดับแบบเวลาจริง (real-time scheduling)- การจัดสรรหน่วยความจำ (memory allocation) 

**การจัดลำดับแบบเวลาจริง**
โดยโปรแกรมจัดลำดับ (scheduler) จะต้องมีความสามารถในการจัดลำดับการทำงาน ให้ทุกโปรเซสสามารถทำงานได้ทันตามที่ต้องการ โดยในปี ค.ศ. 1973 2 นักวิจัยคือ ลิวและเลย์แลนด์ ได้พิสูจน์ทฤษฎีบทบางอย่างเกี่ยวกับการจัดเวลาว่า กลุ่มโปรเซสลักษณะแบบใด จะสามารถจัดเวลาได้ทัน หรือในกรณีที่ไม่สามารถจัดเวลาได้ทันสำหรับทุกโปรเซส ลิวและเลย์แลนด์ก็ยังได้เสนอขั้นตอนวิธีการจัดลำดับ ที่จัดเวลาให้มีค่าความเสียหายน้อยที่สุด โดยปกติแล้วระบบปฏิบัติการที่ถูกออกแบบเพื่อใช้กับงานทั่วไป (general-purpose OS) ไม่เหมาะที่จะจัดลำดับโปรเซสแบบเวลาจริง เนื่องจากจะมี ค่าใช้จ่ายส่วนเกินหรือค่าใช้จ่ายอื่น (overhead) ในการทำกระบวนการสับเปลี่ยนโปรเซส (context-switching) สูง

**การจัดสรรหน่วยความจำ**
อีกปัญหาหนึ่งคือการจัดสรรหน่วยความจำ ซึ่งระบบปฏิบัติการ จำเป็นที่จะต้องจองหน่วยความจำ ขนาดที่โปรเซส หรือโปรแกรมต้องการ ให้ทันภายในช่วงเวลาสั้นๆ ที่โปรเซสทำงานอยู่ โดยขั้นตอนวิธีปกติ จะใช้ไล่หาตามรายการโยงของหน่วยความจำที่ว่าง ซึ่งอาจจะมีประสิทธิภาพในแง่เวลาต่ำ
นอกจากนั้น ยังมีปัญหาเรื่อง การแตกกระจายของหน่วยความจำ (memory fragmentation) เนื่องจากการจัดสรรเนื้อที่หน่วยความจำในทันทีเ ป็นเรื่องยากที่จะจัดสรรให้มีระเบียบ ปัญหานี้ไม่เป็นปัญหาใหญ่นัก สำหรับเครื่องคอมพิวเตอร์แบบตั้งโต๊ะทั่วไป เพราะว่ามีการเปิด-ปิดอยู่บ่อยครั้ง อย่างไรก็ตามสำหรับระบบฝังตัว ที่ทำงานอยู่ตลอดปี โดยไม่ได้เปิด-ปิดเลย ปัญหานี้ถือเป็นประเด็นสำคัญ

**ตัวอย่างของระบบปฏิบัติการแบบเวลาจริง**
 BeOS- ChorusOS- eCos-  FreeRTOS- ITRON- LynxOS- MicroC/OS-II- NOS- Nucleus-  Nut/OS- OS-9- OSE- OSEK/VDX- OSEKtime- pSOS- QNX- RMX- RSX-11- RT-11- RTOS-UH- VRTX- VxWorks- Windows CE- RTLinux- RTAI- Samsung Bada -  Samsung REX- Nokia Asha Platform- Brew Platform

**ดูเพิ่ม**
 ระบบปฏิบัติการ- การจัดลำดับแบบเวลาจริง- การจัดสรรหน่วยความจำ 

**อ้างอิง**
 A. Tanenbaum and A. Woodhull. Operating Systems: Design and Implementation. Prentice Hall, 1997.
หมวดหมู่:ระบบปฏิบัติการฝังตัว
หมวดหมู่:ระบบฝังตัว
หมวดหมู่:ระบบปฏิบัติการ
หมวดหมู่:เทคโนโลยีระบบปฏิบัติการ