Functii ale SO Din perspectiva nivelului superior(software): SO furnizează utilizatorului echivalentul unei maşini virtuale (maşină extinsa) care este mai uşor de programat decât nivelul hardware peste care se suprapune. Oferă un limbaj virtual. Scop ->de a oferi un acces “convenabil” la sistemul de calcul (GUI – Graphic User Interface) Din perspectiva nivelului inferior (hardware) : SO păstrează evidenŃa resurselor şi utilizatorilor acestora, garantează şi verifică accesul la resurse, mediază cererile conflictuale de la diferite programe şi diferiŃi utilizatori. Ofera resurse virtuale. Scop -> de a asigura o operare eficientă a acestor resurse mai ales în condiŃiile sistemelor multiutilizator în care ele sunt partajate de utilizatori multipli.
Curs SO - lect. dr. Ozten Chelai, 2009-2010 2
Nivelurile sistemului de operare Nivelul fizic include componenta firmware a sistemului de calcul; Device Driver-e oferă servicii privind lucrul cu componentele hardware ale sistemului de calcul Loaderul (incarcatorul) program care lansează încărcarea automată a sistemului de operare, la pornirea calculatorului. La acest nivel, comunicarea cu sistemul de calcul se realizează prin intermediul sistemului de întreruperi, prin care se semnalează anumite evenimente apărute în sistem; la apariŃia unei întreruperi, controlul este dat unor rutine de pe nivelul următor al sistemului de operare; Exemplu : la PC-uri, componenta sistemului de operare de pe nivelul fizic este componenta ROM-BIOS. Aceasta include programe grupate după funcŃia lor în : programele care se execută la pornirea sistemului de calcul : programul POST (Power- On Self-Test), care verifică starea de funcŃionare a sistemului de calcul şi programele de iniŃializare a activităŃii sistemului (rutina de încărcare a primului sector al discului sistem) ; rutinele care fac posibilă utilizarea componentelor fizice ale sistemului de calcul, rutine numite drivere fizice ; ele oferă servicii pentru lucrul cu configuraŃia hardware standard a sistemului de calcul : consola, tastatura, imprimanta, perifericele standard şi ceasul sistemului. Avantajul acestei soluŃii este că asigură independenŃa software-ului de pe nivelul logic faŃă de caracteristicile constructive ale componentelor hardware de bază, ele fiind tratate unitar, prin intermediul driverelor. Nivelul logic include partea de programe a sistemului de operare şi oferă utilizatorului mijloacele prin care poate exploata sistemul de calcul; comunicarea utilizatorului cu sistemul de calcul se realizează prin CLI (Command Line) comenzi adresate sistemului de operare sau prin intermediul instrucŃiunilor programelor pe care le execută; GUI (Graphic User Interface) comunicarea se realizează prin intermediul mesajelor transmise de sistemul de operare către utilizator. Programele nivelului logic adresează dispozitivele hardware prin intermediul programelor nivelului fizic al sistemului de operare şi din acest motiv ele sunt independente de structura hardware a sistemului de calcul : nivelul fizic constituie o interfaŃă între hardware şi nivelul logic al sistemului de operare. Componente functionale Componenta de comandă şi control, care cuprinde programe ce au rolul de a asigura utilizarea eficientă a resurselor sistemului de calcul. Componenta de servicii, care cuprinde programe destinate minimizării efortului uman implicat de utilizarea sistemului de calcul. Componenta de comanda si control Activitati: lansare în execuŃie a unui program, gestionare a alocării resurselor sistemului de calcul, pe toată durata executării programului, ca şi operaŃiile efectuate la încheierea execuŃiei acestuia FuncŃii: planificarea, lansarea şi urmărirea execuŃiei programelor gestionarea resurselor sistemului de calcul depistarea şi tratarea evenimentelor deosebite care apar în timpul execuŃiei programelor asigurarea protecŃiei informaŃiilor manevrate de diverse programe (aceste programe pot fi ale sistemului de operare sau programe utilizator). Parti componente necesare realizarii functiilor: nucleul sistemului de operare, cu funcŃia de coordonare a activităŃii sistemului de calcul şi a celorlalte componente ale sistemului de operare. Această componentă este rezidentă în memoria internă pe toată durata funcŃionării sistemului de calcul şi se mai numeşte monitorul rezident al sistemului de operare. câte o componentă de gestionare pentru fiecare tip de resursă din sistem. FuncŃia de protecŃie a informaŃiei între procese şi funcŃia de tratare a erorilor se realizează în mod specific, pentru fiecare tip de resursă, în cadrul componentei de gestionare a resursei. Componenta de servicii S-a dezvoltat odată cu cerinŃele utilizatorilor sistemelor de calcul. Gradul de accesibilitate al unui sistem de calcul, ca şi complexitatea sarcinilor pe care utilizatorul le poate rezolva cu ajutorul lui, sunt influenŃate de existenŃa şi eficienŃa programelor de sistem incluse în componenta de servicii. Programele de servicii se execută sub supravegherea programelor de comandă şi control, ca orice program de aplicaŃie. Această componentă oferă servicii diferite, de la un sistem de operare la altul, sau chiar între variante diferite ale aceluiaşi sistem de operare. Componenta de servicii a unui sistem de operare poate include: unul sau mai multe programe încărcător (loader) pentru sistemul de operare, care lansează automat programe ale sistemului de operare la pornirea sistemului de calcul ; programe de tip interpretor de comenzi ale sistemului de operare, adică acele programe care preiau comenzile adresate sistemului de operare de către utilizator, asigurând astfel comunicarea între utilizator şi sistemul de operare; funcŃia de gestionare a dialogului cu utilizatorul, fie în mod comandă (CLI), oferind mecanisme de editare a comenzilor, fie în mod grafic, prin intermediul unei interfeŃe grafice cu utilizatorul (GUI - Graphical User Interface) ; funcŃia de înlănŃuire prin date a comenzilor sistemului de operare (mecanismul pipe), de interpretare a comenzilor sistemului de operare agregate sub forma unor macrouri sau a unor fişiere de comenzi ; funcŃia de asistenŃă « on line » pentru sistemul de operare, cunoscută ca Help-ul sistemului de operare; funcŃia de tipul « plug and play » care oferă facilităŃi de autodetecŃie a echipamentelor nou instalate în sistem şi permite reconfigurarea hardware, cu uşurinŃă, a sistemului, ca şi notificarea schimbării configurării sistemului, de exemplu prin căderea unui echipament din sistem; funcŃia care oferă suportul pentru utilizarea limbii naŃionale, adică adaptarea informaŃiilor cu caracter naŃional (semn monetar, marcă zecimală) conform Ńării selectate ; funcŃii pentru configurarea personalizată a mediului de lucru cu sistemul de calcul, de exemplu pentru utilizatori cu opŃiuni speciale de manevrare a echipamentelor (tastatură, mouse, etc.) Clasificare SO dpdv al executiei proceselor Pentru utilizarea eficientă a resurselor sistemului de calcul, unele sisteme de operare pot gestiona execuŃia concurentă a mai multor procese, asigurând proceselor din sistem accesul concurent la resursele sistemului sau partajarea resurselor. Aceasta înseamnă că, la un moment dat, în sistem se pot afla în execuŃie mai multe procese care concurează între ele pentru accesul la resursele sistemului iar sistemul de operare gestionează resursele sistemului pentru satisfacerea cât mai multor cereri ale acestor procese pentru alocarea de resurse. O caracteristică importantă a unui sistem de operare este măsura în care poate asigura execuŃia concurentă a proceselor. După acest criteriu, sistemele de operare pot fi: monotasking, care nu asigură execuŃia concurentă şi nici partajarea resurselor între mai multe procese. Sub controlul unui sistem de operare monotasking, la un moment dat, în sistemul de calcul se poate executa un singur program; acesta rămâne activ din momentul lansării lui în execuŃie şi până la terminarea lui completă; cât timp este în execuŃie, programul are acces la toate resursele sistemului de calcul. Exemplu: sistemele de operare MS-DOS şi CP/M sunt sisteme de operare monotasking; în timpul executării unui program, sistemul de operare pierde controlul asupra sistemului, în favoarea programului aflat în execuŃie, care preia controlul până în momentul încheierii execuŃiei sale. multitasking sunt acele sisteme de operare care asigură execuŃia concurentă a mai multor procese care există concomitent în sistem. Exemple: sistemele de operare Windows, Unix sunt sisteme multitasking. AplicaŃia Windows 3.x rulată sub sistemul de operare monotasking MS-DOS permite exploatarea în regim multitasking a aplicaŃiilor Windows. În plus faŃă de sistemele de operare monotasking, pentru un sistem de operare multitasking trebuiesc definite strategiile de alocare a resurselor la procesele concurente, strategii care vor fi folosite de componentele sistemului de operare pentru gestionarea resurselor. Clasificare SO dpdv al interactiunii cu utilizatorii Din punctul de vedere al accesului utilizatorilor la sistem şi al gradului de interacŃiune cu sistemul, sistemele de operare pot fi: seriale, acele sisteme de operare pentru care gradul de interacŃiune cu utilizatorul, în timpul prelucrărilor, este nul. De cele mai multe ori, interfaŃa dintre sistemul de operare si utilizator nu dispune de un limbaj de comandă accesibil utilizatorului obişnuit, motiv pentru care comunicarea dintre utilizator şi sistem nu este directă ci mediată de persoane specializate ca operatori de calculator. În timpul execuŃiei lucrării sale, utilizatorul pierde total controlul asupra prelucrării; el furnizează datele care se prelucrează odată cu formularea cererii de prelucrare şi primeşte rezultatele prelucrării la încheierea execuŃiei. interactive: sistemele de operare care permit comunicarea directă între utilizator şi sistemul de calcul, prin intermediul unui limbaj dedicat acestui scop (limbajul de comandă al sistemului de operare sau interfaa grafică utilizator). În plus, utilizatorul poate urmări modul în care se execută programul său şi poate influenŃa, în anumite condiŃii, execuŃia acestuia. Un sistem de operare interactiv presupune o arhitectură a sistemului de calcul care să cuprindă echipamente standard de intrare/ieşire dedicate comunicării utilizatorului cu sistemul de operare (terminale I/O); aceste echipamente cuprind, de obicei, o tastatură, ca echipament standard de intrare şi un dispozitiv de vizualizare a informaŃiilor de ieşire (un display sau o mini- imprimantă). Sistemele de operare interactive pot fi: monouser, când comunicarea cu sistemul de calcul este posibilă, la un moment dat, numai pentru un singur utilizator, prin intermediul consolei sistemului de calcul; multiuser, când sistemul de operare poate gestiona comunicarea concomitentă cu mai mulŃi utilizatori, conectaŃi la sistemul de calcul prin intermediul echipamentelor terminale de intrare/ieşire. Exemplu: MS-DOS este un sistem interactiv monouser; Unix este un sistem interactiv multiuser. Clasificare SO dpdv al repartizarii sarcinilor nucleului sisteme cu nucleu monolitic, în care nucleul cumulează aproape întreaga funcŃionalitate a sistemului de operare; exemple tipice în acest sens sunt sistemele din familia Unix, unde nucleul include, între altele, chiar şi driverele care gestionează funcŃionarea perifericelor, sisteme de tip microkernel, în care multe din sarcinile sistemului de operare sunt preluate de unele procese specializate (numite de obicei servere), astfel încât nucleul este degrevat de o parte din atribuŃiile sale Categorii de SO Sisteme mainframe Sisteme cu prelucrare in loturi de lucrari Sisteme cu dispozitive periferice de tehnologii vechi (cititoare cartele, banda mg, imprimanta ) cu o consola monouser si dispozitiv de afisare mesaje, erori Activitatile reprezentate de joburi grupate (bached) in loturi in functie de cerintele de resurse Functia principala a SO = transferul controlului de la un job la altul, iar cu introducere unitatilor de disc, planificarea joburilor (job scheduling) Dezavantaj – procesor inactiv in operatiile de I/E Sisteme cu multiprogramare Planificarea activitatilor a.i. cele ce realizeaza operatii de I/E sunt deplanificate Necesara comutarea contextului i.e. salvarea/restaurarea Gestionarea automata aresurselor (memorie, timp procesor, spatiu de I/E) Sisteme cu partajarea timpului (time-sharing, multitasking) Multitasking = multiprogramare cu multiuser (mai multi utilizatori, fiecare cu mai multe joburi) comutari frecvente de context, fiecare activitate cu resursele virtuale (propri) Suport pentru concurenta la resurse Suport pentru comunicarea intre procese si sincroniuzare Curs SO - lect. dr. Ozten Chelai, 2009-2010 10 Categorii de SO Sisteme desktop SO pe PC-uri initial monotasking, apoi multitasking Exemple: UNIX (Linux, Free BSD, etc), Windows, MacOS, etc. Caracteristici mainframe-uri (lucru in retea, securitate) + usurinta in utilizare Sisteme multiprocesor Sisteme cu mai multe procesoare (vezi clasificare Flynn) Sisteme distribuite Sisteme client-server Sisteme care implementeaza paradigma Client-Server (centralizate si asincrone) Servere specializate care raspund la cerile calculatoarelor client; Compute-server furnizeaza o interfata la cererile de seviciu ale clientilor (ex. database) File-server furnizeaza o interfata la stocarea/redarea fisierelor; etc Sisteme Peer-to-Peer Sisteme in retea descentralizate P2P (exemplu pentru Internet), nu exista distinctie intre client si server Nodurile se considera perechi (peers) actionand si ca client si ca server Operatii: Inregistrare a serviciului Difuzare a cererii de serviciu si raspunsului printr-un protocol de descoperire Exemple: Napster and Gnutella Sisteme Clustered (de grup) Asocierea mai multe calculatoare intr-un nod pentru realizarea unei activitati Grup asimetric – 2 calculatoare ce se monitorizeaza reciproc Grup simetric - > 2 calculatoare ce se monitorizeaza Grup paralel - permite acces la o memorie poartajata 11 Curs SO - lect. dr. Ozten Chelai, 2009-2010 Categorii de SO Sisteme de timp-real Sisteme in care timpul este critic (timeout-uri) in aplicatii industriale, de control, etc. Tipuri – hard RT si soft RT Sisteme manuale pentru dispozitive mobile cu functionalitate redusa SO pe dipozitive mobile (PDA, telefoane, etc) cu resurse limitate Inferno (sistem de operare iniŃial distribuit de Bell Labs) Palm OS creat de Palm Inc; acum parte din PalmSource EPOC iniŃial creat de Psion (UK), a devenit Symbian, numele preferat este Symbian OS Windows CE, creat de Microsoft Pocket PC creat de Microsoft, o variantă de Windows CE. Windows Mobile creat de Microsoft, o variantă de Windows CE. Linux în Sharp Zaurus şi Ipaq DOS în Poqet PC Newton OS în Apple Newton Messagepad VT-OS for the Vtech Helio Internet Tablet OS bazat pe Debian Linux şi utilizat de Nokia pentru Nokia 770, N800 şi N810 Internet Tablets. SO pentru Smartphone-uri RIM BlackBerry OS Embedded Linux Open Handset Alliance Android Openmoko Linux , Mobilinux, MontaVista, MotoMagx, Qtopia, LiMo Platform Apple iPhone OS Sun Microsystems JavaFX Mobile Palm Palm OS Symbian Symbian OS Microsoft Windows CE Microsoft Windows Mobile
Curs SO - lect. dr. Ozten Chelai, 2009-2010 12
Medii de calcul
Traditional (calculator PC conectat la retea)
Web (suport pentru Internet) Webul a devenit omniprezent (ubiquitous) PC-uri si noi exchipamente permit acces web O noua categorie de echipamente server pentru gestiunea traficului web: load balancers Utilizarea SO existente (Windows, Linux, etc)