Sisteme de operare în timp real (RTOS). Sisteme de operare în timp real

Ministerul Educației și Științei al Federației Ruse

Universitatea Tehnologică de Stat din Volga

Rezumat asupra disciplinei

„Sisteme de operare în timp real: caracteristici și aplicații”

Completat de: student EF (grupa PI-12)

Mikushov Yu. V.

[email protected]

Profesor: Borodin A.V.

Yoshkar-Ola

●Introducere

●Definiție

●Dezvoltarea sistemelor de operare moderne

●Starea actuală a subiectului

● Diferențele față de sistemele de operare de uz general

●Arhitectura RTOS

●Tipuri de sarcini OS

● Cele mai importante cinci sarcini invizibile ale sistemului de operare

● Caracteristici

●Aplicație

●Piata sistemelor de operare

●Viitorul RTOS

●Concluzie

●Lista surselor utilizate

Introducere

Sistemele de operare în timp real (RTOS) sunt concepute pentru a oferi o interfață cu resursele sistemelor în timp real critice. Sarcina principală în astfel de sisteme este oportunitatea prelucrării datelor.

Principala cerință pentru un RTOS este asigurarea predictibilitate sau determinism comportamentul sistemului în cele mai proaste condiții externe, care diferă mult de cerințele de performanță și viteză ale sistemelor de operare universale. Un RTOS bun are un comportament previzibil în toate scenariile de încărcare a sistemului (întreruperi simultane și execuție a firelor).

Există o diferență între sistemele în timp real și sistemele încorporate. Un sistem încorporat nu este întotdeauna necesar să aibă un comportament previzibil, caz în care nu este un sistem în timp real. Cu toate acestea, chiar și o privire rapidă asupra posibilelor sisteme încorporate sugerează că majoritatea sistemelor încorporate necesită un comportament previzibil pentru cel puțin o anumită funcționalitate și astfel aceste sisteme pot fi clasificate ca sisteme în timp real.

Se obișnuiește să se facă distincția între sistemele în timp real soft și hard. În sistemele hard-time real, incapacitatea de a oferi un răspuns la orice eveniment la un moment dat duce la eșecuri și incapacitatea de a finaliza sarcina atribuită. În majoritatea literaturii de limbă rusă, astfel de sisteme sunt numite sisteme cu timp determinist. În aplicațiile practice, timpul de reacție ar trebui să fie minim. Sistemele soft în timp real sunt sisteme care nu se încadrează în definiția de „hard”, deoarece Nu există încă o definiție clară pentru ele în literatură. Este posibil ca sistemele soft în timp real să nu aibă timp să rezolve o problemă, dar acest lucru nu duce la defecțiunea sistemului în ansamblu. În sistemele de timp real, este necesar să se introducă un anumit termen (în literatura engleză - deadline), înainte de expirarea căruia sarcina trebuie neapărat finalizată (pentru sisteme soft în timp real - de preferință). Acest termen limită este folosit de planificatorul de sarcini atât pentru a atribui o prioritate unei sarcini atunci când este lansată, cât și atunci când selectează o sarcină pentru execuție.

Definiții

Un sistem în timp real este un tip de sistem de operare, al cărui scop principal este de a oferi un set necesar și suficient de funcții pentru a asigura dezvoltarea software a sistemelor în timp real pe hardware specific.

Un sistem se numește sistem în timp real dacă corectitudinea funcționării sale depinde nu numai de corectitudinea logică a calculelor, ci și de timpul în care sunt efectuate aceste calcule. Adică, pentru evenimentele care au loc într-un astfel de sistem, atunci când aceste evenimente au loc este la fel de important ca corectitudinea logică a evenimentelor în sine.

Componentele unui sistem în timp real.

Software de aplicație

Expediere

Comunicare între fire

Sistem de operare în timp real

Manevrarea întreruperii

Protecție prioritară împotriva inversării

Managementul firelor

Gestionarea memoriei

Hardware

Dispozitive

Decriptare Mac OS X:

    „Mac” se referă la numele companiei Macintosh.

    „OS” – sistem de operare, adică sistem de operare.

    „X” este cifra romană zece, indicând numărul versiunii OS.

Dezvoltarea sistemelor de operare moderne

În dezvoltarea sistemelor de operare moderne, există tendința de a transfera în continuare codul la nivelurile superioare și, în același timp, de a elimina tot ceea ce este posibil din modul kernel, lăsând un microkernel minim. Acest lucru se face de obicei prin descărcarea majorității sarcinilor sistemului de operare către procesele utilizatorului.

Când primește o solicitare pentru o operațiune, cum ar fi citirea unui bloc dintr-un fișier, procesul utilizatorului (numit acum proces servit sau proces client) trimite cererea procesului server (server), care o procesează și trimite înapoi un răspuns.

Prin împărțirea sistemului de operare în părți, fiecare dintre acestea gestionând doar un element al sistemului (sistem de fișiere, procese, terminal sau memorie), toate părțile devin mici și ușor de gestionat.

În plus, deoarece toate serverele rulează ca procese în modul utilizator și nu ca procese în modul kernel, ele nu au acces direct la hardware. Prin urmare, dacă apare o eroare pe serverul de fișiere, serviciul de procesare a cererilor de fișiere se poate prăbuși, dar de obicei acest lucru nu duce la oprirea întregii mașini.

Un alt avantaj al modelului client-server este că poate fi ușor adaptat pentru utilizarea în sisteme distribuite. Dacă un client comunică cu un server trimițându-i mesaje, clientul nu trebuie să știe dacă mesajul său este procesat local pe propria sa mașină sau dacă a fost trimis prin rețea către un server de pe o mașină la distanță. Din punctul de vedere al clientului, același lucru se întâmplă în ambele cazuri: cererea a fost transmisă și s-a primit răspuns.

Povestea de mai sus despre nucleul care gestionează transferul de mesaje de la clienți la servere și înapoi nu este complet realistă. Unele funcții ale sistemului de operare, cum ar fi încărcarea instrucțiunilor în registrele dispozitivelor fizice I/O, sunt dificil, dacă nu imposibil, de executat din programele spațiale ale utilizatorului. Există două moduri de a rezolva această problemă.

Primul este că unele procese critice de server (cum ar fi driverele de dispozitiv I/O) rulează de fapt în modul kernel, cu acces deplin la hardware, dar comunică cu alte procese utilizând transmiterea normală a mesajelor.

A doua opțiune este să construiți un mecanism minim de procesare a informațiilor în nucleu, dar să lăsați deciziile de politică în seama serverelor din spațiul utilizatorului. De exemplu, nucleul poate recunoaște mesajele trimise către anumite adrese. Pentru nucleu, aceasta înseamnă că trebuie să preia conținutul mesajului și să îl încarce în, de exemplu, niște registre I/O de disc pentru a declanșa o operație de citire a discului.

În acest exemplu, nucleul poate să nu examineze nici măcar octeții de mesaj dacă se întâmplă să fie validi sau semnificativi; le poate copia orbește în registrele de disc. (Evident, trebuie folosită o schemă pentru a limita gama de procese care au dreptul de a trimite astfel de mesaje.)

Starea actuală a domeniului subiectului

Asociații, companii și produse

Microsoft și Apple Inc. sunt cei mai populari producători de sisteme de operare și software pentru ei în lumea modernă.

Sisteme de operare moderne de la Microsoft:

    Windows XP (Windows NT 5.1)

    Windows Vista (Windows NT 6.0)

    Windows 7 (Windows NT 6.1)

    Windows 8 (Windows NT 6.2)

    Windows 10 (Windows NT 10)

Sisteme de operare moderne de la Apple Inc:

Sisteme de operare mobile moderne:

  1. sisteme Linux (Android)

Diferențele față de sistemele de operare de uz general

Diferența cheie dintre serviciile de bază RTOS este natura deterministă a muncii lor, bazată pe un control strict al timpului. În acest caz, determinismul înseamnă că execuția unui serviciu de sistem de operare necesită un interval de timp de o durată cunoscută. Teoretic, acest timp poate fi calculat folosind formule matematice, care ar trebui să fie strict algebrice și să nu includă nici un parametru de timp de natură aleatorie. Orice variabilă aleatorie care determină timpul de execuție a unei sarcini într-un RTOS poate provoca o întârziere nedorită în aplicație, apoi următoarea sarcină nu își va atinge cuantumul de timp, ceea ce va provoca o eroare.

În acest sens, sistemele de operare de uz general nu sunt deterministe. Serviciile lor pot permite întârzieri ocazionale în funcționarea lor, ceea ce poate duce la o încetinire a răspunsului aplicației la acțiunile utilizatorului într-un moment necunoscut. Atunci când proiectează sisteme de operare convenționale, dezvoltatorii nu își concentrează atenția asupra aparatului matematic pentru calcularea timpului de execuție a unei anumite sarcini și serviciu. Acest lucru nu este critic pentru acest tip de sistem

Arhitectura RTOS

De-a lungul istoriei sale, arhitectura sistemului de operare a suferit o dezvoltare semnificativă. Unul dintre primele principii ale construcției, așa-numitul. OS monolitic (Figura 1), urma să prezinte sistemul de operare ca un set de module care interacționează între ele în diferite moduri în cadrul nucleului sistemului și furnizează programe de aplicație cu interfețe de intrare pentru accesarea hardware-ului. Principalul dezavantaj al acestei arhitecturi este predictibilitatea slabă a comportamentului ei, cauzată de interacțiunea complexă a modulelor de sistem între ele.

Cu toate acestea, majoritatea sistemelor de operare moderne, atât în ​​timp real, cât și de uz general, sunt construite tocmai pe acest principiu.

În sarcinile de automatizare, sistemele de operare de nivel sunt utilizate pe scară largă ca RTOS (Figura 2). Un exemplu de astfel de sistem de operare este binecunoscutul sistem MS-DOS. În sistemele din această clasă, aplicațiile de aplicație ar putea accesa hardware-ul nu numai prin nucleul sistemului sau prin serviciile sale rezidente, ci și direct. RTOS-urile au fost construite pe acest principiu de mulți ani. În comparație cu sistemele de operare monolitice, această arhitectură oferă un grad semnificativ mai mare de predictibilitate a reacțiilor sistemului și, de asemenea, permite aplicațiilor aplicațiilor să acceseze rapid hardware-ul. Dezavantajul unor astfel de sisteme este lipsa lor de multitasking. În cadrul acestei arhitecturi, problema procesării evenimentelor asincrone a fost redusă la buffering-ul mesajelor, apoi interogarea secvenţială a bufferelor şi procesarea acestora. În același timp, respectarea termenelor critice de service a fost asigurată de performanța ridicată a complexului de calcul în comparație cu viteza proceselor externe.

Una dintre cele mai eficiente arhitecturi pentru construirea de sisteme de operare în timp real este arhitectura client-server. Diagrama generală a unui OS care funcționează folosind această tehnologie este prezentată în Figura 3. Principiul principal al acestei arhitecturi este transferul serviciilor OS sub formă de servere la nivelul utilizatorului, iar microkernel-ul îndeplinește funcțiile unui manager de mesaje între client. programe de utilizator și servere - servicii de sistem. Această arhitectură oferă o mulțime de avantaje în ceea ce privește cerințele pentru RTOS și sistemele încorporate. Printre aceste avantaje se numără:

1. Fiabilitatea sistemului de operare crește, deoarece Fiecare serviciu este, de fapt, o aplicație independentă și este mai ușor de depanat și de urmărit erorile.

2. Un astfel de sistem se scalează mai bine, deoarece serviciile inutile pot fi excluse din sistem fără a compromite performanța acestuia.

3. Toleranța la erori a sistemului crește, deoarece Un serviciu înghețat poate fi repornit fără a reporni sistemul.

Din păcate, astăzi nu sunt multe sisteme de operare implementate pe principiul client-server. Printre RTOS-urile bine-cunoscute care implementează arhitectura microkernel sunt OS9 și QNX.

Tipuri de sarcini

Fiecare proces conține una sau mai multe sarcini. Sistemul de operare permite unei sarcini să genereze noi sarcini. Sarcinile pot fi împărțite în 3 categorii în funcție de modul lor de acțiune.

1. Sarcini ciclice. Caracteristic proceselor de control și proceselor interactive.

2. Sarcini periodice. Tipic pentru multe procese tehnologice și sarcini de sincronizare.

3. Sarcini de impuls. Tipic pentru probleme de semnalizare și procese tehnologice asincrone.

Cele mai importante cinci sarcini invizibile ale sistemului de operare

1. Oferă „cuplaj” hardware-software

Sistemul de operare servește ca un fel de „traducător” între hardware-ul computerului și software-ul acestuia. Dacă deschideți carcasa computerului, puteți vedea diverse plăci, cipuri, cabluri și alte componente. Aceasta este baza fizică care face posibilă executarea programului. Dar un program nu poate să ia și să utilizeze pur și simplu resursele hardware ale computerului. Face acest lucru prin sistemul de operare.

Recent, sistemele de operare au devenit din ce în ce mai mult numite „platforme”. Și acest nume reflectă foarte exact esența. Sistemul de operare este platforma pe care se află programele. Sau, după cum se spune acum, aplicații pentru sistemul de operare. Este sistemul de operare care permite software-ului să „vorbească” cu hardware-ul. Acest lucru se aplică și dispozitivelor de intrare și ieșire. Cel mai simplu exemplu de dispozitiv de intrare este o tastatură, iar un dispozitiv de ieșire este un monitor.

Aceasta este o muncă foarte importantă. În teorie, sute de dispozitive diferite de intrare și ieșire pot fi conectate la un singur computer. Să luăm un mouse obișnuit. Dar „șoarece” este un concept general. Există zeci de modele diferite ale acestui manipulator. Ar fi o sarcină copleșitoare să oferim suport software separat pentru fiecare tip de mouse, astfel încât acesta să comunice direct cu resursele computerului. Dar soluția este baza de date de drivere conținută în sistemul de operare. Pentru utilizator, se pare că a conectat pur și simplu orice mouse la computerul său și a început imediat să funcționeze.

2. Forțează aceeași aplicație să funcționeze pe hardware diferit

Este sistemul de operare care permite software-ului să ruleze pe diferite computere, și nu doar pe o anumită configurație. Pe vremuri, se scriau programe pentru un anumit model de computer. Limbajul de programare a acționat de fapt ca sistemul de operare al predecesorilor PC-urilor moderne, microcalculatoare de la sfârșitul anilor șaptezeci ai secolului trecut.

Dar în aceste zile, sistemul de operare a preluat rolul unui fel de „adaptor” între programe și hardware-ul computerului. Dacă luați oricare două modele de computer, seturile de componente din care sunt asamblate vor diferi. Acest lucru este valabil chiar și pentru Macintosh-urile care sunt renumite pentru asemănarea lor între ele, ca să nu mai vorbim de toată varietatea uriașă care poate fi găsită pe piața modernă de PC-uri.

Mediul de operare creează un așa-numit mediu abstract pentru program. Acesta poate fi reprezentat ca un dialog între OS și program. În timpul acestei „conversații”, de neînțeles pentru oameni, programul „spune” platformei despre nevoile sale, iar sistemul de operare trebuie să „se gândească” la modul în care să le satisfacă rațional. Ideea este că trebuie să te gândești foarte repede. Jucătorul modern nu este pregătit să aștepte o oră sau două până să se încarce jocul său preferat.

Deci, programul „spune” sistemului de operare exact de ce are nevoie pentru a funcționa corect. La urma urmei, aplicația nu este direct familiarizată cu resursele computerului. Iar sistemul de operare, la rândul său, distribuie sarcinile care îi sunt atribuite de program printre resursele dispozitivului digital. Și tipul de hardware nu contează pentru program. Platforma se va ocupa de tot! Sistemul de operare poate „vorbește”, dacă nu cu toți, atunci cu multe dispozitive și module hardware.

Dacă nu ar fi această abilitate valoroasă de sistem de operare, programatorii ar trebui să-și rescrie programele pentru fiecare configurație specifică de computer, pentru fiecare set de componente. Și, dacă nu este pentru sistemul de operare, programul s-ar putea să nu funcționeze deloc pe un computer ale cărui caracteristici diferă de cele preconizate de programator la crearea programului.

Astăzi, dezvoltatorii își creează aplicațiile pentru platforme și nu pentru anumite configurații hardware cunoscute. Pur și simplu, nu pentru un anumit computer, ci pentru un anumit sistem de operare. Acest lucru este, desigur, mult mai ușor. Milioane de dispozitive pot rula același sistem de operare. Prin urmare, zeci și chiar sute de mii de aplicații au devenit posibile, disponibile utilizatorului modern al fiecăreia dintre platformele populare.

3. Căutați fișierul solicitat de aplicație

Numai resursele fizice ale unui computer nu ar fi suficiente pentru ca programele să facă față corect sarcinilor lor. Toate informațiile sunt stocate în fișiere și aceste fișiere trebuie să respecte anumite reguli. Aceste reguli acoperă modul de denumire și stocare a fișierelor. Numim acest set general de reguli „sistem de gestionare a fișierelor” sau pur și simplu „manager de fișiere”.

Diferite sisteme de operare implementează abordări diferite ale managementului fișierelor. În plus, utilizatorul poate instala software suplimentar care îi permite să gestioneze fișierele mai eficient. Este sistemul de operare care „își amintește” fișierele care sunt stocate pe computer. Când o aplicație dorește să acceseze un anumit fișier, sistemul de operare va arăta programului calea către acesta.

Fără un sistem de gestionare a fișierelor, informațiile digitale de pe un computer sunt pur și simplu o colecție fără sens de date. Haos, în care nu se găsește nimic. Și cu atât mai mult, găsiți-l în cele mai scurte fracțiuni de secundă.

Sistemul de operare își urmează propriile reguli în mod invizibil pentru noi, așa că nu trebuie să accesați manual acele celule de memorie în care fișierul de care aveți nevoie este stocat fizic. Dar, cel mai important, utilizatorul unui sistem de operare modern nu trebuie neapărat să cunoască aceste reguli pentru a lucra pe un computer.

4. Alocarea eficientă a RAM disponibilă

Deoarece vorbim despre memorie, este logic să ne amintim despre memoria cu acces aleatoriu (RAM). Despre acel spațiu de stocare care este întotdeauna „la îndemână” procesorului.

Trebuie subliniat faptul că această resursă informatică cea mai importantă este gestionată și de sistemul de operare. RAM este o resursă mult subestimată de mulți utilizatori. Cum să vă faceți computerul să funcționeze mai repede? Mulți oameni cred că au nevoie urgentă de un procesor mai puternic. Dar, în practică, este adesea suficient să crești pur și simplu cantitatea de RAM pentru a experimenta o creștere semnificativă a performanței computerului.

În RAM, computerul stochează informațiile care pot fi solicitate de procesorul care efectuează calculele. Considerați acest tip de memorie pur și simplu ca un dispozitiv de stocare temporară pentru informații care trebuie să fie „mai aproape de procesor”.

Când lucrăm cu un computer, avem uneori mai multe programe care rulează în același timp. Sistemul de operare alocă o anumită cantitate de memorie fiecărei sarcini. Dacă procesorul are nevoie de informații pe care nu le găsește în RAM, va trebui să le caute în altă parte. În special, pe hard disk-ul computerului. Acest lucru va dura mai mult decât recuperarea datelor din RAM. Pentru utilizator, această situație va arăta ca o „înghețare” temporară a aplicației. În astfel de cazuri, se obișnuiește să se spună că „calculatorul gândește”.

Una dintre sarcinile pe care le asumă sistemul de operare, în mod invizibil pentru utilizator, este minimizarea timpului de întârziere, adică acel timp foarte neplăcut în care computerul este ocupat cu propria afacere și nu răspunde la apelurile tale către acesta. Problema este că în orice moment sistemul de operare

are o anumită cantitate de RAM, care este întotdeauna limitată. Acest volum depinde și de câte programe rulați în același timp. Sistemul de operare trebuie să „știe” în fiecare moment câtă memorie RAM mai are pentru a o aloca din timp procesului care are nevoie de această resursă importantă.

Sistemul de operare „evaluează” cerințele fiecărui proces care rulează și decide cum să le satisfacă în mod inteligent. În mod ideal, acest lucru ar trebui făcut în așa fel încât utilizatorul să nu experimenteze deloc întârzieri. Dar, în practică, sistemul de operare încearcă pur și simplu să reducă astfel de întârzieri la minimum, distribuind rațional resursele pe care le are de fapt.

Nu există computere pe Pământ cu memorie RAM nelimitată. Prin urmare, sistemul trebuie să aleagă întotdeauna ce proces este considerat prioritar la un moment dat și care este secundar. Cine ar trebui să aloce memorie urgent și cine va gestiona și va avea răbdare deocamdată. Este posibil ca utilizatorul să nu fie întotdeauna de acord cu regulile pe care le urmează sistemul de operare atunci când alocă memorie. Dar alocarea independentă a memoriei RAM libere proceselor ar fi mult mai dificilă și consumatoare de timp decât încredințarea acesteia unei platforme software.

5. Concentrează atenția procesorului asupra unei anumite sarcini

Unitatea centrală de procesare (CPU) este modulul fizic care rezolvă sarcinile pe care utilizatorul le stabilește pentru computerul său. Un alt lucru este că un utilizator rar vorbește limba pe care o înțelege procesorul. În plus, nu toți programatorii sunt foarte familiarizați cu codul mașinii. O persoană poate să nu se gândească nici măcar la faptul că orice program este un set complex de probleme matematice.

Procesorul central face calculele, adică găsește soluții la aceste probleme și îți oferă rezultate gata făcute care nici măcar nu seamănă prea mult cu formulele dintr-un manual de algebră. Utilizatorul mediu pur și simplu nu este interesat de toată această matematică. El vrea ca personajul său de joc să sară peste un obstacol într-o fracțiune de secundă sau vrea să verifice ortografia textului pe care tocmai l-a scris. În spatele acestor probleme aparent departe de a fi plictisitoare se află cea mai complexă matematică.

Fiecare program care rulează necesită o parte din puterea de procesare a procesorului. Cu cât rulați mai multe programe în același timp, cu atât sarcina procesorului este mai aproape de maxim. Sarcina sistemului de operare este de a coordona livrarea informațiilor pentru procesare către procesor, astfel încât totul să meargă fără probleme și neobservat de utilizator. Sistemul de operare poate schimba atenția procesorului de la o sarcină la alta.

Unul dintre rolurile importante ale sistemului de operare este acela de manager de resurse. Dacă face față bine acestei sarcini, atunci nici măcar nu știm în ce moment procesorul a lăsat deoparte o sarcină și și-a îndreptat atenția către alta.

Un asistent invizibil și de neînlocuit

Cea mai grea sarcină a unui sistem de operare este să te facă să-l ignori și să te concentrezi asupra aplicațiilor care te interesează. Și în timp ce totul merge bine, utilizatorul nu se gândește deloc la platformă. Și numai atunci când încep defecțiunile software utilizatorul își dă seama cât de importantă este misiunea sistemului de operare.

Acele „diferențe” între sistemele de operare care sunt vizibile pentru majoritatea utilizatorilor sunt pur cosmetice. Este un utilizator rar care înțelege programarea suficient pentru a vedea în spatele shell-ului interfeței grafice ce distinge de fapt un sistem de operare de altul. Nici aspectul desktopului și nici designul pictogramelor aplicațiilor nu au nimic de-a face cu esența internă a sistemului de operare.

Sarcinile descrise mai sus sunt îndeplinite într-un fel sau altul de fiecare sistem de operare modern, care controlează orice dispozitiv de calculator. Indiferent cum arată sistemul de operare și pe ce dispozitiv este instalat: pe un computer, dispozitiv mobil sau consolă de jocuri.

Particularități

Caracteristici pozitive

Disponibilitate pe scară largă a produselor

În marea majoritate a cazurilor, Windows este instalat pe computere. Prin urmare, atunci când veniți în vizită la un prieten sau la locul dvs. de muncă, puteți transfera cu ușurință câteva imagini, fișiere text sau clipuri de pe o unitate flash. Ușurința de utilizare și suportul sistemului de operare Windows pentru orice hardware și orice program a contribuit la distribuția globală a acestui sistem de operare.

Frumoasa interfata

Sistemele de operare moderne au o interfață destul de drăguță și intuitivă. Acest lucru promovează percepția rapidă a informațiilor, ușurința în utilizare a computerului și învățarea rapidă a lucrului cu sistemul de operare.

Stabilitatea sistemului de operare

În general, stabilitatea unui sistem de operare modern poate fi numită acceptabilă. Cu toate acestea, cuvântul „acceptabil” aici trebuie să fie însoțit de o mulțime de rezerve:

1. Stabilitatea sistemului de operare devine acceptabilă numai după configurația sa de înaltă calitate și competentă - nu are rost să vorbim aici despre un sistem neacordat (precum și o chitară neacordată).

2. Stabilitatea unui sistem de operare modern depinde, de asemenea, în mare măsură de versiunea produsului și de prezența pachetelor de servicii și suplimentelor instalate - din păcate, fără prezența acestora, apar eșecuri frecvente în funcționarea sistemului de operare.

3. Stabilitatea sistemului de operare depinde și de aplicațiile în sine instalate pe sistemul de operare de către utilizator: cu cât sunt mai stabile în funcționare și cu atât mai compatibile cu shell-ul software Windows în sine, cu atât vom putea observa mai puține erori în funcționarea sistemului de operare principal.

4. Stabilitatea unui sistem de operare modern este foarte influențată de hardware-ul în sine, care este utilizat împreună cu sistemul de operare care rulează.

5. De asemenea, driverele de dispozitiv au un impact semnificativ asupra funcționării stabile a unui sistem de operare modern. Acestea sunt mini-programe responsabile pentru asocierea anumitor software cu anumite componente hardware.

Compatibilitate bună cu produse de la diferiți dezvoltatori (aproximativO.C. Windows)

Un sistem de operare modern este capabil să înțeleagă corect orice tipuri de fișiere care au apărut în reîncarnările sale timpurii. Dacă ne amintim aceleași extensii de fișiere, va deveni clar că strămoșul lor, de fapt, este același sistem de operare primitiv și arhaic, odată achiziționat de la un dezvoltator terță parte și adus în minte de Microsoft - MS-DOS. Această continuitate a formatelor de fișiere rulează ca un fir prin toate versiunile de Windows, ceea ce în sine este pur și simplu minunat.

Caracteristici distinctive ale unui RTOS dintr-un sistem de operare cu scop general

Sistemele de operare de uz general, în special sistemele de operare multi-utilizator, cum ar fi UNIX, sunt concentrate pe distribuirea optimă a resurselor computerului între utilizatori și sarcini. În sistemele de operare în timp real, o astfel de sarcină trece în fundal - totul se retrage înainte de sarcina principală - pentru a avea timp să reacționeze la evenimentele care au loc la obiect.O altă diferență este că utilizarea unui sistem de operare în timp real este întotdeauna asociată. cu echipamentul, cu obiectul, cu evenimentele care au loc la obiect. Un sistem de operare în timp real este axat pe procesarea evenimentelor externe. Un sistem de operare în timp real poate avea o interfață cu utilizatorul similară cu un sistem de operare general, dar este proiectat complet diferit.În plus, aplicarea sistemelor de operare în timp real este întotdeauna specifică. Dacă un sistem de operare cu scop general este de obicei perceput de utilizatori (nu dezvoltatori) ca un set gata de aplicații, atunci un sistem de operare în timp real servește doar ca instrument pentru crearea unui anumit complex hardware și software în timp real. Și, prin urmare, cea mai largă clasă de utilizatori ai sistemelor de operare în timp real sunt dezvoltatorii de sisteme în timp real, oameni care proiectează sisteme de control și achiziție de date. Atunci când proiectează și dezvoltă un anumit sistem în timp real, programatorul știe întotdeauna exact ce evenimente pot avea loc la instalație și cunoaște intervalul de timp critic pentru deservirea fiecăruia dintre aceste evenimente.Sistemul RT trebuie să aibă timp să răspundă la un eveniment care a avut loc. la instalație în timpul critic pentru acest eveniment. Valoarea timpului critic pentru fiecare eveniment este determinată de obiect și de evenimentul în sine și poate fi diferită, dar timpul de reacție al sistemului trebuie prezis (calculat) la crearea sistemului. Eșecul de a răspunde la ora prevăzută este considerată o eroare pentru sistemele în timp real.Sistemul trebuie să fie capabil să răspundă la evenimente care apar simultan. Chiar dacă două sau mai multe evenimente externe au loc simultan, sistemul trebuie să aibă timp să reacționeze la fiecare dintre ele în intervalele de timp critice pentru aceste evenimente.

Sistem de operare în timp real

OS de uz general

Sarcina principală

Aveți timp să reacționați la evenimentele care au loc pe echipament

Distribuiți în mod optim resursele computerului între utilizatori și sarcini

Pe ce se concentrează?

Gestionarea evenimentelor externe

Procesarea acțiunilor utilizatorului

Cum este pozitionat

Un instrument pentru crearea unui complex hardware și software specific în timp real

Percepută de utilizator ca un set de aplicații gata de utilizare

Cui este destinat?

Dezvoltator calificat

Utilizator intermediar

Sisteme hard și soft în timp real

Există două tipuri de sisteme în timp real - sisteme hard în timp real și sisteme soft în timp real.

Sistemele hard în timp real nu permit nicio întârziere în răspunsul sistemului în nicio circumstanță deoarece:

  • rezultatele pot fi inutile dacă întârzie
  • dezastrul poate apărea dacă reacția este întârziată
  • costul întârzierii poate fi infinit.

Exemple de sisteme hard în timp real sunt sistemele de control la bord, sistemele de protecție în caz de urgență, înregistrarea evenimentelor de urgență.

Sistemele soft în timp real se caracterizează prin faptul că întârzierea răspunsului nu este critică, deși poate duce la o creștere a costului rezultatelor și o scădere a performanței sistemului în ansamblu.Un exemplu este funcționarea în rețea. Dacă sistemul nu are timp să proceseze următorul pachet primit, acest lucru va duce la un timeout din partea de trimitere și la retrimitere (în funcție de protocol, desigur). Datele nu se pierd, dar performanța rețelei este redusă Principala diferență dintre sistemele hard și soft în timp real poate fi exprimată astfel: un sistem hard în timp real nu trebuie să întârzie niciodată să răspundă la un eveniment, un sistem soft în timp real nu ar trebui să întârzie niciodată să răspundă la un eveniment

Nucleul sistemului de operare

Nucleul este partea centrală a sistemului de operare (OS), oferind aplicațiilor acces coordonat la resursele computerului, memorie, hardware extern, dispozitive externe de intrare și ieșire, traducând comenzile limbajului aplicației în limbaj de cod binar pe care computerul îl înțelege. element al sistemului de operare, nucleul reprezintă cel mai scăzut nivel de abstractizare pentru ca aplicațiile să acceseze resursele de sistem necesare funcționării lor. În mod obișnuit, nucleul oferă un astfel de acces la procesele de execuție ale aplicațiilor corespunzătoare prin utilizarea mecanismelor de comunicare între procese și a apelurilor de aplicație către apelurile de sistem OS.

Miez monolitic

Nucleul monolitic oferă un set bogat de abstracții hardware. Toate părțile unui nucleu monolitic funcționează în același spațiu de adrese. Aceasta este o schemă de sistem de operare în care toate componentele nucleului său sunt părți ale unui program, folosesc structuri de date comune și interacționează între ele apelând direct proceduri. Nucleul monolitic este cel mai vechi mod de organizare a sistemelor de operare. Un exemplu de sisteme cu un nucleu monolitic este majoritatea sistemelor UNIX.

Avantaje: Viteza de funcționare, dezvoltarea simplificată a modulelor.

Defecte: Deoarece întregul nucleu funcționează în același spațiu de adrese, o defecțiune a uneia dintre componente poate perturba întregul sistem.

Unele nuclee monolitice vechi, în special sisteme de clasă UNIX/Linux, au necesitat recompilare ori de câte ori compoziția hardware se schimba. Cele mai multe nuclee moderne vă permit să încărcați module în timpul funcționării care îndeplinesc o parte din funcțiile nucleului. În acest caz, componentele sistemului de operare nu sunt module independente, ci componente ale unui program mare numit nucleu monolitic, care este un set de proceduri, fiecare dintre ele poate apela pe fiecare. Toate procedurile rulează în modul privilegiat.

Microkernel

Microkernel-ul oferă doar funcții de bază de control al procesului și un set minim de abstracții pentru lucrul cu hardware. Cea mai mare parte a muncii este realizată prin procese speciale de utilizator numite servicii. Criteriul decisiv pentru „microkernelism” este plasarea tuturor sau aproape tuturor driverelor și modulelor în procesele de service.

Avantaje: Rezistență la defecțiuni hardware și erori ale componentelor sistemului. Principalul avantaj al arhitecturii microkernel este gradul ridicat de modularitate al nucleului sistemului de operare. Acest lucru face mult mai ușor să adăugați componente noi la acesta. Într-un sistem de operare microkernel, puteți încărca și descărca noi drivere, sisteme de fișiere etc. fără a întrerupe funcționarea acestuia.Procesul de depanare a componentelor kernelului este mult simplificat, deoarece o nouă versiune a driverului poate fi încărcată fără a reporni întregul sistem de operare . Componentele nucleului sistemului de operare nu sunt fundamental diferite de programele utilizatorului, așa că puteți folosi instrumente obișnuite pentru a le depana. Arhitectura microkernel îmbunătățește fiabilitatea sistemului deoarece o defecțiune la nivel de program neprivilegiat este mai puțin periculoasă decât o defecțiune la nivelul modului kernel.

Defecte: Transmiterea datelor între procese necesită o suprasarcină.

Mediu de rulare

Cerințele pentru mediul de execuție al sistemelor în timp real sunt următoarele:

  • memorie de sistem mică - pentru posibilitatea de încorporare a acesteia;
  • sistemul trebuie să fie complet rezident în memorie pentru a evita schimbarea sau schimbarea paginilor de memorie;
  • sistemul trebuie să fie multitasking – pentru a asigura utilizarea cât mai eficientă a tuturor resurselor sistemului;
  • nucleu cu prioritate pentru întreruperile de service. Prioritatea de întrerupere înseamnă că un proces care este gata de rulare și are o anumită prioritate are în mod necesar prioritate în coadă față de un proces cu o prioritate mai mică, îl înlocuiește rapid pe acesta din urmă și trece la execuție. Nucleul termină orice lucrare de serviciu de îndată ce sosește o sarcină cu cea mai mare prioritate. Acest lucru asigură predictibilitatea sistemului;
  • manager de priorități - permite dezvoltatorului aplicației să atribuie fiecărui modul de pornire o prioritate care nu este supusă sistemului. Atribuirea priorităților este utilizată pentru a determina ordinea în care sunt executate programele care sunt gata de a fi executate. O alternativă la acest tip de programare este programarea carusel, în care fiecărui program care este gata să continue i se oferă șanse egale de rulare. Cu această metodă, nu există niciun control asupra programului care va fi executat și când. Acest lucru este inacceptabil într-un mediu în timp real. Expedierea bazată pe prioritate și un nucleu cu prioritate de întrerupere oferă dezvoltatorului aplicației controlul deplin asupra sistemului. Dacă are loc un eveniment cu prioritate mai mare, sistemul oprește procesarea sarcinii cu prioritate mai mică și răspunde la cererea recent primită.

Combinația proprietăților descrise mai sus creează un mediu de execuție puternic și eficient în timp real.

Pe lângă proprietățile mediului de rulare, este necesar să se ia în considerare și serviciul oferit de kernel-ul OS în timp real. Miezul oricărui mediu de rulare în timp real este kernel-ul sau dispecerul. Nucleul controlează hardware-ul computerului țintă: unitatea centrală de procesare, memoria și dispozitivele de intrare/ieșire; controlează funcționarea tuturor celorlalte sisteme și aplicații software. Într-un sistem în timp real, dispecerul se află între hardware-ul computerului țintă și software-ul aplicației. Acesta oferă un serviciu special necesar pentru rularea aplicațiilor în timp real. Serviciul oferit de nucleu oferă programelor de aplicație acces la resursele sistemului, cum ar fi memoria sau dispozitivele de intrare/ieșire.

Nucleul poate oferi diferite tipuri de servicii:

  • Schimb între sarcini. Este adesea necesar să transferați date între programe în cadrul aceluiași sistem.În plus, multe aplicații trebuie să comunice cu alte sisteme printr-o rețea. Comunicarea internă poate fi efectuată printr-un sistem de mesagerie. Comunicarea externă poate fi organizată fie printr-o datagramă (cea mai bună metodă de livrare), fie prin linii de comunicare (livrare garantată). Alegerea unei metode sau alteia depinde de protocolul de comunicare.
  • Separarea datelor. În aplicațiile în timp real, colectarea datelor durează cel mai mult timp. Datele sunt adesea necesare pentru funcționarea altor programe sau sunt necesare sistemului pentru a îndeplini unele dintre funcțiile sale. Multe sisteme oferă acces la secțiunile de memorie partajată. Coada de date este larg răspândită. Există multe tipuri de cozi în uz, fiecare dintre ele având propriile sale avantaje.
  • Procesarea cererilor de la dispozitive externe. Fiecare program de aplicație este conectat în timp real la un dispozitiv extern de un anumit tip. Nucleul trebuie să ofere servicii I/O care să permită programelor de aplicație să citească și să scrie pe aceste dispozitive. Pentru aplicațiile în timp real, este obișnuit să existe un dispozitiv extern specific aplicației. Nucleul trebuie să ofere un serviciu care facilitează lucrul cu driverele de dispozitiv. De exemplu, oferiți capacitatea de a scrie în limbi de nivel înalt - cum ar fi C sau Pascal.
  • Gestionarea situațiilor speciale. O excepție este un eveniment care are loc în timpul execuției programului. Poate fi sincron dacă apariția sa este previzibilă, cum ar fi împărțirea la zero. Și poate fi, de asemenea, asincron dacă are loc în mod imprevizibil, cum ar fi o cădere de tensiune. Oferirea capacității de a gestiona aceste tipuri de evenimente permite aplicațiilor în timp real să răspundă rapid și previzibil la evenimentele interne și externe. Există două metode pentru gestionarea excepțiilor - utilizarea valorilor de stare pentru a detecta condițiile de eroare și utilizarea unui handler de excepții pentru a capta condițiile de eroare și a le corecta.

Prezentare generală a arhitecturilor RTOS

De-a lungul istoriei sale, arhitectura sistemului de operare a suferit o dezvoltare semnificativă. Unul dintre primele principii de construcție, monolitic Sistemul de operare (Figura 1) a constat în prezentarea sistemului de operare ca un set de module care interacționează între ele în diferite moduri în cadrul sistemului de bază și oferă programelor de aplicație interfețe de intrare pentru accesarea hardware-ului.

nivel OS (Figura 2).Un exemplu de astfel de sistem de operare este binecunoscutul sistem MS-DOS. În sistemele din această clasă, aplicațiile de aplicație ar putea accesa hardware-ul nu numai prin nucleul sistemului sau prin serviciile sale rezidente, ci și direct. RTOS-urile au fost construite pe acest principiu de mulți ani. În comparație cu sistemele de operare monolitice, această arhitectură oferă un grad semnificativ mai mare de predictibilitate a reacțiilor sistemului și, de asemenea, permite aplicațiilor aplicațiilor să acceseze rapid hardware-ul. Dezavantaj

Ceea ce face ca astfel de sisteme să fie atât de proaste este lipsa lor de multitasking. În cadrul acestei arhitecturi, problema procesării evenimentelor asincrone a fost redusă la buffering-ul mesajelor, apoi interogarea secvenţială a bufferelor şi procesarea acestora. În același timp, respectarea termenelor critice de service a fost asigurată de performanța ridicată a complexului de calcul în comparație cu viteza proceselor externe.

Figura 2. Arhitectura sistemului de operare stratificat

Una dintre cele mai eficiente arhitecturi pentru construirea de sisteme de operare în timp real este arhitectura client-server. Diagrama generală a unui OS care funcționează folosind această tehnologie este prezentată în Figura 3. Principiul principal al acestei arhitecturi este transferul serviciilor OS sub formă de servere la nivelul utilizatorului, iar microkernel-ul îndeplinește funcțiile unui manager de mesaje între client. programe de utilizator și servere - servicii de sistem. Această arhitectură oferă o mulțime de avantaje în ceea ce privește cerințele pentru RTOS și sistemele încorporate. Printre aceste avantaje se numără:

1. Fiabilitatea sistemului de operare crește, deoarece Fiecare serviciu este, de fapt, o aplicație independentă și este mai ușor de depanat și de urmărit erorile.

2. Un astfel de sistem se scalează mai bine, deoarece serviciile inutile pot fi excluse din sistem fără a compromite performanța acestuia.

3. Toleranța la erori a sistemului crește, deoarece Un serviciu înghețat poate fi repornit fără

reporniți sistemul.

Figura 3. Construirea unui sistem de operare folosind arhitectura client-server

Din păcate, astăzi nu există multe sisteme de operare implementate pe principiul client-server. Printre RTOS-urile bine-cunoscute care implementează arhitectura microkernel sunt OS9 și QNX.

Lista literaturii folosite:

1) http://ru.wikipedia.org/wiki/Real_time_operating system

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/

O prezentare generală a caracteristicilor comparative ale RT OS prezent pe piața rusă este prezentată în legătură cu utilizarea în sistemele de control al aviației.

05.05.2008, Luni, 23:56, ora Moscovei

Datorită dezvoltării tehnologiei informatice, recent a devenit posibilă atribuirea unui modul de sarcini efectuate anterior de mai multe module de procesor, îmbunătățind în același timp caracteristicile de greutate și dimensiune ale sistemului de control și reducând costul acestuia. Această tendință în tehnologia aviației a dus la apariția conceptului de avionică modulară integrată - IMA (Integrated Modular Avionics, IMA).

Problema integrării funcțiilor de control într-un singur modul este că este necesară împărțirea resurselor acum comune (timp procesor, memorie, canale de comunicare) între diverse sarcini, asigurând în același timp același nivel de fiabilitate și independență a funcțiilor ca înainte. Sistemul de operare în timp real joacă un rol cheie în rezolvarea acestei probleme.

În prezent, pe piața mondială există mai multe RTOS comerciale pentru aplicații critice (Tabelul 1). Acest articol oferă o prezentare generală a RTOS disponibile pe piața rusă, pe baza informațiilor din surse deschise și a experienței personale a autorilor.

Documente care reglementează cerințele pentru RTOS

Standardul DO-178 (Software Consideration in Airborne Systems and Equipment Certification) definește cerințele pentru procesul de dezvoltare software și minuțiozitatea verificării acestuia în funcție de nivelul său de criticitate. Nivelul de criticitate software este determinat pe baza unei analize a severității consecințelor unei defecțiuni software. Există cinci niveluri de criticitate software în total (de la A la E).

MILS (Multiple Independent Levels of Security) este o abordare specială pentru proiectarea sistemului de operare, care previne propagarea erorilor aplicației software în timpul rulării și, de asemenea, simplifică verificarea programului datorită modularității software-ului. Toate aplicațiile sunt plasate în așa-numitele secțiuni (partiții). Partițiile au resurse alocate (zona de memorie, timpul procesorului în fiecare ciclu de sistem, acces la canalele de comunicație etc.). Accesul la resursele alocate este garantat de sistemul de operare care rulează în modul supervizor. Astfel, aplicațiile software cu diferite niveluri de criticitate pot rula pe un singur modul de procesor care rulează un sistem de operare - dacă apare o defecțiune în software-ul mai puțin critic (și, în consecință, mai puțin testat), acest lucru nu va afecta în niciun fel funcționarea altor secțiuni, deoarece încercările de a „uzurpa” resursele altor persoane vor fi blocate de sistemul de operare. Ideile MILS le fac ecou pe cele ale IMA și DO-178B.

Eroare 404: Pagina nu poate fi găsită.

Este posibil să se fi întâmplat din unul dintre aceste motive:

– eroare la introducerea adresei paginii (URL)
– în urma unui link „întrerupt” (nefuncționează, incorect).
– pagina solicitată nu a fost niciodată pe site sau a fost ștearsă

Puteți:

– reveniți utilizând butonul Înapoi al browserului
– verificați ortografia corectă a adresei paginii (URL)
– utilizați harta site-ului sau accesați pagina principală

Standardul ARINC-653 (Avionics Application Software Standard Interface) specifică o interfață software de aplicație APEX care acceptă un concept de partiție în stil MILS. Această interfață include funcții pentru gestionarea partițiilor, proceselor, partajarea timpului, comunicațiile între și în interiorul partițiilor și monitorizarea stării sistemului. Trebuie remarcat faptul că standardul ARINC-653 descrie o abordare general acceptată pentru implementarea ideilor MILS pentru IMA, deși pot exista și alte implementări. Un RTOS de aviație care respectă ARINC-653 are avantaje deoarece acest standard este bine cunoscut și înțeles de organismele internaționale de certificare, astfel încât este mai ușor să obțineți un certificat de conformitate DO-178B pentru un sistem construit conform acestui standard.

Standard pentru componente software reutilizabile. În conformitate cu DO-178B, software-ul unui anumit sistem de aplicație de aviație este supus întregii proceduri de certificare, chiar dacă utilizează module (componente) care au fost deja certificate anterior ca parte a unui alt sistem. Una dintre cele mai recente inițiative ale FAA (Agenția Federală de Certificare a Aviației, SUA) este definirea criteriilor pentru reutilizarea software-ului fără recertificare. Componentele care nu pot fi recertificate se numesc RSC (Componente software reutilizabile). Este nevoie de mai mult efort pentru a obține certificarea RSC, dar apoi RSC oferă economii semnificative.

Documente rusești care definesc cerințele software (inclusiv RTOS):

  • GOST R ISO/IEC 51904-2002 („Software pentru sisteme încorporate. Cerințe generale pentru dezvoltare și documentare”) - un analog al DO-178B pentru aviația militară;
  • KT-178A ("Cerințe de calificare partea 178A") - un analog al DO-178B pentru aviația civilă;
  • GOST R ISO/IEC 12207-99 („Tehnologia informației. Procesele ciclului de viață al software-ului”).

Comparația RT OS a fost efectuată în funcție de 13 parametri, care țin cont de criterii tehnice, ușurință de dezvoltare și parametri economici.

Parametrii de sincronizare a sistemului de operare

Una dintre cerințele principale pentru RT OS este timpul minim de întârziere pentru procesarea unui eveniment. În practică, aceasta înseamnă că următorii parametri trebuie să fie mici:

  • timp de răspuns la întrerupere - timpul dintre apariția efectivă a întreruperii și începerea procesării primei instrucțiuni a operatorului de întrerupere;
  • control thread switching time - timpul de comutare între două fire într-un singur proces;
  • timpul de comutare a contextului procesului (numai pentru sistemele de operare care acceptă modelul de proces) - timp de comutare între două fire de control aparținând două procese diferite.

Din păcate, nu este ușor să comparați în mod obiectiv acești parametri ai diferitelor sisteme de operare RT, deoarece acești parametri depind nu numai de calitatea sistemului de operare, ci și de capacitățile platformei hardware utilizate. În mod ideal, toate sistemele de operare comparate ar trebui să fie instalate pe aceeași platformă hardware, după care ar trebui făcute măsurătorile corespunzătoare. Dar nici măcar aceste măsurători nu vor da un rezultat obiectiv, deoarece diferite sisteme de operare pot fi mai mult sau mai puțin adaptate la un anumit hardware.

Pentru a compara parametrii de sincronizare, acest articol utilizează date fragmentate găsite pe Internet, care sunt adesea obținute la testarea sistemului de operare pe diverse echipamente, în timp ce compoziția și natura testelor nu sunt întotdeauna clare.

Date destul de obiective pot fi considerate rezultatele obținute de experții din revista Dedicated System, care au efectuat teste și comparații practice ale QNX RTOS 6.1, VxWorks AE 1.1 și Windows CE.NET pe platforma x86. Deși aceste date sunt în prezent depășite, autorii acestui articol nu au putut găsi materiale mai recente. În tabel Figura 2 prezintă datele de comparație ale performanței selectate între QNX Neutrino 6.1 și VxWorks AE 1.1. Raportul Dedicated Systems a dat preferință QNX în ceea ce privește performanța, cu raportul de scor setat la 9:5 (QNX:VxWorks), deoarece în timpul procesului de testare au fost descoperite două erori în VxWorks, pentru care a fost necesar să contactați suportul pentru a corecta lor.

În tabel 3 prezintă date despre caracteristicile LynxOS. Compoziția testelor utilizate nu este specificată. În ceea ce privește datele despre caracteristicile LynxOS, a patra coloană (testare pe platforma x86) este interesantă. În comparație cu VxWorks și QNX, sistemul de operare LynxOS RT prezintă o întârziere uriașă în răspunsul la întreruperi (de peste 5 ori). Timpul de schimbare a contextului (adică timpul de comutare între două fire într-un singur proces) este același cu QNX și este de aproximativ 1,5 ori mai mic decât VxWorks.

Stabilitatea parametrilor de sincronizare

Pe lângă caracteristicile de sincronizare, stabilitatea acestor caracteristici este, de asemenea, importantă pentru RT OS. Acest criteriu este cel care determină în mare măsură „rigiditatea” sistemului de operare RT, adică. predictibilitatea timpului de prelucrare a datelor, momentul emiterii rezultatelor etc.

Pe baza datelor din jurnalul Sistemului Dedicat, QNX este înaintea VxWorks la acest criteriu atât în ​​ceea ce privește răspândirea caracteristicilor într-o serie de teste similare (raportul dintre timpul maxim și valoarea medie este semnificativ mai mic), cât și cu sarcina în creștere. (timpul de comutare a firelor când numărul de fire crește cu 2...128 de unități pentru QNX a crescut de numai 1,65 ori, în timp ce pentru VxWorks - de 2,24 ori).

Conform datelor obținute de la RTSoft, se știe că LynxOS are aproximativ aceleași caracteristici ca și VxWorks.

Gestionarea accesului la resurse

Să evaluăm calitatea controlului accesului oferit de unul sau altul RT OS resurselor critice ale sistemului de calcul, cum ar fi memoria și timpul procesorului.

Prima întrebare la care trebuie să se răspundă este dacă sistemul de operare acceptă modelul de proces. Un proces este o entitate logică care deține unul sau mai multe fire de execuție, resursele asociate acestora și contextul - conținutul registrelor și contoarelor la un moment dat.

Sarcina proceselor este:

  • în delimitarea accesului la RAM între diferite programe în timpul execuției;
  • în delimitarea domeniului de aplicare a variabilelor globale în momentul compilării (critice dacă aplicația software este scrisă în limbajul C, care nu suportă o astfel de delimitare).

Segmentarea oferă, de asemenea, separarea spațiilor de adrese (în acest sens, capacitățile de sharding și procese sunt duplicate). În plus, sharding oferă fiecărui segment care conține unul sau mai multe procese (sau fire de execuție dacă sistemul de operare nu acceptă modelul de proces) cu un buget de timp garantat. În acest fel, dacă un fir cu prioritate ridicată intră într-o buclă și își întrerupe segmentul, toate celelalte segmente vor primi timp CPU conform setărilor de proiectare și vor continua să funcționeze normal.

LynxOS și QNX acceptă atât modelul de proces, cât și fragmentarea. VxWorks OS are un mecanism de fragmentare, dar nu acceptă modelul de proces. În general, acest lucru este acceptabil deoarece sharding-ul asigură separarea spațiilor de adrese. Dar lipsa proceselor aduce unele inconveniente. În mod obișnuit, împărțirea în segmente se realizează în funcție de scopul propus al software-ului și de criticitatea acestuia. De exemplu, un anumit segment poate conține software de control pentru un sistem de navigație de zbor care are un nivel ridicat de criticitate. Dar acest software este și un complex destul de complex, care ar fi logic să fie împărțit în module independente (de memorie). Sistemul de operare VxWorks nu oferă această caracteristică, adică segmentul va fi format din fire de execuție cu memorie partajată, ceea ce complică organizarea dezvoltării paralele și, în cele din urmă, reduce fiabilitatea software-ului.

Suport pentru multiprocesor și sisteme distribuite

Costul modulelor multiprocesor a scăzut recent semnificativ și, prin urmare, acestea au devenit din ce în ce mai utilizate în sistemele încorporate. Desigur, sistemul de operare RT trebuie să ofere suport pentru astfel de plăci.

O altă direcție promițătoare în construcția sistemelor automate de control este sistemele distribuite, în care modulele sunt separate în spațiu, iar comunicarea între ele are loc printr-un mediu de rețea. Din nou, RT OS utilizat trebuie să aibă mijloace convenabile și fiabile pentru organizarea interacțiunii modulelor: suport pentru diverse protocoale de rețea, mijloace pentru asigurarea transparenței rețelei.

QNX RTOS oferă suport pentru plăci multiprocesor. Pentru VxWorks, un astfel de suport tocmai a fost anunțat. Nu există încă o versiune de aviație a LynxOS cu suport pentru plăci multiprocesor.

În ceea ce privește suportul pentru protocoalele de rețea, trebuie remarcat faptul că RT OS LynxOS, VxWorks și QNX au capacități aproximativ egale (și largi). Un avantaj suplimentar al sistemului de operare QNX RT este arhitectura specială a subsistemului de rețea, care asigură „transparența” rețelei a programelor de aplicație: orice proces poate apela un alt proces pe un modul la distanță în același mod ca un proces pe un modul local.

Suport pentru sistemul de fișiere

Capacitatea de a stoca informații sub formă de fișiere este convenabilă și tradițională. Dimpotrivă, lipsa unei astfel de posibilități creează dificultăți la stocarea datelor rar modificate și la crearea sistemelor distribuite.

În tabel Figura 4 prezintă suportul sistemului de fișiere pentru fiecare dintre sistemele de operare luate în considerare.

QNX are cel mai extins suport pentru sistemele de fișiere. În plus, sistemul său de fișiere flash este tolerant la erori.

Calitatea documentatiei

Calitatea documentației pentru RT OS LynxOS, VxWorks, QNX este destul de ridicată. Cu toate acestea, există și plângeri cu privire la documentație:

  • QNX este o descriere excelentă a arhitecturii și principiilor de proiectare, dar o descriere insuficientă a interfeței de programare a aplicației (nu sunt descriși toți parametrii, există inconsecvențe);
  • VxWorks - nicio explicație a principiilor de funcționare și o descriere insuficientă a procesului complex de configurare a sistemului de operare.

Cu toate acestea, companiile lucrează la calitatea materialului. Documentația pentru versiunea actuală a QNX (6.3.2) a fost extinsă semnificativ, iar unele părți au fost reproiectate.

Calitatea suportului tehnic

În ceea ce privește calitatea suportului tehnic oficial, liderul neîndoielnic este LynxOS. LynuxWorks promite să răspundă la orice întrebare tehnică în termen de 4 ore de la postarea cererii. LynxOS este distribuit în Rusia de către RTSoft, care are un personal mare de angajați capabili să ofere asistență calificată. Dezavantajul LynxOS este că sistemul de operare nu este încă foarte răspândit în Rusia; prin urmare, nu există o comunitate de utilizatori stabilită și nici măcar nu există un forum în limba rusă.

QSS (producătorul QNX) oferă, de asemenea, suport tehnic bun, dar timpii de răspuns rapid nu sunt garantați. Spre deosebire de LynxOS, sistemul de operare QNX RT are o comunitate de utilizatori bine organizată atât în ​​străinătate, cât și în Rusia. Răspunsurile la majoritatea întrebărilor pot fi găsite pe aceste forumuri. QNX în țara noastră este distribuit de SVD Embedded Systems, ai cărui angajați sunt capabili să ofere suport tehnic competent și să desfășoare lucrări de adaptare a sistemului de operare la anumite plăci de procesor. În plus, compania are contacte directe cu QSS și poate obține sfaturi cu privire la probleme complexe de la dezvoltatorul sistemului de operare QNX RT.

WindRiver, dezvoltatorul VxWorks, aderă în mod tradițional la o politică tehnică închisă, adică informațiile despre principiile de funcționare ale sistemului de operare sunt destul de dificil de obținut. De asemenea, acest sistem de operare nu are un forum în limba rusă. Sistemul de operare VxWorks RT este distribuit în țara noastră de către compania AVD Systems, care se ocupă în principal de vânzarea de soluții software și hardware gata făcute de origine străină.

Sursa deschisa

Un sistem de operare RT deschis are cel puțin trei avantaje:

  • dezvoltatorii de aplicații software pot înțelege probleme complexe fără a implica suport tehnic;
  • mai ușor de certificat (fără marcaje etc.);
  • dezvoltare mai dinamică, deoarece compania dezvoltatoare RT OS primește adesea nu numai solicitări de corectare a erorilor, ci și propuneri pentru eliminarea erorilor și îmbunătățirea sistemului. Comunitățile de dezvoltatori RTOS open source, de regulă, cresc mult mai repede și sunt mai bine organizate. Experții independenți par să ajute la rezolvarea problemelor serviciului de asistență tehnică și să participe la dezvoltarea, depanarea și testarea sistemului.

Din septembrie 2007, QSS a deschis nucleul QNX (inclusiv pachetul Adaptive Partitioning, pachetul High Availability). Puțin mai târziu, codurile sursă ale subsistemului de rețea au fost deschise. În prezent, versiunea beta 6.4.0 este disponibilă pentru descărcare de pe site-ul oficial.

Trebuie remarcat faptul că astăzi nu toate modulele QNX sunt deschise (de exemplu, nu există coduri pentru grafică și sisteme de fișiere), iar licența impune o restricție privind utilizarea „codului sursă”: numai pentru uz necomercial. Cu toate acestea, utilizatorul QNX primește beneficiile de mai sus gratuit.

Codurile sursă LynxOS și VxWorks sunt disponibile comercial. Pretul unui astfel de produs este negociabil.

Instrumente

Disponibilitatea unor instrumente bune determină în mare măsură calitatea și viteza de dezvoltare a programelor de aplicație pentru un anumit sistem de operare. Trebuie remarcat faptul că LynxOS, VxWorks și QNX oferă în prezent instrumente de bună calitate, care includ un mediu de dezvoltare integrat (IDE) și depanare a aplicațiilor software, instrumente de profilare a programelor (pentru a detecta blocajele de performanță, memorie etc.). Ergonomia ISD-ului pentru aceste sisteme de operare RT nu este în general inferioară instrumentelor de dezvoltare dezvoltate pentru sistemele de operare convenționale (de exemplu, MS Windows).

Portabilitatea software-ului de aplicație

Portabilitatea software-ului aplicației face posibilă utilizarea acestuia sub alte sisteme de operare (inclusiv SO non-RT). Portabilitatea oferă dezvoltatorului de aplicații software o anumită independență față de sistemul de operare RT: dacă este necesar, puteți trece la un alt sistem de operare la un cost redus.

Capacitatea de a scrie software portabil este determinată în prezent de conformitatea cu standardul POSIX. Toate sistemele de operare RT considerate acceptă standardul POSIX 1003.1. LynxOS are un avantaj - acest sistem de operare este compatibil binar cu Linux. Adică, aplicațiile Linux pot fi rulate sub LynxOS fără recompilare. În schimb, aplicațiile LynxOS pot fi rulate pe Linux (versiunea 2.4.x cu biblioteca de limbaj C glibs versiunea 2.2.2).

Restul sistemului de operare RT necesită recompilare pentru a rula aplicații Linux. În acest caz, procesul de portare chiar și a aplicațiilor compatibile cu POSIX poate deveni adesea destul de laborios din cauza diferențelor de implementare a bibliotecilor și compilatoarelor.

Suport arhitectura procesorului

Dezvoltatorii interni de sisteme de control pentru aviație în perioada actuală de tranziție de la sistemele de operare interne la cele comerciale se găsesc adesea într-o situație în care trebuie să selecteze și să adapteze un RTOS la o placă de procesor existentă. În acest caz, unul dintre argumentele cheie atunci când alegeți un sistem de operare este suportul pentru arhitectura procesorului utilizat pe placă.

Respectarea standardelor aviatice

În practica străină, software-ul pentru sistemele avionice trebuie să aibă un certificat de conformitate cu standardul DO-178B. Dacă software-ul cu diferite niveluri de criticitate este executat pe același modul de procesor, atunci RTOS utilizat trebuie să susțină conceptul de partiții. (În caz contrar, este aproape imposibil să se dovedească nepropagarea erorii). După cum sa menționat deja, este mai bine dacă interfața de programare RTOS respectă standardul ARINC-653, deoarece standardul este bine cunoscut organismelor de certificare străine.

LynxOS este lider în ceea ce privește conformitatea cu standardele. Acceptă ARINC-653 și există o mulțime de exemple de sisteme certificate DO-178B construite pe el. Punctul cheie este că LynuxWorks oferă un set de RSC (deși autorii articolului nu știu nimic despre preț).

VxWorks respectă standardul ARINC-653, iar sistemele construite pe deasupra pot fi certificate la DO-178B (există multe exemple).

QNX nu respectă ARINC-653 și nu există încă sisteme certificate DO-178B bazate pe acesta.

Trebuie remarcat faptul că sistemele QNX pot fi folosite în principiu pentru a construi un IMA, deoarece QNX acceptă propria metodă de furnizare a conceptului de partiție, care este o alternativă foarte bună la ARINC-653 și, în plus, vă permite să economisiți timp procesorului. .

În ceea ce privește standardele rusești similare pentru aviația militară (GOST R ISO/IEC 51904-2002), nu există încă un singur exemplu de sistem certificat, deși, în principiu, un astfel de sistem poate fi dezvoltat pe baza oricărui SO luat în considerare. Pentru sistemul de operare QNX RT, se lucrează în prezent pentru pregătirea principalelor module OS pentru certificare.

Dezvoltarea sistemului de formare specializată

Viteza și calitatea instruirii pentru personalul care lucrează cu sistemul de operare RT și diverse instrumente de dezvoltare software și depanare este direct legată de viteza dezvoltării software și de calitatea acestuia. Companiile de vârf în domeniul software-ului încorporat și de sistem, cum ar fi WindRiver, LynuxWorks, QSS, desfășoară un program la scară largă de cursuri și training-uri pentru a studia utilizarea produselor companiei, inclusiv a sistemului de operare RT.

Rezultatele comparației

QNX Neutrino RTOS este cel mai avansat sistem de operare din punct de vedere tehnic, are un set bun de instrumente și are un preț relativ mic. Arhitectura Microkernel asigură fiabilitate ridicată și modularitate sistemelor dezvoltate. Un avantaj suplimentar este codul open source. Dar există și o „zbură în unguent”: în prezent, QNX nu este practic folosit nicăieri în aviație și, în acest sens, acest sistem de operare pierde în fața concurenților săi (LynxOS și VxWorks). Un dezavantaj suplimentar al QNX: nerespectarea standardului ARINC-653.

Trebuie remarcat faptul că, în principiu, QNX Neutrino dispune de toate mecanismele necesare pentru a lucra în sistemele avionice. În plus, fiabilitatea și disponibilitatea ridicată a sistemelor bazate pe QNX au fost dovedite în alte industrii în care costul erorii este chiar mai mare decât în ​​aviație (controlul reactorului nuclear).

Lucrările de pregătire pentru certificarea QNX Neutrino în conformitate cu cerințele standardelor naționale de aviație sunt în prezent efectuate de SWD Software.

RTOS LynxOS-178, dimpotrivă, are toate certificatele necesare în străinătate, deși după multe alte criterii pare mai puțin preferabil decât QNX Neutrino. Rețineți că pentru utilizare în industria aviației ruse, LynxOS-178 RTOS trebuie, de asemenea, să fie certificat în conformitate cu GOST-urile interne.

VxWorks OS are o istorie lungă de utilizare în aplicații critice din străinătate. Cu toate acestea, analiza noastră arată că pare mai puțin preferabil primelor două sisteme de operare după multe criterii. În plus, credibilitatea VxWorks este subminată de strategia sa de dezvoltare închisă.

Grup de experți / R&D.CNews

Imprimare