Notiuni de sisteme de operare si retele de calculatoare (Linux)
L. Miclea all right reserved Vers. 2.0 I.2.1
2. Structura sistemelor de operare
2 I.2 Cuprins: - Componente sistem - Servicii oferite de SO - Apeluri sistem - Programe sistem - Structura sistem - Masini virtuale - Proiectarea si implementarea sistem - Generarea sistem Componentele de baza ale sistemului - Gestiunea proceselor - Gestiunea memoriei interne - Gestiunea memoriei externe - Gestiunea sistemului de I/E - Gestiunea fisierelor - Sistemul de protectie - Functii de retea - Interpretorul de comenzi
3 I.2 Gestiunea proceselor Un proces este un program n executie. Pentru a-si ndeplinii sarcinile, un proces necesita anumite resurse, incluznd timpul UCP, memorie, fisiere si dispozitive de I/E. Pentru gestionarea proceselor, SO este responsabil cu urmatoarele activitati: creare si stergere proces. suspendare si reactivare proces. furnizarea de mecanisme pentru: - sincronizare procese - comunicare ntre procese
Notiuni de sisteme de operare si retele de calculatoare (Linux) L. Miclea all right reserved Vers. 2.0 I.2.2
4 I.2 Gestiunea memoriei interne Memoria este un tablou foarte mare de cuvinte sau octeti, fiecare cu propria sa adresa. Ea este un depozit de date usor accesibile, partajate de UCP si dispozitivele de I/E. Memoria interna este un dispozitiv de pastrare a datelor volatil. Ea si pierde continutul la oprirea alimentarii sau la defect. Pentru gestionarea memoriei, SO trebuie sa execute urmatoarele activitati: - sa urmareasca care parte a memoriei este utilizata la momentul curent si de catre cine; - sa decida care procese vor fi ncarcate cnd spatiul de memorie devine disponibil. - sa aloce si sa dealoce spatiu de memorie cnd este necesar.
5 I.2 Gestiunea memoriei externe Deoarece memoria interna este volatila si prea mica pentru a pastra toate datele si programele permanent, sistemul de calcul trebuie sa poata salva continutul acesteia. Cele mai multe sisteme de calcul utilizeaza ca mediu de memorare on-line att pentru date ct si pentru programe discul magnetic. Pentru gestiunea discului magnetic, SO trebuie sa execute urmatoarele activitati: gestiunea spatiului liber alocarea de spatiu de memorare planificarea discului Gestiunea sistemului de I /E Sistemul de I/E consta din: Memoria tampon (cache) - O interfata generica pentru drivere de dispozitiv - Drivere pentru dispozitive hardware specifice
6 I.2 Gestiunea fisierelor Un fisier este o colectie de informatii nrudite definite de creatorul sau. n mod uzual fisierele reprezinta programe (att sursa ct si obiect) si date. Pentru gestiunea fisierelor, SO trebuie sa execute urmatoarele activitati: Creare si stergere fisier. Creare si stergere director. Suport pentru primitive de manipulare fisiere si directoare. Pastrarea fisierelor n memoria externa. Sistemul de protectie Protectia se refera la un mecanism de control a accesului programelor, proceselor sau utilizatorilor la resursele sistem si utilizator. Mecanismul de protectie trebuie sa: distinga ntre utilizarea autorizata si neautorizata. specifice controalele ce se impun. furnizeze un mijloc de fortare.
Notiuni de sisteme de operare si retele de calculatoare (Linux) L. Miclea all right reserved Vers. 2.0 I.2.3
7 I.2 Lucrul n retea (Sisteme distribuite) Un sistem distribuit este o colectie de procesoare care nu partajeaza memoria sau un clock. Fiecare procesor are propria sa memorie. Procesoarele sunt conectate n sistem printr-o retea de comunicatie. Un sistem distribuit permite accesul utilizatorului la diferite resurse ale sistemului. Accesul la resursele partajate permite: - Calcul cu viteza crescuta - Cresterea disponibilitatii datelor - mbunatatirea fiabilitatii
8 I.2 Interpretorul de comenzi Multe comenzi sunt date de SO prin propozitii de control care se ocupa cu: creare si gestiune proces tratare I/E gestiune memorie externa gestiune memorie principala acces la sistemul de fisiere protectie lucrul n retea Programul care citeste si interpreteaza propozitiile de control este numit diferit: - interpretor al cartelelor de control - interpretor linie de comanda - shell (n Unix) Functiile sale sunt sa primeasca si sa execute urmatoarea propozitie de comanda.
9 I.2 Servicii oferite de SO: - executie program - capabilitatea sistemului de a ncarca un program n memorie si de a-l executa. - operatii de I /E - deoarece programele utilizator nu pot executa direct operatii de I/E, SO trebuie sa furnizeze anumite metode de lucru cu I/E. - manipulare sistem de fisiere- capabilitatea programului de citire, scriere si stergere fisiere - comunicatii - schimbul de informatii ntre procesele ce se executa fie pe acelasi calculator fie pe sisteme diferite conectate ntr-o retea. Implementate prin partajarea memoriei sau schimburi de mesaje. - detectia erorilor - asigura calcul corect prin detectia erorilor n UCP, memorie, dispozitive de I/E sau n programe utilizator.
Notiuni de sisteme de operare si retele de calculatoare (Linux) L. Miclea all right reserved Vers. 2.0 I.2.4
10 I.2 Functii suplimentare ale SO Functiile suplimentare ale SO nu sunt pentru a ajuta utilizatorul ci mai degraba pentru a asigura o operare eficienta a sistemului. - Alocarea resurselor - aloca resurse mai multor utilizatori sau lucrari ce se executa n acelasi timp. - Contabilizare- pastreaza urma si nregistreza care utilizator, ce cantitate si ce tip de resursa calculator a folosit, pentru bilant contabil si pentru statistica - Protectie- asigura ca ntreg accesul la resursele sistem este controlat
11 I.2 Apeluri sistem Apelurile sistem furnizeaza o interfata ntre un program ce se executa si SO. n general sunt disponibile ca instructiuni n limbaj de asamblare. Limbajele definite astfel nct sa nlocuiasca limbajul de asamblare pentru programarea sistemelor, permit ca apelurile sistem sa se faca direct (ex., C, Bliss, PL/360). Pentru a transfera parametrii ntre un program ce se executa si SO de folosesc trei metode: punerea parametrilor n registre. memorarea parametrilor ntr-o tabela din memorie, adresa tabelei fiind pusa ca parametru ntr-un registru. Memorarea (push) de catre program a parametrilor ntr-o stiva si scoaterea (pop) lor din stiva de catre SO.
Notiuni de sisteme de operare si retele de calculatoare (Linux) L. Miclea all right reserved Vers. 2.0 I.2.5
13 I.2 Programe sistem Programele sistem furnizeaza un cadru corespunzator pentru dezvoltarea si executia programelor. Ele pot fi divizate n: Manipulare fisier Informatii de stare Modificare fisier Suport pentru limbaje de programare Incarcare si executie program Communicatii Programe de aplicatie Viziunea celor mai multi utilizatori ai SO este la nivel de programe sistem, nu la nivel de apeluri sistem.
14 I.2 Structura sistem Conceptie simpla MS-DOS a fost scris astfel nct sa ofere ct mai multa functionalitate n ct mai putin spatiu nedivizat n module desi MS-DOS are o anumita structura, interfata sa si nivelele de functionalitate nu sunt bine separate UNI X limitat de functionalitatea hardware, SO UNIX original avut o structurare limitata. SO UNIX consta din doua parti separabile: Programele sistem Nucleul (kernel) - Consta din tot ceea ce se afla sub interfata de apleluri sistem si deasupra hardware fizic; - Contine sistemul de fisiere, planificarea UCP, gestiunea memoriei si celelalte functii ale SO; un numar prea mare de functii pentru un singur nivel.
15 I.2 Structura sistem Conceptie pe nivele SO este divizat ntr-un numar de straturi (nivele), fiecare din ele construit deasupra nibelului anterior. Nivelul cel mai de jos (stratul 0) este hardware, iar nivelul cel mai nalt (stratul N) este interfata utilizator . Printr-o proiectare modular a, straturile sunt selectate astfel nct fiecare utilizeaz a doar functiile (operatiile) si serviciile straturilor anterioare. Ex. SO THE pe 6 nivele (strat 5: programe utilizator; strat 4: tampon pentru dispozitive de I/E; strat 3: driver pentru dispozitivul consola operator; strat 2: gestiunea memoriei; strat 1: planificarea UCP; strat 0: hardware.
Notiuni de sisteme de operare si retele de calculatoare (Linux) L. Miclea all right reserved Vers. 2.0 I.2.6
16 I.2 Masini virtuale O masina virtuala utilizeaza conceptia stratificata, tratnd att hardware-ul ct si nucleul SO ca si cum ele ar fi toate hardware. SO creaz a iluzia unor procese multiple, fiecare executndu-se pe propriul sau procesor cu propria sa memorie (virtuala). Resursele calculatorului fizic sunt partajate astfel nct sa creeze masina virtuala. - Planificatorul UCP poate crea impresia ca fiecare utilizator are propriul sau procesor. - Spool-erul si sistemul de fisiere poate furniza terminale de intrare si de iesire virtuale. - Un terminal utilizator normal partajat n timp serveste ca si masina consola operator.
17 I.2 Avantajele si dezavantajele masinilor virtuale Conceptul de masina virtuala permite protectia completa a resurselor sistem, deoarece fiecare masina virtuala este izolata de celelalte masini virtuale. Izolarea nu permite nsa partajarea directa a resurselor. Conceptul de masina virtala este nsa dificil de implementat datorita efortului cerut pentru duplicarea exacta a masinii de baza. Obiectivele proiectarii SO Obiective utilizator - SO trebuie sa fie usor de utilizat, usor de nvatat, fiabil, sigur si rapid Obiective sistem- SO trebuie sa fie usor de proiectat, implementat si ntretinut n plus sa fie flexibil, fara erori si eficient.
18 I.2 Mecanisme si politici Mecanismele determina cum sa faci ceva; politicile decid ce va fi facut. Separarea politicilor de mecanisme este un principiu foarte important; el permite maxima flexibilitate la schimbarea ulterioara a deciziilor politice. I mplementarea sistemului Scrise n mod traditional n limbaj de asamblare, SO sunt scrise acum n limbaje de nivel nalt. Codul scris ntr-un limbaj de nivel nalt: - poate fi scris mai rapid; - este mai compact; - este mai usor de nteles si depanat. Un SO este mai usor de portat (mutat pe alt hardware) daca este scris ntr-un limbaj de nivel nalt.
Notiuni de sisteme de operare si retele de calculatoare (Linux) L. Miclea all right reserved Vers. 2.0 I.2.7
19 I.2 Generare sistem (SYSGEN) SO sunt proiectate pentru a rula pe oricare sistem dintr-o clasa de masini; sistemul trebuie sa poata fi configurat pe fiecare calculator n parte. Programele SYSGEN obtin informatii referitoare la configuratia specifica a sistemului hardware. Boot pornirea unui calculator prin ncarcarea nucleului. Program Bootstrap cod memorat n ROM care este capabil sa localizeze nucleul, sa-l ncarce n memorie si sa lanseze executia sa.