Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1...

70
Anno accademico 2010-2011 Anno accademico 2010-2011 1 Il software può essere diviso in due grandi classi: i programmi di sistema programmi di sistema, che gestiscono le funzionalità del sistema di calcolo i programmi applicativi programmi applicativi , che risolvono i problemi degli utenti L’insieme dei programmi di sistema programmi di sistema viene comunemente identificato con il nome di Sistema Operativo Sistema Operativo (SO) (SO) Definizione: Definizione: Un sistema operativo è un programma che Un sistema operativo è un programma che controlla l’esecuzione dei programmi applicativi ed agisce controlla l’esecuzione dei programmi applicativi ed agisce come interfaccia fra le applicazioni e l’hardware del come interfaccia fra le applicazioni e l’hardware del calcolatore calcolatore Cos’è un sistema operativo Cos’è un sistema operativo - - 1 1

Transcript of Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1...

Page 1: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-201111

• Il software può essere diviso in due grandi classi: i programmi di sistemaprogrammi di sistema, che gestiscono le funzionalità del

sistema di calcolo i programmi applicativiprogrammi applicativi, che risolvono i problemi degli utenti

• L’insieme dei programmi di sistemaprogrammi di sistema viene comunemente identificato con il nome di Sistema OperativoSistema Operativo (SO)(SO)

• Definizione:Definizione: Un sistema operativo è un programma che Un sistema operativo è un programma che controlla l’esecuzione dei programmi applicativi ed agisce controlla l’esecuzione dei programmi applicativi ed agisce come interfaccia fra le applicazioni e l’hardware del come interfaccia fra le applicazioni e l’hardware del calcolatorecalcolatore

Cos’è un sistema operativo Cos’è un sistema operativo −− 1 1

Page 2: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-201122

• Visione a strati delle componenti hardware/software che compongo un sistema di elaborazione

Il SO come macchina estesa Il SO come macchina estesa −− 1 1

Page 3: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-201133

• Il SO può essere inteso come uno strumento che virtualizzavirtualizza le caratteristiche dell’hardware sottostante, offrendo all’utente la visione di una macchina astrattamacchina astratta più potente e più semplice da utilizzare di quella fisicamente disponibile

• In questa visione, un SO… …nasconde a programmatori/utenti i dettagli dell’hardware e

fornisce un’interfaccia conveniente e facile da usare …agisce come intermediario tra programmatore/utente e

hardware• Parole chiave

Indipendenza dall’hardware Comodità d’uso Programmabilità

Il SO come macchina estesa Il SO come macchina estesa −− 2 2

Page 4: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-201144

• L’utente è in grado di utilizzare la macchina fisica senza conoscere i dettagli della sua struttura interna e del suo funzionamento

1.1. HardwareHardware — fornisce le risorse fondamentali di calcolo (CPU, memoria, device di I/O)

2.2. Sistema OperativoSistema Operativo — controlla e coordina l’utilizzo delle risorse hardware da parte dei programmi applicativi dell’utente

3.3. Programmi ApplicativiProgrammi Applicativi — definiscono le modalità di utilizzo delle risorse del sistema, per risolvere i problemi di calcolo degli utenti (compilatori, database, video game, programmi gestionali)

4.4. UtentiUtenti — persone, altri macchinari, altri elaboratori

Hardware

Sy

stems software

Applications software

Visione “a cipolla” del sistema Visione “a cipolla” del sistema di calcolodi calcolo

Il SO come macchina estesa Il SO come macchina estesa −− 3 3

Page 5: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-201155

• I SO sono costituiti da un insieme di moduli, ciascuno dedicato a svolgere una determinata funzione

• I vari moduli del SO interagiscono tra loro secondo regole precise, al fine di realizzare le funzionalità di base della macchina

KERNELKERNEL

Gestore dei ProcessiGestore dei Processi Gestore della Gestore della Memoria CentraleMemoria Centrale

Gestore dell’I/OGestore dell’I/O Gestore del Gestore del File SystemFile System

Interfaccia utenteInterfaccia utente • L’insieme dei moduli per la gestione della CPU e della memoria centrale è il kernelkernel

Architettura del sistema operativoArchitettura del sistema operativo

Page 6: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Bootstrap -1 Bootstrap -1 All’accensione di un calcolatore vengono attivati programmi di

diagnostica scritti nella ROM (Read Only Memory) che verificano l’assenza di guasti

Poi viene attivato il programma di bootstrap che è sempre memorizzato nella ROM

Il bootstrap trasferisce una parte prestabilita della M di massa (disco rigido, CD o floppy) in M principale (kernel del SO)

Poi l’utente puo’ impartire comandi al SO attraverso l’interfaccia utente (tastiera, mouse…)

Page 7: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Bootstrap -2Bootstrap -2

Page 8: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Bootstrap -3Bootstrap -3

Dopo il bootstrap l'utente può iniziare a impartire comandi al sistema operativo utilizzando l'interfaccia utente

Il codice del comando deve essere in memoria principale (o caricato dalla m.s.)

La sua esecuzione è attivata dalla CPU modificando il registro P della CPU (program counter)

Page 9: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Shutdown Shutdown

Quando il calcolatore viene spento una fase di shutdown si assicura che tutte le informazioni che temporaneamente il SO ha caricato su memoria volatile vengano memorizzate su memoria di massa prima che l’energia venga tolta dalla macchina

Page 10: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Struttura del SOStruttura del SO

Interfaccia nucleo verso l’esterno

hardware

File system Gestore I/O Gestore processi

Gestore memoria

Gestore processori

Servizi richiesti dagli utenti al SO

nucl

eo

Page 11: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Struttura di un SOStruttura di un SO

Elementi principali di un SO: Shell (interfaccia SO e utente) Kernel (insieme di programmi che realizzano

le funzioni di base di un calcolatore)

Page 12: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Sistema operativo: Sistema operativo: shellshell Shell (guscio): interfaccia tra SO e utenti E’ il programma che permette agli utenti di

comunicare con il sistema e di avviare I programmi

Di solito grafica (GUI – Graphical User Interface), ma anche testuale

Page 13: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Sistema operativo: Sistema operativo: kernel (1)kernel (1)

Kernel (nucleo): programmi per le funzioni base del calcolatore

da 100 Kilobyte a 100 Megabyte Kernel suddiviso in moduli Ogni modulo ha una funzione diversa Funzioni piu’ importanti:

gestione processigestione processigestione processorigestione processorigestione memoria (principale e secondaria)gestione memoria (principale e secondaria)gestione dispositivi di I/Ogestione dispositivi di I/O

Page 14: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Sistema operativo: Sistema operativo: kernel (2)kernel (2) Funzioni piu’ importanti:

gestione processi: controlla la sincronizzazione, l’interruzione e la riattivazione dei programmi in esecuzione

gestione processori: assegna il processore ai programmi che devono essere eseguiti (e gestisce la cooperazione tra varie CPU nel caso di piu’ calcolatori)

gestione memoria (principale e secondaria): gestisce la collocazione dei dati e dei programmi nella RAM, la memorizzazione e il reperimento delle informazioni sulla memoria secondaria

gestione dispositivi di I/O (gestisce l’accesso e il controllo dei dispositivi periferici)

Page 15: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Gestione dei processiGestione dei processi

• Un SO consente il caricamento in Un SO consente il caricamento in memoria e l'esecuzione di più programmi memoria e l'esecuzione di più programmi che si alternano nell'uso della CPU.che si alternano nell'uso della CPU.

• Per far ciò un programma può essere Per far ciò un programma può essere eseguito, sospeso e fatto ripartire più eseguito, sospeso e fatto ripartire più volte.volte.

Page 16: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Programmi e processiProgrammi e processi

Programma:Programma: insieme statico di istruzioni Processo:Processo: entita’ che tiene traccia dello stato

dell’esecuzione di un programma Posizione nel programmaValori dei registri della CPUValori delle celle di M assegnate al programma

AncheAnche piu’ processi piu’ processi per lo per lo stesso programmastesso programma Es.: due utenti che usano Word per scrivere due

documenti diversi

Page 17: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Processi e SOProcessi e SO

SO puo’ gestire simultaneamente piu’ programmi

Ogni programma puo’ essere fermato e fatto ripartire piu’ volte

Quindi ogni SO deve avere una struttura (detta processoprocesso) in grado di mostrare, istante per istante, lo stato di avanzamento di ciascun lo stato di avanzamento di ciascun programma (PCB)programma (PCB)

Page 18: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-20111818

• Un processoprocesso è un programma in esecuzione Un processo utilizza le risorse fornite dal sistema di elaborazione

per assolvere ai propri compiti La terminazione di un processo prevede il recupero di tutte le

risorse riutilizzabili ad esso precedentemente allocate

• Normalmente, in un sistema vi sono molti processi, di alcuni utenti, e alcuni sistemi operativi, che vengono eseguiti in concorrenza su una o più CPU

• La concorrenza è ottenuta effettuando il multiplexingmultiplexing (multiplazione) delle CPU fra i vari processi

La gestione dei processi La gestione dei processi −− 1 1

Page 19: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-20111919

• Il sistema operativo è responsabile delle seguenti attività riguardanti la gestione dei processi: creazione e terminazione dei processi sospensione e riattivazione dei processi gestione dei deadlockdeadlock comunicazione tra processi sincronizzazione tra processi

• Il gestore dei processi “realizza” una macchina virtuale in cui Il gestore dei processi “realizza” una macchina virtuale in cui ciascun programma opera come se avesse a disposizione ciascun programma opera come se avesse a disposizione un’unità di elaborazione dedicataun’unità di elaborazione dedicata

La gestione dei processi La gestione dei processi −− 2 2

Page 20: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-20112020

• Il gestore dei processigestore dei processi è il modulo che si occupa del controllo, della sincronizzazione, dell’interruzione e della riattivazione dei programmi in esecuzione cui viene assegnato un processore

• La gestione dei processi viene compiuta secondo modalità diverse, in funzione del tipo di utilizzo cui il sistema è rivolto

• Il programma che si occupa della distribuzione del tempo di CPU tra i vari processi attivi, decidendone l’avvicendamento, è chiamato schedulerscheduler

• Nel caso di sistemi multiprocessore, lo scheduler si occupa anche di gestire la cooperazione tra le diverse CPU presenti nel sistema (bilanciandone il carico)

La gestione dei processi La gestione dei processi −− 3 3

Page 21: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-20112121

• I SO che gestiscono l’esecuzione di un solo programma per volta (un solo processo) sono detti monomono−−tasking tasking

• Non è possibile sospendere un processo per assegnare la CPU ad un altro

• Sono storicamente i primi SO (es. MS−DOS)

tA

B

C

T

Tempo di utilizzo della CPUTempo di attesa di eventi esterni

Sistemi monoSistemi mono−−taskingtasking

Page 22: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-20112222

• I SO che permettono l’esecuzione contemporanea di più programmi sono detti multimulti−−tasking tasking o multi multi−−programmati programmati

• Un programma può essere interrotto e la CPU passata a un altro programma

Tmulti-tasking

tA

B

C

Tmono-tasking

Tempo di utilizzo della CPU

Tempo di attesa di eventi esterni

Sistemi multiSistemi multi−−taskingtasking

Page 23: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-20112323

• Un’evoluzione dei sistemi multi−tasking sono i sistemi timetime−−sharingsharing

• Ogni processo viene eseguito ciclicamente per piccoli quanti quanti di tempo (TIME SLICE)di tempo (TIME SLICE)

• Se la velocità del processore è sufficientemente elevata si ha l’impressione di un’evoluzione parallela dei processi

• EsempioEsempio Ipotesi: 1 MIPS, 4 processi,

0.25 s/utente Conseguenze: 0.25 MIPS/utente,

TELA = 4 × TCPUC B

AD0.00”

0.25”0.75”

0.50”

Sistemi timeSistemi time−−sharingsharing

Page 24: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-20112424

tAA

BB

CC

DD

ProcessoProcesso CPU burstCPU burst

AA 33

BB 22

CC 44

DD 33

TimeTime−−sharing: diagramma temporalesharing: diagramma temporale

Page 25: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Time-sharing (condivisione di tempo)Time-sharing (condivisione di tempo)

Page 26: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Gestione della codaGestione della coda Un processo in esecuzione puo’ essere interrotto per

vari motivi: Quanto esauritoQuanto esaurito Esecuzione completataEsecuzione completata Subentra un processo con maggiore priorita’Subentra un processo con maggiore priorita’ Ha fatto una richiesta di un’operazione di I/O ->entra Ha fatto una richiesta di un’operazione di I/O ->entra

nella lista dei processi bloccatinella lista dei processi bloccati modifica del program counter tocca al vettore di

interrupt (diverso per ogni evento) Politica di scelta del successivo processo da eseguire:

FIFO: First in First out SJF: Shortest Job First Deadline (si esegue prima il processo con la scadenza

piu’ vicina) SRT: Shortest Remaining Time

Page 27: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

TransizioniTransizioni tra stati di un processo tra stati di un processo

In esecuzione

pronti

Coda ordinata in attesa della CPU

In attesa

Insieme in attesa di eventi

schedulazione richiesta di I/O

conclusione I/O

fine tempo,evento esterno

Page 28: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Riassumendo ...Riassumendo ... I processi sono messi in una coda dei pronti Il processo in cima alla coda ha a disposizione la CPU

per un quanto di tempo, fissato e uguale per tutti Quando il tempo finisce, viene interrotto e messo in

fondo alla coda Se richiede un’operazione di I/O, va nel gruppo dei

processi in attesa, quando l’operazione finisce viene rimesso in coda per la CPU

La CPU va al primo in coda (o altre strategie) Durante la vita di un processo, vari stati:Durante la vita di un processo, vari stati:

In esecuzione: quando usa la CPU (solo un processo alla volta)

Pronto: quando aspetta la CPU Bloccato: in attesa di un evento (es.: fine di op. di I/O)

Page 29: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Chi si occupa delle fasi di Chi si occupa delle fasi di transizione???transizione???• INTERRUPT:INTERRUPT: segnali hardware che

provocano la modifica del registro PC e l'esecuzione di un particolare programma (vettore di interrupt) che serve a gestire l'evento associato all'interruzione

• SCHEDULER:SCHEDULER: ha il compito di gestire la coda dei processi pronti e l'avvicendarsi dei processi

Page 30: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Gestione dei processi: Gestione dei processi: Scheduler (1)Scheduler (1) Tiene traccia di tutti i processi A ogni processo e’ associata una Tabella (detta tabella

di processo) in M Principale Identificativo Indirizzo prossima istruzione Contenuto registri CPU Stato corrente (Esecuzione, Bloccato, Pronto) Informazioni per gestire la M (collocazione in M

centrale di dati e programmi) Priorita’ I/O (richieste inoltrate, dispositivi allocati al processo) Accounting (ammontare di CPU time gia’ speso)

Page 31: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Gestione dei processi: Gestione dei processi: Scheduler (2)Scheduler (2)

Usando questa tabella si possono compiere le seguenti operazioniCreazione (un processo puo’ crearne altri)Cambio di priorita’BloccoAssegnamento della CPUTerminazione

Page 32: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

AttesaAttesa

Se il processo richiede operazioni ad altri dispositivi (es. Operazioni di I/O), la CPU rimarrebbe inutilizzata -> lo scheduler mette il processo in stato di attesa, e il dispatcher (modulo che implementa le decisioni prese dallo scheduler) sceglie un nuovo processo tra i pronti dalla tabella

Quando l’operazione sara’ finita, lo scheduler dichiarera’ di nuovo pronto il processo

Page 33: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Sistemi Sistemi multiprocessoremultiprocessore Reti di calcolatori: vari calcolatori che si scambiano

dati Es.: Internet Una rete e’ un sistema multiprocessore con una CPU

su ogni calcolatore

Anche singoli calcolatori con piu’ CPU Non solo coordinamento delle attivita’ di ogni

processore, ma anche bilanciamento del carico: distribuzione dinamica ed

efficiente dei task ai vari processori Scalabilita’: suddivisione dei task in sotto-task

compatibile con il numero dei processori

Page 34: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Sistemi Sistemi multiprocessoremultiprocessore Reti di calcolatori: vari calcolatori che si scambiano

dati Es.: Internet Una rete e’ un sistema multiprocessore con una CPU

su ogni calcolatore

Anche singoli calcolatori con piu’ CPU Non solo coordinamento delle attivita’ di ogni

processore, ma anche bilanciamento del carico: distribuzione dinamica ed

efficiente dei task ai vari processori Scalabilita’: suddivisione dei task in sotto-task

compatibile con il numero dei processori

www.mersenne.org/prime.htm

Page 35: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Gestione dei processoriGestione dei processori

• La gestione dei processori riguarda i criteri in base ai quali i processori vengono assegnati ai vari processi

• Abbiamo già visto lo scheduler (ditribuisce il tempo della cpu tra i vari processi) e il dispacher (copia in memoria i registri del processo in esecuzione, copia i registri del processo cui assegnare la CPU, salta alla locazione da cui il nuovo programma deve partire o ripartire.

• Lo scheduler compie le proprie scelte cercando di ottimizzare vari criteri: max uso della CPU, max numero di elaborazioni,....

Page 36: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Parametri di valutazione Parametri di valutazione della della gestione dei processorigestione dei processori

Tasso di uso CPU (deve essere massimo) Throughput (n. di processi completati per

unita’ di tempo) Elapsed time (tempo tra la sottomissione di un

processo e il suo completamento) Tempo di attesa (tempo passato in attesa nella

coda dei processi pronti)

Page 37: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-20113737

• La memoria principale… …è un “array” di byte indirizzabili singolarmente …è un deposito di dati facilmente accessibile e condiviso tra la CPU

ed i dispositivi di I/O• Il SO è responsabile delle seguenti attività riguardanti la gestione

della memoria principale: Tenere traccia di quali parti della memoria sono usate e da chi Decidere quali processi caricare quando diventa disponibile spazio in

memoria Allocare e deallocare lo spazio di memoria quando necessario

• Il gestore di memoria “realizza” una macchina virtuale in cui Il gestore di memoria “realizza” una macchina virtuale in cui ciascun programma opera come se avesse a disposizione una ciascun programma opera come se avesse a disposizione una memoria dedicatamemoria dedicata

La gestione della memoria principale La gestione della memoria principale −− 1 1

Page 38: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-20113838

• L’organizzazione e la gestione della memoria centrale è uno degli aspetti più critici nel disegno di un SO

• Il gestore della memoriagestore della memoria è quel modulo del SO incaricato di assegnare la memoria ai task (per eseguire un task è necessario che il suo codice sia caricato in memoria)

• La complessità del gestore della memoria dipende dal tipo di SO

• Nei SO multi−tasking, più programmi possono essere caricati contemporaneamente in memoria

• Problema:Problema: come allocare lo spazio in maniera ottimale?

La gestione della memoria principale La gestione della memoria principale −− 2 2

Page 39: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Memoria realeMemoria reale

• Nessun problema se un programma per volta (tecnica di overlay)

• Se più task si partiziona la memoria:– Partizioni fisse– Partizioni variabili (un programma occupa

il minimo spazio possibile per essere eseguito)

Attenzione: problema della frammentazione della memoria

Page 40: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-20114040

Programma AProgramma A

Programma BProgramma B

Programma CProgramma C

Memoria

0000x

Programma DProgramma DPROBLEMA !!!!PROBLEMA !!!!

FRAMMENTAZIONEFRAMMENTAZIONE

Allocazione lineareAllocazione lineare

Page 41: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-20114141

Programma DProgramma D

Programma AProgramma A

Programma AProgramma A

Programma AProgramma A

Programma BProgramma B

Programma BProgramma B

PaginazionePaginazione

Memoria

0000x

Programma EProgramma E

Programma FProgramma F

Programma FProgramma F

Page 42: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-20114242

• Spesso la memoria non è sufficiente per contenere completamente tutto il codice dei processi

• Si può simularesimulare una memoria più grande tenendo nella memoria di sistema (RAM) solo le parti di codice e dati che servono in quel momento

• Si usa il concetto di memoria virtualememoria virtuale• I dati e le parti di codice relativi a programmi non in

esecuzione possono essere tolti dalla memoria centrale e “parcheggiati” su disco nella cosiddetta area di swaparea di swap

• I processori moderni sono dotati di meccanismi hardware per facilitare la gestione della memoria virtuale

La memoria virtuale La memoria virtuale −− 1 1

Page 43: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-20114343

Programma DProgramma D

Memoria

0000xProgramma A-1Programma A-1

Programma B-1Programma B-1

Programma A-2Programma A-2

Programma A-3Programma A-3

Programma B-2Programma B-2

Swap

La memoria virtuale La memoria virtuale −− 2 2

Page 44: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-20114444

Programma DProgramma D

Memoria

Programma A-2Programma A-2

Programma B-1Programma B-1

Programma A-1Programma A-1

Programma A-3Programma A-3

Programma B-2Programma B-2

Swap

La memoria virtuale La memoria virtuale −− 2 2

0000x

Page 45: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Struttura del SOStruttura del SO

Interfaccia nucleo verso l’esterno

hardware

File system Gestore I/O Gestore processi

Gestore memoria

Gestore processori

Servizi richiesti dagli utenti al SO

nucl

eo

Page 46: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-20114646

• Poiché la memoria principale è volatile e troppo piccola per contenere tutti i dati e tutti i programmi in modo permanente, il computer è dotato di memoria secondariamemoria secondaria In generale, la memoria secondaria è data da hard disk e

dischi ottici• Il SO garantisce una visione logica uniforme del processo di

memorizzazione: Astrae dalle caratteristiche fisiche dei dispositivi per definire

un’unità di memorizzazione logica − il filefile Ciascuna periferica viene controllata dal relativo device driver,

che nasconde all’utente le caratteristiche fisiche variabili dell’hardware: modalità e velocità di accesso, capacità, velocità di trasferimento

La gestione della memoria secondaria La gestione della memoria secondaria −− 1 1

Page 47: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-20114747

• Il SO è responsabile delle seguenti attività riguardanti la gestione della memoria secondaria:

Allocazione dello spazio

Gestione dello spazio libero

Ordinamento efficiente delle richieste di accesso al disco (disk disk schedulingscheduling)

La gestione della memoria secondaria La gestione della memoria secondaria −− 2 2

Page 48: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-20114848

• Il file è l’astrazione informatica di un archivio di dati Il concetto di file è indipendente dal mezzo sul quale viene

memorizzato (che ha caratteristiche proprie e propria organizzazione fisica)

• Un file system è composto da un insieme di file• Il SO è responsabile delle seguenti attività riguardanti la

gestione del file system: Creazione e cancellazione di file Creazione e cancellazione di directory Manipolazione di file e directory Codifica del file system sulla memoria secondaria

La gestione del file system La gestione del file system −− 1 1

Page 49: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-20114949

• Il gestore del file systemgestore del file system è il modulo del SO incaricato di gestire le informazioni memorizzate sui dispositivi di memoria di massa

• Nei sistemi multi−utente, fornisce meccanismi di protezione per consentire agli utenti di proteggere i propri dati dall’accesso di altri utenti non autorizzati

• Le funzioni tipiche del gestore del file system sono: Fornire un meccanismo per l’identificazione dei file Fornire metodi opportuni di accesso ai dati Rendere trasparente la struttura fisica del supporto di

memorizzazione Implementare meccanismi di protezione dei dati

La gestione del file system La gestione del file system −− 2 2

Page 50: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-20115050

• L’insieme gerarchico delle directory e dei file può essere rappresentato attraverso un grafo (un albero nei SO più datati) delle directory

• Quasi tutti i SO utilizzano un’organizzazione gerarchicagerarchica del file system

• L’elemento utilizzato per raggruppare più file insieme è la directorydirectory

DirectoryDirectory

FileFile

Grafo delle directoryGrafo delle directory

Organizzazione del file system -1Organizzazione del file system -1

Page 51: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Organizzazione del file system -2Organizzazione del file system -2 I dischi fissi possono essere divisi in

partizionipartizioni Una partizione e' organizzata

gerarchicamente come un albero rovesciato (come quello genealogico)

Nodi Nodi e collegamenti padre-figlio tra nodi Nodo dell'albero: file o directory Nodi divisi per livelli Collegamenti tra nodi di livelli vicini: nodo

sopra = padrepadre, nodo sotto = figliofiglio Ogni nodo ha un solo padre Padre più in alto = radiceradice I nodi che sono file non hanno figli Cammino assoluto o relativo (per file)

directoryfile

Page 52: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Indirizzo (o percorso) dei file in Windows

A

ED

CB

F

d e

a

b c

hgf

partizione Z

Z:\A\c

Z:\a

Z:\A\C\D\f

Z:\A\C\E\h

Z:

Page 53: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Indirizzo (o percorso) dei file in Unix/Linux

A

ED

CB

F

d e

a

b c

hgf

/A/c

/a

/A/C/D/f

/A/C/E/h

/

Page 54: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Gestore della Gestore della memoria secondariamemoria secondaria I byte che compongono I file possono essere

organizzati in vari modi:

• Byte stream (sequenza di byte)• Sequenziale (sequenza di record a lunghezza

fissa o variabile)• Diretto (sequenza di record a lunghezza fissa)• A indice (sequenza di record ordinati

logicamente secondo un indice)

Page 55: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Struttura del SOStruttura del SO

Interfaccia nucleo verso l’esterno

hardware

File system Gestore I/O Gestore processi

Gestore memoria

Gestore processori

Servizi richiesti dagli utenti al SO

nucl

eo

Page 56: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-20115656

• La gestione dell’I/O richiede: Un’interfaccia comune per la gestione dei device driverdevice driver Un insieme di driver per dispositivi hardware specifici Un sistema di gestione di buffer per il caching delle

informazioni• Il gestore dei dispositivi di I/Ogestore dei dispositivi di I/O è il modulo del SO incaricato

di assegnare i dispositivi ai task che ne fanno richiesta e di controllare i dispositivi stessi

• Da esso dipende la qualità e il tipo di periferiche riconosciute dal sistema

• Il gestore delle periferiche offre all’utente una versione Il gestore delle periferiche offre all’utente una versione astratta delle periferiche hardware; l’utente ha a astratta delle periferiche hardware; l’utente ha a disposizione un insieme di procedure standard di alto livello disposizione un insieme di procedure standard di alto livello per leggere/scrivere da/su una periferica che “percepisce” per leggere/scrivere da/su una periferica che “percepisce” come dedicatacome dedicata

La gestione dei dispositivi di I/OLa gestione dei dispositivi di I/O

Page 57: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-20115757

• Tutti i SO implementano meccanismi per facilitare l’utilizzo del sistema di calcolo da parte degli utenti

• L’insieme di tali meccanismi di accesso al computer prende il nome di interfaccia utenteinterfaccia utente

• Serve per… …attivare un programma, terminare un programma, etc. …interagire con le componenti del sistema operativo (gestore

dei processi, file system, etc.)

L’interfaccia utente L’interfaccia utente −− 1 1

Page 58: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-20115858

• Interfaccia testuale:Interfaccia testuale: Interprete dei comandi (shellshell) Esempio: MSMS−−DOS/UNIXDOS/UNIX

• Interfaccia graficaInterfaccia grafica (a finestre): L’output dei vari programmi viene visualizzato in maniera

grafica all’interno di finestre L’utilizzo di grafica rende più intuitivo l’uso del calcolatore Esempio: WINDOWS/LinuxWINDOWS/Linux

• Differenze: Cambia il “linguaggio” utilizzato, ma il concetto è lo stesso Vi sono però differenze a livello di espressività

L’interfaccia utente L’interfaccia utente −− 2 2

Page 59: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-20115959

• Realizza la metafora della scrivania desktopdesktop

Interazione semplice via mouse

Le iconeicone rappresentano file, directory, programmi, azioni, etc.

I diversi tasti del mouse, posizionato su oggetti differenti, provocano diversi tipi di azione: forniscono informazioni sull’oggetto in questione, eseguono funzioni tipiche dell’oggetto, aprono directory − folderfolder, o cartellecartelle,, nel gergo GUI GUI (Graphical User InterfaceGraphical User Interface)

L’interfaccia graficaL’interfaccia grafica

Page 60: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-20116060

• Sistemi complessi che presentano miriadi di problemi e milioni di linee di codice (100−1000 programmatori per anno)

• Interazioni complesse Universali (eseguiti su piattaforme diverse) Differenti classi di utenti hanno necessità diverse La performance è cruciale!

• Poco compresi: Il SO tipicamente “dura” più di chi lo ha programmato ed è

troppo grande per essere compreso da una singola persona Mai completamente privi di errori (OS/360 rilasciato con 1000

bug); comportamenti difficili da prevedere; aggiustamenti spesso eseguiti per tentativi

Conclusioni: i SO oggiConclusioni: i SO oggi

Page 61: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Esempi di SO: MS - DOS Sviluppato dalla Microsoft nel 1981 per il PC

IBM Adottato da altri con PC IBM-compatibili Molto limitato: mono-utente, mono-tasking Circa 50 comandi per il SO

Page 62: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Esempi di SO: MS - DOS Sviluppato dalla Microsoft nel 1981 per il PC

IBM Adottato da altri con PC IBM-compatibili Molto limitato: mono-utente, mono-tasking Circa 50 comandi per il SO

Page 63: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Comandi piu’ usati in MS - DOS DIR per vedere il contenuto di una directory COPY per copiare file DEL per cancellare un file REN per cambiare il nome a un file CD per muoversi in un altra directory MD per creare nuove directory RD per cancellare directory Nome file: per eseguire il file (se eseguibile)

Page 64: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

File in MS - DOS

Per individuare un file: cammino assoluto Un file system per ogni disco anche nome

del disco Esempio: C:\Dir1\Dir2\Dir3\file.txt Estensioni per file:

.exe per programma eseguibile.txt per file di testo.sys per file di sistema.c per programma in C.doc per documento Word

Page 65: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Unix

SO multi-utente, multi-tasking, con time-sharing Concepito per poter funzionare su diverse

piattaforme hardware Interprete dei comandi: shell Piu’ di 300 comandi, con opzioni Comando man per aiuto Forma di un comando: nome-comando [[-opzioni] argomenti]

Page 66: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Comandi Unix

ls per vedere il contenuto di una directory cp per copiare file rm per cancellare file mv per spostare file cd per spostarsi in un’altra directory mkdir per creare una nuova directory ps per vedere tutti i processi attivi lp per stampare file who per vedere tutti gli utenti collegati

Page 67: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

File in Unix

Unico albero anche se ci sono piu’ dischi non serve indicare il disco per denotare un file

Nei cammini non appare il nome del disco Radice: simbolo / Esempio: /dir1/dir2/dir3/file.txt

Page 68: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Windows

Nato nel 1987, ispirato al Macintosh All’inizio era un’interfaccia grafica per DOS Windows ’95: SO mono-utente, multi-tasking,

time-sharing DOS emulato in speciali finestre (per seguire

vecchi applicativi per DOS)

Page 69: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Filosofia Windows -- 1

Interfaccia grafica Mouse che sposta un cursore Cut & paste (copia e incolla) Drag & drop (trascina e lascia) Icone associate a file, directory, dischi, … Directory come cartelle Pulsanti Finestre: cornici con strumenti Menu di comandi

Page 70: Cos’è un sistema operativo 1 - MathUniPDaceccato/Intro_1213/... · Anno accademico 2010-2011 1 • Il software può essere diviso in due grandi classi: i programmi di sistema,

Anno accademico 2010-2011Anno accademico 2010-2011

Filosofia Windows -- 2 L’utente non deve ricordarsi i nomi dei comandi,

basta che selezioni col mouse:un oggetto e il comando da applicare all’oggetto

File system (cioe’ l’albero): visualizzato come cartelle che contengono icone di file o di altre cartelle

Cliccando su una cartella, si apre quella directory

Icona del file: diversa a seconda del tipo di file