Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
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 sullamacchina 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
HW
BIOS
SISTEMA OPERATIVO
APPLICATIVI
Universita’ degli Studi di Milano-Bicocca
Fondamenti di Informatica: Sistemi Operativi 5
��
��
Strati del Sistema Operativo
INTERPRETE COMANDI
PROGRAMMI UTENTE
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
Compiti del Nucleo:
� 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
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 REALE: necessita’ di avere piu’ processori
Parallelismo SIMULATO:
� Time-sharing: quanti di tempo
� Salvataggio e ripristino del contesto
� Vantaggio: sfruttamento risorse: CPU e periferiche
Universita’ degli Studi di Milano-Bicocca
Fondamenti di Informatica: Sistemi Operativi 10
��
��
Stato di un processo
Fine quanto di tempo
Acquisizione CPU
Evento esternoAtteso
Interr. InternaRichiesta I/O
PRONTO
INIZIO ESECUZIONE FINE ESECUZIONE
ATTESA
ESECUZIONE
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 devonorisiedere, 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 deidati e delle istruzioni
� Memoria virtuale: la memoria disponibile e’ piu’ grande di quellaeffettiva
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
posizione di caricamento � RILOCAZIONE
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
S3:P1 S4:P3S1:P2 S2 S5
+ >
ERRORE
Registro Base Registro Frontiera
Indirizzo Rilocabile
Universita’ degli Studi di Milano-Bicocca
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 � bit
I � bit sono divisi (logicamente) in due parti:
� I � bit piu’ significativi per indirizzare ��� pagine
� I restanti � � ��� � bit per indirizzare � celle all’interno di ogni pagina
� � ��� �
Universita’ degli Studi di Milano-Bicocca
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 I1,3
P1,4(0100) Y M9(1001) I1,4
Universita’ degli Studi di Milano-Bicocca
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 delprocesso
2. Mediante la tabella del processo, verifico se la pagina e’ presente inmemoria
3. Se non e’ presente (Page Fault): si libera (se necessario) una pagina dimemoria, si carica la pagina del processo richiesta, e si aggiorna latabella processi (sia per la pagina caricata, che per la paginacancellata). Passo al punto successivo
4. Se presente: ricavo l’indirizzo della pagina fisica; compongo taleindirizzo 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 35
��
��
Gestione dei File
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
Filename:
� Nome
� Estensione
� Informazioni ausiliarie
Suddivisione file: Directory (Cartelle)
� Nome locale
� Nome completo
� Operazioni: MD, CD, RD
Universita’ degli Studi di Milano-Bicocca
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