Sunteți pe pagina 1din 48

Cursul 1: Introducere

Sisteme de Operare
Context
• In prezent: Rata No. CPU/persoana > 1
• Automobil
• 10-100
• Telefoanele:
• min 1; uzual 2; insa avem si 8
• PC:
• 2+

• Complexitatea sistemelor de operare:


Intrebari deschise:
Avand ca reper experienta voastra de pana acuma cu
calculatoarele:

•Cand upgradati o componenta HW din calculator (ex.


upgrade de RAM; HDD) trebuie sa actualizati programele
pe care le rulati (ex. Office)?
•De cate ori blocarea unui program va determina blocarea
intregului sistem?
•Credeti ca un program de aplicatie (ex. un joc) pe care il
folositi are acces la tot hardware-ul?
Capitolul 1: Introducere
• Ce este un Sistem de Operare (SO)?
• Organizarea si arhitectura Sistemelor de Calcul
• Structura unui SO. Operatii si functii
Obiective generale

• Intelegerea rolului sistemelor de operare


• Intelegerea evolutiei sistemelor de operare in
paralel cu evolutia sistemelor de calcul
• Intelegerea organizarii sistemelor de calcul.
Ce este un sistem
de operare?
Ce este un SO?
• O colectie de programe care are rol
de intermediar intre utilizator si
componentele hardware.
• Obiectivele SO:
• Executia programelor si rezolvarea
nevoilor utilizatorului
• Utilizarea facila a sistemelor de calcul
• Folosirea eficienta a componentelor
hardware
• Similar unui “Guvernator” peste
resursele hardware
Structura unui sistem de calcul -
SC
• Un Sistem de calcul se imparte in 4
componente:
• Hardware – ofera resursele de baza de calcul
• CPU, memorie, dispozitive de intrare si iesire
• Sistemul de operare
• Controleaza si coordoneaza folosirea
componentelor hardware de catre diverse aplicatii
si utilizatori
• Programe de aplicatii – definesc modul in
care resursele sistemului sunt folosite pentru
a solutiona nevoile utilizatorului
• Programe pentru procesarea textelor,
compilatoare, browser web, baze de date, jocuri
video
• Utilizatorii
• Oameni, masini, alte pc-uri
Cele patru componente ale unui sistem de calcul

Interfata masinii
Virtuale - IMV

Interfata masinii
Fizice -IMF
Rolul SO
• SO aloca resurse
• Gestioneaza toate resursele (ex. Cicluri de
processor, memoria, etc)
• Decide intre cereri conflictuale asigurand
folosirea corecta si eficienta a resurselor
• SO este un program de control
• Controleaza executia programelor pentru a
preveni erorile si utilizarea necorespunzatoare
a computerului (ex. Acces la zone de memorie
a altui program)
• SO este un facilitator
• Ofera componente ce imbunatatesc
performanta HW & SW (ex. API, sistem fisiere)
Definitia unui SO
• Nu exista o definitie universala
• Tot ce primesti atunci cand cumperi un sistem de
operare J

Sau mai bine:

• Acele programe care ruleaza tot timpul cat


calculatorul este pornit” reprezinta kernel-ul
(nucleul).
• Celelalte sunt fie programe de sistem (vin la
pachet cu sistemul de operare) sau programe de
aplicatii.
Scurta istorie a SO
De la maiframe la sisteme web-based si mobile
1. Calculatoare mainframe
single-user
• HW scump (millions of dollars per
machine); resursa umana ieftina
• Un utilizator la consola la un moment dat
• Interactiune cu pe masura executiei
programului
• Computerul executa o functie la un
moment dat
• Nu exista suprapunere intre calcule si I/O
• Utilizatorul trebuie sa fie la consola pentru
debug
2. Procesare batch – cartele
perforate
• Executa mai multe joburi intr-un lot
• Incarca programul
• Ruleaza programul
• Printeaza rezultatele; reseteaza starea masinii
• Repeat
• Utilizatorii submit joburi ( prin cartele
perforate; benzi magnetice)
• Operatorul sistemului planifica joburile
• Sistemul de operare incarca si ruleaza
joburile
• Rezultat: utilizare mai eficienta a masinii
3. Suprapunere I/O si Calcule
• Anterior: masina asteapta sa se finalizeze
operatia de I/O si practic pierde timp de
calcul
• Abordare noua:
• Permite CPU sa ruleze cat timp se asteapta I/O
• Se adauga mecanisme de buffering si tratare a
intreruperilor

• Rezultat: utilizarea eficienta a masinii; in


continuare un singur job la un moment dat
4. Multiprogramare
• Mai multe programe/joburi ruleaza simultan
1. Se ruleaza un job pana la I/O
2. Se ruleaza alt job, etc

• SO gestioneaza interactiunile
• Planifica ce job se ruleaza
• Protejeaza memoria fiecarui job
5. Anii 70 - Renasterea
• HW mai ieftin; resursa umana devine mai
scumpa
• Utilizatori multipli folosesc acelasi sistem
prin terminale diferite
• Era UNIX – scris in 2 ani de catre 3
programatori (1971)
versus
Multics – zeci de programatori; 6 ani de zile
(1969)
5. Anii 80 – Revolutia industriala
• HW ieftin; resursa umana scumpa
• Apar PCs – IBM PC 1981; Macintosh 1984
• Sisteme de operare mai simple – DOS,
MacOS
• GUI in OS
• Initial fara: multiprogramare; concurenta;
protectie memorie; memorie virtuala
• Ulterior: Networking; file-sharing; printing
6. Epoca moderna: 90 ->
• HW ieftin; cerere mare pentru putere de
calcul
• Sisteme de operare solide pentru PCs – NT,
MacOS X, Linux
• Diverse arhitecturi
• Real time
• Embeded – mici calculatoare pentru utilizare in cadrul
unor echipamente – masini, electrocasnice, etc
• Procesare paralela – mai multe procesoare intr-o masina
• Procesare distribuita – mai multe CPU intr-o retea – P2P,
Web; Google; Blockchain
• SO pentru telefoane; tablete; ceasuri; TV
Evolutia Sistemelor de Calcul
• In 50 de ani, ~ fiecare componenta este
10^9x mai rapida; mare; ieftina
• Moore’s law – putere de calcul 2x la 2 ani
Provocari curente
• Legea lui Moore nu mai este de actualitate
• Focusul producatorilor HW se indreapta
catre:
• Multi-core
• Memorii SSD – initial cu probleme de fiabilitate
• Contrangeri legate de alimentare/caldura
• Posibile compromisuri:
• Putere de calcul vs fiabilitate
Functiile SO
Functiile SO
• Managementul proceselor si firelor de executie
(threads); concurenta proceselor/threads
• Managementul memoriei – alocare; relocare
• Managementul dispozitivelor de I/O (care de
obicei sunt incete)
• Managementul dispozitivelor de stocare
• Procesarea distribuita/ in retea
• Managementul protectiei si securitatii
Ipostaze SO
• SO ca si iluzionist:
• Face limitările hardware să dispară
• Furnizează iluzia unei maşini dedicate cu memorie şi
capacitate de procesare infinite
• SO ca si autoritate/guvernanta:
• Protejează utilizatori unul de celălalt
• Asigura alocarea eficientă şi corectă a resurselor
• SO ca si sistem complex:
• Exista nevoia unui compromis între simplitate vs
funcţionalitate vs performanţă
• SO ca si profesor de istorie:
• Învaţă din trecut
• Adaptarea sistemelor de operare la noile facilitati hardware
Organizarea şi
operarea unui
sistem de calcul
Organizarea unui sistem de
calcul
• Unul sau mai multe CPU (nuclee/cores),
controlerele de dispozitiv se conectează printr-o
magistrală partajata furnizând acces la memoria
comună
Niveluri intr-un sistem de
calcul
• Perifericele de intrare şi ieşire
si CPU pot opera concomitent
• Fiecare controler este
responsabil pentru un anumit
tip de dispozitiv
• Fiecare controler de dispozitiv
are un buffer local
• CPU mută datele
dinspre/către memoria
principală către/dinspre
bufferele locale
• Controlerele de dispozitiv
informează CPU că şi-au
terminat acţiunea generând o
întrerupere
Servicii OS vs HW
Intreruperi
Ce sunt întreruperile
• Intrerupere – semnal catre processor asociat cu un eveniment care necesita atentie
imediata. Semnalul este initiat hardware (vezi figura) sau software
• Întreruperea transferă control catre rutina serviciului de întrerupere folosind vectorul
de întrerupere ce conţine adresa tuturor rutinelor de serviciu.
• Calculatorul trebuie să salveze adresa instrucţiunii întrerupte.
• Întreruperile sunt dezactivate în timp ce o altă întrerupere este procesată, pentru a
evita pierderea unei întreruperii.
• “trap” (capcana) este o întrerupere generată de software declanşată de o eroare
(page-fault; overflow; scrie o pagina write-only) sau la cererea utilizatorului (apeluri
de sistem).
• Un sistem de operare este condus prin întreruperi
Stocarea datelor
Structura sistemului de stocare
• Memoria principală –pentru entitati pe care
CPU le poate accesa direct

• Zona de stocare secundară – extensie a


memoriei principale care pune la dispoziţie o
capacitate mare de stocare, non-volatilă. Ex:
• Disc magnetic – platane rigide de metal sau sticlă
acoperite cu material de înregistrare magnetic
• Storage Cloud– spatiu de stocare oferit pe o
multitudine de servere in Internet insa care este
vazut dpdv logic ca o entitate unitara
Ierarhia memoriei
• Atributele ierarhiei:
• Viteza
• Cost
• Volatilitate
• Capacitate-Bytes
Ierarhia memoriei dpdv viteza
Caching
• Caching – copierea informatiilor intr-un sistem de stocare mai rapid; ex:
memoria principala poate fi vazuta ca un cache pentru sistemul de stocarea
secundar - HDD.
• Concept important, aplicat la mai multe niveluri intr-un computer (ex:
hardware, sistem de operare, software,networking)
• Sistemul de stocare rapid (cache) este primul verificat pentru a obtine
informatia.
• Daca informatia exista, informatia este utilizata direct din cache (rapid)
• Daca informatia nu exista, informatia este mai intai copiata in cache si apoi utilizata
• Zona Cache este mai mica decat zona din care se preiau datele
Performanta memoriei
Mutarea unei date A de pe HDD in Registru

• Mediile multitasking trebuie sa foloseasca cea mai recenta


valoare, indiferent unde este aceasta stocata la un moment
dat
• Mediile multiprocesor trebuie sa asigure coerenta cache
in HW astfel incat toate CPU-urile sa beneficieze de cea mai
recenta valoare in cache-ul lor
• In cazul mediului distribuit situatia devine si mai complexa
• Pot exista mai multe copii ale unor date
Protectia SO
Protectia SO
• Operatiile sunt initiate prin intreruperi
• Erorile sau cererile din program crează exceptii sau traps
care presupun trecerea in Kernel mode unde SO va
gestiona exceptia
• Impartirea la 0
• Apeluri de sistem
• Modelul Dual-mode permite SO sa se protejeze; Modul
User si modul Kernel (nucleu); starea este pastrata prin
setarea unui bit
• Ofera abilitatea de a distinge momentele in care sistemul ruleaza codul
user-ului sau cel al kernel-ului
• Unele instructiuni sunt privilegiate si executabile doar in modul kernel.
• Un apel de sistem determina automat trecere in modul kernel, finalizarea
apelului reseteaza sistemul in modul user.
Kernel mode vs user mode
• Operatii privilegiate (kernel mode)
• Instructiuni care manipuleaza starea memoriei (tabela
de pagini; etc)
• Setare biti de mod: user mode vs. kernel mode
• Activare sau inactivare intreruperi
• Instructiuni de genul: HLT (HALT)
• etc
Tranzitia de la modul User la
modul Kernel
Protectia memoriei
• Protejeaza programele intre ele
• Protejeaza OS fata de programele utilizator

• Mecanisme
• Separere zone de memorie prin adresa de inceput si
adresa de sfarsit si verificare direct in HW
• Tabele de pagini; TLBs
Timer
Timer
• Permite calculul orei
• Este contor pentru cuante de executie oferite
proceselor
• Cuantele de executie sunt de obicei de ordinul
microsec (ex: 100 µs)
Operarea SO
Multitaskingul
• Multitasking-ul este o extensie a multiprogramarii: CPU trece de la
un task la altul atat de frecvent incat userii pot interactiona cu fiecare
task in timp ce ruleaza, creand procesare interactiva.
• Pentru utilizator Timpul de raspuns ar trebui sa fie < 1 secunda
• Fiecare user are cel putin 1 program care se executa in
memorie [proces
• Daca sunt mai multe sarcini gata sa porneasca in acelasi timp
[ este necesara planificarea CPU
Recapitulare
Sfârşitul cursului 1

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