Beruflich Dokumente
Kultur Dokumente
Curs 2: Structura SO
Kinga Mrton
Universitatea Tehnic din Cluj-Napoca
Departamentul de Calculatoare
5. 03. 2014
1
EVOLUIA SO
Prima generaie (1945 - 1955)
Tuburi cu vid i plci de conexiuni
A doua generaie (1955 - 1965)
Tranzistoare, sisteme batch
Mai multe programe pe disc
2
A treia generaie (1965 - 1980)
Circuite integrate i multiprogramare
Interaciune cu utilizatorul time sharing
A patra generaie (1980 - prezent)
Calculatorul personal orientat pe interfaa utilizator i eficien
Reele i Internetul
Sisteme paralele, portabile etc.
Tanenbaum, pg. 8
ROLUL SO
Principiul de infrumuseare
Face ca hardware-ul sa arate mai bine
SO similar cu un guvern
Face guvernul ceva util de unul singur?
Asigurarea bunei funcionri a resurselor i comunicarea/cooperarea ntre
acestea
Prevenirea interferenelor dintre diferitele aplicaii sau aplicaie i SO
Dou viziuni
De sus n jos Main extins (sau main virtual)
Furnizor (abstraii utile)
De comoditate - prin servicii
De biblioteci standard utilizarea resurselor n mod eficient
De mediu pentru dezvoltarea uoar, rapid a programelor
De jos n sus Manager de resurse
Coordonator (similar cu un poliist rutier)
Gestiunea controlat a resurselor
Rezolvarea conflictele pentru accesul la resurse (n timp i spaiu)
Prevenirea erorilor i utilizrii incorecte a sistemului
3
CE ESTE SO?
Definiie nu exist o definiie universal acceptat
Program sistem care
Gestioneaz resursele hardware
Gestiunea memoriei
Gestiunea perifericelor
Gestiunea stocrii
Gestiunea proteciei i securitii
Gestiunea ... tuturor resurselor
Ofer posibilitatea rulrii programelor utilizator
Controleaz execuia aplicaiilor
Gestiunea proceselor
Interfa ntre utilizator i hardware-ul sistemului
Responsabil pentru utilizarea corect, eficient i uoar a
sistemului
Programul care ruleaz tot timpul pe calculator este kernel-ul
n rest totul este program sistem sau program aplicaie
Tot ce include furnizorul n momentul livrrii unui SO
Exemplul Microsoft dat n judecat pentru c a inclus prea multe servicii n SO
4
SERVICII OFERITE DE SO
SO ofer un mediu pentru dezvoltarea i rularea programelor
Unele servicii ofer funcii utile utilizatorului pentru
interaciunea cu sistemul
Interfa utilizator - CLI (command line interface), GUI (graphics user interface), Batch
Executarea de programe
ncrcarea n memorie i rularea programelor
Operaii de I/E
Deservirea cererilor de acces la fiiere sau dispozitive
Gestiunea sistemului de fiiere
SF de importan major
Comunicaie
ntre procesele aceluia sistem sau ntre sisteme
Detectarea erorilor
Erori pot apare de oriunde (hw i sw)
Tratarea erorilor prin aciuni potrivite pentru a asigura funcionarea
corect i consistent
5
SERVICII OFERITE DE SO
Alte servicii care asigur operarea eficient a
sistemului prin partajarea resurselor
Alocarea resurselor
Mai multe joburi concurente-> resurse alocate corect
Evidena utilizrii resurselor
Ce resurse i ct din resurse folsete fiecare utilizator
Protecie i securitate
Protejarea accesului la informaiile utilizatorilor
Controlul accesului la resurse
Procesele concurente s nu interfereze n mod maliios
Autentificare
Multe alte servicii i mecanisme pentru securizare de mediul
exterior i interior
6
SERVICII OFERITE DE SO
7
Silberschatz, pg. 50
ORGANIZAREA SISTEMELOR DE CALCUL
Operaiile sistemului
Pornire programul bootstrap se ncarc la pornire (ROM, EEPROM)
stocat n firmware
Iniializeaz toate componentele
ncarc partea kernel i SO ncepe execuia (proces init)
Operaii
Unul sau mai multe procesoare i mai multe controlere de dispozitive
sunt legate prin magistral i concureaz pentru accesul la memoria
partajat
8
Silberschatz, pg. 8
ORGANIZAREA SISTEMELOR DE CALCUL
Operaiile sistemului
Dispozitivele I/E i procesorul pot rula concurent
Fiecare controler de dispozitiv este responsabil pt un tip specific de
dispozitiv
Fiecare controler are un buffer local
Procesorul comunic cu memoria
Prin buffere interne (regitri)
Operaia de I/E este de la dispozitiv la buffer-ul local al controler-ului
Controler-ul informeaz procesorul c a terminat operaia
Prin intermediul ntreruperilor
DMA Acces Direct la Memorie
Pentru dispozitive care pot transmite informaii la vitez comparativ cu
cea a memoriei
Transfer din bufferul local al dispozitivului direct n memorie
Fr intervenia procesorului
O singur ntrerupere / bloc de date
SO este controlat prin ntreruperi
9
MEMORIA
Ierarhia de memorie
Timpul de acces crete cu
capacitatea
Costul i frecvena de accesare
scad odat cu capacitatea
Mecanism de caching
Copierea datelor accesate ntr-
un sistem de stocare mai rapid
10
Silberschatz, pg. 11
Silberschatz, pg. 27
MEMORIA
Memoria cache
Creterea vitezei de acces la memorie
Informatia utilizat este copiat - temporar - de pe mediul de
stocare mai lent pe un mediu mai rapid
Motivaie: viteza procesorului este mai mare dect cea a
memoriei
La cererea unor date se verific mai nti cache-ul
HIT: informaia este n cache poate fi folosit direct
MISS: informaia cutat nu este n cache trebuie adus
11
Stallings, pg. 28
ARHITECTURA SISTEMELOR DE CALCUL
Sisteme monoprocesor
Sisteme care folosesc un singur procesor de uz general
Execut set de instruciuni generale
Inclusicv instruciuni ale proceselor utilizator
Pot avea i procesoare specializate (ex. GPU, microprocesorul din
tastatur, procesor specializat pe i/e, etc.)
Execut un set restrns de instruciuni
Nu execut instruciuni ale proceselor utilizator
Sisteme multiprocesor
Dou sau mai multe procesoare de uz general
Comunic i
Partajeaz memoria, magistrala i dispozitivele i/e
3 avantaje majore
Putere mare de procesare (mai multe taskuri n acelai timp)
Pre avantajos (cost multiprocesor < n* cost monoprocesor)
Fiabilitate - oprirea unui procesor nu duce la euarea sistemului
2 tipuri
Multiprocesare asimetric relaie master-slave
Multiprocesare simetric procesoare partenere
12
ARHITECTURA SISTEMELOR DE CALCUL
13
Arhitectura von Neumann
Silberschatz, pg. 13
SMA SYMMETRIC MULTIPROCESSING ARCHITECTURE
Fiecare procesor cu propriul set de regitri i cache local
Partajeaz memoria fizic
N procesoare pot rula N procese simultan
14
Silberschatz, pg. 15
SISTEME MULTI-CORE
Mai multe core-uri pe acelai cip
Pot fi mai eficiente dect mai multe procesoare individuale
Comunicare mai rapid pe acelai cip
Consum mai redus
15
Silberschatz, pg. 16
SISTEME CLUSTER
Dou sau mai multe sisteme individuale conectate
prin reea
partajeaz acelai spaiu de stocare Storage Area Network
Furnizeaz
Servicii cu fiabilitate ridicat tolerant la erori
Putere de procesare mare
Aplicaii scrise pentru a putea exploata puterea de calcul
paralelizare
Structura
Asimetric o main n modul hot-standby
Simetric mai multe noduri care execut aplicaii i se
monitorizeaz reciproc
16
SISTEME CLUSTER
17
Silberschatz, pg. 18
STRUCTURA SISTEMELOR DE OPERARE
SO furnizeaz mediul n care programele pot fi
executate
Diferitele SO difer mult n structur dar
Multe aspecte sunt totui comune pe acestea punem accentul
Multiprogramarea
Eficientizarea utilizrii resurselor
Organizarea joburilor astfel nct procesorul are tot timpul unul de
executat
Subset din toate joburile este meninut n memorie
Selectarea unui job planificare de joburi (job scheduling)
Unele jobuir stocate pe disc care ateapt alocare n memoria intern
(job pool)
Cnd se ateapt dup i/e -> procesorul comuta la alt job
Nu ofer suport pentru interaciunea cu utilizatorul
Soluia: Time sharing (partajarea timpului)
Numit i multitasking extensie logic a multiprogramrii
18
STRUCTURA SISTEMELOR DE OPERARE
Time sharing (multitasking)
Procesorul execut mai multe joburi
Comutarea ntre ele este foarte rapid
Utilizatorul poate interaciona cu fiecare job
Utilizatorul are iluzia c doar el este deservit
Timpul de rspuns s fie mic (< 1 sec)
Programul ncrcat n memorie i n execuie se numete
proces
Dac mai multe procese sunt disponibile pentru rulare
Planificarea proceselor(CPU scheduling)
Dac procesul nu ncape n memorie
Swapping procese mutate temporar din memorie pe disc i
napoi
Memoria virtual permite rularea proceselor care nu sunt
complet ncrcate n memorie
19
STRUCTURA SISTEMELOR DE OPERARE
Memoria unui sistem cu multiprogramare
20
Silberschatz, pg. 19
OPERAIILE SO
SO este controlat prin ntreruperi
Hardware semnal direct la procesor prin magistral
Software se mai numete excepie (sau trap )
Ex. cerere de serviciu de la SO, mprirea la zero, etc.
Probleme care apar cu multiprogramarea
Un job monopolizeaz procesorul prin bucl infinit
Un job modific zona de memoria a altui job sau chiar a SO
Soluie: operare dual
Mod utilizator
Mod kernel
Bit de mod indic n ce mod ruleaz sistemul
Unele operaii se pot efectua doar n mod kernel
Operaii privilegiate
21
APELURI SISTEM
Interfaa dintre SO i aplicaiile utilizator
Definit de un set de instruciuni extinse apeluri sistem
Difer de la un SO la altul
Conceptele care stau la baz sunt similare
Pentru a nelege ce fac SO trebuie s studiem apelurile
sistem
Dou modaliti
Prezentarea unor generaliti vagi
Prezentarea n cadrul unui sistem specific varianta aleas
Linux
Apeluri sistem
Mecanism prin care aplicaiile utilizator pot solicita servicii de
la SO
Sunt executate n mod kernel (privilegiat) au acces la
resurse
22
APELURI SISTEM
Tranziia din modul utilizator n modul kernel
23
Silberschatz, pg. 21
APELURI SISTEM
Exemplu:
secvena de apeluri sistem pentru copierea coninutului unui
fiier surs ntr-un fiier destinaie
24
Silberschatz, pg. 56
APELURI SISTEM
Scrise n general n C (C++)
Accesate n general prin API (Application Program Interface)
de nivel nalt
Ex. Win32 API pentru Windows
POSIX API (UNIX, Linux, Mac OS X, etc.)
Java API pentru JVM (Java Virtual Machine)
De multe ori sunt necesare mai multe informaii dect
numele apelului sistem
Tipul i numrul de informaii difer de la un SO la altul
Transmiterea parametrilor ctre SO
Transmitere prin regitri
Problema: numrul argumentelor poate fi mai mare dect numrul de
regitri disponibili
Transmitere prin tabel
Parametrii sunt pui ntr-un tabel i se transmite adresa de memorie
printr-un registru (Linux)
Prin stiv (push, pop)
25
APELURI SISTEM
Relaia: API - Apel sistem SO
26
Silberschatz, pg. 58
APELURI SISTEM
Program C care apeleaz funcia printf()
Care invoc apelul sistem write()
27
Silberschatz, pg. 62
APELURI SISTEM
Transmiterea parametrilor prin tabel
28
Silberschatz, pg. 59
APELURI SISTEM
Exemple de apeluri sistem pe Windows resp. Linux
29
Silberschatz, pg. 61
CONCEPTE SO - PROCESUL
Rolul principal al SO este rularea proceselor
Un proces este un program n execuie
Unitatea de lucru n cadrul sistemului
Program vs. Proces
Fiecare proces are novoie de resurse pt rulare
Procesor, memorie, i/e, fiiere
Date de iniializare
La terminare resursele reutilizabile trebuie eliberate
Un proces (cu un singur thread fir de execuie) are un singur
PC (Program counter)
Indic locaia urmtoarei instruciuni
Executare secvenial a instruciunilor
Sistemul are mai multe procese care ruleaz concurent pe unul
sau mai multe procesoare
Procese utilizator
Procese sistem
Concurena prin multiplexarea procesorului ntre procese / threaduri
30
CONCEPTE SO - PROCESUL
Fiecare proces are
Spaiu de adrese
Spaiu de memorie din/n care procesul poate citi/scrie
Include
Segmentul de cod instruciunile din executabilul programului
Segmentul de date datele cu care lucreaz programul
Stiva
Mediul necesar rulrii programului
Pentru nelegere mai uoar ne raportm la multiprogramare
Periodic SO decide s opreasc un proces i s-i aloce
procesorul altui proces
La suspendare trebuie salvate toate informaiile necesare
restartrii procesului (ex. fiiere deschise, pointer la
poziiile curente, etc.)
Tabela de procese tablou de structuri - cte una pentru
fiecare proces
SET DE REGITRI
PC (PROGRAM COUNTER), SP (STACK POINTER), ETC.
31
CONCEPTE SO - PROCESUL
Gestiunea proceselor
SO ofer mecanisme pentru
Crearea i terminarea unui proces
Un proces poate crea unul
sau mai multe procese
Relaie printe - fiu
Ierarhie de procese
Suspendarea i reluarea unui proces
Sinconizarea proceselor
Comunicare ntre procese
Detectarea i tratarea interblocrilor (deadlock)
32
CONCEPTE SO - MEMORIA
Toate datele n memorie
nainte de procesare
Dup procesare
Instruciunile n memorie pentru a fi executate
Gestiunea memoriei
Ce este n memorie i cnd
Scop: optimizarea utilizrii procesorului i reducerea timpului de rspuns
SO ofer mecanisme pentru
Alocarea memoriei
Alocarea sau eliminarea unui proces din mem
Alocarea datelor pentru procesare
Determinare - ce parte a memoriei este folosit i de cine
Memorie virtual
Izolarea proceselor
Prevenirea interferenei dintre procese
Protecie i controlul accesului la partajarea memoriei
33
CONCEPTE SO FIIERUL
Utilitatea dispozitivelor de stocare
date care nu ncap n memorie sau
Date care trebuie pstrate perioad mai lung de timp
Gestiunea stocrii - viteza ntregului sistem depinde de
sistemul de stocare i algoritmii folosii
SO ofer mecanisme pentru
Gestiunea spaiului liber
Alocarea spaiului de stocare
Planificarea operaiilor pe disc
Fiierul
unitatea fundamental n stocarea datelor
Sistemul de fiiere
fiiere i directoare
structura ierarhic
34
MIGRAREA UNUI NTREG
Drumul unui ntreg de pe disc i pn n regitrii
n sisteme mltitasking este important s se
asigure c se folosete valoarea actualizat
Oriunde s-ar afla n ierarhia de memorie
Sistemele multiprocesor trebuie s asigure
coeren ntre memoriile cache a fiecrui procesor
n sisteme distribuite situaia e i mai complex
Exist mai multe copii (replici) a datelor
35
Silberschatz, pg. 28
SUBSISTEME DE I/E
Ascunderea complexitii i specificitii
dispozitivelor hardware
Una din rolurile importante ale SO
Subsistemul de I/E este responsabil pentru
Gestiunea memoriei pentru i/e i include
Gestiunea zonelor tampon (buffering) stocarea temporar a
datelor pe timpul transferului
Gestiunea cache-ului stocarea datelor n memorie mai rapid
pentru inbuntirea performanei
Spooling suprapunerea ieirii unui job cu intrarea altuia
Interfaa general cu dispozitivul (driver)
Gestiunea driverului pentru fiecare dispozitiv
36
PROTECIE I SECURITATE
Protecie
Mecanism pentru controlul accesului la resurse
Securitate
Mecanisme pentru aprarea sistemului mpotriva atacurilor
externe sau interne
Metode
Difereniere ntre utilizatori
id, gid
Asociere id cu fiiere
Drepturi de acces
Escaladare privilegiat
37
STRUCTURA SO
SO monolitice
SO microkernel
SO stratificate
38
STRUCTURA SO
SO monolitice
Fr structur structura e doar logic
SO este o colecie de proceduri
Fiecare este vizibil fiecruia (fr ascunderea informaiei)
Oricare poate apela pe oricare alta
Codul kernel-ului se obine prin compilarea tuturor fiierelor
surs i linkeditarea mpreun ntr-un singur fiier obiect
Tot SO ruleaz n modul kernel
Exemple
Cele mai multe versiuni UNIX, Linux, MS Windows
39
STRUCTURA SO
SO monolitice (cont.)
Avantaj
Performa foarte bun vitez mare
Dezavantaje
Poate deveni foarte mare i complex
Dificultate n portarea pe alte platforme
O eroare la nivelul unei singure proceduri poate duce la euarea
ntregului sistem
40
STRUCTURA SO
SO microkernel
Mutarea multor servicii din spaiul kernel n sp. utilizator
O parte restrns din SO (kernelul ) ruleaz n mod privilegiat
Ofer doar mecanisme pentru implementarea serviciilor
Gestiunea proceselor, comunicare ntre procese
Cealalalt parte a SO (serverele) ruleaz n mod utilizator
Ex. Apple Mac OS X. Minix, etc.
Avantaje
Modularitate, protecie, portabilitate, adaptabilitate la mediu distribuit
Dezavantaje performa mai mic datorit folosrii IPC intre kernel i
sp.utiliztor
41
Tanenbaum, pg. 62
STRUCTURA SO
SO stratificate
42
43
Tanenbaum,
ed 2 coperta