Sistemi Operativi – Anno Acc. 2013/14 matricole congr. 1 mod 3

Sistemi Operativi – Anno Acc. 2013/14
matricole congr. 1 mod 3!
Docenti e Orario!
Teoria – Prof. Ferdinando Cicalese!
Lezioni: Mercoledì
! 9:00 – 11:00 (Aula P4) !
!Giovedì
!11:00 – 13:00 (Aula P4)!
!
Laboratorio – Prof. Giuseppe Cattaneo
!Martedì !
! 9:00 – 12:00 (Lab Turing)
( extra ) !Martedì !
! 12:00 – 14:00 (Lab Turing)
!
!
1!
Materiale Didattico - Teoria!
Libri di Testo: !
!Sistemi Operativi, VII Ed. !
!Silberschatz, Galvin, Gagne
!
!Addison Wesley!
!
!
!
!
Slide delle lezioni, al sito del corso:
!
! http://www.dia.unisa.it/~cicalese/SO!
Laboratorio!
1a Lezione di Laboratorio martedì 11 (prossima settimana)!
Installazione di Linux su macchina virtuale!
!
!1. Portare una penna USB da almeno 16Gb o un hard disk esterno
!!
!2. Richiedere account (presso Fulvio Marino, II piano, Tecnici DI)!
!
!
!
!
Lezioni 2,3,4,…,12 - Programmazione avanzata UNIX (system calls)
!
!
BASH Shell (configurazione, elementi di prog.) !
!
Testo: Advanced Programming in the UNIX Environment, II Ed.!
!
!W.R. Stevens, S.A. Rago!
!
!Addison-Wesley!
!
!
!Requisiti: padronanza del linguaggio C (! strutture e puntatori !)!
!
2!
Modalità di Esame!
Prova scritta!
!tre domande teoriche !
!un esercizio di programmazione!
!
!
Prova orale … con possibilità di confermare il voto dello scritto!
!
!
!
6 Sessioni di esame (cercate di sceglierne al più una per gruppo)!
- 3 tra giugno e luglio!
- 1 settembre!
- 2 tra gennaio e febbraio 2015!
!
Prove in Itinere NO !!
!
Esercitazioni - fortemente consigliate!!!!!
Contatti e Ricevimento Studenti!
(durante il corso) !
!Per la parte di Teoria!
!Dip. Informatica - Studio 46 – Piano IV!
Mercoledì
!14:30 – 16:00 !
Giovedì
!14:30 – 16:00!
Giovedì
!(dopo la lezione)!
!
!
!
(dopo la fine del corso)!
!Inviare mail per richiedere appuntamento!
!
Sito Web del corso: http://www.dia.unisa.it/~cicalese/SO!
!
e-mail: [email protected]!
!- non utilizzare per domande che richiedono risposte complesse!
!- usare l’orario di ricevimento!
3!
Domande???!
Sistemi Operativi: Panoramica!
4!
Sommario!
  Cosa fa un Sistema Operativo!
  Operazioni di un sistema operativo!
  Gestione dei processi!
  Gestione della memoria!
  Gestione delle memorie di massa!
  Protezione e sicurezza!
  Organizzazione di un sistema di calcolo!
  Architettura di un calcolatore!
  Struttura di un sistema operativo!
Operating System Concepts – 7th Edition!
1.9!
Silberschatz, Galvin and Gagne ©2005!
Cosa è un sistema operativo ?!
  Un programma che fa da intermediario tra gli utenti di un
computer ed il suo hardware.!
  Scopi di un sistema operativo:!
 
Eseguire programmi utente!
 
Rendere agevole l’uso del calcolatore. !
 
Rendere efficiente l’uso delle componenti hardware del
sistema di calcolo.!
Operating System Concepts – 7th Edition!
1.10!
Silberschatz, Galvin and Gagne ©2005!
5!
Struttura di un sistema di calcolo!
  Un sistema di calcolo può essere diviso nelle seguenti componenti!
 
Hardware – fornisce le risorse di calcolo di base!
  CPU,
 
memory, I/O devices!
Sistema operativo!
  Controlla
e coordina l’uso dell’hardware tra diverse
applicazioni e utenti!
 
Programmi applicativi– definiscono come usare le risorse del
sistema per risolvere problemi computazionali definiti dagli
utenti!
  Word
processors, compilatori, web browsers, sistemi di
database, video games!
 
Utenti!
  umani,
Operating System Concepts – 7th Edition!
dispositivi automatici, altri computer!
1.11!
Silberschatz, Galvin and Gagne ©2005!
4 Componenti di un Sistema di Calcolo!
Operating System Concepts – 7th Edition!
1.12!
Silberschatz, Galvin and Gagne ©2005!
6!
Definizione di Sistema Operativo!
!
  SO è un distributore di risorse!
 
Gestisce tutte le risorse del calcolatore!
 
Risolve richieste in concorrenza garantendo un uso equo ed
efficiente delle risorse!
  SO è un programma di controllo!
 
Controlla l’esecuzione dei programmi evitando uso erroneo ed
improprio del computer!
Operating System Concepts – 7th Edition!
1.13!
Silberschatz, Galvin and Gagne ©2005!
Definizione di SistemaOperativo (cont.)!
  caveat:!
 
Nessuna definizione universalmente accettata!
  …altre alternative!
 
“Tutto ciò che una software house fornisce all’acquisto di un
sistema operativo” !
  è
una buona approssimazione…ma può esserlo molto
“alla larga”!
 
“L’unico programma che è sempre in funzione sul computer”!
 
è il kernel. Il resto comprende programmi di sistema
(forniti con il sistema operativo) o applicativi.!
Operating System Concepts – 7th Edition!
1.14!
Silberschatz, Galvin and Gagne ©2005!
7!
Che cosa fa un SO?
Le operazioni fornite dal Sistema
Operativo!
Gestione dei Processi
Gestione della Memoria
Gestione dei File e dell’I/O!
Protezione e Sicurezza!
Gestione dei Processi!
  Un processo è un programma in esecuzione. L’Unità base di lavoro del
sistema. Programma: entità passiva, Processo: entità attiva.!
  Processo: necessita di risorse per completare I suoi compiti!
CPU, memoria, I/O, file!
Dati di inizializzazione!
  Terminazione di un processo deve liberare ogni risorsa riutilizzabile!
  Processi Single-thread (?!?): un program counter per la locazione della
prossima istruzione da eseguire!
  Le istruzioni di un processo sono eseguite in sequenza, una alla volta
fino a completamento!
 
 
  Processi Multi-thread: un program counter per thread!
  Tipicamente in un sistema girano più processi (utente e di sistema)
concorrentemente su una o più CPU!
  Concorrenza: multiplexing della CPUs tra processi / threads!
!
Operating System Concepts – 7th Edition!
1.16!
Silberschatz, Galvin and Gagne ©2005!
8!
Gestione dei Processi!
Il sistema operativo è responsabile delle seguenti operazioni relative
alla gestione dei processi:!
  Creazione e cancellazione di processi utente e di sistema!
  Sospensione e riattivazione dei processi!
  Fornitura di meccanismi di sincronizzazione!
  Fornitura di strutture per la comunicazione tra processi!
  Gestione di situazioni di stallo (deadlock)!
Operating System Concepts – 7th Edition!
1.17!
Silberschatz, Galvin and Gagne ©2005!
Gestione della Memoria!
  I dati devono essere in memoria perché la CPU possa usarli!
 
… così come le istruzioni da eseguire!
  Gestione della Memoria: cosa debba essere in memoria e quando!
 
Ottimizzazione della CPU e dei tempi di risposta agli utenti!
  Attività di gestione della Memoria!
 
Tener traccia di quali parti della memoria sono in uso e da chi!
 
Decidere quali processi (o loro parti) e dati mettere o togliere
dalla memoria!
 
Allocare e deallocare spazio di memoria quando necessario!
Operating System Concepts – 7th Edition!
1.18!
Silberschatz, Galvin and Gagne ©2005!
9!
Gestione della Memorizzazione!
  SO fornisce una visione logica uniforme dei sistemi di memoria sec.!
 
 
Unità logica di memorizzazione: file (proprietà astratte)!
Ogni supporto corrisponde ad un dispositivo (es., disk drive, tape
drive)!
  Diverse proprietà in termini di velocità di accesso, capacità,
data-transfer rate, metodi di accesso (sequenziale o diretto)!
  Gestione del File-System!
 
 
 
File organizzati in directory!
Controllo dell’accesso!
OS deve tipicamente gestire!
  Creazione e cancellazione di file e directory!
  Primitive di manipolazione di file e directory!
  Corrispondenza
  Backup
tra file logico e fisico!
dei file su supporti non-volatili!
Operating System Concepts – 7th Edition!
1.19!
Silberschatz, Galvin and Gagne ©2005!
Gestione della Memoria di Massa!
  In genere si usano dischi per quei dati che non entrano in Memoria centrale
o che devono esssere conservati tra una sessione di lavoro e l’altra.!
 
La gestione della mem. di massa è cruciale!
  L’efficienza globale del sistema dipende dal sotto-sistema di gestione dei
dischi e dai suoi algoritmi!
  SO si occupa di!
 
Gestire lo spazio libero!
 
Allocazione dello spazio di memorizzazione!
 
Schedulazione delle richieste ai dischi!
  Alcune memorie di massa possono essere lente!
 
Memoria Terziaria: include dischi ottici, nastri magnetici!
 
Necessita comunque di metodi opportuni di gestione!
 
Diversi tipi: WORM (write-once, read-many-times), RW (read-write)!
Operating System Concepts – 7th Edition!
1.20!
Silberschatz, Galvin and Gagne ©2005!
10!
Sottosistema di I/O!
  Il SO deve tra l’altro nascondere le peculiarità fisiche dell’hardware!
  Il sottosistema di I/O si occupa di !
 
Gestire il buffering (memorizzazione temporanea dei dati
durante il trasferimento), caching (memorizzazione di parte dei
dati in memoria più veloci), spooling (sovrapposizione di output
di un processo con l’input di un altro)!
 
Interfacce per più device-driver !
 
Driver specifici per particolari dispositivi hardware!
Operating System Concepts – 7th Edition!
1.21!
Silberschatz, Galvin and Gagne ©2005!
Protezione e Sicurezza!
  Protezione – ogni meccanismo per controllare l’accesso di
processi e utenti alle risorse!
  Sicurezza – difesa del sistema contro attacchi interni ed esterni!
 
Es. denial-of-service, worms, virus, identity theft, theft of
service!
  Il sistema assegna agli utenti diversi livelli di accesso alle risorse !
 
 
 
 
Ogni utente viene identificato (user IDs, security IDs) include
nome e un numero associato!
User ID: è associato a tutti I file e processi di quell’utenteper
regolamentarne l’accesso!
Group ID: permette la creazione di autorizzazioni per insiemi di
utenti; ogni processo e file ha associato anche un group id.!
Acquisizione di privilegi (Privilege escalation) permette agli
utenti di apparire al sistema con un ID con altri privilegi. !
Operating System Concepts – 7th Edition!
1.22!
Silberschatz, Galvin and Gagne ©2005!
11!
Come funziona un SO?
Meccanismi di un Sistema Operativo!
Interrupt
I/O sincrono e asincrono
Gerarchie di Memoria e Caching!
Organizzazione del Sistema!
  Operazioni di un sistema di calcolo!
 
Uno o più CPU e controllori sono connessi mediante un bus
che permette l’accesso alla memoria condivisa!
 
Esecuzione concorrente delle CPU e dei dispositivi che
“competono” per i cicli di memoria!
Operating System Concepts – 7th Edition!
1.24!
Silberschatz, Galvin and Gagne ©2005!
12!
Computer Startup!
  Programma di inizializzazione (bootstrap) viene caricato
all’accensione o al reboot!
 
Tipicamente risiede in ROM o EPROM (firmware)!
 
Inizializza il sistema!
 
Carica il kernel del sistema operativo e lo esegue!
 
…!
 
il sistema operativo rimane in attesa di un qualche evento!
  Interrupt
Operating System Concepts – 7th Edition!
(?!? :-O)!
1.25!
Silberschatz, Galvin and Gagne ©2005!
Operazioni del sistema di calcolo!
  Dispositivi di I/O e CPU possono agire concorrentemente.!
  Ogni controllore di dispositivo si occupa di un particolare tipo di
dispositivo.!
  Ogni controllore ha un buffer locale.!
  CPU sposta dati da/verso la memoria verso/dai buffer locali!
  I/O avviene dal dispositivo al buffer locale del controllore.!
  Il controllore di dispositivo informa la CPU che l’operazione di I/O è
terminata mediante un interrupt.!
Operating System Concepts – 7th Edition!
1.26!
Silberschatz, Galvin and Gagne ©2005!
13!
Interrupt: Funzioni!
  Un Interrupt trasferisce il controllo ad una routine di controllo degli
interrupt, (es. mediante un vettore degli interrupt, che contiene gli
indirizzi delle routine di gestione degli interrupt)!
 
si salva l’indirizzo dell’istruzione interrotta dall’interrupt.!
 
Interrupt disabilitati mentre se ne gestisce uno,!
  Una trap (o eccezione) è un interrupt generato a livello software!
 
errore !
 
richiesta di servizio da programma utente.!
  Il sistema operativo è interrupt driven.!
Operating System Concepts – 7th Edition!
1.27!
Silberschatz, Galvin and Gagne ©2005!
Gestione degli Interrupt!
  Il sistema operativo conserva lo stato della CPU salvando il
contenuto dei registri e del program counter.!
  Determina che tipo di interrupt:!
 
polling!
 
vectored interrupt system!
  Diverse sezioni di codice definiscono quali azioni intraprendere per
ciascun interrupt!
Operating System Concepts – 7th Edition!
1.28!
Silberschatz, Galvin and Gagne ©2005!
14!
Interrupt Timeline!
Operating System Concepts – 7th Edition!
1.29!
Silberschatz, Galvin and Gagne ©2005!
Struttura dell’I/O!
  Iniziato l’I/O, il controllo ritorna al programma utente solo al
completamento dell’operazione di I/O.!
  La CPU è in attesa fino al successivo interrupt!
  Wait loop!
  Al più una richiesta di I/O per volta; I/O simultanei
impossibili.!
  Iniziato l’I/O, il controllo ritorna al programma utente senza
attendere il completamento dell’oper. di I/O.!
  System call – richiesta al sistema operativo di attesa del
completamento di I/O.!
 
 
Device-status table un elemento per ogni dispositivo di I/O
indicante il suo tipo, l’indirizzo e lo stato.!
Il Sistema Operativo accede alla I/O device table per
controllare lo stato di un dispositivo e per modificare il
contenuto della tavola in seguito ad un interrupt.!
Operating System Concepts – 7th Edition!
1.30!
Silberschatz, Galvin and Gagne ©2005!
15!
Due Metodi di gestione di I/O!
Synchronous!
Operating System Concepts – 7th Edition!
Asynchronous!
1.31!
Silberschatz, Galvin and Gagne ©2005!
Device-Status Table!
Operating System Concepts – 7th Edition!
1.32!
Silberschatz, Galvin and Gagne ©2005!
16!
Direct Memory Access!
  Usato per dispositivi di I/O veloci, capaci di trasmettere
informazioni a velocità “vicina” a quella della memoria.!
  Il controllore di dispositivo trasferisce blocchi di dati direttamente
dal buffer alla memoria centrale senza l’intervento della CPU.!
  Un solo interrupt per blocco di dati viene generato, anziché un
interrupt per byte.!
Operating System Concepts – 7th Edition!
1.33!
Silberschatz, Galvin and Gagne ©2005!
Struttura della Memoria!
  Memoria centrale – l’unico dispositivo di memorizzazione
accessibile direttamente alla CPU.!
  Memoria Secondaria – estensione della memoria centrale che
fornisce disponibilità di memoria ampia e non-volatile.!
  Dischi magnetici –metallici o in vetro ricoperti di materiale
magnetico!
 
La superficie dei dischi viene divisa in tracce, a loro volta
suddivise in settori.!
 
Il disk controller permette la gestione logica del dispositivo da
parte del computer. !
Operating System Concepts – 7th Edition!
1.34!
Silberschatz, Galvin and Gagne ©2005!
17!
Gerarchia della Memoria!
  La gerarchia della memoria è basata su!
 
Velocità!
 
Costo!
 
Volatilità!
  Caching – copia delle informazioni in dispositivi di memoria più
veloce; la memoria centrale può esser considerato l’ultimo livello di
cache per la memoria secondaria.!
Operating System Concepts – 7th Edition!
1.35!
Silberschatz, Galvin and Gagne ©2005!
Gerarchia della Memoria!
Operating System Concepts – 7th Edition!
1.36!
Silberschatz, Galvin and Gagne ©2005!
18!
Caching!
  Principio fondamentale, sfruttato a diversi livelli in un computer
(hardware, sistema operativo, software)!
  I dati in uso vengono temporaneamente copiati da memorie lente a
memorie più veloci!
  Il dispositivo di memoria veloce (cache) viene quindi esplorato
prima per controllare se il dato ricercato è disponibile!
 
Se si, si usa la copia disponibile in cache (accesso veloce)!
 
Se no, il dato viene copiato in cache e usato lì!
  La Cache è ridotta rispetto alla memoria cui fa da cache!
 
La gestione della Cache è un importante problema di
progettazione:!
 
Dimensione e sostituzione dei dati della Cache!
!
Operating System Concepts – 7th Edition!
Silberschatz, Galvin and Gagne ©2005!
1.37!
Performance di Diversi Livelli di Memoria!
Level!
1!
2!
3!
4!
5!
Name!
registers!
cache L1!
cache L4!
main mem!
disk storage!
Typical size!
few KB!
> 128 KB!
> 128 MB!
Gigabytes!
Terabytes!
Technology!
Custom mem! SRAM!
SRAM!
DRAM!
Solid state!
Bandwidth!
1CPU cycle!
700GB/sec!
40GB/sec!
10 GB/sec!
600MB/sec!
Managed by! Compiler!
Hardware!
Hardware!
OS!
OS!
Backed by!
Cache !
Main mem!
Disk!
CD / tape!
Cache!
Operating System Concepts – 7th Edition!
1.38!
Silberschatz, Galvin and Gagne ©2005!
19!
Cammino dell’intero A da Disco a Registro!
  Sistemi di Multitasking devono fare attenzione a usare il valore più
recente, indipendentemente da dove esso si trovi nella gerarchia
della memoria
!
  Sistemi Multiprocessore devono garantire, in hardware, la
coerenza tra le cache così che tutte le CPUs dispongano del valore
più recente nella loro cache!
  Nei sistemi distribuiti la situazione è più complessa!
 
Possono esistere diverse copie dello stesso dato!
 
Esistono diverse soluzioni per gestire tali complicazioni!
Operating System Concepts – 7th Edition!
1.39!
Silberschatz, Galvin and Gagne ©2005!
Struttura del Sistema Operativo!
!
  Multiprogrammazione necessaria per l’efficienza!
Un unico utente non può tenere impegnati CPU e I/O costantemente!
Multiprogrammazione organizza jobs (codice e dati) in modo da tenere
la CPU sempre occupata ad eseguirne uno!
  Un sottinsieme di tutti i job è in memoria!
  Un job viene selezionato ed eseguito (job scheduling)!
  Quando deve attendere un evento (I/O per esempio), il SO passa ad
eseguire un altro job!
  Timesharing (multitasking) estensione della MultiProgrammazione: la CPU passa frequentemente da un job all’altro così che gli utenti possono
interagire con tutti i job in esecuzione, senza notare la condivisione della
stessa (unica?) CPU!
  Response time dovrebbe essere < 1 sec!
  Ogni utente ha almeno un programma in esecuzione process!
  Se più job sono pronti per essere eseguiti  CPU scheduling!
  Se i processi non entrano in memoria, swapping!
  Virtual memory permette l’esecuzione di processi non completamente
in memoria!
 
 
Operating System Concepts – 7th Edition!
1.40!
Silberschatz, Galvin and Gagne ©2005!
20!
Layout di Memoria - Multiprogrammed System!
Operating System Concepts – 7th Edition!
1.41!
Silberschatz, Galvin and Gagne ©2005!
Sistema operativo e CPU dual Mode!
  Interrupt driven in hardware!
Errori Software e richieste generano exception or trap!
Divisione per zero, richieste di procedure di sistema!
  Altre situazioni problematiche: loop infiniti, processi che provano a
modificare altri processi o il sistema operativo!
  Dual-mode permette al SO di proteggere se stesso e le altre
componenti di sistema!
 
 
 
 
User mode e kernel mode !
Mode bit fornito in hardware!
  Permette di distinguere tra esecuzione di codice utente e
codice kernel!
  Istruzioni considerate privilegiate, sono eseguibili solo in
modalità kernel!
  System
call passano alla modalità kernel, return dalla
system call riporta in modalità utente!
Operating System Concepts – 7th Edition!
1.42!
Silberschatz, Galvin and Gagne ©2005!
21!
Modalità Utente e Kernel!
  Timer per prevenire loop infinito / monopolizzazione di risorse!
 
Set interrupt allo scadere di un certo periodo di tempo!
 
Sistema Operativo decrementa contatore!
 
Su contatore = 0, genera un interrupt!
 
Settato prima dello scheduling per riprendere il controllo o
terminare programmi che superano il tempo assegnato!
Operating System Concepts – 7th Edition!
1.43!
Silberschatz, Galvin and Gagne ©2005!
Fine
!
22!