Sunteți pe pagina 1din 50

Platform de e-learning i curricul e-content

pentru nvmntul superior tehnic


Sisteme de operare
1. Sisteme de operare. Roluri i descriere general
2
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
De ce SO?
sunt peste tot (PC, servere, smartphones)
administrarea eficient a unui sistem
asigurarea performanei aplicaiilor
depanarea aplicaiilor
system/low-level/kernel programming
nelegerea arhitecturilor, ierarhiei de memorie i sistemelor de calcul
skill-uri de programare i design
aspecte aplicate n alte domenii
concuren, gestiunea resurselor, gestiunea de structuri complexe
part of an elite
3
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
De ce SO? (2)
studiu de inserie
161 de absolveni de
Calculatoare - promoiile
2009, 2010
Ce cunotine
dobndite pe parcursul
facultii v-au fost de
folos la locul de munc?
4
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
De ce SO? (3)
It's fun!
5
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Where do we stand?
kernel space
user space
USO
SO
SO2
interfee de programare
de sistem (system API)
interfee de utilizare
6
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Where do we stand? (programming)
application programming (EGC, SPG, PP, SPRC, IOC, etc.)
system programming (PC, SO, CPL)
kernel programming (SO2)
kernel space
user space
7
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Bibliografie
Curs
Galvin, Silberschatz, Gagne
Operating System Concepts, 7th
Edition
Andrew Tanenbaum - Modern
Operating Systems, 2nd Edition
Laborator
Michael Kerrisk The Linux
Programming Interface
Johnson Hart Windows System
Programming, 4th Edition
8
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Bibliografie suplimentar
Mathew, Stones - Beginning Linux Programming, 4th Edition
Stephens, Rago Advanced Programming in the Unix Environment, 2nd
Edition
Robert Love Linux System Programming
Rector, Newcomer Win32 Programming
Charles Perzold Programming Windows, 5th Edition
John Levine Linkers and Loaders
9
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Suport curs 1
OSC
Chapter 1: Introduction
Chapter 2: Operating-System
Structures
MOS
Chapter 1: Introduction
10
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Ce este un SO?
Extensie a mainii fizice (vedere top-down)
abstractizeaz operaiile mainii fizice n operaii mai simple pentru
uurina utilizrii
ex: accesul la fiiere
Gestionar al resurselor mainii fizice (vedere bottom-up)
utilizatorii acceseaz resursele comune ale sistemului
SO are rolul de multiplexare a accesului
ex: gestiunea procesorului, a memoriei
11
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Ce este un SO? (2)
12
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Istoria sistemelor de operare
dezvoltarea sistemelor de calcul i a sistemelor de operare s-au
influenat reciproc
dificultatea programrii mainilor a dus la adugarea de faciliti n SO
dificulti ale implementrii SO au dus la adugarea de faciliti n hardware
(memoria virtual)
13
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Istoria sistemelor de operare (2)
Prima generaie (1945 - 1955)
primele calculatoare digitale
construite: relee
electromecanice, tuburi
programare se fcea manual, n
limbaj main
nu existau compilatoare sau
asambloare
nu existau sisteme de operare
14
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Istoria sistemelor de operare (3)
Generaia a doua (1955 - 1965)
tranzistoare, mainframeuri
apare conceptul de batch
sisteme de operare: FMS, IBSYS
15
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
First bug
On September 9th, Grace Hopper
recorded the first actual computer "bug"
a moth stuck between the relays and
logged at 15:45 hours on the Harvard
Mark II.
Hopper, a rear admiral in the U.S. Navy,
enjoyed successful careers in academia,
business, and the military while making
history in the computer field.
She helped program the Harvard Mark I
and II and developed the first compiler,
A-0. Her subsequent work on
programming languages led to COBOL, a
language specified to operate on
machines of different manufacturers.
16
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Istoria sistemelor de operare (4)
Generaia a treia (1965 - 1980)
circuite integrate
apare conceptul de familie de calculatoare (IBM System/360): aceeai
arhitectur i set de instruciuni
multiprogramare
partiionarea memoriei n mai multe segmente
ct timp un job ateapt la I/O alt job se execut
spooling
citirea joburilor de pe cartele perforate i pstrarea lor pe disc pn la
execuie
17
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
UNIX
18
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Istoria sistemelor de operare (5)
Generaia a treia (1965 - 1980) (multitasking)
CTSS (Compatible Time Sharing System)
MULTICS (Multiplexed Information and Computing Service)
MIT, Bell Labs, General Electric
lansat n 1960 are un succes comercial sczut
influen masiv asupra dezvoltrii ulterioare ale SO
UNIX
o versiune mult redus a MULTICS
implementat de Ken Thompson
portabil (scris n C)
System V, BSD
19
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Istoria sistemelor de operare (6)
Generaia a patra
(1980 - prezent)
microcalculatoare i calculatoarele
personale
CP/M
dezvoltat de Kidall pentru Intel 8080
MS-DOS
cumprat de Microsoft de la Seattle
Computer ($50, 000)
oferit mpreun cu BASIC pentru IBM PC
Mac OS
Steve Jobs fur ideea de GUI de la
Xerox
MS Windows: 3.11, 95, ..
influenat de Mac OS
20
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Istoria sistemelor de operare (7)
Generaia a patra (1980 - prezent)
MS Windows NT, 2000, XP, Vista, 7
Scris de la zero, 32/64 bii
David Cutler (VAX VMS)
Solaris, IRIX, HP-UX, ULTRIX
Tru64
primul sistem de operare pe 64 bii (procesoare Alpha)
Linux
clon UNIX
scris de la zero de Linus Torvalds
FreeBSD, OpenBSD, NetBSD
21
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Clasificare SO
SO pentru servere
SO pentru sisteme multiprocesor
SO pentru calculatoare personale
SO pentru sisteme embedded
RTOS
22
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Concepte hardware de baz
SO interacioneaz cu hardware-ul la un nivel destul de sczut
sunt necesare cunotine despre hardware pentru a nelege modul de
funcionare a sistemului de operare
23
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Procesoarele
Arhitecturi
o band asamblare (a)
o superscalar (b)
o VLIW/EPIC
Arhitecturi
o RISC
o CISC
24
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Memoria
Nivel
1 2 3
Nume
registre cache memorie principal
Dimensiune
32/64/128 bii ~ MB ~ GB
Tehnologie
specializat CMOS SRAM
(on-chip sau off-chip)
CMOS DRAM
Timp de acces (ns)
0,25-0,5 0,5-25 80-250
Lime de band (MB/s)
20.000-100.000 5000-10.000 1000-5000
Controlat de
compilator hardware sistemul de operare
Susinut de
cache memoria principal disc
25
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Memoria cache
Introdus pentru a crea iluzia unei memorii ieftine, rapide i de
capacitate mare
Probleme de
consisten: sisteme multitasking
coeren: sisteme multiprocesor
Tipuri de memorie cache
cu mapare direct
asociative total
asociative pe mai multe ci
26
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Dispozitive de I/E
n general sunt compuse din dou pri
un controller
dispozitivul efectiv
prile din SO care controleaz dispozitivele de I/E se numesc device
drivere
lente: mouse, tastatura
comunicaia ntre dispozitivele de I/E lente i procesor se poate face prin
polling
rapide: discuri, placa de reea, placa video
pentru controlul acestor dispozitive se folosesc ntreruperi i controllere
DMA
27
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
ntreruperi
(a) activarea unui dispozitiv I/E
i primirea unei ntreruperi
(b) tratarea unei ntreruperi
28
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
DMA
folosit n cazul transferurilor mari de date ntre dispozitivul de I/E i
memorie
procesorul programeaz transferul
transferul este efectuat de un controller dedicat (DMA)
la ncheierea transferului, controller-ul DMA emite o ntrerupere
29
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Magistrale
30
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Magistrale (2)
Linii de
adres (determin spaiul de adres)
date (mpreun cu frecvena magistralei determin limea de band)
Control
Limea de band
numrul de linii de date x frecvena magistralei
31
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Concepte de baz
procese, fire de execuie
deadlock
memorie virtual
sisteme de fiiere
interpretorul de comenzi
nucleul sistemului de operare
kernel mode vs user mode
kernel space vs user space
apeluri de sistem
32
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Procese
un program n execuie
are asociate mai multe resurse:
un spaiu de adrese
fiierele deschise
alte resurse (memorie partajat, socketi, etc)
n general procesele sunt ierarhizate dup relaia printe-copil
SO ofer protecie dar i comunicaie interprocese
33
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Fire de execuie
un proces poate avea mai multe fire de execuie
firele de execuie dintr-un proces partajeaz resursele acestuia
(memorie, fiiere deschise etc.)
fiecare fir de execuie are un context
context = informaii despre starea thread-ului (stiv, registre generale,
registre speciale)
avantaje / dezavantaje
paralelism cu o comunicaie extrem de facil i rapid
se pierde mai puin timp cnd se face o schimbare de context
nu exist protecie ntre firele de execuie
34
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Deadlock-uri
(a) deadlock potenial (b) deadlock
35
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Memorie virtual
adrese
virtuale
Fizice
MMU i SO fac translatarea din
adrese virtuale n adrese fizice
36
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Fiiere
cale, director rdcin, director de lucru
descriptor de fiier / handle
fiiere speciale
bloc
caracter
pipe-uri
link-uri
sistem de fiiere, operaii de montare/demontare
(a) nainte de montare
(b) dup montare
37
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Interpretorul de comenzi
Programul de interfa ntre utilizator i sistem
Mod linie de comand
avantaje: flexibilitate, puine resurse consumate
ex: sh , bash, korn
Mod grafic
avantaje: mai uor de utilizat
ex: explorer.exe n Windows
38
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Nucleul sistemului de operare
Nucleul SO are acces direct la hardware
Pri din nucleu sunt permanent rezidente n memorie
Imaginea nucleului
Linux: /vmlinuz, /boot/vmlinuz
Windows: %SystemRoot%\system32\ntoskrnl.exe
Mac OS X: Mach 3.0 + *BSD
module / drivere
39
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
kernel space vs. user space
Nucleul ruleaz n mod privilegiat
kernel mode
kernel space
Orice proces are un spaiu de adrese diferit
Nucleul lucreaz cu un spaiu de adrese diferit de cel al proceselor
user mode
user space
40
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Apeluri de sistem
Accesul la resursele sistemului se face prin apelarea serviciilor
puse la dispoziie de nucleu
41
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Componente ale SO
gestiunea proceselor
gestiunea memoriei
gestiunea fiierelor
gestiunea operaiilor de I/E
gestiunea reelei
42
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Gestiunea proceselor
crearea i terminarea proceselor
suspendarea i repornirea proceselor
planificatorul de procese (scheduler)
mecanisme de sincronizare
mecanisme pentru comunicaie inter-procese
detectare/rezolvare deadlock-uri
Protecie
43
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Gestiunea memoriei
gestiunea memoriei fizice i virtuale
memorie virtual, segmentare, paginare
swaping
gestiunea memoriei folosite de nucleu
memorie rezident permanent
memorie rezident temporar
gestiunea spaiilor de adrese
malloc/free, mmap
Protecie
44
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Gestiunea fiierelor
translatarea operaiilor de acces asupra fiierelor (open, close, read,
write, seek) n operaii de citire i scriere pe disc
caching i read-ahead
compresie i criptare
Protecie
45
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Gestiunea operaiilor de I/E
interfa comun pentru device drivere
caching, buffering
ntreruperi, DMA
I/O scheduling
46
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Structuri de SO
SO monolitice
SO microkernel
Maini virtuale
SO exokernel
SO stratificate
47
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Gestiunea reelei
implementarea unor stive de protocol eficiente i sigure (secure)
implementare n kernel
legturi cu alte subsisteme ale SO: memorie, procese, scheduling,
sisteme de fiiere
48
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
SO monolitice
UNIX i derivatele, Windows
49
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Microkernel
Minix, Amoeba
QNX
Mach
50
Platform de e-learning i curricul e-content pentru
nvmntul superior tehnic
SO Sisteme de operare. Roluri si descriere generala
Maini virtuale