Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Doar rabdarea si perseverenta in invatare aduce rezultate bune.stiinta, numere naturale, teoreme, multimi, calcule, ecuatii, sisteme




Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

Informatica


Index » educatie » Informatica
» Criterii de alegere a unui SO


Criterii de alegere a unui SO


Criterii de alegere a unui SO


Structura minimala unui sistem de operare general, valabila si pentru sisteme de operare timp real este urmatoarea (Figura 6.1):

Figura 6.1.: Structura minimala al unui sistem de operare

Toate sistemele de operare trebuie sa furnizeze trei functii specifice:

Ø      dispecerizarea task-urilor - se realizeaza operatiile necesare in scopul lansarii in executie al unui task



Ø      planificarea task-urilor se determina care va fi task-ul care va rula in continuare intr-un sistem multitasking

Ø      comunicarea intre task-uri - se implementeaza mecanismele pentru realizarea comunicarii si sincronizarii task-urilor

Termenul de "nucleu" (kernel) suporta diverse definitii, functie de gradul de complexitate al acestuia. In principiu, exista urmatoarele (Figura 6.2):

Ø      nano-kernel - include un management simplu al firelor de executie si facilitati de dispecerizare a task-urilor..

Ø      micro-kernel - include pe linga cele de mai sus si un planificator al task-urilor

Ø      kernel - este un micro-kernel care furnizeaza in plus sincronizare si comunicare intre task-uri via semafoare, cutii postale, si alte mecanisme asemanatoare

Ø      executiv - este un kernel care include si blocuri de memorie dedicate, servicii de I/O, etc. Majoritatea nucleelor timp eral comerciale existente sunt de fapt executive.

Ø     


sistem de operare - un executiv care furnizeaza o interfata cu utilizatorul (procesor de comenzi) precum si un sistem de managementul fisierelor

Figura 6.2.: Hierarhia unui nucleu


Figura 6.3: Functionalitatea unui sistem de operare

Din punctul de vedere al modului de operare, functionalitatea acestuia poate fi descrisa prin Figura 6.3.

Ø      procesorul de comenzi - furnizeaza comenzi prin care utilizatorul poate comunica cu sistemul de operare.

Ø      BDOS - procesarea comenzilor este realizata de Basic Disk Operating System, care de asemenea trateaza intrarile si iesirile precum si operatiile cu fisiere. Prin intermediul BDOS managementul operatiilor cu fisiere si a operatiilor de intrare iesire este transparent utilizatorului. Programul de aplicatie comunica cu hardware-ul sistemului prin comenzi sistem procesate de BDOS.

Ø      BIOS - Basic Input Output Sistem - contine diferite drivere de dispozitive care manipuleaza dispozitivele fizice; aceasta parte a sistemului de operare poate varia de la o implementare la alta pentru ca opereaza direct cu hardware-ul. Adresa fizica a perifericelor variaza functie de producator; aceste diferente vor fi codificate corespunzator in BIOS. Operarea efectiva a dispozitivelor fizice este realizata de software-ul din BIOS.


Figura 6.4. Structura unui SO multiutilizator

Accesul la functiile sistemului de operare este realizat prin apeluri de subrutine si informatiile sunt transmise in registri CPU. Functiile sistemului de operare nu pot fi apelate direct din marea majoritate a limbajelor de programare, acest lucru asigurind izolarea deliberata a sistemului de operare de limbaj, conform principiului ascunderii informatiei. Conectarea intre limbajul de nivel inalt si sistemul de operare este realizata prin intermediul compilatorului (run-time support routines) care converteste sistemul de operare intr-o masina virtuala descrisa de limbajul de programare.

Un sistem de operare multiuser permite existenta mai multor utilizatori in paralel fiecare rulind propriul lui program si avind propriul sau spatiu de date. Fiecare utilizator are propriul sau mediu de lucru si nu este permisa interferenta cu alti utilizatori (Figura 6.4).

Un sistem de operare multitasking presupune faptul ca un singur utilizator poate lansa mai multe task-uri concurente (Figura 6.5). Exista posibilitatea comunicarii intre aceste task-uri, inclusiv prin zone de date comune acestora. Sistemul de operare multitasking trebuie sa aiba grija de modalitatea in care se face aceasta comunicare pentru a nu afecta consistenta datelor.


Figura 6.5. Structura unui SO multitasking

Un sistem de operare timp real nu difera mult de nucleul unui sistem de operare multitasking, trebuind in acelasi timp sa asigure timpi de raspuns performanti, printr-o regie de sistem cit mai redusa. Sistemul de operare timp real ofera serviciile necesare executiei unei aplicatii timp real. O aplicatie timp real se constituie intr-un numar de procese concurente, care se sincronizeaza si comunica intre ele si cu exteriorul.

Astfel, nivelurile unui sistem de operare timp real, traduse prin serviciile pe care acesta le ofera, sunt urmatoarele:

Ø      gestionarea unitatii centraleUC - include managementul task-urilor precum si gestionarea modului in care este alocata UC pentru fiecare task. Activitatea prin intermediul careia se realizeaza alocarea procesorului se numeste planificare (scheduling) si ea se bazeaza pe utilizarea unor anumiti algoritmi de planificare (vezi cap. 6.2.2).

Ø      gestionarea memoriei - alocarea pentru fiecare proces, la initializarea lui, a cite o stiva proprie si la executie, spatiu pe heap, pentru variabilele dinamice

Ø      sincronizarea si comunicarea intre procese - sistemul de operare trebuie sa ofere mecanisme care sa permita comunicarea si sincronizarea task-urilor in conformitate cu cerintele de timp real

Ø      functii de TR - permit citirea ceasului de TR, precum si autointirzierea proceselor pentru un numar specificat de cuante de timp

Ø       drivere de I/E - asigura comunicarea proceselor cu perifericele

Exista la ora actuala mai multe tipuri de sisteme de operare folosite in aplicatiile timp real. Acestea in general variaza de la sisteme simple, la unele mai complexe, incadrindu-se in urmatoarele categorii:

Ø      sisteme de operare in bucla (ciclice - pool loops) - se caracterizeaza prin cel mai simplu nucleu posibil. In cadrul acestora se executa in mod repetat o instructiune unica de test, care testeaza un fanion care indica aparitia unui eveniment (polling). Nu dispune de mecanisme de sicronizare si comunicare intre task-uri si planificare, intrucit exista un singur task care se executa. Astfel de sisteme ofera raspuns foarte rapid la evenimente generate de un dispozitiv extern, si sunt indicate in cazuri in care un procesor este dedicat    pentru a prelucra I/O de la un dispozitiv extern foarte rapid si suprapunerea evenimentelor nu este permisa sau este redusa la minimum. O varianta a sistemului prezentat mai sus utilizeaza o intrerupere de ceas fixa pentru a astepta o perioada de timp intre doua testari succesive ale fanionului. Astfel de sisteme nu sunt potrivite pentru aplicatii complexe; de asemenea, ele prin natura lor risipesc timp CPU, mai ales cind evenimentele apar cu frecventa variabila.

Ø      sisteme de operare multitasking cooperativ (corutine) - implica scrierea proceselor intr-o maniera specifica, prin impartirea codului acestora in segmente astfel incit la sfirsitul executiei fiecarui segment, procesul sa poata fi intrerupt fara pierderi de date. La finele fiecarui segment din cadrul procesului se realizeaza un apel la dispecerul si planificatorul sistemului de operare care selecteaza urmatorul proces care va intra in executie: sistemele de operare care se bazeaza pe modelul multitasking cooperativ utilizeaza algoritmul Round-Robin pentru planificarea proceselor (capitolul 6.2.2.). Comunicarea intre procese se realizeaza prin utilizarea variabillelor globale. Daca in codul proceselor se realizeaza apel explicit la dispecer la momente cunoscute de timp, timpul de raspuns in acest caz este usor de determinat. Sistemul este realizat fara utilizarea intreruperilor hardware. Dezavantajele utilizarii multitaskingului cooperativ in sisteme timp real sunt urmatoarele:

implica comunicare prin variabile globale, care nu este fiabila, si deci, de dorit

necesita discilpina din partea programatorului, care trabuie sa nu uite apeleze dispecerul la momente predefinite

procesele nu pot fi totdeauna impartite in segmente de o dimensiuni uniforme, ceea ce ar putea afecta timpii de raspuns

Ø      sisteme de operare bazate pe intreruperi (interrupt driven) - intreruperile pot aparea la intervale fixe (periodice), sau sporadic (aperiodic), sau ambele. Task-urile din cadrul sistemului sunt planificate in acest caz prin intermediul intreruperilor hardware sau software, iar dispecerizarea este realizata de catre rutinele de tratare a intreruperilor. Oricum, contextul initial trebuie salvat, astfel incit procesul intrerupt sa se poata relua ulterior.    Acest context include de obicei anumiti registri, indicatorul de program, si alte entitati care ar putea fi alterate de executia altor procese. Utilizarea sistemelor de operare multitasking bazate pe intreruperi permit obtinerea unor timpi de raspuns foarte buni la evenimente externe, acestea fiind potrivite pentru o serie de aplicatii incorporate; totusi, utilizarea unor sisteme multitasking care nu folosesc intreruperi este preferabila in sisteme timp real critice deoarece sistemele sunt mult mai usor de analizat.

In general, cu cit un nucleu furnizeaza mai multe facilitati, cu atit performantele acestuia se degradeaza mai mult. In plus, cu cit este mai complex, cu atit sistemul devine mai greu de analizat.





Politica de confidentialitate





Copyright © 2024 - Toate drepturile rezervate