|
DESCRIEREA COMPONENTEI SOFTWARE A UNUI SISTEM DE CALCUL
1. Ierarhia componentelor software.
Un sistem de calcul constituie un ansamblu functional destinat prelucrarii automate a informatiilor. Pentru realizarea acestui obiectiv sistemul de calcul are nevoie atat de echipamente (componentele hardware) cat
Figura 1. Componentele software ale unui sistem de calcul
si de un set de programe care determina prelucrarile care se fac asupra informatiilor prin intermediul componentelor fizice ale sistemului de calcul. Conform celei mai generale clasificari, componentele unui sistem de calcul pot apartine uneia dintre urmatoarele categorii:
o Hardware
o Software
o Firmware
Hardware-ul reprezinta componenta fizica a unui sistem de calcul, adica ansamblul de echipamente care alcatuiesc sistemul de calcul.
Firmware-ul este componenta de programe incarcate in memoria fixa ROM de catre producatorul sistemului de calcul. Aceasta componenta se afla la limita dintre hardware si software, reprezentand software-ul integrat in partea de hardware.
Componenta firmware a unui sistem de calcul, setul de instructiuni microprogramate incarcate in memoria fixa ROM, defineste un anumit mod de functionare si implicit de utilizare a sistemului de calcul. Din acest motiv, firmware-ul trebuie sa fie suficient de redus pentru a nu particulariza excesiv sistemul de calcul. Prin utilizarea unor memorii cu citire-scriere nevolatile alaturi de memoria ROM se obtin componente cu microprogramare dinamica. Aceasta consta in posibilitatea adaptarii secventei de programe fixe din ROM la incarcarea sistemului de operare.
Componenta ROM-BIOS a sistemelor de calcul compatibile PC este o componenta firmware realizata prin microprogramare dinamica. Rolul componentei BIOS este de interfata intre hardware si software, oferind componentei software functii de baza pentru utilizarea hardware-ului. In acest fel se realizeaza independenta componentelor software fata de caracteristicile hardware specifice sistemului de calcul, eliberand in acelasi timp componentele software de detalii legate de modul de lucru al hardware-ului. Fiind realizata prin microprogramare dinamica, componenta firmware (BIOS) permite modificarea unor parametri de functionare ai PC-ului intr-o secventa speciala derulata in timpul procedurii de incarcare a sistemului de operare la pornirea sistemului de calcul.
Software-ul reprezinta ansamblul de programe care fac posibila realizarea functiei sistemului de calcul, de prelucrare a informatiilor, si care constituie suportul logic de functionare a unui sistem de calcul. Intr-o traducere mot a mot, sotftware-ul inseamna "partea moale' a calculatorului, spre deosebire de hardware, 'partea tare". Componenta software a unui sistem de calcul cuprinde la randul ei programe grupate in mai multe categorii, dupa natura problemelor pe care le rezolva. Aceste categorii sunt (Figura 1.):
Software-ul de baza reprezinta totalitatea programelor care fac posibila functionarea si utilizarea unui sistem de calcul. El include programe ierarhizate dupa natura problemelor pe care le rezolva si dupa importanta lor. In acest sens avem:
In categoria software-ului utilitar intra:
Software-ul de aplicatie este construit din programe ale utilizatorilor care rezolva probleme cu un nivel redus de generalizare si care permite utilizarea sistemului de calcul in cele mai diverse domenii: economice, industriale, sociale, medicale etc. Executia programelor dintr-o anumita categorie se sprijina pe serviciile oferite de categoriile precedente. Astfel software-ul de aplicatie este dependent de tipul software-ului de baza pentru care a fost proiectat. La nivelul utilizatorilor, acesta dependenta creaza deseori multe probleme. Din aceasta cauza, o trasatura importanta a software-ului de aplicatie este portabilitatea, adica acea caracteristica ce permite rularea software-ului de aplicatie fara transformari pe diverse sisteme de operare.
Software-ul de baza, in special componenta sistemului de operare, vine si ea in intampinarea acestei probleme, realizand emulari ale functiunilor sistemelor de operare anterioare in noile sisteme de operare.
Software-ul de aplicatie are foarte multe categorii in care poate fi clasificat, parerile referitoare la clasificare fiind impartite. Una din clasificari permite impartirea software-ului de aplicatie astfel:
In ultimul timp se constata o deplasare a ponderii de interes de la componentele financiar-contabile spre componentele de conducere. Au aparut in acesta categorie asa-numitele sisteme informatice pentru sprijinirea deciziei, sisteme informatice pentru conducere.
Accesibilitatea, gradul de diversitate si numarul programelor creste de la componenta firmware catre componenta software de aplicatie. In acelasi timp, nivelul de specializare al celor carora li se adreseaza creste de la componenta software de aplicatie catre componenta firmware. Pe baza acestei structuri in etaje succesive a organizarii software-ului au aparut specializari profesionale distincte (figura 1.).
2. Sistemul de operare
Sistemul de operare reprezinta ansamblul de programe care asigura folosirea optima a resurselor fizice si logice ale unui sistem de calcul. El are rolul de a coordona si controla executia programelor si de a permite comunicarea utilizatorului cu sistemul de calcul. Pe scurt, sistemul de operare este acea parte a componentei sistemului de calcul care coordoneaza si supravegheaza intraga activitate. Folosirea hardware-ului unui sistem de calcul ar fi dificila si ineficienta in lipsa unui sistem de operare accesibil utilizatorilor. Din punct de vedere al interactiunii cu componentele hardware, sistemul de operare este organizat pe doua nivele:
1. Nivelul fizic, care include componenta firmware a sistemului de calcul. Acest nivel ofera servicii privind lucrul cu componentele hradware. La acest nivel comunicarea sistemului de operare cu sistemul de calcul se realizeaza prin intermediul asa-numitului sistem de intreruperi, care semnalizeaza aparitia unor evenimente interne sau externe sistemului de calcul. De exemplu la calculatoarele compatibile PC, in componenta ROM-BIOS sunt grupate, dupa functia lor, urmatoarele programe:
2.Nivelul logic include partea de operare a sistemului de calcul si ofera utilizatorului mijloacele prin care poate exploata sistemul de calcul. Comunicarea utilizatorului cu sistemul de calcul se realizeaza prin intermediul comenzilor si instructiunilor din programele pe care le executa. Comunicarea inversa, sistem de calcul utilizator, se realizeaza prin mesajele transmise de sistemul de operare utilizatorului.
Programele nivelului logic adreseaza dispozitivele hardware prin intermediul programelor nivelului fizic al sistemului de operare, si din acest motiv ele sunt independente de structura hardware a sistemului de calcul.
Nivelul fizic constituie asadar o interfata intre hardware si nivelul logic al sistemului de operare (figura 2.)
Figura 2. Legatura intre nivele fizic si logic ale sistemului de
operare
Din punct de vedere functional, programele sistemului de operare se impart in doua categorii:
Functia sistemului de operare privind optimizarea exploatarii unui sistem de calcul este impartita intre componenta de comanda si control si componenta de servicii conform figurii 3. Resursele sistemului de calcul pe care sistemul de operare le pune la dispozitia utilizatorului se constituie din totalitatea componentelor fizice sau logice ale sistemului de calcul, care pot fi solicitate la un moment dat in timpul executiei unui program. Gestionarea resurselor sistemului de calcul este principala sarcina a sistemului de operare.
In general, pentru a executa un program intr-un sistem de calcul secvential cu program memorat este necesara incarcarea acestui program in memoria interna a sistemului de calcul si sub controlul unitatii centrale de prelucrare sunt executate secvential instructiunile programului.
Figura 3. Optimizarea exploatarii resurselor sistemului de calcul.
In detaliu, executia unui program se defineste ca o succesiune de activitati care se desfasoara la un moment dat sub controlul sistemului de operare, activitati numite procese si care se caracterizeaza prin:
Executarea unei instructiuni program presupune mai intai alocarea unor resurse:
Pentru a realiza alocarea unei resurse la un proces, sistemul de operare trebuie sa aiba raspuns la urmatoarele intrebari (de la caz la caz):
Rezulta asadar functiile care trebuie indeplinite de componenta sistemului de operare care are rolul de gestionare a resurselor:
Componenta de comanda si control a sistemului de operare. Activitatea de lansare in executie a unui program, activitatea de gestionare a alocarii resurselor, ca si operatiile efectuate la incheierea executiei acestuia sunt functii realizate de componenta de comanda si control a sistemului de operare. Functiile componentei de comanda si control sunt:
Ultimele doua functii se realizeaza in mod specific pentru fiecare tip de resursa in cadrul componentei de gestionare a resurselor. Conform acestor functii, componenta de comanda si control a sistemului de operare cuprinde:
o componente de gestionare a intreruperilor.
o componente de gestionare a proceselor.
o componente de gestionare a memoriei.
o componente de gestionare a dispozitivelor periferice.
Componenta de servicii a sistemului de operare. Aceasta s-a dezvoltat odata cu cerintele utilizatorilor. Gradul de accesibilitate al unui sistem de calcul, ca si complexitatea sarcinilor pe care utilizatorul le poate rezolva cu ajutorul lui sunt influentate de existenta si eficienta programelor de sistem incluse in componenta de servicii. Programele de servicii se executa sub supravegherea programelor de comanda si control, ca orice program de aplicatii. Aceasta componenta ofera servicii diferite de la un sistem de operare la altul sau chiar de la versiuni diferite ale aceluiasi sistem de operare. Componenta de servicii a unui sistem de operare poate include:
Functiile realizate de aceasta componenta sunt:
Obiectivele unui sistem de operare. Obiectivele generale ale unui sistem de operare sunt:
Functiile prin intermediul carora sistemul de operare realizeaza aceste obiective sunt:
o contabilizarea activitatii sistemului de calcul.
o jurnalizarea comenzilor adresate interpretorului de comenzi.
o jurnalizarea erorilor etc.
Clasificarea sistemelor de operare din punctul de vedere al executiei proceselor. In general, programele utilizeaza in mod diferit resursele unui sistem de calcul. Unele ocupa mai putina memorie ca altele, unele au mai multe operatii de intrare-iesire, etc. Pentru utilizarea eficienta a resurselor sistemului de calcul, unele sisteme de operare pot gestiona executia concurenta a mai multor procese,asigurand proceselor din sisteme accesul concurent la resursele sistemului sau protejarea resurselor. Aceasta inseamna ca la un moment dat in sistem se pot afla in executie mai multe procese, care concureaza intre ele pentru accesul la resursele sistemului, iar sistemul de operare gestionaeza resursele astfel incat sa poata satisface cat mai multe cereri. O caracteristica importanta a unui sistem de operare este masura in care poate asigura executia concurenta a proceselor. Pe baza acestui criteriu sistemele de operare se impart in:
Clasificarea sistemelor de operare dupa gradul de interactiune cu uilizatorul. Un sistem de operare are rolul de a interfata comunicarea intre utilizator si sistemul de calcul. Tendinta actuala in cererea utilizatorilor este de a creste atat gradul de interactiune cu sistemul de calcul cat si gradul de accesibilitate a interfetei cu sistemul de calcul. Aceste doua tendinte, in general contradictorii, determina cresterea complexitatii componentei sistemului de operare, de interfata cu utilizatorul. Pe de alta parte, din punct de vedere al gradului de utilizare si al accesibilitatii, o caracteristica importanta este numarul de utilizatori care pot avea acces simultan la un sistem de calcul. Din acest punct de vedere, sistemele de operare pot fi:
De cele mai multe ori interfata dintre sistemele de operare si utilizator nu dispune de un limbaj de comanda accesibil utilizatorului obisnuit, motiv pentru care comunicarea dintre utilizator si sistem nu este directa, ci este mediata de persoane specializate (cum ar fi operatori calculator). La astfel de sisteme, in timpul executiei lucrarii sale, utilizatorul pierde total controlul asupra prelucrarii; el furnizeaza datele care se prelucreaza odata cu formularea cererii de prelucrare, si primeste rezultatele la incheierea executiei.
A doua categorie, sistemele de operare interactive, permit comunicarea directa intre utilizator si sistemul de calcul prin intermediul unui limbaj dedicat acestui scop. La un astfel de sistem, utilizatorul poate urmari modul in care se executa programul sau si poate influenta, in anumite conditii, executia acestuia. Un sistem de operare interactiv presupune o arhitectura a sistemului de calcul care sa cuprinda echipamente standard de intrare-iesire, dedicate comunicarii utilizatorului cu sistemul de calcul. Aceste echipamente de intrare-iesire cuprind de obicei o tastatura (ca echipament standard de intrare), un dispozitiv de vizualizare a informatiilor de iesire (cum ar fi display-ul sau masina de scris/imprimanta). Sistemele de operare interactive pot fi:
Spre exemplu, sistemul de operare MS-DOS este un sistem interactiv monouser, sistemul de operare UNIX este un sistem de operare multiuser.
Clasificarea sistemelor de operare dupa configuratia hardware deservita. Se obisnuieste impartirea sistemelor de calcul in trei mari categorii, in functie de puterea lor de prelucrare a informatiilor si de capacitatea lor.Corelat cu aceasta impartire, se clasifica si sistemele de operare dupa configuratia hardware pe care o deservesc.
Structura sistemelor de operare este influentata de structura sistemului de calcul, pentru ca, in general, s-a cautat ca punctele mai slabe ale hardware-ului sa fie compensate prin functii suplimentare, asigurate de sistemul de operare.
Pe de alta parte, un sistem de calcul puternic care permite prelucrari complexe, are nevoie de un sistem de operare la fel de puternic, capabil sa asigure o buna coordonare a activitatii sistemului de calcul si o gestionare optima a resurselor. Dupa configuratia hardware deservita, sistemele de operare sunt:
In prezent se constata tendinta de apropiere a performantelor microcalculatoarelor de performantele calculatoarelor superioare lor, in paralel cu tendinta de apropiere a performantelor sistemelor de operare pentru sitemele de calcul mari cu cele ale sistemelor de operare pentru mini sau microcalculatoare. In acelasi timp se realizeaza o integrare functionala tot mai accentuata a diferitelor tipuri de sisteme de calcul in platforme de lucru comune, de obicei prin conectarea acestora in retele de calculatoare. Cel mai elocvent exemplu in aceasta directie este reteaua INTERNET, care realizeaza legatura intre cele mai diverse tipuri de calculatoare, functional sub controlul unor sisteme de operare diverse.
Din punct de vedere al dezvoltarii sistemelor de operare, tendinta actuala este de dezvoltare a sistemelor de operare portabile, adica acele sisteme de operare care functioneaza pe platforme hardware diferite. Un astfel de sistem de operare este sistemul UNIX.
Clasificarea sistemelor de operare din punct de vedere al tehnicilor de prelucrare. Potrivit acestui criteriu sistemele de operare se impart in:
o Sisteme de operare cu prelucrare pe loturi (batch processing).
o Sisteme de operare in timp real.
o Sisteme de operare time-sharing (cu parta-jarea timpului).
Sistemele de operare time-sharing, permit accesul fiecarui task la resursele sistemului pentru o perioada fixa de timp. Dupa scurgerea perioadei alocate, indiferent daca task-ul respectiv s-a terminat sau nu, este evacuat si lansat urmatorul s.a.m.d. La terminarea listei task-urilor care trebuie executate se reia procesul cu primul task din lista. Ciclul se repeta pana cand taskurile isi incheie executia in mod normal, si lista task-urilor in asteptare se goleste. Acest tip de sistem de operare este folosit in prelucrarile cu multi utilizatori si cu task-uri de importanta aproximativ egala.