Introducere în sisteme de operare

1.

Introducere în sisteme de
operare

2.

Resurse
• wiki: http://elf.cs.pub.ro/so/wiki/
o NeedToKnow page:http://elf.cs.pub.ro/so/wiki/need-to-know
o folosiți feed-ul RSS
• lista de discuții
o [email protected]
o abonați-vă (detalii pe wiki)
• catalog Google, calendar Google
• mașini virtuale
• vmchecker (verificare teme)
• documentație
• cs.curs.pub.ro (rol de portal)
• canalul de IRC #cs_so pe Freenode

3.

De ce SO?
Voi ce credeți?

4.

De ce SO? (2)
sunt peste tot (PC, servere, smartphones)
administrarea eficientă a unui sistem
asigurarea performanței aplicațiilor
depanarea aplicațiilor
system/low-level/kernel programming
înțelegerea arhitecturilor, ierarhiei de memorie și sistemelor de
calcul
• skill-uri de programare și design
• aspecte aplicate în alte domenii
o concurență, gestiunea resurselor, gestiunea de structuri
complexe
• part of an elite

5.

De ce SO? (3)
• studiu de inserție
• 161 de absolvenți de Calculatoare - promoțiile 2009, 2010
• Ce cunoștințe dobândite pe parcursul facultății v-au fost de folos
la locul de muncă?

6.

De ce SO? (4)
It's fun!

7.

Legătura cu celelalte materii
• Prerequisites
o
o
o
o
USO
Programare, SD
IOCLA, CN
PC, RL
• Materii ce depind de SO
o
o
SO2, CPL
ASC, APP, SPRC

8.

Unde ne aflam?
interfețe de utilizare
interfețe de programare
de sistem (system API)
USO
SO
user space
SO2
kernel space

9.

Unde ne aflam?(programare)
application programming (EGC, SPG, PP, SPRC, IOC, etc.)
system programming (PC, SO, CPL)
kernel programming (SO2)
user
space
kernel
space

10.

Bibliografie
• curs
o
o
Galvin, Silberschatz, Gagne – Operating System Concepts, 7th Edition
Andrew Tanenbaum - Modern Operating Systems, 2nd Edition
• laborator
o
o
Michael Kerrisk – The Linux Programming Interface
Johnson Hart – Windows System Programming, 4th Edition

11.

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

12.

Ce este un SO?
• Extensie a maşinii fizice (vedere top-down)
o
o
abstractizează operațiile mașinii fizice în operații mai simple pentru
ușurința utilizării
ex: accesul la fișiere
• Gestionar al resurselor mașinii fizice (vedere bottom-up)
o
o
o
utilizatorii accesează resursele comune ale sistemului
SO are rolul de multiplexare a accesului
ex: gestiunea procesorului, a memoriei

13.

Ce este un SO? (2)

14.

Istoria sistemelor de operare
• dezvoltarea sistemelor de calcul și a sistemelor de operare s-au
influențat reciproc
o
o
dificultatea programării mașinilor a dus la adăugarea de facilități în SO
dificultăți ale implementării SO au dus la adăugarea de facilități în
hardware (memoria virtuală)

15.

Istoria sistemelor de operare (2)
• prima generaţie (1945 -1955)
primele calculatoare digitale
construite: relee
electromecanice, tuburi
o programare se făcea manual,
în limbaj mașină
o nu existau compilatoare sau
asambloare
o nu existau sisteme de operare
o

16.

Istoria sistemelor de operare (3)
generaţia a doua (1955 -1965)
tranzistoare, mainframeuri
apare conceptul de batch
sisteme de operare: FMS, IBSYS

17.

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, A0. Her subsequent work on programming
languages led to COBOL, a language
specified to operate on machines of
different manufacturers.

18.

Istoria sistemelor de operare (4)
• generația a treia (1965 -1980)
• circuite integrate
• apare conceptul de familie de calculatoare (IBM
System/360): aceeași arhitectură și set de instrucțiuni
• multiprogramare
o
o
partiționarea memoriei în mai multe segmente
cât timp un job așteaptă la I/O alt job se execută
• spooling
o
citirea joburilor de pe cartele perforate și păstrarea lor pe disc până
la execuție

19.

UNIX

20.

Istoria sistemelor de operare (5)
• generația a treia (1965 -1980)
• multitasking (time-sharing)
o
o
o
CTSS (Compatible Time Sharing System)
MULTICS (Multiplexed Information and Computing Service)
MIT, Bell Labs, General Electric
lansat în 1960 are un succes comercial scăzut
influență masivă asupra dezvoltării ulterioare ale SO
UNIX
o versiune mult redusă a MULTICS
implementat de Ken Thompson
portabil (scris în C)
System V, BSD

21.

Istoria sistemelor de operare (6)
• generaţia a patra (1980 -prezent)
o
o
o
o
o
microcalculatoare şi calculatoarele
personale
CP/M
dezvoltat de Kidall pentru Intel
8080
MS-DOS
cumpărat 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, ..
influenţat de Mac OS

22.

Istoria sistemelor de operare (7)
• Generaţia a patra (1980 -prezent)
o
MS Windows NT, 2000, XP, Vista, 7
Scris de la zero, 32/64 biţi
David Cutler (VAX VMS)
o
o
Solaris, IRIX, HP-UX, ULTRIX
Tru64
primul sistem de operare pe 64 biţi (procesoare Alpha)
o
Linux
clonă UNIX
scris de la zero de Linus Torvalds
o
FreeBSD, OpenBSD, NetBSD

23.

Clasificare SO
SO pentru servere
SO pentru sisteme multiprocesor
SO pentru calculatoare personale
SO pentru sisteme embedded
RTOS

24.

Concepte hardware de bază
• SO interacționează cu hardware-ul la un nivel destul de scăzut
• sunt necesare cunoștințe despre hardware pentru a înțelege modul
de funcționare a sistemului de operare

25.

Procesoarele
• Arhitecturi
o
o
o
bandă asamblare (a)
superscalar (b)
VLIW/EPIC
• Arhitecturi
o
o
RISC
CISC

26.

Memoria cache
• Introdusă pentru a crea iluzia unei memorii ieftine, rapide și de
capacitate mare
• Probleme de
o
o
consistență: sisteme multitasking
coerență: sisteme multiprocesor
• Tipuri de memorie cache
o
o
o
cu mapare directă
asociative total
asociative pe mai multe căi

27.

Dispozitive de I/E
• în general sunt compuse din două părți
o
o
un controller
dispozitivul efectiv
• părțile din SO care controlează dispozitivele de I/E se
numesc device drivere
• lente: mouse, tastatura
o
comunicația între dispozitivele de I/E lente și procesor se poate
face prin polling
• rapide: discuri, placa de rețea, placa video
o
pentru controlul acestor dispozitive se folosesc întreruperi și
controllere DMA

28.

Întreruperi
(a) activarea unui dispozitiv I/E și primirea unei întreruperi
(b) tratarea unei întreruperi

29.

DMA
• folosit în cazul transferurilor mari de date între dispozitivul de I/E şi
memorie
o
o
o
procesorul programează transferul
transferul este efectuat de un controller dedicat (DMA)
la încheierea transferului, controller-ul DMA emite o întrerupere

30.

Magistrale

31.

Magistrale (2)
• Linii de
o
o
o
adresă (determină spaţiul de adresă)
date (împreună cu frecvența magistralei determină lățimea de bandă)
control
• Lățimea de bandă
o
numărul de linii de date x frecvența magistralei

32.

Concepte de bază
procese, fire de execuție
deadlock
memorie virtuală
sisteme de fișiere
interpretorul de comenzi
nucleul sistemului de operare
kernel mode vs user mode
kernel space vs user space
apeluri de sistem

33.

Procese
• un program în execuție
• are asociate mai multe resurse:
o
o
o
un spațiu de adrese
fișierele deschise
alte resurse (memorie partajată, socketi, etc)
• în general procesele sunt ierarhizate după relația părinte-copil
• SO oferă protecție dar şi comunicație interprocese

34.

Fire de execuție
• un proces poate avea mai multe fire de execuție
• firele de execuţie dintr-un proces partajează resursele
acestuia (memorie, fișiere deschise etc.)
• fiecare fir de execuție are un context
o
context = informații despre starea thread-ului (stivă, registre
generale, registre speciale)
• avantaje / dezavantaje
o
o
o
paralelism cu o comunicație extrem de facilă și rapidă
se pierde mai puțin timp când se face o schimbare de context
nu există protecție între firele de execuție

35.

Deadlock-uri
• deadlock potențial (a)
• deadlock (b)

36.

Memorie virtuală
• adrese
o
o
virtuale
fizice
• MMU și SO fac translatarea
din adrese virtuale în adrese
fizice

37.

Fișiere
• cale, director rădăcină, director de lucru
• descriptor de fișier / handle
• fișiere speciale
o
o
o
o
bloc
caracter
pipe-uri
link-uri
• sistem de fișiere, operații de montare/demontare
o (a) înainte de montare
o (b) după montare

38.

Interpretorul de comenzi
• Programul de interfață între utilizator şi sistem
• Mod linie de comandă
o
o
avantaje: flexibilitate, puține resurse consumate
ex: sh , bash, korn
• Mod grafic
o
o
avantaje: mai ușor de utilizat
ex: explorer.exe în Windows

39.

Nucleul sistemului de operare
• Nucleul SO are acces direct la hardware
• Părți din nucleu sunt permanent rezidente în memorie
• Imaginea nucleului
o
o
o
Linux: /vmlinuz, /boot/vmlinuz
Windows: %SystemRoot%\system32\ntoskrnl.exe
Mac OS X: Mach 3.0 + *BSD
• module / drivere

40.

kernel space vs. user space
• Nucleul rulează în mod privilegiat
o
o
kernel mode
kernel space
• Orice proces are un spațiu de adrese diferit
• Nucleul lucrează cu un spațiu de adrese diferit de cel al proceselor
o
o
user mode
user space

41.

Apeluri de sistem
• Accesul la resursele sistemului se face prin apelarea
serviciilor puse la dispoziție de nucleu

42.

Componente ale SO
gestiunea proceselor
gestiunea memoriei
gestiunea fișierelor
gestiunea operațiilor de I/E
gestiunea rețelei

43.

Gestiunea proceselor
• crearea și terminarea proceselor
• suspendarea și repornirea proceselor
o
planificatorul de procese (scheduler)
mecanisme de sincronizare
mecanisme pentru comunicație inter-procese
detectare/rezolvare deadlock-uri
protecție

44.

Gestiunea memoriei
• gestiunea memoriei fizice și virtuale
o
o
memorie virtuală, segmentare, paginare
swaping
• gestiunea memoriei folosite de nucleu
o
o
memorie rezidentă permanentă
memorie rezidentă temporară
• gestiunea spațiilor de adrese
o
malloc/free, mmap
• protecție

45.

Gestiunea fișierelor
• translatarea operațiilor de acces asupra fișierelor (open, close,
read, write, seek) în operații de citire și scriere pe disc
• caching și read-ahead
• compresie și criptare
• protecție

46.

Gestiunea operațiilor de I/E
interfață comună pentru device drivere
caching, buffering
întreruperi, DMA
I/O scheduling

47.

Gestiunea rețelei
• implementarea unor stive de protocol eficiente și sigure (secure)
o
implementare în kernel
• legături cu alte subsisteme ale SO: memorie, procese, scheduling,
sisteme de fișiere

48.

Structuri de SO
SO monolitice
SO microkernel
Mașini virtuale
SO exokernel
SO stratificate

49.

SO monolitice
• UNIX și derivatele, Windows

50.

Microkernel
• Minix, Amoeba
• QNX
• Mach

51.

Mașini virtuale

52.

Lucru individual
Scrieți avantajele și deavantajele familiei Windows și Unix de sisteme de
operare
English     Русский Правила