Programarea Aplicațiilor în Timp Real

Proiect
8/10 (1 vot)
Domeniu: Calculatoare
Conține 4 fișiere: doc, cpp, h
Pagini : 8 în total
Cuvinte : 2924
Mărime: 21.47KB (arhivat)
Publicat de: Anton David
Puncte necesare: 6
Profesor îndrumător / Prezentat Profesorului: Doina Zmaranda
UNIVERSITATEA DIN ORADEA FACULTATEA DE INGINERIE ELECTRICĂ ŞI TEHNOLOGIA INFORMAŢIEI

Extras din proiect

Executivele de timp real

Un executiv de timp real este un sistem de calcul care îndeplineşte anumite sarcini într-un interval limitat de timp. Conceptul unui astfel de sistem se bazează pe tehnici de gestiune a proceselor ţinând cont de rapiditate şi eficienţă. Un proces este o unitate logică de sine stătătoare care implementează una sau mai multe din funcţiile aplicaţiei. O ATR este constituită dintr-un număr de procese concurente care se sincronizează şi comunică între ele şi cu exteriorul. Ele pot apela şi funcţii specifice de timp real (ex. citirea ceasului de TR). La proiectarea unui astfel de sistem se implementează nivelele ETR. Nivelele unui ETR sunt:

• gestionarea memoriei

• gestionarea unităţii de comandă (UC)

• sincronizarea proceselor (miltitasking)

• comunicarea între procese

• drivere I/E

• gestionarea memoriei externe (nu este obligatorie)

• funcţii specifice de timp real

Gestionarea unităţii de comandă

Gestionarea unităţii de comandă se realizează printr-o tehnică numită "time slicing" prin intermediul căreia se asigură execuţia pseudoparalelă (aproape simultană) a proceselor. Unitatea de comandă revine la un moment dat pentru un timp maxim specificat procesului (pentru o cuantă de timp specificată) care este în mod curent activ. UC este cedată de către procesul în cauză altui proces în una din situaţiile:

• la expirarea cuantei de timp aleasă arbitrar de programator

• la cererea procesului respectiv

• când execuţia procesului necesită o resursă indisponibilă (blocată momentan). În acest caz, procesul respectiv rămâne în aşteptare (blocat într-un semafor) până la eliberarea resursei respective

• când procesul solicită executivului o întârziere pentru un timp specificat

Gestionarea memoriei

Execuţia concurentă a proceselor o condiţie: fiecare proces trebuie să conţină stiva lui proprie în care se vor putea salva valorile variabilelor locale, apelurile de funcţii şi contextul (regiştrii) procesorului. Apoi fiecarui proces trebuie să i-se asigure faptul că are spaţiu în heap pentru a lucra cu variabile dinamice. Sarcina nivelului de gestiune a memoriei este ca la iniţializarea unui proces să-i aloce o stivă şi la execuţia lui să-i aloce spaţiu în heap. Dimensiunea stivei este proprie fiecărui proces şi e specificată în informaţiile de iniţializare.

Sincronizarea între procese

- se realizează prin intermediul semafoarelor

Procese

Procesele sunt entitatea de bază a executivului. În acest proiect vor fi implementate cu o clasă procese. O aplicaţie în timp real conţine un număr cunoscut şi finit de procese ce se desfăşoară concurent. ETR păstrează şi gestionează informaţiile referitoare la execuţia proceselor acelei aplicaţii. Pentru o eficienţă adecvată în domeniile timp şi memorie, se alege modul de alocare dinamic al proceselor (listă), alocare ce se efectuează la iniţializare ETR, astfel încât nu se limitează numărul de procese pe care le poate avea o aplicaţie, ETR devenind flexibil pentru orice aplicaţie. Deci în clasa ETR vom avea un câmp de genul:

proces * tabela_procese;

Informaţii necesare referitoare la un proces

• Starea procesului poate fi: activ, pregătit, întârziat, blocat, suspendat, inexistent

• Locul pe care îl ocupă un proces în tabela de procese procesului diferenţiază un proces de un altul (pot exista 2 procese identice în tabelă)

• Structura pentru salvarea "contextului" (prin context se înţelege conţinutul regiştrilor şi fanioanelor) proceselor. În acest proiect va fi folosită structura jmp_buf din cadrul headerului <setjmp.h>.

• Cuantumul de întârziere al procesului (dacă acesta există)

• Interfaţa cu utilizatorul

Aceasta va fi implementată în clasa Process

Fereastra procesului va fi un element de interfaţă grafică cu utilizatorul şi va fi o structură:

struct fereastra {int x1, y1, x2, y2, x, y} // poziţia ferestrei şi a cursorului pe ecran.

Pentru iniţializarea unui proces sunt necesare informaţiile:

• adresa iniţială a procesului (a funcţiei ce-l implementează)

• numărul procesului

• starea iniţială a procesului

• dimensiunea stivei alocate în cuvinte

Stările proceselor

La un moment dat un proces se poate afla în una din următoarele stări:

ACTIV: este procesul care rulează la un moment dat. Numărul lui şi pointerul la tabela_procese se păstrează în câmpurile executivului şi se modifică în secvenţa de alocare a UC unui nou proces.

PREGATIT: este un proces care dispune de toate resursele în afară de UC, fiind candidat la alocarea acesteia. Disciplina de alocare a UC poate fi funcţie de priorităţile proceselor sau funcţie de această stare. Se va folosi tehnica ROUND-ROBIN prin care parcurge tabela circular şi se execută primul proces care este găsit PREGĂTIT.

ÎNTÂRZIAT: e un proces ce a solicitat ETR serviciul de întârziere pentru un număr specificat de cuante (ce se introduce în câmpul cuante_delay). După expirarea acestora, revine în PREGĂTIT. Procesele aflate în întârziere formează o listă pe spaţiul tabelei de procese (implementată cu cursori prin câmpurile urm), lista e ordonată crescător după timpul de întârziere.

BLOCAT: e un proces ce a făcut operaţia P asupra unui semafor cu valoarea <=0. Listele cu procesele blocate ale semafoarelor se crează tot prin câmpul urm, pe spaţiul tabelei de procese.

SUSPENDAT: e un proces pentru care ETR are toate informaţiile, are o stivă alocată, dar nu participă la alocarea resurselor. Poate ajunge în această stare din orice altă stare prin operaţia de suspendare (spaţiul de stivă nu se eliberează). Din această stare în PREGĂTIT se ajunge prin execuţia de către alt proces a unei operaţii de pregătire.

Preview document

Programarea Aplicațiilor în Timp Real - Pagina 1
Programarea Aplicațiilor în Timp Real - Pagina 2
Programarea Aplicațiilor în Timp Real - Pagina 3
Programarea Aplicațiilor în Timp Real - Pagina 4
Programarea Aplicațiilor în Timp Real - Pagina 5
Programarea Aplicațiilor în Timp Real - Pagina 6
Programarea Aplicațiilor în Timp Real - Pagina 7
Programarea Aplicațiilor în Timp Real - Pagina 8

Conținut arhivă zip

  • Programarea Aplicatiilor in Timp Real
    • clase.h
    • main.cpp
    • metode.cpp
    • Programarea Aplicatiilor in Timp Real.doc

Alții au mai descărcat și

Arhitectura calculatoarelor - Intel vs AMD

Rezultatele din testul 3DS Max 7 SPECapc Test Testul alaturat consta in crearea modelelor 3D, modificarea si randarea scripturilor. Conform...

Autentificarea prin semnătură digitală

Introducere O semnatura digitala reprezinta o informatie care il identifica pe expeditorul unui document. Semnatura digitala este creata prin...

Placa de Bază

Caracteristici generale ale placii de baza Placa de baza este un dizpozitiv ‘de baza’ un ‘pamânt’ pe care ‘se planteaza’ celelalte componente ....

Sistem de Prognosticare a Unei Avarii

Acest sistem calculeaza gradul de avariere a unei cladiri în cazul unui cutremur, precum si posibila necesitate a reconstructiei cladirii (partiala...

Te-ar putea interesa și

Echipamente Radio definite prin Software

Introducere în Echipamente Radio definite prin Software (SDR) 1.1Introducere În ultimul deceniu al secolului 20, tehnologia SDR a parcurs o...

Sistem de automatizare cu PLC

Noţiunea de PLC vine de la Programmable Logic Controller (Controller Logic Programabil) şi este un computer digital folosit la automatizarea unor...

Automatizarea parcării unei companii cu un PLC S7-300

1. Controller Programabil Logic (PLC) 1.1. Introducere Ingineria controlată a evoluat de-a lungul timpului. Cândva, în trecut, oamenii erau...

Securitatea Informațiilor la Dispozitive Mobile

INTRODUCERE În ziua de azi, a fi informat reprezintă o caracteristică a celor care ies învingători în orice domeniu. Informaţiile sunt foarte...

Controlul motoarelor DC folosind o placă de dezvoltare cu DSP

CAPITOLUL 1. INTRODUCERE Introducerea pe scară largă a automatizării şi robotizării, realizarea noilor tipuri de maşini unelte cu comanda program...

Protecția și securitatea informațiilor - plan de securitate

1. Descrierea sistemului informatic În tratarea sistemului informaţional, accentul este pus pe sistemul informatic integrat implementat în cadrul...

Proiectarea Hardware și Software a unui Telefon Public Inteligent

1. Tema proiectului Realizarea unui telefon care sa poata fi folosit in regim de telefon public, dar care sa ofere si alte servicii speciale unui...

Sistemul Informational al Întreprinderii Comerciale

Una din caracteristicile societatii moderne este vehicularea uneicantitati mari deinformatii de natura diferita. Expertii tind sa acreditezeideea...

Ai nevoie de altceva?