Fondamenti di Informatica: Sistemi Operativi
1
Introduzione
Elaboratori necessitano di SOFTWARE
SOFTWARE DI SISTEMA (SISTEMI OPERATIVI): fanno funzionare le
varie componenti del computer e permettono all’elaboratore di interagire
con l’utente. Caricato automaticamente al momento dell’accensione
dell’elaboratore.
LINGUAGGI DI PROGRAMMAZIONE: permettono di creare
SOFTWARE
SOFTWARE APPLICATIVO: programmi di videoscrittura, fogli
elettronici, software di gestione delle basi dati, ecc.
Universita’ degli Studi di Milano-Bicocca
Fondamenti di Informatica: Sistemi Operativi
2
Sistema Operativo - Definizione
SISTEMA OPERATIVO: Insieme di programmi che operano sulla
macchina fisica per dare all’utente un livello di astrazione elevato;
realizzazione della MACCHINA VIRTUALE.
Diversi sistemi operativi a seconda di scelte di gestione Hardware:
Interfaccia utente: Caratteri/Grafica
Sicurezza: Alta/Bassa
Gestione processi: Monotasking/Multitasking
Gestione utenti: Monoutente/Multiutente
Capacita’ elaborazione: 8, 16, 32 bit
Portabilita’: Vincolato/Non vincolato al processore
Esempi: DOS, Windows, Linux, Unix, OS2, ecc.
Universita’ degli Studi di Milano-Bicocca
Fondamenti di Informatica: Sistemi Operativi
3
Scopi
Rendere disponibili le varie unita’ all’utente
Gestione efficiente delle risorse (es: memoria, processore, ecc.)
Sicurezza
Simulare macchina dedicata (Multiutente)
Gestire comunicazione utente-calcolatore
Universita’ degli Studi di Milano-Bicocca
Fondamenti di Informatica: Sistemi Operativi
4
Struttura HW-SW
APPLICATIVI
SISTEMA OPERATIVO
BIOS
HW
Universita’ degli Studi di Milano-Bicocca
Fondamenti di Informatica: Sistemi Operativi
5
Strati del Sistema Operativo
PROGRAMMI UTENTE
INTERPRETE COMANDI
FILE SYSTEM
GESTIONE PERIFERICHE
GESTIONE MEMORIA
NUCLEO (KERNEL): Gestione processi
MACCHINA FISICA (HW)
Universita’ degli Studi di Milano-Bicocca
Fondamenti di Informatica: Sistemi Operativi
6
Nucleo dei Sistemi Operativi
Dialogo con l’Hardware
Esecuzione effettiva comandi
Risposta a eventi generati da periferiche
Condivisione risorse (CPU virtuale ad ogni utente)
Universita’ degli Studi di Milano-Bicocca
Compiti del Nucleo:
Fondamenti di Informatica: Sistemi Operativi
7
Nucleo - Gestione dei Processi
PROGRAMMA: entita’ statica - Insieme di istruzioni
PROCESSO: entita’ dinamica - Programma in fase di esecuzione. E’
costituito dal programma e da tutte le informazioni necessarie
all’esecuzione: Dati, istruzione corrente, stato, ecc.
L’unita’ di elaborazione dei processi: PROCESSORE.
Se il calcolatore ha un solo processore, ad ogni istante solo un processo
puo’ essere in esecuzione.
Universita’ degli Studi di Milano-Bicocca
Fondamenti di Informatica: Sistemi Operativi
8
Gestione dei Processi
Quando viene interrotta l’esecuzione di un processo?
Interruzione interna - SINCRONA: richiesta di operazione di I/O da parte
del processo; chiamata al supervisore; attivazione nucleo
Interruzione esterna - ASINCRONA: evento non causato dal processo (es.
quanto di tempo esaurito, periferica termina operazione di I/O)
Universita’ degli Studi di Milano-Bicocca
Fondamenti di Informatica: Sistemi Operativi
9
Esecuzione contemporanea processi
Parallelismo SIMULATO:
Time-sharing: quanti di tempo
Salvataggio e ripristino del contesto
Vantaggio: sfruttamento risorse: CPU e periferiche
Universita’ degli Studi di Milano-Bicocca
Parallelismo REALE: necessita’ di avere piu’ processori
Fondamenti di Informatica: Sistemi Operativi
10
Stato di un processo
INIZIO ESECUZIONE
FINE ESECUZIONE
Acquisizione CPU
PRONTO
ESECUZIONE
Fine quanto di tempo
Interr. Interna
Richiesta I/O
Evento esterno
Atteso
ATTESA
Universita’ degli Studi di Milano-Bicocca
Fondamenti di Informatica: Sistemi Operativi
11
Context-Switching
Sospensione processo in ESECUZIONE: necessario memorizzare il
contesto del processo.
CONTESTO: contenuto dei registri del processore in un’apposita zona di
memoria (descrittore del processo)
CONTEXT - SWITCHING:
Sospensione processo
Salvataggio contesto
Scelta tra i processi pronti del prossimo processo da eseguire
Ripristino del contesto del processo prescelto
Attivazione del processo prescelto
Universita’ degli Studi di Milano-Bicocca
Fondamenti di Informatica: Sistemi Operativi
12
Scelta processo per esecuzione
Obiettivi:
Efficienza elevata: (throughput - numero processi elaborati)
Garanzia agli utenti
Parallelizzazione
Universita’ degli Studi di Milano-Bicocca
Fondamenti di Informatica: Sistemi Operativi
13
Scelta processo per esecuzione
Politica piu’ semplice: quanto di tempo assegnato ai vari processi in ordine.
Politica ROUND-ROBIN (rotazione).
Coda di processi pronti con modalita’ FIFO (First In First Out)
Caratteristiche quanto di tempo:
Maggiore del tempo di context switching
Minore del tempo di esecuzione di un programma
Minore del tempo medio di esecuzione tra due richieste di operazioni di
input/output
Universita’ degli Studi di Milano-Bicocca
Fondamenti di Informatica: Sistemi Operativi
14
Scelta processo per esecuzione
Round-Robin con priorita’:
Ad ogni processo e’ assegnata priorita’ (es: importanza processo,
processi con molto I/O)
Scelta del processo con priorita’ massima
Processi con priorita’ uguale sono gestiti con Round-Robin
Esempio: WIN 2000
Round-Robin con priorita’
Quanto di tempo: 15-30 mSec.
Universita’ degli Studi di Milano-Bicocca
Fondamenti di Informatica: Sistemi Operativi
15
Altre operazioni gestite dal kernel
Sincronizzazione dei processi (problemi di concorrenza):
STARVATION: un processo con bassa priorita’ non riesce mai ad
accedere alle risorse
DEADLOCK: due o piu’ processi si bloccano a vicenda, attendendo
eventi che non si potranno verificare
Accesso ad informazioni critiche: semafori
Universita’ degli Studi di Milano-Bicocca
Fondamenti di Informatica: Sistemi Operativi
16
Gestione Memoria Centrale
Memoria centrale: risorsa unica, in genere scarsa. I processi pronti devono
risiedere, almeno in parte, in memoria centrale
Gestore Memoria - Funzioni principali:
Condivisione Memoria: piu’ utenti e piu’ processi
– Parziale sovrapposizione di spazi
– Comunicazione fra processi
– Minore ridondanza dati
Protezione memoria: ogni processo possiede un’area riservata
Spazio virtuale: I processi ignorano l’effettiva collocazione fisica dei
dati e delle istruzioni
Memoria virtuale: la memoria disponibile e’ piu’ grande di quella
effettiva
Universita’ degli Studi di Milano-Bicocca
Fondamenti di Informatica: Sistemi Operativi
17
Tecniche di Gestione Memoria Centrale
Rilocazione del programma: trasformazione degli indirizzi logici in
indirizzi fisici
Swapping: utilizzo di memorie di massa per simulare memoria centrale
Suddivisione della memoria:
Segmentazione: La memoria e’ suddivisa in segmenti, parti di
dimensioni diverse le une dalle altre
Paginazione: La memoria e’ suddivisa in pagine, parti di dimensione
fissa
Universita’ degli Studi di Milano-Bicocca
Fondamenti di Informatica: Sistemi Operativi
18
Rilocazione
Catena di Programmazione:
Programma sorgente
Compilatore
Programma oggetto
Linker
Programma eseguibile
Nel programma eseguibile, tutti i nomi simbolici e i riferimenti sono stati
RISOLTI (espressi come indirizzi di memoria).
Gli indirizzi di un programma eseguibile possono presentarsi in:
- formato rilocabile: gli indirizzi fanno riferimento ad un valore base logico
(Indirizzo zero logico).
- formato assoluto: indirizzo fisico
Universita’ degli Studi di Milano-Bicocca
Fondamenti di Informatica: Sistemi Operativi
19
Rilocazione
Caricatore (Loader): si occupa di caricare i programmi in memoria
Se indirizzi assoluti
Solo caricamento
Se indirizzi relativi
Aggiornamento degli indirizzi fisici in base alla
RILOCAZIONE
posizione di caricamento
Due tipi di rilocazione:
- Statica: all’atto del caricamento in memoria, gli indirizzi relativi
divengono indirizzi assoluti
- Dinamica: il codice non viene modificato; utilizzo di indirizzi rilocabili e
REGISTRO BASE. Necessaria per Multiprogrammazione.
Universita’ degli Studi di Milano-Bicocca
Fondamenti di Informatica: Sistemi Operativi
20
Registro Base
Gli indirizzi relativi fanno riferimento ad un indirizzo zero logico
Registro base: contiene l’indirizzo della prima cella di memoria occupata
dal programma
Indirizzo finale:
registro base + indirizzo rilocabile = indirizzo assoluto
Universita’ degli Studi di Milano-Bicocca
Fondamenti di Informatica: Sistemi Operativi
21
Memoria virtuale - Swapping
Viene simulata la presenza di RAM sfruttando le memorie di massa
Swap:
Il contenuto della memoria centrale viene trasferito su una memoria di
massa (Area di SWAP), in modo da liberare spazio
Solo i processi presenti in memoria centrale possono essere eseguiti
Quando necessario, i dati memorizzati nell’area di Swap vengono
caricati in memoria (scaricando da questa altri dati, per fare posto)
Universita’ degli Studi di Milano-Bicocca
Fondamenti di Informatica: Sistemi Operativi
22
Segmentazione della memoria
Divisione della memoria in parti di dimensioni diverse, dette SEGMENTI
Avvio un programma
Si crea un processo
Devo trovare un segmento libero di dimensione sufficiente a contenere tutte
le informazioni relative al processo (in genere, segmenti un po’ piu’ grandi
per poter allocare dati dinamici)
Universita’ degli Studi di Milano-Bicocca
Fondamenti di Informatica: Sistemi Operativi
23
Segmentazione della memoria
Registro Base
S1:P2
S2
S3:P1
+
>
Indirizzo Rilocabile
Universita’ degli Studi di Milano-Bicocca
S4:P3
S5
Registro Frontiera
ERRORE
Fondamenti di Informatica: Sistemi Operativi
24
Politiche di gestione segmenti
Segmenti a dimensione fissa
Vantaggio: semplici da gestire
Svantaggio: parte del segmento non utilizzato, spreco memoria.
Politica del best-fit.
Segmenti a dimensione variabile
Vantaggio: ottimizzazione uso memoria
Svantaggio: spreco CPU per compattare la memoria
Gestione multiprogrammazione: per fare spazio ad un processo, devo
liberare un intero segmento
Universita’ degli Studi di Milano-Bicocca
Fondamenti di Informatica: Sistemi Operativi
25
Paginazione della memoria
La memoria e’ suddivisa in parti che hanno tutte la stessa dimensione
Una pagina e’ costituita da un certo numero di celle di memorie
Il numero di celle per pagina e’ una potenza di due, per semplificare
l’indirizzamento
I processi sono suddivisi in varie pagine, NON NECESSARIAMENTE
CONTIGUE
Universita’ degli Studi di Milano-Bicocca
Fondamenti di Informatica: Sistemi Operativi
26
Paginazione della memoria
Vantaggi:
Non e’ necessario avere uno spazio libero consecutivo per contenere un
processo
Non e’ necessario avere l’intero processo caricato in memoria. Si
mantiene in memoria solo la parte effettivamente utilizzata
Universita’ degli Studi di Milano-Bicocca
Fondamenti di Informatica: Sistemi Operativi
27
Paginazione della memoria
Supponiamo registro indirizzi a
I
bit
bit sono divisi (logicamente) in due parti:
I bit piu’ significativi per indirizzare
bit per indirizzare
I restanti
Universita’ degli Studi di Milano-Bicocca
pagine
celle all’interno di ogni pagina
Fondamenti di Informatica: Sistemi Operativi
28
Paginazione della memoria
Esempio: memoria di 16 pagine
i-esima pagina
Processo h-esimo, parte j-esima
Tabella delle pagine:
00
01
10
11
00
M0:P2,0
M1:P1,2
M2:P4,0
M3:P1,1
01
M4:P3,0
M5:P4,2
M6:P3,3
M7:P2,1
10
M8:P2,2
M9:P1,4
M10:P3,2
M11:P2,3
11
M12:P1,0
M13:P4,3
M14:P3,1
M15:P3,4
Universita’ degli Studi di Milano-Bicocca
Fondamenti di Informatica: Sistemi Operativi
29
Paginazione della memoria
Tabella del processo P1:
Pagina logica
Presenza
Pagina fisica
Ind. Memoria di Massa
P1,0(0000)
Y
M12(1100)
I1,0
P1,1(0001)
Y
M3(0011)
I1,1
P1,2(0010)
Y
M1(0001)
I1,2
P1,3(0011)
N
P1,4(0100)
Y
Universita’ degli Studi di Milano-Bicocca
I1,3
M9(1001)
I1,4
Fondamenti di Informatica: Sistemi Operativi
30
Paginazione della memoria
Come avviene l’indirizzamento rilocabile?
Viene fornito un indirizzo rispetto all’indirizzo logico zero. E’ necessario:
1 Ricavare la posizione effettiva della pagina in memoria
2 Indirizzare la cella all’interno di questa pagina
Nota: la posizione della cella all’interno della pagina e’ la stessa per pagina
logica e pagina fisica (bit meno significativi).
Universita’ degli Studi di Milano-Bicocca
Fondamenti di Informatica: Sistemi Operativi
31
Da Indirizzo logico a Indirizzo fisico
Dato l’indirizzo logico:
1. I bit piu’ significativi permettono di ricavare la pagina logica del
processo
2. Mediante la tabella del processo, verifico se la pagina e’ presente in
memoria
3. Se non e’ presente (Page Fault): si libera (se necessario) una pagina di
memoria, si carica la pagina del processo richiesta, e si aggiorna la
tabella processi (sia per la pagina caricata, che per la pagina
cancellata). Passo al punto successivo
4. Se presente: ricavo l’indirizzo della pagina fisica; compongo tale
indirizzo con i bit meno significativi; ottengo un indirizzo assoluto
(fisico) per indirizzare la cella che interessa
Universita’ degli Studi di Milano-Bicocca
Fondamenti di Informatica: Sistemi Operativi
32
MMU e tecniche di paginazione
Memory Management Unit: Supporto HW che
Converte indirizzi logici in indirizzi fisici
Informa il Sistema Operativo di Page Fault
In caso di Page Fault:
Il processo passa in stato di attesa, finche’ la pagina richiesta e’
presente in memoria
Il SO libera piu’ pagine di memoria: pagine utilizzate piu’ indietro nel
tempo (principio di localita’ dei programmi)
Il SO carica piu’ pagine del processo che ha provocato il page fault.
Numero di pagine caricate: non troppo elevato (spreco memoria) e non
troppo ridotto (nuovi page fault)
Universita’ degli Studi di Milano-Bicocca
Fondamenti di Informatica: Sistemi Operativi
33
Gestione Periferiche
Obiettivi: visione di alto livello
Indipendenza dalla struttura Hardware delle periferiche
Gestione errori
Gestione accessi concorrenti alle periferiche
Si utilizzano due tipi di driver:
Driver Fisici (hardware): attivati dal gestore delle interruzioni per eseguire
le operazioni di trasferimento e manipolazione dei dati
Driver logici (software): fanno parte del sistema operativo, anche se in
genere sono forniti dai costruttori dei dispositivi. Gerarchia di operazioni
con organizzazione a strati.
Universita’ degli Studi di Milano-Bicocca
Fondamenti di Informatica: Sistemi Operativi
34
Gestione Periferiche
Lettura/scrittura su disco: gestione dischi e testine.
Esempio: posizionamento testine. Shortest Seek First ed Elevator
Algorithms.
Spooling system: Accesso concorrente a risorse condivise (stampante).
Universita’ degli Studi di Milano-Bicocca
Fondamenti di Informatica: Sistemi Operativi
Gestione dei File
35
File: contenitore logico delle informazioni presenti nelle memorie di massa
File System: software per la gestione dei file. Scopo: trasparenza rispetto
alle caratteristiche fisiche della memoria di massa
Operazioni:
Creazione/Modifica file con scrittura dati
Lettura dati da file precedentemente memorizzati
Cancellazione file
Copia file tra dispositivi diversi
Universita’ degli Studi di Milano-Bicocca
Fondamenti di Informatica: Sistemi Operativi
36
Gestione dei File
Nome
Estensione
Informazioni ausiliarie
Suddivisione file: Directory (Cartelle)
Nome locale
Nome completo
Operazioni: MD, CD, RD
Universita’ degli Studi di Milano-Bicocca
Filename:
Fondamenti di Informatica: Sistemi Operativi
37
Interprete dei Comandi
Strato superiore del sistema operativo
Riceve ed interpreta i comandi dell’utente
I comandi richiamano funzioni del sistema operativo
In un sistema multiutente si deve generare un interprete comandi per ogni
utente collegato
Universita’ degli Studi di Milano-Bicocca
Fondamenti di Informatica: Sistemi Operativi
38
Esecuzione di un programma applicativo
L’utente seleziona il programma: interprete comandi
Associazione file-dati da caricare: file systems
Lettura effettiva dei dati da disco: gestore periferiche
Allocazione memoria centrale e trasferimento dati: gestore memoria
Creazione, attivazione e gestione processo: Kernel
Universita’ degli Studi di Milano-Bicocca
Fondamenti di Informatica: Sistemi Operativi
39
Utilities dei Sistemi Operativi
Software aggiuntivo che svolge operazioni utili all’utente.
Formattazione: prepara il disco in modo da rendere possibile la
memorizzazione dei dati. Creazione FAT, tabella che registra la
localizzazione di tutti i file sul disco
De-Frammentazione: riunisce i frammenti dei file in posizioni contigue
Scanning del Disco: individua e marca eventuali settori del disco
rovinati
Eliminazione dei File: Cestino
Universita’ degli Studi di Milano-Bicocca