Prezentarea se încărcă. Vă rugăm să așteptați

Prezentarea se încărcă. Vă rugăm să așteptați

Sisteme de operare în timp real Contiki

Prezentări similare


Prezentarea pe tema: "Sisteme de operare în timp real Contiki"— Transcriere de prezentare:

1 Sisteme de operare în timp real Contiki
Dragoș Părăușanu Master IISC an I

2 Sisteme de operare în timp real
Tratarea unui eveniment într-un timp specificat Planificatorul de procese trebuie să aibă un comportament predictibil Consum redus de memorie Pentru sisteme embedded în general Putere slabă de procesare Memorie redusă Consum de energie foarte mic

3 Contiki RTOS + capabilități de networking: IPv6, IPv4, RPL, CoAP
Ocupă 10kB RAM și 30kB ROM Kernelul este bazat pe evenimente Capabil să răspundă la evenimente atunci când apar, în timp real Încărcarea dinamică a programelor

4 Procese - Contiki Procesele rulează în două moduri: co-operare și preemțiune Prin co-operare procesul rulează secvențial Prin preemțiune se oprește temporar procesul care rulează atunci când apare o întrerupere sau un timer în timp real Toate procesele rulează secvențial În timp real se tratează doar întreruperile și timere-le în timp real

5 Fig. 1 Contextele de planificare: cooperare și preemțiune
Rularea proceselor Fig. 1 Contextele de planificare: cooperare și preemțiune

6 Fig. 2 Strucutra unui proces
Structura unui proces Un proces este alcătuit dintr-un bloc de control și un fir de execuție RAM Bloc de control -Nume -Stare -Pointer la thread Thread-uri Cod Proces ROM Bloc de control Starea procesului Un pointer către threadul(rile) procesului Nume proces Este utlizat doar intern de către kernel Threadul În interior se rulează codul aplicației Este invocat de planificatorul de procese Fig. 2 Strucutra unui proces

7 Protothread-uri Sistemul de operare Contiki pune la dispoziție un tip de threaduri mai avansat Protothread Thread obișnuit cod cod eveniment Structurat codul astfel incat să permită sistemului sa ruleze alte activități cat timp codul asteaptă un eveniment cod eveniment cod Nu se blochează, doar așteaptă după un eveniment

8 Fig. 3 Tranzițiile valide între stări
Stările unui proces Un proces într-un sistem de operare RTOS are trei stări Rulează Blocat Pregătit Start Rulează. Cee ace îneasmnă că microprocesorul rulează instrucțiunile taskului respectiv Pregătit. Taskul este gata de execuție, dar alt task cu prioritate mai mare rulează deja Blocat. Taskul este oprit și nu va rula chiar dacă microprocesorul este disponibil Fig. 3 Tranzițiile valide între stări

9 Planificarea proceselor
Invocarea proceselor cand este rândul lor să ruleze Stabilirea ordinii de rulare a taskurilor În principiu evenimentele declanșează invocarea unui proces Evenimentul este pasat către proces cu un pointer daca evenimentul are și date asociate Odată ce procesul a fost pornit: Este pus pe lista de procese active ale kernelului Dacă există în listă deja se oprește a doua execuție

10 Planificarea proceselor
La boot se inițializează planificatorul în timp real Se obține timpul curent al modulului de planficare Se obține timpul la care a fost executat ultimul task Se execută urmatorul task și se planfică taskul care urmează, dacă există Această procedură este specifică fiecărei arhitecturi HW

11 Planificarea proceselor
Fig. 4 Execuția taskurilor într-un sistem de operare în timp real

12 Evenimente sincrone și asincrone
Proces A Proces B Coadă de evenimente Eveniment livrat Proces A Proces B Eveniment Evenimente sincorne sunt livrate imediat, ca apelul unei functii Procesul B este invocat indirect, iar procesul A este blocat până procesul B termină de prelucrat evenimentul Fig. 6 Evenimente sincrone Fig. 5 Evenimente asincrone

13 Structura unui proces Pentru fiecare eveniment asincron, kernelul trebuie să păstreze înformații suficiente Pointerul P al structura procesului destinatar poate lipsi dacă evenimentul este destinat tutror proceselor(broadcast) Câmp Descriere Ev Numărul evenimentului Data Pointer la datele asociate evenimentului P Pointer la structura procesului destinatar

14 Medii de dezvoltare pentru Contiki
Eclipse IDE C++ cu MingGW Microsoft Visual Studio IAR Workbench Contiki Instant IDE


Descărcați ppt "Sisteme de operare în timp real Contiki"

Prezentări similare


Publicitate de la Google