Curs cu pir despre un curs care este curs

Download Curs cu pir despre un curs care este curs

Post on 26-Jan-2016

250 views

Category:

Documents

25 download

Embed Size (px)

DESCRIPTION

acesta este un curs acest curs a fost pus aici pt a trage alt curs. multumim pt intelegere. la cererea voastra cursul poate fi dat jos bineinteles, doar nu l-am pus din scopuri bla bla bla kjlksj lkdjlkj skdkls klsj lks lsh jksh skj hjskl jsl jksjksjl

TRANSCRIPT

  • I. Noiuni introductive privind aplicaiile multi-tasking de timp real

    Sistem numeric: = hardware (resurse) + sistem de operare + aplicaie utilizator (rutine/metode)

    Sistem de timp real - un sistem care trebuie s rspund unor restricii de timp (RT) prestabilite

    RT cheia funcionalitilor dorite

    Ex: control proces, identificare online

    Aplicatie de timp real Aplicaie cu timp de execuie mic

  • - [timp] conteaz momentele de timp la care rezultatele sunt obinute!!

    - [real] rspuns la evenimentele externe pe msur ce acestea apar

    Exemple

    Control

    Monitorizare + alerte/decizii

  • Sistem de timp real

    o Hardware -ul asigura rspuns rapid la evenimente externe, sincronizare temporal, siguran

    o Aplicaia dezvoltat multitasking [procese modulare, cu prioriti diferite] + ISRuri

    o Sistemul de operare ofer anumite faciliti suplimentare accent pe rspuns rapid la evenimente externe, partajare resurse, executie multitasking (comutare de la un task la altul + planificare & alocare)

  • resurse

    o active: procesoare asigura execuia instruciunilor

    o pasive: periferice (DA, AD, PWM, numaratoare), linii de comunicatie, locatii memorie (variabile)

    +

    procese care lupta pentru ocuparea resurselor (implementate de programator)

    o Task = proces care implementeaza o anumita facilitate a aplicatiei

    o ISR = proces prin care se raspunde unei cereri de intreruperi lansata de un dispozitiv periferic

    +

    sistemul de operare de timp real asigura servicii pentru execuia proceselor i ocupare/eliberarea resurselor in sensul respectrii restrictiilor de timp

  • procesele trebuie s coopereze pentru a produce rezultate

    procesele lupta pentru ocuparea resurselor: algoritmi de planificare si alocare

    procesele ocupa pentru executie: - o resursa activa (procesor, server) cel putin - eventual anumite resurse pasive (memorie, etc)

    O resursa poate fi ocupata de un singur proces la un moment dat (acces exclusiv)

    Cedarea resursei unui alt proces mai prioritar: o resurse active - prin preemtare (unui alt task) sau

    intrerupere (unui ISR); o resurse pasive: acces preemtiv

  • Proces zona de memorie proprie pentru

    - cod executat - date folosite

    + - stare procesor (resursa activa): registri

    Fir (thread engl.) fara zona proprie de memorie

    Procese create dinamic/static

  • Diferente principale sistem timp real alte sisteme numerice

    Sistem timp real

    Alte sisteme numerice

    Planificare Planificarea taskurilor in sensul respectarii restrictiilor de timp

    Folosirea corect i eficient a resurselor

    Timp de rspuns Incalcarea unui deadline rezultatul nu este doar ntrziat, ci i greit

    timpii de rspuns s asigure respectarea restriciilor de timp pentru cazul cel mai nefavorabil

    Timpi de raspuns ct mai buni

    Suprancrcare Respectarea restriciilor de timp importante

    Comportare acceptabil

    [The Concise Handbookof Real-Time Systems, www.timesys.com]

  • T2 T1 T1T2 T2 T2T3 T3

    while(1){ if() operatii task 1 if() operatii task 2 etc }

    Motontasking

    while(1){

    }

    Multitasking

    ISR

    Task1

    ISR

    Task2 Task3

    Avantaje abordare multitasking: - Extensie simpla adaugare taskuri - Prioritati diferite - Temporizari & restrictii de timp mai

    flexibil de gestionat, independent pentru fiecare task

  • Executia multitasking solicit:

    Task1 .

    .

    .

    .

    Task 2

    ..

    SOTR

    Programator (+ servicii SOTR)

    Continuarea executiei procesului cu urmatoarea instructiune + gestionare corect a stivei/memoriei

    Logica nealterat, consistena date, sincronizare, etc.

    SOTR asigur comutarea corect de la un proces la altul (comutarea contextelor)

    Context task = coninut regitri procesor + adres de nceput task + stare task +adresa stivei iniiale + var. specifice ale SOTR

    Orice proces trebuie executat consistent, indiferent ce comutri ntre procese au loc

  • Din perspectiva programarii: Multitasking + folosire ISR

    Pot exista sectiuni critice:

    acces concurent la IO, variabile de memorie globale

    alte succesiuni de instructiuni ce trebuie nu trebuie fragmentate

    Poate exista secvente reentrante acelai cod executat pe instante diferite

    Din perspectiva dezvoltarii unui RTOS: RTOS - mod privilegiat

  • Faciliti uzuale oferite de un SOTR:

    asigur execuie multitasking: o creare-stergere taskuri o gestionare taskuri pe stri multiple o comutare ntre taskuri o arbitrare taskuri

    comunicare ntre taskuri

    partajare resurse pasive

    monitorizare executie

    +

    respectare restricii de timp arbitrare n sensul respectrii RT pe baz de prioriti

  • Tipuri RTOS in funcie de facilitaile oferite:

    planificare (scheduling) + control execuie (dispatcher)

    comunicare intertask + sincornizare

    acces protejat la memorie, servicii I/0

    fisiere, securitate, interfata utilizator

    microkernel

    kernel

    executiv

  • Clasificare RTOS/ n funcie de interfaarea cu aplicaia utilizator

    - monolitic o RTOS lucreaza in mod privilegiat, iar aplicatiile lucreaza in mod

    utilizator folosind apeluri la RTOS bazate pe trap o Executia aplicatiei in mod supervizor prin linkeditare cu RTOS

    (apel sistem apel functie)

    - stratificat o RTOS organizate pe module organizate ierahic

    Permite update simplu a unui modul Scalabilitate, portabilitate crescute

  • - bazat pe OS servere o Kernel minimal:

    asigura comunicare securizata si operatii sistem critce (accesare registri IO)

    functii ale RTOS sunt mutate in procese de tip OS server ce ruleaza in mod utilizator si comunica prin mesaje.

    o modularitate, extensie fireasca catre sisteme distribuite o eroare la un server SO nu devine fatala

    Probleme: o Consum resurse pe comunicare o Dificultati in gestionarea comunicarii o Tratarea ISR - cereri transmise prin mesaje si

    tratate in mod user prin interrupt service task (implica comutari de context intre taskuri)

  • Ocuparea resurselor active/pasive este tratat distinct de SOTR:

    i). Ocuparea resurselor active (procesoare):

    Caz multiprocesor planificare si alocare >> procese concurente CAND (planificare) i UNDE (alocare) se execut taskurile (procesoarele vor comunica prin mesaje sau zone partajate de memorie) Caz nedetaliat n curs!!!!!!

    Caz monoprocesor - planificare: CAND se execut taskurile

    o pentru taskuri exista un arbitru care decide ce task preia procesorul: planificatorul (componenta a SOTR);

    o pentru ISR arbitrul este de obicei un controller hard, nu o componenta a SOTR.

  • ii). Ocuparea resurselor pasive:

    Resurse pasive = zone de memorie, dispozitive periferice, etc

    Resursele sunt partajabile intre procese!!!!

    o Un proces care ocupa resursa trebuie s i poat finaliza n timp finit operaiile, fr a pierde consistena datelor

    o Un proces mai puin prioritar nu trebuie s ntrzie un alt proces mai prioritar la primirea resursei (inversare de prioritate)

    o Procesele nu trebuie s se blocheze n ateptarea resurselor (deadlock)

    Proces 1

    ..............

    Setez mod de lucru 1 Folosesc resursa pe mod 1 ........................

    Proces 2

    ..............

    Setez mod de lucru 2 Folosesc resursa pe mod 2 ........................

  • I.1. Detalii despre ocuparea resurselor active in SOTR

    I. 1. 1. Clasificare taskuri

    1) dup mod activare

    o periodice, deterministe activate cu regularitate la fiecare activare: citesc stare sistem, execut calcule, trimit comenzi

    de afiare-modificare stare sistem Ex: aviaie - ajustarea poziiei supapei rezervorului de combustibil n funcie de puterea solicitat; automobilism verificare blocare roi; achiziie date; control periodic; refresh DRAM.

    o aperiodice activate cnd anumite evenimente au loc pot fi critice (cu deadline ferm - sporadice) sau obinuite (fr

    deadline ferm - aperiodice) Ex: reconfigurarea sistemului de control atunci cnd anumite anomalii sunt detectate; operaii de ntreinere; nregistrare de evenimente.

  • 2) dup importan o critice hard deadline - uzual : periodice o eseniale deadline ferm, important o neeseniale deadline-ul poate fi nclcat fr efecte imediate

    (software deadline)

    necesitate considerare prioriti pentru taskuri

  • I. 1. 2. Starile posibile ale unui task

    in asteptare (waiting)

    Se termina de executat

    in curs de executie (running)

    Evenimentul asteptat a avut loc

    pregatita pentru executie (ready)

    Cere asteptarea unui eveniment

    suspendata

    activata

    Primeste procesorul

    (start)

    Pierde procesorul

    (preempt)

    Pot exista diferente intre SOTR cu privire la modul de trecere del a o stare la alta sau denumirea strii

  • I. 1. 3. Moduri execuie a taskurilor

    o preemtiv

    un proces poate ceda procesorul altui proces atunci cand planificatorul decide acest lucru, fr a i se cere acordul:

    in executie ready

    T1

    in executie

    suspendat in executie

    suspendat

    activare T1 Terminare T1

    T2

    v

    in executie ready

    T1

    in executie

    suspendat in executie

    suspendat

    activare T1 Terminare T1

    T2

    v