Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
Atribute temporare ale task-urilor in sisteme T. R.
Task-ul reprezenta elementul structural de baza al unui sistem timp-real. In sistemele timp real, doua caracteristici ale task-urilor sunt considerate foarte importante: importanta task-ului (cit de critic este) respectiv proprietatile temporale. Importanta unui task este o problema subiectiva pe cind proprietatile temporale sunt obiective (cel putin valorile sunt obiective, chiar daca au fost motivate de motivarea acestora este subiectiva).
Task-urile pot fi atit periodice cit si
periodice. Un task periodic este activat la momente fixe, regulate de timp.
Perioada acestuia se defineste ca fiind intervalul de timp intre doua activari
consecutive. Exemple tipice detask-uri periodice sunt task-uri pentru controlul
in bucla inchisa, monitorizare date sau actualizarea afisarii. Un task este
aperiodic daca este activat de un eveniment particular si reprezinta o operatie
singulara
(one-shot). Operatii ca detectarea alarmelor sunt task-uri aperiodice.
Atributele temporale esentiale ale task-urilor sunt urmatoarele:
timpul de deadline tdead(task), reprezentind timpul pina la care executia task-ului trebuie sa se incheie in mod obligatoriu
durata actuala sau timpul de executie tC(task,x) , reprezentind numarul de unitati de timp necesare din momentul in care task-ul este declansat pina in momentul cind aceasta se termina pentru setul de date de intare x
durata minima tmin(task) , reprezentind cel mai mic interval de timp necesar terminarii task-ului, masurat asupra tuturor datelor de intrare posibile
timpul de executie in cazul cel mai defavorabil tWCET(task), reprezentind cel mai lung timp necesar terminarii task-ului in conditii de incarcare maxima si defectiuni, masurat asupra tuturor posibilitatilor datelor de intrare
timpul de jitter, reprezentind diferenta intre timpul de executie in cazul cel mai defavorabil si durata minima, tWCET(task) - tmin(task)
perioada task-ului tPer - in cazul task-urilor periodice, reprezentind intervalul de timp dintre doua activari consecutive ale task-ului periodic
tW - timpul de asteptare al task-ului din momentul in care acesta este pregatit si pina intra efectiv in executie
Ilustrarea atributelor temporale ale task-urilor este realizata in Figura 1.2
a) task aperiodic b) task periodic
Figura 1.2: Atributele temporale ale task-urilor
Problema determinarii acestor timpi pentru task-urile din cadrul unui sistem timp real este esentiala. Dupa cum se observa de mai sus, durata actuala a unui task care ruleaza pe o anumita masina cu setul de date de intrare x, este data de parametrul tc(task,x). In general, daca nu exista puncte de sincronizare cu alte task-uri in cadrul unui task, acesta isi poate continua executia pina la sfirsit; in acest caz timpul de executie poate fi determinat in mod izolat deoarece acesta nu depinde in mod direct de modul de executie al altor task-uri. In caz contrar, timpul de executie pentru cazul cel mai defavorabil tWCET reprezinta o problema globala a sistemului si estimarea acestuia nu este intotdeauna posibila.
Garantarea deadline-ului pentru o tranzactie in timp real poate fi realizata numai in cazul in care timpii de executie pentru cazul cel mai defavorabil tWCET pentru toate task-urile care sunt parte a tranzactiei sunt cunoscuti dinainte. Acesti timpi trebuie de asemenea sa fie valabili pentru toate datele de intrare si pentru toate scenariile de executie posibile. In plus, mai trebuie luati in considerare si intirzierile de ordin administrativ, WCAO (descris la cap. 1.3.5), cauzate de schimbari de context, planificare, reincarcarea cache-ului sau DMA.
Astfel, pentru un task simplu, care ruleaza pe un hardware dedicat, fara preemtiune si fara a necesita serviciile sistemului de operare, tWCET depinde in principal de urmatorii factori:
codul sursa al task-ului
proprietatile codului obiect generat de compilator
caracteristicile hardware pe care ruleaza
In prezent, stabilirea prin metode analitice de calcul a timpului tWCET pentru un astfel de task simplu, poate fi realizata numai in anumite conditii restrictive. De exemplu, referitor la codul sursa al task-ului, in cazul utilizarii unui limbaj de nivel inalt trebuie sa fie posibil sa se evalueze timpul maxim de executie pentru toate constructiile de limbaj; acest lucru s-ar putea realiza numai in absenta apelurilor recursive, a ciclurilor nelimitate (de tip while, repeat, do) si a structurilor de date dinamice.
De asemenea, compilatorul trebuie sa includa anumite informatii specifice aplicatiei in cadrul codului obiect pentru ca analiza WCET a codului sa fie posibila. In ceea ce priveste insa task-urile complexe, care se sincronizeaza cu alte task-uri si care pot fi intrerupte, o analiza WCET a acestora este in practic imposibil de realizat.
Totusi, intrucit stabilirea anumitelor limite pentru WCET este absolut necesara in aplicatiile practice, acesta problema importanta este in prezent realizata prin combinarea a diverse tehnici in diferitele faze de dezvoltare a aplicatiei. Cele mai importante se refera la testarea unei implementari pentru a obtine date experimentale asupra timpilor WCET; in final, testarea exhaustiva a implementarii finale va valida (eventual) presupunerile anterioare si va stabili marginea de siguranta intre timpii WCET presupusi si cei masurati.
Pe linga determinarea WCET, o alta caracteristica temporala, si anume frecventa activarilor unei anumite actiuni per unitatea de timp, trebuie avuta in vedere in procesul de proiectare a unei aplicatii timp real. Aceasta deoarece fiecare resursa din cadrul sistemului are o capacitate finita determinata de parametri acesteia; aceasta poate sa-si indeplineasca cu succes obligatiile din punct de vedere temporal numai daca frecventa activarilor resursei respective se afla sub un control strict. In vederea evitarii pe cit posibil a incarcarii excesive a modelului exista insa si o serie de aspecte care nu este necesar sa fie incluse in modelul creat. Dintre acestea, cele mai semnificative se refera la detalii de reprezentare a datelor, modul efectiv de implementare a algoritmilor de control si de transformare a datelor, etc.
Cerinte hardware pentru apl TR calculatoare specializate, controlere programabile
Un calculator conventional este compus din 3 componente de baza: unitatea centrala (UC), memoria si sistemul de intrari/iesiri (I/O), conectate printr-o magistrala care include magistrala de date respectiv de adrese. O diagrama simplificata a unui calculator conventional este prezentata in Figura 3.1:
Figura 3.1: Diagrama simplificata a unui calculator conventional
O buna intelegere a hardware-ului care sta la baza unui sistem timp real poate conduce la o mai eficienta utilizare a resurselor existente. Chiar daca in teoriile actuale tendinta este aceea de a izola programele de hardware-ul pe care ruleaza, considerente practice rezultate din implementarea sistemelor timp real actuale au certificat faptul ca acest lucru este practic imposibil de atins.
Astfel, performanta generala a unui sistem timp-real este in general influentata din punct de vedere hardware de o serie de factori:
factori care influenteaza performanta unitatatii centrale
factori care influenteaza performanta memoriei
factori care influenteaza performanta sistemului de I/O
Avind in vedere cerintele enumerate mai sus, pentru controlul proceselor industriale complexe, au fost dezvoltate in ultimii ani sisteme speciale de calculatoare cunoscute sub numele de Controller-e Programabile (Programmable Logic Controller - PLC ), care permit realizarea unor sisteme de control industrial integrate, complexe, si care sa corespunda cerintelor functionale tot mai crescinde. Acestea sunt proiectate sa opereze in medii industriale, cu tot ceea ce implica acestea din punct de vedere al temperaturii, umiditatii, zgomotelor si vibratiilor. Termenul de sisteme de calculatoare utilizat mai sus provine de la ideea ca, pe linga calculatorul propriu-zis (PLC-ul), producatorii furnizeaza si o serie de alte echipamente complementare, in scopul minimizarii la maximum a costurilor asociate dispozitivelor si operatiilor de interfatare.
Exista in prezent o multitudine de firme producatoare de astfel de PLC-uri, dintre care cele mai reprezentative in domeniu sunt:
Allen Bradley - PLC-2, PLC-3, PLC-5, SLC-500
Siemens - Sinec1, Sinec2
AEG Modicon - 184, 384, 484, 584, 884, 984
Texas Instruments - TI325, TI330, etc.
Din punct de vedere al arhitecturii, PLC-urile sunt o categorie speciala de calculatoare utilizata pentru controlul operarii proceselor prin intermediul unui program memorat si utilizind in acelasi timp feedback-ul primit de la dispozitivele de I/O. Este alcatuit in principal din doua parti: unitatea centrala si interfata pentru I/O, prin intermediul careia controller-ul este legat la diversele dispozitive si senzori exteriori acestuia (Figura 3.8). Intrucit arhitectura PLC-urilor precum si modul de operare al acestora difera destul de mult fata de calculatoarele conventionale, vom prezenta in continuare citeva elemente caracteristice in acet sens.
Figura 3.8: Structura hardware a unui PLC (Programmable Logic Controller )
Astfel, procesorul realizeaza toate operatiile matematice si prelucrarile de date prin executia unei colectii de programe din memorie. In general, aceasta colectie consta din programe supervizor, care se afla permanent in memorie si programe de aplicatie. Programul supervizor, sau executivul, permite realizarea comunicarii cu procesorul via un dispozitiv de programare sau alt periferic, managementul memoriei, monitorizarea I/O, diagnosticarea defectiunilor hard si executia programelor utilizator. Organizarea memoriei precum si modul in care programele de aplicatie sunt executate sub controlul executivului sunt doua caracteristici care disting PLC-urile de calculatoarele obisnuite.
Memoria - toate PLC-urile au memorie alocata pentru executiv, pentru zona de lucru procesor, pentru tabela de date si pentru programul de aplicatie. Instructiunile si toate datele utilizate de procesor pentru realizarea functiei de control sunt memorate in zona de memorie pentru programul de aplicatie respectiv zona de memorie pentru tabela de date, care impreuna formeaza zona de memorie destinata aplicatiei. Fiecare controller are o cantitate maxima de memorie destinata aplicatiilor, care este parte a memoriei totale specificata pentru controller. Tabela de date este in mod functional divizata in parti separate pentru intrari digitale (Input Table), iesiri digitale (Output Table), tabela interna de biti (flag-uri) precum si zona de memorie pentru registri utilizata pentru memorarea valorilor numerice analogice.
Tabela pentru intrari digitale consta un sir de biti in care se memoreaza starea fiecarei intrari digitale care este conectata catre sistemul de I/O. Tabela pentru iesiri digitale la rindul ei consta dintr-un sir de biti prin intemediul carora se controleaza iesirile conectate la sistemul de I/O. Tabela interna de biti (flag-uri) reprezinta zona de memorie alocata pentru variabilele binare utilizate in cadrul programului de aplicatie. Zona de memorie pentru registri (Storage registers Area) este utilizata pentru memorarea valorilor numerice care pot fi de trei categorii: de intrare (registri de intrare), de iesire (registri de iesire) si respectiv registri interni, utilizati pentru memorarea diferitelor valori numerice in cadrul programului de aplicatie
Interfata pentru I/O reprezinta sistemul prin intermediul caruia diversele dispozitive externe (senzori, actuatori, etc.) sunt conectate la controller. Scopul ei este acela de a realiza conditionarea diferitelor semnale transmise catre actuatori respectiv receptionate dinspre senzori. Prin intermediul acestei interfete, unitatea centrala poate sesiza stari si/sau masura diverse marimi din cadrul procesului controlat: pozitii, niveluri, temperaturi, presiuni, tensiuni, curenti, etc. Pe baza acestora pot fi generate comenzi pentru controlul diferitelor dispozitive, ca de exemplu valve, motoare, pompe, etc., sau pentru semnalarea si/sau tratarea alarmelor:
interfata de I/O digitala (discreta) - reprezinta cel mai uzual tip de interfata de I/O. Aceasta se utilizeaza pentru conectarea dispozitivelor care transmit sau primesc semnale de tip boolean;
interfata de I/O analogica (numerica) - spre deosebire de cea discreta, permite transmiterea respectiv receptionarea semnalelor pe mai multi biti, fie sub forma paralela (BCD), fie seriala, sub forma unui tren de pulsuri. In principiu, grupul de biti transmis sau receptionat consta din reprezentarea digitala a unei cantitati analogice.
Cantitatea maxima de semnale de I/O, si implicit a numarului de dispozitive de I/O conectate pentru un anumit tip de controller este dependenta de cantitatea de memorie asociata tabelei de date. Astfel, pentru cazul sistemelor de control timp real de o complexitate mare, care interactioneaza cu un numar mare de de dispozitive de I/O (de ordinul sutelor), utilizarea unui singur controller nu este in cele mai multe cazuri suficienta, datorita numarului relativ mare de semnale de I/O de prelucrat. In aceasta situatie se vor utiliza mai multe controller-e legate in retea. O astfel de abordare este benefica si din punctul de vedere al timpului de procesare: se obtine astfel reducerea acestuia prin impartirea incarcarii aplicatiei in mai multe task-uri si asignarea acestora pe mai multe procesoare.
Modul de operare al programului din PLC este urmatorul: cind sistemul porneste, se initiaza executia programului executiv. In cadrul acestuia procesorul citeste toate intrarile, memoreaza valorile acestora in tabela de date corespunzatoare, asociata imaginii intrarilor, si apoi se lanseaza programul de aplicatie. Rezultatele generate in decursul executiei aplicatiei sunt memorate in tabela de date asociata imaginii iesirilor. In momentul terminarii aplicatiei, procesorul actualizeaza toate iesirile PLC-ului pe baza tabelei de date asociate acestora. Procesul de citire a intrarilor, executarii programului si actualizarii iesirilor este cunoscut sub denumirea de proces de scanare, iar timpul necesar realizarii acestuia este cunoscut sub denumirea de timp de scanare (scan time). Toti producatorii de PLC-uri furnizeaza o valoare pentru acest timp, de obicei sub forma timpului maxim ce corespunde fiecarui 1K de program.
In consecinta, ca si modalitate de operare, programul din PLC nu citeste intrarile pe masura ce acestea apar in program, deoarece aceasta ar fi o risipa de timp, ci deodata, la inceputul buclei de scanare. Acestea sunt apoi stocate in memorie, creindu-se asa numita imagine a intrarilor (Figura 3.9). Atunci cind programul are nevoie de valoarea unei anumite intrari, o citeste de la locatia corespunzatoare imaginii sale din memorie, la valoarea pe care aceasta a avut-o la inceputul perioadei de scanare curente.
Figura 3.9: Perioada de scanare si organizarea memoriei in PLC
In mod analog se trateaza si iesirile: acestea nu se schimba instantaneu ci numai dupa ce zona de memorie corespunzatoare imaginii acestora este schimbata de program. La sfirsitul perioadei de scanare toate iesirile sunt actualizate simultan. Trebuie mentionat aici ca, in general, producatorii de PLC-uri, furnizeaza facilitati pentru a reduce pe cit posibil influenta perioadei de scanare: tipice in acest sens sunt modulele de I/O de mare viteza precum si posibilitatea de a sectiona un program in parti care sa utilizeze perioade de scanare diferite. Utilizarea sau nu a acestor facilitati sunt aspecte care trebuiesc decise in cadrul procesului de proiectare, functie de cerintele aplicatiei de control propriu-zise. In plus, datorita faptului ca aceasta metoda bazata pe scanare periodica poate fi necorespunzatoare in aplicatiile care necesita citirea unor intrari foarte rapide, unele PLC-uri furnizeaza instructiuni software care permit intreruperea scanarii continue in scopul citirii imediate a unei intrari si actualizarii imediate iesirilor corespunzatoare.
Alocarea si planificarea in timp real - Algoritmi de planificare (alg monotonic
rate-monotonic - in cadrul acesteia fiecarui task i se asociaza o prioritate functie de perioada acestuia (static!), task-ul cu perioada cea mai scurta fiind cel mai prioritar. Algoritmul de planificare rate-monotonic se bazeaza pe citeva presupuneri:
toate task-urile se considera a fi periodice si independente (de exemplu, nu exista relatii de precedenta intre task-uri)
toate task-urile au importanta egala
deadline-ul unui task se considera a fi perioada acestuia
task-urile care nu sunt periodice nu au deadline-uri hard
Unul din avantajele pretinse ale algoritmului rate-monotonic este acela ca se poate obtine o rata relativ ridicata a utilizarii procesorului indeplinind totodata si constringerile impuse (deadline). Astfel, s-a demonstrat ca, atita timp cit utilizarea procesorului ramine sub un anumit nivel, algoritmul de planificare poate asigura respectarea deadline-urilor pentru toate task-urile, conditie esentiala pentru STR. Utilizarea maxima permisa a procesorului pina la care se poate asigura acest lucru poate fi calculata cu formula:
unde TWCETi = timpul de executie pentru cazul cel mai defavorabil WCET al task-ului i, fi = frecventa task-ului i, n = numarul de task-uri de planificat. U obtinut in acest caz reprezinta limita atinsa pentru utilizarea procesorului pentru cazul cel mai defavorabil, si valoarea acestuia creste monoton de la 0.83 pentru n=2 catre 0.693 cind n tinde la infinit.
Daca gradul de utilizare al procesorului satisface relatia
de mai sus, procesele sunt planificabile utilizind algoritmul
rate-monotonic. Un exemplu de procese planificabile utilizind algoritmul
rate-monotonic este prezentat in Figura
6.9.
Figura 6.9: Task-urile A, B, C planificate conform algoritmului rate-monotonic
Astfel, se observa ca avem trei task-uri, A, B, C, cu urmatoarele caracteristici:
timpul de executie al task-ului A, CA = 6ms, perioada task-ului A TA = 20ms
timpul de executie al task-ului B, CB = 6ms, perioada task-ului B TB = 40ms
timpul de executie al task-ului C, CC = 8ms, perioada task-ului C TC = 80ms
Pe baza acestor elemente, se poate calcula frecventa de executie a task-urilor, respectiv:
Planificabilitatea acestui set de task-uri este estimata conform formulei:
In concluzie, task-urile sunt planificabile conform algoritmului rate-monotonic.
Se observa ca formula din relatia de mai
sus este destul de pesimista; daca insa relatia intre perioadele task-urilor
este favorabila, un grad mai mare de utilizare poate fi acceptat. De exemplu,
pentru
task-urile din Figura 6.10 avem urmatoarele caracteristici:
timpul de executie al task-ului A, CA = 6ms, perioada task-ului A TA = 20ms
timpul de executie al task-ului B, CB = 6ms, perioada task-ului B TB = 20ms
timpul de executie al task-ului C, CC = 8ms, perioada task-ului C TC = 20ms
Planificabilitatea se evalueaza conform relatiei de mai sus astfel:
Se observa ca desi se obtine un grad mai mare de utilizare (chiar maxim in acest exemplu), task-urile sunt totusi planificabile utilizind algoritmul rate-monotonic, deoarece relatia dintre perioade este favorabila.
Figura 6.10: Task-uri planificabile datorita relatiei dintre perioade favorabile
Principalele dezavantaje ale algoritmului rate-monotonic sunt urmatoarele:
toate task-urile se considera periodice si independente
task-urile aperiodice sunt efectiv neglijate
deadline-ul si perioada task-ului sunt considerate sinonime
Trebuie precizat de asemenea faptul ca algoritmul asigura o performanta la nivel mediu, nu garanteaza deadline-urile individuale.
Copyright © 2024 - Toate drepturile rezervate