Contoh sistem pengendalian masa nyata. Ciri-ciri tersendiri osrv. VxWorks daripada WindRiver

Sistem pengendalian masa nyata

Sistem pengendalian yang boleh menyediakan masa pelaksanaan yang diperlukan untuk tugasan masa nyata walaupun dalam kes yang paling teruk, dipanggil sistem pengendalian masa nyata yang keras.

Sistem pengendalian yang boleh menyediakan masa pelaksanaan yang diperlukan untuk tugasan masa nyata purata, dipanggil sistem pengendalian masa nyata yang lembut.

Sistem masa nyata yang keras tidak membenarkan kelewatan dalam tindak balas sistem, kerana ini boleh menyebabkan:

  • kehilangan kaitan keputusan
  • kerugian kewangan yang besar
  • kemalangan dan bencana

Jika pemprosesan kritikal tidak berlaku atau tidak berlaku dengan cukup cepat, sistem masa nyata yang keras akan membatalkan operasi dan menyekatnya supaya kebolehpercayaan dan ketersediaan sistem yang lain tidak terjejas. Contoh sistem masa nyata yang keras boleh menjadi - sistem on-board kawalan (pada kapal terbang, kapal angkasa, kapal, dll.), sistem perlindungan kecemasan, perakam peristiwa kecemasan.

Sistem masa nyata yang lembut dicirikan oleh kemungkinan tindak balas tertunda, yang boleh menyebabkan peningkatan kos hasil dan mengurangkan prestasi sistem secara keseluruhan. Contohnya ialah pengendalian rangkaian komputer. Jika sistem tidak mempunyai masa untuk memproses seterusnya pakej yang diterima, ini akan menyebabkan bahagian penghantar berhenti dan menghantar semula (bergantung pada protokol). Tiada data yang hilang, tetapi prestasi rangkaian berkurangan.

Perbezaan utama antara sistem masa nyata keras dan lembut boleh dicirikan seperti berikut: sistem masa nyata keras tidak akan pernah lewat dalam bertindak balas kepada peristiwa, manakala sistem masa nyata lembut tidak boleh lewat dalam bertindak balas kepada peristiwa.

Mari kita nyatakan dengan sistem pengendalian masa nyata sistem yang boleh digunakan untuk membina sistem masa nyata yang keras. Takrifan ini menyatakan sikap terhadap RTOS sebagai objek yang mengandungi alat yang diperlukan, tetapi juga bermakna alat ini masih perlu digunakan dengan betul.

Kebanyakan perisian berorientasikan "lembut" masa sebenar. Sistem sedemikian dicirikan oleh:

  • masa tindak balas yang dijamin kepada peristiwa luaran (gangguan daripada peralatan);
  • subsistem perancangan proses yang ketat (tugas keutamaan tinggi tidak boleh digantikan dengan keutamaan rendah, dengan beberapa pengecualian);
  • peningkatan keperluan untuk masa tindak balas kepada peristiwa luaran atau kereaktifan (kelewatan dalam memanggil pengendali gangguan tidak lebih daripada puluhan mikrosaat, kelewatan apabila menukar tugas tidak melebihi ratusan mikrosaat)

Contoh klasik tugas yang memerlukan RTOS ialah kawalan robot yang mengambil bahagian daripada tali pinggang penghantar. Bahagian itu bergerak, dan robot hanya mempunyai sedikit masa apabila ia boleh mengambilnya. Sekiranya dia lewat, maka bahagian itu tidak lagi berada di bahagian penghantar yang dikehendaki, dan oleh itu kerja tidak akan selesai, walaupun pada hakikatnya robot itu berada dalam tempat yang betul. Jika dia bersiap lebih awal, bahagian itu tidak akan sempat sampai, dan dia akan menghalang laluannya.

Ciri-ciri tersendiri RTOS

Jadual perbandingan antara RTOS dan sistem pengendalian konvensional:

OS masa nyata OS tujuan am
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

seni bina RTOS

Dalam pembangunan mereka, RTOS dibina berdasarkan seni bina berikut.

  • . OS ditakrifkan sebagai satu set modul yang berinteraksi antara satu sama lain dalam kernel sistem dan menyediakan perisian aplikasi antara muka input untuk panggilan ke peralatan. Kelemahan utama prinsip membina OS ini ialah kebolehramalan yang lemah terhadap tingkah lakunya yang disebabkan oleh interaksi kompleks modul antara satu sama lain.
  • . Perisian aplikasi mempunyai keupayaan untuk mengakses perkakasan bukan sahaja melalui kernel sistem dan perkhidmatannya, tetapi juga secara langsung. Berbanding dengan seni bina monolitik, seni bina sedemikian memberikan tahap kebolehramalan tindak balas sistem yang lebih ketara, dan juga membolehkan akses pantas aplikasi permohonan kepada peralatan. Kelemahan utama sistem sedemikian ialah kekurangan multitasking.
  • Seni bina pelayan-pelanggan. Prinsip utamanya adalah untuk membawa perkhidmatan OS dalam bentuk pelayan ke peringkat pengguna dan melaksanakan fungsi mikrokernel pengurus mesej antara pelanggan program pengguna dan pelayan - perkhidmatan sistem. Kelebihan seni bina ini:
  1. Peningkatan kebolehpercayaan, kerana setiap perkhidmatan, sebenarnya, adalah aplikasi bebas dan lebih mudah untuk nyahpepijat dan menjejaki ralat;
  2. Kebolehskalaan yang lebih baik, kerana perkhidmatan yang tidak diperlukan boleh dikecualikan daripada sistem tanpa menjejaskan prestasinya;
  3. Peningkatan toleransi kesalahan, kerana perkhidmatan beku boleh dimulakan semula tanpa but semula sistem.

Ciri Kernel

Kernel RTOS memastikan fungsi tahap OS abstrak pertengahan, yang menyembunyikan spesifik daripada perisian aplikasi peranti teknikal pemproses (beberapa pemproses) dan perkakasan yang berkaitan.

Perkhidmatan asas

Lapisan abstrak ini menyediakan lima kategori utama perkhidmatan untuk perisian aplikasi.

  • Pengurusan tugas. Paling banyak kumpulan utama perkhidmatan. Membenarkan pembangun aplikasi mereka bentuk produk perisian sebagai set serpihan program yang berasingan, setiap satunya boleh dikaitkan dengan kawasan topiknya sendiri, melaksanakan fungsi yang berasingan dan mempunyai kepingan masa sendiri yang diperuntukkan kepadanya untuk bekerja. Setiap serpihan itu dipanggil tugasan. Perkhidmatan dalam kumpulan ini mempunyai keupayaan untuk melancarkan tugas dan memberikan keutamaan kepada mereka. Perkhidmatan utama di sini ialah Pengurus tugas. Ia memantau pelaksanaan tugas semasa, melancarkan tugas baharu dalam tempoh masa yang sesuai dan memantau mod operasinya.
  • Peruntukan Memori Dinamik. Banyak (tetapi bukan semua) kernel RTOS menyokong kumpulan perkhidmatan ini. Ia membenarkan tugas untuk meminjam kawasan RAM untuk kegunaan sementara dalam menjalankan aplikasi. Selalunya kawasan ini kemudiannya bergerak dari tugas ke tugas, dan melalui ini pemindahan cepat banyak data antara mereka. Sesetengah kernel RTOS yang sangat kecil bertujuan untuk digunakan dalam persekitaran perkakasan dengan had memori yang ketat tidak menyokong perkhidmatan peruntukan memori dinamik.
  • Pengurusan pemasa. Memandangkan sistem terbenam mempunyai keperluan yang ketat untuk rangka masa untuk pelaksanaan tugas, teras RTOS termasuk sekumpulan perkhidmatan yang menyediakan pengurusan pemasa untuk menjejaki had masa semasa tugas mesti dilaksanakan. Perkhidmatan ini mengukur dan menetapkan pelbagai selang masa (dari 1 μs dan ke atas), menjana gangguan apabila selang masa tamat, dan mencipta penggera satu masa dan kitaran.
  • Komunikasi antara tugas dan penyegerakan. Perkhidmatan dalam kumpulan ini membenarkan tugas untuk bertukar maklumat dan memastikan keselamatannya. Mereka juga membolehkan serpihan perisian untuk menyelaraskan kerja mereka antara satu sama lain untuk meningkatkan kecekapan. Jika perkhidmatan ini dikecualikan daripada teras RTOS, maka tugas akan mula bertukar-tukar maklumat yang herot dan mungkin mengganggu kerja tugasan jiran.
  • Pemantauan peranti I/O. Perkhidmatan dalam kumpulan ini menyediakan antara muka perisian tunggal yang berantara muka dengan banyak pemacu peranti yang tipikal bagi kebanyakan sistem terbenam.

Selain perkhidmatan kernel, banyak RTOS menawarkan talian komponen tambahan untuk mengatur konsep peringkat tinggi seperti sistem fail, rangkaian, pengurusan rangkaian, pengurusan pangkalan data, antara muka pengguna grafik, dll. Walaupun kebanyakan komponen ini jauh lebih besar dan lebih kompleks daripada teras RTOS itu sendiri, mereka tetap bergantung pada perkhidmatannya. Setiap komponen ini dimasukkan ke dalam sistem terbenam hanya jika perkhidmatannya diperlukan untuk melaksanakan aplikasi terbenam dan hanya untuk mengurangkan penggunaan memori kepada minimum.

Perbezaan daripada sistem pengendalian tujuan umum

Banyak sistem pengendalian tujuan umum juga menyokong perkhidmatan di atas. Walau bagaimanapun, perbezaan utama antara perkhidmatan teras RTOS ialah deterministik, berdasarkan kawalan masa yang ketat, sifat kerja mereka. DALAM dalam kes ini Dengan determinisme kami bermaksud bahawa pelaksanaan satu perkhidmatan sistem pengendalian memerlukan selang masa tempoh yang diketahui. Secara teorinya, masa ini boleh dikira menggunakan formula matematik, yang mestilah algebra yang ketat dan tidak boleh memasukkan sebarang parameter masa yang bersifat rawak. Sebarang pembolehubah rawak yang menentukan masa pelaksanaan tugas dalam RTOS boleh menyebabkan kelewatan yang tidak diingini dalam aplikasi, maka tugas seterusnya tidak akan memenuhi kepingan masanya, yang akan menyebabkan ralat.

Dalam pengertian ini, sistem pengendalian tujuan umum tidak bersifat deterministik. Perkhidmatan mereka mungkin membenarkan kelewatan sekali-sekala dalam operasi mereka, yang boleh membawa kepada kelembapan dalam tindak balas aplikasi terhadap tindakan pengguna pada masa yang tidak diketahui. Apabila mereka bentuk sistem pengendalian konvensional, pembangun tidak menumpukan perhatian mereka pada radas matematik untuk mengira masa pelaksanaan tugas tertentu dan perkhidmatan. Ini tidak kritikal untuk sistem jenis ini.

Menjadualkan tugas

Kerja penjadual

Kebanyakan RTOS melaksanakan penjadualan tugas berdasarkan skema berikut. Setiap tugas dalam aplikasi diberikan keutamaan tertentu. Lebih tinggi keutamaan, lebih tinggi kereaktifan tugas itu sepatutnya. Kereaktifan tinggi dicapai dengan melaksanakan pendekatan penjadualan preemptive keutamaan(penjadualan preemptive), yang intipatinya ialah penjadual dibenarkan untuk menghentikan pelaksanaan apa-apa tugas pada masa yang sewenang-wenangnya jika ia ditentukan bahawa tugas lain harus dimulakan dengan segera.

Skim yang diterangkan berfungsi mengikut peraturan berikut: jika dua tugasan sedia untuk dijalankan pada masa yang sama, tetapi yang pertama mempunyai keutamaan yang tinggi dan yang kedua mempunyai keutamaan yang rendah, maka penjadual akan memberi keutamaan kepada yang pertama. Tugasan kedua akan dilancarkan hanya selepas tugas pertama selesai kerjanya.

Ada kemungkinan bahawa tugas keutamaan rendah sudah berjalan dan penjadual menerima mesej bahawa tugas keutamaan lebih tinggi lain sedia untuk dijalankan. Sebabnya mungkin disebabkan oleh pengaruh luaran (gangguan daripada peralatan), seperti perubahan dalam keadaan suis peranti yang dikawal oleh RTOS. Dalam keadaan sedemikian, penjadual tugas akan berkelakuan mengikut pendekatan penjadualan preemptive keutamaan seperti berikut. Tugas dengan keutamaan rendah akan dibenarkan untuk melengkapkan arahan pemasangan semasa (tetapi bukan perintah yang diterangkan dalam kod sumber program dalam bahasa peringkat tinggi), selepas itu pelaksanaan tugas berhenti. Seterusnya, tugas keutamaan tinggi dilancarkan. Selepas ia diproses, penjadual memulakan tugas pertama yang terganggu dengan arahan pemasangan selepas yang terakhir dilaksanakan.

Setiap kali penjadual tugas menerima isyarat tentang berlakunya beberapa peristiwa luaran (pencetus), puncanya boleh sama ada perkakasan atau perisian, ia bertindak mengikut algoritma berikut.

  1. Menentukan sama ada tugasan yang sedang dijalankan harus terus dijalankan.
  2. Tetapkan tugasan yang perlu dijalankan seterusnya.
  3. Menyimpan konteks tugas yang dihentikan (supaya ia boleh menyambung semula kerja dari tempat ia dihentikan)
  4. Menetapkan konteks untuk tugasan seterusnya.
  5. Menjalankan tugas ini.

Lima langkah algoritma ini juga dipanggil bertukar tugas.

Pelaksanaan sesuatu tugas

Dalam RTOS konvensional, tugas boleh berada dalam 3 keadaan yang mungkin:

  1. Tugas sedang diselesaikan;
  2. Tugas sedia untuk dilaksanakan;
  3. Tugas disekat.

Selalunya, sebahagian besar tugas disekat. Hanya satu tugasan boleh dilaksanakan pada CPU setiap masa ini masa. Dalam RTOS primitif, senarai tugas yang sedia untuk dilaksanakan biasanya sangat pendek; ia boleh terdiri daripada tidak lebih daripada dua atau tiga item.

Fungsi utama pentadbir RTOS adalah untuk mencipta penjadual tugas sedemikian.

Jika senarai tugas yang sedia untuk dilaksanakan mengandungi tidak lebih daripada dua atau tiga, maka diandaikan bahawa semua tugas terletak dalam susunan yang optimum. Jika situasi sedemikian berlaku sehingga bilangan tugasan dalam senarai melebihi had yang dibenarkan, maka tugasan diisih mengikut keutamaan.

Algoritma perancangan

Pada masa ini, dua pendekatan sedang dibangunkan secara intensif untuk menyelesaikan masalah perancangan berkesan dalam RTOS.

  • Algoritma penjadualan statik(RMS, Penjadualan Monotonik Kadar). Gunakan penjadualan preemptive keutamaan. Keutamaan diberikan kepada setiap tugas sebelum ia mula dilaksanakan. Keutamaan diberikan kepada tugasan dengan tempoh penyiapan paling singkat.
  • Algoritma penjadualan dinamik(EDF, Penjadualan Pertama Tarikh Akhir Terawal). Keutamaan diberikan kepada tugasan secara dinamik, dengan keutamaan diberikan kepada tugasan dengan masa pelaksanaan (penyelesaian) terawal.

Interaksi antara tugas dan perkongsian sumber

  • Melumpuhkan gangguan buat sementara waktu
  • Semaphore binari
  • Menghantar isyarat

RTOS biasanya tidak menggunakan kaedah pertama kerana aplikasi pengguna tidak boleh mengawal pemproses semahunya. Walau bagaimanapun, banyak sistem terbenam dan RTOS membenarkan aplikasi berjalan dalam mod kernel untuk mengakses panggilan sistem dan memberi kawalan ke atas persekitaran pelaksanaan tanpa campur tangan OS.

Pada sistem pemproses tunggal, penyelesaian terbaik ialah menjalankan aplikasi dalam mod kernel, yang didayakan untuk menyekat gangguan. Walaupun gangguan dilumpuhkan, aplikasi menggunakan sumber proses semata-mata dan tiada tugas atau gangguan lain boleh dilaksanakan. Dengan cara ini semua sumber kritikal dilindungi. Selepas aplikasi melengkapkan aktiviti kritikal, ia mesti menyahsekat gangguan, jika ada. Melumpuhkan gangguan sementara dibenarkan hanya apabila tempoh terpanjang pelaksanaan bahagian kritikal adalah kurang daripada masa tindak balas gangguan yang dibenarkan. Biasanya, kaedah perlindungan ini digunakan hanya apabila panjang kod kritikal tidak melebihi beberapa baris dan tidak mengandungi gelung. Kaedah ini sesuai untuk perlindungan daftar.

Apabila panjang bahagian kritikal lebih besar daripada maksimum atau mengandungi gelung, pengaturcara mesti menggunakan mekanisme yang sama atau mensimulasikan gelagat sistem tujuan umum, seperti semafor dan isyarat.

Peruntukan ingatan

Masalah peruntukan memori berikut diberikan lebih perhatian dalam RTOS berbanding sistem pengendalian tujuan umum.

Pertama, kelajuan peruntukan memori. Skim peruntukan memori standard melibatkan pengimbasan senarai panjang tidak tentu untuk mencari kawasan memori kosong saiz yang diberi, dan ini tidak boleh diterima, kerana dalam RTOS, peruntukan memori mesti berlaku dalam masa yang tetap.

Kedua, ingatan boleh menjadi berpecah-belah jika bahagian bebasnya sudah dibahagikan menjalankan proses. Ini mungkin menyebabkan program berhenti kerana ketidakupayaannya untuk menggunakan lokasi memori baharu. Algoritma peruntukan memori yang meningkatkan pemecahan memori secara beransur-ansur mungkin berfungsi dengan baik pada sistem desktop jika ia dibut semula sekurang-kurangnya sekali sebulan, tetapi tidak boleh diterima untuk sistem terbenam yang berjalan selama bertahun-tahun tanpa but semula.

Algoritma panjang tetap mudah berfungsi dengan baik dalam sistem terbenam mudah.

Algoritma ini juga berfungsi dengan baik pada sistem desktop, terutamanya apabila, semasa satu teras memproses sekeping memori, sekeping memori seterusnya sedang diproses oleh teras lain. RTOS yang dioptimumkan desktop seperti Unison Sistem operasi atau DSPnano RTOS menyediakan keupayaan ini.

Sistem pengendalian masa nyata (senarai)

Perlu diingatkan bahawa senarai itu tidak termasuk sistem yang dibangunkan di USSR untuk sistem ketenteraan dan angkasa - atas alasan yang jelas berkaitan dengan rejim kerahsiaan. Walau bagaimanapun, kewujudan dan penggunaannya selama beberapa dekad adalah fakta yang tidak dapat dipertikaikan yang harus diambil kira.

Nota

kesusasteraan

  • Zyl S. Sistem pengendalian masa nyata QNX: dari teori kepada amalan. - ed ke-2. - St Petersburg. : BHV-Petersburg, 2004. - 192 p. - ISBN 5-94157-486-Х
  • Zyl S. Momentik QNX. Asas Aplikasi. - St Petersburg. : BHV-Petersburg, 2004. - 256 p. - ISBN 5-94157-430-4
  • Kurten R. Pengenalan kepada QNX/Neutrino 2. - St. Petersburg. : Petropolis, 2001. - 512 p. - ISBN 5-94656-025-9
  • Auslander D.M., Ridgley J.R., Ringenberg J.D. Program kawalan untuk sistem mekanikal: Reka bentuk berorientasikan objek sistem masa nyata. - M.: Binom. Makmal Pengetahuan, 2004. - 416 p. - ISBN 5-94774-097-4

Pautan

  • Gambaran keseluruhan sistem pengendalian masa nyata

Asas mana-mana kompleks perkakasan dan perisian, termasuk yang beroperasi dalam masa nyata, ialah sistem pengendalian (OS). Sistem pengendalian ialah satu set program yang menyediakan pengurusan sumber kompleks perisian perkakasan (sistem komputer) dan proses yang menggunakan sumber ini dalam pengiraan. Sumber dalam konteks ini ialah mana-mana komponen logik atau fizikal (dan secara keseluruhan) bagi sistem pengkomputeran atau kompleks perkakasan dan perisian serta keupayaan yang disediakannya.

Sumber utama ialah pemproses (masa pemproses), Ram dan peranti persisian.

Pengurusan sumber bergantung kepada melaksanakan tugas berikut: memudahkan akses kepada sumber, mengagihkannya antara proses.

Penyelesaian kepada masalah pertama membolehkan anda "menyembunyikan" ciri perkakasan sistem pengkomputeran, dan dengan itu menjadikannya tersedia kepada pengguna atau pengaturcara mesin maya dengan kawalan yang lebih mudah. Oleh itu, OS menyokong antara muka berikut: pengguna (bahasa arahan untuk mengawal operasi sistem dan satu set perkhidmatan); perisian (satu set perkhidmatan yang membebaskan pengaturcara daripada operasi rutin pengekodan). Fungsi pengedaran sumber adalah salah satu tugas paling penting yang diselesaikan oleh OS, bagaimanapun, ia tidak wujud dalam semua OS, tetapi hanya pada mereka yang memastikan serentak pelaksanaan beberapa program (proses).

Proses ialah urutan tindakan yang ditetapkan oleh program atau bahagiannya yang lengkap secara logik, serta data yang digunakan dalam pengiraan. Prosesnya ialah unit minimum bekerja untuk sumber yang diperuntukkan.

Pada masa ini, terdapat pelbagai jenis sistem pengendalian, yang dikelaskan mengikut kriteria berikut:

o bilangan pengguna yang dilayan secara serentak oleh sistem;

o bilangan proses yang boleh dijalankan serentak di bawah kawalan OS;

o jenis akses pengguna kepada sistem;

o jenis perkakasan dan kompleks perisian.

Selaras dengan tanda pertama, sistem pengendalian tunggal dan berbilang pengguna dibezakan.

Ciri kedua membahagikan OS kepada satu dan berbilang tugas.

Selaras dengan ciri ketiga, sistem pengendalian dibahagikan kepada:

o sistem dengan pemprosesan kelompok. Dalam kes ini, pakej dibentuk daripada program yang akan dilaksanakan dan dibentangkan kepada sistem untuk diproses. Dalam kes ini, pengguna tidak berinteraksi secara langsung dengan OS;

o sistem perkongsian masa yang menyediakan akses interaktif serentak kepada sistem pengkomputeran berbilang pengguna melalui terminal. Dalam kes ini, sumber sistem diperuntukkan kepada setiap pengguna "secara bergilir-gilir", selaras dengan satu atau satu disiplin perkhidmatan;

o sistem masa nyata, yang mesti menyediakan masa tindak balas yang terjamin kepada peristiwa luaran (lihat di bawah untuk butiran lanjut).

Ciri keempat membahagikan OS kepada tunggal dan berbilang pemproses, rangkaian dan diedarkan. Untuk sistem pengendalian berbilang pengguna dan berbilang tugas, disiplin penyelenggaraan adalah penunjuk penting. Selaras dengan ini, perbezaan dibuat antara mod awalan dan penyelarasan kerja berbilang tugas. Dalam organisasi preemptive, hanya OS yang bertanggungjawab untuk memperuntukkan masa pemproses kepada tugasan (contohnya, untuk setiap tugas, pemproses diperuntukkan secara bergilir-gilir, dan untuk tempoh masa yang ditetapkan dengan ketat, tetapi servis keutamaan juga mungkin). Dalam kes organisasi yang sepadan, setiap tugas, setelah menerima kawalan, sendiri menentukan masa untuk "memberi" pemproses kepada tugas lain. Secara umumnya, penyelarasan adalah lebih berkesan dan boleh dipercayai daripada preemption, tetapi faktor penentu dalam pelaksanaan program adalah hakikat bahawa program ini tidak sepatutnya memonopoli masa CPU.

Sistem Masa Nyata (RTS)- ini adalah sistem, fungsi yang betul bergantung bukan sahaja pada ketepatan logik pengiraan, tetapi juga pada masa pengiraan ini dibuat.

Untuk peristiwa yang berlaku dalam sistem sedemikian, masa peristiwa ini berlaku dan ketepatan logiknya adalah penting. Sistem beroperasi dalam masa nyata jika prestasinya memadai dengan kelajuan proses fizikal pada objek pemantauan atau kawalan (bermaksud proses yang berkaitan secara langsung dengan fungsi yang dilakukan oleh sistem masa nyata tertentu). Sistem kawalan mesti mengumpul data, memprosesnya mengikut algoritma yang ditentukan dan mengeluarkan tindakan kawalan dalam tempoh masa yang memastikan kejayaan menyiapkan tugasan yang diberikan.

1.1 Apakah itu sistem masa nyata

DALAM Kebelakangan ini Semakin hari, kita berhadapan dengan tugas yang memerlukan pengurusan proses atau peralatan yang kompleks menggunakan komputer. Selain itu, semua peristiwa dalam proses ini berlaku apabila ia berlaku. Komputer hanya boleh melakukan bilangan operasi yang terhad dalam masa yang terhad, jadi persoalan timbul: adakah komputer mempunyai masa untuk kelajuan yang diperlukan mengira keadaan dan mengeluarkan tindakan kawalan khusus yang akan mencukupi secara khusus dalam detik tertentu masa. Pada pendapat saya, masalah seperti ini timbul kerana penggunaan sangat kelajuan tinggi V pengeluaran moden. Adalah jelas bahawa isyarat dalam alam semula jadi merambat pada kelajuan terhingga, kelajuan operasi juga terhingga, oleh itu pada asasnya mustahil untuk mengharapkan tindakan segera (disebabkan oleh peristiwa tertentu) dari komputer. Lagipun, tidak kira betapa modennya (baca - kuat dalam prestasi, iaitu kelajuan tinggi arahan pemprosesan dan operasi) komputer, ia secara fizikal memerlukan sekurang-kurangnya pecahan saat untuk melakukan yang kecil. kumpulan sederhana perintah, dan kadangkala kali ini terlalu banyak. Oleh itu, masa tindak balas sistem kepada beberapa peristiwa adalah lebih besar daripada sifar. Tugas sebenar membenarkan beberapa kelewatan dalam tindakan, dan jika sistem mempunyai masa tindak balas kurang daripada kelewatan yang boleh diterima ini, maka adalah adil untuk memanggilnya sebagai sistem masa nyata. Sejak di alam semula jadi proses yang berbeza teruskan pada kelajuan yang berbeza; satu dan sistem yang sama mungkin muat dalam rangka kerja yang diberikan untuk satu proses dan tidak sesuai untuk yang lain. Oleh itu, masuk akal untuk bercakap tentang sistem masa nyata berhubung dengan tugas tertentu. Sebagai contoh, untuk merancang pergantungan purata suhu udara untuk sehari pada hari dalam seminggu, hampir mana-mana komputer dengan hampir mana-mana perisian akan berfungsi sebagai sistem masa nyata. Jika kita mengawal pendaratan pesawat, di mana milisaat memainkan peranan penting, adalah lebih sesuai untuk memilih perkakasan dan perisian dengan berhati-hati.

Sebagai tambahan kepada tugas yang dipertimbangkan untuk bertindak balas kepada peristiwa tertentu, terdapat kelas tugas masa nyata yang lain. Salah satu yang sering ditemui ialah tugas pemantauan berterusan atau kawalan proses dinamik, i.e. apabila anda perlu terus bertukar isyarat dengan dunia luar. Komputer ialah sistem diskret, jadi adalah perlu untuk menjalankan beberapa tindakan dengan jangka masa tertentu yang terhad, dengan mengandaikan bahawa dalam tempoh masa yang singkat ini dunia luar kekal tidak berubah. Jika sistem kami mampu memproses maklumat dan menghasilkan isyarat kawalan pada frekuensi yang diperlukan, maka ia boleh dipanggil sistem masa nyata. Tidak sukar untuk memahami bahawa masalah ini boleh dikurangkan dengan mudah kepada yang sebelumnya, menggunakan permulaan selang masa berikutnya sebagai peristiwa. Masa tindak balas mestilah kurang daripada masa pensampelan proses. Oleh itu, tugas yang diterangkan sebelum ini adalah paling penting apabila kita bercakap tentang mengenai sistem masa nyata. Perlu diingatkan bahawa operasi sistem yang tidak memuaskan dari segi kependaman dalam sesetengah tugas boleh membawa kepada akibat yang membawa maut, dan pada yang lain tiada situasi yang tidak normal atau tidak diingini akan berlaku. Sebagai contoh: jika sistem pengukuran suhu daripada contoh yang diterangkan di atas secara tidak sengaja tiba lewat dengan jumlah masa yang tidak boleh diterima, maka ini bermakna kita hanya menukar pemilihan titik bacaan suhu, dan kita masih akan mendapat hasil yang betul, tetapi jika automatik pendekatan pada pesawat penumpang secara tidak sengaja ditangguhkan seketika pada tiupan angin secara tiba-tiba, pesawat mungkin tidak sampai ke landasan dan berpuluh-puluh orang akan mati. Oleh itu, sistem harus dibahagikan kepada sistem masa nyata keras dan lembut.

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 sistem pengendalian sedemikian dicipta untuk aplikasi khas, yang lain untuk 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," ini bermakna menyebut yang paling nama-nama terkenal. Apa yang termasuk dalam kumpulan ini?

VxWorks daripada WindRiver

VxWorks ialah sistem pengendalian masa nyata yang dibangunkan sebagai perisian proprietari oleh 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 (terutamanya aeroangkasa dan pertahanan), pembuatan peralatan perubatan, peralatan industri, robotik, tenaga, pengurusan pengangkutan, infrastruktur rangkaian, menambah baik automotif dan elektronik pengguna.

VxWorks menyokong Intel (x86, termasuk seni bina IntelQuarkSoC dan x86-64), MIPS, PowerPC, SH-4 dan ARM baharu. RTOS ini disertakan bersama teras yang kuat, pertengahan perisian, sokongan berbayar pakej tambahan dan teknologi perkakasan pengeluar 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 bimbit.

PercumaRTOS

FreeRTOS ialah OS kernel masa nyata yang popular untuk peranti terbenam yang dimuatkan dengan 35 mikropengawal. Ia merebak di bawah lesen 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 Produk Windows Terbenam. Tidak seperti Windows Embedded Standard, yang berasaskan Windows NT, sampel sistem pengendalian ini menggunakan kernel hibrid eksklusif. Microsoft menyediakan Lesen Windows CE untuk OEM yang boleh mengubah suai dan mencipta antara muka tersuai mereka sendiri, menyediakan asas teknikal untuk ini.

Sistem pengendalian masa nyata (RTOS) direka bentuk untuk menyediakan antara muka kepada sumber sistem masa nyata kritikal masa. Tugas utama dalam sistem sedemikian ialah ketepatan masa pemprosesan data.

Keperluan utama untuk RTOS adalah untuk memastikan kebolehramalan atau penentuan tingkah laku sistem di bawah keadaan luaran yang paling teruk, yang berbeza dengan ketara daripada keperluan untuk prestasi dan kelajuan sistem pengendalian universal. RTOS yang baik mempunyai tingkah laku yang boleh diramal di bawah semua senario beban sistem (gangguan serentak dan pelaksanaan benang).

Terdapat beberapa perbezaan antara sistem masa nyata dan sistem terbenam. Sistem terbenam tidak selalu diperlukan untuk mempunyai gelagat yang boleh diramal, dalam hal ini ia bukan sistem masa nyata. Walau bagaimanapun, walaupun sepintas lalu pada kemungkinan sistem terbenam menunjukkan bahawa kebanyakan sistem terbenam memerlukan tingkah laku yang boleh diramal, menurut sekurang-kurangnya, untuk beberapa fungsi, dan dengan itu, sistem ini boleh diklasifikasikan sebagai sistem masa nyata.

Adalah menjadi kebiasaan untuk membezakan antara sistem masa nyata lembut dan keras. Dalam sistem susah betul ketidakupayaan masa untuk memberikan respons kepada sebarang peristiwa dalam masa yang ditentukan membawa kepada kegagalan dan ketidakupayaan untuk menyelesaikan tugas. Dalam kebanyakan kesusasteraan bahasa Rusia, sistem sedemikian dipanggil sistem dengan masa yang menentukan. Pada permohonan praktikal masa tindak balas hendaklah minimum. Sistem masa nyata lembut ialah sistem yang tidak termasuk dalam takrifan "keras", kerana Tiada definisi yang jelas untuk mereka dalam kesusasteraan lagi. Sistem masa nyata yang lembut mungkin tidak mempunyai masa untuk menyelesaikan masalah, tetapi ini tidak membawa kepada kegagalan sistem secara keseluruhan. Dalam sistem masa nyata, adalah perlu untuk memperkenalkan tarikh akhir tertentu (dalam kesusasteraan Inggeris - tarikh akhir), sebelum tamat tempoh yang tugas itu semestinya (untuk sistem masa nyata yang lembut - sebaiknya) diselesaikan. Tarikh akhir ini digunakan oleh penjadual tugasan untuk menetapkan keutamaan kepada tugas apabila ia dilancarkan dan apabila memilih tugas untuk dilaksanakan.

Martin Timmerman merumuskan keperluan berikut untuk RTOS:

  • OS mestilah multitasking dan boleh didahulukan,
  • OS mesti mempunyai konsep keutamaan untuk benang,
  • OS mesti menyokong mekanisme penyegerakan yang boleh diramal,
  • OS mesti menyediakan mekanisme untuk mewarisi keutamaan,
  • Tingkah laku OS mesti diketahui dan boleh diramal (kelewatan pemprosesan gangguan, kelewatan penukaran tugas, kelewatan pemandu, dsb.); ini bermakna dalam semua senario beban kerja sistem, masa tindak balas maksimum mesti ditentukan.

Sepanjang 25-30 tahun yang lalu, struktur sistem pengendalian telah berkembang daripada struktur OS monolitik kepada berbilang lapisan kepada seni bina pelayan pelanggan. Dalam struktur monolitik, OS terdiri daripada satu set modul, dan perubahan pada satu modul mempengaruhi modul lain. Lebih banyak modul, lebih banyak huru-hara semasa operasi sistem sedemikian. Selain itu, tidak mungkin untuk mengedarkan OS pada sistem berbilang pemproses. Dalam struktur berbilang lapisan, perubahan dalam satu lapisan mempengaruhi lapisan bersebelahan; di samping itu, penyongsangan melalui lapisan tidak mungkin. Untuk sistem masa nyata, akses terus kepada setiap lapisan OS mesti disediakan, dan kadangkala terus ke perkakasan.

Idea utama teknologi pelayan-pelanggan dalam OS adalah untuk mengurangkan asas OS kepada minimum (primitif penjadual dan penyegerakan). Semua fungsi lain dialihkan ke tahap lain dan dilaksanakan melalui urutan atau tugasan. Satu set tugas pelayan sedemikian bertanggungjawab untuk panggilan sistem. Aplikasi ialah pelanggan yang meminta perkhidmatan melalui panggilan sistem.

Teknologi pelayan pelanggan membolehkan penciptaan sistem pengendalian berskala dan memudahkan pengedaran dalam sistem berbilang pemproses. Apabila mengendalikan sistem, menggantikan satu modul tidak menyebabkan kesan "bola salji"; Di samping itu, kegagalan modul tidak selalu melibatkan kegagalan sistem secara keseluruhan. Kini terdapat keupayaan untuk memuatkan dan memunggah modul secara dinamik. Masalah utama dalam model ini adalah perlindungan memori, kerana proses pelayan mesti dilindungi. Setiap kali permintaan perkhidmatan dibuat, sistem mesti bertukar daripada konteks aplikasi kepada konteks pelayan. Dengan sokongan perlindungan memori, masa bertukar dari satu proses ke proses yang lain meningkat.

Sebagai peraturan, kebanyakan RTOS moden dibina berdasarkan mikrokernel (kernel atau nukleus), yang menyediakan penjadualan dan penghantaran tugas, serta interaksi mereka. Walaupun kernel meminimumkan abstraksi OS, mikrokernel masih perlu mempunyai pemahaman tentang abstraksi proses. Semua abstraksi konseptual sistem pengendalian yang lain dialihkan ke luar kernel, dipanggil atas permintaan, dan dilaksanakan sebagai aplikasi.

Ciri-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 ini tugas utama- mempunyai masa untuk bertindak balas terhadap peristiwa yang berlaku di kemudahan. Perbezaan lain ialah penggunaan sistem pengendalian masa nyata sentiasa dikaitkan dengan peralatan, dengan objek, dengan peristiwa yang berlaku di kemudahan. Sistem pengendalian masa nyata tertumpu pada pemprosesan peristiwa luaran. Sistem pengendalian masa nyata mungkin serupa dalam antaramuka pengguna pada OS tujuan umum, tetapi ia berstruktur berbeza sama sekali. Selain itu, penggunaan 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 paket yang diterima seterusnya, 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 keras masa nyata tidak akan pernah lewat dalam bertindak balas terhadap sesuatu peristiwa, sistem masa nyata yang lembut tidak boleh lewat dalam bertindak balas terhadap sesuatu peristiwa

Kernel sistem pengendalian

Kernel ialah bahagian tengah sistem pengendalian (OS), menyediakan aplikasi dengan akses yang diselaraskan kepada sumber komputer, memori, perkakasan luaran, peranti input dan output luaran, menterjemah arahan bahasa aplikasi ke dalam bahasa kod binari yang difahami oleh komputer. Sebagai asas elemen OS, kernel mewakili paling banyak Level rendah abstraksi untuk aplikasi untuk mengakses sumber sistem yang diperlukan untuk operasinya. Biasanya, kernel menyediakan akses sedemikian kepada proses pelaksanaan aplikasi yang sepadan melalui penggunaan mekanisme komunikasi antara proses dan panggilan permohonan ke panggilan sistem OS.

Teras monolitik

Inti monolitik menyediakan set abstraksi perkakasan yang kaya. Semua bahagian kernel 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. Majoriti biji moden membolehkan anda memuatkan modul semasa operasi yang melaksanakan sebahagian daripada fungsi kernel. Dalam kes ini, komponen sistem pengendalian tidak modul bebas, dan komponen satu program besar dipanggil kernel monolitik, yang merupakan satu set prosedur, setiap satunya boleh memanggil setiap. 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, sistem fail, dsb. tanpa mengganggu operasinya. Proses penyahpepijatan komponen kernel dipermudahkan dengan ketara, 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. Inti selesai mana-mana kerja servis, sebaik sahaja tugasan tiba dengan keutamaan tertinggi. 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 bersifat terapan. Dalam sistem masa nyata, penghantar terletak di antara perkakasan komputer sasaran dan perisian aplikasi. Ia menyediakan perkhidmatan khas, diperlukan untuk menjalankan aplikasi masa nyata. Perkhidmatan yang disediakan oleh kernel memberi 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 disusun sama ada melalui datagram ( Cara terbaik penghantaran), 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 umum ingatan. 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 a permohonan ini peranti luaran. Kernel mesti menyediakan perkhidmatan yang memudahkan kerja dengan pemacu peranti. Sebagai contoh, memungkinkan untuk merakam dalam bahasa tahap 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) terdiri daripada mempersembahkan OS sebagai satu set modul yang berinteraksi antara satu sama lain dalam pelbagai cara dalam teras sistem dan menyediakan program aplikasi dengan antara muka input untuk mengakses perkakasan.

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 aplikasi aplikasi mengakses perkakasan dengan cepat. 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 dengan 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/