Sistem în timp real

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Notă despre dezambiguizare.svg Dezambiguizare - Dacă sunteți în căutarea altor semnificații, consultați În timp real .
Exemple de sisteme în timp real. În sensul acelor de ceasornic de sus: carlinga de sticlă a unui C-141 , un ECU auto, o placă de bursă , un MP3 player .

În informatică , un sistem în timp real (în italiană „sistem în timp real“) este un calculator în care corectitudinea rezultatului calculelor sale nu depinde numai de corectitudinea logică , ci și pe corectitudinea temporală. Acesta din urmă este adesea exprimat ca timpul maxim de răspuns [1] [2] . Calculele efectuate de sistemele în timp real sunt menționate cu termenul englezesc real-time computing sau mai rar cu termenul italian calcule în timp real . Fiabilitatea și interacțiunea cu mediul sunt adesea asociate cu aceste sisteme [1] .

Definiție

Un sistem în timp real garantează un anumit timp de răspuns decis la momentul proiectării . Prin urmare, timpul real nu este sinonim cu viteza sau cu un randament ridicat: un sistem în timp real poate fi extrem de lent, dar garantează o limită superioară precisă cu timpul necesar calculului [3] . Cele două obiective ale menținerii unui randament ridicat și a unei latențe de răspuns scăzute sunt adesea în contradicție și generează un compromis . Din punct de vedere al planificării , scopul unui sistem normal este de a minimiza timpul de execuție a sarcinilor pentru a crește randamentul mediu ; scopul unui sistem în timp real este finalizarea sarcinilor în timpul stabilit. Din acest motiv, un sistem în timp real nu este un sistem extrem de rapid (așa cum este un supercomputer ), ci un sistem extrem de previzibil [4] .

În sistemele critice în timp real, sunt utilizate de obicei arhitecturi hardware , sisteme de operare și programe de aplicații dedicate, spre deosebire de practica de a se baza pe componente comerciale off-the-Shelf . Cele trei componente ( hardware , software de bază și software de aplicație ) sunt adesea strâns legate în faza de proiectare a sistemului. În acest fel, este posibil să se efectueze analiza de timp necesară pentru a obține o posibilă certificare a produsului final.

Sisteme de operare în timp real

Pictogramă lupă mgx2.svg Același subiect în detaliu: sistem de operare în timp real .

Programele în timp real pot fi rulate autonom (tipic unui sistem încorporat ) sau printr-un sistem de operare, care în acest caz trebuie să fie un sistem de operare în timp real . În al doilea caz, prin urmare, nu este suficient ca programul să fie în timp real, ci necesită, de asemenea, ca sistemul de operare să ofere o planificare adecvată în timp real [5] . Permite mai multe aplicații în timp real să ruleze pe același sistem; fezabilitatea găsirii unei politici de planificare adecvate trebuie verificată la momentul proiectării, în caz contrar termenul limită se va pierde. Aplicațiile pot avea apoi prioritate, gestionate corespunzător prin programare

Nevoia de timpi de răspuns fiabili

După cum sa menționat deja, sistemele în timp real nu sunt sisteme rapide , ci sisteme care garantează un anumit timp de răspuns . Interpretarea corectă a timpului de răspuns depinde de aplicație în sine. Puteți lua în considerare timpul necesar pentru efectuarea calculului și imprimarea pe ecran sau timpul necesar pentru a trimite comenzile către un actuator.

Corectitudinea temporală a sistemului este necesară atunci când sistemul interacționează cu mediul și trebuie să mențină o anumită sincronie cu acesta. Sistemele care arată utilizatorului informații despre mediu sau sistemul în sine (de exemplu, camera de control pentru centrale nucleare, avionică etc.) nu pot avea un decalaj de timp în raport cu datele reale. Clasificarea dură , fermă și moale depinde nu numai de cerințele de timp, ci mai ales de impactul pe care o eroare l-ar avea asupra mediului. Unele sisteme au nevoie de timp real precis datorită efectului lor asupra mediului în cazul în care timpul de răspuns este prea lung; acolo unde poate exista pericolul de deteriorare a ființelor vii, un sistem în timp real devine vital și, în special, în timp real .

Mai mult, sistemele informatice care emulează sistemele de teorie a controlului dinamic au nevoie de intervale de eșantionare precise, care, dacă sunt prea departe de cele ideale, pot duce la instabilitate [6] . Acest tip de control este esențial pentru toate aplicațiile de automatizare industrială [7] .

Clasificarea sistemelor în timp real

O primă clasificare a sistemelor în timp real se referă la tolerabilitatea nerespectării termenelor limită [1] [8] [9] :

  • Sistem dur în timp real: nerespectarea termenelor nu este permisă; nerespectarea unui singur termen poate duce la consecințe catastrofale în mediul în care funcționează sistemul. Este tipic aplicațiilor critice pentru siguranță ;
  • Sistem ferm în timp real: nerespectarea anumitor termene este permisă atâta timp cât este în anumite limite; dacă termenul limită este ratat, rezultatul nu este utilizabil, dar nu cauzează probleme excesive;
  • Sistem soft în timp real: nerespectarea anumitor termene este permisă atâta timp cât este în anumite limite; dacă termenul limită este ratat, sistemul poate folosi rezultatul, de obicei degradând performanța computerului fără a provoca probleme excesive.

Adesea, distincția între ferm și moale nu este marcată, iar cele două concepte sunt considerate echivalente [10] .

Greu în timp real

Sistemele de centrale nucleare necesită, de obicei, sisteme dure în timp real, în fotografie, camera centralei din Leningrad

Sistemele dificile în timp real își găsesc aplicația în majoritatea sistemelor critice de misiune și de siguranță , datorită necesității de a reacționa la evenimente externe în perioade prestabilite [11] . Acest concept este adesea exprimat în termeni de termen, adică timpul maxim în care trebuie să se încheie calculul ca reacție la un eveniment [12] . Caracteristica tradițională a unui sistem dur în timp real se datorează faptului că nerespectarea unui termen limită poate provoca daune grave oamenilor sau bunurilor [13] .

Cerințe de timp și caracteristici

Sarcinile unui sistem hard-time pot fi clasificate în funcție de caracteristica lor de activare, adică de modul în care generează joburile de executat. Fiecare job reprezintă o singură unitate de calcul, care trebuie să respecte termenul relativ al sarcinii. Cea mai comună subdiviziune este următoarea [14] :

  • Sarcini periodice : locurile de muncă sunt eliberate la intervale regulate de timp, numite perioadă .
  • Sarcini dinamice
    • Sarcini periodice : locurile de muncă sunt eliberate la intervale de timp neregulate și necunoscute; termenul nu poate fi astfel garantat pentru aceste sarcini.
    • Sarcini sporadice : joburile sunt eliberate la intervale neregulate de timp, dar al căror interval maxim este cunoscut; termenul limită în acest caz poate fi garantat.

Soft și ferm în timp real

Un player media este un exemplu ușor în timp real

Sistemele soft și ferme în timp real admit că unele dintre tranzacții pot fi încălcate, chiar dacă acestea trebuie să fie limitate ca număr. Definiția deliberat vagă este principala caracteristică a acestor sisteme. De fapt, acestea nu trebuie confundate cu sisteme în timp real slab dure [15] , adică sisteme care acceptă încălcarea unui număr maxim precis de termene, dincolo de care sistemul este considerat defect. Cerințele sistemelor soft în timp real sunt de obicei exprimate prin metricele Quality of Service [16] , cum ar fi debitul mediu. Sistemele ferme în timp real diferă de sistemele soft în timp real prin faptul că atunci când se încalcă un termen limită, rezultatul lor este inutilizabil și, prin urmare, trebuie aruncat.

Spre deosebire de sistemele hard-time în timp real, când se încalcă un termen limită, acestea se degradează în ceea ce privește performanța în loc să fie considerate eșecuri. Atunci când unul sau mai multe termene sunt încălcate, unele sisteme în timp real reacționează modificând parametrii proceselor în timp real în vederea aproximării calculului [17] .

Exemple

Conform clasificării anterioare, câteva exemple de sisteme în timp real sunt:

Modele matematice pentru sisteme dificile în timp real

Un sistem dur în timp real este de obicei exprimat prin două modele: modelul de activitate și modelul de sistem, adică modelul hardware . Termenul sarcină este folosit frecvent, într-un context în timp real, pentru a depăși problema de a distinge între proces și fir , rămânând astfel suficient de general.

Cel mai frecvent model de sarcini [21] [22] [23] este setul de sarcini , fiecare exprimat prin următorul tuplu :

Model de planificare în timp real.svg

unde este:

  • este faza sarcinii, adică distanța dintre timpul 0 și prima activare a sarcinii.
  • este timpul de execuție al celui mai rău caz (WCET) , adică timpul maxim pe care îl va lua sarcina pentru a calcula rezultatul, calculat fără nicio preempțiune .
  • este perioada de execuție.
  • este termenul relativ, adică mărimea intervalului de timp dintre timpul de activare și timpul în care sarcina trebuie să se termine.

Parametrul în cazul sarcinilor non-periodice reprezintă timpul minim de inter-sosire a locurilor de muncă. Fiecare sarcină generează o succesiune de joburi identificate de . Această secvență este adesea considerată nelimitată în scopuri de analiză, presupunând că sistemul în timp real funcționează constant.

Parametrii calculați din cei afișați anterior pentru sarcini [23] sunt apoi asociați cu fiecare lucrare:

  • : ora de sosire a celui de-al k-lea job (uneori numit release), calculat ca ;
  • : termenul absolut al celui de-al doilea loc de muncă, calculat ca ;
  • : ora de începere a celui de-al doilea job, atribuit de sistemul de operare, care este momentul în care jobul începe executarea acestuia;
  • : ora de încheiere a celui de-al doilea job, atribuit de sistemul de operare sau ora la care jobul își termină execuția;
  • : timpul de răspuns al celui de-al treilea job, calculat ca ;
  • : timpul liber, adică timpul maxim în care începutul poate fi amânat fără a atrage o încălcare a termenului:

Se spune că sistemul este corect din punct de vedere temporal dacă, pentru orice job k, timpul de răspuns este mai mic sau egal cu termenul relativ, sau, echivalent, dacă ora de încheiere este mai mică sau egală cu termenul limită absolut, .

Dificultate de realizare

Proiectarea și implementarea sistemelor în timp real este extrem de complexă și costisitoare. Din acest motiv, alegerea utilizării unui sistem în timp real trebuie să fie dictată de o nevoie reală, în special pentru sistemele dure în timp real . Proiectarea acestor sisteme necesită mai multe analize aprofundate ale calendarului și verificarea corectitudinii programului în sine.

Diferitele obstacole în calea sistemelor în timp real sunt de natură diferită și pot fi rezumate în următoarea clasificare [24] :

  • Complexitatea mediului cu care să interacționăm
    • viteza necesară, numărul de sarcini care trebuie îndeplinite etc.
    • gestionarea întreruperii
  • Recuperare după un eșec
    • recunoașterea, izolarea și rezolvarea unei defecțiuni, fie că este vorba de hardware, software etc.
    • utilizarea rutinelor speciale
  • Arhitecturi distribuite
  • Starea cursei

Estimarea WCET

Pictogramă lupă mgx2.svg Același subiect în detaliu: timpul de execuție în cel mai rău caz .

Timpul de execuție al celui mai rău caz (WCET) reprezintă estimarea timpului maxim de execuție necesar pentru a construi dovezi formale că sistemul este corectat în timp. Estimarea acestei valori nu este banală, mai ales în arhitectura modernă care utilizează componente COTS [25] . Aceste sisteme - datorită introducerii unor caracteristici complexe precum multi-core , cache , pipeline etc. - sunt dificil de previzionat în timp , făcând calculul WCET extrem de dificil și / sau prea complex de calcul [26] . Din acest motiv, de obicei se calculează estimările , totuși, care, pentru a asigura siguranța, sunt deseori esageramente pesimiste, făcând astfel WCET estimat prea departe de WCET-ul real și, în consecință, inutilizabil în scopul programării . Începând cu 2020, estimarea WCET pentru arhitecturi complexe este încă un subiect de cercetare deschis [27] .

Notă

  1. ^ a b c Shin, Kang G., Parameswaran Ramanathan, Real-Time Computing: A New Discipline of Computer Science and Engineering , în Proceedings of the IEEE , 1994.
  2. ^ Marco Giancola, Real-Time Systems ( PDF ), pe mathici.it . Adus în iulie 2016 .
  3. ^ Rigutini Leonardo, Real-Time Operating Systems ( PDF ), pe dii.unisi.it , Universitatea din Siena (arhivat din original la 6 august 2016) .
  4. ^ (EN) John Stankovic, Concepții greșite despre calculul în timp real: o problemă serioasă pentru sistemele de generație următoare , în Calculatoare, vol. 21, n. 10, IEEE, octombrie 1988.
  5. ^ Jürgen Assfalg, Scheduling Algorithms ( PDF ), pe dsi.unifi.it , Universitatea din Florența. Adus în iulie 2016 (arhivat din original la 14 octombrie 2009) .
  6. ^ (EN) Tarek Abdelzaher, Yixin Diao, Joseph L. Hellerstein, Chenyang Lu, Zhu Xiaoyun, Introducere în teoria controlului și aplicația sa la sistemele de calcul (PDF).
  7. ^ Ghidul interfeței mașinii umane (HMI) ( PDF ), pe ti.com , Texas Instruments. Adus la 19 iulie 2016 (arhivat din original la 12 septembrie 2015) .
  8. ^ a b Stefan M. Petters, Real-Time Systems ( PDF ), cse.unsw.edu.au , UNSW Australia. Adus în iulie 2016 .
  9. ^ a b Donglin Liu, Xiaobo Sharon Hu, membru senior, IEEE, Michael D. Lemmon, Qiang Ling, Programare firmă în timp real a sistemului bazată pe o nouă constrângere QoS , în IEEE Transactions on Computers , 2006.
  10. ^ Pier Luca Montessoro, Sisteme de operare în timp real ( PDF ), pe web.diegm.uniud.it , Universitatea din Udine. Adus în iulie 2016 .
  11. ^ Paul Pop, Sisteme critice de siguranță , pe imm.dtu.dk , Universitatea Tehnică din Danemarca. Adus în iulie 2016 .
  12. ^ Gianluca Palli, Introducere în sistemele în timp real ( PDF ), pe www-lar.deis.unibo.it , Universitatea din Bologna. Adus în iulie 2016 (arhivat din original la 22 septembrie 2015) .
  13. ^ TimeSys Corporation, Manualul concis al sistemelor în timp real , 2002.
  14. ^ Sarcini în sistemele în timp real , la geeksforgeeks.org . Adus la 6 ianuarie 2020 .
  15. ^ G. Bernat, A. Burns, A. Llmosi, Weakly Hard Real-Time Systems ( PDF ), în Tranzacții pe computere , IEEE, 2001.
  16. ^ Introducere în sistemele în timp real , la design.ros2.org , Open Source Robotics Foundation. Adus pe 7 ianuarie 2020 .
  17. ^ Scott A. Brandt, Soft-sisteme în timp real , la users.soe.ucsc.edu . Adus pe 7 ianuarie 2020 .
  18. ^ Hard and Soft Real-Time , la docs.fedoraproject.org , Fedora . Adus în iulie 2016 .
  19. ^ Hard și soft timp real , pe lwn.net . Adus în iulie 2016 .
  20. ^ Karthik Channakeshava, Kaustubh S. Phanseg, Luiz A. DaSilva Binoy, Ravindran Scott F. Midkiff, E. Douglas Jensen, IP Quality of Service Support for Soft Real-Time Applications , în IEEE Euromicro Conf. Real-Time Systems , 2005.
  21. ^ (EN) Sarcini în sistemele în timp real , pe geeksforgeeks.org. Adus pe 5 ianuarie 2020 .
  22. ^ ( EN ) et.engr.iupui.edu , http://et.engr.iupui.edu/~dskim/Classes/ESW5004/RTSys%20Lecture%20Note%20-%20ch02%20A%20Reference%20Model%20for% 20Real-Time% 20Systems.pdf . Adus pe 5 ianuarie 2020 .
  23. ^ a b ( EN ) Giorgio C. Buttazzo, Hard Real-Time Computing Systems , 2011, ISBN 978-1-4614-0675-4 .
  24. ^ (EN) Probleme în proiectarea sistemelor în timp real pe eventhelix.com. Adus la 20 iulie 2016 .
  25. ^ H Shah, A Raabe, A Knoll, Provocări ale analizei WCET în COTS multi-core datorită diferitelor niveluri de abstractizare ( PDF ), în hiRES , 2013.
  26. ^ Dakshina Dasari, Benny Akesson, Vincent Nélis, Muhammad Ali Awan, Stefan M. Petters, Identificarea surselor de imprevizibilitate în sistemele multicore bazate pe COTS ( abstract ), în al 8-lea Simpozion internațional IEEE privind sistemele industriale încorporate (SIES) , IEEE, 2013 .
  27. ^ Apel pentru lucrări ECRTS , pe ecrts.org , 2020. Accesat la 6 ianuarie 2020 .

Elemente conexe

linkuri externe