Sisteme Avansate de Operare Protocoale de sincronizare pentru

  • Slides: 36
Download presentation
Sisteme Avansate de Operare Protocoale de sincronizare pentru scheduling în sisteme embedded multicore în

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 •

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

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?

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.

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

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

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,

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

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

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

D-PCP

M-PCP Se bazează pe memoria comună Solicitările la o anumită resursă sunt satisfăcute în

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 -

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

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

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) -

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

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ă

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

FMLP FIFO Resurse Lungi Resurse Scurte

Comparație M-PCP, D-PCP și FMLP pentru resurse scurte ș lungi Capacitatea de planificare corectă

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ă

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

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

PWLP FMLP PWLP

FMLP vs. PWLP FMLP short PWLP

FMLP vs. PWLP FMLP short PWLP

PWLP (Vs. FMLP) Dealock-free (nesting acceptat) Limitează perioadele de inversiuni de priorități la durata

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

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

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

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

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

M-BWI FIFO

M-BWI FIFO

M-BWI - Teoreme Dacă M-BWI este folosit drept un protocol de acces la resurse,

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

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

Concluzii • Evoluție • Condiționat de aplicație • Multi & Many Core

Vă mulțumesc pentru atenție !!! ÎNTREBĂRI?

Vă mulțumesc pentru atenție !!! ÎNTREBĂRI?