Sunteți pe pagina 1din 46

Cursul 1: Introducere

Sisteme de Operare
% of world’s
population
Context - Internet 3.8 B
ARPANet

Internet WWW 2.0 B 1/26/11


RFC 675 TCP/IP

HTTP 0.9

1969 1974 1990 2017

source UCB
Context - Hardware
• In numai 50 de ani, fiecare componenta HW
este mai rapida; mai mare; mai ieftina cu
~10^9x
• Moore’s law (‘75-’12) – putere de calcul 2x
la 2 ani
Context - CPUs
• In 1960 rata No. CPU/persoana 1:10^6
• mainframes

• Rata No. CPU/persoana 10^3:1


• PC:
• 2+
• Telefoanele:
• min 1; uzual 2; insa avem si 8
• Appliances
• Smart watch, smart everything (IoT)
• Automobil
• 10-100
Context – software
• Complexitatea

Linux 2.2.0

Mars Curiosity Rover

Firefox

Android

Linux 3.1 (recent)

Windows 7

Microsoft Office 2013

Windows Vista

Facebook

Mac OS X "Tiger"

Modern Car

Mouse Base Pairs

0 20 40 60 80 100 120 140

Millions of Lines of Code


(source https://informationisbeautiful.net/visualizations/million-lines-of-code/)
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 SO
• Intelegerea evolutiei SO 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 are rol de alocare resurse si control (Arbitru)
• Gestioneaza toate resursele (ex. Cicluri de processor,
memoria, etc)
• Decide intre cereri conflictuale asigurand folosirea
corecta si eficienta a resurselor
• Controleaza executia programelor pentru a preveni
erorile si utilizarea necorespunzatoare a computerului
(ex. Acces la zone de memorie a altui program)
• SO are rol de iluzionist
• Abstractizare a resurselor fizice (perceptie resurse
infinite prin virtualizare)
• SO are rol de facilitator
• Ofera componente ce imbunatatesc performanta HW &
SW (ex. API, sistem fisiere, networking, sistem de
ferestre)
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.
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
Functiile SO
Functiile SO
Mapate cu HW:
• 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
Servicii OS vs HW
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)
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 date 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
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
In concluzie
• SO ofera o abstractizare pentru a putea
gestiona in mod unitar HW divers
• SO coordoneaza resursele si protejeaza
userii unul de celalalt

• Cursul de SO prezinta:
• Conceptele de baza din SO (procese, fire de
executie, concurenta, spatiu de adresa, fisiere,
etc)
• Modul de design al sistemelor complexe (design
patterns)
Sfârşitul cursului 1
Anexa (optional)
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
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
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

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