DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio –...

62
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Sistemi Operativi Marco D. Santambrogio – [email protected] Ver. aggiornata al 12 Aprile 2013

Transcript of DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio –...

Page 1: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Sistemi OperativiSistemi Operativi

Marco D. Santambrogio – [email protected]. aggiornata al 12 Aprile 2013

Page 2: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

AgendaAgenda

• Intro e un po’ di storia• Qualche curiosità• Accenni sul funzionamento di un

SO

2

Page 3: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Cosa vediamo adesso…Cosa vediamo adesso…

• Intro e un po’ di storia

• Qualche curiosità• Accenni sul funzionamento di un

SO

3

Page 4: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Le Le generazionigenerazioni

• 40’: Prima generazione E’ in realtà difficile parlare di SO

• 50’: Seconda generazione La General Motors Research Laboratories crea il 1mo SO

per l’IBM 701

• 60’: Terza generazione Multiprogramming, più programmi simultaneamente nella

memoria centrale Time-sharing

• 70’-90’: Quarta generazione Circuiti LSI (Large Scale Integration)

• Nascita dei Personal Computer

• 00’: Quinta generazione Sistemi multicore

4

Page 5: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

UNIXUNIX

• 1969: La storia di UNIX inizia nei laboratori Bell della AT&T

• 1973: La svolta, UNIX viene scritto in C.

• 1975: Viene scritta la Versione 6 di UNIX Divenne largamente utilizzata anche fuori

dai laboratori Bell Il problema/il vantaggio:

• Essendo allora UNIX libero, ogni venditore di macchine si faceva una versione proprietaria esclusiva, un po' diversa ed spesso incompatibile con le versioni degli altri venditori

5

Page 6: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

6

Page 7: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

*NIX*NIX

7

Page 8: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

GNU Operating SystemGNU Operating System

• 1984: Nasce il progetto GNU GNU’s Not Unix

• GNU è un sistema operativo tipo Unix distribuito come SW libero

• Il Kernel di GNU è Hurd Kernel in continuo sviluppo GNU/Linux

• Nota: il kernel (nucleo) è un programma che si occupa di dare le funzionalità di base per il funzionamento di un computer

8

Page 9: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

LinuxLinux

• 1991: Nascita di Linux Linus Torvalds Si scontra in un newsgroup Usenet

con il professor Andrew Tanenbaum• Tanenbaum è l’invetore di Minix• Divieto di modifcare il codice per fini non

educational e sotto approvazione dell’autore

• Kernel monolitici Vs microkernel

9

Page 10: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

microkernel Vs kernel microkernel Vs kernel modularemodulare

• microkernel kernel minimale con “lo stretto indispensabile”

ad utilizzare l’hardware si scrivono tutti i servizi (chiamate di sistema) in

user-space• comunicano direttamente con il kernel minimale• le altre applicazioni in user-space possono decidere

di utilizzare le chiamate di sistema o riferirsi direttamente al microkernel.

• kernel monolitico Tutto quanto necessario ad usare il sistema e a

fornirne un utilizzo ai programmi che vi girano è programmato in un unico programma (monolitico) che gira in kernel-space

10

Page 11: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Linux e la sua comunitàLinux e la sua comunità

• I LUG: Linux User Group Associazioni senza fine di lucro Diffondere l’uso del SW Libero Diffondere l’uso dei SO basati sul

kernel di Linux

• Il Linux DAY Evento per la promozione del SW

libero e dei sistemi basati su Linux

11

Page 12: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

shell di DOSshell di DOS

12

Page 13: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

DOSDOS

• CP/M Control Program for Microcomputers Gary Kildall della Digital Research

• 1980: 86-DOS/QDOS Quick and Dirty Operating System Tim Paterson della Seattle Computer Products

• 1981: Luglio: Microsoft compra per$50K(?) l’86-DOS Agosto: Microsoft Disk Operating System

• MS-DOS 1.0

13

Page 14: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

WindowsWindows

• Nov. 1983: Annuncio di Windows• Nov. 1955: Windows 1.0 rilasciato• 1998: Windows 98• 2000: Windows 2000• 2001: Windows XP• 2007: Windows Vista• 2009: Windows 7

• kernel ibrido microkernel fatto comunicare tramite

messaggi con i restanti servizi, tutto in kernel-space

14

Page 15: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Mac OS e Mac OS XMac OS e Mac OS X

• 1984: Mac OS Macintosh Operating System Primo OS ad usare con successo una GUI

• ‘86-’95: NextSTEP (’98 Rhapsody) kernel Mach (microkernel) Objective-C Gestione orientata agli oggetti

• Diventerà Cocoa

• Mac OS X Rhapsody + Mac OS

15

Page 16: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

16

Time

#Cores

2007

1

2006

2

4

32

2014

Quadcore

2005

64 cores

Dualcore

1000 cores

Intel

Sun

N Cores

8-24cores

Il mondo dell’informatica è pronto per una rivoluzione

Larrabee

Calcolo paralleloCalcolo parallelo

Page 17: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Sistemi Operativi per Sistemi Operativi per multicoremulticore

• Barrelfish Operating System @ ETH http://www.barrelfish.org/

• K42/Tornado OS @ IBM/Uniersity of Toronto http://www.eecg.toronto.edu/~tornado/

• fos: Factored Operating System @ MIT groups.csail.mit.edu/carbon/fos

• Tessellation OS @ Berkeley http://tessellation.cs.berkeley.edu/

17

Page 18: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Cosa vediamo adesso…Cosa vediamo adesso…

• Intro e un po’ di storia

• Qualche curiosità

• Accenni sul funzionamento di un SO

18

Page 19: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

In Italia…Alessandro In Italia…Alessandro RubiniRubini

• Co-autore di Linux Device Drivers

• Pagina personale http://ar.linux.it/

• Intervista: Il kernel? Non è vecchio, solo complicato http://linea-dombra.blogspot.com/

2010/04/il-kernel-non-e-vecchio-solo-complicato.html

19

Page 20: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

• RTAI: RealTime Application Interface Patch Real Time per Linux DIAPM: Dipartimento di Ingegneria Aerospaziale https://www.rtai.org/

• AcOS: Autonomic Operating System for Adaptive Computing Patch Self-Aware per Linux e FreeBSD DEI: Dipartimento di Elettronica e Informazione www.changegrp.org/acos

• morphone.OS Patch Self-Aware per Android DEI: Dipartimento di Elettronica e Informazione www.changegrp.org/morphone

… … il Politecnico di Milanoil Politecnico di Milano

Page 21: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Cosa vediamo adesso…Cosa vediamo adesso…

• Intro e un po’ di storia• Qualche curiosità

• Accenni sul funzionamento di un SO

21

Page 22: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

22

Il sistema OperativoIl sistema Operativo

• Il sistema operativo (SO) è uno strato software che nasconde agli utenti i dettagli dell’architettura hardware del calcolatore

• Fornisce diverse funzionalità ad alto livello che facilitano l’accesso alle risorse del calcolatore

• Supporta l’esecuzione dei programmi applicativi definendo una macchina virtuale, cioè un modello ideale del calcolatore, sollevando il software applicativo dal compito di gestire i limiti delle risorse disponibili

Page 23: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

23

Il SO e la macchina realeIl SO e la macchina reale

CPU

A, B, C, D

RAM

ABCD

bus

utilizzo a rotazione suddivisione in blocchi

Periferiche

A, B, C, D

utilizzo a rotazione

Page 24: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

24

Il SO e le Il SO e le macchine virtualimacchine virtuali

• Il sistema operativo può gestire più processi simultaneamente

• Rende quindi visibile ad ogni processo una macchina virtuale ad esso interamente dedicata e quindi con risorse proprie nella figura OD = other devices (altri dispositivi)

CPU A RAM A

OD A

HD A

Rete A I/O Aproc

. A

CPU B RAM B

OD B

HD B

Rete B I/O B

proc

. B

CPU D RAM D

OD D

HD D

Rete D I/O D

proc. D

CPU C RAM C

OD C

HD C

Rete C I/O C

proc. C

bus

Page 25: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

25

Architettura del SOArchitettura del SO

• Il SO è tipicamente organizzato a strati • Ciascun strato costituisce una

macchina virtuale che gestisce una risorsa del calcolatore

• Le principali funzionalità offerte sono: La gestione dei processi La gestione della memoria La gestione delle periferiche (tra cui la

rete) La gestione del file system La gestione dell’interfaccia utente

• Le prime tre funzionalità sono indispensabili per il funzionamento del sistema e pertanto costituiscono il nucleo del SO (Kernel)

Programmi utente

Interprete comandi

File system

Gestione delle periferiche

Gestione della memoria

Gestione dei processi

Macchina fisica

Kernel

Page 26: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

26

Tipi di Sistema OperativoTipi di Sistema Operativo

• Esistono diversi tipi di sistema operativo, ma in generale si possono dividere in: Monoutente e monoprogrammato

• Esecuzione un solo programma applicativo alla volta• Viene utilizzato da un solo utente per volta• Esempio: DOS

Monoutente e multiprogrammato (multitasking)• Consente di eseguire contemporaneamente più

programmi applicativi• Esempio: Windows 95

Multiutente• Consente l’utilizzo contemporaneo da parte di più

utenti• E’ inerentemente multiprogrammato• Esempio: Linux

Page 27: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

27

Gestione dell’interfaccia Gestione dell’interfaccia utenteutente

• Il SO fornisce un interprete dei comandi inseriti dall’utente attraverso la tastiera o il mouse

• L’interfaccia utente può essere Testuale (esempio: DOS) Grafica (esempio: Windows)

• Consente l’inserimento di diversi comandi: Esecuzione di programmi applicativi Operazioni sulle periferiche Configurazione dei servizi del SO Operazioni sul file system (creazione, rimozione,

copia, ricerca, ecc.)

Page 28: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

28

Gestione del file system Gestione del file system

• Il SO si occupa di gestire i file sulla memoria di massa: Creare un file Dargli un nome Collocarlo in un opportuno spazio nella memoria

di massa Accedervi in lettura e scrittura

• Gestione dei file indipendente dalle caratteristiche fisiche della memoria di massa

• I file vengono inclusi all’interno di directory (o cartelle, o cataloghi) In genere, le directory sono organizzate ad albero

Page 29: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

29

La struttura ad alberoLa struttura ad albero

Page 30: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

30

Organizzazione dei file Organizzazione dei file

• A ciascun utente è normalmente associata una directory specifica, detta home directory

• Il livello di protezione di un file indica quali operazioni possono essere eseguite da ciascun utente

• Ciascun file ha un pathname (o nome completo) che include l’intero cammino dalla radice dell’albero

• Il contesto di un utente all’interno del file system è la directory in cui correntemente si trova

Page 31: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

31

Gestione delle perifericheGestione delle periferiche

• Sono meccanismi software a cui è affidato il compito di trasferire dati da e verso le periferiche

• Consentono ai programmi applicativi di leggere o scrivere i dati con primitive di alto livello che nascondono la struttura fisica delle periferiche e.g., nel sistema Unix le periferiche

sono viste come file speciali

Page 32: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

32

Gestione dei processiGestione dei processi

• Il SO multiprogrammato e multiutente si occupa di gestire l’esecuzione concorrente di più programmi utente

• La CPU del calcolatore (o le CPU nei sistemi multiprocessore) deve essere distribuita in maniera opportuna fra i programmi da eseguire

• Ogni programma eseguito ha a disposizione una macchina virtuale realizzata dal SO che ne consente l’esecuzione come se la CPU del calcolatore fosse interamente dedicata a esso

Page 33: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Ma prima…Ma prima…

PAUSA!!!... 10’

33

Page 34: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

34

Che cosa è un processo per il Che cosa è un processo per il SO?SO?

• Processo ≠ programma !• Processo = esecuzione di un programma, composto

da: codice eseguibile (il programma stesso) dati

• Lo stesso programma può essere associato a più processi: Un programma può essere scomposto in varie

parti e ognuna di esse può essere associata a un diverso processo

Lo stesso programma può essere associato a diversi processi quando esso viene eseguito più volte, anche simultaneamente

Page 35: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Processi e strutture datiProcessi e strutture dati

• Ad un processo sono associate le seguenti strutture dati: Uno o più segmenti di codice Uno o più segmenti di memoria dati I descrittori di eventuali risorse in uso

(file, finestre, periferiche, ecc.) Uno o più thread

• Un processo consta di tre zone di memoria chiamate regioni: dati, codice e stack

35

Page 36: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Ricordate la… Ricordate la… visibilitàvisibilità

Livello globale

main

f1

g1,g2,g3

a,b

a,c

a,d

d

blocco1

blocco2

blocco3

char g1, g2, g3;main(){ int a, b; … {/*blcco1*/ double a,c; } …}void f1(){ … {/*blocco2*/ char a,d; } … {/*blocco3*/ float d … }}

Page 37: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Ambiente di esecuzioneAmbiente di esecuzione

• L’ambiente di esecuzione di una funzione (variabili e parametri formali) viene creato al momento della chiamata e rilasciato quando la funzione termina

• In una sequenza di chiamate, l’ultima chiamata è la prima a terminare

• La zona di memoria di lavoro che contiene l’ambiente di esecuzione di un sottoprogramma è gestito con la logica di una pila (stack) L’ultimo elemento inserito nello stack è il primo ad

essere estratto Logica LIFO (Last In First Out)

37

Page 38: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Ambiente di esecuzione: Ambiente di esecuzione: esempioesempio

38

void a ();void b();void c();main(){ … a(); …}

void a (){ printf(“Esecuzione di a\n”); b(); printf(“Termine di a\n”);}void b(){ printf(“Esecuzione di b\n”); c(); printf(“Termine di b\n”);}void c(){ printf(“Esecuzione di c\n”); … printf(“Termine di c\n”);}

Esecuzione di aEsecuzione di bEsecuzione di cTermine di cTermine di bTermine di a

Ambiente a

Ambiente b

Ambiente c

Page 39: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Record di attivazioneRecord di attivazione

• Alla chiamata di una funzione si alloca uno spazio di memoria (record di attivazione) in

cima allo stack per contenere i parametri formali e le variabili locali

lo spazio viene rilasciato quando la funzione termine (ricordate la funzione swap senza puntatori?)

• Il record di attivazione contiene: L’ambiente locale della funzione L’indirizzo di ritorno al chiamante

• Funzionamento: Ad ogni attivazione viene allocato un record di attivazione Al termine dell’attivazione il record viene rilasciato (l’area

di memoria è riutilizzabile) La dimensione del record di attivazione è già nota in fase

di compilazione Il numero di attivazioni della funzione non è noto Il primo record di attivazione è destinato al main()

39

Page 40: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Lo stackLo stack• Nello stack, i record vengono allocati “uno sopra l’altro”; il primo

record dello stack è relativo all’ultima funzione attivata e non ancora terminata

• Lo stack cresce dal basso verso l’alto• Stack pointer: registro della CPU che contiene l’indirizzo della cima

della pila• Una parte della RAM è destinata a contenere lo stack

Stack overflow: quando l’area della RAM destinata allo stack viene superata (troppi annidamenti di chiamate)

40

312 312311

310

303

...

Operazione di inserimento: -incremento SP -scrittura in parola indirizzata da SPOperazione di estrazione: -lettura da parola indirizzata da SP -decremento SP

SP

Page 41: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

ProblemaProblema

• Si scriva un programma in C che, preso un Cubo di char, lo stampa a video La dimensione del cubo è 2x2x2

41

Page 42: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Soluzione: cubo di Soluzione: cubo di carattericaratteri

42

Page 43: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Ma se…Ma se…

• Si scriva un programma in C che, preso un Cubo di char, lo stampa a video La dimensione del cubo è 1000x1000x1000

43

Stack Overflow: 103x103x103=109

Page 44: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

44

Lo stato di un processoLo stato di un processo

• Lo stato del processo può essere distinto fra stato interno e stato esterno.

• Lo stato interno indica: la prossima istruzione del programma che

deve essere eseguita; i valori delle variabili e dei registri utilizzati

dal processo.• Lo stato esterno indica se il processo è:

in attesa di un evento, ad es. la lettura da disco o l’inserimento di dati da tastiera;

in esecuzione; pronto per l’esecuzione, e quindi in attesa di

accedere alla CPU.

Page 45: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Stato di un processo (1)Stato di un processo (1)

• In esecuzione: assegnato al processore ed eseguito da esso

• Pronto: può andare in esecuzione, se il gestore dei processi lo decide

• In attesa: attende il verificarsi di un evento esterno per andare in stato di pronto

45

Processo in esecuzione

Processopronto

Processo in attesa

Inizio esecuzione

Primo processopronto

- Fine quanto di tempo- Interruzione esterna

Interruzione interna

Evento esterno atteso

- Fine esecuzione- Abort per errore

Page 46: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Stato di un processo (2)Stato di un processo (2)

• I processi appena creati sono messi in stato di pronto

• Il kernel decide quale processo pronto mettere in stato di esecuzione

• Il kernel assegna il processore a un processo per un quanto di tempo Coda dei processi

pronti Round-robin Priorità dei processi

46

Processo in esecuzione

Processopronto

Processo in attesa

Inizio esecuzione

Primo processopronto

- Fine quanto di tempo- Interruzione esterna

Interruzione interna

Evento esterno atteso

- Fine esecuzione- Abort per errore

P1 P2

Page 47: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Stato di un processo (3)Stato di un processo (3)

• Il processo in esecuzione passa in stato di attesa se richiede operazioni di I/O (interruzione interna) Corrisponde alla

esecuzione dell’istruzione “chiamata supervisore”(SuperVisor Call, SVC)

47

Processo in esecuzione

Processopronto

Processo in attesa

Inizio esecuzione

Primo processopronto

- Fine quanto di tempo- Interruzione esterna

Interruzione interna

Evento esterno atteso

- Fine esecuzione- Abort per errore

P1

P2

Page 48: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Stato di un processo: cambio Stato di un processo: cambio contestocontesto

Cambiamento di contesto:Salvare il contesto di P1 nel suo descrittore di processo

Il processore è ora libero, un altro processo passerà in esecuzione

48

Processo in esecuzione

Processopronto

Processo in attesa

Inizio esecuzione

Primo processopronto

- Fine quanto di tempo- Interruzione esterna

Interruzione interna

Evento esterno atteso

- Fine esecuzione- Abort per errore

P1

P2

Page 49: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Stati di un processo (5)Stati di un processo (5)

Quando l’operazione di I/O è finita viene generata una interruzione esterna

Il processo in esecuzione viene interrotto

Il kernel esegue il gestore delle interruzioni che esegue le azioni opportune

P1 può tornare pronto Il kernel sceglie quale

processo mandare in esecuzione

49

Processo in esecuzione

Processopronto

Processo in attesa

Inizio esecuzione

Primo processopronto

- Fine quanto di tempo- Interruzione esterna

Interruzione interna

Evento esterno atteso

- Fine esecuzione- Abort per errore

P1

P2

Page 50: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Stato di un processo: Stato di un processo: PreemptionPreemption

Preemption: quando il quanto di tempo è scaduto, il kernel interrompe il processo in esecuzione

Si cerca di garantire un uso equo della CPU a tutti i processi

50

Processo in esecuzione

Processopronto

Processo in attesa

Inizio esecuzione

Primo processopronto

- Fine quanto di tempo- Interruzione esterna

Interruzione interna

Evento esterno atteso

- Fine esecuzione- Abort per errore

P1

P2

Page 51: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

51

Gestione della memoriaGestione della memoria

• La gestione concorrente di molti programmi applicativi comporta la presenza di molti programmi in memoria centrale

• Il SO offre a ogni programma applicativo la visione di una memoria virtuale, che può avere dimensioni maggiori di quella fisica

• Per gestire la memoria virtuale il SO dispone di diversi meccanismi: Rilocazione Paginazione Segmentazione

Page 52: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

52

• E’ un modello lineare

• La memoria è una sequenza di celle numerate da 0 fino a un valore massimo M

• Il numero che identifica ogni cella è detto indirizzo

• La dimensione della cella dipende dal tipo di calcolatore (per noi sarà di 8 bit, ossia un byte)

MEMORIA

0

1

2

M

Il SO e la gestione della Il SO e la gestione della memoriamemoria

Page 53: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

53

Spazio di indirizzamentoSpazio di indirizzamento

• Lo spazio di indirizzamento è il numero massimo di indirizzi possibili della memoria

• Dipende dalla lunghezza in bit degli indirizzi• Se gli indirizzi sono lunghi N bit, lo spazio di

indirizzamento è di 2N celle• Tutte le celle devono essere indirizzabili

(cioè devono avere un indirizzo), quindi Dimensione memoria Spazio indirizzamento

• Le dimensioni della memoria sono generalmente espresse in: KB (Kilobyte) = 210 byte MB (Megabyte) = 220 byte GB (Gigabyte) = 230 byte

Page 54: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

54

Memoria virtuale vs. fisicaMemoria virtuale vs. fisica

• La memoria virtuale e quella fisica non coincidono per i seguenti motivi: nella memoria fisica risiedono contemporaneamente il SO

e i diversi processi conviene mantenere nella memoria fisica una sola copia di

parti di programmi che sono uguali in diversi processi (memoria condivisa)

• Per evitare la frammentazione della memoria (spazi vuoti in memoria inutilizzabili) è utile allocare i programmi suddividendoli in pezzi

• La memoria fisica può essere insufficiente a contenere la memoria virtuale di tutti processi

• Gli indirizzi contenuti in un programma eseguibile sono indirizzi virtuali e fanno riferimento alla memoria virtuale

• La memoria effettivamente presente nel calcolatore è la memoria fisica e i suoi indirizzi sono detti indirizzi fisici

Page 55: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

MEMORIA

Processo P

Problema della Problema della frammentazioneframmentazione

Sistema Operativo

Processo Q

Processo R

Processo S

MEMORIA

Sistema Operativo

Processo P

Processo Q

Processo R

Processo S (1)

Processo S (2)

Page 56: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

56

PaginazionePaginazione

• Si rinuncia ad avere una zona contigua della memoria fisica per ciascun processo

• La memoria virtuale del programma viene suddivisa in porzioni (pagine virtuali) di lunghezza fissa (pot. di 2, e.g., 4K)

• La memoria fisica viene divisa in pagine fisiche della stessa dimensione

• Le pagine virtuali di un programma vengono caricate in altrettante pagine fisiche, non necessariamente contigue

Page 57: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

MEMORIAVIRTUALE Q

MEMORIAVIRTUALE P

MEMORIAFISICA

dimensione pagina

Paginazione: esempioPaginazione: esempio

Page 58: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

58

Memory Management UnitMemory Management Unit

• Per accelerare la traduzione da NPV (Numero Pagina Virtuale) a NPF (Numero Pagina Fisica) si ricorre allora alla MMU

• La MMU è una memoria particolarmente veloce (memoria associativa) dalle dimensioni ridotte, contenente le informazioni per la traduzione da NPV a NPF delle pagine più utilizzate

• Visto che gli NPV e gli NPF si riferiscono alle pagine di un processo, ogni volta che il processo in esecuzione cambia la MMU dovrebbe essere tutta riscritta

• Per evitare ciò si aggiunge una colonna che dice a quale processo appartengono le pagine e un registro che dice qual è il processo attualmente in esecuzione

Page 59: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

CPU

Registri

Cache I liv

Cache II liv Circ

uito

Inte

grat

o (c

hip)

RAM

Sche

da m

adre

(mot

herb

oard

)

Disco fisso (hard disk) tecnologia magnetica

Invo

lucr

o es

tern

o de

l cal

cola

tore

(ca

se)

Supporti esterni

tecnologia magnetica

(HD esterni)

tecnologia elettronica (flash disk)

tecnologia ottica

(CD, DVD)

59

Page 60: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

60

Pagine residenti e nonPagine residenti e non

• Durante l’esecuzione di un programma solo un certo numero delle sue pagine virtuali è caricato in altrettante pagine fisiche

• Tali pagine sono dette pagine residenti

• A ogni accesso alla memoria si controlla che all’indirizzo virtuale corrisponda una pagina residente, altrimenti si produce un interrupt di segnalazione di errore detto page-fault

• Il processo viene sospeso in attesa che la pagina richiesta venga caricata in memoria, eventualmente scaricando su disco una pagina già residente per liberare lo spazio necessario

Page 61: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

61

La memoria cacheLa memoria cache

• Obiettivo: fornire agli utenti una memoria grande e veloce fornire al processore i dati alla velocità con cui è in

grado di elaborarli• Problema: Il tasso di crescita nella velocità dei

processori non è stato seguito da quello delle memorie Tempo di accesso alle SRAM (Static Random Access

Memory): • 2 - 25ns al costo di $100 - $250 per Mbyte.

Tempo di accesso alle DRAM (Dynamic Random Access Memory):

• 60-120ns al costo di $5 - $10 per Mbyte. Tempo di accesso al disco:

• da 10 a 20 million ns al costo di $0.10 - $0.20 per Mbyte.

Il problema della memoria: costo vs. prestazioni

Page 62: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 12 Aprile 2013.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Fonti per lo studio + Fonti per lo studio + CreditsCredits• Fonti per lo studio

Il Sistema di elaborazione, Slide Info B, M. D. Santambrogio Informatica arte e mestiere, S. Ceri, D. Mandrioli, L.

Sbattella, McGrawHill • Capitolo 2

Introduzione ai sistemi informatici, D. Sciuto, G. Buonanno, L. Mari, 4a Ed, McGrawHill

• Capitolo 1, 2, 5 The Art & Craft of Computing, S. Ceri, D. Mandrioli, L.

Sbattella, Addison-Wesley • Capitolo 2

• Approfondimenti Struttura e progetto dei calcolatori, D. A. Patterson, J.

Hennessy, 3a Ed, Zanichelli • Capitolo 1, 2

• Credits Prof. G. Buonanno e D. Sciuto, LIUC

62