Axa timp real
Ce este în timp real (în timp real)?
Există mai multe definiții ale conceptului de timp real, de multe ori în conflict, care nu, din păcate, să adopte o terminologie comună. Aproape canonice poate fi numită următoarea definiție: „Real Time System - este un sistem, din care corectitudinea nu depinde numai de îndeplinirea anumitor sarcini, dar, de asemenea, din momentul executării lor. În cazul în care timpul de parametrii de setare sunt încălcate - aceasta este a eșuat ". Plus față de această definiție: „sincronizare Prin urmare, sistemul în sine trebuie să fie garantată, adică comportamentul sistemului ar trebui să fie previzibil. Acest lucru minimizează numărul de restante (din cauza unor încălcări de sincronizare) de locuri de muncă ".
Un bun exemplu de sistem în timp real este un robot care ia elementul pe care se deplasează prin conducta. Dacă el e târziu, va fi dor unul din bucla transportorului și să încerce să ia parte prea devreme ar putea bloca circulația altor părți. Un alt exemplu - un plan de zbor pe pilot automat. Senzorii speciali determina poziția aeronavei în spațiul tridimensional. Numai primirea constantă și în timp util a acestor date pe computer de bord asigură siguranța zborului.
Uneori, sistemul în timp real se numește sistem interactiv cu un timp de răspuns rapid. Luați în considerare următorul exemplu: tastarea în programul WINWORD 2.0 pe un calculator cu procesor Athlon 1 GHz. Timpul de răspuns în acest caz - este timpul dintre caracterele corespunzătoare presante și afișarea în fereastra. Se pare evident că această valoare este în acest caz, nu contează - toate aceeași persoană imprimă mai lent. Eroarea constă în înlocuirea conceptelor - răspuns de mare viteză nu înseamnă neapărat garanție de răspuns. Descărcarea unui număr mare de sarcini mari consumatoare de pe calculator, putem crește timpul de răspuns la infinit. Următorul experiment: plasarea etichetele tuturor programelor instalate (este de dorit ca printre ei erau astfel de aplicații monstruoase, cum ar fi Borland Delphi, Microsoft Office, precum și un cuplu de 3D-shooter) de pe desktop Windows95 (este de dorit să se construiască 450 sau mai devreme :) Mark le cu mouse-ul și apăsați Enter. După aceea, Windows va huruit hard disk, jonglând de date între fișierul swap și memoria, și nu răspunde la nici o influență externă, până când se va apăsa butonul Reset. De obicei, acest lucru este suficient pentru a înțelege că sistemul de rapid - nu este neapărat sistem în timp real. Pe de altă parte, în timp real nu înseamnă viteza de execuție a programului; Mai mult decât atât, algoritmii care garantează timpul de răspuns final, de multe ori mai puțin eficace decât de obicei.
sistem de operare în timp real
Înțelegerea principiului și proprietățile de bază ale sistemelor de operare în timp real (RTOS - Real Time Operating System) necesită introducerea unor definiții de bază ca microkernel (microkernel) și makroyadro (macrokernel).
Există două școli principale de yadrostroiteley (nu a putut găsi o traducere mai exactă pentru kernel
Dezvoltatorii :): crede că operare kernel-ul sistemului trebuie să fie compact și rapid, iar funcționalitatea este dispersată în proces, o altă predică o abordare mai tradițională prin asigurarea de bază toate funcțiile de bază ale sistemului de operare, și a proceselor - nimic în afară de posibilitatea de a apela cele mai multe dintre aceste funcții. Pentru a desemna primul (pentru transferuri, mai degrabă decât în momentul apariției) tipul de arhitectură în 1989 godu a fost introdus Iroy Goldshteyn și Paul Dale microkernel termen (microkernel). Primul (în prezent - în cronologică sens) arhitectura de bază (tradițională, sau monolit (monolit), așa cum este numit în literatura engleză) numită „makroyadro“ (care arată în mod clar nivelul scăzut de imaginație de dezvoltatori, în special a sistemului).
Dezbaterea despre care arhitectura este cel mai bine, du-te până acum. Cele mai multe dintre implementări UNIX construit pe makroyadre, inclusiv cele mai populare până în prezent - Linux si FreeBSD. Construit pe un sistem de operare, cum ar fi microkernel Mach și QNX. Cu toate acestea, unii analiști sisteme nu se referă la Mach mikrokernelam din cauza dimensiunii mari a kernel-ului (care include drivere de dispozitiv, ceea ce este tipic pentru majoritatea makrokernelov). Cu miezul QNX a dezvoltat situația inversă - este atât de mică (și în dimensiune, și
funcționalitate), a trebuit să introducem un nou termen - nanokernel (nanokernel). Cred că controversa din jurul Mach ar putea fi rezolvate în același mod, și anume, schimbări în terminologie - dar, aparent, santikernel cuvinte și detsikernel părea destul de programatori euphonious. Trebuie înțeles faptul că microkernel OS și distincția pe makroyadra nu au fost făcute cu privire la dimensiunea nucleului și arhitectura sa, și anume, raportul dintre numărul de funcții implementate în nucleu și funcțiile implementate în afara nucleului. Alți parametri (de performanță, flexibilitate, care lucrează în timp real), nu pot fi semne ale acestei distincții. În plus, limita dintre makrokernelami și mikrokernelami din ce în ce în ce mai neclară datorită faptului că multe boabe de monolitice moderne conțin așa-numitele fire (fire), și au capacitatea de a „granulație fină“ rasparallerivaniyu (cum altfel să traducă parallerism cu granulație fină?). Arhitectura mikrokernelam similare, cum ar nuclee cu un număr mare de procese care rulează într-o memorie partajată (partajată).
Posibilitatea de a sistemului de operare pentru a lucra în timp real, este determinată în mare măsură de arhitectura de bază. Cel mai convenabil în această privință sunt micronucleilor (de fapt, pentru aceasta, ei au dezvoltat), dar acest lucru nu înseamnă că toate lucrările mikrokernely în timp real (Mach - microkernel nu funcționează în timp real, care nu distrage atenția de la celelalte avantaje ale acestui sistem de operare, dând naștere la mulți urmași, inclusiv NeXTStep, Hurd, BeOS, și MacOSX). Makrokernela existența cu suport complet pentru funcționarea în timp real este încă în discuție (nu am găsit nici o informație cu privire la un astfel de proiect, cu excepția, poate, Sun Solaris 2.x, dar în opinia mea (nu pretind competenta) este mai degrabă SoftRTS și nu HardRTS), dar punerea în aplicare parțială - un eveniment comun. De exemplu, în Linux a introdus în mod activ interprocessor menționat anterior (din procesul de cuvânt, și nu CPU) fir, și deja există un număr mare de aplicații (prima a fost Apache Web-server), folosind această interfață.
QNX RTOS
Cel mai popular în România RTOS - QNX 4.0 (de fapt, Windows NT, dar ați văzut o mulțime de oameni care yuzayut eNTyu tocmai din cauza asta?). Printre alte unix-clone, ea deține, de asemenea, o poziție puternică - penetrare (de exemplu, cota de piață a capturat) a sistemului de operare este de aproximativ 8-10% - o mai mare prevalență au doar Linux si FreeBSD (confiscat un total de aproximativ jumătate din unix-sistemele pieței românești). În ciuda faptului că QNX este inițial un comercial, închis și de proprietate, acum modelul de licențiere permite prepararea și utilizarea în mod gratuit ca sistemul de operare în sine (într-o configurație minimală, desigur, și nu pentru uz comercial, dar - din nou - absolut gratuit nu există limite de timp) și sursa (de asemenea, nu toate și nu pentru toată lumea - dar este deja foarte mult).
Alte caracteristici este puțin probabil să fie interesați - acestea nu sunt pentru toată lumea profesioniști QNX-cunoscute sunt pentru. Prin urmare, aproximativ 12 provocări potențiale microkernel, 32 de niveluri de prioritate și trei algoritm de împărțire a timpului (FIFO, circulare și adaptativ) am nici măcar bâlbâi.
Dar cerințele hardware sunt foarte sfătuim să citiți cu atenție:
CPU: 8088, 80286, 80386 și de mai sus
RAM: cel puțin 640kB (pentru performanță), 2M (pentru dezvoltare)
HDD: 5MB pentru sistemul de operare si utilitati (pentru sistemul de programare
- are 4MB); configurație posibilă diskless.
Arată acest articol unui prieten: