Piawaian antarabangsa untuk sistem pengendalian masa nyata. Os rv dalam perkhidmatan penerbangan. Keperluan untuk OSRP

Hello, Habr!
Hari ini saya akan bercakap tentang perkara yang menarik seperti sistem pengendalian masa nyata (RTOS). Saya tidak pasti sama ada ini akan menarik untuk pengaturcara yang berpengalaman, tetapi saya fikir pemula akan menyukainya.

Apakah RTOS?

Jika kita melihat Wikipedia, kita akan melihat sebanyak 4 definisi.
Ringkasnya, RTOS ialah sistem pengendalian yang bertindak balas kepada peristiwa luaran dalam tempoh masa tertentu. Dari sini kita dapat memahami tujuan utama RTOS - peranti yang memerlukan tindak balas pantas kepada peristiwa (namun, tidak mengelirukan operasi RTOS dengan gangguan).

Mengapa kita memerlukannya?

Terdapat beberapa sebab untuk ini.
Pertama, RTOS menyokong multitasking, keutamaan proses semaphore dan banyak lagi.
Kedua, ia sangat ringan dan hampir tidak memerlukan sumber.
Ketiga, kita boleh mendapatkan semua perkara di atas pada hampir mana-mana perkakasan (contohnya, FreeRTOS berjalan walaupun pada AtMega 8-bit).
Dan keempat: hanya bermain dan berseronok.

Semakan 3 RTOS yang terkenal.

Sila ambil perhatian: berikut adalah pendapat peribadi saya.
PercumaRTOS
Salah satu RTOS yang paling popular hari ini. Dialihkan ke sejumlah besar perkakasan. Laman web rasmi.
kebaikan
1) Percuma
2) Dialihkan ke sejumlah besar kelenjar
3) Fungsi yang berkuasa
4) Terdapat pelbagai perpustakaan: grafik, Internet dan banyak lagi.
5) Dokumentasi yang baik.
Minus
1) Proses pemindahan yang agak kompleks ke perkakasan baharu.

Kesimpulan: Ini adalah RTOS yang benar-benar profesional dengan dokumentasi yang baik. Ia akan menjadi baik untuk pemula jika perkakasannya sudah mempunyai port.

KeilRTX
Sehingga baru-baru ini, RTOS ini adalah komersial, tetapi baru-baru ini telah menjadi sumber terbuka. Berfungsi hanya pada seni bina lengan. Laman web rasmi.
kebaikan
1) Percuma
2) Mudah dialihkan ke perkakasan baharu (dalam seni bina lengan).
3) Terdapat pelbagai perpustakaan: grafik, Internet dan banyak lagi.
Minus
1) Hampir mustahil untuk bekerja dengannya di Keil
2) Fungsi berkurangan sedikit
3) Hanya lengan yang disokong.
4) (dari pengalaman peribadi) Kalah kepada banyak RTOS dari segi kelajuan.
Kesimpulan: sesuai untuk projek pemula dan kecil.
uc/os
RTOS komersial yang berkuasa. laman web .
kebaikan
1) Sebilangan besar fungsi dan perpustakaan.
2) Menyokong banyak zat besi
Minus
1) Komersil.
2) Sukar untuk digunakan.

Kesimpulan: memanggilnya RTOS untuk pemula adalah sesuatu yang sukar.

RTOS lain yang menarik

RTLinux RTOS berdasarkan Linux biasa.
QNX RTOS berdasarkan Unix.

Ciri pembangunan menggunakan RTOS

Baiklah, pertama sekali, anda perlu memahami perkara berikut: RTOS bukan Windows. Ia tidak boleh dipasang. Sistem ini hanya menyusun dengan program anda.
Apabila menulis program dengan RTOS, fungsi dalam erti kata biasa tidak digunakan. Daripada fungsi, proses (atau tugas) digunakan. Perbezaannya ialah proses, tidak seperti fungsi, adalah gelung yang tidak berkesudahan dan tidak pernah berakhir (melainkan seseorang atau dia sendiri membunuhnya - iaitu, memunggahnya dari ingatan).
Jika beberapa proses didayakan, RTOS menukarnya, memberikan masa dan sumber mesin secara bergilir-gilir. Di sinilah konsep keutamaan proses timbul - jika dua proses memerlukan masa mesin pada masa yang sama, maka RTOS akan memberikannya kepada yang mempunyai keutamaan yang lebih tinggi.
RTOS mempunyai fungsi khas kelewatan - supaya masa tidak terbuang semasa satu proses ditangguhkan manakala yang kedua sedang berjalan.
Sekarang mari kita bercakap tentang perkara seperti semaphore - ini adalah perkara yang mengawal akses proses kepada sumber aplikasi. Untuk setiap sumber terdapat penanda - apabila proses memerlukan sumber, ia mengambilnya dan menggunakan sumber ini. Jika tiada token, maka proses itu perlu menunggu sehingga ia dikembalikan. Izinkan saya memberi anda satu contoh: proses yang berbeza menghantar maklumat melalui satu UART. Sekiranya tiada semafor, maka mereka akan menghantar bait secara bergilir-gilir dan akan berlaku kekeliruan. Jadi proses pertama mengambil token pada UART, menghantar mesej dan memberikannya kepada yang kedua (dan seterusnya ad infinitum).

Perpustakaan RTOS tambahan.

RTOS sering menawarkan pelbagai perpustakaan untuk bekerja, contohnya, dengan grafik, Internet, dsb. Ia sangat mudah dan anda tidak perlu teragak-agak untuk menggunakannya. Walau bagaimanapun, ingat bahawa tanpa RTOS yang mana ia ditulis, ia tidak akan berfungsi.
Berikut adalah contoh:
Untuk RTX

OS Masa Nyata (RTOS) ialah OS yang menjamin keupayaan tertentu untuk tempoh masa tertentu. Sebagai contoh, ia boleh direka bentuk untuk menunjukkan bahawa objek telah boleh diakses oleh robot pada baris pemasangan. Cengkerang sedemikian dikelaskan kepada "keras" dan "lembut".

Sistem pengendalian masa nyata keras menganggap bahawa pengiraan tidak boleh dilakukan jika objek tidak tersedia dalam tempoh yang ditetapkan (operasi sedemikian akan gagal).

Dalam sistem pengendalian masa nyata yang lembut, barisan pemasangan akan terus berfungsi di bawah keadaan ini, tetapi pengeluaran mungkin lebih rendah kerana objek tidak dapat tersedia pada masa yang dijadualkan, menyebabkan robot tidak produktif buat sementara waktu.

Sebelum memberikan contoh sistem pengendalian masa nyata, adalah perlu untuk memahami ciri penggunaannya. Sesetengah OS sedemikian dicipta untuk aplikasi khas, yang lain - untuk tujuan yang lebih umum. Di samping itu, beberapa cengkerang tujuan am juga kadangkala digunakan untuk kerja masa nyata. Windows 2000 atau IBM Microsoft/390 yang terkenal boleh melaksanakan jenis ini. Iaitu, walaupun OS tidak memenuhi beberapa keperluan, ia mungkin mempunyai ciri yang membolehkan ia dianggap sebagai penyelesaian untuk masalah aplikasi tertentu dalam masa nyata.

Contoh sistem pengendalian dan ciri-cirinya

Secara umum, masa nyata mempunyai ciri ciri berikut:

  • Berbilang tugas.
  • Aliran teknologi yang boleh diutamakan.
  • Bilangan tahap gangguan yang mencukupi.

Sistem pengendalian masa nyata sering digunakan sebagai sebahagian daripada cengkerang terbenam kecil yang digunakan dalam format peranti mikro. Oleh itu, sesetengah kernel boleh dianggap sebagai sistem pengendalian tugas tunggal (contoh: kernel dalam IOS, Android, dll.) dalam masa nyata. Walau bagaimanapun, mereka memerlukan komponen peranti lain, seperti pemandu, untuk melaksanakan tugas yang dimaksudkan. Itulah sebabnya yang lengkap, sebagai peraturan, lebih daripada sekadar teras.

Contoh tipikal aplikasi RTOS ialah penerima dan paparan HDTV. Dia mesti membaca isyarat digital, menyahkodnya dan memaparkannya sebagai data masuk. Sebarang kelewatan akan dapat dilihat sebagai video berpiksel dan/atau audio yang herot.

Pada masa yang sama, apabila permintaan dibuat "berikan contoh sistem pengendalian jenis ini," nama yang paling terkenal adalah tersirat. Apa yang termasuk dalam kumpulan ini?

VxWorks daripada WindRiver

VxWorks ialah sistem pengendalian masa nyata yang dibangunkan sebagai perisian proprietari menggunakan syarikat WindRiver. Pertama kali dikeluarkan pada tahun 1987, VxWorks pada asalnya bertujuan untuk digunakan dalam sistem terbenam yang memerlukan prestasi masa nyata dan deterministik. Oleh itu, contoh sistem pengendalian jenis ini digunakan dalam bidang keselamatan dan keselamatan, pelbagai industri (terutama aeroangkasa dan pertahanan), pengeluaran peranti perubatan, peralatan industri, robotik, tenaga, pengurusan pengangkutan, infrastruktur rangkaian, menambah baik automotif dan elektronik pengguna.

VxWorks menyokong Intel (x86, termasuk pilihan baharu IntelQuarkSoC dan x86-64), MIPS, PowerPC, SH-4 dan seni bina ARM. RTOS ini didatangkan dengan kernel yang berkuasa, perantaraan perisian, sokongan untuk pakej tambahan berbayar dan teknologi perkakasan pihak ketiga. Dalam keluaran terbarunya - VxWorks 7 - sistem telah direka bentuk semula untuk modulariti dan kebolehtingkatan supaya kernel OS dipisahkan daripada perisian tengah, aplikasi dan pakej lain.

QNX Neutrino

Juga contoh klasik sistem pengendalian jenis ini ialah beberapa cengkerang seperti Unix. Ini ialah QNX Neutrino, yang pada asalnya dibangunkan pada awal 1980-an oleh syarikat Kanada Quantum Software Systems. Akhirnya, pembangunan itu diperoleh oleh BlackBerry pada tahun 2010. QNX ialah salah satu sistem pengendalian mikrokernel pertama yang berjaya secara komersial, yang digunakan dalam pelbagai peranti, termasuk kereta dan telefon mudah alih.

PercumaRTOS

FreeRTOS ialah OS kernel masa nyata yang popular untuk peranti terbenam yang dimuatkan dengan 35 mikropengawal. Ia dilesenkan di bawah GPL, dengan sekatan tambahan dan pengecualian pilihan. Sekatan melarang penanda aras, manakala pengecualian membenarkan kod sendiri pengguna bersama kod sumber tertutup, sambil mengekalkan kernel itu sendiri. Ini menjadikannya lebih mudah untuk menggunakan FreeRTOS dalam aplikasi anda sendiri.

Windows CE

Windows Embedded Compact ialah subkeluarga sistem pengendalian yang dibangunkan oleh Microsoft Corporation sebagai sebahagian daripada keluarga produk Windows Embedded. Tidak seperti Windows Embedded Standard, yang berasaskan Windows NT, sampel sistem pengendalian ini menggunakan kernel hibrid eksklusif. Microsoft menyediakan lesen Windows CE kepada OEM yang boleh menyesuaikan dan mencipta antara muka pengguna mereka sendiri, menyediakan asas teknikal untuk ini.

Produk dan sistem perisian No. 4, 2001 kutipan sampah. Laporan teknikal, Universiti Texas di Austin, 1993. 3. Kim T., Chang N., Kim N., Shin H. Menjadualkan Pengumpul Sampah untuk Sistem Masa Nyata Terbenam. Laporan teknikal, Universiti Kebangsaan Seoul. 4. Spesifikasi masa nyata untuk Jawa. http://www.rtj.org. 5. Spesifikasi konsortium J antarabangsa. Sambungan Teras masa nyata. www.j-consortium.org. 6. Nikiforov V.V., Danilov M.V. Pemprosesan statik spesifikasi sistem perisian masa nyata. //Produk dan sistem perisian.- 2000.- No. 4.- P. 13-18. 7. Henriksson R. Menjadualkan kutipan sampah dalam sistem terbenam. Lund, 1998. 8. Nilsen K., Lee S. PERC API masa nyata. NewMonics Inc., 1997. 9. Wilson P.R., Johnstone M.S., Neely N., Boles D. Peruntukan storan dinamik: tinjauan dan ulasan kritikal. Laporan teknikal, University of Texas di Austin, 1995. OSEK/VDX ANTARABANGSA STANDARD UNTUK SISTEM OPERASI MASA NYATA M.P. Chervinsky Salah satu trend dalam menambah baik reka bentuk kereta moden ialah peningkatan pengenalan sistem komputer terbenam. Sehubungan itu, jumlah pengeluaran aplikasi automotif masa nyata – produk perisian yang memastikan fungsi sistem ini – semakin meningkat. Pertumbuhan dalam volum pengeluaran disertai dengan mengetatkan tarikh akhir untuk pembangunan aplikasi perisian, keperluan untuk mengurangkan kosnya sambil meningkatkan kebolehpercayaan, mudah alih dan kebolehgunaan semula secara serentak apabila membangunkan produk baharu. Faktor-faktor ini merangsang pembangunan piawaian yang mengawal selia penyelesaian seni bina dan teknologi yang menentukan perisian dan antara muka rangkaian untuk aplikasi masa nyata automotif. Piawaian sedemikian harus meningkatkan keupayaan untuk menyepadukan produk perisian yang dihasilkan oleh vendor perisian yang berbeza. Kebimbangan pembuatan kereta yang besar (Chrysler, BMW, Volkswagen dan lain-lain) juga berminat untuk melaksanakan piawaian tersebut, berusaha untuk mewujudkan persaingan dalam pasaran untuk produk perisian yang mereka gunakan, kerana persaingan membolehkan mereka membeli produk perisian pembekal yang menawarkan nisbah harga/kualiti terbaik. Untuk memastikan bahawa menukar vendor tidak menyebabkan keperluan untuk mengolah semula sebahagian besar aplikasi, pengeluar memerlukan penggunaan standard oleh semua vendor perisian. Kebanyakan sistem terbenam yang digunakan dalam kenderaan adalah aplikasi susah betul masa. Pemprosesan peristiwa yang berlaku di dalamnya dihadkan oleh tarikh akhir yang ketat, pelanggaran yang boleh membawa kepada akibat bencana. Pada masa ini, teknologi utama yang digunakan untuk mencipta aplikasi automotif masa nyata dan, khususnya, aplikasi keras masa nyata, menjadi penggunaan kernel, atau sistem pengendalian masa nyata (RTOS). RTOS membenarkan pembangun aplikasi untuk menjamin kefungsian aplikasi sepanjang keseluruhan kitaran operasi sistem, dengan syarat tugas diutamakan dengan betul dan aplikasi direka bentuk dengan betul. Keperluan untuk menyeragamkan aplikasi automotif berdasarkan RTOS membawa kepada penciptaan pada tahun 1995 sebuah jawatankuasa antarabangsa yang melaksanakan projek OSEK/VDX untuk mencipta piawaian antarabangsa mengawal selia pembangunan perisian untuk sistem komputer yang dibina ke dalam kereta. Projek OSEK/VDX telah dimulakan oleh sekumpulan pengeluar kenderaan (kereta) terkemuka Eropah, yang kebanyakannya terletak di Jerman. Itulah sebabnya singkatan OSEK yang dipilih ialah singkatan daripada nama Jerman “Offene Systeme und deren Schnittstellen für die Elektronik im Kraftfahrzeug” - “ Sistem terbuka dan antara muka untuk elektronik automotif." Singkatan VDX bermaksud "Executive Distributed Vehicle" - nama projek lain, penyepaduan yang berlaku hampir serentak dengan permulaan projek OSEK. Oleh itu, walaupun nama projek dan siri piawaian mencerminkan sifat antarabangsa pembangunan, dengan beberapa dominasi pengeluar Jerman. Beberapa piawaian sedang dibangunkan dalam projek OSEK/VDX. 1. OSEK/VDX OS (Sistem Pengendalian) – Spesifikasi RTOS. Spesifikasi mengandungi penerangan tentang seni bina OS, definisi antara muka pengaturcaraan OS yang harus digunakan oleh aplikasi dan penerangan terperinci tentang tingkah laku OS dan komponennya. Perlu diingatkan bahawa piawaian pada dasarnya menentukan seni bina dan fungsi kernel masa nyata, dan bukan OS sepenuhnya, kerana ia tidak mengandungi komponen OS penting seperti, sebagai contoh, subsistem kawalan input/output atau subsistem pengedaran memori. 2. OSEK/VDX COM (Komunikasi) – spesifikasi subsistem rangkaian. Spesifikasi mentakrifkan antara muka perisian dan protokol yang direka untuk memindahkan data antara nod - Produk dan sistem perisian kenderaan. Sebuah kereta moden mengandungi sehingga beberapa dozen mikropengawal yang bertukar maklumat. Biasanya, sekurang-kurangnya dua subnet digunakan: yang berkelajuan tinggi untuk enjin, sistem kawalan transmisi dan penggantungan, dan yang berkelajuan rendah untuk elektronik badan. Antara muka perisian memastikan pemindahan data telus, iaitu, satu set fungsi digunakan untuk bertukar-tukar mesej dalam nod dan antara nod rangkaian. Walaupun spesifikasi secara amnya menyediakan pengguna dengan semua alat yang diperlukan untuk mencipta rangkaian kenderaan tempatan dan menyokong piawaian lain yang digunakan dalam industri automotif, pelaksanaan produk yang melaksanakan OSEK/VDX COM dalam projek dunia nyata menimbulkan beberapa cabaran. Yang utama ialah penggunaan protokol lain (bukan standard) oleh pengeluar kereta besar, yang menjadikannya sukar untuk beralih kepada OSEK/VDX COM, kerana perlu sama ada menukar perisian rangkaian dalam semua nod kereta, atau menyokong serentak kedua-dua protokol standard dan bukan standard, sekurang-kurangnya dalam beberapa rangkaian nod. Di samping itu, versi spesifikasi ini tidak mempunyai mekanisme untuk menghantar data dengan panjang beberapa bit, dan data dengan panjang ini yang membentuk sebahagian besar trafik rangkaian kenderaan. Oleh itu, pembangunan spesifikasi OSEK/VDX COM diteruskan. 3. OSEK/VDX NM (Pengurusan Rangkaian) – spesifikasi pengurusan rangkaian. Spesifikasi mentakrifkan bagaimana maklumat tentang keadaan sekarang setiap nod rangkaian dihantar ke nod lain. Untuk tujuan ini, kaedah pemantauan digunakan, khususnya, dua jenisnya - langsung dan tidak langsung. Pemantauan langsung adalah berdasarkan penghantaran mesej khas melalui cincin logik atau bintang logik. Pemantauan tidak langsung adalah berdasarkan penjejakan mesej biasa dihantar oleh nod. OSEK/VDX NM boleh disepadukan dengan sistem rangkaian lain (bukan hanya OSEK/VDX COM) dan oleh itu kini digunakan bersama-sama dengan sistem rangkaian bukan standard. 4. OSEK/VDX OIL (Bahasa Pelaksanaan OSEK) – spesifikasi bahasa konfigurasi sistem. Spesifikasi menerangkan bahasa yang digunakan untuk mengkonfigurasi aplikasi yang dibina pada pelaksanaan OSEK/VDX. Dalam sistem terbenam yang digunakan dalam kereta, semua objek aplikasi dikonfigurasikan secara statik pada masa penyusunan. Bahasa OIL mengandungi binaan yang membolehkan anda menerangkan sifat objek sistem, contohnya, nama dan keutamaan tugas, parameter pemasa dan mesej, dsb. Perihalan konfigurasi sedang diproses utiliti khas(penjana sistem), yang menjana fail pengepala dan kod sumber yang menerangkan jadual sistem. Pada masa ini, tidak semua spesifikasi dilindungi sepenuhnya oleh OSEK/VDX OIL (khususnya, tiada penerangan untuk objek OSEK/VDX COM), jadi kerja pada standard ini diteruskan. Spesifikasi yang disenaraikan dibangunkan oleh kumpulan kerja yang berbeza sebahagian besarnya secara bebas antara satu sama lain, tetapi pada peringkat tertentu spesifikasi diperbetulkan dan disegerakkan. Versi yang disegerakkan dimasukkan ke dalam spesifikasi pautan - dokumen khas yang mengandungi penerangan keseluruhan projek dan anotasi bahagian konstituennya. Sebagai tambahan kepada spesifikasi yang disenaraikan, dalam rangka kerja projek OSEK/VDX, spesifikasi untuk sistem tercetus masa sedang dibangunkan. Pada masa ini, bagaimanapun, perkembangan itu masih belum sampai ke peringkat penerbitan dokumen rasmi. Spesifikasi OSEK/VDX OS. Dokumen terakhir yang dikeluarkan secara rasmi ialah semakan 1 versi 2.1 bertarikh 13 November 2000. Edisi ini adalah hasil semakan yang teliti edisi sebelumnya 1 versi 2.0, di mana beberapa kecacatan serius dan beratus-ratus komen kecil ditemui. Kecacatan ditemui oleh pembangun RTOS itu sendiri dan oleh pencipta aplikasi. Beberapa kecacatan adalah sangat serius sehingga menyebabkan mustahil untuk mencipta RTOS yang berfungsi dengan betul pada beberapa platform perkakasan. Kerja berkumpulan mengambil pendekatan yang sangat bertanggungjawab untuk membetulkan kecacatan dan komen. Cukuplah untuk mengatakan itu senarai penuh masalah dan penyelesaian yang dicadangkan mengandungi lebih banyak halaman daripada spesifikasi itu sendiri. Spesifikasi OSEK/VDX OS mentakrifkan antara muka perisian untuk melaksanakan fungsi RTOS. Antara muka perisian ditentukan dalam bahasa pengaturcaraan C (standard ANSI-C digunakan), walaupun pelaksanaan RTOS juga boleh dilakukan dalam bahasa pengaturcaraan lain. Mobiliti aplikasi disokong pada tahap kod sumber. Diandaikan bahawa aplikasi hanya boleh disusun semula apabila pelaksanaan RTOS diganti. Walau bagaimanapun, kemudahalihan 100% masih tidak dijamin, dan apabila memindahkan aplikasi dari satu platform ke platform yang lain, beberapa perubahan pada kedua-dua kod sumber dan perihalan konfigurasi mungkin diperlukan. Ini kerana spesifikasi mentakrifkan fungsi khusus pelaksanaan, dan konfigurasi mungkin termasuk atribut yang direka untuk mengoptimumkan RTOS dan aplikasi untuk pelaksanaan tertentu. Walau bagaimanapun, usaha untuk memindahkan aplikasi masih jauh lebih rendah berbanding apabila menggunakan RTOS bukan standard, dan pemindahan boleh dilakukan pada peringkat penyepaduan dan bukannya pembangunan perisian sebenar. Kandungan spesifikasi OSEK/VDX OS. Spesifikasi mengandungi bahagian yang mengawal selia: seni bina OS, pengurusan tugas, pengendalian gangguan, pemprosesan acara, penyegerakan menggunakan sumber yang dikongsi, penggera (kawalan oleh pemasa dan pembilang), penghantaran mesej, pengendalian ralat dan penyahpepijatan, perihalan panggilan sistem. 41 Produk dan sistem perisian Terdapat juga bahagian yang mentakrifkan ciri pelaksanaan RTOS dan senarai perubahan (kawalan versi). Perlu diingatkan bahawa spesifikasi memisahkan keperluan kawal selia (wajib) dan hanya bahagian deskriptif yang menerangkan ciri-ciri spesifikasi. Ciri-ciri utama sistem pengendalian yang memenuhi spesifikasi OSEK/VDX OS dibincangkan di bawah. Seni bina OS. Tegasnya, seni bina RTOS tidak diterangkan dalam spesifikasi, kerana ia tidak berbeza daripada yang digunakan secara tradisional dalam kernel masa nyata, dan bahagian tersebut mengandungi penerangan umum tentang prinsip operasi RTOS. RTOS menguruskan dua jenis objek yang bersaing untuk penggunaan CPU: tugas dan pengendali gangguan. Tugas bersaing berdasarkan keutamaan statik yang ditakrifkan oleh perisian, iaitu, RTOS menyokong penjadualan dengan keutamaan tetap. Pengendali gangguan mempunyai keutamaan yang lebih tinggi daripada tugas dan dijadualkan oleh perkakasan. Disebabkan pengedaran keutamaan ini, sebarang suis konteks tugas yang disebabkan oleh melaksanakan panggilan sistem dalam pengendali gangguan ditangguhkan sehingga pengendali gangguan selesai atau pengendali paling luar selesai apabila memproses gangguan bersarang. Mengikut dua jenis objek yang bersaing, spesifikasi mentakrifkan dua tahap operasi - tahap tugas dan tahap gangguan. Juga ditakrifkan tahap logik penjadual, walaupun tahap ini tidak digunakan dalam spesifikasi dan tidak kelihatan kepada pengguna RTOS. Perlu diingat bahawa, walaupun pengagihan keutamaan tugas yang statik sepenuhnya dan pengendali gangguan, situasi penyongsangan keutamaan terhad masa mungkin berlaku semasa pelaksanaan aplikasi. Ini berlaku apabila tugas keutamaan rendah mendahului tugas keutamaan lebih tinggi atau tugas menghalang pengendali gangguan daripada melaksanakan sehingga beberapa ambang gangguan perkakasan. Kejadian situasi sedemikian dijelaskan dengan menggunakan protokol penyegerakan apabila mengakses bahagian kritikal dan dikawal sepenuhnya oleh aplikasi. Walau bagaimanapun, dalam apa jua keadaan, penyongsangan keutamaan terikat masa tidak berlaku, yang memastikan pelaksanaan tugas tepat pada masanya dengan penetapan keutamaan statik yang betul. Kelas pematuhan. Salah satu keperluan utama untuk OSEK/VDX OS ialah keupayaan untuk menggunakan RTOS pada pemproses pelbagai kapasiti, daripada mikropengawal 8-bit dengan beberapa puluh kilobait ROM dan beberapa kilobait RAM, kepada pemproses 32-bit dengan ratusan kilobait. ROM dan RAM. Untuk memenuhi keperluan ini, spesifikasi secara khusus menerangkan empat kelas pematuhan. Kelas pematuhan ditentukan oleh ciri-ciri berikut: a) permintaan pengaktifan berbilang 42 No. 4, 2001 (dibenarkan atau tidak dalam kelas tertentu); b) sokongan untuk tugas dengan keadaan menunggu, iaitu apa yang dipanggil tugas lanjutan; c) bilangan tugas setiap tahap keutamaan; d) parameter kuantitatif mandatori (minimum) RTOS (contohnya, bilangan tugas boleh laku, bilangan sumber yang disokong untuk mengakses bahagian kritikal, dsb.). Spesifikasi mentakrifkan kelas pematuhan berikut. Kelas asas 1 (BCC1 – Kelas Pematuhan Asas 1). Tugasan dengan keadaan belum selesai dan berbilang permintaan pengaktifan tidak disokong, hanya satu tugasan bagi setiap tahap keutamaan, iaitu semua tugasan mempunyai keutamaan yang berbeza. Kelas Asas 2 (BCC2). Sama seperti kelas asas 1, tetapi menyokong berbilang permintaan pengaktifan dan berbilang tugas setiap tahap keutamaan. Kelas Pematuhan Lanjutan 1 (ECC1 – Kelas Pematuhan Lanjutan 1). Sama seperti kelas asas 1, tetapi tugasan dengan keadaan belum selesai disokong. Kelas Lanjutan 2 (ECC2). Sama seperti ECC1, tetapi menyokong berbilang permintaan bangun untuk tugasan tanpa keadaan belum selesai dan berbilang tugas setiap tahap keutamaan. Kelas pematuhan membantu pembangun RTOS dan pengguna mencirikan dan menggunakan pelaksanaan sistem dengan betul. Perlu diingatkan bahawa pembekal OSEK/VDX OS hanya boleh melaksanakan beberapa kelas pematuhan untuk mendapatkan sijil pematuhan kepada piawaian. Pengguna, terutamanya syarikat besar, biasanya memerlukan pembangun aplikasi menggunakan hanya kelas pematuhan tertentu, atau bahkan hanya satu kelas, untuk memudahkan penyepaduan, mengurangkan keperluan sumber (seperti memori), dan mempunyai kefleksibelan untuk menukar vendor RTOS. Hakikatnya ialah setiap kelas berikutnya, walaupun tidak diterangkan secara eksplisit, memerlukan pelaksanaan yang lebih rumit, jadi masuk akal untuk mengehadkan keperluan aplikasi kepada kelas minimum yang diperlukan. Contohnya, berbilang permintaan bangun tidur memerlukan overhed yang ketara dalam kedua-dua ingatan dan kitaran CPU, jadi tiada gunanya menggunakan kelas yang menyokong berbilang permintaan jika aplikasi tidak menggunakan ciri ini. Kelas pematuhan menyediakan klasifikasi kasar RTOS yang berguna untuk diikuti. Pada masa yang sama, vendor RTOS bebas menambah penambahbaikan pada pelaksanaan kelas pematuhan. Sebagai contoh, banyak pelaksanaan menyokong berbilang tugas setiap tahap keutamaan walaupun untuk kelas asas Pematuhan 1. Secara amnya, aplikasi berprestasi tinggi, seperti sistem kawalan suntikan bahan api enjin, boleh menggunakan kelas asas 1 kerana ia menyediakan pensuisan tugas disegerakkan sudut cam terpantas dan pengaktifan semula tugas (iaitu berbilang permintaan pengaktifan). - Produk perisian dan sistem tion ) dianggap but semula. Untuk elektronik badan, kelas lanjutan 1 sering digunakan, kerana ia adalah mudah untuk melaksanakan mesin keadaan terhingga menggunakan tugas dengan keadaan menunggu. Pengurusan tugas. RTOS menyokong penjadualan tugas dengan keutamaan tetap dan tiga kaedah penjadualan berbeza - preemptive, non-preemptive dan campuran (dalam spesifikasi, penjadualan digabungkan dengan penjadualan, dan istilah ini tidak digunakan secara berasingan). Dengan penjadualan preemptive, tugas keutamaan yang lebih tinggi sentiasa mendahului tugas keutamaan yang lebih rendah daripada diproses. Dengan penjadualan bukan preemptive, preemptive tersebut berlaku hanya jika tugas keutamaan rendah itu sendiri melepaskan pemproses. Dalam penjadualan bercampur, beberapa tugasan boleh didahulukan dan ada yang tidak boleh didahulukan. Perlu diingatkan bahawa pengendalian gangguan dilakukan dengan cara yang sama untuk sebarang kaedah penghantaran. Apabila menjadualkan tugas dengan keutamaan yang sama, prinsip pertama dirancang, pertama dilaksanakan dipatuhi. Aplikasi biasanya menggunakan penjadualan preemptive untuk mencapai tarikh akhir menggunakan peraturan keutamaan yang agak mudah. Nampaknya penjadualan bukan preemptif boleh digunakan dalam aplikasi dengan signifikan bilangan terhad tugas dan sumber yang dikongsi. Oleh kerana konteks tugas tidak boleh didahulukan mengandungi lebih sedikit daftar pemproses, penukaran konteks lebih pantas dan oleh itu prestasi yang lebih tinggi boleh dicapai dengan penggunaan memori yang lebih rendah. Penghantaran bersama berguna apabila terdapat berbilang tugas keutamaan rendah yang dilaksanakan dengan begitu cepat sehingga tidak masuk akal untuk membuang masa CPU mendahuluinya. OSEK/VDX OS menentukan dua jenis tugas - asas dan lanjutan. Tugas asas hanya boleh berada dalam satu daripada tiga keadaan: tidak aktif, sedia dan berjalan. Tugas lanjutan boleh menjadi pilihan dalam keadaan belum selesai. Keadaan tugasan yang tidak aktif adalah serupa dengan program OS tujuan umum yang berada pada cakera keras. Diandaikan, walaupun tidak dinyatakan secara eksplisit, bahawa tugas yang tidak aktif tidak menggunakan RAM. Spesifikasi juga tidak mengenakan sekatan ke atas bilangan tugas yang tidak aktif dalam aplikasi, yang menunjukkan bahawa mungkin terdapat lebih banyak tugas sedemikian daripada tugas yang diaktifkan. Tugas asas menyokong prinsip pelaksanaan sekali, iaitu, apabila diaktifkan, tugas itu pergi dari keadaan tidak aktif kepada keadaan sedia, kemudian, bergantung pada keutamaan dan kaedah penghantaran, ia menduduki pemproses, bergerak ke keadaan berjalan. Apabila kerja selesai, tugasan ini tamat dan kembali kepada keadaan tidak aktif. Tugasan jenis ini tidak pernah digunakan dalam OS tujuan umum, tetapi ia berkesan dalam aplikasi masa nyata terbenam. No. 4, 2001. Tugas lanjutan boleh memasuki keadaan menunggu melalui mekanisme acara. Jika semua acara yang ditunggu oleh tugasan tidak ditetapkan, maka tugasan itu memasuki keadaan menunggu sehingga sekurang-kurangnya satu daripada acara yang ditunggunya ditetapkan. Spesifikasi tidak mentakrifkan cara untuk menamatkan satu tugas daripada yang lain atau pengendali gangguan. Oleh itu, peralihan kepada keadaan tidak aktif hanya boleh dilakukan daripada keadaan berjalan. Dalam erti kata lain, sesuatu tugas hanya boleh diselesaikan atas inisiatif sendiri. Satu jenis penyiapan tugas ialah penyiapan sambil mengaktifkan tugasan lain atau contoh baharu tugasan yang sama secara serentak, yang membolehkan anda membuat rantaian tugasan. Mengaktifkan semula tugasan yang sudah aktif mengakibatkan ralat dalam kelas pematuhan BCC1 dan ECC1. Dalam kelas pematuhan BCC2 dan ECC2, ini menghasilkan permintaan pengaktifan berbilang, yang bermaksud bahawa tika baharu tugas akan diaktifkan apabila tugasan selesai. Perlu ditekankan bahawa untuk permintaan pengaktifan berbilang, prinsip penjadualan tugas yang sama keutamaannya diikuti: pertama dijadualkan, mula-mula dilaksanakan. Nampaknya berbilang permintaan bangun boleh digunakan dalam aplikasi komunikasi, seperti apabila mesej yang datang daripada rangkaian dikendalikan oleh tugas yang terjaga apabila mesej baharu tiba. Mengganggu pengendalian. Spesifikasi keperluan pengendalian sampukan terdiri daripada bahagian berikut: pengendali sampukan (contohnya, permintaan sampukan daripada peranti luaran), kawalan terpilih bagi sumber sampukan, kawalan pantas bagi pengecaman sampukan. Pengendali gangguan diaktifkan apabila permintaan gangguan berlaku, biasanya daripada peranti luaran, atau daripada pemproses itu sendiri (contohnya, untuk mengendalikan pengecualian). Spesifikasi mentakrifkan tiga kategori pengendali gangguan. Kategori 1 (kategori ISR ​​1). Pengendali dalam kategori ini tidak melakukan panggilan ke RTOS. Dengan kata lain, mereka tidak mengubah keadaan tugas dan objek sistem lain. Biasanya, pengendali sedemikian berjalan pada tahap keutamaan perkakasan tertinggi dan direka bentuk untuk memproses acara dengan masa pelaksanaan terpendek, tanpa penyertaan RTOS. Kategori 2 (kategori ISR ​​2). Bagi pengendali kategori kedua, RTOS secara automatik menyediakan syarat yang diperlukan untuk keupayaan untuk memanggil perkhidmatan RTOS. Secara teknikal, ini dicapai menggunakan kata kunci ISR, jadi pembangun aplikasi tidak perlu risau tentang mencipta konteks untuk mengakses RTOS. Kategori 3 (kategori ISR ​​3). Pemproses kategori ketiga adalah, seolah-olah, gabungan pemproses kategori pertama dan kedua. Jika semasa pelaksanaan pengendali adalah perlu untuk mengakses 43 Produk Perisian dan Sistem RTOS, panggilan sistem EnterISR() mesti dibuat untuk mencipta konteks yang diperlukan, dan pada penghujung pengendali, panggilan LeaveISR() mesti dibuat untuk memaklumkan sistem bahawa pengendali telah selesai (pengendali kategori 2 secara tersirat menyertakan panggilan ini). Hampir semua panggilan yang masuk akal untuk dipanggil daripada pengendali gangguan dibenarkan dalam pengendali kategori kedua dan ketiga (antara panggilan EnterISR/LeaveISR). Sebagai contoh, pengendali gangguan boleh mengaktifkan tugas, menetapkan acara untuk tugas, menghantar mesej, menetapkan penggera, dsb. Pengendali gangguan boleh bersarang, bermakna seorang pengendali boleh mengganggu yang lain. Untuk ini, keadaan perkakasan yang sesuai mesti dibuat. Apabila sampukan bersarang dilaksanakan, penghantaran ditangguhkan sehingga pengendali sampukan paling luar selesai. Mari kita perhatikan dua masalah yang berkaitan dengan penggunaan pengendali gangguan. Yang pertama ialah potensi kesukaran menggunakan pembolehubah tempatan dalam pengendali Kategori 3. Masalahnya ialah pengkompil memastikan pembolehubah tempatan diperuntukkan kepada fungsi pengendali pada permulaan pelaksanaan fungsi. Apabila EnterISR() dipanggil, timbunan boleh diusik, dan pembolehubah tempatan ini menjadi tidak boleh ditangani, bermakna mengaksesnya selepas memanggil EnterISR() akan mengakibatkan pengalamatan yang salah. Malangnya, keadaan ini juga boleh timbul apabila pembangun aplikasi tidak mentakrifkan pembolehubah tempatan secara eksplisit. Kerana pengkompil boleh mencipta pembolehubah tempatan tersembunyi untuk melaksanakan beberapa operasi (contohnya, untuk melaksanakan operasi bit pada pemproses 8-bit). Itulah sebabnya spesifikasi menunjukkan kewujudan masalah sedemikian, yang boleh dielakkan sepenuhnya hanya dengan meninggalkan sepenuhnya penggunaan pengendali kategori ketiga. Masalah kedua melibatkan penyarang pengendali kategori 2 atau 3 dalam pengendali kategori 1. Dalam kes ini, penghantaran ditangguhkan selama-lamanya kerana ia tidak boleh dilaksanakan selepas pengendali bersarang selesai (memandangkan masih terdapat pengendali luar), tetapi juga tidak dilaksanakan selepas pengendali luar selesai, kerana pengendali kategori pertama tidak berinteraksi dengan OS. Untuk mengelakkan situasi ini, spesifikasi mengesyorkan agar pengendali gangguan diutamakan dengan betul. Perihalan kawalan terpilih bagi sumber gangguan yang disertakan dalam spesifikasi telah dikritik kerana fakta bahawa antara muka program aplikasi yang menyokong melarang atau membolehkan pengecaman permintaan gangguan daripada sumber tertentu (peranti) tidak boleh dinyatakan dalam bentuk bebas platform, oleh itu kemudahalihan aplikasi menggunakan sumber gangguan tersebut tidak tercapai. Di samping itu, apabila menggunakan perkhidmatan ini, 44 No. 4, 2001 penyalahgunaan gangguan tanpa had mungkin berlaku, yang membawa kepada ralat perkakasan. Sebagai contoh, tugas keutamaan rendah yang melumpuhkan gangguan penerimaan bait untuk masa yang singkat port bersiri , boleh digantikan dengan tugas keutamaan yang lebih tinggi, dan kemudian "masa yang singkat" akan berlarutan selama-lamanya, yang akan menyebabkan kehilangan penerimaan bait seterusnya. Kumpulan kerja yang membangunkan spesifikasi bersetuju dengan kritikan ini. Ada kemungkinan ciri kawalan sumber gangguan terpilih akan dialih keluar daripada versi spesifikasi yang akan datang. Kawalan pengecaman gangguan pantas membolehkan anda mendayakan atau melumpuhkan sama ada semua gangguan pemproses, atau hanya yang menjejaskan pengendalian RTOS. Pemprosesan acara. Acara membenarkan tugas lanjutan untuk meletakkan dirinya dalam keadaan siap sedia apabila acara dikosongkan, dan untuk meletakkan tugas itu ke dalam keadaan sedia apabila acara ditetapkan. Malangnya, spesifikasinya tidak begitu jelas tentang pemetaan peristiwa global kepada bit yang digunakan oleh tugas, tetapi diandaikan bahawa setiap tugas lanjutan memiliki topeng acara sendiri, bendera bit, yang boleh dimanipulasi menggunakan panggilan sistem RTOS. Untuk aplikasi terbenam yang disasarkan oleh spesifikasi, tugas ECC1 dan ECC2 memperkenalkan overhed menggunakan kawasan RAM khusus untuk setiap tindanan tugas dan memanipulasi bit peristiwa. Oleh itu, pembangun aplikasi harus menggunakan tugas lanjutan dengan berhati-hati. Penyegerakan menggunakan sumber yang dikongsi. Spesifikasi menggunakan protokol khas untuk mengakses sumber yang melindungi bahagian kritikal kod. Protokol ini dipanggil Protokol Siling Keutamaan OSEK, walaupun ia tidak menerangkan Protokol Siling Keutamaan itu sendiri, tetapi protokol yang mempunyai beberapa sinonim, contohnya, Protokol Loker Tertinggi atau Protokol Perlindungan Keutamaan (dalam piawaian POSIX). Protokol ini membolehkan penghapusan kebuntuan dan penyongsangan keutamaan terhad masa. Ini dicapai dengan segera meningkatkan keutamaan tugas yang meminta sumber dikongsi kepada ambang keutamaan sumber, yang dikira semasa konfigurasi sistem menjadi keutamaan tertinggi (atau lebih tinggi) bagi semua tugas yang mempunyai akses kepada sumber itu. Oleh itu, apabila sumber diminta, ia dijamin bahawa tiada tugas lain yang mempunyai akses kepada sumber itu akan dimasukkan ke dalam keadaan berjalan. Pencapaian utama OSEK/VDX OS boleh dianggap sebagai lanjutan protokol ini, biasanya digunakan hanya untuk tugasan, untuk mengganggu pengendali untuk melindungi bahagian kritikal kod yang dikongsi antara tugas dan pengendali sampukan. Ini mengandaikan bahawa keutamaan pengendali dan tugasan sampukan dipetakan pada skala yang sama dan RTOS mampu memanipulasi tahap sampukan pengawal sampukan dan kebolehan. Sudah tentu, skim sedemikian merosot jika perkakasan hanya menyokong satu tahap gangguan, tetapi ia masih boleh digunakan dalam kes ini. Tetapi ia amat berguna untuk menggunakan sambungan protokol pada mikropemproses yang mempunyai litar gangguan berbilang peringkat, contohnya, Motorola 68K. Penggera (kawalan oleh pemasa dan pembilang). Spesifikasi mentakrifkan objek generik yang dipanggil penggera, yang digunakan untuk mencetuskan tugas berdasarkan nilai pemasa dan pembilang, seperti meter anjakan linear atau sudut. Setiap penggera secara tersirat membayangkan pembilang asas yang mengira nilai beberapa nilai. Spesifikasi tidak mentakrifkan antara muka perisian untuk mengawal kaunter kerana ia boleh dilaksanakan sepenuhnya dalam perkakasan, contohnya menggunakan gangguan jam masa nyata. Perlu diingatkan bahawa beberapa penggera boleh disambungkan ke satu kaunter. Spesifikasi memerlukan RTOS untuk menyediakan pemasa sistem. Setiap penggera diberikan tugas atau pasangan acara tugas. Apabila penggera dicetuskan, tugas itu diaktifkan atau acara ditetapkan untuknya. Penggera dicetuskan apabila nilai kaunter mencapai nilai tetapan penggera. Penggera boleh ditetapkan kepada sama ada nilai pembilang mutlak atau relatif. Anda juga boleh menetapkan nilai penggera menjadi kitaran, sekali gus mengatur pemprosesan acara berkala. Anda dapat melihat bahawa penggera menyediakan mekanisme yang sangat fleksibel dan berkuasa untuk mengendalikan acara. Walau bagaimanapun, pelaksanaan penggera masih agak rumit, terutamanya jika beberapa penggera disambungkan ke kaunter. Pemesejan. Spesifikasi OSEK/VDX OS tidak menerangkan mekanisme mesej, merujuk kepada spesifikasi OSEK/VDX COM, yang secara khusus menerangkan dua kelas pematuhan rangkaian CCCA dan CCCB (CCC ialah singkatan untuk Kelas Pematuhan Komunikasi) untuk mesej tempatan. CCCA menerangkan mesej tidak buffer, iaitu, mesej yang kandungannya dikemas kini setiap kali mesej dihantar. CCCB juga mentakrifkan mesej buffer yang merupakan baris gilir bulat. Kedua-dua jenis mesej mempunyai panjang tetap (dan saiz baris gilir mesej buffer) yang ditentukan semasa konfigurasi aplikasi. Apabila mesej tiba, tugas penerima boleh diaktifkan, acara boleh ditetapkan untuk tugas penerima, atau ia boleh dipanggil fungsi tersuai. Untuk memperakui pelaksanaan OSEK/VDX, vendor RTOS hanya perlu melaksanakan kelas pematuhan rangkaian CCCA. No. 4, 2001. Mengendalikan situasi ralat dan nyahpepijat. Untuk aplikasi penyahpepijatan dan pengesanan, spesifikasi menerangkan prosedur cangkuk dan maklumat ralat lanjutan. Perangkap disediakan oleh pengguna, tetapi digunakan oleh OS itu sendiri. Apabila ralat sistem berlaku, perangkap ralat digunakan untuk membolehkan aplikasi mengenal pasti punca ralat dan mengambil tindakan pembetulan. Dua cangkuk direka bentuk untuk menjejak suis konteks tugas, dengan itu membantu dalam pengesanan aplikasi. Apabila RTOS bermula, cangkuk permulaan dipanggil, di mana tugas yang memulakan aplikasi boleh diaktifkan dan perkakasan dimulakan. Sekiranya berlaku ralat maut, aplikasi boleh menamatkan RTOS, yang memanggil cangkuk terminal di mana perkakasan boleh ditetapkan semula. Maklumat ralat lanjutan disediakan perkhidmatan sistem RTOS jika sistem dikonfigurasikan secara statik untuknya. Penerangan bagi setiap fungsi sistem menunjukkan kod ralat yang boleh dikembalikan dalam konfigurasi standard dan lanjutan. Contohnya, dalam konfigurasi standard, pengaktifan tugas hanya mengembalikan kod kejayaan, tetapi dalam konfigurasi lanjutan ia melaporkan ID tugas yang salah dan permintaan pengaktifan berbilang yang salah. Konfigurasi lanjutan dijangka akan digunakan oleh pembangun aplikasi semasa fasa nyahpepijat, dan aplikasi penyahpepijatan dikonfigurasikan dalam versi standard, memandangkan pengendalian ralat lanjutan memperkenalkan overhed yang ketara, terutamanya dari segi masa CPU. Walau bagaimanapun, terdapat masalah yang berkaitan dengan perbezaan dalam masa pelaksanaan aplikasi antara konfigurasi standard dan lanjutan (pembangun aplikasi harus mengetahui kemungkinan akibat daripada perbezaan ini). Piawaian OSEK/VDX OS memenuhi hampir semua keperluan hari ini bagi pembangun aplikasi automotif dan digunakan oleh kebimbangan seperti Chrysler dan BMW. Kejayaan spesifikasi adalah kerana perkongsian rapat antara pelanggan dan pembekal RTOS dalam membangunkan spesifikasi dan perhatian yang teliti terhadap perincian untuk mencapai keseimbangan kefungsian dan kecekapan pelaksanaan, serta untuk kestabilan sistem terbenam. Rujukan 1. Kopetz H. Sistem Masa Nyata. Prinsip Reka Bentuk untuk Aplikasi Terbenam Teragih. Penerbit Akademik Kluwer. MA, 1997. 2. Sistem Operasi OSEK/VDX, Versi 2.1 semakan 1, 13. November 2000. 3. OSEK/VDX Communication, Versi 2.2.2, 18 Disember 2000. 45

Ulasan dibentangkan ciri perbandingan OS RV hadir pada pasaran Rusia, dengan merujuk kepada penggunaan dalam sistem kawalan penerbangan.

05/05/2008, Isnin, 23:56, waktu Moscow

Terima kasih kepada perkembangan teknologi komputer, baru-baru ini menjadi mungkin untuk menugaskan kepada satu tugas modul yang sebelum ini dilakukan oleh beberapa modul pemproses, sambil meningkatkan ciri berat dan saiz sistem kawalan dan mengurangkan kosnya. Trend dalam teknologi penerbangan ini telah membawa kepada kemunculan konsep avionik modular bersepadu - IMA (Integrated Modular Avionics, IMA).

Masalah mengintegrasikan fungsi kawalan ke dalam satu modul adalah perlu untuk memisahkan sekarang sumber yang dikongsi(masa pemproses, memori, saluran pertukaran) antara pelbagai tugas, sambil menyediakan tahap kebolehpercayaan dan kebebasan fungsi yang sama seperti sebelumnya. Peranan utama Sistem pengendalian masa nyata memainkan peranan dalam menyelesaikan masalah ini.

Pada masa ini, terdapat beberapa RTOS komersial untuk aplikasi kritikal di pasaran dunia (Jadual 1). Artikel ini memberikan gambaran keseluruhan RTOS yang tersedia di pasaran Rusia, berdasarkan maklumat daripada sumber terbuka dan pengalaman peribadi pengarang.

Dokumen yang mengawal selia keperluan untuk RTOS

Piawaian DO-178 (Pertimbangan Perisian dalam Sistem Bawaan Udara dan Pensijilan Peralatan) mentakrifkan keperluan untuk proses pembangunan perisian dan ketelitian pengesahannya bergantung pada tahap kritikalnya. Tahap kritikal perisian ditentukan berdasarkan analisis keterukan akibat kegagalan perisian. Terdapat lima tahap kritikal perisian secara keseluruhan (dari A hingga E).

MILS (Multiple Independent Levels of Security) ialah pendekatan khas untuk reka bentuk OS yang menghalang penyebaran ralat perisian aplikasi semasa masa jalan, dan juga memudahkan pengesahan atur cara kerana modulariti perisian. Semua aplikasi diletakkan dalam bahagian yang dipanggil (partition). Partition telah memperuntukkan sumber (kawasan memori, masa pemproses semasa setiap kitaran sistem, akses kepada saluran komunikasi, dsb.). Akses kepada sumber yang diperuntukkan dijamin oleh OS yang berjalan dalam mod penyelia. Oleh itu, perisian aplikasi dengan tahap kritikal yang berbeza boleh dijalankan pada satu modul pemproses yang menjalankan satu OS - jika kegagalan berlaku dalam perisian yang kurang kritikal (dan, oleh itu, kurang diuji), ini tidak akan menjejaskan operasi bahagian lain, kerana percubaan untuk "merampas" sumber orang lain akan disekat oleh sistem pengendalian. Idea MILS menyamai idea IMA dan DO-178B.

Ralat 404: Halaman tidak ditemui.

Ini mungkin berlaku atas salah satu sebab berikut:

– ralat semasa menaip alamat halaman (URL)
– mengikuti pautan "pecah" (tidak berfungsi, salah).
– halaman yang diminta tidak pernah berada di tapak atau ia telah dipadamkan

Awak boleh:

– kembali menggunakan butang Kembali pelayar
– semak ejaan yang betul bagi alamat halaman (URL)
– gunakan peta tapak atau pergi ke halaman utama

Piawaian ARINC-653 (Avionics Application Software Standard Interface) menentukan antara muka perisian aplikasi APEX yang menyokong konsep partition gaya MILS. Antara muka ini termasuk fungsi untuk mengurus partition, proses, perkongsian masa, komunikasi antara dan dalam partition, dan memantau status sistem. Perlu diingatkan bahawa piawaian ARINC-653 menerangkan pendekatan yang diterima umum untuk melaksanakan idea MILS untuk IMA, walaupun mungkin terdapat pelaksanaan lain. RTOS penerbangan yang mematuhi ARINC-653 mempunyai kelebihan kerana piawaian ini terkenal dan difahami oleh badan pensijilan antarabangsa, jadi lebih mudah untuk mendapatkan sijil pematuhan DO-178B untuk sistem yang dibina mengikut piawaian ini.

Standard Komponen Perisian Boleh Digunakan Semula. Selaras dengan DO-178B, perisian sistem aplikasi penerbangan tertentu menjalani keseluruhan prosedur pensijilan, walaupun ia menggunakan modul (komponen) yang telah diperakui sebelum ini sebagai sebahagian daripada sistem lain. Salah satu inisiatif terbaru FAA (Agensi Pensijilan Penerbangan Persekutuan, Amerika Syarikat) adalah untuk menentukan kriteria untuk kebolehgunaan semula perisian tanpa pensijilan semula. Komponen yang mungkin tidak diperakui semula dipanggil RSC (Komponen Perisian Boleh Digunakan Semula). Untuk mendapatkan sijil untuk RSC, anda perlu berbelanja usaha lebih, tetapi kemudian RSC menyediakan penjimatan yang serius.

Dokumen Rusia yang mentakrifkan keperluan perisian (termasuk RTOS):

  • GOST R ISO/IEC 51904-2002 ("Perisian sistem terbenam. Keperluan am untuk pembangunan dan dokumentasi") - analog DO-178B untuk penerbangan ketenteraan;
  • KT-178A ("Keperluan kelayakan bahagian 178A") - analog DO-178B untuk penerbangan awam;
  • GOST R ISO/IEC 12207-99 ("Teknologi maklumat. Proses kitaran hayat perisian").

Perbandingan OS RT telah dijalankan mengikut 13 parameter, yang mengambil kira kriteria teknikal, kemudahan pembangunan dan parameter ekonomi.

Parameter pemasaan OS

Salah satu keperluan utama untuk RT OS ialah masa tunda minimum untuk memproses acara. Dalam amalan, ini bermakna bahawa parameter berikut mestilah kecil:

  • masa tindak balas gangguan - masa antara kejadian sebenar gangguan dan permulaan pemprosesan arahan pertama pengendali gangguan;
  • mengawal masa penukaran benang - masa menukar antara dua benang dalam satu proses;
  • masa penukaran konteks proses (hanya untuk OS yang menyokong model proses) - masa menukar antara dua benang kawalan kepunyaan dua proses berbeza.

Malangnya, adalah mustahil untuk membandingkan secara objektif parameter yang ditentukan Menentukan RTOS yang berbeza tidak mudah, kerana parameter ini bergantung bukan sahaja pada kualiti OS, tetapi juga pada keupayaan platform perkakasan yang digunakan. Sebaik-baiknya, semua sistem pengendalian yang dibandingkan harus dipasang pada platform perkakasan yang sama, selepas itu ukuran yang sesuai perlu dibuat. Tetapi walaupun ukuran ini tidak akan memberikan hasil yang objektif, kerana sistem pengendalian yang berbeza boleh lebih atau kurang disesuaikan dengan perkakasan tertentu.

Untuk membandingkan parameter masa, artikel ini menggunakan data berpecah-belah yang terdapat di Internet, yang sering diperoleh apabila menguji OS pada pelbagai peralatan, manakala komposisi dan sifat ujian tidak selalu jelas.

Data yang agak objektif boleh dianggap hasil yang diperoleh oleh pakar dari majalah Dedicated System, yang menjalankan ujian dan perbandingan praktikal QNX RTOS 6.1, VxWorks AE 1.1 dan Windows CE.NET pada platform x86. Walaupun data ini sudah lapuk pada masa ini, pengarang artikel ini tidak dapat mencari bahan yang lebih terkini. Dalam jadual Rajah 2 menunjukkan data perbandingan prestasi terpilih antara QNX Neutrino 6.1 dan VxWorks AE 1.1. Laporan Dedicated Systems memberi keutamaan kepada QNX dari segi prestasi, dengan nisbah skor ditetapkan pada 9:5 (QNX:VxWorks), kerana semasa proses ujian, dua ralat ditemui dalam VxWorks, yang mana ia perlu menghubungi sokongan untuk membetulkan mereka.

Dalam jadual 3 menunjukkan data tentang ciri-ciri LynxOS. Komposisi ujian yang digunakan tidak dinyatakan. Bagi data mengenai ciri-ciri LynxOS, lajur keempat (ujian pada platform x86) adalah menarik. Berbanding dengan VxWorks dan QNX, LynxOS RT OS menunjukkan kelewatan yang besar dalam bertindak balas terhadap gangguan (lebih daripada 5 kali). Masa suis konteks (bermaksud masa untuk bertukar antara dua utas dalam satu proses) adalah sama seperti QNX dan kira-kira 1.5 kali kurang daripada VxWorks.

Kestabilan parameter masa

Selain ciri pemasaan, kestabilan ciri ini juga penting untuk RT OS. Kriteria inilah yang sebahagian besarnya menentukan "ketegaran" OS RT, i.e. kebolehramalan masa pemprosesan data, saat mengeluarkan keputusan, dsb.

Berdasarkan data daripada log Sistem Terdedikasi, QNX mendahului VxWorks dalam kriteria ini dari segi penyebaran ciri dalam satu siri ujian yang serupa (nisbah masa maksimum kepada nilai purata adalah kurang ketara) dan dengan peningkatan beban. (masa penukaran benang apabila bilangan benang meningkat 2...128 unit untuk QNX meningkat hanya 1.65 kali, manakala untuk VxWorks - 2.24 kali).

Menurut data yang diperolehi daripada RTSoft, diketahui bahawa LynxOS mempunyai ciri yang lebih kurang sama dengan VxWorks.

Menguruskan akses kepada sumber

Mari kita menilai kualiti kawalan capaian yang ditawarkan oleh satu atau satu RT OS kepada sumber kritikal sistem pengkomputeran, seperti memori dan masa pemproses.

Soalan pertama yang perlu dijawab ialah sama ada OS menyokong model proses. Proses ialah entiti logik yang memiliki satu atau lebih utas, sumber berkaitannya dan konteks—kandungan daftar dan pembilang pada bila-bila masa.

Tugas proses adalah:

  • dalam menyekat akses kepada memori capaian rawak antara pelbagai program dalam proses pelaksanaan;
  • dalam mengehadkan skop pembolehubah global pada masa penyusunan (kritikal jika perisian aplikasi ditulis dalam bahasa C, yang tidak menyokong persempadanan semula tersebut).

Segmentasi juga menyediakan pengasingan ruang alamat (dalam pengertian ini, keupayaan sharding dan proses diduplikasi). Selain itu, sharding menyediakan setiap segmen yang mengandungi satu atau lebih proses (atau urutan jika OS tidak menyokong model proses) dengan belanjawan masa yang dijamin. Dengan cara ini, jika benang keutamaan tinggi masuk ke dalam gelung dan mengganggu segmennya, semua segmen lain akan menerima masa CPU mengikut tetapan masa reka bentuk dan terus berfungsi seperti biasa.

LynxOS dan QNX menyokong kedua-dua model proses dan sharding. VxWorks OS mempunyai mekanisme sharding, tetapi tidak menyokong model proses. Secara umum, ini boleh diterima kerana sharding menyediakan pemisahan ruang alamat. Tetapi kekurangan proses membawa beberapa kesulitan. Biasanya, pembahagian kepada segmen dilakukan berdasarkan tujuan perisian yang dimaksudkan dan kritikalnya. Sebagai contoh, sesetengah segmen mungkin mengandungi perisian kawalan untuk sistem navigasi penerbangan yang mempunyai tahap kritikal yang tinggi. Tetapi perisian ini juga merupakan kompleks yang agak kompleks, yang logik untuk dibahagikan kepada modul bebas (memori). VxWorks OS tidak menyediakan ciri ini, iaitu, segmen akan terdiri daripada benang dengan ingatan bersama, yang merumitkan organisasi pembangunan selari dan, akhirnya, mengurangkan kebolehpercayaan perisian.

Sokongan untuk berbilang pemproses dan sistem teragih

Kos modul berbilang pemproses baru-baru ini telah menurun dengan ketara, dan oleh itu ia semakin digunakan dalam sistem terbenam. Sudah tentu, OS RT mesti menyediakan sokongan untuk papan tersebut.

Satu lagi hala tuju yang menjanjikan dalam membina senjata api bergerak sendiri ialah sistem teragih, di mana modul dipisahkan dalam ruang, dan komunikasi antara mereka berlaku melalui beberapa persekitaran rangkaian. Sekali lagi, RT OS yang digunakan mesti mempunyai cara yang mudah dan boleh dipercayai untuk mengatur interaksi modul: sokongan untuk pelbagai protokol rangkaian, cara untuk memastikan ketelusan rangkaian.

QNX RT OS menawarkan sokongan untuk papan berbilang pemproses. Untuk VxWorks, sokongan tersebut baru sahaja diumumkan. Belum ada versi penerbangan LynxOS dengan sokongan untuk papan berbilang pemproses.

Berkenaan dengan sokongan untuk protokol rangkaian, perlu diingatkan bahawa RT OS LynxOS, VxWorks dan QNX mempunyai keupayaan yang lebih kurang sama (dan luas). Satu kelebihan tambahan QNX RT OS ialah seni bina subsistem rangkaian khasnya, yang menyediakan "ketelusan" rangkaian program aplikasi: sebarang proses boleh memanggil proses lain pada modul jauh dengan cara yang sama seperti proses pada modul tempatan.

Sokongan sistem fail

Keupayaan untuk menyimpan maklumat dalam bentuk fail adalah mudah dan tradisional. Sebaliknya, kekurangan kemungkinan sedemikian menimbulkan kesukaran apabila menyimpan data yang jarang diubah dan mencipta sistem teragih.

Dalam jadual Rajah 4 menunjukkan sokongan sistem fail untuk setiap sistem pengendalian yang sedang dipertimbangkan.

QNX mempunyai sokongan yang paling meluas untuk sistem fail. Di samping itu, sistem fail kilatnya adalah tahan terhadap kesalahan.

Kualiti dokumentasi

Kualiti dokumentasi untuk RT OS LynxOS, VxWorks, QNX agak tinggi. Walau bagaimanapun, terdapat juga aduan mengenai dokumentasi:

  • QNX ialah penerangan yang sangat baik tentang prinsip seni bina dan reka bentuk, tetapi penerangan yang tidak mencukupi bagi antara muka pengaturcaraan aplikasi (tidak semua parameter diterangkan, terdapat ketidakkonsistenan);
  • VxWorks - tiada penjelasan tentang prinsip operasi dan penerangan yang tidak mencukupi tentang proses kompleks mengkonfigurasi OS.

Walau bagaimanapun, syarikat sedang mengusahakan kualiti bahan. Dokumentasi untuk versi terkini QNX (6.3.2) telah berkembang dengan ketara, beberapa bahagian telah diolah semula.

Kualiti sokongan teknikal

Dari segi kualiti sokongan teknikal rasmi, peneraju yang tidak diragui ialah LynxOS. LynuxWorks berjanji untuk menjawab mana-mana soalan teknikal dalam masa 4 jam dari saat permintaan itu diterbitkan. LynxOS diedarkan di Rusia oleh RTSoft, yang mempunyai kakitangan yang ramai pekerja yang mampu memberikan bantuan yang berkelayakan. Kelemahan LynxOS ialah OS belum begitu meluas di Rusia; oleh itu, tidak ada komuniti pengguna yang mantap, dan tidak ada forum bahasa Rusia.

QSS (pembuat QNX) juga menawarkan sokongan teknikal yang baik, tetapi masa tindak balas yang cepat tidak dijamin. Tidak seperti LynxOS, QNX RT OS mempunyai komuniti pengguna yang teratur baik di luar negara mahupun di Rusia. Jawapan kepada kebanyakan soalan boleh didapati di forum ini. QNX di negara kita diedarkan oleh SVD Embedded Systems, yang pekerjanya dapat memberikan sokongan teknikal yang cekap dan menjalankan kerja untuk menyesuaikan OS kepada papan pemproses tertentu. Di samping itu, syarikat itu mempunyai hubungan langsung dengan QSS dan boleh mendapatkan nasihat tentang isu-isu kompleks daripada pembangun QNX RT OS.

WindRiver, pembangun VxWorks, secara tradisinya mematuhi dasar teknikal tertutup, iaitu, maklumat tentang prinsip operasi OS agak sukar diperoleh. OS ini juga tidak mempunyai forum berbahasa Rusia. VxWorks RT OS diedarkan di negara kita oleh syarikat AVD Systems, yang terutamanya terlibat dalam penjualan perisian siap pakai dan penyelesaian perkakasan asal asing.

Sumber terbuka

OS RT terbuka mempunyai sekurang-kurangnya tiga kelebihan:

  • pembangun perisian aplikasi boleh memahami masalah yang kompleks tanpa melibatkan sokongan teknikal;
  • lebih mudah untuk diperakui (tiada penanda halaman, dsb.);
  • pembangunan yang lebih dinamik, kerana syarikat pembangun RT OS sering menerima bukan sahaja permintaan untuk pembetulan ralat, tetapi juga cadangan untuk menghapuskan ralat dan menambah baik sistem. Komuniti pembangun RTOS sumber terbuka, sebagai peraturan, berkembang lebih cepat dan lebih teratur. Pakar bebas kelihatan membantu menyelesaikan masalah perkhidmatan sokongan teknikal dan mengambil bahagian dalam pembangunan, penyahpepijatan dan ujian sistem.

Sejak September 2007, QSS telah membuka sumber teras QNX (termasuk pakej Adaptive Partitioning, pakej High Availability). Tidak lama kemudian, kod sumber subsistem rangkaian dibuka. Pada masa ini, versi beta 6.4.0 tersedia untuk dimuat turun di tapak web rasmi.

Perlu diingat bahawa hari ini tidak semua modul QNX dibuka (contohnya, tiada kod untuk grafik dan sistem fail), dan lesen mengenakan sekatan ke atas penggunaan "kod sumber": hanya untuk kegunaan bukan komersial. Walau bagaimanapun, pengguna QNX mendapat faedah di atas secara percuma.

Kod sumber LynxOS dan VxWorks tersedia secara komersial. Harga untuk produk sedemikian boleh dirunding.

Alatan

Ketersediaan yang baik alatan sebahagian besarnya menentukan kualiti dan kelajuan pembangunan program aplikasi untuk OS tertentu. Perlu diingat bahawa LynxOS, VxWorks dan QNX pada masa ini menyediakan kualiti yang baik alatan yang termasuk persekitaran pembangunan bersepadu (IDE) dan penyahpepijatan perisian aplikasi, alat pemprofilan program (untuk mengesan kesesakan dalam prestasi, ingatan, dsb.). Ergonomik ISD untuk OS RT ini secara amnya tidak kalah dengan alat pembangunan yang dibangunkan untuk OS konvensional (contohnya, MS Windows).

Kemudahalihan perisian aplikasi

Kemudahalihan perisian aplikasi memungkinkan untuk menggunakannya di bawah sistem pengendalian lain (termasuk OS bukan RT). Mudah alih memberikan pembangun perisian aplikasi kebebasan tertentu daripada RT OS: jika perlu, anda boleh bertukar kepada OS lain pada kos rendah.

Keupayaan untuk menulis perisian mudah alih pada masa ini ditentukan dengan mematuhi piawaian POSIX. Semua OS RT yang dianggap menyokong standard POSIX 1003.1. LynxOS mempunyai kelebihan - OS ini serasi binari dengan Linux. Itu dia aplikasi Linux boleh dijalankan di bawah LynxOS tanpa menyusun semula. Sebaliknya, aplikasi LynxOS boleh dijalankan pada Linux (versi 2.4.x dengan pustaka bahasa C glibs versi 2.2.2).

Selebihnya RT OS memerlukan penyusunan semula mereka untuk menjalankan aplikasi Linux. Dalam kes ini, proses mengalihkan walaupun aplikasi yang mematuhi POSIX selalunya boleh menjadi agak intensif buruh kerana perbezaan dalam pelaksanaan perpustakaan dan penyusun.

Sokongan seni bina pemproses

Pembangun domestik sistem kawalan untuk penerbangan dalam tempoh peralihan hari ini daripada sistem pengendalian dalaman kepada sistem komersil sering mendapati diri mereka berada dalam situasi di mana mereka perlu memilih dan menyesuaikan RTOS kepada yang sedia ada papan pemproses. Dalam kes ini, salah satu hujah utama apabila memilih OS ialah sokongan untuk seni bina pemproses yang digunakan pada papan.

Pematuhan piawaian penerbangan

Dalam amalan asing, perisian untuk sistem avionik mesti mempunyai sijil pematuhan dengan piawaian DO-178B. Jika perisian tahap yang berbeza kritikal dilaksanakan pada satu modul pemproses, maka RTOS yang digunakan mesti menyokong konsep partition. (Jika tidak, hampir mustahil untuk membuktikan bukan penyebaran ralat). Seperti yang telah disebutkan, adalah lebih baik jika antara muka pengaturcaraan RTOS mematuhi piawaian ARINC-653, kerana piawaian itu terkenal di kalangan badan pensijilan asing.

LynxOS ialah peneraju dalam hal pematuhan standard. Ia menyokong ARINC-653, dan terdapat banyak contoh sistem diperakui DO-178B yang dibina di atasnya. Perkara utama ialah LynuxWorks menawarkan satu set RSC (walaupun pengarang artikel tidak tahu apa-apa tentang harga).

VxWorks mematuhi piawaian ARINC-653, dan sistem yang dibina di atasnya boleh diperakui kepada DO-178B (terdapat banyak contoh).

QNX tidak mematuhi ARINC-653, dan belum ada sistem diperakui DO-178B berdasarkannya.

Perlu diingatkan bahawa sistem QNX pada dasarnya boleh digunakan untuk membina IMA, kerana QNX menyokong kaedahnya sendiri untuk menyediakan konsep partition, yang merupakan alternatif yang sangat baik untuk ARINC-653 dan, sebagai tambahan, membolehkan anda menjimatkan masa pemproses. .

Mengenai piawaian Rusia yang serupa untuk penerbangan ketenteraan (GOST R ISO/IEC 51904-2002), masih belum ada satu contoh sistem yang diperakui, walaupun pada dasarnya sistem sedemikian boleh dibangunkan berdasarkan mana-mana OS yang sedang dipertimbangkan. Untuk OS QNX RT, kerja sedang dijalankan untuk menyediakan modul OS utama untuk pensijilan.

Pembangunan sistem latihan pakar

Kepantasan dan kualiti latihan untuk kakitangan yang bekerja dengan OS RT dan pelbagai alat pembangunan perisian dan penyahpepijatan secara langsung berkaitan dengan kelajuan pembangunan perisian dan kualitinya. Syarikat terkemuka dalam bidang perisian terbenam dan sistem, seperti WindRiver, LynuxWorks, QSS, menjalankan program kursus dan latihan berskala besar untuk mengkaji penggunaan produk syarikat, termasuk OS RT.

Hasil perbandingan

QNX Neutrino RTOS ialah OS paling maju dari sudut teknikal, mempunyai set yang bagus alat, mempunyai harga yang agak rendah. Seni bina mikrokernel memastikan kebolehpercayaan yang tinggi dan modulariti sistem yang dibangunkan. Kelebihan tambahan ialah kod sumber terbuka. Tetapi terdapat juga "terbang dalam salap": pada masa ini QNX boleh dikatakan tidak digunakan di mana-mana dalam penerbangan, dan dalam hal ini OS ini kalah kepada pesaingnya (LynxOS dan VxWorks). Kelemahan tambahan QNX: tidak mematuhi standard ARINC-653.

Perlu diingatkan bahawa, pada dasarnya, QNX Neutrino mempunyai semua mekanisme yang diperlukan untuk bekerja dalam sistem avionik. Di samping itu, kebolehpercayaan dan ketersediaan tinggi sistem berasaskan QNX telah terbukti dalam industri lain di mana kos ralat adalah lebih tinggi daripada dalam penerbangan (kawalan reaktor nuklear).

Kerja untuk menyediakan pensijilan QNX Neutrino mengikut keperluan piawaian penerbangan domestik sedang dijalankan oleh SWD Software.

RTOS LynxOS-178, sebaliknya, mempunyai semua sijil yang diperlukan di luar negara, walaupun menurut banyak kriteria lain ia kelihatan kurang disukai daripada QNX Neutrino. Ambil perhatian bahawa untuk digunakan dalam industri penerbangan Rusia, LynxOS-178 RTOS juga mesti diperakui mengikut GOST domestik.

VxWorks OS mempunyai sejarah penggunaan yang panjang dalam aplikasi kritikal misi di luar negara. Walau bagaimanapun, analisis kami menunjukkan bahawa ia kelihatan kurang disukai berbanding dua sistem pengendalian pertama mengikut banyak kriteria. Di samping itu, kredibiliti VxWorks terjejas oleh strategi pembangunan tertutupnya.

Kumpulan pakar / R&D.CNews

Cetak

Ciri tersendiri RTOS daripada OS tujuan umum

Sistem pengendalian tujuan am, terutamanya berbilang pengguna seperti UNIX, bertujuan untuk pengagihan optimum sumber komputer antara pengguna dan tugas. Dalam sistem pengendalian masa nyata, tugas sedemikian memudar ke latar belakang - semuanya surut sebelum tugas utama - mempunyai masa untuk bertindak balas terhadap peristiwa yang berlaku pada objek. Perbezaan lain ialah penggunaan sistem pengendalian masa nyata sentiasa dikaitkan dengan peralatan, dengan objek, dengan peristiwa yang berlaku pada objek. Sistem pengendalian masa nyata tertumpu pada pemprosesan peristiwa luaran. Sistem pengendalian masa nyata mungkin mempunyai antara muka pengguna yang serupa dengan OS tujuan umum, tetapi ia direka secara berbeza. Selain itu, aplikasi sistem pengendalian masa nyata sentiasa khusus. Jika OS tujuan umum biasanya dilihat oleh pengguna (bukan pembangun) sebagai set aplikasi sedia, maka sistem pengendalian masa nyata hanya berfungsi sebagai alat untuk mencipta perkakasan dan kompleks perisian masa nyata yang khusus. Oleh itu, kelas terluas pengguna sistem pengendalian masa nyata ialah pembangun sistem masa nyata, orang yang mereka bentuk kawalan dan sistem pemerolehan data. Apabila mereka bentuk dan membangunkan sistem masa nyata yang khusus, pengaturcara sentiasa mengetahui dengan tepat peristiwa yang boleh berlaku di kemudahan dan mengetahui jangka masa kritikal untuk menyelenggara setiap acara ini. Sistem RT mesti mempunyai masa untuk bertindak balas terhadap peristiwa yang berlaku di kemudahan dalam masa kritikal untuk acara ini. Nilai masa kritikal untuk setiap peristiwa ditentukan oleh objek dan peristiwa itu sendiri, dan boleh berbeza, tetapi masa tindak balas sistem mesti diramalkan (dikira) semasa mencipta sistem. Kegagalan untuk bertindak balas pada masa yang diramalkan dianggap sebagai ralat untuk sistem masa nyata. Sistem mesti boleh bertindak balas kepada peristiwa yang berlaku serentak. Walaupun dua atau lebih peristiwa luaran berlaku serentak, sistem mesti mempunyai masa untuk bertindak balas terhadap setiap peristiwa dalam selang masa kritikal untuk peristiwa ini.

OS masa nyata

OS tujuan umum

Tugas utama

Mempunyai masa untuk bertindak balas terhadap peristiwa yang berlaku pada peralatan

Mengagihkan sumber komputer secara optimum antara pengguna dan tugasan

Apa yang difokuskan?

Mengendalikan Peristiwa Luar

Memproses tindakan pengguna

Bagaimana ia diletakkan

Alat untuk mencipta kompleks perkakasan dan perisian masa nyata tertentu

Ditanggapi oleh pengguna sebagai satu set aplikasi sedia untuk digunakan

Ia bertujuan untuk siapa?

Pemaju yang berkelayakan

pengguna pertengahan

Sistem masa nyata yang keras dan lembut

Terdapat dua jenis sistem masa nyata - sistem masa nyata keras dan sistem masa nyata lembut.

Sistem masa nyata yang keras tidak membenarkan sebarang kelewatan dalam tindak balas sistem dalam apa jua keadaan kerana:

  • keputusan mungkin tidak berguna jika lewat
  • bencana mungkin berlaku jika tindak balas itu ditangguhkan
  • kos terlambat boleh menjadi tidak terhingga.

Contoh sistem masa nyata keras ialah sistem kawalan on-board, sistem perlindungan kecemasan, perakam peristiwa kecemasan.

Sistem masa nyata yang lembut dicirikan oleh fakta bahawa kelewatan tindak balas tidak kritikal, walaupun ia boleh membawa kepada peningkatan dalam kos keputusan dan penurunan dalam prestasi sistem secara keseluruhan. Contohnya ialah operasi rangkaian. Jika sistem tidak mempunyai masa untuk memproses seterusnya pakej yang diterima, ini akan membawa kepada tamat masa pada bahagian penghantaran dan menghantar semula (bergantung pada protokol, sudah tentu). Data tidak hilang, tetapi prestasi rangkaian berkurangan. Perbezaan utama antara sistem masa nyata keras dan lembut boleh dinyatakan seperti berikut: sistem masa nyata keras tidak boleh lewat dalam bertindak balas kepada peristiwa, sistem masa nyata lembut tidak boleh terlambat dalam memberi respons kepada sesuatu peristiwa

Kernel sistem pengendalian

Kernel adalah bahagian tengah sistem pengendalian (OS), menyediakan aplikasi dengan akses yang diselaraskan kepada sumber komputer, memori, luaran. Perkakasan, peranti input dan output luaran yang menterjemah perintah bahasa aplikasi kepada kod binari yang boleh difahami oleh komputer. Sebagai elemen asas OS, kernel menyediakan tahap abstraksi terendah untuk aplikasi mengakses sumber sistem yang diperlukan untuk menjalankannya. Biasanya, kernel menyediakan akses sedemikian kepada proses pelaksanaan aplikasi yang sepadan melalui penggunaan mekanisme komunikasi antara proses dan panggilan aplikasi kepada panggilan sistem OS.

Teras monolitik

Inti monolitik menyediakan set abstraksi perkakasan yang kaya. Semua bahagian inti monolitik beroperasi dalam ruang alamat yang sama. Ini ialah reka bentuk sistem pengendalian di mana semua komponen kernelnya komponen satu program, gunakan struktur umum data dan berinteraksi antara satu sama lain dengan prosedur panggilan terus. teras monolitik - cara tertua organisasi sistem pengendalian. Contoh sistem dengan kernel monolitik ialah kebanyakan sistem UNIX.

Kelebihan: Kelajuan operasi, pembangunan modul yang dipermudahkan.

Kecacatan: Memandangkan keseluruhan kernel beroperasi dalam ruang alamat yang sama, kegagalan dalam salah satu komponen boleh mengganggu keseluruhan sistem.

Sesetengah kernel monolitik lama, terutamanya sistem kelas UNIX/Linux, memerlukan penyusunan semula apabila komposisi perkakasan berubah. Kebanyakan kernel moden membenarkan anda memuatkan modul semasa operasi yang melaksanakan sebahagian daripada fungsi kernel. Dalam kes ini, komponen sistem pengendalian bukan modul bebas, tetapi komponen satu program besar yang dipanggil kernel monolitik, yang merupakan satu set prosedur, setiap satunya boleh memanggil setiap satu. Semua prosedur berjalan dalam mod istimewa.

Mikrokernel

Mikrokernel hanya menyediakan fungsi kawalan proses asas dan set abstraksi minimum untuk bekerja dengan perkakasan. Kebanyakan kerja dilakukan melalui proses pengguna khas yang dipanggil perkhidmatan. Kriteria penentu untuk "microkernelism" ialah penempatan semua atau hampir semua pemacu dan modul dalam proses perkhidmatan.

Kelebihan: Rintangan terhadap kegagalan perkakasan dan ralat dalam komponen sistem. Kelebihan utama seni bina mikrokernel ialah darjat tinggi modulariti kernel sistem pengendalian. Ini menjadikannya lebih mudah untuk menambah komponen baharu padanya. Dalam sistem pengendalian mikrokernel, anda boleh memuatkan dan memunggah pemacu baharu tanpa mengganggu operasinya, sistem fail dll. Proses penyahpepijatan komponen kernel sangat dipermudahkan, kerana versi baharu pemacu boleh dimuatkan tanpa memulakan semula keseluruhan sistem pengendalian. Komponen kernel sistem pengendalian secara asasnya tidak berbeza daripada program pengguna, jadi anda boleh menggunakan alatan biasa untuk menyahpepijatnya. Seni bina mikrokernel meningkatkan kebolehpercayaan sistem kerana kegagalan pada tahap program yang tidak mempunyai keistimewaan adalah kurang berbahaya daripada kegagalan pada tahap mod kernel.

Kecacatan: Menghantar data antara proses memerlukan overhed.

Persekitaran masa jalan

Keperluan untuk persekitaran pelaksanaan sistem masa nyata adalah seperti berikut:

  • memori sistem kecil - untuk kemungkinan pembenamannya;
  • sistem mestilah bermastautin sepenuhnya untuk mengelakkan pertukaran atau pertukaran halaman memori;
  • sistem mesti multitasking - untuk memastikan maksimum penggunaan yang berkesan semua sumber sistem;
  • teras dengan keutamaan untuk menservis gangguan. Keutamaan interupsi bermaksud proses yang sedia untuk dijalankan dan mempunyai keutamaan tertentu semestinya mempunyai keutamaan dalam baris gilir berbanding proses dengan keutamaan yang lebih rendah, dengan cepat menggantikan yang terakhir dan meneruskan pelaksanaan. Kernel menyelesaikan sebarang kerja perkhidmatan sebaik sahaja tugasan dengan keutamaan tertinggi tiba. Ini memastikan kebolehramalan sistem;
  • pengurus keutamaan - membenarkan pembangun aplikasi untuk menetapkan setiap modul but keutamaan yang tidak tertakluk kepada sistem. Tugasan keutamaan digunakan untuk menentukan susunan program yang sedia untuk dilaksanakan dilaksanakan. Alternatif kepada jenis penjadualan ini ialah penjadualan karusel, di mana setiap program yang sedia untuk diteruskan diberi peluang yang sama untuk dijalankan. Dengan kaedah ini, tiada kawalan ke atas program yang akan dilaksanakan dan bila. Ini tidak boleh diterima dalam persekitaran masa nyata. Penghantaran berasaskan keutamaan dan kernel keutamaan gangguan memberi pembangun aplikasi kawalan penuh ke atas sistem. Jika peristiwa keutamaan yang lebih tinggi berlaku, sistem berhenti memproses tugas keutamaan yang lebih rendah dan bertindak balas kepada permintaan yang baru diterima.

Gabungan sifat yang diterangkan di atas mewujudkan persekitaran pelaksanaan masa nyata yang berkuasa dan cekap.

Sebagai tambahan kepada sifat persekitaran masa jalan, ia juga perlu untuk mempertimbangkan perkhidmatan yang disediakan oleh kernel OS masa nyata. Teras mana-mana persekitaran masa jalan masa nyata ialah kernel atau penghantar. Kernel mengawal perkakasan komputer sasaran: pemproses pusat, memori dan peranti input/output; mengawal operasi semua sistem lain dan perisian aplikasi. Dalam sistem masa nyata, penghantar terletak di antara perkakasan komputer sasaran dan perisian aplikasi. Ia menyediakan perkhidmatan khas yang diperlukan untuk menjalankan aplikasi masa nyata. Perkhidmatan yang disediakan oleh kernel memberikan program aplikasi akses kepada sumber sistem seperti memori atau peranti input/output.

Kernel boleh menyediakan pelbagai jenis perkhidmatan:

  • Pertukaran antara tugas. Selalunya perlu untuk memindahkan data antara program dalam sistem yang sama. Selain itu, banyak aplikasi perlu berkomunikasi dengan sistem lain melalui rangkaian. Interkom boleh dilakukan melalui sistem mesej. Komunikasi luaran boleh diatur sama ada melalui datagram (kaedah penghantaran terbaik) atau melalui talian komunikasi (penghantaran terjamin). Pilihan satu kaedah atau yang lain bergantung pada protokol komunikasi.
  • Pemisahan data. Dalam aplikasi masa nyata, pengumpulan data mengambil masa yang paling lama. Data selalunya diperlukan untuk pengendalian program lain atau diperlukan oleh sistem untuk melaksanakan beberapa fungsinya. Banyak sistem menyediakan akses kepada bahagian memori yang dikongsi. Barisan beratur data meluas. Terdapat banyak jenis baris gilir yang digunakan, setiap satunya mempunyai kelebihan tersendiri.
  • Memproses permintaan daripada peranti luaran. Setiap program aplikasi disambungkan dalam masa nyata ke peranti luaran jenis tertentu. Kernel mesti menyediakan perkhidmatan I/O yang membenarkan program aplikasi membaca dan menulis ke peranti ini. Untuk aplikasi masa nyata, adalah perkara biasa untuk mempunyai aplikasi khusus peranti luaran. Kernel mesti menyediakan perkhidmatan yang memudahkan kerja dengan pemacu peranti. Contohnya, sediakan keupayaan untuk menulis dalam bahasa peringkat tinggi - seperti C atau Pascal.
  • Mengendalikan situasi khas. Pengecualian ialah peristiwa yang berlaku semasa pelaksanaan program. Ia boleh menjadi segerak jika kejadiannya boleh diramal, seperti pembahagian dengan sifar. Dan ia juga boleh menjadi tak segerak jika ia berlaku tanpa diduga, seperti penurunan voltan. Menyediakan keupayaan untuk mengendalikan jenis acara ini membolehkan aplikasi masa nyata bertindak balas dengan cepat dan boleh diramalkan kepada acara dalaman dan luaran. Terdapat dua kaedah untuk mengendalikan pengecualian - menggunakan nilai keadaan untuk mengesan keadaan ralat dan menggunakan pengendali pengecualian untuk memerangkap keadaan ralat dan membetulkannya.

Gambaran keseluruhan seni bina RTOS

Sepanjang sejarahnya, seni bina sistem pengendalian telah mengalami pembangunan yang ketara. Salah satu prinsip pembinaan yang pertama, monolitik OS (Rajah 1), adalah untuk membentangkan OS sebagai satu set modul yang berinteraksi antara satu sama lain dalam pelbagai cara dalam kernel sistem dan menyediakan program aplikasi antara muka input untuk panggilan ke peralatan.

OS tahap (Rajah 2). Contoh OS sedemikian adalah yang terkenal Sistem MS-DOS. Dalam sistem kelas ini, aplikasi aplikasi boleh mengakses perkakasan bukan sahaja melalui kernel sistem atau perkhidmatan pemastautinnya, tetapi juga secara langsung. RTOS telah dibina berdasarkan prinsip ini selama bertahun-tahun. Berbanding dengan sistem pengendalian monolitik, seni bina ini memberikan tahap kebolehramalan tindak balas sistem yang lebih ketara, dan juga membolehkan akses pantas aplikasi perkakasan. Keburukan

Apa yang menjadikan sistem sedemikian teruk ialah kekurangan multitasking mereka. Dalam seni bina ini, masalah memproses peristiwa tak segerak telah dikurangkan kepada mesej penimbal, dan kemudian mengundi penimbal dan memprosesnya secara berurutan. Pada masa yang sama, pematuhan tarikh akhir perkhidmatan kritikal dipastikan oleh prestasi tinggi kompleks pengkomputeran berbanding dengan kelajuan proses luaran.

Rajah 2. Seni bina OS berlapis

Salah satu seni bina yang paling berkesan untuk membina sistem pengendalian masa nyata ialah seni bina pelayan-pelanggan. Skim umum OS yang beroperasi menggunakan teknologi ini ditunjukkan dalam Rajah 3. Prinsip utama seni bina ini ialah pemindahan perkhidmatan OS dalam bentuk pelayan ke peringkat pengguna, dan mikrokernel bertindak sebagai pengurus mesej antara program pengguna klien dan pelayan - sistem perkhidmatan. Seni bina ini memberikan banyak kelebihan dari segi keperluan untuk RTOS dan sistem terbenam. Antara kelebihan tersebut ialah:

1. Kebolehpercayaan OS meningkat, kerana Setiap perkhidmatan, sebenarnya, adalah aplikasi bebas dan lebih mudah untuk nyahpepijat dan menjejaki ralat.

2. Sistem sedemikian berskala lebih baik, kerana perkhidmatan yang tidak diperlukan boleh dikecualikan daripada sistem tanpa menjejaskan prestasinya.

3. Toleransi kesalahan sistem meningkat, kerana Perkhidmatan beku boleh dimulakan semula tanpa

but semula sistem.

Rajah 3. Membina OS menggunakan seni bina pelayan-pelanggan

Malangnya, hari ini tidak banyak sistem pengendalian yang dilaksanakan pada prinsip pelayan-pelanggan. Antara RTOS yang terkenal yang melaksanakan seni bina mikrokernel ialah OS9 dan QNX.

Senarai literatur yang digunakan:

1) http://ru.wikipedia.org/wiki/Sistem pengendalian_masa_sebenar

2) http://www.asutp.ru/?p=600591

3) http://www.mka.ru/?p=40774

4) http://www.4stud.info/rtos/lecture1.html

5)http://www.ozon.ru/context/detail/id/3092042/