Sunteți pe pagina 1din 45

Capitolul 3: Structura Sistemelor de

Operare
Componentele Sistemului
Serviciile Sistemului de Operare
Apeluri Sistem (System Calls)
Programe Sistem
Structura Sistemului
Maşini Virtuale
Designul şi Implementarea Sistemului
Generarea Sistemului

Operating System Concepts with Java 103.1 Silberschatz, Galvin and Gagne ©2003
Componente de Sistem Comune
Gestionarea Proceselor
Gestionarea Memoriei Principale
Gestionarea Fişierelor
Gestionarea Sistemelor de I/E
Gestionarea Memoriei Secundare
Comunicarea în Reţea
Sistemul de Protecţie
Sistemul Interpretor de Comenzi

Operating System Concepts with Java 103.2 Silberschatz, Galvin and Gagne ©2003
Gestionarea Proceselor

Un proces este un program în execuţie


Un proces are nevoie de anumite resurse, incluzând timp
CPU, memorie, fişiere şi dispozitive de I/E, pentru a-şi
îndeplini misiunea
Sistemul de operare este responsabil pentru următoarele
activităţi în legătură cu gestionarea proceselor
Crearea şi distrugerea proceselor
Suspendarea şi reluarea proceselor
Oferirea de mecanisme pentru:
Sincronizarea proceselor
Comunicarea între procese

Operating System Concepts with Java 103.3 Silberschatz, Galvin and Gagne ©2003
Gestionarea Memoriei Principale
Memoria este un tablou mare de cuvinte sau bytes,
fiecare cu propria adresă
Este un depozit de date accesibile rapid, partajat de către
CPU şi dispozitivele de I/E
Memoria principală este un mediu de stocare volatil. Îşi
pierde conţinutul în cazul unei căderi a sistemului
Sistemul de operare este responsabil pentru următoarele
activităţi în legătură cu gestionarea memoriei
Păstrarea situaţiei despre care părţi ale memoriei sunt
folosite în mod curent şi de către cine
Decide care procese să se încarce când un spaţiu de
memorie devine disponibil
Alocarea şi dealocarea spaţiului de memorie în funcţie de
nevoi

Operating System Concepts with Java 103.4 Silberschatz, Galvin and Gagne ©2003
Gestionarea Fişierelor
Un fişier este o colecţie de informaţii înrudite definit de creatorul
său
De obicei, fişierele reprezintă programe (atât în formă de sursă cât
şi obiect) şi date
Sistemul de operare este responsabil pentru următoarele
activităţi în legătură cu gestionarea fişierelor:
Crearea şi ştergerea fişierelor
Crearea şi ştergerea directoarelor
Oferirea de primitive pentru manipularea fişierelor şi a directoarelor
Maparea fişierelor pe medii secundare de stocare (memoria
secundară)
Backup-ul fişierelor pe medii stabile (nevolatile)

Operating System Concepts with Java 103.5 Silberschatz, Galvin and Gagne ©2003
Gestionarea Sistemului de I/E
Sistemul de I/E constă din:
Un sistem de buffere pentru cacheing
O interfaţă generală dispozitiv-driver
Drivere pentru dispozitive hardware specifice

Operating System Concepts with Java 103.6 Silberschatz, Galvin and Gagne ©2003
Gestionarea Memoriei Secundare
Deoarece memoria principală (mediul de stocare primar)
este volatilă şi prea mică pentru a păstra toate datele şi
programele în mod permanent, sistemul de calcul trebuie
să ofere medii de stocare secundare pentru a sprijini
memoria principală
Cele mai multe sisteme de calcul moderne folosesc
discuri ca şi mediul principal de stocare on-line, atât
pentru programe cât şi pentru date
Sistemul de operare este responsabil pentru următoarele
activităţi în legătură cu gestionarea discurilor:
Gestionarea spaţiului liber
Alocarea spaţiului de stocare
Planificarea discului

Operating System Concepts with Java 103.7 Silberschatz, Galvin and Gagne ©2003
Intercomunicare (Sisteme Distribuite)
Un sistem distribuit este o colecţie de procesoare care nu
partajează memorie sau un tact
Fiecare procesor are propria memorie locală
Procesoarele din sistem sunt conectate printr-o reţea de
comunicare
Comunicarea are loc folosind un protocol
Un sistem distribuit oferă acces utilizatorilor la diverse resurse
sistem
Accesul la o resursă partajată permite:
Creşterea vitezei de calcul
O disponibilitate crescută a datelor
O fiabilitate mărită

Operating System Concepts with Java 103.8 Silberschatz, Galvin and Gagne ©2003
Sistemul de Protecţie
Protecţia se referă la un mecanism pentru controlul accesului
programelor, proceselor sau utilizatorilor atât la resurse sistem
cât şi utilizator
Mecanismul de protecţie trebuie să:
Deosebească dintre acces autorizat şi respectiv neautorizat
Specifice controalele care să fie impuse
Ofere căi de aplicare/constrângere

Operating System Concepts with Java 103.9 Silberschatz, Galvin and Gagne ©2003
Sistemul de Interpretare a Comenzilor
Multe comenzi sunt date sistemului de operare prin intermediul
unor instrucţiuni de control care au de-a face cu:
Crearea şi gestionarea de procese
Manipularea I/E
Gestionarea mediilor de stocare secundare management
Gestionarea memoriei principale
Accesul la sistemul de fişiere
Protecţie
Reţele

Operating System Concepts with Java 103.10 Silberschatz, Galvin and Gagne ©2003
Sistemul de Interpretare a Comenzilor (Cont.)

Programul care citeşte şi interpretează instrucţiunile de control


este denumit în diferite moduri:

Interpretor linie de comandă (command-line interpreter)


shell (în UNIX)

Funcţia sa este de a prelua şi executa următoarea comandă

Operating System Concepts with Java 103.11 Silberschatz, Galvin and Gagne ©2003
Serviciile Sistemului de Operare
Execuţia de programe – capabilitatea sistemului de a încărca un
program în memorie şi de a-l rula
Operaţii de I/E – deoarece programele utilizator nu pot executa
în mod direct operaţii de I/E, sistemul de operare trebuie să
ofere mijloacele pentru a efectua I/E
Manipularea sistemului de fişiere – capabilitatea programelor de
a citi, scrie, crea şi şterge fişiere
Comunicaţii – schimbul de informaţii între procese care se
execută fie pe aceeaşi maşină sau pe sisteme diferite legate de
o reţea. Implementat fie prin memorie partajată fie prin
trimiterea de mesaje
Detectarea de erori – asigură calcule corecte prin detectarea
erorilor în hardware (CPU, memorie), în dispozitivele de I/E, sau
în programele utilizator

Operating System Concepts with Java 103.12 Silberschatz, Galvin and Gagne ©2003
Funcţii Adiţionale ale Sistemului de Operare

Funcţii adiţionale există nu pentru a ajuta utilizatorul, ci pentru a


asigura operarea eficientă a sistemului
Alocarea resurselor – alocarea resurselor la utilizatori multipli sau
joburi multiple rulând în acelaşi timp
Contabilizare – urmărirea şi înregistrarea utilizării de către utilizatori
a cantităţii şi a căror tipuri de resurse pentru facturare sau statistici
de folosire
Protecţie – asigurarea faptului că toate accesele la resursele
sistemului sunt controlate

Operating System Concepts with Java 103.13 Silberschatz, Galvin and Gagne ©2003
Apeluri Sistem

Apelurile sistem oferă interfaţa dintre un program în rulare


şi sistemul de operare
Disponibile în mod general ca şi instrucţiuni în limbaj de
asamblare
Limbajele definite pentru a înlocui limbajul de asamblare
pentru programarea de sistem permit ca apelurile sistem să
fie efectuate direct (ex., C, C++)
Sunt folosite trei metode generale pentru a trimite
parametri între un program în rulare şi sistemul de
operare
Trimiterea parametrilor în regiştri
Stocarea parametrilor într-un tabel în memorie şi trimiterea
adresei tabelei printr-un registru
Push (stocarea) parametrilor pe stivă de către program, şi
pop de pe stivă de către sistemul de operare

Operating System Concepts with Java 103.14 Silberschatz, Galvin and Gagne ©2003
Trimiterea de Parametri ca şi o Tabelă

Operating System Concepts with Java 103.15 Silberschatz, Galvin and Gagne ©2003
Tipuri de Apeluri Sistem
Controlul proceselor
Gestionarea fişierelor
Gestionarea dispozitivelor
Gestionarea informaţiilor
Comunicaţii

Operating System Concepts with Java 103.16 Silberschatz, Galvin and Gagne ©2003
Modelul de Execuţie MS-DOS

La pornirea sistemului Rularea unui program

Operating System Concepts with Java 103.17 Silberschatz, Galvin and Gagne ©2003
UNIX Rulare de Programe Multiple

Operating System Concepts with Java 103.18 Silberschatz, Galvin and Gagne ©2003
Modele de Comunicare
Comunicarea poate avea loc folosind fie transmiterea de
mesaje sau memorie partajată

Trimiterea de mesaje Memorie partajată

Operating System Concepts with Java 103.19 Silberschatz, Galvin and Gagne ©2003
Programe Sistem

Programele sistem oferă un mediu convenabil pentru


dezvoltarea şi execuţia programelor. Ele pot fi împărţite
în:
Gestionarea fişierelor
Informaţii de stare
Modificarea fişierelor
Suport pentru limbaje de programare
Încărcare şi execuţie de programe
Comunicaţii
Programe de aplicaţie
Imaginea multor utilizatori a despre un sistem de operare
este dată de programele sistem, nu de către apelurile
sistem

Operating System Concepts with Java 103.20 Silberschatz, Galvin and Gagne ©2003
Structura Sistemului MS-DOS
MS-DOS – scris pentru a oferi cât mai multe funcţionalităţi într-un
spaţiu cât mai mic
Nu este divizat în module
Deşi MS-DOS are o anumită structură, interfeţele acestuia şi
nivelele de funcţionalitate nu sunt prea bine separate

Operating System Concepts with Java 103.21 Silberschatz, Galvin and Gagne ©2003
Structura pe Nivele a MS-DOS

Operating System Concepts with Java 103.22 Silberschatz, Galvin and Gagne ©2003
Structura Sistemului UNIX

UNIX – limitat de funcţionalităţile hardware, sistemul de


operare UNIX original avea o structurare limitată. S.O.
UNIX constă din două părţi separabile
Programe sistem
Nucleul (kernel)
Constă din orice este sub interfaţa de apeluri sistem şi
deasupra hardware-ului fizic
Oferă sistemul de fişiere, planificare CPU, gestionarea
memoriei, şi alte funcţii de sistem de operare; o mulţime
de funcţii pentru un singur nivel

Operating System Concepts with Java 103.23 Silberschatz, Galvin and Gagne ©2003
Structura Sistemului UNIX (Cont.)

Operating System Concepts with Java 103.24 Silberschatz, Galvin and Gagne ©2003
Abordarea pe Nivele
Sistemul de operare este divizat pe un număr de nivele, fiecare
construit pe baza nivelelor inferioare. Nivelul cel mai de jos
(layer 0), este hardware; nivelul cel mai superior (layer N) este
interfaţa utilizator.
Prin modularizare, nivelele sunt selectate astfel încât fiecare
foloseşte funcţii (operaţii) şi servicii doar din nivelele de mai jos

Operating System Concepts with Java 103.25 Silberschatz, Galvin and Gagne ©2003
Un Nivel al unui Sistem de Operare

Operating System Concepts with Java 103.26 Silberschatz, Galvin and Gagne ©2003
Structura pe Nivele a OS/2

Operating System Concepts with Java 103.27 Silberschatz, Galvin and Gagne ©2003
Structura unui Sistem Microkernel
Mută cât mai mult din nucleu în spaţiul “utilizator”
Comunicarea dintre modulele utilizator are loc prin trimiterea de
mesaje
Avantaje:
Extensie mai uşoară a unui micro-nucleu (microkernel)
Portare mai uşoară a sistemului de operare pe alte arhitecturi
Mai fiabil (mai puţin cod rulează în mod nucleu)
Mai sigur
Dezavantaje:
Performanţe mai reduse la comunicarea din spaţiul utilizator în
spaţiul nucleu

Operating System Concepts with Java 103.28 Silberschatz, Galvin and Gagne ©2003
Structura Mac OS X

Operating System Concepts with Java 103.29 Silberschatz, Galvin and Gagne ©2003
Structura Windows NT Client-Server

Operating System Concepts with Java 103.30 Silberschatz, Galvin and Gagne ©2003
Module
Cele mai multe sisteme de operare moderne
implementează module nucleu
Foloseşte o abordare bazată pe obiecte
Fiecare componentă de bază este separată
Fiecare colaborează cu alte module prin interfeţe cunoscute
Fiecare este încărcabil atunci când este nevoie în cadrul
nucleului
Per global, abordare similară cu aceea pe nivele dar
cu o mai mare flexibilitate

Operating System Concepts with Java 103.31 Silberschatz, Galvin and Gagne ©2003
Abordarea modulară Solaris

Operating System Concepts with Java 103.32 Silberschatz, Galvin and Gagne ©2003
Maşini Virtuale
O maşină virtuală duce abordarea pe nivele la concluzia logică.
Tratează hardware-ul cât şi nucleul sistemului de operare ca şi
cum ambele ar fi hardware
O maşină virtuală oferă o interfaţă identică pentru hardware-ul pe
care se bazează
Sistemul de operare creează iluzia de procese multiple, fiecare
executându-se pe propriul procesor cu propria sa memorie
(virtuală)

Operating System Concepts with Java 103.33 Silberschatz, Galvin and Gagne ©2003
Maşini Virtuale (Cont.)
Resursele calculatorului fizic sunt partajate pentru a crea
maşinile virtuale
Planificarea CPU poate crea aparenţa că utilizatorii folosesc propriul
procesor
Spooling-ul şi sistemul de fişiere pot oferi cititoare de carduri virtuale
şi imprimante virtuale
Un terminal cu divizarea timpului utilizator serveşte ca şi consolă
operator pentru maşina virtuală

Operating System Concepts with Java 103.34 Silberschatz, Galvin and Gagne ©2003
Modele de Sistem

Maşină ne-virtuală Maşină virtuală

Operating System Concepts with Java 103.35 Silberschatz, Galvin and Gagne ©2003
Avantaje/Dezavantaje ale Maşinilor Virtuale

Conceptul de maşină virtuală oferă o protecţie completă a


resurselor sistem deoarece fiecare maşină virtuală este
izolată de toate celelalte maşini virtuale. Această izolare,
în schimb, nu permite partajarea directă a resurselor.
O maşină virtuală este un vehicul perfect pentru
cercetarea şi dezvoltarea în domeniul sistemelor de
operare. Dezvoltarea sistemului este realizată pe maşina
virtuală în locul unei maşini fizice şi astfel nu periclitează
operarea normală a sistemului.
Conceptul de maşină virtuală este destul de dificil de
implementat datorită efortului necesar pentru a oferi un
duplicat exact pentru maşina pe care se bazează

Operating System Concepts with Java 103.36 Silberschatz, Galvin and Gagne ©2003
Maşina Virtuală Java (JVM)
Programele Java compilate sunt bytecoduri neutre de platformă
executet de o Maşină Virtuală Java (JVM)
JVM constă din
Încărcător de clase (Class loader)
Verificator de clase (Class verifier)
Interpretor Runtime
Compilatoarele Just-In-Time (JIT) cresc performanţele

Operating System Concepts with Java 103.37 Silberschatz, Galvin and Gagne ©2003
Maşina Virtuală Java

Operating System Concepts with Java 103.38 Silberschatz, Galvin and Gagne ©2003
Platforma Java

Operating System Concepts with Java 103.39 Silberschatz, Galvin and Gagne ©2003
Fişierele Java .class pe diferite platforme

Operating System Concepts with Java 103.40 Silberschatz, Galvin and Gagne ©2003
Mediul de dezvoltare Java

Operating System Concepts with Java 103.41 Silberschatz, Galvin and Gagne ©2003
Obiectivele Proiectării Sistemului
Obiective utilizator – sistemul de operare ar trebui să fie
convenabil de folosit, uşor de învăţat, fiabil, sigur şi rapid
Obiective sistem – sistemul de operare ar trebui să fie uşor de
proiectat, implementat şi întreţinut, totodată şi flexibil, fiabil, fără
erori şi eficient

Operating System Concepts with Java 103.42 Silberschatz, Galvin and Gagne ©2003
Mecanisme şi Politici
Mecanismele determină cum anume să se facă ceva, politicile
decid ce anume va fi efectuat
Separarea politicilor de mecanisme este un principiu foarte
important, permite o maximă flexibilitate dacă deciziile de politici
pot să fie schimbate ulterior

Operating System Concepts with Java 103.43 Silberschatz, Galvin and Gagne ©2003
Implementarea Sistemului
În mod tradiţional scrise în limbaj de asamblare, sistemele de
operare pot fi scrise acum în limbaje de nivel înalt
Codul scris în limbaj de nivel înalt:
Poate fi scris mai rapid
Este mai compact
Este mai uşor de înţeles şi de depanat
Un sistem de operare este mult mai uşor de portat (mutat pe un
alt hardware) dacă este scris într-un limbaj de nivel înalt

Operating System Concepts with Java 103.44 Silberschatz, Galvin and Gagne ©2003
Generarea Sistemului (SYSGEN)
Sistemele de operare sunt proiectate să ruleze pe oricare
maşină dintr-o anumită clasă de maşini; sistemul trebuie să fie
configurat pentru fiecare calculator specific
Programele SYSGEN obţin informaţii despre configuraţia
specifică a sistemului hardware
Booting – pornirea unui calculator prin încărcarea nucleului
Program Bootstrap – cod stocat în ROM care este capabil să
localizeze nucleul, să îl încarce în memorie şi să lanseze
execuţia sa

Operating System Concepts with Java 103.45 Silberschatz, Galvin and Gagne ©2003

S-ar putea să vă placă și