Scrigroup - Documente si articole

Username / Parola inexistente      

Home Documente Upload Resurse Alte limbi doc  

 
CATEGORII DOCUMENTE


AccessAdobe photoshopAlgoritmiAutocadBaze de dateC
C sharpCalculatoareCorel drawDot netExcelFox pro
FrontpageHardwareHtmlInternetJavaLinux
MatlabMs dosPascalPhpPower pointRetele calculatoare
SqlTutorialsWebdesignWindowsWordXml

SISTEMELE DE OPERARE

calculatoare

+ Font mai mare | - Font mai mic



DOCUMENTE SIMILARE

Trimite pe Messenger
Modelul functional al unui Calculator Numeric
Encodarea filmarilor facute cu o camera video digitala
ARBORELE PARTIAL DE COST MINIM
Concepte de baza ale Tehnologiei Informatiei (IT)
SISTEME DE REGLARE AUTOMATA
GESTIUNEA INFORMATICA A UNUI EXAMEN DE ADMITERE
Obiecte in OOP
Echipamentele necesare implementarii tehnologiei informatiei si comunicatiilor
Utilitarul Norton Commander
SISTEME INFORMATICE – test grila

TERMENI importanti pentru acest document

: sistem de operare al imprimantei : program de redare aunui film din memoria calculator : sistemele de operara informatii :

SISTEMELE   DE  OPERARE 

 

           1.- Evolutia  sistemelor  de  operare

            Sisteme  cu  un  singur  procesor

            Pentru primele sisteme de operare s-a actionat asupra simplificarii incarcarii programelor si reducerea perioadei de tranzitie dintre lucrari. A fost stabilit un singur operator care efectua toate operatiile cu calculatorul.

            Operatorul incarca toate materialele pe suportul de stocare de masa al calculatorului, unde sistemul de operare avea acces la ele pentru a le executa. Acesta a fost inceputul prelucrarii pe loturi (batch procession) - executarea lucrarilor prin plasarea lor intr-un grup unic si apoi reluarea lor fara o alta interactiune cu utilizatorul. In vederea executiei, lucrarile stocate in memoria de masa erau plasate intr-o coada de lucrari (job queue) (vezi fig. 2.1.1).

                                                Lucrari programate                Rezultate

            Domeniul

            utilizatorului

                                                                            

Domeniul                                                            Executia

calculatorului                                                      lucrarii

 
           


                            Fig. 2.1.1.  P r e l u c r a r e    p e    l o t u r i

            Coada reprezinta o structura de stocare in care obiectele (lucra-rile) sunt organizate dupa principiul primul intrat, primul iesit (FI FO – First Input First Output).

            Un dezavantaj al prelucrarii utilizand administrator de sistem este acela ca, dupa ce lucrarea a fost transmisa in coada de lucrari, utilizatorul nu mai poate interveni asupra programului.

            Pentru a raspunde la aceste cerinte au fost dezvoltate noi sisteme de operare care permit prelucrarea interactiva (interactive processing) (vezi fig. 2.1.2.).

                                                                         Programe,  date,  directive

                                                  de   executie  si  rezultate

                        Domeniul                        

                     utilizatorului

                                       Executia

Domeniul                                        programului 

calculatorului                                  

 
 

                                         Fig.  2.1.2. Prelucrarea interactiva

Aceste sisteme permit executarea unui program care poarta un dialog cu utilizatorul prin intermediul terminalelor de control la distanta sau al statiilor de lucru. Sistemele interactive au dat nastere conceptului de prelucrare in timp real (real time processing).

            Daca sistemele interactive ar fi putut sa se adreseze unui singur utilizator la un moment dat, prelucrarea in timp real n-ar fi pus nici o problema.

            Datorita pretului ridicat al calculatoarelor este necesar ca fiecare masina sa deserveasca mai multi utilizatori.

            O solutie la aceasta problema este proiectarea si realizarea sistemului de operare in asa fel incat sa parcurga pe rand diferitele activitati ce trebuie executate printr-un proces numit partajarea timpului.

            Mai exact, partajarea timpului (time sharing) se refera la tehnica de impartire a timpului in intervale, denumite felii de timp (time slices), cu restrictia executarii unei activitati numai intr-o felie timp la un moment dat. La sfarsitul fiecarei felii de timp, activitatea curenta este trecuta in repaus si o alta activitate primea dreptul de executie in urmatoarea felie de timp. Prin baleierea rapida a activitatilor in acest mod se crea iluzia executarii simultane a mai multor procese.

            In prezent partajarea timpului este utilizata atat in sistemele cu un singur procesor, cat si in sistemele multiprocesor, dar in cazul primelor este denumita de obicei multitasking (iluzia ca mai multe activitati sunt desfasurate simultan).

 

 

Sisteme  multiprocesor

Nevoia de a partaja informatiile si resursele intre diferite calculatoare a condus la ideea conectarii calculatoarelor pentru schimbul de informatii.

A aparut conceptul de structura de mai multe calculatoare mici, conectate intr-o retea   (net work), prin care utilizatorii partajeaza resursele.

Software-ul pentru controlul unei retele de calculatoare poate fi privit ca un sistem de operare in retea.

           2. Arhitectura unui sistem de operare

Pentru a intelege un sistem de operare tipic, propunem o clasificare a categoriilor de componente.

                                     Software


                        Aplicatie          Sistem

                                          Utilitar     Sistem de operare

                                                     Interfata                      Nucleu

                           Fig. 2.1.3.  Clasificarea  software-ului

            Exista doua categorii de software distincte : software de aplicatii (application software)  si  software de sistem (system software).

Software-ul de aplicatii contine programele care efectueaza anumite activitati particulare specifice beneficiarului (end user-ului).

Spre deosebire de software-ul de aplicatii, software-ul de sistem efectueaza acele activitati care sunt comune sistemelor de calcul in general.

Clasa software-ului de sistem se imparte in doua categorii: sistemul de operare propriu-zis si module software numite software utilitar. Intr-un anumit sens, software-ul utilitar consta in unitati de  software care extind caracteristicile sistemului de operare (abilitatea de formatare a unui disc sau de copiere a unui fisier).

Unii utilizatori de calculatoare includ in clasa de software utilitar orice software livrat odata cu sistemul de operare.

            I n t e r f a t a

            Partea dintr-un sistem de operare care defineste modul de interactiune dintre  sistemul de operare si utilizatorii sai poarta numele de interfata (shell). Sarcina interfetei este aceea de a permite comunicarea cu utilizatorul (sau utilizatorii) calculatorului.

            Interfetele moderne realizeaza acest lucru folosind o interfeta grafica cu utilizatorul (graphical user interface - G U I), in care obiectele manipulate (fisiere si programe) sunt reprezentate grafic pe ecran prin pictograme (incons). Astfel de sisteme permit utilizatorului sa execute comenzi prin selectarea si deplasarea pictogramelor pe ecran cu un dispozitiv denumit 'mouse'. Vechile interfete comunicau cu utilizatorul numai prin mesaje de tip text (utilizand tastatura si ecranul).

            Interfata realizeaza legatura intre un utilizator si 'inima' sistemului de operare (vezi fig. 2.1.4).

    Utilizator 1


               Utilizator  j                                                          Utilizator 2

                                                                   

        Sistem

 de

                     operare

Interfata           

                                   

                Utilizator  i                                                             Utilizator 3

   Fig. 2.1. Interfata dintre utilizatori si sistemul de operare

            N u c l e u l

            Partea din interiorul unui sistem de operare este adesea denumita nucleu (kernel). Nucleul contine acele componente software care efectueaza operatiile primare necesare pentru functionarea calculatorului.

            Una din aceste componente este administratorul de fisiere (file manager), avand sarcina sa coordoneze utilizarea facilitatilor oferite de memoria masa a calculatorului.

Pentru simplificarea utilizarii calculatorului, sistemele de administrare a fisierului permit gruparea lor in unitati denumite directoare (directory) sau dosare (folder). Astfel este posibil ca utilizatorul sa-si organizeze fisierele  conform  scopului propus,  permitand ca directoarele  sa contina alte directoare, denumite subdirectoare, realizandu-se astfel o organizare ierarhizata a informatiilor. Secventa de directoare care indica drumul pana la un anumit subdirector sau fisier se numeste cale (path).

            Orice acces la un fisier se obtine prin intermediul administratorului de fisiere, care solicita deschiderea fisierului. Daca administratorul de fisiere accepta cererea de acces, el furnizeaza informatiile necesare pentru gasirea si manipularea fisierului. Informatiile sunt stocate intr-o zona din memoria principala care poarta numele de descriptor de fisier (file descriptor).

            O alta componenta a nucleului consta dintr-o colectie de 'drivere' de dispozitiv (device drivers) - module software care comunica cu controlerele (sau uneori direct cu dispozitivele periferice) pentru efectuarea operatiilor de catre periferice.

            Fiecare 'driver' de dispozitiv este proiectat in mod individual pentru un anumit tip de controler sau dispozitiv (imprimanta, disc, monitor) si traduce cererile formulate in termeni generali intr-o secventa de instructiuni specifice controler-ului sau dispozitivului atasat acelui driver.

            Alta componenta a nucleului sistemului de operare este administratorul de memorie (memory manager), insarcinat cu activitatea de coordonare a utilizarii memoriei principale a calculatorului. Aceasta componenta este foarte utilizata in mediile multiutilizator sau multitasking.

            Sarcina administratorului de memorie se complica atunci cand cantitatea totala de memorie solicitata depaseste dimensiunea memoriei disponibile. In acest caz, administratorul de memorie poate crea iluzia unui spatiu suplimentar de memorie rotind programele si datele intre memoria principala si disc.

            Aceasta memorie iluzorie este denumita memorie virtuala (virtual memory).

            Pornirea  calculatorului

            Lansarea in executie a sistemului de operare se realizeaza prin intermediul unei proceduri cunoscute sub numele de incarcarea sistemului de operare (boot straping) ; incarcare (booting).

            Zona de memorie in care se asteapta sa se gaseasca programul pentru executie se numeste memorie permanenta (read-only memory ¾  R O M). Cea mai mare parte din memoria interna a unui calculator de uz general este memoria volatila, continutul memoriei pierzandu-se la oprirea calculatorului.

            In scopul incarcarii sistemului de operare al unui calculator de uz general, memoria ROM contine un program de mici dimensiuni, denumit bootstrap. La pornirea calculatorului acest program se executa automat si in multe cazuri obiectul transferului (de pe suportul de stocare de masa in memoria principala a calculatorului - vezi fig. 2.1.5) este chiar sistemul de operare. Dupa plasarea in memorie a sistemului de operare, programul bootstrap instruieste VC sa sara la zona de memorie care-l contine.

Din acest moment sistemul de operare devine activ si preia controlul calculatorului.

                                                Memoria principala

Program

incarcarencarcare

 
                                                                                                             D i s c

ROM           

 
                                                           

                                                                                                            Sistem

                             Memorie                                                                 de

                              volatila                                                                    operare

                       

                       

            (Pasul 1) Calculatorul executa programul de incarcare aflat in

                             memorie. Sistemul de operare se afla pe dispozitivul

                             de stocare de masa.

                                       

  Memoria principala

Program incarcareProgram

incarcare

 
                                                                                                            D i s c

ROM           

 Sistem       

    de

operare

 
                                                           

                                                                                                            Sistem

                             Memorie                                                                 de

 
                              volatila                                                                    operare

                       

            (Pasul 2)  Programul de incarcare realizeaza transferul sistemului de

                              operare in memoria principala si ii cedeaza apoi controlul.

                        Fig. 2.1.5. Procesul  de  incarcare  a  sistemului  de  operare

            3.-  Coordonarea  activitatilor  desfasurate  de  calculator

            In continuare se va prezenta modul in care sistemul de operare coordoneaza executia software-ului de aplicatie si utilitar, cat si pe cea a propriilor sale module.

            Conceptul  de  proces

            Unul din cele mai importante concepte, in cadrul sistemelor de operare, este deosebirea dintre un program si actiunea de executie a acestuia.

            Programul reprezinta un set static de directive, iar executia lui este o activitate dinamica, ale carei proprietati se modifica in timp. Aceasta activitate poarta numele de proces. Procesul este caracterizat de starea procesului. Starea procesului reprezinta un instantaneu al functionarii calculatorului la un moment dat. Un  singur program poate fi asociat in acelasi timp mai multor procese. (Ex.: Doi utilizatori pot edita simultan documente diferite, intr-un sistem multiutilizator cu partajarea timpului, sistemul de operare utilizand o singura copie a programului de editare).

            Sarcina sistemului de operare este sa coordoneze mai multe procese care concureaza pentru utilizarea feliilor de timp.

            Coordonarea implica alocarea resurselor necesare fiecarui proces (dispozitive periferice, spatiu in memoria principala, acces la date si acces la unitatea centrala de prelucrare), impiedicarea interferentei proceselor independente si asigurarea schimbului de informatii intre procese care trebuie sa realizeze acest lucru.

            Pentru aceast tip de comunicatie se foloseste numele de comunicatie intre procese (interprocess communication).

            Administrarea  proceselor

            Operatiile asociate coordonarii proceselor sunt efectuate de catre secventiator (scheduler) si executor (dispatcher), din nucleul sistemului de operare.

            Secventiatorul memoreaza o inregistrare a proceselor prezente in sistemul de calcul, introduce noi procese si le elimina pe cele care s-au terminat. Pentru a putea urmari toate procesele, secventiatorul le inregistreaza intr-un bloc de informatii denumit tabel de procese (process table), in memoria principala.  In acest tabel  sunt memorate informatii, ca: zona de memorie alocata procesului, prioritatea procesului, daca procesul este in asteptare  etc. 

            Executorul este componenta nucleului care asigura executia proceselor active, programate de secventiator.

            Intr-un sistem cu partajarea timpului, executia programelor se realizeaza prin impartirea timpului in intervale scurte, fiecare purtand numele de felie de timp (time slice) si avand o durata de cca 50 de milisecunde. Procedura de trecere de la un proces la altul poarta numele de comutare intre procese (process switch).

      intrerupere            intrerupere                   intrerupere               intrerupere           intrerupere


Proces  B

 

Proces  B

 
                                                            

                                                                                                                       


                comutare intre

                     procese  (CP)          CP                        CP                               CP                                 

Proces  A

 

Proces  A

 


                                                                                                                                                                                                                                                                                               

                                                A x a    t i m p u l u i                                                    

Fig. 2.1.6.  Partajarea  timpului  intre  procesele  A  si  B

            La primirea unui semnal de intrerupere, unitatea centrala de prelucrare completeaza ciclul curent de extragere-decodificare- executie salveaza pozitia din procesul curent si incepe executia unui program de tratare a intreruperilor (interrupt handler), care este stocat la o locatie predeterminata din memoria principala.  Programul de tratare a intreruperilor este o componenta a executorului. Efectul semnalului de intrerupere este de suspendare a procesului curent si de transfer a controlului catre executor.

            In acest punct executorul permite secventiatorului sa actualizeze tabelul de procese, apoi executorul selecteaza procesul care are cea mai mare prioritate dintre procesele gata de continuare din tabel si permite procesului selectat sa-si inceapa „felia” de timp.

            Abilitatea de oprire si de repornire ulterioara a unui proces este de importanta vitala pentru succesul unui sistem cu partajarea timpului. Calculatoarele proiectate pentru sisteme de operare cu partajarea timpului includ actiunea de salvare a valorii contorului de program, precum si continutul registrilor si al celulelor de memorie asociate, ca parte  a  reactiei  unitatii centrale  de  prelucrare  la semnalul de intrerupere. Ele dispun de obicei de instructiuni de limbaj masina pentru reincarcarea unei stari salvate anterior.

            Modelul  client/server

            Modulele sistemului de operare (intr-un sistem cu partajarea timpului) concureaza intre ele sub controlul executorului pentru „feliile” (cuantele) de timp.

            Pentru a dobandi accesul la un fisier aflat pe un dispozitiv de stocare de masa, orice proces trebuie sa obtina mai intai informatiile necesare de la administratorul de fisiere.

            Pentru simplificarea comunicatiei intre procese, componentele unui sistem de operare sunt adesea proiectate in conformitate cu modelul client/server:

                                                  Cerere


 Client

 Servicii  

 Server

                      

     Fig. 2.1.7.   Modelul  client / server

 

 

           

         Client

 

Server

        Client     

                      

 

         Client

         

 

                                                Server     

 

Client           Server

   

                                                            Client                                                                 

                                                       

Client                   Server 

 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          

Fig. 2.1.8. Structuri de comunicatie intre clienti si servere,  care opereaza

                       pe un calculator sau sunt distribuite pe mai multe calculatoare

            Acest model defineste cele doua roluri fundamentale pe care le pot juca diferitele componente: client (emite cereri catre unitati, respectiv server (satisface cererile emise de clienti).

            Aplicarea modelului client/server in proiectarea software-ului conduce la uniformizarea tipurilor de comunicatii care au loc in sistem.

            Daca  componentele  unui  sistem  de  operare  sunt  proiectate   ca servere si clienti, comunicatia intre componentele din cadrul aceluiasi calculator sau intre componente ale unor calculatoare aflate la mare distanta unele de altele, vezi fig. 2.1.8., are aceeasi forma.

            Atat timp cat o retea de calculatoare permite trimiterea de cereri si raspunsuri intre calculatoare, mai multi clienti si mai multe servere se pot distribui in orice configuratie convenabila, pentru reteaua respectiva.

            -  Gestionarea  proceselor  concurente

            Componentele nucleului unui sistem de operare se ocupa, in principal, cu alocarea resurselor calculatorului catre procesele ce se desfasoara in sistem. Atribuim, in acest caz, termenului resurse atat dispozitivele periferice ale calculatorului, cat si functiile de care dispune calculatorul. (Ex.: Administratorul de fisiere aloca atat accesul la fisierele existente, cat si spatiul pe disc pentru crearea de noi fisiere).

            Deoarece un calculator „nu gandeste” independent, ci doar executa instructiuni, pentru ca sistemul de operare sa functioneze fiabil, s-au dezvoltat algoritmi care sa acopere orice problema identificata ca posibila.

            Semafoare

            Sa luam in discutie un sistem de operare cu partajarea timpului si la care este conectata o singura imprimanta.

            Daca un proces este in situatia de a-si tipari rezultatele, el trebuie sa solicite sistemului de operare accesul la programul driver al imprimantei. In acest moment, sistemul de operare trebuie „sa decida” daca satisface aceasta cerere, verificand daca imprimanta nu este cumva utilizata de alt proces. Daca imprimanta este libera, sistemul de operare trebuie sa acorde permisiunea utilizarii ei si sa permita procesului sa continue.

            Daca doua procese ar capata simultan acces la imprimanta, rezultatul n-ar prezenta nici o utilitate pentru nici unul dintre ele.

            Solutia ar reprezenta-o utilizarea unui indicator (flag) – un bit in memoria ale carui stari sunt: 1 (setat) si  0 (sters).

Indicatorul sters arata ca imprimanta este libera, iar setat indica faptul ca imprimanta este deja alocata. Desi aceasta solutie pare buna la prima vedere, exista totusi o problema. Operatia de testare si eventual de setare a indicatorului necesita mai multi pasi-masina. Nu este exclus ca operatia sa fie intrerupta dupa detectarea unui indicator nul, dar inainte ca indicatorul sa fie setat, ceea ce face posibila aparitia situatiei urmatoare:

            Presupunem ca imprimanta este disponibila si un proces cere utilizarea sa. Indicatorul care corespunde imprimantei este verificat si gasit ca fiind sters, ceea ce indica ca imprimanta este disponibila. Dar in acel moment procesul este intrerupt si alt proces isi incepe felia de timp, si acest nou proces solicita utilizarea imprimantei. Indicatorul imprimantei este verificat din nou si gasit tot sters, deoarece procesul precedent a fost intrerupt inainte de a-l putea seta. In consecinta,  sistemul de operare permite celui de al doilea proces sa inceapa utilizarea imprimantei. Se ajunge deci la o situatie in care doua procese „utilizeaza” simultan aceeasi imprimanta.

            Problema este ca operatia de testare si (eventual) de setare a indicatorului trebuie sa fie terminata fara a fi intrerupta prin utilizarea instructiunilor de invalidare si validare a intreruperilor, disponibile in limbajele-masina.

            O alta metoda o reprezinta utilizarea instructiunii de testare si setare (test-and-set), care este disponibila in multe limbaje-masina. Unitatii centrale de prelucrare i se cere sa citeasca valoarea unui indicator, sa o memoreze si apoi sa seteze indicatorul, toate acestea printr-o singura instructiune-masina. Avantajul acestei metode este ca, de vreme ce unitatea centrala termina intotdeauna de executat o instructiune inainte de a sesiza o intrerupere, operatia de testare si setare a indicatorului, implementata cu o singura instructiune, nu poate fi intrerupta.

            Un indicator implementat corect, ca mai sus, poarta numele de semafor (semaphore). Prin similitudine o secventa de instructiuni care trebuie executata fara intreruperi corespunde unei portiuni de cale ferata pe care poate trece, la un moment dat, un singur tren. O asemenea secventa de instructiuni poarta numele de zona critica  (critical region). Inainte de a intra intr-o zona critica, un proces trebuie sa gaseasca nul semaforul asociat ei si sa-l seteze, apoi trebuie sa stearga semaforul dupa iesirea din zona critica.

            Interblocarea

            O alta problema care poate aparea in timpul alocarii resurselor este interblocarea (deadlock) ¾ situatia in care desfasurarea a doua sau mai multe procese este blocata, deoarece fiecare dintre ele asteapta acces la resursele alocate celuilalt.

            Un alt exemplu apare in situatia in care procesele creeaza noi procese pentru efectuarea unor operatii mai simple. Daca secventiatorul nu are destul spatiu  in tabelul  de procese  si  fiecare  proces  din  sistem trebuie sa creeze un proces suplimentar inainte de a-si termina treaba, atunci nici un proces nu va putea continua.

            La o analiza mai atenta, constatam ca poate sa apara o interblocare numai daca sunt satisfacute simultan urmatoarele trei conditii:

1) Exista o competitie pentru resurse care nu pot fi partajate.

2) Resursele  sunt  solicitate    in  mod   partial,  ceea ce inseamna ca,

    dispunand   de   anumite   resurse,   un  proces  va    reveni  ulterior  

    solicitand  mai multe.

3) O data ce o resursa a fost alocata, nu se poate forta eliberarea sa.

            Concluzia care rezulta este ca eliminarea interblocarii se poate face prin eliminarea uneia dintre cele trei conditii de mai sus.

Asa cum am vazut, pentru ca un calculator sa poata indeplini o anumita sarcina, trebuie sa-i furnizam un algoritm care sa-i spuna exact ce are de facut. In acest sens, in continuare vom prezenta cateva concepte fundamentale, ca:

            ¾ dezvoltarea si reprezentarea algoritmilor

            ¾ controlul iteractivitatii si recursivitatii algoritmilor.

De asemenea vor fi descrisi in continuare cativa algoritmi foarte cunoscuti de  cautare si sortare.

DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 201
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Distribuie URL

Adauga cod HTML in site

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2014. All rights reserved