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

ระบบปฏิบัติการแบบเวลาจริง หรือ ระบบปฏิบัติการแบบทันที (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) เนื่องจากการจัดสรรเนื้อที่หน่วยความจำในทันทีเ ป็นเรื่องยากที่จะจัดสรรให้มีระเบียบ ปัญหานี้ไม่เป็นปัญหาใหญ่นัก สำหรับเครื่องคอมพิวเตอร์แบบตั้งโต๊ะทั่วไป เพราะว่ามีการเปิด-ปิดอยู่บ่อยครั้ง อย่างไรก็ตามสำหรับระบบฝังตัว ที่ทำงานอยู่ตลอดปี โดยไม่ได้เปิด-ปิดเลย ปัญหานี้ถือเป็นประเด็นสำคัญ

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

โพสต์ยอดนิยมจากบล็อกนี้

I miss you all กับ I miss all of you ต่างกันอย่างไร

ปัญหาและเฉลยวิชาธรรม นักธรรมชั้นตรี สอบในสนามหลวง วันอังคาร ที่ ๒๙ กันยายน พ.ศ.๒๕๕๒

ปัญหาและเฉลยวิชาอนุพุทธประวัติ นักธรรมชั้นโท สอบในสนามหลวง วันอาทิตย์ ที่ ๒๐ พฤศจิกายน พ.ศ. ๒๕๔๘