Keuntungan menggunakan RTOS seperti QNX atau VxWorks daripada Linux?


14

Ketika mengembangkan solusi yang membutuhkan sistem operasi waktu nyata, apa keuntungan yang akan dimiliki sistem operasi seperti QNX atau VxWorks dibandingkan Linux?

Atau dengan kata lain, karena sistem operasi ini dirancang khusus untuk penggunaan waktu-nyata yang tertanam - berbeda dengan Linux yang merupakan sistem yang lebih umum yang dapat disesuaikan dengan penggunaan waktu-nyata - kapan Anda perlu menggunakan salah satu dari sistem operasi ini bukan Linux?

Jawaban:


13

Beberapa sistem tertanam (a) perlu memenuhi persyaratan real-time yang sulit, namun (b) memiliki perangkat keras yang sangat terbatas (yang membuatnya semakin sulit untuk memenuhi persyaratan tersebut).

Jika Anda tidak dapat mengubah perangkat keras, maka ada beberapa situasi di mana Anda terpaksa mengesampingkan Linux dan menggunakan sesuatu yang lain sebagai gantinya:

  • Mungkin CPU bahkan tidak memiliki MMU, yang membuatnya tidak mungkin untuk menjalankan Linux (kecuali uClinux, dan sejauh yang saya tahu uClinux tidak real-time).
  • Mungkin CPU relatif lambat, dan latensi interupsi kasus terburuk di Linux gagal memenuhi beberapa persyaratan sulit, dan beberapa RTOS lainnya yang disetel untuk latensi interupsi terburuk sangat rendah dapat memenuhi persyaratan.
  • Mungkin sistem memiliki RAM yang sangat sedikit. Beberapa tahun yang lalu, pengaturan Linux minimal membutuhkan sekitar 2 MB RAM; setup eCos minimal (dengan lapisan kompatibilitas membiarkannya menjalankan beberapa aplikasi yang awalnya dirancang untuk berjalan di Linux) membutuhkan sekitar 20 kB RAM.
  • Mungkin tidak ada port Linux ke perangkat keras Anda, dan tidak ada cukup waktu untuk port Linux sebelum Anda perlu meluncurkan (pun!) Sistem Anda. Banyak RTOS yang lebih sederhana membutuhkan waktu jauh lebih sedikit untuk melakukan porting ke perangkat keras baru daripada Linux.

Apa jenis kode portabel antara RTOS yang berbeda? Saya juga mendengar bahwa beberapa solusi adalah top-down (menggunakan RTOS) sementara yang lain dibangun dari bawah ke atas (menambahkan fitur OS ke bare metal secara bertahap sesuai kebutuhan Anda).
CMCDragonkai

@ CMCDragonkai: Program yang ditulis pada API EL / IX dapat berjalan pada OS apa pun yang kompatibel dengan EL / IX. Program yang ditulis pada API POSIX dapat berjalan pada OS yang kompatibel dengan POSIX. Program yang ditulis ke API uITRON dapat berjalan di OS yang kompatibel dengan uITRON.
David Cary

@ CMCDragonkai: Mungkin programmer.stackexchange.com akan menjadi tempat yang lebih tepat untuk bertanya tentang RTOS yang berbeda?
David Cary

8

Saya belum melakukan pekerjaan real-time sama sekali jadi ambil ini dengan sebutir garam ...

Saya diberitahu ada dua kategori "waktu nyata": waktu nyata keras dan waktu nyata lunak.

"Soft real-time" secara tidak resmi berarti "menyelesaikannya secepat mungkin". Saya pikir Linux pada CPU modern bagus untuk hal semacam ini.

"Hard real-time" secara informal berarti "menyelesaikannya dalam jendela waktu yang diperlukan". Jendela bisa sangat kecil, milidetik atau sesuatu. Sistem kontrol penerbangan untuk rudal jelajah atau kendaraan peluncuran satelit tampak seperti contoh kanonik. Sistem kontrol proses industri mungkin juga membutuhkan ini. Worm Stuxnet tampaknya telah mengganggu sistem yang melakukan pengendalian semacam ini.

Anda akan menggunakan RTOS dalam situasi terakhir. RTOS sering menjamin pengiriman interupsi dalam waktu kurang dari begitu banyak instruksi atau kutu waktu atau apa pun.

Pertimbangan lain mungkin bahwa RTOS dirancang, diuji, dan / atau "terbukti" untuk tidak menggunakan ruang stack tanpa terikat. Itu dapat hidup di dalam jumlah minimum memori tertentu, dan hal-hal seperti "Pembunuh OOM" tidak ada karena mereka terbukti tidak pernah diperlukan. Beberapa fitur konyol dari FORTRAN awal berasal dari jenis persyaratan ini. Ketika Anda menyusun program FORTRAN II, Anda tahu persis berapa banyak tumpukan dan berapa banyak tumpukan yang dibutuhkan, karena Anda tidak dapat berulang, dan Anda tidak dapat mengalokasikan apa pun secara dinamis.

Secara realistis, pertimbangan kedua (dijamin konsumsi memori maks) mungkin lebih penting dalam beberapa aplikasi yang kritis terhadap keselamatan daripada "latensi interupsi yang dijamin 0,001 detik".

Saya juga akan membayangkan bahwa melucuti proses seleksi daun ara dari kata-kata pendukung, Anda akan menemukan bahwa para insinyur memilih RTOS karena "persyaratan mengatakan".

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.