1
Lezioni: Martediʼ e Mercolediʼ 12:00 – 14:00
Venerdiʼ 11:00 – 14:00 (laboratorio)
Esame: 3 Prove intercorso (o Prova Scritta) - Orale
1.3 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
Cosa fa un Sistema Operativo Organizzazione di un sistema di calcolo Architettura di un calcolatore Struttura di un sistemi operativi Operazioni di un sistema operativo Gestione dei processi Gestione della memoria Gestione delle memorie di massa Protezione e sicurezza
1.4 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
Una panoramica delle componenti fondamentali di un sistema operativo
Ricapitolare lʼorganizzazione di base di un sistema di calcolo
2
1.5 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
Un programma che fa da intermediario tra gli utenti di un computer ed il suo hardware.
Scopi di un sistema operativo: Eseguire programmi utente e rendere semplice la soluzione
dei problemi utente. Rendere agevole lʼuso del calcolatore.
Rendere efficiente lʼuso delle componenti hardware del sistema di calcolo.
1.6 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
Un sistema di calcolo puoʼ 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 usarele risorse del sistema per risolvere problemi computazionali definiti dagli utenti Word processors, compilatori, web browsers, sistemi di
database, video games Utenti
umani, dispositivi automatici, altri computer
1.7 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition 1.8 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
SO eʼ un distributore di risorse Gestisce tutte le risorse del calcolatore Risolve richieste in concorrenza garantendo un uso equo ed
efficiente delle risorse SO eʼ un programma di controllo
Controlla lʼesecuzione dei programmi evitando uso erroneo ed improrio del computer
3
1.9 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
Nessuna definizione universalmente accettata “Tutto cioʼ che una software house fornisce allʼacquisto di un
sistema operativo” eʼ una buona approssimazione Ma puoʼ esserlo molto “alla larga”
“Lʼunico programma che eʼ sempre in funzione sul computer computer” eʼ il kernel. Il resto comprende programmi di sistema (forniti con in sistema operativo) o applicativi.
1.10 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
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 (?!? :-O)
1.11 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
Operazioni di un sistema di calcolo Uno o piuʼ 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
1.12 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
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 e ̓
terminata mediante un interrupt.
4
1.13 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
Un Interrupt transferisce 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)
Lʼarchitettura deve prevedere il salvataggio dellʼindirizzo dellʼistruzione interrotta dallʼ interrupt.
Gli interrupt sono disabilitati mentre se ne gestisce uno, al fine di evitare che qualche interrupt venga perso.
Una trap (o eccezione) eʼ un interrupt generato a livello software, a causa di un errore o di una richiesta-utente.
Il sistema operativo eʼ interrupt driven.
1.14 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
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 definisco quali azioni intraprendere per ciascun interrupt
1.15 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition 1.16 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
Iniziato lʼI/O, il controllo ritorna al programma utente solo al completmento dellʼoperazione di I/O. La CPU eʼ in attesa fino al successivo interrupt Wait loop Al piuʼ una richiesta di I/O per volta; I/O simultanei
impossibili. Iniziato lʼI/O starts, 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.
5
1.17 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
Synchronous Asynchronous
1.18 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
1.19 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
Usato per dispositivi di I/O veloci, capaci di trasmettere informazioni a velocitaʼ “vicina” a quella della memoria.
Il controllore di dispositivo trasferisce blocchi di dati direttamente dal buffer alla memoria centrale senze lʼintervento della CPU.
Un solo interrupt per blocco di dati viene generato, anzicheʼ un interrupt per byte.
1.20 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
Memoria centrale – lʼunico dispositivo di memorizzazione accessibile direttamente alla CPU.
Memoria Secondaria – estensione della memoria centrale che fornisce disponibilitaʼ 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.
6
1.21 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
La gerarchia della memoria eʼ basata su Velocitaʼ Costo Volatilitaʼ
Caching – copia delle informazioni in dispositivi di memoria piuʼ veloce; la memoria centrale puoʼ esser considerato lʼultimo livello di cache per la memoria secondaria.
1.22 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
1.23 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
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 piuʼ veloci
Il dispositivo di memoria veloce (cache) viene quindi esplorato prima per controllare se il dato ricercato eʼ disponibile Se si, si usa la copia disponibile in cache (accesso veloce) Se no, il dato viene copiato in cache e usato liʼ
La Cache eʼ ridotta rispetto alla memoria cui fa da cache La gestione della Cache eʼ un importante problema di
progettazione: Dimensione e sostituzione dei dati della Cache
1.24 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
7
1.25 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
Sistemi di Multitasking devono fare attenzione a usare il valore piuʼ recente, indipendentemente da dove esso si trovi nella gerarchia della memoria
Sistemi Multiprocessore devono garantire, in hardware, la coerenza tra le cache cosiʼ che tutte le CPUs dispongano del valore piuʼ recente nella loro cache
Nei sistemi distribuiti la situazione ʻ piuʼ complessa Posso esistere diverse copie dello stesso dato Esistono diverse soluzioni per gestire tali complicazioni
1.26 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
Multiprogrammazione necessaria per lʼefficienza Un unico utente non puoʼ tenere impegnata la 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 eʼ 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 di MP: la CPU passa
frequentemente da un jobs allʼaltro cosiʼ 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 piuʼ job sono pronti per essere eseguiti CPU scheduling Se processi non entrano in memoria, swapping Virtual memory permette lʼesec.uzione di processi non completamente
in memoria
1.27 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition 1.28 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
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
Instruzioni considerate privilegiate, sono eseguibili solo in modalitaʼ kernel
System call passano alla modalitaʼ kernel, return dalla system call riporta in modalitaʼ utente
8
1.29 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
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
1.30 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
Un processo eʼ un programma in esecuzione. LʼUnitaʼ base di lavoro del sistema. Programma: entitaʼ passiva, Processo: entitaʼ 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 piuʼ processi (utente e di sistema)
concorrentemente su una o piuʼ CPU Concorrenza: multiplexing della CPUs tra processi / threads
1.31 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
Il sistema operativo eʼ 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)
1.32 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
I dati devono essere in memoria percheʼ la CPU possa usarli … cosiʼ 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 Attivitaʼ 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
9
1.33 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
SO fornisce una visione logical uniforme dei sistemi di memoria sec. Unitaʼ logica di memorizzazione: file (proprietaʼ astratte) Ogni supporto corrisponde ad un dispositivo (es., disk drive, tape
drive) Diverse proprietaʼ in termini di velocitaʼ di accesso, capacitaʼ,
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 tra file logico e fisico Backup dei file su supporti non-volatili
1.34 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
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 eʼ 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)
1.35 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
Il SO deve tra lʼaltro nascondere le peculiaritaʼ fisiche dellʼhardware Il sottosistema di I/O si occupa di
Gestire il buffering (memorizzazione temporanea dei datidurante il trasferimento), caching (memorizzazione di parte dei dati in memoria piuʼ veloci), spooling (sovrapposizione di output di un processo con lʼinput di un altro)
Interfacce per piuʼ device-driver Driver specifici per particolari dispositivi hardware
1.36 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7th Edition
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: eʼ 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.
10