Curs2

download Curs2

of 10

description

Curs 2

Transcript of Curs2

  • CURS 2 - SISTEME DE OPERARE

    Note de curs 2 Cristina Mandruta 1/10

    2. STRUCTURA SISTEMELOR DE OPERARE

    Sistemul de operare ofer contextul de execuie al programelor de pe nivelele software superioare.

    El este format din mai multe componente software a cror structurare difer de la un SO la altul.

    Proiectarea unui SO pornete de la specificarea tipului acestuia, ceea ce va conduce la luarea de decizii referitoare la strategiile de gestiune a resurselor i la algoritmii utilizai pentru implementarea funciilor sale.

    Un SO poate fi examinat din mai multe perspective: a serviciilor oferite, a interfeei utilizator i a interfeei de programare sau a arhitecturii1 sale interne.

    2.1 Modulele componente

    Un SO este format din mai multe componente software bine definite d.p.d.v. al intrrilor, ieirilor i funciilor lor. Principalele componente ale unui SO sunt cele pentru gestiunea proceselor, gestiunea memoriei principale, gestiunea fiierelor, gestiunea sistemului de I/E, gestiunea memoriei secundare, gestiunea operaiilor n reea, sistemul de protecie i modulul pentru interpretarea comenzilor utilizator.

    2.1.1 Gestiunea proceselor Proces - program n execuie. Necesit resurse, alocate de ctre SO la crearea sa i/sau pe parcursul

    execuiei. La creare i se transmit informaiile de iniializare. n timpul execuiei el solicit servicii ale SO prin intermediul apelurilor

    sistem. Program

    entitate pasiv (n general, coninutul unui fiier executabil de pe disc).

    Proces

    asociat unui program. entitate activ, nsoit de:

    o contor program, care specific urmtoarea instruciune ce trebuie executat,

    o resurse proprii de procesare (timp procesor), memorare (zon de memorie intern proprie, protejat), comunicare (fiiere deschise, acces la dispozitive de I/E).

    unitate de lucru n sistem. executat secvenial pn la terminarea sa.

    1 Modulele componente i interconectarea acestora.

  • CURS 2 - SISTEME DE OPERARE

    Note de curs 2 Cristina Mandruta 2/10

    ntr-un sistem cu multiprogramare, unui program i se pot asocia mai multe procese lansate n sistem i executate ca uniti separate, cu valori diferite pentru contorul program.

    ntr-un sistem cu multiprogramare se execut o colecie de procese, format din procesele sistemului de operare (execut cod sistem) i procesele utilizator) execut cod utilizator).

    Funcii ale SO relative la gestiunea proceselor:

    - creare / tergere procese (sistem i utilizator), - suspendare / reluare procese, - oferirea de mecanisme pentru

    sincronizare procese comunicare ntre procese soluionare blocaje permanente.

    2.1.2 Gestiunea memoriei principale Memoria principal (MP) array de cuvinte i octei identificate prin

    adres. Accesibil direct i rapid procesorului (CPU) i dispozitivelor de I/E. Procesorul:

    - citete instruciuni din MP, - citete/scrie date.

    Dispozitivele de I/E conectate la DMA - citesc/scriu informaii.

    nainte de a fi prelucrate de ctre procesor, trebuie ca instruciunile i

    datele s fie transferate n MP. Acestea se ncarc la adrese absolute din MP. Pentru a le accesa, procesorul genereaz aceste adrese absolute. La terminarea secvenei de operaii descris n programul ataat, procesul se ncheie iar spaiul ocupat de acesta n MP este eliberat pentru a fi utilizat de alte procese.

    n sistemele cu multiprogramare n MP sunt pstrate mai multe programe simultan i executate procese paralele n numele acestora. Gestiunea MP n vederea oferirii de spaiu suficient, independent i protejat fiecruia dintre procese, devine o sarcin complex a SO. Exist mai multe scheme de gestiune a MP, alegerea schemei i algoritmilor particulari utilizai fiind fcut funcie de o serie de factori dintre care este esenial configuraia hardware care poate s ofere suport pentru implementarea schemei aleas.

    Funcii ale SO relative la gestiunea MP:

    - evidena spaiilor ocupate i a proceselor ce le ocup, - decide ce proces se ncarc n memorie atunci cnd se

    elibereaz un spaiu, - alocare/dealocare spaii de memorie funcie de cerine.

    2.1.3 Gestiunea fiierelor Suporturi tipice pentru sistemul de fiiere:

  • CURS 2 - SISTEME DE OPERARE

    Note de curs 2 Cristina Mandruta 3/10

    - band magnetic - disc magnetic, disc optic.

    Mediile de memorare pentru memoria extern au caracteristici (timp acces, capacitate, vitez de transfer, tip acces) i organizare fizic proprii, diferite de la un mediu la altul.

    SO uniformizeaz accesul la aceste dispozitive i ofer un spaiu abstract de memorie extern format din uniti logice de memorie permanent numite fiiere.

    Fiier colecie de informaii2 definit de creatorul su. Conine n general program sau date (de tipuri foarte variate). Fiierele de date conin informaii a cror structur variaz de la f. simplu

    (fiiere text neformatate) la f. complex i rigid(fiiere ce conin baze de date). SO implementeaz conceptul abstract de fiier prin gestionarea

    corespunztoare a mediilorde memorie extern i a dispozitivelor care le controleaz (adaptoare).

    n cazul sistemelor multiutilizator, SO gestioneaz stabilirea drepturilor de acces la fiisre i accesul utilizatorilor conform drepturilor fiecruia.

    Funcii ale SO relative la gestiunea fiierelor:

    - creare/tergere fiiere, - creare/tergere directori, - executare de funcii primitive pentru manipulare fiiere i

    directori, - punerea n coresponden a spaiului logic format din

    fiiere cu spaiul fizic format din uniti de alocare pe mediile de memorie extern,

    - realizare de copii de siguran ale fiierelor, pe medii de memorare stabile.

    2.1.4 Gestiunea sistemului de I/E O responsabilitate esenial a SO este ascunderea fa de

    utilizator/programator a particularitilor constructive i funcionale ale dispozitivelor periferice. De exemplu, la SO de tip UNIX se ofer un spaiu uniform de I/E format din fiiere speciale structurate n directorul /dev.

    Subsistemul de I/E, component a SO, este format din: - componenta de gestiune a memoriei care include

    mecanismele de buffering, caching i spooling, - interfaa general pentru driver de dispozitiv, - driver-e specifice pentru dispozitivele hardware.

    Driver-ul de dispozitiv este singura component software contient de particularitile dispozitivului pentru care asigur interfaa software.

    2.1.5 Gestiunea memoriei secundare Memoria sistemului de calcul este structurat ierahic (fig. 2.1). 2 Legate printr-o anumit semantic.

  • CURS 2 - SISTEME DE OPERARE

    Note de curs 2 Cristina Mandruta 4/10

    Deoarece memoria principal are capacitate insuficient i coninut volatil,

    sistemele de calcul ofer o memorie secundar suprapus, n general, pe dispozitive de tip disc. O parte a acesteia este folosit ca extensie a memoriei principale i gestionat de SO n acest scop, iar o alt parte conine unul sau mai multe sisteme de fiiere.

    Funcii ale SO relative la gestiunea memoriei secundare: - gestiunea spaiului liber, - alocarea spaiului disponibil, - planificarea lucrului cu unitile de disc.

    SO utilizeaz algoritmi de gestiune a memoriei secundare proiectai astfel nct accesul i transferul de informaie se fac n mod eficient, deoarece memoria secundar este utilizat frecvent n timpul funcionrii sistemului de calcul.

    2.1.6 Gestiunea operaiilor n reea O colecie de elemente de procesare, fiecare avnd memorie i ceas

    propriu, conectate ntr-o reea de comunicare, reprezint suportul hardware pentru un sistem distribuit.

    Reeaua de comunicare poate fi configurat n diferite moduri. Proiectarea unei reele implic alegerea de soluii pentru rutarea mesajelor, strategia de conectare, rezolvarea conflictelor i asigurarea securitii.

    Sistemul distribuit are ca suport elemente de procesare eterogene, pe care le unific ntr-un sistem coerent format din resurse de procesare, memorare i comunicare oferit utilizatorilor si.

    SO generalizeaz accesul la reea la o form de acces la un sistem de fiiere, iar detaliile legate de utilizarea reelei sunt incluse n driver-ul intefeei la reea. Protocoalele create pentru sistemele distribuite au un impact major asupra popularitii i utilitii sistemului. Astfel, WWW a creat o metod de acces la informaii partajate care a extins protocoalele FTP (transfer fiiere) i NFS (sistem de fiiere n reea) i a definit un nou protocol HTTP (transfer hipertext i hipermedia) pentru comunicarea ntre clientul i server-ul Web.

    Regitri procesor

    Cache

    Memorie principal

    Memorie secundar

    Memorie de arhivare

    Fig 2.1 Ierarhie a tipurilor de memorie

  • CURS 2 - SISTEME DE OPERARE

    Note de curs 2 Cristina Mandruta 5/10

    2.1.7 Sistemul de protecie ntr-un sistem multitasking n care exist utilizatori multipli i activiti

    concurente, SO trebuie s asigure desfurarea independent i protejat a proceselor precum i protejarea informaiilor prelucrate de acestea. Pentru acesta fiecare proces se desfoar ntr-un spaiu de resurse propriu, izolat de spaiile celorlalte procese. Acesta este un spaiu de resurse virtuale care este suprapus peste spaiul resurselor fizice de ctre SO, cu pstrarea izolrii fiecrui spaiu virtual.

    Protecia reprezint un mecanism care permite preluarea unui set de restricii i folosirea acestora ca reguli pentru controlul accesului programelor, proceselor i utilizatorilor la resursele unui sistem de calcul.

    Protecia sporete disponibilitatea sistemului prin detectarea erorilor latente la interfaa dintre subsistemele componente, prevenind astfel contaminarea lor de la un subsistem cu funcionare eronata.

    De asemenea, este esenial protecia resurselor fa de utilizatorii neautorizai sau incompeteni. Un sistem orientat pe protecie ofer mijloacele prin care se pot diferenia utilizrile autorizate de cele neutorizate.

    2.1.8 Modulul pentru interpretarea comenzilor Interpretorul de comenzi interfaa dintre utilizator i sistemul de operare. n general nu este inclus n nucleul SO i se lanseaz la iniiera unei

    activiti sau la prima conectare a unui utilizator la sistem. Preia instruciuni de control de la utilizator pe care le execut n regim

    interpretativ. Aceste instruciuni de control se refer la crearea i gestiunea proceselor, la manipularea spaiului de I/E, la gestiunea memoriei secundare, a celei principale, la accesul la e de fiiere, la protecie sau la operaii n reea.

    Poate prezenta o interfa n mod linie de comand3, sau n mod menu (text sau grafic). Cele mai rspndite SO implementeaz standardul XWindows de interfaare cu aplicaiile, una dintre aplicaii fiind cea cere ofer funcii de operare prin intermediul acestui modul. Acest standard are la baz utilizarea att a tastaturii ct i a dispozitivului mouse, reprezentarea iconic a obiectelor specifice aplicaiei (ex. fiier sau folder4 pentru interpretorul de comenzi).

    n modul de lucru linie de comand operatorul are un acces mai fin la funciile oferite de sistemul de operare, obinut ns ntr-o manier mai puin prietenoas.

    2.2 Serviciile oferite de sistemul de operare

    SO ofer contextul de execuie a programelor. Acesta este nsoit de de servicii generale i de servicii specifice fiecrui sistem de operare

    Serviciile generale ale SO sunt urmtoarele: 1. Servicii orientate ctre utilizator

    - executarea programelor, - accesul la spaiul de I/E,

    3 Caz n care acest modul se numete interpretorul liniei de comand sau shell. 4 Fiier de tip director, tip utilizat pentru organizarea fiierelor pe disc.

  • CURS 2 - SISTEME DE OPERARE

    Note de curs 2 Cristina Mandruta 6/10

    - manipularea sistemelor de fiiere, - comunicare ntre procese prin memorie partajat sau prin

    transfer de mesaje, - detectarea erorilor pentru fiecare nivel al sistemului,

    corectarea lor acolo unde este posibil i/sau informarea utilizatorului.

    2. Servicii orientate pe exploatarea eficient a resurselor sistemului - alocarea resurselor - evidena i contorizarea utilizrii resurselor - protecia.

    2.3 Apeluri sistem

    La interfaa cu componentele software de nivel superior, sistemul de operare ofer un set de funcii pentru programarea aplicaiilor (API aplication programing interface) accesibile din programe prin apeluri sistem.

    Apelurile sistem sunt accesibile ca atare de la nivelul limbajului de asamblare sau prin intermediul unor funcii de bibliotec ale limbajelor de nivel nalt. Aceste funcii realizeaz mpachetarea parametrilor de apel i apelul propriu-zis la rutina corespunztoare n momentul execuiei.

    API oferit de SO este disponibil compilatoarelor limbajelor de nivel nalt. Exemplu de utilizare a apelurilor sistem: Program ce citete informaii dintr-un fiier i le scrie n altul. Operaii:

    - indicarea numelor celor dou fiiere n regim interactiv va necesita apeluri sistem pentru afiare mesaj prompt pe dispozitivul de ieire i pentru citire date de la dispozitivul de intrare,

    - deschiderea fiierului de intrare (apel sistem), cu tratarea erorilor posibile (ex. fiier inexistent) ce poate ncesita un nou apel sistem cel puin pentru afiare pe ecran,

    - crearea fiierului de ieire (apel sistem), cu tratarea erorilor posibile (ex. fiier existent), cu eventual apel sistem pentru preluare de la utilizator a deciziei acestuia,

    - citire din fiierul surs (apel sistem) cu tratare cazuri limit i erori,

    - scriere n fiierul destinaie (apel sistem) cu tratare cazuri limit i erori,

    - nchidere fiiere (apeluri sistem corespunztoare). Fiecare apel sistem este nsoit de un set de parametri (ex. nume sau alt

    identificator al fiierului, adresa i dimensiunea spaiului de memorie cu care are loc transferul de date, etc.). Aceti parametri pot fi transferai prin intermediul regitrilor procesorului sau prin intermediul unei zone de memorie localizat prin coninutul unor regitrii specializai ai microprocesorului, sau prin stiv.

    Apelurile sistem sunt mprite n cinci categorii majore: controlul proceselor, gestiune fiiere, gestiune dispozitive fizice, ntreinerea informaiilor i comunicare.

  • CURS 2 - SISTEME DE OPERARE

    Note de curs 2 Cristina Mandruta 7/10

    2.3.1 Controlul proceselor Tipurile de apeluri sistem:

    - end (terminare normal), abort (terminare anormal) - ncrcare, execuie - creare, terminare - aflare/setare atribute - ateptare proces, interval de timp - ateptare/semnalizare a apariiei unui eveniment - alocare/eliberare memorie.

    Dac procesul ajunge ntr-o stare anormal sistemul va genera un mesaj de eroare i poate afia o copie a coninutului MP (dump de meorie) i lansarea unei secvee de depanare (debugger) pentru determinarea cauzei erorii.

    La finalizarea unui proces controlul este transferat ctre interpretorul de comenzi care va prelua urmtoarea comand dat de utilizator sau decizia acestuia n caz de eroare.

    n sistemele cu multiprogramare un proces din sistem poate ncrca i lansa n execuie un alt proces. La terminarea acestui nou proces controlul poate fi returnat procesului iniial, dac execuia acestuia a fost permis n paralel cu cea a procesului lansat de el, sau interpretorului de comenzi. Transferul controlului este realizat cu ajutorul unui mecanism care permite gestionarea unui set de procese, mecanism ce utilizeaz atribute ataate proceselor (prioritate, timp maxim pentru execuie, etc.)

    De asemenea, se pot indica perioade de ateptare pentru terminarea unui alt proces sau ateptarea apariiei unui eveniment (wait event) lansat de un alt proces (signal event).

    Exemple: - MS_DOS pentru sistem cu monoprogramare i

    posibilitatea de a infiltra procese TSR lansate periodic pe ntreruperea de la timer.,

    - Linux pentru sistem cu multiprogramare ce ofer operaiile fork i exec n acest sens.

    2.3.2 Gestiunea fiierelor Tipurile de apeluri sistem:

    - creare/tergere fiier - deschidere/nchidere fiier - citire, scriere, repoziionale din/n fiier - aflare/setare atribute fiier.

    Aceste apeluri sistem necesit ca parametri numele sau un alt identificator al fiierului, posibil i atribute ale acestuia. Pentru a pregti lucrul cu fiierul acesta este dechis. Apoi se pot executa operaii tipice de transfer informaii de la (citire) sau ctre (scriere) fiier. La ncheierea operaiilor cu fiierul se solicit nchiderea sa.

    Principalele atribute ale unui fiier sunt: nume, tip, protecie, data i ora ultimei modificri, a ultimului acces, dimensiune, proprietar, creator, etc.

  • CURS 2 - SISTEME DE OPERARE

    Note de curs 2 Cristina Mandruta 8/10

    2.3.3 Gestiunea dispozitivelor Tipurile de apeluri sistem:

    - cerere acces/eliberare dispozitiv - citire, scriere, repoziionare, - aflare/setare atribute - ataare/detaare de dispozitive logice.

    Pe parcursul execuiei sale un proces poate necesita resurse adiionale fa de cele alocate pn n acel moment. Dac resursele solicitate sunt libere atunci ele sunt acordate procesului. Altfel procesul va atepta eliberarea de resurse suficiente pentru a putea continua.

    Accesul la un dispozitiv se face doar dac acesta este disponibil. n regim de lucru cu utilizatori multipli trebuie obinut accesul exclusiv sau partajat la dispozitivele din sistem, funcie de tipul de acces. Apoi au loc opraiile de transfer de informaii cu dispozitivul respectiv, dup care acesta este eliberat.

    Fiierele pot fi considerate i ele dispozitive (virtuale), obinute i eliberate utiliznd apelurile de deschidere (la care se specific i tipurile de operaii ce se vor executa, ceea ce va determina tipul de acces obinut), respectiv de nchidere fiier.

    Datorit similaritii dintre operaiile cu fiiere i cele cu dispozitivele periferice ca atare, majoritatea sistemelor de operare consider dispozitivele speciale ca fiind fiiere speciale, unificnd spaiul de I/E ntr-un spaiu virtual format din fiiere propriu-zise i fiiere speciale.

    2.3.4 ntreinerea informaiilor Tipurile de apeluri sistem:

    - aflare/setare dat i timp, - aflare/setare dat sistem, - aflare/setare atribute obiect (proces, fiier, dispozitiv), - aflare numr de utilizatori conectai, - aflare informaii despre SO (tip, versiune, etc.), - aflare spaiu de memorie intern liber, - aflare spaiu liber pe disc.

    Aceste apeluri sistem sunt destinate transferului de informaii ntre programele utilizator i sistemul de operare.

    2.3.5 Comunicare Tipurile de apeluri sistem:

    - creare/tergere conexiune, - trimitere/recepie mesaj, - transfer informaii de stare, - ataare/detaare dispozitive aflate la distan.

    n sistemele de calcul exist dou modele eseniale de comunicare: - prin transfer de mesaje ntre procese, - prin memorie comun, partajat de procesele care

    comunic.

  • CURS 2 - SISTEME DE OPERARE

    Note de curs 2 Cristina Mandruta 9/10

    n cazul transferului de mesaje SO funcioneaz ca intermediar. Acestuia i se solicit deschiderea unei conexiuni cu un alt proces aflat pe acelai calculator sau la distan.

    Pentru identificarea interlocutorului se folosete identificatorul de proces i identificatorul calculatorului gazd dac procesul se afl la distan. O schem clasic de comunicare ste format din dou procese. Procesul client care solicit deschiderea unei conexiuni i procesul server, de tip daemon, care ateapt solicitarea pentru deschiderea unei conexiuni.

    Apelurile sistem utilizate n acest tip de comunicare sunt: open-close connection (deschidere/nchidere conexiune), get hostid (identificator min gazd), get processid (identificator proces server), read (receive) message, write (send) message.

    n cazul transferurilor prin memorie partajat operaiile cu memoria sunt realizate ntr-un spaiu de adrese comun pentru dou sau mai multe procese. Unele procese scriu informaii n acest spaiu iar altele citesc informaii din acelai spaiu, realizndu-se astfel transefrul de date ntre procese conform logicii aplicaiei. Structura spaiului comun i modul de acces la acesta sunt gestionate de procesele comunicante, fr intervenia SO. Tot aceste procese sunt responsabile cu asigurarea coerenei informaiilor transferate ntre ele i cu pstrarea consistenei memoriei comune. Viteza semnificativ de transfer asigurat de acest metod este pltit cu complexitatea operaiilor de asigurare a coerenei i consistenei.

    Transferul prin mesaje este preferat atunci cnd se transfer date puine i n special la distan. Transferul prin memorie comun recomandat atunci cnd cantitatea de informaii de transferat este semnificativ.

    2.4 Programe de sistem

    Programele de sistem formeaz o component software destinat dezvoltrii i gestionrii execuiei programelor n mod convenabil pentru programator. Principalele categorii de programe de sistem sunt orientate pe:

    - gestiunea fiierelor manipularea fiierelor i directorilor, - acces la informaii de stare a sistemului data i ora,

    spaiu disponibil n MP i pe discuri, numr de utilizatori conectai, etc.

    - modificarea coninutului fiierelor ex. editoare text, - suport pentru limbajele de programare compilator,

    asamblor, interpretor, funcie de tipul limbajului, - ncrcare programe i lansare n execuie ncrcare cu

    realocare memorie i creare de legturi ntre modulele unui program, debugger-e,

    - comunicaii creare de legturi virtuale ntre procese, utilizatori, calculatoare diferite, transfer de mesaje, mavigare n web, acces pot electronic, conectare la un calculator aflat la distan, transfer de fiiere ntre calculatoare diferite.

  • CURS 2 - SISTEME DE OPERARE

    Note de curs 2 Cristina Mandruta 10/10

    Tot la acest nivel se afl i interpretorul de comenzi al SO. Acesta este de fapt o interfa de preluare a comenzilor sistem i de lansare a modulului corespunztor executrii fiecrei comenzi. De aceea se poate aduga simplu o nou comand ctre sistemul de operare prin implementarea acesteia sub form de modul executabil al crui nume reprezint numele noii comenzi.

    n plus, sistemele de operare sunt n general nsoite i de pachete de programe utilitare (numite utilitare sistem): procesor texte, procesor calcul tabelar, compilatoare, sisteme de baze de date, browser Web, etc.

    2.5 Categorii de utilizatori ai sistemlor de operare

    Utilizatorii sistemlor de operare se mpart n 3 categorii. Utilizatorii comuni se adreseaz interpretorului de comenzi accesibil prin

    intermediul unei interfee de operare n mod linie de comand, menu, grafic. Acetia pot executa operaiile oferite de interpretorul de comenzi, n general operaii pentru gestionarea proceselor (lansare), fiierelor i fiierelor speciale (dispozitive de I/E), pentru accesul n reea.

    Utilizatorii de tip programator acceseaz sistemul de operare prin intermediul apelurilor sistem accesibile n interfeele de programare a aplicaiilor (API) oferite de limbajul utilizat.

    Utilizatorii de tip administrator de sistem de operare au n plus fa de utilizatorii comuni posibilitatea (i responsabilitatea) de a accesa operaii de administrare a utilizatorilor, resurselor i drepturilor de acces a utilizatorilor la resurse. Ei folosesc n general linia de comand i programe specializate pentru operaiile de administrare a sistemului de operare.