Introducere în sisteme de operare

Содержание

Слайд 2

Resurse wiki: http://elf.cs.pub.ro/so/wiki/ NeedToKnow page:http://elf.cs.pub.ro/so/wiki/need-to-know folosiți feed-ul RSS lista de discuții

Resurse

wiki: http://elf.cs.pub.ro/so/wiki/
NeedToKnow page:http://elf.cs.pub.ro/so/wiki/need-to-know
folosiți feed-ul RSS
lista de discuții
so@cursuri.cs.pub.ro
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?

De ce SO?

Voi ce credeți?

Слайд 4

De ce SO? (2) sunt peste tot (PC, servere, smartphones) administrarea

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
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

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!

De ce SO? (4)

It's fun!

Слайд 7

Legătura cu celelalte materii Prerequisites USO Programare, SD IOCLA, CN PC,

Legătura cu celelalte materii

Prerequisites
USO
Programare, SD
IOCLA, CN
PC, RL
Materii ce depind de SO
SO2,

CPL
ASC, APP, SPRC
Слайд 8

Unde ne aflam? kernel space user space USO SO SO2 interfețe

Unde ne aflam?

kernel space

user space

USO

SO

SO2

interfețe de programare de sistem (system API)

interfețe

de utilizare
Слайд 9

Unde ne aflam?(programare) application programming (EGC, SPG, PP, SPRC, IOC, etc.)

Unde ne aflam?(programare)

application programming (EGC, SPG, PP, SPRC, IOC, etc.)

system programming

(PC, SO, CPL)

kernel programming (SO2)

kernel space

user space

Слайд 10

Bibliografie curs Galvin, Silberschatz, Gagne – Operating System Concepts, 7th Edition

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
Слайд 11

Bibliografie suplimentară Mathew, Stones - Beginning Linux Programming, 4th Edition Stephens,

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) abstractizează

Ce este un SO?

Extensie a maşinii fizice (vedere top-down)
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)
utilizatorii accesează resursele comune ale sistemului
SO are rolul de multiplexare a accesului
ex: gestiunea procesorului, a memoriei
Слайд 13

Ce este un SO? (2)

Ce este un SO? (2)

Слайд 14

Istoria sistemelor de operare dezvoltarea sistemelor de calcul și a sistemelor

Istoria sistemelor de operare

dezvoltarea sistemelor de calcul și a sistemelor de

operare s-au influențat reciproc
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

Istoria sistemelor de operare (2)

prima generaţie (1945 -1955)
primele calculatoare digitale construite:

relee electromecanice, tuburi
programare se făcea manual, în limbaj mașină
nu existau compilatoare sau asambloare
nu existau sisteme de operare
Слайд 16

Istoria sistemelor de operare (3) generaţia a doua (1955 -1965) tranzistoare,

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

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.
Слайд 18

Istoria sistemelor de operare (4) generația a treia (1965 -1980) circuite

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
partiționarea memoriei în mai multe segmente
cât timp un job așteaptă la I/O alt job se execută
spooling
citirea joburilor de pe cartele perforate și păstrarea lor pe disc până la execuție
Слайд 19

UNIX

UNIX

Слайд 20

Istoria sistemelor de operare (5) generația a treia (1965 -1980) multitasking

Istoria sistemelor de operare (5)

generația a treia (1965 -1980)
multitasking (time-sharing)
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) microcalculatoare

Istoria sistemelor de operare (6)

generaţia a patra (1980 -prezent)
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) MS

Istoria sistemelor de operare (7)

Generaţia a patra (1980 -prezent)
MS Windows NT,

2000, XP, Vista, 7
Scris de la zero, 32/64 biţi
David Cutler (VAX VMS)
Solaris, IRIX, HP-UX, ULTRIX
Tru64
primul sistem de operare pe 64 biţi (procesoare Alpha)
Linux
clonă UNIX
scris de la zero de Linus Torvalds
FreeBSD, OpenBSD, NetBSD
Слайд 23

Clasificare SO SO pentru servere SO pentru sisteme multiprocesor SO pentru

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

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 bandă asamblare (a) superscalar (b) VLIW/EPIC Arhitecturi RISC CISC

Procesoarele

Arhitecturi
bandă asamblare (a)
superscalar (b)
VLIW/EPIC

Arhitecturi
RISC
CISC

Слайд 26

Memoria cache Introdusă pentru a crea iluzia unei memorii ieftine, rapide

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 căi
Слайд 27

Dispozitive de I/E în general sunt compuse din două părți un

Dispozitive de I/E

în general sunt compuse din două părți
un controller
dispozitivul efectiv
părțile

din SO care controlează dispozitivele de I/E se numesc device drivere
lente: mouse, tastatura
comunicația între dispozitivele de I/E lente și procesor se poate face prin polling
rapide: discuri, placa de rețea, placa video
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

Î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

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
Слайд 30

Magistrale

Magistrale

Слайд 31

Magistrale (2) Linii de adresă (determină spaţiul de adresă) date (împreună

Magistrale (2)

Linii de
adresă (determină spaţiul de adresă)
date (împreună cu frecvența magistralei

determină lățimea de bandă)
control
Lățimea de bandă
numărul de linii de date x frecvența magistralei
Слайд 32

Concepte de bază procese, fire de execuție deadlock memorie virtuală sisteme

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: un

Procese

un program în execuție
are asociate mai multe resurse:
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

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
context = informații despre starea thread-ului (stivă, registre generale, registre speciale)
avantaje / dezavantaje
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)

Deadlock-uri

deadlock potențial (a)
deadlock (b)

Слайд 36

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

Memorie virtuală

adrese
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 /

Fișiere

cale, director rădăcină, director de lucru
descriptor de fișier / handle
fișiere speciale
bloc
caracter
pipe-uri
link-uri
sistem

de fișiere, operații de montare/demontare
(a) înainte de montare
(b) după montare
Слайд 38

Interpretorul de comenzi Programul de interfață între utilizator şi sistem Mod

Interpretorul de comenzi

Programul de interfață între utilizator şi sistem
Mod linie de

comandă
avantaje: flexibilitate, puține resurse consumate
ex: sh , bash, korn
Mod grafic
avantaje: mai ușor de utilizat
ex: explorer.exe în Windows
Слайд 39

Nucleul sistemului de operare Nucleul SO are acces direct la hardware

Nucleul sistemului de operare

Nucleul SO are acces direct la hardware
Părți 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
Слайд 40

kernel space vs. user space Nucleul rulează în mod privilegiat kernel

kernel space vs. user space

Nucleul rulează în mod privilegiat
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
user mode
user space
Слайд 41

Apeluri de sistem Accesul la resursele sistemului se face prin apelarea

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

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 planificatorul

Gestiunea proceselor

crearea și terminarea proceselor
suspendarea și repornirea proceselor
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 memorie virtuală, segmentare, paginare

Gestiunea memoriei

gestiunea memoriei fizice și virtuale
memorie virtuală, segmentare, paginare
swaping
gestiunea memoriei folosite

de nucleu
memorie rezidentă permanentă
memorie rezidentă temporară
gestiunea spațiilor de adrese
malloc/free, mmap
protecție
Слайд 45

Gestiunea fișierelor translatarea operațiilor de acces asupra fișierelor (open, close, read,

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

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)

Gestiunea rețelei

implementarea unor stive de protocol eficiente și sigure (secure)
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

Structuri de SO

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

Слайд 49

SO monolitice UNIX și derivatele, Windows

SO monolitice

UNIX și derivatele, Windows

Слайд 50

Microkernel Minix, Amoeba QNX Mach

Microkernel

Minix, Amoeba
QNX
Mach

Слайд 51

Mașini virtuale

Mașini virtuale