Il Sistema Operativo - mauriziomancini.org

annuncio pubblicitario
Sistemi operativi
Il sistema operativo
Sistema Operativo
HW
Il sistema operativo
SW Applicativo
Sistema Operativo
HW
 SW = Sistema Operativo + SW applicativo
Il sistema operativo
• il sistema operativo fornisce dei servizi ai programmi
applicativi e agli utenti rendendo utilizzabili le risorse
fisiche presenti nel sistema
• il sistema operativo può essere inteso come uno
strumento che virtualizza le caratteristiche dell’hardware
sottostante, offrendo di esso la visione di una macchina
astratta più potente e più semplice da utilizzare di quella
fisicamente disponibile
Il sistema operativo: funzioni
• Il S.O. deve svolgere delle funzioni di base:
– esecuzione di applicazioni
– accesso ai dispositivi di ingresso/uscita
– archiviazione di dati e programmi
– controllo di accesso
– gestione dei tempi di utilizzo del sistema
– gestione dei malfunzionamenti
Il sistema operativo: tipologie
• varie tipologie di S.O.:
– sistemi batch (esecuzione non interattiva di task)
– sistemi interattivi (interazione con l’utente)
– sistemi uniprogrammati e monoutente
(1 solo l’utente, 1 solo programma utente per volta in
esecuzione)
– sistemi time-sharing: interattivi, multiprogrammati e
multiutente (più utenti e più programmi utente in
esecuzione)
Struttura di un sistema operativo
• Un classico modello di
organizzazione del S.O. è quello
a “strati”, detto anche a “buccia
di cipolla”:
– determina una gerarchia di
macchine virtuali (mv)
– la mv al livello N è
determinata dall’hardware
e dagli strati del S.O. fino a
quel livello
macchina virtuale: software che emula il
comportamento di una macchina fisica
User interface
• permette all'utente di interagire con il sistema operativo e
quindi con il computer
• due principali tipi di user interface:
– Command Line Interface (CLI)
• cmd.exe (Windows), terminal (Linux)
– Graphic User Interface (GUI)
• Windows Aero
• Linux Gnome, KDE
Command Line Interface
• si scrivono singoli comandi per far svolgere al computer un
certo compito:
– cd /home/Downloads (spostamento nella cartella Downloads)
– vi esempio.txt (avvio dell'editor "vi" e caricamento di un file)
Graphic User Interface
• permette una comunicazione col computer attraverso
finestre, icone e menù
– WIMP (Windows, Icons, Menus, Pointing devices)
File management system
• permette di organizzare i dati contenuti nella memoria
secondaria in forma strutturata
• i dati sono raccolti in strutture logiche dette files,
identificate da un nome (filename)
• i files sono organizzati in più contenitori logici (cartelle o
directory) secondo una struttura ad albero
• ciascun file è individuato mediante il suo
percorso (path) assoluto, ottenuto giustapponendo
i nomi dei nodi che si incontrano dalla radice
al file (separati da un carattere apposito, in Linux /, in
Windows \)
Esempio: /uno/alfa/f1
File system
• permette all’utente di:
– operare sui file mediante opportune operazioni
– effettuare l'accesso alle informazioni grazie ad operazione di alto
livello, che non tengono conto del tipo di memorizzazione
• per esempio, si deve accedere allo stesso modo ad un file
memorizzato sul disco rigido oppure su un CD-ROM
– proteggere i propri file in un sistema multi-utente, ossia per
impedire ad altri utenti di leggerli, scriverli o cancellarli
File system
• i file vengono utilizzati come supporto per la
memorizzazione dei programmi e dei dati
– un file può corrispondere ad un programma, o ad un insieme di
dati omogenee
– diversi tipi di file contengono diversi tipi di informazione
– un file deve avere un nome logico
è meglio usare nomi
significativi
è meglio non usare caratteri
speciali e lo spazio bianco
mio.doc, a.txt
prima pagina.html, mia foto.jpg
tesi.doc, inf_lezione9.ppt
index.html, montagne.gif
File system
• Un file ha anche una estensione
Esempi: .doc .txt .html .jpg .gif .pdf
Le estensioni sono importanti perché di solito indicano il tipo del file
(quindi danno informazioni sul programma applicativo in grado di
manipolarlo)
Organizzazione gerarchica dei file
• Un unico spazio (“contenitore”) di file è scomodo
– La scelta dei nomi diventa difficile perché non è possibile avere
due file con lo stesso nome nella stessa contenitore
– Le operazioni di ricerca dei file diventano onerose
• L’idea è quella di raggruppare i file in sottoinsiemi
• Questi sottoinsiemi di file vengono memorizzati all’interno
di contenitori dette cartelle (directory)
• I nomi dei file sono locali alle directory
– Si possono avere due file con lo stesso nome perché siano in due
directory diverse
Organizzazione gerarchica dei file
Organizzazione gerarchica dei file
Photoshop.exe
radice
dell’albero
A:
Applicazioni
Biblioteca
Elab_imm
Premiere.exe
Elab_testi
Winword.exe
Narrativa-Fra
libro1.pdf
libro2.pdf
Narrativa-Ing
libro1.pdf
Narrativa-Ita
libro1.pdf
foglie
libro2.pdf
Utenti
Bianchi …
Rossi …
Indice
Pautasso …
Questa struttura viene
chiamata albero
Organizzazione fisica dei file
• esempio: FAT (File Allocation Table) file system
– il disco è diviso in cluster di lunghezza fissa (64 KB)
– ogni file è una catena di cluster (anche non consecutivi, vedere
esempio in basso)
– ogni cartella è un file speciale che include i numeri dei primi
cluster dei file in essa contenuti
– la FAT contiene il tipo di ogni cluster del disco:
• Unused (0x0000), Cluster in use by a file, Bad cluster (0xFFF7), Last
cluster in a file (0xFFF8-0xFFFF)
Input/Output
• gestisce la comunicazione con dispositivi esterni
– hard disk, tastiera, stampante, monitor, ecc.
• fornisce una visione del sistema in cui i processi possono
operare mediante periferiche astratte
• maschera le caratteristiche fisiche delle periferiche e le
specifiche operazioni di ingresso/uscita
• mette a disposizione di ogni processo delle periferiche
virtuali
– esempio: spooling della stampante
Memory management
• consente ai programmi di lavorare in un proprio
spazio di indirizzamento virtuale e di ignorare quindi
le effettive zone di memoria fisica occupata.
• fornisce alle macchine virtuali di livello superiore la
possibilità di lavorare come se esse avessero a
disposizione una memoria dedicata, di capacità anche
maggiore di quella fisicamente disponibile
– esempio: memoria virtuale
Kernel
• Per la gestione dei processi il S.O. deve:
– Interagire direttamente con l’hardware
– Occuparsi dell’esecuzione dei programmi e della risposta
agli eventi esterni generati dalle unità periferiche di I/O
– Gestire i processi corrispondenti ai programmi che sono
contemporaneamente attivi
– Gestire il contesto di esecuzione dei vari processi
– Attuare una politica di alternanza (time-sharing) nell'accesso
alla CPU da parte dei processi in esecuzione
Time-sharing
elaborazione
attesa per operazioni di I/O
Progr. 1
Progr. 2
Progr. 3
Tempo
P1
P3
P2
P1
P3
P2
P1
P3
P2
Processi
• Un programma è un insieme di istruzioni da eseguire
(entità statica).
• Un processo è un’istanza di un programma in esecuzione
(entità dinamica).
• Un processo è costituito dal programma e dal contesto di
esecuzione
(program counter, registri, memoria, etc.).
• In un S.O. multiprogrammato (o multitasking o
multiprocesso) possono esistere più processi in
esecuzione
• I processi possono essere eseguiti in kernel mode (ad es. i
servizi forniti dal sistema operativo) o user mode (ad es. i
programmi applicativi)
Gestione dei processi
• compiti del s.o. per la gestione dei processi
–
–
–
–
–
creazione/terminazione dei processi
sospensione/ripristino dei processi
sincronizzazione/comunicazione tra processi
gestione di situazioni di stallo (blocco critico o deadlock)
esempio di diagramma di stato dei processi
Inizio esecuzione
(accodamento ai
processi pronti)
Termine
elaborazione
Selezione primo processo
pronto e sua esecuzione
Processi
pronti
Completamento operazione di
I/O (evento esterno atteso)
Termine quanto di
tempo
Processi
in attesa
Processo in
esecuzione
Richiesta
operazione di I/O
Stato di un processo
• In esecuzione:
assegnato al
processore ed eseguito
da esso
• Pronto: può andare in
esecuzione, se il
gestore dei processi lo
decide
• In attesa: attende il
verificarsi di un evento
esterno per andare in
stato di pronto
Inizio esecuzione
- Fine quanto di tempo
- Interruzione esterna
Processo in
esecuzione
Processo
pronto
Evento esterno
atteso
Interruzione interna
- Fine esecuzione
- Abort per errore
Processo in
attesa
28
Scarica