Sisteme Avansate de Operare Protocoale de sincronizare pentru
- Slides: 36
Sisteme Avansate de Operare Protocoale de sincronizare pentru scheduling în sisteme embedded multicore în timp real STUDENT: STEFAN MIRUNA – MASTER IISC PROFESOR COORDONATOR: STANCESCU STEFAN
Context Multi – core Embedded – Dedicat Real-time MULTICORE • Putere de calcul • Reducere consumului de energie • High performance
Real Time Sisteme critice Deschise și Dinamice Hard & Soft RT
Resurse Acces simultan, coocurent; paralelism Lock-based: excludere mutuală – mutex Lock-free: starvation … wait-free? • Cu suspendare • Busy-wait Spin-lock Tranzactional memory - atomicitate
Protocolul de acces la resurse Set de reguli conform căruia SO: Gestionează task-urile blocate. Decide comportamentul la blocare Decide maniera de ordonare a listelor de task-uri blocate/ suspendate Face modificări de prioritate ale task-urilor în funcție de starea lor Offline: trebuie poată fi evaluat correct Calități necesare: robustețe, securitate și siguranță Scopuri: minimizarea inversiunilor de prioritate și evitarea deadlock-urilor
Principalele Probleme Inversiunile de prioritate: un task cu prioritate mare nu poate executa din cauza unui task nepreemptibil cu prioritate mai mică caredeține resursa Deadlock: măcar două task-uri/fire de execuție își neagă reciproc și infinit accesul la resurse
Solicitări de acces Preemptibil - Nepreemptibil Nested -> Proper-nesting Outermost & Innermost
Tipuri de scheduling Planificarea partiționată: unul fiecare nucleu are o coadă de așteptare proprie, independentă, gestionată de un algoritm pentru uniprocesoare. Planificarea globală: o singură coadă pentru toate nucleele => task-urile pot migra de pe un procesor pe altul. Stabilirea priorității – EDF (Earliest Deadline First) P-EDF & G-EDF Problema: La suprasolicitări nu se poate estima/limita numărul de task-uri care își vor depăși deadline-urile
Priority Ceiling Protocols • M-PCP • D-PCP • OSECK-PCP
M-PCP și D-PCP M-PCP (Multiprocessor Priority Ceiling Protocol) – semafor global D-PCP (Distributed Priority Ceiling Protocol) – alocă resursele procesoarelor P-SP - partitioned static-priority EDF Performanțe practice foarte slabe Limitarea nesting-ului
D-PCP
M-PCP Se bazează pe memoria comună Solicitările la o anumită resursă sunt satisfăcute în ordinea priorităților Job-urile care deja dețin resurse execută cu prioritate mai mare decât orice task normal
OSEK-PCP Utilizează semafoare Toate semafoarele sunt binare – permite scrierea Semafoare de numărare - scriere-citire (task-fair) Semafoarele de numărare reduc overhead-ul de sincronizare Utilizat modelul resurselor scurte cu busy-waiting => deadlock free, diferența principală dintre OSK-PCP și acesta și lucrul cu priorități statice.
FMLP – Flexbile Multiprocessor Locking Protocol • Flexibil: globa & partiționat • Gruparea resurselor
GSN-EDF pentru FMLP GSN-EDF: Un job poate fi blocat de un alt job nepreemptibil doar când acesta este La momentul de timp t eliberat sau reluat. Durata unui astfel de - m job-uri m joburi pot rula eveniment limitată rezonabile executabile simultan Task legat dar Un task este Job-urile sunt legate la procesoare și pot fi -Primele m job-uri printre cele mai *q nepreemptibile neprogramat = prioritare m Blocat dezlegate prioritare legate la *m-q rest La terminarea blocării nepreemptibile taskul va fi programat sau dezlegat procesoare executabile nu nepreemptibil rulează *continuu Este blocat Nu este legat & nu nepreemptibil este programat = Nu este prioritar
FMLP – Gruparea Resurselor Scurte: Spin-lock în mod nepreemptibil FIFO Lungi: Suspendarea (semafor) - Preemptibil FIFO Moștenirea priotității task-urilor blocate Stabilit de utilizator Group-lock
GSN-EDF cu FMLP T 2 T 3 Migrările sunt posibile Se evită migrări inutile Task-uri Procesoare T 1 k L T 2 T 3 q Se îmbunătățește eficiența
Deadlock FREE T 5 T 1 T 4 T 2 T 3 Fiecare verigă este blocată pe o resursă din grupul deținut de job-ul următor din lanț Scurte(scurte) /Lungi(lungi) Lungi(scurte) Scurte(lungi) Blocaj pe resurse scurte deținute de. . . ?
FMLP FIFO Resurse Lungi Resurse Scurte
Comparație M-PCP, D-PCP și FMLP pentru resurse scurte ș lungi Capacitatea de planificare corectă în funcție de (stânga) lungimea secțiunii critice (L) și (dreapta) numărul de accesări ale resursei per job. Regimul experimental este de grad mic de împărțire a resurselor pe 4 procesoare
Comparație M-PCP, D-PCP și FMLP pentru resurse scurte și lungi Capacitatea de planificare corectă în funcție de (stânga) procentul de utilizare a procesorului (dreapta) și numărul de procesoare. Regimul experimental este de grad mic de împărțire a resurselor pe 4 procesoare
PWLP – Preemptable Waiting Locking Protocol Permite preemptarea task-urilor de prioritate inferioară de către cele cu prioritate mai mare în perioade de busy-wait
PWLP FMLP PWLP
FMLP vs. PWLP FMLP short PWLP
PWLP (Vs. FMLP) Dealock-free (nesting acceptat) Limitează perioadele de inversiuni de priorități la durata secțiunilor critice Vs. FMLP Task-urile cu importante cu priorități ridicate programabile cu succes conform ambelor strategii. PWLP = preemptarea în busy-wait=> greșește față de deadline-urile îndepărtate (prioritate mică) FMLP = în ordinea în care emit cererile pentru resurse => task-urile cu deadline-uri apropiate sunt întârziate
Comparație PWLP – FMLP pt grad de sharing mic • K este numărul de accesări/resursă • Succes constant de aproape 100% în respectarea deadline-urilor
Comparație PWLP – FMLP pt grad de sharing f mare • • 8 resurse împărțite (stânga) și doar 2 resurse împărțite(dreapta) K este numărul de accesări/resursă
IZOLARE TEMPORALĂ M-BWI - Multiprocessor Bandwidth Inheritance Mechanism • „Ambalarea” task-urilor servere • Fiecare task este protejat de celelalte • Rezervare de resurse • Moștenirea priorității
SERVER Busy-Wait Prioritate, Perioadă Moștenirea bugetului Buget Moștenirea priorităților Job-urile pot executa în servere străine Schedulable Servește un task Se consuma la execuție Întodeauna pozitiv Impune deadline-uri job-urilor Relația task-server!
M-BWI
M-BWI FIFO
M-BWI - Teoreme Dacă M-BWI este folosit drept un protocol de acces la resurse, un task nu execută niciodată pe ai mult de un server la un moment de timp. În aceste condiții corecte de mediu, serverul aflat în execuție are întotdeauna exact un task ne-blocat pe care să îl servească și nu ajunge niciodată în starea „idle”. Dacă considerăm un set de rezervații de resurse partajate care este planificabil pe un sistem care folosește M-BWI ca protocol de acces la resurse atunci toate serverele își vor respecta deadline-urile. OBS: Să nu se acceseze resurse din afara M-BWI
M-BWI vs FMLP 4 procesoare, 16 taskuri & resurse , utilizare totală 1. 6 8 procesoare, 32 taskuri & resurse , utilizare totală 3. 2
Concluzii • Evoluție • Condiționat de aplicație • Multi & Many Core
Vă mulțumesc pentru atenție !!! ÎNTREBĂRI?
- Comunicarea cu pacientul dificil
- Curs sisteme de operare
- Curs sisteme de operare
- Curs sisteme de operare
- Folosind figura de mai jos completati spatiile punctate
- Ce inseamna protocol
- Protocoale de comunicatie
- Rutare statica
- Sistemul de operare este un ansamblu de
- Elemente de interfata ale unui sistem de operare
- Ciprian palaghianu
- Marimea liniara
- Tipuri de sisteme de calcul
- Sisteme informatice in asistenta primara
- Metoda matriceala exemple
- Uvod u informacione sisteme fon
- Solutii crm
- Scrierea si citirea numerelor naturale
- Structura sistemelor de calcul
- Sisteme de actionare hidraulica
- Scripetele compus
- Evidena
- Sisteme distribuite
- Tipuri de roboti
- Sisteme flexibile de fabricatie
- Sisteme electorale
- Sisteme electro-hidropneumatice
- Sistem adaptiv complex
- Sisteme erp
- Asociatii de lentile subtiri
- Lentila covergenta
- Sisteme de automatizare curs
- Parameci structura
- Sistem optic centrat
- Ebelge tobb
- Kempf-sisteme
- Sisteme politice contemporane