Proiectarea aplicaţiilor în timp real. Introducere
|
|
- Αριάδνη Ζαχαρίου
- 7 χρόνια πριν
- Προβολές:
Transcript
1 Proiectarea aplicaţiilor în timp real Introducere 1
2 Clasificare a sistemelor de calcul Sisteme transformaţionale Sisteme reactive Sisteme interactive Sisteme de timp real De obicei sistemele pot fi încadrate în mai multe categorii
3 Sistemele transformaţionale Durata operaţiilor este limitată Timpul de execuţie nu este critic Rezultatele sunt independente de momentul la care sunt produse Exemple: Programe de calcul matematic Compilatoare Programe contabile
4 Sisteme interactive Sunt în dialog permanent cu unul sau mai mulţi utilizatori Răspund doar dacă li se solicită în mod explicit Timpul de răspuns nu are influenţă mare asupra răspunsului Exemple: Sisteme de proiectare asistată de calculator Programe de navigare Internet Procesoare de text, editoare, tabele de calcul
5 Sisteme de timp real Sunt conectate cu un anumit proces (exterior sistemului) Trebuie să răspundă într-un interval de timp limitat solicitărilor externe Rezultatele obţinute depind de momentul la care au fost produse De obicei funcţionează în mod continuu Exemple: controlul roboţilor controlul sistemelor de acţionare electrică sisteme de comunicaţii
6 Sisteme de timp real Trebuie să satisfacă următoarele constrângeri: trebuie să ofere un rezultat/răspuns într-un timp dat acţiunile/răspunsurile nu mai sunt de obicei de nici un folos necesită predictibilitate şi desfăşurare în timp
7 Caracteristicile sistemelor RT Timpul de răspuns Procese multiple Sincronizarea componentelor Determinismul Flexibilitatea Adaptabilitatea Nereversibilitatea
8 Timp de răspuns Intervalul de timp dintre momentul în care se modifică una sau mai multe intrări ale sistemului şi momentul în care apare răspunsul la ieşirile acestuia În cazul sistemelor complexe timpul de răspuns trebuie corelat cu o anumită planificare a răspunsurilor
9 Procese multiple Sistemul poate executa aplicaţii care sunt organizate sub forma mai multor procese care interacţionează între ele şi cu exteriorul Procesele pot fi: periodice aperiodice cvasiperiodice Utilizarea proceselor necesită existenţa unor mecanisme specifice: planificare, comunicare între procese, tratarea excepţiilor
10 Sincronizarea componentelor cu timpul fizic Activitatea subsistemelor trebuie sincronizată cu dinamica proceselor din lumea reală Sistemul trebuie să prelucreze informaţii care sunt disponibile doar un anumit interval de timp (în afara intervalului datele respective nu mai sunt de folos)
11 Determinism Un sistem este determinist dacă pentru fiecare stare şi combinaţie de intrări va trece într-o stare următoare unică şi va furniza un set unic de valori de ieşire Anticipând comportamentul unui sistem permite planificarea resurselor şi rezervarea lor în avans.
12 Flexibilitatea şi adaptabilitatea Are în vedere posibilitatea de dezvoltare ulterioară a subsistemelor Permite utilizarea unui sistem pentru aplicaţii diferite prin realizarea unor modificări minime Permite adăugarea sau dezactivarea unor funcţionalităţi
13 Nereversibilitatea Datorită legăturii cu mediul exterior, succesiunea evenimentelor dictată de acesta nu poate fi prevăzută în avans Pentru sistemele complexe nu pot fi controlate toate relaţiile cauzale Anumite activităţi efectuate nu mai pot fi eliminate, sistemul nu mai poate reveni la starea anterioară
14 Clasificarea sistemelor RT Sisteme RT hard Sisteme RT soft Sisteme RT ferme
15 Sisteme RT hard Trebuie să răspundă la evenimente, obligatoriu, în intervalele de timp impuse prin constrângeri În cazul în care nu este respectată una dintre constrângeri, sistemul îşi pierde funcţionalitatea Costul în cazul în care nu se respectă constrângerea poate fi foarte mare şi poate implica vieţi omeneşti
16 Sisteme RT soft Trebuie să răspundă la evenimente, obligatoriu, timpul de răspuns mediu trebuind să se încadreze în intervalele de timp impuse prin constrângeri. Se acceptă o anumită toleranţă sau diferite nivele de toleranţă în cazul unor întârzieri În cazul unor întârzieri nu apare o cădere a sistemului (incapacitate de funcţionare). Pot să apară costuri, acestea fiind proporţionale cu mărimea întârzierilor
17 Sisteme RT ferme Timpul de răspuns poate fi uneori depăşit dar, după ce a fost depăşit, rezultatele obţinute nu mai sunt de folos
18 Aplicaţii ale sistemelor RT
19 Aplicaţiile sistemelor de timp real Telecomunicaţii Reţele de calculatoare Controlul proceselor industriale Sisteme de achiziţie şi măsurare Sisteme încapsulate Aparatură de uz casnic Echipamente militare Vehicule de transport terestru şi aerian Jocuri video
20 Concepte greşite legate de sistemele RT Sistemele RT = sisteme rapide Avansul tehnologic în hardware va rezolva problemele de timp real Nu există o ştiinţă a sistemelor RT Cercetarea în domeniul sistemelor RT se reduce la acordarea parametrilor de performanţă
21 Arhitecturi Sisteme centralizate Sisteme descentralizate Sisteme distribuite Sisteme descentralizate şi distribuite
22 Tehnici de realizare a sistemelor RT Specificare şi proiectare Metode prin care se verifică funcţionarea din punct de vedere logic şi se verifică constrângerile de timp Proiectare arhitecturală Folosirea modulelor gata realizate şi verificarea constrângerilor de timp Folosirea diferitelor arhitecturi Implementare Utilizarea limbajelor cu primitive adecvate Utilizarea sistemelor software cu suport pentru timp real (nucleu sau sistem de operare) pentru aceste primitive
23 Limbajele pentru sistemele RT Trebuie să aibă următoarele caracteristici: Să poată manipula intrările şi ieşirile sistemului Să aibă primitive pentru gestionarea proceselor Posibilitatea de tratare a întreruperilor Să permită definirea tipurilor de date Să permită introducerea de cod în limbaj de asamblare Să aibă primitive pentru manipularea timpului
24 Consideraţii la realizarea unui sistem RT Predictibilitatea trebuie să permită determinarea în avans a: Comportamentului când sunt nerespectate constrângerile de timp Comportamentul când ipotezele de lucru nu sunt respectate Timpul de acces şi de răspuns Comportamentul în cazul informaţiilor complete Cum va varia calitatea rezultatelor
25 Consideraţii la realizarea unui sistem RT Optimizarea sistemului Optimizarea utilizării procesorului Optimizarea utilizării memoriei Calculul celui mai defavorabil caz Accesul concurent
26 Bibliografie Tiberiu S. Letia, Sisteme de timp real, Editura Albastra, Cluj-Napoca, 2000 Qing Li, Carolyn Yao, Real-Time Concepts for Embedded Systems, CMP Books, 2003
27 Programarea sistemelor de timp real Implementarea sistemelor RT 1
28 Implementarea sistemelor RT cu nucleu RT sau fără sincrone sau asincrone cu declanşarea acţiunilor funcţie de timp sau funcţie de eveniment
29 Implementări sincrone cu interogare în buclă execuţie ciclică pe bază de corutine pe bază de stări bazate pe limbaje sincrone
30 Avantajele implementărilor sincrone momentul comutării de la un proces la altul este cunoscut dinainte acţiunile necesare comutării sunt reduse nu utilizează întreruperi deci nu este necesară salvarea contextului nu există probleme de acces concurent la resurse comportamentul este previzibil
31 Interogare în buclă cunoscută sub numele polling loop structura generală do { if (eveniment1) actiune1; if (eveniment2) actiune2;. if (evenimentn) actiunen; } while(1) //bucla infinita
32 Execuţie ciclică Poate fi considerată o formă generalizată a interogării în buclă Principiu se crează o planificare a proceselor presupunând că ele sunt independente se implementează această ordine ca apeluri succesive întro buclă infinită Caracteristici Ordinea de execuţie rămâne mereu aceeaşi Anumite restricţii de precedenţă pot fi implementate cu uşurinţă
33 Execuţie ciclică Macrociclu = perioada de timp a întregii secvenţe Pot exista secvenţe diferite pentru moduri de funcţionare diferite Macrociclul este împărţit în cadre temporale (pentru a lua în considerare restricţiile de timp) Dacă au aceeaşi durată, cadrele poartă denumirea de microcicluri
34 Probleme cu execuţiile ciclice Procesele îndelungate trebuie scindate ceea ce poate duce la: probleme legate de consistenţa datelor probleme legate de respectarea condiţiilor de precedenţă
35 Acţiuni şi riscuri la depăşirea cadrelor temporale Acţiune Nimic Oprirea procesului Oprirea procesului dar emisia unei excepţii Risc Posibilitatea efectului de avalanşă Un proces care nu a cauzat depăşirea poate rata termenul limită Structurile de date por rămâne într-o stare inconsistentă Utilizatorul poate implementa politica de tratare a excepţiei în modul dorit
36 Avantajele execuţiilor ciclice Secvenţă predefinită de procese constrângerile pot fi îndeplinite Nu necesită nucleu RT Nu este preemptiv nu există activitate suplimentară datorită comutării proceselor nu este necesară protecţia resurselor la accesul simultan Planificarea este flexibilă în funcţie de aplicaţie
37 Dezavantajele execuţiei ciclice Orice modificare a unui proces presupune: verificarea secvenţei proceselor scindarea proceselor trebuie revizuită Aceleaşi probleme pentru cazul în care este adăugat un nou proces Eficienţă scăzută datorită utilizării unor procese ciclice pentru tratarea evenimentelor sporadice
38 Cod bazat pe stări/tranziţii Se bazează pe instrucţiuni if-then şi automate finite Procesele sunt suspendate/reluate fără pierderea datelor critice Simple de înţeles Presupun că procesele pot fi concepute să aibă mai multe stări
39 Algoritmul principal (1) while (1) { } citeste_starea_intrarilor determina_tranzitia_valida executa_tranzitiile reactualizare_stare reactualizare_actiune
40 Algoritmul principal (2) while (1) { citeste_intrarile while (1) { for (fiecare_ramura) determina_stare_urmatoare; } while (1) for (fiecare_ramura) actualizeaza_stare_urmatoare; } while (1) { for (fiecare_ramura) activeaza_actiune; } }
41 Exemplu typedef enum {stare1,,staren} stari; // n este # de stari typedef enum {in1, inn, EOF} alfabet; typedef stari linie_tabel[n] ; int move_forward () { //implementeaza tranzitia intre stari stari stare; alfabet in; linie_tabel tabel[m]; // m este dimensiunea alfabetului do { get(in); //citeste un simbol din fluxul de intrare stare = tabel[ord(in)][stare]; // tranzitie executa_proces(stare); // executa procesul indicat } while (in == EOF); // ultimul simbol } int executa_process(stari stare) { switch (stare) { case stare1: proces1(); break; // executa proces 1 case stare2: proces2; break; // executa proces 2. case staren: procesn(); break; // executa proces n default: stare1; } }
42 Corutine Corutina este un program care comunică cu modulele adiacente ca şi cum acestea ar fi subrutine de intrare şi ieşire. Corutinele sunt la acelaşi nivel ierarhic fiecare executându-se ca şi cum ar fi programul principal fără ca să existe de fapt un program principal
43 Caracteristicile corutinelor Concept bazat pe relaţii simetrice între subrutine datele locale rămân nemodificate între momentul în care corutina pierde controlul şi momentul în care aceasta îl recapătă execuţia corutinei este suspendată când pierde controlul procesorului şi nu se reia până când nu îşi recapătă acest control Subrutinele se reiau de la locul în care au fost întrerupte
44 Caracteristicile corutinelor controlul este explicit transferat de la o corutină la alta mecanismul corutinelor este adesea numit cuasiparalelism
45 Implementarea corutinelor Implementările simple se bazează pe interschimbarea adresei numărătorului de instrucţiuni Implementările mai complexe utilizează un dispecer dispecerul menţine valorile numărătorului de instrucţiuni pentru o listă de procese execuţia este prin rotaţie (round-robin) comunicare între procese se face prin intermediul variabilelor globale
46 Exemplu int proces_a() { int proces_b() { do do switch (starea) { switch (stareb) { case 1: fazaa1; case 1: fazab1; case 2: fazaa2; case 2: fazab2; case 3: fazaa3; case 3: fazab3; case 4: fazaa4; } } } } unde : starea şi stareb sunt stări ale numărătoarelor de adresă gestionate de dispecer
47 Exemplu while(1){ costate{... } // task 1 } costate{ // task 2 waitfor( buttonpushed() ); turnondevice1(); waitfor( DelaySec(60L) ); turnondevice2(); waitfor( DelaySec(60L) ); turnoffdevice1(); turnoffdevice2(); } costate{... } // task n
48 Avantajele corutinelor simple şi eficiente secvenţă predeterminată constrângerile pot fi îndeplinite nu necesită nucleu RT nu foloseşte preemţiunea activitatea suplimentară pentru comutare este redusă nu necesită protejarea resurselor modul de stabilire a secvenţei este la dispoziţia utilizatorului
49 Dezavantajele corutinelor O corutină care îşi încheie execuţia determină terminarea execuţiei aplicaţiei nu există o modalitate de verificare a îndeplinirii restricţiilor în momentul execuţiei execuţia nu este strict periodică
50 Implementări asincrone evenimentele sunt detectate de sistemele periferice evenimentele sunt semnalizate prin întreruperi observabilitatea condiţiei poate fi programată nu necesită nucleu RT se bazează pe procese sporadice
51 Avantajele sistemelor asincrone nu necesită nucleu RT nu necesită scindarea proceselor uşor de implementat timp de răspuns mic
52 Dezavantajele sistemelor asincrone secvenţele se bazează pe o prioritate a proceselor fixată preemţiunea implică: activităţi suplimentare pentru salvarea şi restaurarea contextului necesitatea protejării resurselor comune
53 Sisteme bazate pe întreruperi Pot folosi întreruperi: Hardware şi software cele software implică un ceas Periodice numite sisteme cu timp de execuţie constant Aperiodice numite sisteme sporadice Mixte numite sisteme hibride Dispecerizarea realizată de subrutine de tratare a întreruperilor Contextul trebuie salvat
54 Sisteme hibride folosesc timpul mort al procesorului pentru a executa procese utile execută procese activate prin întreruperi în prim plan şi procese executate ciclic în fundal folosesc extensia conceptului de corutine pentru a lua în considerare comportamentul asincron
55 Sistem de operare Un sistem de operare (SO) este un program care realizează gestionarea resurselor hardware şi software ale unui calculator Un SO realizează sarcini de bază cum ar fi: controlul şi alocarea memoriei gestionarea apelurilor către funcţiile sistem controlul dispozitivelor de intrare şi ieşire gestionarea comunicaţiilor manipularea fişierelor
56 Sisteme de operare În unele cazuri pune la dispoziţia utilizatorului o interfaţă grafică (Windows OS, MacOS) Constituie o platformă pentru alte programe sistem sau pentru programele de aplicaţii
57 Clasificare SO după tehnologie tip Unix altele (DOS, Windows) după tipul de licenţă contra cost gratuită după stadiul de utilizare ieşite din uz (CP-M, DOS) în uz (Linux, Windows)
58 Clasificarea SO după tipul de utilizare uz general (GPOS) (Linux, Windows) numai pentru calculatoare tip desktop (MS-DOS, MacOS) numai pentru calculatoare de tip mainframe (VM) pentru sisteme de timp real (RTOS) pentru sisteme încapsulate (embedded) pentru PDA după scop profesionale pentru cercetare hobby
59 Elemente comune GPOS şi RTOS au un anumit grad de multiprocesare gestionează resursele hardware şi software oferă servicii programelor de aplicaţii abstractizează partea hardware
60 Diferenţe între RTOS şi GPOS fiabilitate mai mare a RTOS adaptarea mai bună la resursele aplicaţiei viteză de lucru mai mare reducerea necesarului de memorie algoritmii de planificare a proceselor adaptate aplicaţiilor RT suport pentru sisteme înglobate fără disc (încărcarea din memoria ROM sau RAM) portabilitate mai bună pentru alte platforme hardware
61 RTOS Un RTOS este un program care: realizează o planificare a execuţiei programului bazată pe constrângeri stricte de timp gestionează resursele sistemului oferă o bază consistentă pentru dezvoltarea aplicaţiilor
62 Caracteristicile RTOS RTOS pot fi de la foarte simple la foarte complicate sunt de obicei scalabile (permit adaptarea la resursele existente) poate conţine doar un nucleu sau poate fi o combinaţie de mai multe module
63 Structura unui RTOS Majoritatea RTOS conţin: Planificator Obiecte RT Servicii
64 Structura unui sistem cu RTOS Programul de aplicaţie Programul de aplicaţie RTOS Protocoale Protocoale reţea reţea Sistem de Sistem de fişiere fişiere Nucleu Nucleu Alte Alte componente componente Drivere Drivere dispozitive dispozitive Facilităţi de Facilităţi de depanare depanare Dispozitiv Dispozitiv e e I/O I/O BSP (board support package) BSP (board support package) Hardware-ul sistemului de implementare Hardware-ul sistemului de implementare
65 Elementele unui RTOS
66 Planificatorul Este elementul de bază al unui RTOS Pe baza unor algoritmi stabileşte care este următorul proces care se execută
67 Obiectele Construcţii specifice nucleului care permit programatorilor să creeze aplicaţii RT Obiecte uzuale procese semafoare cozi de mesaje cutii poştale evenimente etc
68 Servicii sunt operaţii pe care nucleul le execută asupra obiectelor Serviciile pot fi: temporizări tratarea întreruperilor gestionarea resurselor gestionarea dispozitivelor periferice gestionarea comunicaţiilor
69 Nuclee RT Furnizează trei funcţii: Planificarea proceselor Dispecerizarea proceselor Comunicarea între procese Prezintă mai multe nivele Nivelul aplicaţie Nivelul mediului de execuţie Nivelul sistemului de operare Nivelul maşină Nivelul hardware
70 Nucleul RT Utilizatori Interfaţa utilizator Suport pentru fişiere şi disc Comunicare între procese şi sincronizare Planificarea proceselor Controlul proceselor Gestionarea memoriei Sistemul de operare Executiv Nucleu Micronucleu Nanonucleu Hardware
71 Programarea sistemelor de timp real Planificare proceselor 1
72 Tipuri de procese periodice aperiodice hiperperiodice sporadice
73 Procese periodice Utilizate pentru execuţia unor operaţiuni care se repetă la intervale egale de timp: citirea datelor de la traductoare reactualizarea unor variabile de stare calcule ale unor algoritmi de control
74 Procese aperiodice Sunt utilizate pentru a răspunde la solicitările: operatorului sistemului de comunicaţie evenimente asincrone provenite din mediul în care funcţionează sistemul RT
75 Procese hiperperiodice Au specificată o anumită frecvenţă minimă, în anumite situaţii aceasta poate să crească Alte procese pot întrerupe aceste procese însă fără ca frecvenţa de execuţie să scadă sub valoarea minimă Creşterea sau scăderea frecvenţei de execuţie este dată de încărcarea procesorului Duc la o mai mare utilizare a procesorului
76 Procese sporadice Procesele sporadice sunt utilizate pentru a răspunde unor solicitări a căror apariţie nu se încadrează în una din categoriile de mai sus
77 Problema planificării Procesele trebuiesc planificate pentru execuţie astfel încât să se respecte constrângerile de timp În funcţie de tipul sistemului RT (hard sau soft) termenele pot fi ferme sau lejere Procesele intră în execuţie în funcţie de evenimentele la care trebuie să reacţioneze sistemul
78 Problema planificării Execuţia sistemului de procese trebuie să: respecte termenele ferme în cazul sistemelor hard minimizeze anumite expresii temporale cum ar fi întârzierile maxime în cazul sistemelor soft Dacă nu sunt respectate aceste condiţii se spune că sistemul: nu funcţionează corect (sisteme hard) funcţionează ineficient (sisteme soft)
79 Planificarea Constă în ordonarea în timp a execuţiei proceselor care intră în componenţa sistemelor RT Planificarea determină modul de alocare procesorului sau a altor resurse proceselor care se află în starea gata de execuţie Planificarea trebuie să asigure respectarea cerinţelor temporale şi de performanţă impuse sistemului RT
80 Planificator Planificatorul este o componentă a sistemului RT care realizează planificarea proceselor aflate în starea gata de execuţie Planificatorul poate să fie parte a programului de aplicaţie sau poate să fie o componentă a RTOS
81 Obiectivele planificării Sisteme RT hard: respectarea tuturor termenelor ferme Sisteme RT soft: încadrarea întârzierilor în limitele întârzierilor maxime sau minimizarea sumei întârzierilor Sisteme RT hibride (au atât termene ferme cât şi termene lejere): respectarea tuturor termenelor ferme şi încadrarea întârzierilor în limitele întârzierilor maxime sau minimizarea sumei întârzierilor
82 Activităţi de planificare Configurare Distribuire pornirea şi comutarea proceselor întreruperea proceselor (dacă sistemul RT este preemptiv) Analiză apriorică poate o mulţime de procese să fie planificate date fiind anumite constrângeri Planificarea poate fi statică sau dinamică
83 Realizarea planificatorului Un algoritm de planificare trebuie să ţină cont de: existenţa termenelor de timp real şi tipul lor parametrii (duratele de execuţie) proceselor sau a subrutinelor care elaborează răspunsul momentele de apariţie a evenimentelor sincrone estimarea momentelor de apariţie a evenimentelor asincrone resursele partajate existente în sistem urgenţa răspunsurilor importanţa răspunsurilor utilitatea răspunsurilor În funcţie de aplicaţie vor fi luaţi în considerare doar unii din parametrii amintiţi mai sus
84 Realizarea planificatorului Execuţia planificatorului consumă timp Planificatorul concurează la resursele sistemului (timpul procesorului, memorie etc) cu celelalte procese ale sistemului RT Execuţia planificatorului poate să conţină execuţii la anumite intervale de timp sau când au loc anumite evenimente Execuţia planificatorului va fi la rândul ei comutată similar cu execuţia celorlalte procese
85 Realizarea planificatorului În oricare moment pot exista mai multe procese care sunt gata de execuţie Planificatorul trebuie să stabilească o ordine totală sau parţială a execuţiei proceselor Exemplu ordine totală: vor fi executate procesele cu prioritate cea mai mare (se presupune că fiecare proces are un nivel de prioritate unic) ordine parţială: vor fi executate procesele având durata cea mai mică. La un moment dat pot exista două procese care să aibă aceeaşi durată. Stabilirea unei ordonări între aceste procese se poate baza pe momentul intrării starea gata de execuţie.
86 Realizarea planificatorului Unele sisteme RT permit alegerea algoritmului de planificare dând utilizatorului libertatea de a alege modul de planificare în funcţie de aplicaţie În unele sisteme algoritmul de planificare se poate modifica în timpul funcţionării sistemului. Realizarea unui sistem cu algoritm ce se modifică în timpul execuţiei ridică probleme tehnice. Sistemele RT realizează un compromis între costul planificatorului şi performanţele acestuia
87 Factori de influenţă a planificatorului interacţiunea dintre componente şi procese concurenţa dintre planificator şi procese tipul proceselor duratele pentru elaborarea răspunsurilor timpul consumat pentru planificare vitezele relative ale proceselor
88 Interacţiuni între procese Precedenţă Sincronizare mutuală Excludere Partajarea resurselor Combinaţie a celor anterioare
89 Arhitectura sistemului de planificare şi lansare în execuţie
90 Caracteristici temporale Procese periodice Tex(p) durata de execuţie a procesului Tpr(p) perioada de execuţie a procesului Condiţie: Tex<=Tpr Tdd(p) + durata de la activare până la termenul ferm sau termenul lejer Deseori se consideră Tdd=Tpr
91 Caracteristici temporale Procese hiperperiodice Tex(p) durata de execuţie a procesului Tpr(p) hiperperioada de execuţie a procesului Condiţie: Tex<=Tpr Deseori se consideră Tdd=Tpr
92 Caracteristici temporale Procese sporadice Tex(p) durata de execuţie a procesului Tms(p) durata minimă între două cereri de execuţie a procesului Condiţie: Tex<=Tms Tdd(p) durata până la termenul ferm sau până la termenul de efectuare a sarcinii din momentul activării lui
93 Caracteristici temporale Un proces aperiodic nu are o durată minimă între două reactivări succesive Cererea de execuţie a unui proces aperiodic poate fi emisă în orice moment
94 Caracteristici temporale Proces Durata dintre 2 cereri succesive Durata dintre 2 terminări succesive Rata de execuţie min max min max min max Periodic Tpr Tpr Tpr 2 Tpr-Tex Tex/Tpr Tex/Tpr Hiperperiodic Tex Tex Tex Tex Tex 1 Aperiodic 0 sau Tex Tex 0 1 Sporadic Tms Tex 0 Tex/Tms
95 Algoritmi de planificare pentru procese independente pentru procese comunicante pentru procese cu relaţii de precedenţă cu partiţionarea proceselor folosind algoritmi genetici
96 Algoritmi de planificare a proceselor independente după importanţa sarcinilor în sistem după termene prin ordonare după termene ferme prin ordonare după frecvenţă prin ordonare după termene lejere după ordinea de emitere a cererii FIFO (first in first out) LIFO (last in first out) după durata de execuţie prin ordonarea după timpul de execuţie prin ordonarea după timpul liber
97 Algoritmi de planificare a proceselor comunicante după importanţa sarcinilor prin alocarea statică a priorităţilor prin ordonarea după termenele ferme după frecvenţa proceselor comunicante prin ordonarea după termenele ferme parţial monotonă după frecvenţă parţial monotonă după importanţa sarcinilor
98 Algoritmi de planificare a proceselor cu relaţii de precedenţă folosind grafuri serie- paralel cu alocarea resurselor
99 Algoritmul de planificare prin ordonare după frecvenţă în engleză Rate Monotonic Scheduling (RMS) Ipoteze procese periodice termenele limită sunt la sfârşitul perioadei procesele sunt preemptive procesele sunt gata de execuţie la începutul fiecărei perioade procesele nu se pot bloca sau suspenda singure timpul de execuţie pentru fiecare proces este constant şi cunoscut
100 Algoritmul de planificare prin ordonare după frecvenţă procesele cu perioade mai mici vor avea prioritatea mai mare toate priorităţile vor fi diferite
101 Algoritmul de planificare prin ordonare după frecvenţă
102 Algoritmul de planificare prin ordonare după frecvenţă Condiţia necesară Suma(i=1,n)(Texi/Tpri)<=1 Condiţie suficientă Suma(i=1,n)(Texi/Tpri)<=n(2^(1/n)-1) n=1->100%, n=2->83%, n=3->78%, n mare- >69% Când numărul proceselor este mare se garantează succesul planificării dacă utilizarea procesorului este mai mică de 69% 31% din utilizarea procesorului este alocată îndeplinirii condiţiilor de timp real n Tex( pi ) 1 Tpr( pi ) i= 1 n 1 Tex( pi ) n(2 n Tpr( pi ) i= 1 1)
103 Avantajele algoritmului RMS Este simplu Se poate implementa pe sistemele de operare existente Poate fi folosit pentru a aloca nivele de întrerupere
104 Dezavantajele algoritmului RMS Ipotezele sunt restrictive Poate fi aplicat doar pentru procese preemptive Nu sunt indicate în cazul termenelor limită mai mici decât perioada Nu ia în considerare urgenţa răspunsurilor Nu ia în considerare importanţa proceselor
105 Algoritmul de planificare prin ordonare după termene în engleză Deadline Monotonic Scheduling (DMS) Ipoteze procese sporadice termenele limită sunt arbitrare Tddi< Tpri procesele sunt preemptive procesele nu se pot bloca sau suspenda singure timpul de execuţie maxim pentru fiecare proces este constant şi cunoscut
106 Algoritmul de planificare prin ordonare după termene
107 Algoritmul de planificare prin ordonare după termene Trcd este timpul de răspuns cel mai defavorabil Tin =interferenţa pentru cazul cel mai defavorabil: Tin=Suma(j=1,i- 1)Ceil(Tddi/Texj).Texj Testul care indică dacă procesele pot fi planificate este: Texi/Tddi+Tini/Tddi<=1 pentru orice proces pi. Tin( p i i ) = Tex( p Tdd( p 1 j= 1 i i ) ) Tdd( p Tex( p i j ) Tex( p ) Tin( p ) + i Tdd( p ) i j 1 ) 1
108 Algoritmul de planificare prin ordonare după termene Avantaje Este simplu şi se poate implementa pe SO existente Pot fi utilizate pentru a aloca nivelele de întrerupere Eficient pentru procese periodice cu termene limită reduse
109 Algoritmul de planificare prin ordonare după termene Dezavantaje Doar pentru procese preemptive Nu pot trata excluziunea
110 Programarea sistemelor de timp real Procese 1
111 Definiţie o succesiune independentă de instrucţiuni care are alocate anumite resurse pentru execuţie procesele concurează între ele pentru a fi executate de procesor şi pentru a accesa anumite resurse ale sistemului descompunerea funcţionalităţii unui sistem în mai multe procese are avantajul optimizării tratării intrărilor şi ieşirilor
112 Caracteristici Un proces este caracterizat de anumiţi parametri şi structuri de date nume identificator unic (ID) prioritate bloc de control al procesului (TCB - task control bloc) stivă subrutină a procesului Parametrii şi structurile de date formează obiectul proces
113 Parametrii şi structurile de date ale unui proces TCB Nume ID Prioritate Stiva int int Proces1() Proces1() { { while while (1) (1) { { actiune1; actiune1; : : actiunen; actiunen; } } } }
114 Tipuri de procese Procesele pot fi procese sistem: create de RTOS procese de iniţializare şi pornire a sistemului procesul inactiv (idle) procesul generare a mesajelor sistem procesul de tratare a excepţiilor procesul de depanare procesul de generare a semnalului de tact procese utilizator: create de utilizator depind de aplicaţie
115 Procesul Idle are prioritatea cea mai mică utilizează timpul liber al procesorului de obicei este o buclă infinită asigură validitatea contorului de instrucţiuni (PC) poate fi înlocuit cu un proces definit de utilizator care să realizeze anumite acţiuni ex. economisirea energiei prin suspendarea procesorului
116 Nivele de prioritate În funcţie de implementarea RTOS două procese pot avea acelaşi nivel de prioritate sau nivele de prioritate diferite. Numărul de nivele de prioritate este limitat Numărul de procese care pot avea acelaşi nivel de prioritate este limitat. Cele două de mai sus limitează numărul de procese care pot fi create în cadrul unei aplicaţii. Procesele sistem au de obicei rezervate anumite niveluri de prioritate, de cele mai multe ori acestea sunt din domeniul celor mai ridicate niveluri.
117 Crearea proceselor Sarcinile utilizatorului atribuirea unui nume atribuirea unei priorităţi stabilirea dimensiunii stivei scrierea subrutinei procesului Sarcinile RTOS atribuirea unui ID unic crearea blocului de control (TCB) asociat alocarea memoriei pentru stivă
118 Stările unui proces Fiecare proces se poate afla în una din mai multe stări posibile. Mulţimea de stări posibile în care se poate afla un proces depinde sistemul de operare de timp real.
119 Stările unui proces starea activă sau în execuţie este starea în care procesul este activ având prioritatea cea mai mare starea blocată semnificaţia acestei stări depinde de sistemul de operare. În cazul anumitor sisteme ea poate îngloba şi stările de amânare şi de aşteptare; starea gata de execuţie procesul este gata de execuţie însă nu are prioritatea necesară pentru a fi executat;
120 Stările unui proces starea amânată este starea în care procesul aşteaptă trecerea unei temporizări starea suspendată este o stare care este de obicei utilizată în scopul depanării sistemului starea de aşteptare este starea în care procesul aşteaptă eliberarea unei resurse sau aşteaptă apariţia unui eveniment
121 Stările unui proces starea de tratare a întreruperilor este starea în care trece procesul la apariţia unei întreruperi starea adormită este starea în care se poate afla un proces înainte de fi făcut disponibil sistemului de operare sau după ce a fost eliminat din cadrul aplicaţiei.
122 Evoluţia proceselor Trecerea de la o starea la alta este implementată cu ajutorul noţiunii de automat finit. Structura acestuia şi regulile de evoluţie (tranziţiile) sunt caracteristice fiecărui RTOS în parte.
123 Stările proceselor G gata de execuţie, E execuţie, B blocată.
124 Stările proceselor A aşteptare, G gata de execuţie, E execuţie, S suspendată sau blocată.
125 Stările proceselor A aşteptare, E execuţie, G gata de execuţie, D adormită, I tratarea întreruperilor
126 Starea gata de execuţie La unele RTOS este starea în care sunt trecute procesele când sunt create În această stare procesul concurează la resursele procesorului împreună cu celelalte procese gata de execuţie Din această stare procesul poate trece doar în starea de execuţie
127 Starea de execuţie În cazul sistemelor monoprocesor un singur proces poate fi executat la un moment dat Din această stare procesul poate trece în: starea gata de execuţie (nu şi-a terminat execuţia şi a fost întrerupt de un proces cu prioritate mai mare) starea blocată în situaţiile a cerut o resursă care nu este disponibilă a făcut un apel care necesită apariţia unui eveniment a făcut un apel la o funcţie de care introduce o întârziere a execuţiei
128 Starea blocată Permite proceselor cu prioritate mai mică să fie executate Procesul trece în starea blocată în urma unui apel blocant Procesul rămâne în această stare până este valabilă condiţia de blocare La deblocare procesul trece în starea de execuţie (dacă are prioritatea cea mai mare) starea gata de execuţie în rest
129 Acţiuni asociate proceselor crearea procesului eliminarea procesului planificarea procesului obţinerea de informaţii de la proces.
130 Crearea proceselor Crearea proceselor se poate realiza static - sunt create de către utilizator în momentul creării programului de aplicaţie necesarul de memorie se alocă în momentul compilării programului dinamic - sunt create în momentul execuţiei programului de aplicaţie. memoria se alocă dinamic, sunt utilizate în cadrul sistemelor care dispun de resurse de memorie importante.
131 Crearea proceselor Procesele sunt create prin apelul la funcţiile sistemului de timp real specifice Nu întotdeauna crearea unui proces înseamnă şi că acesta este făcut imediat disponibil sistemului de operare. Uneori este necesar apelul unei funcţii speciale care să facă procesul disponibil sistemului. Situaţia mai este întâlnită şi în partea de pornire a sistemului care se realizează conform etapelor: mai întâi este creat un set de procese, se iniţializează sistemul de operare de timp real, procesele sunt făcute disponibile sistemului.
132 Crearea proceselor Faptul că un proces este făcut disponibil sistemului de operare nu înseamnă neapărat că el este şi executat imediat. Procesul este executat imediat dacă are cel mai mare nivel de prioritate. În caz contrar, procesul este trecut în starea gata de execuţie.
133 Eliminarea proceselor Efectul acţiunii de eliminare a unui proces depinde de RTOS. Procese create static eliminarea unui proces = scoaterea acestuia din evidenţa sistemului de operare trece într-o stare numită de adormire, dar fără să fie şterse elementele componente procesului (zona de memorie, partea de cod aferentă) în funcţie de necesităţile aplicaţiei, procesul respectiv poate fi refolosit (se poate schimba numele, identificatorul unic şi nivelul de prioritate)
134 Eliminarea proceselor Procese create dinamic eliminarea unui proces = scoaterea acestuia din evidenţa sistemului de operare poate presupune şi eliberarea resurselor folosite, în special a zonei de memorie aferente
135 Eliminarea proceselor Operaţia de eliminare a proceselor trebuie să fie utilizată cu mare atenţie. În cadrul execuţiei unui proces acesta poate dobândi anumite resurse ale sistemului. Eliminarea unui astfel de proces, fără a se asigura eliberarea tuturor resurselor poate duce la blocarea unor resurse ale sistemului sau chiar blocarea întregului sistem.
136 Planificarea proceselor Planificare proceselor se face în mod normal automat prin intermediul algoritmului de planificare Pe baza algoritmului de planificare procesele trec dintr-o stare în alta din cele amintite RTOS pot oferi funcţii care să permită utilizatorului controlul trecerii proceselor dintr-o stare în alta
137 Planificare proceselor Funcţii utilizator de control al stărilor proceselor suspendare a unui proces reluarea execuţiei unui proces întârzierea unui proces repornirea unui proces modificarea priorităţii unui proces blocarea şi deblocarea posibilităţii de întrerupere a unui proces
138 Tipuri de subrutine ale proceselor Codul executat în cadrul unui proces poate fi: cu execuţie până la terminare utilizat în cazul proceselor de iniţializare şi de pornire se execută o singură dată resursele sunt eliberate la terminarea procesului buclă infinită majoritatea proceselor unei aplicaţii RT se execută de un număr mare de ori
139 Proces cu execuţie până la terminare ProcesExecutieTerminare() { Iniţializează aplicaţia Crează procesele de tip buclă infinită Crează obiectele nucleului Şterge sau suspendă acest proces }
140 Proces cu execuţie până la terminare Observaţii procesele de iniţializare au prioritate mai mare decât cele ale aplicaţiei propriu-zise sunt scrise astfel încât să fie suspendata sau şterse la terminare de obicei resursele sunt eliberate pentru a fi puse la dispoziţia altor procese
141 Procese tip buclă infinită ProcesBuclaInfinita () { Cod de iniţializare while (1) { Corpul buclei Unul sau mai multe apeluri blocante } }
142 Procese tip buclă infinită Observaţii Aceste procese pot conţine cod de iniţializare care este executat doar prima dată când este executat procesul În interiorul buclei infinite trebuie să existe apeluri blocante care să permită blocarea procesului şi execuţia proceselor cu prioritate mai mică
143 Programarea sistemelor de timp real Semafoare 1
144 Definiţie Este un obiect al unui nucleu/sistem de operare de timp real care poate fi achiziţionat de unul sau mai multe procese în vederea: sincronizării excluderii mutuale de la accesul simultan la o anumită resursă
145 Elemente caracteristice Semafoarele sunt caracterizate prin următoarele elemente: semafoarele au o anumită structură care poate diferi de la un RTOS la altul; sunt structuri globale astfel încât starea lor poate fi afectată de către orice proces.
146 Elementele asociate nume identificator unic valoare (număr binar sau natural) bloc de control al semaforului listă de procese asociate
147 Elementele asociate
148 Observaţii Lista proceselor asociate unui semafor poate fi implementată: ca o listă de tip FIFO astfel încât să ţină cont de nivelul de prioritate al proceselor asociate. Implementarea este specifică fiecărui sistem de operare de timp real. Se spune despre procese că iau în posesie un semafor sau îl eliberează
149 Clasificare semafor binar poate lua doar două valori; semafor numărător poate lua mai multe valori; semafor cu excludere mutuală (mutex - mutual exclusive) poate lua doar două valori dar are o serie de caracteristici specifice cu ar fi asigurarea accesului exclusiv la o resursă (de unde şi numele).
150 Semafoare binare pot lua două valori, 0 şi 1. semaforul are valoare 0 = indisponibil şi nu poate fi luat în posesie (acest lucru deoarece anterior a fost luat în posesie de un alt proces). semaforul are valoarea 1 = disponibil şi poate fi luat în posesie. Observaţie: Semafoarele binare pot fi eliberate şi de către alte procese decât cele care le-au luat în posesie.
151 Semafoare binare
152 Semafoare numărătoare poate lua mai multe valori. semaforul are valoarea 0 = semaforul indisponibil (nu poate fi luat în posesie) semaforul are valoarea >0 = semaforul disponibil (poate fi luat în posesie) În funcţie de implementare, numărul de câte ori poate fi luat în posesie poate să fie limitat sau nelimitat.
153 Semafoare numărătoare este utilizată interpretarea conform căreia un semafor numărător are un număr de elemente care pot fi luate în posesie. Semaforul numărător numără câte astfel de elemente mai sunt disponibile. Când nici un element nu mai este disponibil, valoarea numărătorului este 0 şi deci semaforul devine indisponibil. elementele semaforului pot să fie eliberate şi de către procese care nu au luat în posesie în prealabil un element al semaforului.
154 Semafoare numărătoare
155 Semafoare cu excludere mutuală asemănătoare semafoarelor binare în sensul pot lua tot două valori au faţă de cele din urmă o serie de proprietăţi care le individualizează În funcţie de implementarea RTOS proprietăţile suplimentare pot fi: proprietate exclusivă recursivitate control asupra eliminării proceselor evitarea apariţiei inversiunii de prioritate
156 Semafoare cu excludere mutuală Proprietatea asupra unui mutex este obţinută când un proces blochează mutex-ul luându-l în posesie Un proces pierde proprietatea asupra unui mutex când îl eliberează Când un mutex este în posesia unui proces el nu poate fi deblocat de către alt proces
157 Semafoare cu excludere mutuală
158 Acţiuni asociate semafoarelor Principalele acţiuni asociate semafoarelor sunt: crearea eliminarea luarea în posesie eliberarea ştergerea listei proceselor asociate obţinerea de informaţii
159 Crearea semafoarelor Crearea semafoarelor este diferită pentru tipuri diferite de semafoare. Apelurile pentru crearea acestora este specifică fiecărui tip de RTOS Diferenţe posibile: valoarea de iniţializare semafoare binare/mutuale: 0 sau 1 semafoare numărătoare: starea accesibiă/neaccesibilă valoarea de iniţializare valoarea de iniţializare= valoarea maximă sau nu
160 Eliminarea semafoarelor Constă în a şterge un anumit semafor din lista celor disponibile sistemului de operare. Stergerea poate să fie temporară sau definitivă. Ştergerea unui semafor poate să aibă efecte negative în cazul în care nu se asigură că resursa asociată acestuia nu a fost mai întâi eliberată. La eliminarea unui semafor, lista de procese asociate (aflate în starea de aşteptare) este desfiinţată. (toate procesele aflate în listă sunt deblocate)
161 Luarea în posesie a unui semafor Operaţia este specifică fiecărui tip de semafor în parte. Dacă semaforul nu este disponibil, procesul interesat de semafor poate să se comporte în mod diferit în funcţie de cerinţele aplicaţiei Variantele posibile: procesul intră în starea blocată în care aşteaptă eliberarea semaforului; procesul intră în starea blocată pentru o perioadă de timp. În această perioadă semaforul poate sau nu deveni disponibil. După luarea în posesie a semaforului sau după expirarea timpului, procesul este scos din lista proceselor asociate respectivului semafor, starea următoare a acestuia fiind stabilită de planificator în funcţie de starea celorlalte procese şi în funcţie de nivelul de prioritate al acestora. procesul îşi continuă execuţia indiferent dacă semaforul este accesibil sau nu.
162 Luarea în posesie a unui semafor În cazul semafoarelor de excludere mutuală recursivă, semaforul poate fi luat în posesie în mod repetat de către procesul care îl posedă. Această situaţie este necesară în cazul în care subprocese ale procesului ce deţine semaforul necesită accesul la aceeaşi resursă.
163 Eliberarea semafoarelor Semafoare binare/numărătoare eliberarea semafoarelor poate fi realizată de către oricare dintre procesele existente în sistem. Semafoarele de excludere mutuală pot fi eliberate doar de către procesele care le-au luat în posesie. semaforul poate fi eliberat în mod repetat de către procesul care l-a luat în posesie. Numărul de eliberări trebuie să fie egal cu numărul de luări în posesie
164 Golirea listei de procese în aşteptare Situaţii posibile Golirea listei de procese înainte de eliminarea unui semafor. Realizarea unei sincronizări între procese.
165 Obţinerea de informaţii de la semafoare Operaţia permite obţinerea de informaţii referitoare la următoarele elemente ale unui semafor: informaţii legate de elementele de identificare: nume, identificator unic; informaţii legate de tipul semaforului şi valoarea acestuia; informaţii legate de procesele aflate în lista de aşteptare
166 Utilizări tipice ale semafoarelor sincronizarea unui proces în aşteptare, sincronizarea mai multor procese în aşteptare, sincronizare cu urmărirea creditului sincronizarea accesului la o resursă cu acces unic, sincronizarea resurselor partajabile recursiv sincronizarea accesului la mai multe resurse partajabile
167 Sincronizare prin aşteptarea unui semnal
168 Sincronizare prin aşteptarea unui semnal ProcAstept ( ){ : Ia în posesie semafor binar : } ProcSemnal ( ){ : Eliberează semafor binar : }
169 Sincronizarea mai multor procese în aşteptare
170 Sincronizarea mai multor procese în aşteptare ProcAsteptn ( ){ : Operaţii specifice Ia în posesie semafor binar : } ProcSemnal ( ){ : Operaţii specifice Goleşte lista de aşteptare a semaforului : }
171 Sincronizare cu urmărirea creditului
172 Sincronizare cu urmărirea creditului ProcAstept ( ){ : Ia în posesie semafor numărător : } ProcSemnal ( ){ : Eliberează semafor numărător : }
173 Sincronizare cu urmărirea creditului Utilizat când viteza de execuţie a celor două procese este diferită (procesul semnalizator are viteză mai mare) Procesul semnalizator îşi poate continua execuţia numărând fiecare semnalizare efectuată Când este deblocat, procesul în aşteptare îşi execută instrucţiunile cu viteza proprie. Semaforul numărător va fi decrementat Metoda este aplicabilă dacă semnalizarea se face în pachete astfel încât procesul în aşteptare să poată răspunde tuturor semnalelor
174 Sincronizarea accesului la o resursă cu acces unic
175 Sincronizarea accesului la o resursă cu acces unic Metodă utilizată pentru accesarea exclusivă a unei resurse Resursa poate fi: locaţie sau zonă de memorie structură de date port de intrare/ieşire Semaforul este creat cu starea iniţială având valoarea 1 (disponibil/deblocat)
176 Sincronizarea accesului la o resursă cu acces unic Solicitant1 ( ){ : Ia în posesie semafor Scrie sau citeşte resursă Eliberează semafor : }
177 Sincronizarea resurselor cu acces recursiv
178 Sincronizarea resurselor cu acces recursiv Metodă utilizată când subrutine apelate dintrun proces trebuie să aibă acces la aceeaşi resursă ca şi procesul respectiv.
179 Sincronizarea resurselor cu acces recursiv Solicitant1 ( ){ : Ia în posesie mutex Scrie sau citeşte resursă SubrutinaA() Eliberează mutex : } SubrutinaA ( ){ : Ia în posesie mutex Scrie sau citeşte resursă SubrutinaB() Eliberează mutex : } SubrutinaB ( ){ : Ia în posesie mutex Scrie sau citeşte resursă Eliberează mutex : }
180 Sincronizarea accesului la mai multe resurse partajabile
181 Sincronizarea accesului la mai multe resurse partajabile Solicitantn ( ){ : Ia în posesie semafor numărător Scrie sau citeşte resursă Eliberează semafor numărător : }
182 Sincronizarea accesului la mai multe resurse partajabile Metoda este folosită când există mai multe resurse echivalente Semaforul numărător este iniţializat cu valoarea egală cu numărul de resurse echivalente
183 Programarea sistemelor de timp real Cozi de mesaje 1
184 Coadă de mesaje. Definiţie Este un obiect al unui nucleu/sistem de operare de timp real prin intermediul căreia procesele pot trimite sau recepţiona mesaje în vederea: sincronizării schimbării de informaţii uni sau bidirecţional
185 Elemente caracteristice Cozile de mesaje sunt caracterizate prin următoarele elemente: au o anumită structură care poate diferi de la un RTOS la altul; menţin temporar mesajele ceea ce permite decuplarea proceselor (transmisia/recepţia mesajelor nu trebuie să se facă sincron).
186 Elementele asociate nume identificator unic lungimea cozii lăţimea maximă a cozii bloc de control al cozii 2 liste de procese asociate lista proceselor ce aşteaptă să trimită mesaje lista proceselor ce aşteaptă să primească mesaje capul şi capătul cozii
187 Elementele asociate
188 Observaţii Memoria necesară este alocată de către RTOS în funcţie de parametrii furnizaţi de utilizator: lăţimea maximă a mesajului lungimea cozii (numărul de mesaje ce pot fi memorate în coadă). Alocarea memoriei se face din blocurile de memorie: disponibile întregului sistem rezervate special Procesele din listele de aşteptare sunt selectate pentru a trimite/primi un mesaj în funcţie de prioritate ordonare după un model FIFO
189 Stările unei cozi de mesaje
190 Conţinutul mesajelor poate lua mai multe valori. valoarea preluată de la un senzor, o imagine pentru a fi afişată pe ecran, un mesaj text ce trebuie afişat pe un LCD, codul obţinut la apăsarea unei taste de la o tastatură pachet de date de trimis prin intermediul reţelei
191 Transmiterea mesajelor dimensiunea maximă a mesajelor este stabilită la intiţializare pot apare două probleme dimensiunea mesajele poate fi fixă variabilă transmiterea mesajului presupune două operaţii de copiere a mesajului expeditor -> coadă de mesaje coadă de mesaje -> destinatar
192 Transmiterea mesajelor
193 Transmiterea mesajelor. Soluţii 1. în coada de mesaje se va înscrie un pointer la mesaj avantaje permite transmiterea de mesaje de lungimi diferite copierea va fi mai rapidă (se copie doar pointerul) dezavantaje necesită introducerea în mesaj a unor informaţii legate de lungimea mesajului necesită mecanisme de gestionare a mesajelor eterogene 2. utilizarea unor mesaje de dimensiuni mici
194 Acţiuni asociate cozilor de mesaje Principalele acţiuni asociate cozilor de mesaje sunt: crearea eliminarea golirea cozii de mesaje trimiterea de mesaje emisia mesajelor recepţionarea mesajelor obţinerea de informaţii legate de coada de mesaje
195 Crearea cozilor de mesaje Cozile sunt structuri globale, nu aparţin unui anumit proces Apelurile pentru crearea acestora este specifică fiecărui tip de RTOS Diferenţe posibile: valorile de iniţializare lungimea cozii lăţimea maximă a cozii modul de preluare a mesajelor de către procesele în aşteptare (bazat pe prioritate, FIFO etc)
196 Eliminarea cozilor de mesaje Constă în a şterge unei anumite cozi de mesaje din lista celor disponibile sistemului de operare Stergerea poate să fie temporară sau definitivă Ştergerea unei cozi de mesaje poate să aibă efecte negative având în vedere faptul că mesajele existente în listă sunt şterse La eliminarea unui cozi de mesaje, lista de procese asociate (aflate în starea de aşteptare) este desfiinţată (toate procesele aflate în listă sunt deblocate)
197 Golirea cozii de mesaje Situaţii posibile Golirea cozii înainte de eliminarea acesteia. Realizarea unei sincronizări între procese.
198 Trimiterea de mesaje Pot exista 2 modele: FIFO - fiecare mesaj nou este aşezat la sfârşitul cozii. LIFO fiecare mesaj nou este aşezat în capul cozii
199 Transmiterea mesajelor. Model FIFO
200 Transmiterea mesajelor. Model LIFO
201 Transmiterea mesajelor când coada de mesaje este plină procesul nu se blochează (apelul întoarce un cod de eroare) se blochează pe o durată limitată se blochează pe o durată nedefinită
202 Aşteptare pentru transmiterea mesajelor. Model FIFO
203 Aşteptare pentru transmiterea mesajelor. Model LIFO
204 Deblocarea proceselor din lista de aşteptare la transmisie blocare pe o durată limitată procesul se deblochează când devine disponibil o locaţie pentru un mesaj în coadă expiră timpul de aşteptare blocare pe o durată nedefinită devine disponibil o locaţie pentru un mesaj în coadă
205 Emisia mesajelor Emisia este operaţia de transmisie a unui mesaj către mai multe procese Nu toate RTOS au implementată operaţia de emisie
206 Recepţionarea mesajelor se face în funcţie de modelul de aşteptare LIFO FIFO prioritate
207 Recepţionarea mesajelor. Model FIFO
208 Recepţionarea mesajelor. Model FIFO
209 Recepţionarea mesajelor când coada de mesaje este goală procesul nu se blochează (apelul întoarce un cod de eroare) se blochează pe o durată limitată se blochează pe o durată nedefinită
210 Deblocarea proceselor din lista de aşteptare la recepţie blocare pe o durată limitată procesul se deblochează când apare un mesaj în coadă expiră timpul de aşteptare blocare pe o durată nedefinită apare un mesaj în coadă
211 Citirea mesajelor din coadă Citirea se poate realiza în două moduri: distructiv mesajul citit din coadă este şters din coadă nedistructiv mesajul citit rămâne în coadă
212 Obţinerea de informaţii de la coada de mesaje Operaţia permite obţinerea de informaţii referitoare la următoarele elemente ale unei cozi de mesaje: informaţii legate de elementele de identificare: nume, identificator unic; informaţii legate parametrii cozii (lungime, lăţime maximă; informaţii legate de procesele aflate în lista de aşteptare
213 Utilizări tipice ale cozilor de mesaje comunicare unidirecţională fără blocare, comunicare unidirecţională cu blocare, comunicare bidirecţională cu blocare emisie
214 Comunicare unidirecţională fără blocare
215 Comunicare unidirecţională fără blocare ProcEmitator () { : Trimite mesaj în coada de mesaje : } ProcDestinatar () { : Citeşte mesajul din coada de mesaje : }
216 Comunicare unidirecţională fără blocare p(procemitator)<p(procdestinatar) ProcDestinatar se execută, citeşte mesajele şi se blochează când coada e goală când ProcEmitator trimite un mesaj, ProcDestinatar este deblocat şi se execută din nou p(procemitator)>p(procdestinatar) ProcEmitator trimite mesaje până se umple coada de mesaje şi se blochează ProcDestinatar citeşte mesajele din coadă permiţând ProcEmitător să se execute şi să trimită noi mesaje
217 Comunicare unidirecţională cu blocare
218 Comunicare unidirecţională cu blocare ProcEmitator () { : Trimite mesaj în coada de mesaje Ia în posesie semafor : } ProcDestinatar () { : Citeşte mesajul din coada de mesaje Eliberează semafor : }
219 Comunicare unidirecţională cu blocare Permite confirmarea recepţiei fiecărui mesaj în parte Confirmarea se poate realiza cu ajutorul unui semafor binar
220 Comunicare bidirecţională cu blocare
221 Comunicare bidirecţională cu blocare tip client-server
222 Comunicare bidirecţională cu blocare tip client-server Clientul trimite cererile prin coada de mesaje de transmisie Serverul furnizează datele cerute prin intermediul cozii de recepţie Se pot realiza aplicaţii cu mai mulţi clienţi şi un server. coada de comenzi comună fiecare client va fi servit prin intermediul unei cozi separate Observaţii Cele două cozi pot avea lăţimi maxime diferite Serverul va avea prioritate mai mare pentru a putea servi clientul cât mai rapid
223 Comunicare bidirecţională cu blocare ProcEmitator () { : Trimite mesaj în coada de emisie mesaje Aşteaptă mesaj în coada de recepţie mesaje : } ProcDestinatar () { : Citeşte mesajul din coada de emisie mesaje Trimite mesaj în coada de recepţie mesaje : }
224 Emisie
225 Emisie ProcEmitator () { : Trimite mesaj în coada de mesaje : } ProcDestn () { // n=1,2,3 : Citeşte mesajul din coada de mesaje : }
226 Programarea sistemelor de timp real Cutii poştale 1
227 Cutie poştală. Definiţie Este un obiect al unui nucleu/sistem de operare de timp real prin intermediul căreia procesele pot trimite sau recepţiona un mesaj în vederea: sincronizării schimbării de informaţii uni sau bidirecţional
228 Elemente caracteristice Cutiile poştale sunt caracterizate prin următoarele elemente: au o anumită structură care poate diferi de la un RTOS la altul; o cutie poştală menţine temporar un mesajceea ce permite decuplarea proceselor (transmisia/recepţia mesajelor nu trebuie să se facă sincron).
229 Elementele asociate nume identificator unic dimensiunea mesajului bloc de control al cutiei poştale 2 liste de procese asociate lista proceselor ce aşteaptă să trimită mesaje lista proceselor ce aşteaptă să primească mesaje
230 Elementele asociate
231 Observaţii Memoria necesară mesajului poate fi alocată de către RTOS în funcţie de dimensiunea mesajului. Alocarea memoriei se face din blocurile de memorie: disponibile întregului sistem rezervate special Procesele din listele de aşteptare sunt selectate pentru a trimite/primi un mesaj în funcţie de prioritate ordonare după un model FIFO sau LIFO
232 Stările unei cutii poştale
233 Conţinutul mesajelor poate fi de diferite tipuri în funcţie de informaţia pe care o poartă: valoarea preluată de la un senzor, o imagine pentru a fi afişată pe ecran, un mesaj text ce trebuie afişat pe un LCD, codul obţinut la apăsarea unei taste de la o tastatură pachet de date de trimis prin intermediul reţelei
234 Transmiterea mesajelor dimensiunea şi formatul mesajelor trebuie să fie agreat de ambele procese (expeditor şi destinatar) şi sunt stabilite la iniţializare pot apare două probleme dimensiunea şi formatul mesajelor pentru cutii poştale diferite pot aceleaşi diferite transmiterea mesajului presupune două operaţii de copiere a mesajului expeditor -> cutie poştală cutie poştală -> destinatar
235 Transmiterea mesajelor
236 Transmiterea mesajelor. Soluţii 1. în cutia poştală se va înscrie un pointer la mesaj avantaje permite transmiterea de mesaje de lungimi diferite copierea va fi mai rapidă (se copie doar pointerul) dezavantaje necesită introducerea în mesaj a unor informaţii legate de lungimea mesajului necesită mecanisme de gestionare a mesajelor eterogene 2. utilizarea unui mesaj de dimensiuni mici
237 Acţiuni asociate cutiilor poştale Principalele acţiuni asociate cutiilor poştale sunt: crearea eliminarea cutiei poştale trimiterea de mesaje recepţionarea mesajelor obţinerea de informaţii legate de cutia poştală
238 Crearea cutiilor poştale Cutiile poştale sunt structuri globale, nu aparţin unui anumit proces Apelurile pentru crearea acestora este specifică fiecărui tip de RTOS Diferenţe posibile: valorile de iniţializare mărimea mesajului modul de transmitere a mesajului modul de preluare a mesajelor de către procesele în aşteptare (bazat pe prioritate, FIFO etc)
239 Eliminarea cutiilor poştale Constă în a şterge unei anumite cutii poştale din lista celor disponibile sistemului de operare Stergerea poate să fie temporară sau definitivă Ştergerea unei cutii poştale poate să aibă efecte negative având în vedere faptul că mesajul existent în cutia poştală este şters La eliminarea unui cutii poştale, lista de procese asociate (aflate în starea de aşteptare) este desfiinţată (toate procesele aflate în listă sunt deblocate)
240 Transmiterea mesajelor când cutia poştală conţine un mesaj procesul care vrea să trimită mesajul nu se blochează (apelul întoarce un cod de eroare) se blochează pe o durată limitată se blochează pe o durată nedefinită
241 Aşteptare pentru transmiterea mesajelor. Model FIFO
242 Aşteptare pentru transmiterea mesajelor. Model LIFO
243 Deblocarea proceselor din lista de aşteptare la transmisie blocare pe o durată limitată procesul se deblochează când cutia poştală devine goală expiră timpul de aşteptare blocare pe o durată nedefinită cutia poştală devine goală
244 Recepţionarea mesajelor se face în funcţie de modelul de aşteptare LIFO FIFO prioritate
245 Recepţionarea mesajelor. Model FIFO
246 Recepţionarea mesajelor. Model FIFO
247 Recepţionarea mesajelor când cutia poştală este goală procesul nu se blochează (apelul întoarce un cod de eroare) se blochează pe o durată limitată se blochează pe o durată nedefinită
248 Deblocarea proceselor din lista de aşteptare la recepţie blocare pe o durată limitată procesul se deblochează când apare un mesaj în cutia poştală expiră timpul de aşteptare blocare pe o durată nedefinită apare un mesaj în cutia poştală
249 Citirea mesajelor din cutia poştală Citirea se poate realiza în două moduri: distructiv mesajul citit din cutia poştală este şters nedistructiv mesajul citit rămâne în cutia poştală
250 Obţinerea de informaţii de la cutia poştală Operaţia permite obţinerea de informaţii referitoare la următoarele elemente ale unei cutii poştale: informaţii legate de elementele de identificare: nume, identificator unic; informaţii legate dimensiunea mesajului; informaţii legate de procesele aflate în lista de aşteptare
251 Utilizări tipice ale cutiilor poştale comunicare unidirecţională, comunicare unidirecţională cu confirmarea mesajului, comunicare bidirecţională cu blocare utilizarea cutiei poştale ca semafor binar
252 Comunicare unidirecţională
253 Comunicare unidirecţională ProcEmitator () { : Trimite mesaj în cutia poştală : } ProcDestinatar () { : Citeşte mesajul din cutia poştală : }
254 Comunicare unidirecţională cu confirmarea primirii mesajului
255 Comunicare unidirecţională cu confirmarea primirii mesajului ProcEmitator () { : Trimite mesaj în cutia poştală Ia în posesie semafor : } ProcDestinatar () { : Citeşte mesajul din cutia poştală Eliberează semafor : }
256 Comunicare bidirecţională
257 Comunicare bidirecţională Se utilizează două cutii poştale Procesul Proc1 trimite un mesaj prin cutia poştală CP1 Procesul Proc2 răspunde procesului Proc1 prin intermediul cutiei poştale CP2 Se pot realiza aplicaţii de tip client server dacă informaţiile transmise se pot încadra într-un mesaj Se pot realiza aplicaţii cu mai mulţi clienţi şi un server. o CP comună fiecare client va fi servit prin intermediul unei cutii poştale separate Observaţii Prin cele două cutii poştale se pot transmite mesaje de tipuri şi dimensiuni diferite
258 Comunicare bidirecţională Proc1 () { : Trimite mesaj în cutia poştală CP1 Aşteaptă mesaj în cutia poştală CP2 : } Proc2 () { : Aşteaptă mesaj din cutia poştală CP1 : } Trimite mesaj în cutia poştală CP2
259 Utilizarea cutiei poştale ca semafor binar Iniţializarea în starea disponibil: iniţializare cutie poştală cu mesaj Iniţializare în starea indisponibil: iniţializare cutie poştală fără mesaj
260 Utilizarea cutiei poştale ca semafor binar ProcAstept ( ){ : Aşteaptă mesaj în cutia poştală : } ProcAstept ( ){ : Ia în posesie semafor binar : } ProcSemnal ( ){ : Trimite mesaj în cutia poştală : } ProcSemnal ( ){ : Eliberează semafor binar : }
261 Programarea sistemelor de timp real Conducte 1
262 Conductă. Definiţie O conductă (pipe) este un obiect al unui nucleu/sistem de operare de timp real prin intermediul căreia procesele pot transmite sau recepţiona informaţii într-un format nestructurat: sincronizării schimbării de informaţii uni sau bidirecţional
263 Elemente caracteristice Conductele sunt caracterizate prin următoarele elemente: au o anumită structură care poate diferi de la un RTOS la altul; o conductă menţine temporar informaţia nestructurată ceea ce permite decuplarea proceselor (transmisia/recepţia informaţiei nu trebuie să se facă sincron).
264 Elementele asociate nume identificator unic dimensiunea memoriei alocate conductei bloc de control al conductei număr de octeţi tamponul mărimea tamponului poziţia de scriere poziţia de citire 2 liste de procese asociate lista proceselor ce aşteaptă să trimită informaţii lista proceselor ce aşteaptă să primească informaţii
265 Elementele asociate
266 Observaţii Memoria necesară conductei poate fi alocată de către RTOS. Alocarea memoriei se face din blocurile de memorie: disponibile întregului sistem rezervate special Procesele din listele de aşteptare sunt selectate pentru a trimite/primi informaţii în funcţie de prioritate ordonare după un model FIFO sau LIFO
267 Stările unei conducte
268 Caracteristicile informaţilor vehiculate informaţia vehiculată prin conductă este nestructurată schimbul de informaţii se face la nivel de octeţi informaţiei nu i se poate modifica prioritatea (anumiţi octeţi să fie scrişi/citiţi înaintea altora tipuri de informaţii vehiculate prin conducte: informaţii preluate de la un senzor, o imagine pentru a fi afişată pe ecran, octeţii corespunzători unui text ce trebuie afişat pe un LCD, date de trimis prin intermediul reţelei
269 Conducte cu sau fără nume conductele pot primi un nume la creare pot fi utilizate de mai multe procese care vor utiliza numele ca referinţă se pot crea conducte fără nume pot fi accesate doar de către procesele între care au fost create şi numai prin intermediul unor descriptori utilizaţi în cadrul RTOS
270 Acţiuni asociate conductelor Principalele acţiuni asociate conductelor sunt: crearea eliminarea conductei trimiterea de informaţii citirea informaţiilor golirea conductei selecţie a conductei (dintre mai multe) obţinerea de informaţii legate de conductă
271 Crearea conductelor Conductele sunt structuri globale, nu aparţin unui anumit proces Apelurile pentru crearea acestora este specifică fiecărui tip de RTOS Diferenţe posibile: valorile de iniţializare dimensiunea memoriei tampon cu nume sau fără nume La crearea conductei RTOS întoarce doi descriptori: punctul de scriere a informaţiei punctul de citire a informaţiei
272 Eliminarea conductelor Constă în a şterge unei anumite conducte din lista celor disponibile sistemului de operare Ştergerea poate să fie temporară sau definitivă Ştergerea unei conducte poate să aibă efecte negative având în vedere faptul că informaţia existentă în conductă este ştearsă La eliminarea unui conducte, lista de procese asociate (aflate în starea de aşteptare) este desfiinţată (toate procesele aflate în listă sunt deblocate)
273 Transmiterea informaţiei se poate face folosind descriptorul ce indică capătul de scriere al conductei conducta poate fi alimentată de mai multe procese când conducta este plină procesul care vrea să trimită informaţii prin conductă: nu se blochează (apelul întoarce un cod de eroare) se blochează pe o durată limitată se blochează pe o durată nedefinită
274 Deblocarea proceselor din lista de aşteptare la transmisie blocare pe o durată limitată procesul se deblochează când există spaţiu pentru a scrie informaţi în conductă expiră timpul de aşteptare blocare pe o durată nedefinită există spaţiu pentru a scrie informaţi în conductă
275 Citirea informaţiei din conductă se poate face folosind descriptorul ce indică capătul de citire al conductei un proces poate să citească într-o singură operaţie de citire informaţia dintr-o conductă scrisă de mai multe procese cantitatea de informaţie citită este dată de blocul de control al conductei
276 Citirea informaţiei din conductă când conducta este goală procesul: nu se blochează (apelul întoarce un cod de eroare) se blochează pe o durată limitată se blochează pe o durată nedefinită
277 Deblocarea proceselor din lista de aşteptare la recepţie blocare pe o durată limitată procesul se deblochează când apare informaţie în conductă expiră timpul de aşteptare blocare pe o durată nedefinită apare informaţie în conductă
278 Citirea informaţiei din conductă în cazul conductelor citirea este distructivă (nu se pot realiza operaţii de emisie) toţi octeţii de informaţie din conductă au aceeaşi prioritate nu poate fi identificată sursa informaţiei (în cazul surselor multiple)
279 Golirea conductei Situaţii posibile Golirea conductei înainte de eliminarea acesteia. Realizarea unei sincronizări între procese.
280 Selecţia este acţiunea ce permite selectarea unei conducte în funcţie de apariţia unei anumite condiţii operaţia de selecţie poate fi utilizată atât la scriere cât şi la citire
281 Selecţie
282 Obţinerea de informaţii despre conductă Operaţia permite obţinerea de informaţii referitoare la următoarele elemente ale unei conducte: informaţii legate de elementele de identificare: nume, identificator unic; informaţii legate de lungimea conductei; informaţii legate de procesele aflate în listele de aşteptare
283 Utilizări tipice ale conductelor comunicare unidirecţională, comunicare bidirecţională comunicare multi sursă la intrare şi ieşire sincronizarea proceselor
284 Comunicare unidirecţională
285 Comunicare unidirecţională ProcEmitator () { : Trimite informaţie prin conductă : } ProcDestinatar () { : Citeşte informaţie din conductă : }
286 Comunicare bidirecţională
287 Comunicare bidirecţională Proces1 () { : Trimite informaţie în conducta C1 Aşteaptă informaţie în conducta C2 : } Proces2 () { : Aşteaptă informaţie în conducta C1 Trimite informaţie în conducta C2 : }
288 Comunicare multi sursă la intrare şi ieşire
289 Sincronizarea proceselor Se utilizează două conducte o conductă pentru transmiterea informaţiilor o conductă pentru confirmarea recepţiei informaţiilor
290 Sincronizarea proceselor
291 Programarea sistemelor de timp real Semnale, evenimente, variabile condiţionale 1
292 Semnale. Definiţie Un semnal este o întrerupere software care este generată atunci când apare un eveniment. Semnalul face ca execuţia procesului curent să fie întreruptă şi lansează în execuţie procesul ce tratează întreruperea
293 Semnale şi întreruperi întreruperile sunt generate de apariţia unui semnal la una din intrările sistemului semnalele sunt generate de către anumite porţiuni de cod ale aplicaţiei (procese)
294 Elemente caracteristice Semnalele sunt caracterizate prin următoarele elemente: au o anumită structură care poate diferi de la un RTOS la altul numărul şi tipurile de semnale depind de implementarea RTOS sunt asincrone (nu sosesc la momente determinate de timp) pot fi generate de subrutine de tratare a întreruperilor sau de către alte procese sunt asociate unor evenimente
295 Particularităţi privind implementarea semnalelor Implementările semnalelor pot sau nu beneficia de: aşezarea în coadă a semnalelor (semnalul nou de acelaşi tip suprascrie vechiul semnal) numărarea semnalelor (semnale multiple de acelaşi tip au acelaşi efect cu trimiterea unui singur semnal) transmiterea de informaţii prin intermediul semnalelor ordonarea transmiterii semnalelor (semnale diferite au aceeaşi prioritate) garantarea momentului transmisiei semnalelor când se realizează o deblocare a unor semnale blocate în prealabil
296 Elemente caracteristice evenimentele generatoare pot fi: intenţionale un proces semnalizează un eveniment unui alt proces neintenţionale semnalul apare datorită apariţiei unei instrucţiuni ilegale
297 Elemente asociate Blocul de control al semnalelor lista semnalelor acceptate lista semnalelor în aşteptare lista semnalelor ignorate lista semnalelor blocate
298 Elemente asociate
299 Elemente asociate
300 Acţiuni asociate semnalelor instalarea subrutinei de tratare a unui semnal dezinstalarea subrutinei de tratare a unui semnal trimiterea unui semnal ignorarea unui semnal blocarea unui semnal deblocarea unui semnal
301 Utilizările tipice ale semnalelor post prelucrarea unei întreruperi tratată de o subrutină de tratarea a întreruperilor sincronizare între procese
302 Post prelucrarea unei întreruperi
303 Sincronizarea proceselor
304 Evenimente
305 Evenimente. Definiţie Evenimentele sunt semnale având ca sursă apariţia anumitor condiţii la intrările sistemului sau în funcţionarea internă a acestuia
306 Elemente caracteristice evenimentelor Implementarea evenimentelor este dependentă de sistemul de operare sunt grupate de obicei într-un registru de evenimente având lungimea de 8, 16 sau 32 biţi mai sunt denumite şi indicatori (flags) indicatorii asociaţi evenimentelor pot fi modificaţi de către alte procese sau subrutine de tratarea întreruperilor
307 Elemente caracteristice evenimentelor pot fi părţi componente ale structurii de date ale unui proces sau pot fi structuri separate aplicaţiile definesc evenimentele asociate unui anumit indicator (bit dintr-un registru de evenimente)
308 Elemente asociate evenimentelor registrul de control al evenimentelor conţine: evenimente acceptate evenimente primite valoarea datei de expirare condiţiile de notificare registrul de evenimente
309 Elemente asociate evenimentelor
310 Elemente asociate evenimentelor
311 Acţiuni asociate evenimentelor Trimiterea/Semnalarea unui eveniment Recepţionarea/Luarea la cunoştinţă de apariţia unui eveniment
312 Semnalarea unui eveniment Operaţia permite unei surse externe să trimită un semnal unui proces Sursă externă proces subrutină de tratare a întreruperilor Printr-o singură operaţie pot fi semnalate mai multe evenimente
313 Recepţionarea unui eveniment permite unui proces recepţionarea unor evenimente provenite din surse exterioare permite stabilirea timpului de aşteptare pentru un anumit eveniment se pot specifica anumite condiţii care să ia în considerare mai multe evenimente (chiar dacă nu sunt simultane).
314 Recepţionarea unui eveniment condiţiile pot fi construite folosind operatorii binari SI/SAU condiţie SAU reluarea execuţiei are loc dacă oricare din indicatori este 1 condiţie SI reluarea execuţiei are loc dacă fiecare indicator din setul asociat condiţiei este 1
315 Utilizări tipice ale evenimentelor sincronizare unidirecţională a proceselor
316 Observaţii unui eveniment nu i se poate ataşa o anumită informaţie nu există mecanisme de acumulare a evenimentelor (efectul semnalării unui eveniment este acelaşi cu cel al semnalării mai multor evenimente de acelaşi fel). nu are un mecanism prin care să fie identificată sursa evenimentului
317 Programarea sistemelor de timp real Întreruperi şi excepţii 1
318 Excepţii. Definiţie Un eveniment care întrerupe funcţionarea normală a procesorului şi îl forţează să execute un set de instrucţiuni într-o stare specială
319 Excepţii. Clasificare Sincrone generate de obicei de evenimente interne procesorului împărţire prin zero erori de scriere/citire a memoriei indicator de gardă Asincrone generate de evenimente externe procesorului, de obicei generate de dispozitive hardware buton de reset convertor A/N controler comunicaţie
320 Întrerupere. Definiţie Întreruperea este un caz particular de excepţie corespunzătoare unui eveniment având o cauză externă procesorului, de obicei un dispozitiv hardware.
321 Caracteristici ale excepţiilor Sunt elemente necesare în cadrul RTOS Implementarea excepţiilor este specifică RTOS (în general dictată de modalitatea de implementare în cadrul procesorului) Implică reguli stricte de scriere a codului care utilizează întreruperile
322 Utilitatea excepţiilor Tratarea erorilor şi a condiţiilor speciale de gestionare a resurselor Gestionarea dispozitivelor concurente Gestionarea cererilor de servicii
323 Tratarea erorilor şi a condiţiilor speciale Sunt tratate o serie întreagă de erori şi se permite sistemului revenirea din această stare fără oprirea şi resetarea sistemului Erori: împărţire prin 0 depăşirea capacităţii de numărare eroare matematică eroare de citire/scriere a memoriei invocarea unor dispozitive inexistente sau neiniţializate Condiţii speciale încercarea execuţiei unor instrucţiuni care pot fi executate numai în anumite moduri de lucru al procesorului utilizarea modului ICD (in circuit debugger)
324 Tratarea erorilor şi a condiţiilor speciale Execuţia procesului este oprită Se lansează în execuţie o subrutină de tratare a excepţiei Se evaluează şi se tratează corespunzător eroarea
325 Gestionarea dispozitivelor concurente Sistemele RTOS pot conţine dispozitive care pot funcţiona simultan Dispozitivele pot necesita minim de intervenţie din partea procesorului Dispozitivele trebuie să semnaleze procesorului anumite evenimente încheierea unei acţiuni depăşirea sau coborârea sub un prag limită îndeplinirea unei condiţii Exemple: încheierea unei conversii A/N încheierea unei temporizări coborârea tensiunii de alimentare sub pragul limită umplerea unei zone tampon (buffer) de date
326 Gestionarea cererilor de servicii Dispozitivele periferice pot fi considerate ca dispozitive care cer anumite servicii procesorului central preluarea unei valori din zona aferentă rezultatului conversiei preluarea unor date dintr-o zonă tampon de recepţie a datelor permiterea accesului pentru citirea/scrierea unor date din/în memoria sistemului
327 Clasificarea excepţiilor Asincrone nemascabile Asincrone mascabile Sincrone precise Sincrone imprecise Ordinea uzuală a priorităţilor este Cea mai mare Asincronă nemascabilă Mare Sincronă precisă Medie Sincronă imprecisă Mică Asincronă mascabilă
328 Excepţii asincrone nemascabile Sunt excepţiile care nu pot fi mascate Ele sunt tratate imediat ce sunt recepţionate Unele procesoare au linii dedicate excepţiilor nemascabile
329 Excepţii asincrone mascabile Sunt excepţiile care pot fi mascate Excepţiile mascate nu sunt luate în considerare de către procesor Mascarea se realizează prin instrucţiuni dedicate ale procesorului
330 Excepţii sincrone precise Sunt excepţii generate de evenimente interne ale procesorului Instrucţiunea care a generat excepţia este pe deplin identificată prin conţinutul numărătorului de program Revenirea din subrutina de tratarea excepţiei este cunoscută
331 Excepţii sincrone imprecise Instrucţiunea care a generat evenimentul nu este cunoscută Sunt caracteristice procesoarelor de tip pipeline
332 Sistemul de priorităţi ale sistemului
333 Tratarea excepţiilor Pentru a putea fi tratate, pentru fiecare excepţie trebuie prevăzută o subrutină care să ia în considerare excepţia respectivă Alocarea unei subrutine pentru o excepţie se realizează prin intermediul unei tabele vectori Vectorii reprezintă locaţii de memorie care conţin adresele de început a codului subrutinei de tratare a excepţiei Localizarea, dimensiunea şi caracteristicile tabelei de vectori este specifică fiecărui procesor sau sistem de operare
334 Instalarea subrutinelor de tratare a excepţiilor În general procesoarele au instalate subrutine standard de tratare a excepţiilor care realizează: sesizarea apariţiei întreruperii tratarea minimă a excepţiei întoarcerea din subrutina de tratare a excepţiei Utilizatorii pot să creeze subrutine de tratare a excepţiilor şi să le instaleze modificând vectorul corespunzător excepţiei Instalare noii subrutine = in tabela de vectori se înlocuieşte vectorul (adresa) subrutinei standard cu vectorul (adresa) noii subrutine
335 Instalarea subrutinelor de tratare a excepţiilor
336 Tratarea excepţiilor La apariţia unei excepţii trebuie parcurşi următorii paşi: salvarea stării curente a procesorului încărcarea adresei codului funcţiei de tratarea a excepţiei în numărătorul de program execuţia funcţiei de tratare a excepţiei restaurarea stării procesorului reluarea execuţiei programului ce se executa înaintea apariţiei excepţiei
337 Tratarea excepţiilor Dezactivează intreruperile Salvează starea Determină sursa excepţiei Selectează subrutina de tratare a excepţiei ESR 1 ESR i ESR n Restaurează starea Activează excepţiile
338 Funcţia de tratare a excepţiei O funcţie de tratare a unei excepţii realizează de obicei următoarele operaţiuni comută execuţia într-o zonă de memorie dedicată salvează informaţii suplimentare despre starea procesorului se dezactivează sistemul de întreruperi (unele procesoare îşi dezactivează sistemul de întreruperi la acceptarea unei întreruperi), sau se maschează anumite niveluri de întrerupere, (de obicei cele cu prioritate mai mică); execută o serie minimă de instrucţiuni de tratare a excepţiei se reactivează sistemul de întreruperi, sau se elimină măştile anumitor niveluri; se dă din nou controlul procesorului procesului întrerupt, după ce în prealabil s-a încărcat starea lui.
339 Tratarea excepţiilor
340 Nivele de imbricare a excepţiilor Este o situaţie curentă ca în timpul tratării unei excepţii să apară o altă excepţie Cazul 1 dacă noua excepţie este de prioritate mai mică ea va fi ignorată (mascare) Cazul 2 dacă noua excepţie este de prioritate mai mare ea trebuie să poată întrerupe subrutina de tratare curentă Modul de imbricare a excepţiilor şi numărul maxim de imbricări este specific fiecărui RTOS/procesor Numărul maxim de imbricări depinde de obicei de dimensiunea memoriei stivă
341 Imbricarea excepţiilor
342 Imbricarea excepţiilor Memoria stivă trebuie să fie destul de mare ca în ea să poată fi salvate toate informaţiile necesare la apariţia fiecărei excepţii Trebuie luat în calcul şi necesarul din memoria stivă cerut de apelurile de funcţiile/procesele aplicaţiei În cazul în care nu se foloseşte un controler de memorie se poate depăşi stiva alocată aplicaţiei
343 Depăşirea memoriei alocate stivei
344 Depăşirea memoriei alocate stivei. Soluţii Creşterea dimensiunii stivei fiind luat în calcul cazul cel mai defavorabil avantaje: metodă simplă dezavantaj: alocare neeconomică a memoriei Alocarea unor zone de stivă speciale pentru întreruperi şi excepţii avantaje: utilizare unei cantităţi mai mici de memorie dezavantaj: mecanism suplimentar de gestionare a stivei suplimentare
345 Subrutinele de tratare a excepţiilor Rutinele pentru tratarea excepţiilor pot să cuprindă ele însele toate activităţile implicate de cauzele care au generat excepţiile. Trebuie rezolvată situaţia în care soseşte o cerere de excepţie pe un nivel prioritar celui servit la un moment dat. Rutina care tratează o nouă excepţie nu "ştie" dacă întrerupe un proces, sau o subrutină pentru tratarea unei excepţii.
346 Subrutinele de tratare a excepţiilor void subrutină_întrerupere() { Dezactivează sistemul de excepţii, dacă nu este dezactivat automat; Salvează registrele procesorului; Reactivează sistemul de excepţii; Executa secvenţa de instrucţiuni implicată de evenimentul care a întrerupt: Reintroduce secvenţa întreruptă în execuţie prin încărcarea registrelor salvate; }
347 Subrutinele de tratare a excepţiilor Activitatea subrutinei pentru tratarea unei excepţii se poate rezuma la activarea unui proces Procesul activat efectuează activităţile implicate de tratarea întreruperii. Procesul care trebuie activat se află în aşteptare, iar rutina pentru tratarea întreruperii îl trece în starea "gata de execuţie" folosind un apel de sistem.
348 Subrutinele de tratare a excepţiilor void subrutină_întrerupere() { Salvează starea procesului curent; Introduce procesul curent în lista "gata de execuţie ; Semnalizează procesul implicat de evenimentul care a întrerupt; /* aceasta va reactiva procesul corespunzător */ Execută funcţia planificatorului; Execută funcţia distribuitorului lansând în execuţie primul proces din lista "gata de execuţie"; }
349 Programarea sistemelor de timp real Gestionarea memoriei 1
350 Probleme legate de fragmentarea memoriei Fragmentarea memoriei Activitate suplimentară legată de gestionarea memoriei Timp de alocare a memoriei nedeterminist
351 Alocarea dinamică a memoriei Memoria unei aplicaţii RTOS este împărţită în mai multe zone memoria de program memoria de date memoria stivă memorie liberă Memoria liberă poate fi alocată dinamic de către aplicaţia RTOS
352 Alocarea memoriei Caracteristici Memoria este împărţită în blocuri de dimensiuni egale. Dimensiunea blocurilor depinde de sistemul de operare Alocarea memoriei se face la nivel de bloc Informaţia legată de blocurile alocate este păstrată într-o tabelă de alocare a memoriei
353 Blocul de control al memoriei Informaţia stocată în BCM adresa de bază a blocului fizic de memorie folosit pentru alocare dinamică dimensiunea totală a memoriei tabela de alocare ce indică zonele de memorie alocate şi zonele libere
354 Alocarea memoriei Alocarea şi eliberarea memoriei se realizează folosind funcţii speciale malloc alocarea memoriei. Parametrul funcţiei este dimensiunea memoriei (in octeţi sau kiloocteţi free eliberarea memoriei. Parametrul funcţiei este obiectul sau un pointer către obiectul pentru care este alocată memoria Alocarea se face în funcţie de dimensiunea precizată şi de dimensiune blocurilor de alocare
355 Alocarea memoriei. Exemplu Dimensiunea blocului de alocare: 32 octeţi Dimensiunea memoriei cerute: 60 octeţi Instrucţiunea de alocare: malloc(60); Memoria alocată: 2 blocuri de 32 octeţi = 64 octeţi Memoria nefolosită din cea alocată: 64+60=2 octeţi Acest tip de fragmentare se numeşte fragmentare internă
356 Alocarea memoriei. Exemplu
357 Fragmentarea memoriei În urma unor operaţii repetate de alocare şi eliberare a memoriei rezultă zone de memorie având caracteristicile: izolate de dimensiune mică Aceste zone nu pot fi folosite în cazul unor instrucţiuni care cer alocarea unei zone mai mari de memorie Acest tip de fragmentare se numeşte fragmentare externă
358 Alocarea memoriei. Exemplu
359 Defragmentarea memoriei Blocurile de memorie izolate sunt mutate astfel încât să alcătuiască o zonă contiguă Eficienţa operaţiei de defragmentare depinde de: viteza de mutare a blocurilor încărcarea sistemului (numărul de procese ale aplicaţiei) dimensiunea blocurilor de memorie
360 Alocarea memoriei. Exemplu. După defragmentare
361 Defragmentarea memoriei Operaţia de defragmentare se realizează în mai mulţi paşi După mutarea a două blocuri, blocul rezultat poate fi de asemeni prea mic pentru un apel de alocare Pe timpul fragmentării procesele nu pot accesa zonele de memorie alocate lor (acestea se pot afla în operaţia de mutare) Procesul de defragmentare concurează şi el la resursele sistemului ca şi orice alt proces Prioritatea procesului de defragmentare este de obicei mai mică decât a proceselor aplicaţiei
362 Defragmentarea memoriei Restricţii impuse defragmentării: blocurile care sunt accesate prin intermediul adreselor fizice nu pot fi mutate trebuie să fie respectate condiţiile de aliniere a adreselor de memorie
363 Gestionarea memoriei Un gestionar de memorie trebuie să realizeze cu rapiditate operaţiile determinarea un bloc liber de memorie de dimensiunea cerută sau mai mare (parte a funcţiei malloc) actualizarea informaţiei legate de memorie (parte a funcţiilor malloc şi free) determinarea posibilităţii de a combina blocul eliberat cu altele pentru a obţine o zonă contiguă de dimensiune mai mare să minimizeze activitatea suplimentară legată de gestioarea memoriei Eficienţa gestionarului de memorie este determinată de structura tabelei de alocare a memoriei
364 Utilizarea blocurilor de memorie de dimensiune fixă Zona de memorie este împărţită în grupuri (pools) de blocuri de memorie fiecare bloc de memorie dintr-un grup are aceeaşi dimensiune grupurile conţin blocuri de dimensiuni diferite Fiecare grup este controlat de un bloc de control care deţine informaţiile: dimensiunea unui bloc numărul total de blocuri disponibile numărul de blocuri libere
365 Blocuri de memorie
366 Structura memoriei Fiecare grup este constituit dintr-o număr de blocuri de memorie organizate într-o listă La o operaţie de alocare reuşită, blocul de memorie este eliminat din listă La eliberarea unui bloc de memorie acesta este adăugat în lista grupului corespunzător dimensiunii lui O operaţie de alocare sau de eliberare poate elimina sau adăuga mai multe blocuri în listele grupurilor
367 Alocarea blocurilor de memorie Alocarea blocurilor de memorie grupurile sunt ordonate în funcţie de dimensiunea blocurilor la cererea unei zone de memorie de o anumită dimensiune se caută blocul de dimensiunea cea mai mică dar mai mare sau egală cu dimensiunea cerută Acţiuni: se caută grupul cu dimensiunea cea mai mică se caută primul bloc liber din listă
368 Alocarea blocurilor de memorie Avantaje: reduce fragmentarea internă a memoriei îmbunătăţeşte performanţele aplicaţiilor cu caracteristici statice: lucrează în medii predictibile număr cunoscut de procese create cunoaşterea de la început dimensiunii blocurilor de memorie are un comportament determinist (timpul de alocare este constant) nu necesită restructurare (defragmentare)
369 Sisteme RTOS cu memorie redusă Dimensiunea memoriei impusă de restricţii de preţ dispozitivelor de memorie gabarit consum de energie cost suplimentar dat de gestionarul de memorie Memoria este partajată între procesele sistemului Pot apare momente când nu există memorie disponibilă (disponibilitate temporară) Unele procese vor aştepta eliberarea unor blocuri de memorie ca să poată continua execuţia
370 Sisteme RTOS cu memorie redusă Acţiunea executată de un proces când cererea de memorie nu poate fi alocată depinde de implementarea RTOS Acţiuni procesul se blochează pe o durată limitată procesul se blochează pe un timp nedefinit procesul îşi continuă execuţia
371 Implementarea alocării memoriei cu blocare Implementarea foloseşte obiecte RTOS semafor numărător mutex Obiectele permit sincronizarea operaţiei de alocare a memoriei În cazul alocării cu blocuri de dimensiune fixă, se utilizează câte un semafor numărător şi câte un mutex pentru fiecare grup de blocuri de memorie
372 Implementarea alocării memoriei cu blocare Semaforul numărător este iniţializat cu valoarea numărului de blocuri de memorie existente în grup valoarea lui va indica numărul de blocuri de memorie disponibile în grupul respectiv blocurile de memorie sunt alocate şi eliberate de la/la începutul listei Blocurile de control sunt actualizate după fiecare operaţie de alocare sau eliberare de memorie
373 Implementarea alocării memoriei cu blocare
Metode iterative pentru probleme neliniare - contractii
Metode iterative pentru probleme neliniare - contractii Problemele neliniare sunt in general rezolvate prin metode iterative si analiza convergentei acestor metode este o problema importanta. 1 Contractii
5.4. MULTIPLEXOARE A 0 A 1 A 2
5.4. MULTIPLEXOARE Multiplexoarele (MUX) sunt circuite logice combinaţionale cu m intrări şi o singură ieşire, care permit transferul datelor de la una din intrări spre ieşirea unică. Selecţia intrării
Curs 10 Funcţii reale de mai multe variabile reale. Limite şi continuitate.
Curs 10 Funcţii reale de mai multe variabile reale. Limite şi continuitate. Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi" Iaşi 2014 Fie p, q N. Fie funcţia f : D R p R q. Avem următoarele
(a) se numeşte derivata parţială a funcţiei f în raport cu variabila x i în punctul a.
Definiţie Spunem că: i) funcţia f are derivată parţială în punctul a în raport cu variabila i dacă funcţia de o variabilă ( ) are derivată în punctul a în sens obişnuit (ca funcţie reală de o variabilă
10. STABILIZATOAE DE TENSIUNE 10.1 STABILIZATOAE DE TENSIUNE CU TANZISTOAE BIPOLAE Stabilizatorul de tensiune cu tranzistor compară în permanenţă valoare tensiunii de ieşire (stabilizate) cu tensiunea
Curs 14 Funcţii implicite. Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi"
Curs 14 Funcţii implicite Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi" Iaşi 2014 Fie F : D R 2 R o funcţie de două variabile şi fie ecuaţia F (x, y) = 0. (1) Problemă În ce condiţii ecuaţia
Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor X) functia f 1
Functii definitie proprietati grafic functii elementare A. Definitii proprietatile functiilor. Fiind date doua multimi X si Y spunem ca am definit o functie (aplicatie) pe X cu valori in Y daca fiecarui
III. Serii absolut convergente. Serii semiconvergente. ii) semiconvergentă dacă este convergentă iar seria modulelor divergentă.
III. Serii absolut convergente. Serii semiconvergente. Definiţie. O serie a n se numeşte: i) absolut convergentă dacă seria modulelor a n este convergentă; ii) semiconvergentă dacă este convergentă iar
riptografie şi Securitate
riptografie şi Securitate - Prelegerea 12 - Scheme de criptare CCA sigure Adela Georgescu, Ruxandra F. Olimid Facultatea de Matematică şi Informatică Universitatea din Bucureşti Cuprins 1. Schemă de criptare
Curs 1 Şiruri de numere reale
Bibliografie G. Chiorescu, Analiză matematică. Teorie şi probleme. Calcul diferenţial, Editura PIM, Iaşi, 2006. R. Luca-Tudorache, Analiză matematică, Editura Tehnopress, Iaşi, 2005. M. Nicolescu, N. Roşculeţ,
Planul determinat de normală şi un punct Ecuaţia generală Plane paralele Unghi diedru Planul determinat de 3 puncte necoliniare
1 Planul în spaţiu Ecuaţia generală Plane paralele Unghi diedru 2 Ecuaţia generală Plane paralele Unghi diedru Fie reperul R(O, i, j, k ) în spaţiu. Numim normala a unui plan, un vector perpendicular pe
Aplicaţii ale principiului I al termodinamicii la gazul ideal
Aplicaţii ale principiului I al termodinamicii la gazul ideal Principiul I al termodinamicii exprimă legea conservării şi energiei dintr-o formă în alta şi se exprimă prin relaţia: ΔUQ-L, unde: ΔU-variaţia
Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor
Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor. Fiind date doua multimi si spunem ca am definit o functie (aplicatie) pe cu valori in daca fiecarui element
V.7. Condiţii necesare de optimalitate cazul funcţiilor diferenţiabile
Metode de Optimizare Curs V.7. Condiţii necesare de optimalitate cazul funcţiilor diferenţiabile Propoziţie 7. (Fritz-John). Fie X o submulţime deschisă a lui R n, f:x R o funcţie de clasă C şi ϕ = (ϕ,ϕ
5. FUNCŢII IMPLICITE. EXTREME CONDIŢIONATE.
5 Eerciţii reolvate 5 UNCŢII IMPLICITE EXTREME CONDIŢIONATE Eerciţiul 5 Să se determine şi dacă () este o funcţie definită implicit de ecuaţia ( + ) ( + ) + Soluţie ie ( ) ( + ) ( + ) + ( )R Evident este
Metode de interpolare bazate pe diferenţe divizate
Metode de interpolare bazate pe diferenţe divizate Radu Trîmbiţaş 4 octombrie 2005 1 Forma Newton a polinomului de interpolare Lagrange Algoritmul nostru se bazează pe forma Newton a polinomului de interpolare
a. 11 % b. 12 % c. 13 % d. 14 %
1. Un motor termic funcţionează după ciclul termodinamic reprezentat în sistemul de coordonate V-T în figura alăturată. Motorul termic utilizează ca substanţă de lucru un mol de gaz ideal având exponentul
Criptosisteme cu cheie publică III
Criptosisteme cu cheie publică III Anul II Aprilie 2017 Problema rucsacului ( knapsack problem ) Considerăm un număr natural V > 0 şi o mulţime finită de numere naturale pozitive {v 0, v 1,..., v k 1 }.
4. CIRCUITE LOGICE ELEMENTRE 4.. CIRCUITE LOGICE CU COMPONENTE DISCRETE 4.. PORŢI LOGICE ELEMENTRE CU COMPONENTE PSIVE Componente electronice pasive sunt componente care nu au capacitatea de a amplifica
Curs 4. RPA (2017) Curs 4 1 / 45
Reţele Petri şi Aplicaţii Curs 4 RPA (2017) Curs 4 1 / 45 Cuprins 1 Analiza structurală a reţelelor Petri Sifoane Capcane Proprietăţi 2 Modelarea fluxurilor de lucru: reţele workflow Reţele workflow 3
Analiza în curent continuu a schemelor electronice Eugenie Posdărăscu - DCE SEM 1 electronica.geniu.ro
Analiza în curent continuu a schemelor electronice Eugenie Posdărăscu - DCE SEM Seminar S ANALA ÎN CUENT CONTNUU A SCHEMELO ELECTONCE S. ntroducere Pentru a analiza în curent continuu o schemă electronică,
MARCAREA REZISTOARELOR
1.2. MARCAREA REZISTOARELOR 1.2.1 MARCARE DIRECTĂ PRIN COD ALFANUMERIC. Acest cod este format din una sau mai multe cifre şi o literă. Litera poate fi plasată după grupul de cifre (situaţie în care valoarea
1.7. AMPLIFICATOARE DE PUTERE ÎN CLASA A ŞI AB
1.7. AMLFCATOARE DE UTERE ÎN CLASA A Ş AB 1.7.1 Amplificatoare în clasa A La amplificatoarele din clasa A, forma de undă a tensiunii de ieşire este aceeaşi ca a tensiunii de intrare, deci întreg semnalul
Sisteme diferenţiale liniare de ordinul 1
1 Metoda eliminării 2 Cazul valorilor proprii reale Cazul valorilor proprii nereale 3 Catedra de Matematică 2011 Forma generală a unui sistem liniar Considerăm sistemul y 1 (x) = a 11y 1 (x) + a 12 y 2
Curs 4 Serii de numere reale
Curs 4 Serii de numere reale Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi" Iaşi 2014 Criteriul rădăcinii sau Criteriul lui Cauchy Teoremă (Criteriul rădăcinii) Fie x n o serie cu termeni
Integrala nedefinită (primitive)
nedefinita nedefinită (primitive) nedefinita 2 nedefinita februarie 20 nedefinita.tabelul primitivelor Definiţia Fie f : J R, J R un interval. Funcţia F : J R se numeşte primitivă sau antiderivată a funcţiei
V O. = v I v stabilizator
Stabilizatoare de tensiune continuă Un stabilizator de tensiune este un circuit electronic care păstrează (aproape) constantă tensiunea de ieșire la variaţia între anumite limite a tensiunii de intrare,
DISTANŢA DINTRE DOUĂ DREPTE NECOPLANARE
DISTANŢA DINTRE DOUĂ DREPTE NECOPLANARE ABSTRACT. Materialul prezintă o modalitate de a afla distanţa dintre două drepte necoplanare folosind volumul tetraedrului. Lecţia se adresează clasei a VIII-a Data:
Valori limită privind SO2, NOx şi emisiile de praf rezultate din operarea LPC în funcţie de diferite tipuri de combustibili
Anexa 2.6.2-1 SO2, NOx şi de praf rezultate din operarea LPC în funcţie de diferite tipuri de combustibili de bioxid de sulf combustibil solid (mg/nm 3 ), conţinut de O 2 de 6% în gazele de ardere, pentru
Fig Impedanţa condensatoarelor electrolitice SMD cu Al cu electrolit semiuscat în funcţie de frecvenţă [36].
Componente şi circuite pasive Fig.3.85. Impedanţa condensatoarelor electrolitice SMD cu Al cu electrolit semiuscat în funcţie de frecvenţă [36]. Fig.3.86. Rezistenţa serie echivalentă pierderilor în funcţie
CIRCUITE INTEGRATE MONOLITICE DE MICROUNDE. MMIC Monolithic Microwave Integrated Circuit
CIRCUITE INTEGRATE MONOLITICE DE MICROUNDE MMIC Monolithic Microwave Integrated Circuit CUPRINS 1. Avantajele si limitarile MMIC 2. Modelarea dispozitivelor active 3. Calculul timpului de viata al MMIC
Examen AG. Student:... Grupa:... ianuarie 2011
Problema 1. Pentru ce valori ale lui n,m N (n,m 1) graful K n,m este eulerian? Problema 2. Să se construiască o funcţie care să recunoască un graf P 3 -free. La intrare aceasta va primi un graf G = ({1,...,n},E)
5.5. REZOLVAREA CIRCUITELOR CU TRANZISTOARE BIPOLARE
5.5. A CIRCUITELOR CU TRANZISTOARE BIPOLARE PROBLEMA 1. În circuitul din figura 5.54 se cunosc valorile: μa a. Valoarea intensității curentului de colector I C. b. Valoarea tensiunii bază-emitor U BE.
2. Circuite logice 2.4. Decodoare. Multiplexoare. Copyright Paul GASNER
2. Circuite logice 2.4. Decodoare. Multiplexoare Copyright Paul GASNER Definiţii Un decodor pe n bits are n intrări şi 2 n ieşiri; cele n intrări reprezintă un număr binar care determină în mod unic care
Asupra unei inegalităţi date la barajul OBMJ 2006
Asupra unei inegalităţi date la barajul OBMJ 006 Mircea Lascu şi Cezar Lupu La cel de-al cincilea baraj de Juniori din data de 0 mai 006 a fost dată următoarea inegalitate: Fie x, y, z trei numere reale
Modelare şi simulare Seminar 4 SEMINAR NR. 4. Figura 4.1 Reprezentarea evoluţiei sistemului prin graful de tranziţii 1 A A =
SEMIR R. 4. Sistemul M/M// Caracteristici: = - intensitatea traficului - + unde Figura 4. Rerezentarea evoluţiei sistemului rin graful de tranziţii = rata medie de sosire a clienţilor în sistem (clienţi
RĂSPUNS Modulul de rezistenţă este o caracteristică geometrică a secţiunii transversale, scrisă faţă de una dintre axele de inerţie principale:,
REZISTENTA MATERIALELOR 1. Ce este modulul de rezistenţă? Exemplificaţi pentru o secţiune dreptunghiulară, respectiv dublu T. RĂSPUNS Modulul de rezistenţă este o caracteristică geometrică a secţiunii
Esalonul Redus pe Linii (ERL). Subspatii.
Seminarul 1 Esalonul Redus pe Linii (ERL). Subspatii. 1.1 Breviar teoretic 1.1.1 Esalonul Redus pe Linii (ERL) Definitia 1. O matrice A L R mxn este in forma de Esalon Redus pe Linii (ERL), daca indeplineste
Subiecte Clasa a VIII-a
Subiecte lasa a VIII-a (40 de intrebari) Puteti folosi spatiile goale ca ciorna. Nu este de ajuns sa alegeti raspunsul corect pe brosura de subiecte, ele trebuie completate pe foaia de raspuns in dreptul
Seminar 5 Analiza stabilității sistemelor liniare
Seminar 5 Analiza stabilității sistemelor liniare Noțiuni teoretice Criteriul Hurwitz de analiză a stabilității sistemelor liniare În cazul sistemelor liniare, stabilitatea este o condiție de localizare
a n (ζ z 0 ) n. n=1 se numeste partea principala iar seria a n (z z 0 ) n se numeste partea
Serii Laurent Definitie. Se numeste serie Laurent o serie de forma Seria n= (z z 0 ) n regulata (tayloriana) = (z z n= 0 ) + n se numeste partea principala iar seria se numeste partea Sa presupunem ca,
Laborator 11. Mulţimi Julia. Temă
Laborator 11 Mulţimi Julia. Temă 1. Clasa JuliaGreen. Să considerăm clasa JuliaGreen dată de exemplu la curs pentru metoda locului final şi să schimbăm numărul de iteraţii nriter = 100 în nriter = 101.
Asist. Dr. Oana Captarencu. otto/pn.html.
Reţele Petri şi Aplicaţii p. 1/45 Reţele Petri şi Aplicaţii Asist. Dr. Oana Captarencu http://www.infoiasi.ro/ otto/pn.html otto@infoiasi.ro Reţele Petri şi Aplicaţii p. 2/45 Evaluare Nota finala: 40%
Capitolul 14. Asamblari prin pene
Capitolul 14 Asamblari prin pene T.14.1. Momentul de torsiune este transmis de la arbore la butuc prin intermediul unei pene paralele (figura 14.1). De care din cotele indicate depinde tensiunea superficiala
riptografie şi Securitate
riptografie şi Securitate - Prelegerea 21.2 - Sistemul de criptare ElGamal Adela Georgescu, Ruxandra F. Olimid Facultatea de Matematică şi Informatică Universitatea din Bucureşti Cuprins 1. Scurt istoric
Subiecte Clasa a VII-a
lasa a VII Lumina Math Intrebari Subiecte lasa a VII-a (40 de intrebari) Puteti folosi spatiile goale ca ciorna. Nu este de ajuns sa alegeti raspunsul corect pe brosura de subiecte, ele trebuie completate
Măsurări în Electronică şi Telecomunicaţii 3. Osciloscopul
3. Osciloscopul 3.6 Sistemul de sincronizare şi baza de timp Caracteristici generale Funcţionarea în modul Y(t) în acest caz osciloscopul reprezintă variaţia în timp a semnalului de intrare. n y u y C
Examen AG. Student:... Grupa: ianuarie 2016
16-17 ianuarie 2016 Problema 1. Se consideră graful G = pk n (p, n N, p 2, n 3). Unul din vârfurile lui G se uneşte cu câte un vârf din fiecare graf complet care nu-l conţine, obţinându-se un graf conex
2. Sisteme de forţe concurente...1 Cuprins...1 Introducere Aspecte teoretice Aplicaţii rezolvate...3
SEMINAR 2 SISTEME DE FRŢE CNCURENTE CUPRINS 2. Sisteme de forţe concurente...1 Cuprins...1 Introducere...1 2.1. Aspecte teoretice...2 2.2. Aplicaţii rezolvate...3 2. Sisteme de forţe concurente În acest
11.3 CIRCUITE PENTRU GENERAREA IMPULSURILOR CIRCUITE BASCULANTE Circuitele basculante sunt circuite electronice prevăzute cu o buclă de reacţie pozitivă, folosite la generarea impulsurilor. Aceste circuite
Capitolul ASAMBLAREA LAGĂRELOR LECŢIA 25
Capitolul ASAMBLAREA LAGĂRELOR LECŢIA 25 LAGĂRELE CU ALUNECARE!" 25.1.Caracteristici.Părţi componente.materiale.!" 25.2.Funcţionarea lagărelor cu alunecare.! 25.1.Caracteristici.Părţi componente.materiale.
prin egalizarea histogramei
Lucrarea 4 Îmbunătăţirea imaginilor prin egalizarea histogramei BREVIAR TEORETIC Tehnicile de îmbunătăţire a imaginilor bazate pe calculul histogramei modifică histograma astfel încât aceasta să aibă o
Laborator 1: INTRODUCERE ÎN ALGORITMI. Întocmit de: Claudia Pârloagă. Îndrumător: Asist. Drd. Gabriel Danciu
INTRODUCERE Laborator 1: ÎN ALGORITMI Întocmit de: Claudia Pârloagă Îndrumător: Asist. Drd. Gabriel Danciu I. NOŢIUNI TEORETICE A. Sortarea prin selecţie Date de intrare: un şir A, de date Date de ieşire:
SIGURANŢE CILINDRICE
SIGURANŢE CILINDRICE SIGURANŢE CILINDRICE CH Curent nominal Caracteristici de declanşare 1-100A gg, am Aplicaţie: Siguranţele cilindrice reprezintă cea mai sigură protecţie a circuitelor electrice de control
CIRCUITE LOGICE CU TB
CIRCUITE LOGICE CU T I. OIECTIVE a) Determinarea experimentală a unor funcţii logice pentru circuite din familiile RTL, DTL. b) Determinarea dependenţei caracteristicilor statice de transfer în tensiune
Geometrie computationala 2. Preliminarii geometrice
Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Geometrie computationala 2. Preliminarii geometrice Preliminarii geometrice Spatiu Euclidean: E d Spatiu de d-tupluri,
Conice. Lect. dr. Constantin-Cosmin Todea. U.T. Cluj-Napoca
Conice Lect. dr. Constantin-Cosmin Todea U.T. Cluj-Napoca Definiţie: Se numeşte curbă algebrică plană mulţimea punctelor din plan de ecuaţie implicită de forma (C) : F (x, y) = 0 în care funcţia F este
COLEGIUL NATIONAL CONSTANTIN CARABELLA TARGOVISTE. CONCURSUL JUDETEAN DE MATEMATICA CEZAR IVANESCU Editia a VI-a 26 februarie 2005.
SUBIECTUL Editia a VI-a 6 februarie 005 CLASA a V-a Fie A = x N 005 x 007 si B = y N y 003 005 3 3 a) Specificati cel mai mic element al multimii A si cel mai mare element al multimii B. b)stabiliti care
11.2 CIRCUITE PENTRU FORMAREA IMPULSURILOR Metoda formării impulsurilor se bazează pe obţinerea unei succesiuni periodice de impulsuri, plecând de la semnale periodice de altă formă, de obicei sinusoidale.
4. Măsurarea tensiunilor şi a curenţilor electrici. Voltmetre electronice analogice
4. Măsurarea tensiunilor şi a curenţilor electrici oltmetre electronice analogice oltmetre de curent continuu Ampl.c.c. x FTJ Protectie Atenuator calibrat Atenuatorul calibrat divizor rezistiv R in const.
Componente şi Circuite Electronice Pasive. Laborator 3. Divizorul de tensiune. Divizorul de curent
Laborator 3 Divizorul de tensiune. Divizorul de curent Obiective: o Conexiuni serie şi paralel, o Legea lui Ohm, o Divizorul de tensiune, o Divizorul de curent, o Implementarea experimentală a divizorului
SERII NUMERICE. Definiţia 3.1. Fie (a n ) n n0 (n 0 IN) un şir de numere reale şi (s n ) n n0
SERII NUMERICE Definiţia 3.1. Fie ( ) n n0 (n 0 IN) un şir de numere reale şi (s n ) n n0 şirul definit prin: s n0 = 0, s n0 +1 = 0 + 0 +1, s n0 +2 = 0 + 0 +1 + 0 +2,.......................................
CURS 3. Modelare cu Retele Petri
CURS 3 Modelare cu Retele Petri Sisteme cu Evenimente Discrete Un Sistem cu Evenimente Discrete (SED) este un sistem cu stari discrete, care evolueaza prin evenimente, adica evolutia sa depinde in intregime
Capitolul 4 PROPRIETĂŢI TOPOLOGICE ŞI DE NUMĂRARE ALE LUI R. 4.1 Proprietăţi topologice ale lui R Puncte de acumulare
Capitolul 4 PROPRIETĂŢI TOPOLOGICE ŞI DE NUMĂRARE ALE LUI R În cele ce urmează, vom studia unele proprietăţi ale mulţimilor din R. Astfel, vom caracteriza locul" unui punct în cadrul unei mulţimi (în limba
Stabilizator cu diodă Zener
LABAT 3 Stabilizator cu diodă Zener Se studiază stabilizatorul parametric cu diodă Zener si apoi cel cu diodă Zener şi tranzistor. Se determină întâi tensiunea Zener a diodei şi se calculează apoi un stabilizator
R R, f ( x) = x 7x+ 6. Determinați distanța dintre punctele de. B=, unde x și y sunt numere reale.
5p Determinați primul termen al progresiei geometrice ( b n ) n, știind că b 5 = 48 și b 8 = 84 5p Se consideră funcția f : intersecție a graficului funcției f cu aa O R R, f ( ) = 7+ 6 Determinați distanța
FLUXURI MAXIME ÎN REŢELE DE TRANSPORT. x 4
FLUXURI MAXIME ÎN REŢELE DE TRANSPORT Se numeşte reţea de transport un graf în care fiecărui arc îi este asociat capacitatea arcului şi în care eistă un singur punct de intrare şi un singur punct de ieşire.
Seminariile Capitolul X. Integrale Curbilinii: Serii Laurent şi Teorema Reziduurilor
Facultatea de Matematică Calcul Integral şi Elemente de Analiă Complexă, Semestrul I Lector dr. Lucian MATICIUC Seminariile 9 20 Capitolul X. Integrale Curbilinii: Serii Laurent şi Teorema Reiduurilor.
Curs 2 DIODE. CIRCUITE DR
Curs 2 OE. CRCUTE R E CUPRN tructură. imbol Relația curent-tensiune Regimuri de funcționare Punct static de funcționare Parametrii diodei Modelul cu cădere de tensiune constantă Analiza circuitelor cu
SEMINAR 14. Funcţii de mai multe variabile (continuare) ( = 1 z(x,y) x = 0. x = f. x + f. y = f. = x. = 1 y. y = x ( y = = 0
Facultatea de Hidrotehnică, Geodezie şi Ingineria Mediului Matematici Superioare, Semestrul I, Lector dr. Lucian MATICIUC SEMINAR 4 Funcţii de mai multe variabile continuare). Să se arate că funcţia z,
2.1 Sfera. (EGS) ecuaţie care poartă denumirea de ecuaţia generală asferei. (EGS) reprezintă osferă cu centrul în punctul. 2 + p 2
.1 Sfera Definitia 1.1 Se numeşte sferă mulţimea tuturor punctelor din spaţiu pentru care distanţa la u punct fi numit centrul sferei este egalăcuunnumăr numit raza sferei. Fie centrul sferei C (a, b,
Erori si incertitudini de măsurare. Modele matematice Instrument: proiectare, fabricaţie, Interacţiune măsurand instrument:
Erori i incertitudini de măurare Sure: Modele matematice Intrument: proiectare, fabricaţie, Interacţiune măurandintrument: (tranfer informaţie tranfer energie) Influente externe: temperatura, preiune,
Lectia VI Structura de spatiu an E 3. Dreapta si planul ca subspatii ane
Subspatii ane Lectia VI Structura de spatiu an E 3. Dreapta si planul ca subspatii ane Oana Constantinescu Oana Constantinescu Lectia VI Subspatii ane Table of Contents 1 Structura de spatiu an E 3 2 Subspatii
Problema a II - a (10 puncte) Diferite circuite electrice
Olimpiada de Fizică - Etapa pe judeţ 15 ianuarie 211 XI Problema a II - a (1 puncte) Diferite circuite electrice A. Un elev utilizează o sursă de tensiune (1), o cutie cu rezistenţe (2), un întrerupător
Aparate de măsurat. Măsurări electronice Rezumatul cursului 2. MEE - prof. dr. ing. Ioan D. Oltean 1
Aparate de măsurat Măsurări electronice Rezumatul cursului 2 MEE - prof. dr. ing. Ioan D. Oltean 1 1. Aparate cu instrument magnetoelectric 2. Ampermetre şi voltmetre 3. Ohmetre cu instrument magnetoelectric
Principiul incluziunii si excluziunii. Generarea şi ordonarea permutărilor. Principiul porumbeilor. Pri
Generarea şi ordonarea permutărilor. Principiul porumbeilor. Principiul incluziunii si excluziunii Recapitulare din cursul trecut Presupunem că A este o mulţime cu n elemente. Recapitulare din cursul trecut
TRANSFORMATOARE MONOFAZATE DE SIGURANŢĂ ŞI ÎN CARCASĂ
TRANSFORMATOARE MONOFAZATE DE SIGURANŢĂ ŞI ÎN CARCASĂ Transformatoare de siguranţă Este un transformator destinat să alimenteze un circuit la maximum 50V (asigură siguranţă de funcţionare la tensiune foarte
Εμπορική αλληλογραφία Ηλεκτρονική Αλληλογραφία
- Εισαγωγή Stimate Domnule Preşedinte, Stimate Domnule Preşedinte, Εξαιρετικά επίσημη επιστολή, ο παραλήπτης έχει ένα ειδικό τίτλο ο οποίος πρέπει να χρησιμοποιηθεί αντί του ονόματος του Stimate Domnule,
Laborator 6. Integrarea ecuaţiilor diferenţiale
Laborator 6 Integrarea ecuaţiilor diferenţiale Responsabili: 1. Surdu Cristina(anacristinasurdu@gmail.com) 2. Ştirbăţ Bogdan(bogdanstirbat@yahoo.com) Obiective În urma parcurgerii acestui laborator elevul
2CP Electropompe centrifugale cu turbina dubla
2CP Electropompe centrifugale cu turbina dubla DOMENIUL DE UTILIZARE Capacitate de până la 450 l/min (27 m³/h) Inaltimea de pompare până la 112 m LIMITELE DE UTILIZARE Inaltimea de aspiratie manometrică
Câmp de probabilitate II
1 Sistem complet de evenimente 2 Schema lui Poisson Schema lui Bernoulli (a bilei revenite) Schema hipergeometrică (a bilei neîntoarsă) 3 4 Sistem complet de evenimente Definiţia 1.1 O familie de evenimente
LUCRARE DE LICENŢĂ. Algoritmi de planificare a resurselor in sisteme de operare de timp real
Universitatea Politehnica Bucureşti Facultatea de Automatică şi Calculatoare Departamentul de Automatică şi Ingineria Sistemelor LUCRARE DE LICENŢĂ Algoritmi de planificare a resurselor in sisteme de operare
Exemple de probleme rezolvate pentru cursurile DEEA Tranzistoare bipolare cu joncţiuni
Problema 1. Se dă circuitul de mai jos pentru care se cunosc: VCC10[V], 470[kΩ], RC2,7[kΩ]. Tranzistorul bipolar cu joncţiuni (TBJ) este de tipul BC170 şi are parametrii β100 şi VBE0,6[V]. 1. să se determine
Componente şi Circuite Electronice Pasive. Laborator 4. Măsurarea parametrilor mărimilor electrice
Laborator 4 Măsurarea parametrilor mărimilor electrice Obiective: o Semnalul sinusoidal, o Semnalul dreptunghiular, o Semnalul triunghiular, o Generarea diferitelor semnale folosind placa multifuncţională
Curs 2 Şiruri de numere reale
Curs 2 Şiruri de numere reale Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi" Iaşi 2014 Convergenţă şi mărginire Teoremă Orice şir convergent este mărginit. Demonstraţie Fie (x n ) n 0 un
Sisteme liniare - metode directe
Sisteme liniare - metode directe Radu T. Trîmbiţaş 27 martie 2016 1 Eliminare gaussiană Să considerăm sistemul liniar cu n ecuaţii şi n necunoscute Ax = b, (1) unde A K n n, b K n 1 sunt date, iar x K
13. Grinzi cu zăbrele Metoda izolării nodurilor...1 Cuprins...1 Introducere Aspecte teoretice Aplicaţii rezolvate...
SEMINAR GRINZI CU ZĂBRELE METODA IZOLĂRII NODURILOR CUPRINS. Grinzi cu zăbrele Metoda izolării nodurilor... Cuprins... Introducere..... Aspecte teoretice..... Aplicaţii rezolvate.... Grinzi cu zăbrele
TEMA 9: FUNCȚII DE MAI MULTE VARIABILE. Obiective:
TEMA 9: FUNCȚII DE MAI MULTE VARIABILE 77 TEMA 9: FUNCȚII DE MAI MULTE VARIABILE Obiective: Deiirea pricipalelor proprietăţi matematice ale ucţiilor de mai multe variabile Aalia ucţiilor de utilitate şi
Definiţia generală Cazul 1. Elipsa şi hiperbola Cercul Cazul 2. Parabola Reprezentari parametrice ale conicelor Tangente la conice
1 Conice pe ecuaţii reduse 2 Conice pe ecuaţii reduse Definiţie Numim conica locul geometric al punctelor din plan pentru care raportul distantelor la un punct fix F şi la o dreaptă fixă (D) este o constantă
VII.2. PROBLEME REZOLVATE
Teoria Circuitelor Electrice Aplicaţii V PROBEME REOVATE R7 În circuitul din fiura 7R se cunosc: R e t 0 sint [V] C C t 0 sint [A] Se cer: a rezolvarea circuitului cu metoda teoremelor Kirchhoff; rezolvarea
Activitatea A5. Introducerea unor module specifice de pregătire a studenţilor în vederea asigurării de şanse egale
Investeşte în oameni! FONDUL SOCIAL EUROPEAN Programul Operaţional Sectorial pentru Dezvoltarea Resurselor Umane 2007 2013 Axa prioritară nr. 1 Educaţiaşiformareaprofesionalăînsprijinulcreşteriieconomiceşidezvoltăriisocietăţiibazatepecunoaştere
Realizat de: Ing. mast. Pintilie Lucian Nicolae Pentru disciplina: Sisteme de calcul în timp real Adresă de
Teorema lui Nyquist Shannon - Demonstrație Evidențierea conceptului de timp de eșantionare sau frecvență de eșantionare (eng. sample time or sample frequency) IPOTEZĂ: DE CE TIMPUL DE EȘANTIONARE (SAU
Analiza funcționării și proiectarea unui stabilizator de tensiune continuă realizat cu o diodă Zener
Analiza funcționării și proiectarea unui stabilizator de tensiune continuă realizat cu o diodă Zener 1 Caracteristica statică a unei diode Zener În cadranul, dioda Zener (DZ) se comportă ca o diodă redresoare
3. Momentul forţei în raport cu un punct...1 Cuprins...1 Introducere Aspecte teoretice Aplicaţii rezolvate...4
SEMINAR 3 MMENTUL FRŢEI ÎN RAPRT CU UN PUNCT CUPRINS 3. Momentul forţei în raport cu un punct...1 Cuprins...1 Introducere...1 3.1. Aspecte teoretice...2 3.2. Aplicaţii rezolvate...4 3. Momentul forţei
Sortare. 29 martie Utilizarea şi programarea calculatoarelor. Curs 16
Sortare 29 martie 2005 Sortare 2 Sortarea. Generalitǎţi Sortarea = aranjarea unei liste de obiecte dupǎ o relaţie de ordine datǎ (ex.: pentru numere, ordine lexicograficǎ pt. şiruri, etc.) una din clasele
TAD Stiva (STACK) Observaţii: 1. sunt aşezate ordonat unele peste altele. Un element nou se adaugă în stivă deasupra elementului cel mai recent
TAD Stiva (STACK) Observaţii: 1. În limbajul uzual cuvântul stivă referă o grămadă în care elementele constitutive sunt aşezate ordonat unele peste altele. Un element nou se adaugă în stivă deasupra elementului
Capitolul 4. Integrale improprii Integrale cu limite de integrare infinite
Capitolul 4 Integrale improprii 7-8 În cadrul studiului integrabilităţii iemann a unei funcţii s-au evidenţiat douăcondiţii esenţiale:. funcţia :[ ] este definită peintervalînchis şi mărginit (interval
Metode Runge-Kutta. 18 ianuarie Probleme scalare, pas constant. Dorim să aproximăm soluţia problemei Cauchy
Metode Runge-Kutta Radu T. Trîmbiţaş 8 ianuarie 7 Probleme scalare, pas constant Dorim să aproximăm soluţia problemei Cauchy y (t) = f(t, y), a t b, y(a) = α. pe o grilă uniformă de (N + )-puncte din [a,
* K. toate K. circuitului. portile. Considerând această sumă pentru toate rezistoarele 2. = sl I K I K. toate rez. Pentru o bobină: U * toate I K K 1
FNCȚ DE ENERGE Fie un n-port care conține numai elemente paive de circuit: rezitoare dipolare, condenatoare dipolare și bobine cuplate. Conform teoremei lui Tellegen n * = * toate toate laturile portile
5.1. Noţiuni introductive
ursul 13 aitolul 5. Soluţii 5.1. oţiuni introductive Soluţiile = aestecuri oogene de două sau ai ulte substanţe / coonente, ale căror articule nu se ot seara rin filtrare sau centrifugare. oonente: - Mediul