1 il sistema operativo: esempio n le operazioni effettuate sembrano abbastanza semplici ma … n...
TRANSCRIPT
1
Il Sistema Operativo: Esempio Le operazioni effettuate sembrano abbastanza
semplici ma … Provocano una serie di eventi in cui vengono
coinvolte sia risorse hardware che risorse software
Il coordinamento e la gestione delle varie risorse viene effettuato dal Sistema Operativo
Il Sistema Operativo fornisce i servizi che sono necessari a tutti gli altri programmi in esecuzione
2
Il Sistema Operativo: Esempio Per ogni carattere immesso tramite la tastiera viene
inviato un codice corrispondente al computer Il codice viene ricevuto da un circuito che si occupa
di gestire la comunicazione con la tastiera Il codice viene memorizzato in un’area di memoria
riservata (buffer) e viene inviato un segnale alla CPU (interrupt)
Quando la CPU riceve un interrupt dalla tastiera attiva un modulo (un piccolo programma) chiamato terminal driver
3
Il Sistema Operativo: Esempio Il terminal driver invia al monitor una copia del
codice del carattere immesso per visualizzare il carattere
Il codice corrispondente al carattere “Enter” indica che il comando immesso (date) è completo
Il terminal driver attiva un altro modulo chiamato listener (perchè attende le richieste provenienti dagli utenti)
Il listener legge i caratteri dal buffer della tastiera e ricerca un programma chiamato date, lo carica in memoria centrale e lo esegue
4
Il Sistema Operativo: Esempio Il programma date “va a leggere” un “orologio” (un
contatore che tiene conto dello scorrere del tempo) e passa l’informazione letta al terminal driver
Il terminal driver trasmette la data al monitor che la visualizza
Ognuno di questi eventi può essere descritto in dettaglio, per esempio:– prima che il programma listener carichi il programma date
in memoria deve localizzare la “directory” dove tale comando si trova, ecc.
– La fase di caricamento del programma comprende una fase di lettura dal disco rigido
5
Esempio
Ogni carattere dato in input dalla tastiera viene ricevuto dal terminal driver che lo invia al monitor per la visualizzazione
datelistener
directory manager
terminal driverdisk driver
file manager
Disco rigido
BUFFER
Tastiera
BUFFER
Monitor
148.608.043.200.010clock
dat
dat
dat dat dat dat
dat
dat
6
Esempio
Quando viene immesso il carattere Enter <cr> il terminal driver passa la stringa date al programma listener che interpreta il comando
datelistener
directory manager
terminal driverdisk driver
file manager
Disco rigido
BUFFER
Tastiera
BUFFER
Monitor
date<cr>
date<cr>
148.608.043.200.020
7
Esempio
Il listener richiede al directory manager di cercare (nella directory dei comandi) date. Il programa directory manager richiede al programma file manager, che a sua volta si avvale del programma disk driver, di localizzare sul disco rigido il programma date
Tastiera
datelistener
directory manager
terminal driverdisk driver
file manager
Disco rigido
BUFFER
BUFFER
Monitor
148.608.043.200.032
8
Esempio
Quando il comado date è stato localizzato (è un file eseguibile) il listener (mediante il file manager) lo carica in memoria. Per fare questa operazione il file manager utilizza il disk driver
Tastiera
datelistener
directory manager
terminal driverdisk driver
file manager
Disco rigido
BUFFER
BUFFER
Monitor
148.608.043.200.045
9
Esempio
Il listener manda in esecuzione il programma date che legge il clock ed effettua delle operazioni di conversione per trasformare il valore letto nella data del giorno
Tastiera
datelistener
directory manager
terminal driverdisk driver
file manager
Disco rigido
BUFFER
BUFFER
Monitor
148.608.043.200.101
10
Esempio
Il programma date tramite il terminal driver visualizza sul monitor la data
Tastiera
datelistener
directory manager
terminal driverdisk driver
file manager
Disco rigido
BUFFER
BUFFER
Monitor
148.608.043.200.104
martedì 7 marzo 2000
11
Il Sistema Operativo: esempio
Sebbene le operazioni che abbiamo preso in esame “sembrino abbastanza semplici” e di uso frequente esse provocano una serie di eventi e azioni molto complesse e articolate
L’immissione di un semplice carattere (tramite tastiera) può provocare l’esecuzione di una decina (o anche più) di funzionalità del S.O.
12
Strategie adottate La gestione dei vari eventi che devono essere gestiti
da un S.O. è una delle aree di vitale importanza dell’informatica
L’idea di base che si utilizza è quella di creare una gerarchia di livelli di astrazione
In questo modo, ad ogni livello le funzionalità presenti possono ignorare i dettagli sulle funzionalità offerte da altri livelli– Quando il modulo listener carica un programma
prelevandolo dal disco rigido non deve specificare il posizionamento della testina del disco rigido. Queste operazioni vengono effettuate da un altro programma che si trova ad un livello più basso della gerarchia
13
Il Sistema Operativo Dal punto di vista strutturale il sistema operativo è
formato da un insieme di livelli, che formano la cosiddetta struttura a cipolla
Ciascun livello fornisce un insieme di funzioni e di servizi a partire dalle funzioni e dai servizi forniti dal livello sottostante
kernel
gestione memoria processore, risorse
interfaccia utente
14
Strategie adottate Al livello più alto della gerarchia di funzionalità si
trova l’utente del sistema Idealmente l’utente è ignaro di tutti i dettagli delle
operazioni svolte dai livelli inferiori della gerarchia L’utente ha conoscenza solo delle operazioni che è
interessato ad effettuare– Nell’esempio precedente l’utente è interessato alla data e
conosce solo il comando che serve per ottenere tale informazione
15
Esempio: i driver dei dispositivi Ogni dispositivo collegato al computer è gestito da
un modulo del sistema operativo chiamato driver Ogni volta che si aggiunge un nuovo dispositivo si
deve installare il driver corrispondente
DriverModem
Kernel
DriverStampante
DriverVideo
16
Il File System Esistono diversi tipi di supporti per la
memorizzazione permanente delle informazioni: dischi magnetici (floppy disk, hard disk), dischi ottici (cd), nastri magnetici
Il File System è quella parte del S.O. che si occupa di gestire e strutturare le informazioni memorizzate su supporti permanenti
I file vengono utilizzati per la memorizzazione dei programmi (sia programmi di sistema che programmi utente) e dei dati
17
Il File System Possiamo vedere il disco fisso come un
quaderno con tante pagine su cui un utente scrive delle relazioni (file)
L’utente ha la necessità di scrivere / cancellare / modificare i file
18
Il File SystemProblemi: Quando un file viene cancellato rimangono delle
pagine vuote La modifica di un file può dare origine ad una
versione: (più corta o più lunga di quella precedente) Nel primo caso rimangono delle pagine vuote Nel secondo caso la modifica può essere
impossibile perchè ci potrebbero essere dei file che occupano le pagine seguenti a quelle del file da modificare
Come risolvere questi problemi ?
19
Il File System Esistono diverse soluzioni per questi problemi:
– Utilizzo di un quaderno “ad anelli”: le pagine possono
essere spostate, aggiunte, cancellate senza creare
sprechi di spazio e senza limitazioni sulla crescita delle
dimensioni di un file (l’unico limite è quello di avere fogli
liberi)
– Utilizzo di un indice: le pagine del quaderno vengono
numerate e l’indice conterrà (nell’ordine) i numeri delle
pagine del file
20
Il File SystemEsempio:
I livelli più bassi e, in
particolare il più basso,
detto kernel, sono quelli
più vicini all'hardware e
dipendono quindi dalla
specifica macchina; i
livelli più alti, invece,
sono più vicini agli utenti
e ai programmi
applicativi e sono
abbastanza indipendenti
dalle
4
caratteristiche hardware
dell'elaboratore. Ai
diversi livelli
corrispondono
funzionalità diverse; ad
esempio, i livelli bassi si
occupano della gestione
efficiente delle risorse di
calcolo mentre quelli alti
forniscono
61
Dal punto di vista
strutturale il sistema
operativo è formato da un
insieme di livelli, che
formano la cosiddetta
struttura a cipolla;
ciascun livello fornisce un
insieme di funzioni e di
servizi a partire dalle
funzioni e dai servizi
forniti dal livello
sottostante (si veda la
figura 5.1).
relazione1: pag. 1, pag. 4, pag. 6
98.12.11 15:29 B C:\
Matteo\LIBRO-CONS-
RIBA\cap1.doc <--
graal
/usr/NFS/graal1/matteo/L
IBRO-CONS-RIBA
cap1.doc
98.12.11 15:29 B C:\
Matteo\LIBRO
2
-CONS-RIBA\cap2.doc
<-- graal
/usr/NFS/graal1/matteo/L
IBRO-CONS-RIBA
cap2.doc
98.12.11 15:29 B C:\
Matteo\LIBRO-CONS-
RIBA\cap3.doc <--
graal /usr/NFS/graal1
3
/matteo/LIBRO-CONS-
RIBA cap3.doc
98.12.11 15:29 B C:\
Matteo\LIBRO-CONS-
RIBA\cap4.doc <--
graal
/usr/NFS/graal1/matteo/L
IBRO-CONS-RIBA
cap4.doc
7
relazione2: pag. 2, pag. 3, pag. 7
Dal punto di vista
strutturale il sistema
operativo è formato da un
insieme di livelli, che
formano la cosiddetta
struttura a cipolla;
ciascun livello fornisce un
insieme di funzioni e di
servizi a partire dalle
funzioni e dai servizi
forniti dal livello
sottostante (si veda la
figura 5.1).
5
Dal punto di vista
strutturale il sistema
operativo è formato da un
insieme di livelli, che
formano la cosiddetta
struttura a cipolla;
ciascun livello fornisce un
insieme di funzioni e di
servizi a partire dalle
funzioni e dai servizi
forniti dal livello
sottostante (si veda la
figura 5.1).
8
relazione3: pag. 5, pag. 8
9 10 11
Pagine bianche
21
Il File System: Indice dei file
Con questa organizzazione l’indice conterrà il
nome dei file memorizzati
L’indice del quaderno sarà di questo tipo:
– <nome file> : numeri di pagine …
L’utente mediante l’indice accede ai vari file
Il sistema si occupa di reperire le varie pagine
22
Il File System Il sistema operativo deve fornire una visione
astratta dei file su disco e l'utente deve avere la possibilità di:– identificare ogni file con un nome (filename) astraendo
completamente dalla sua memorizzazione fisica– avere un insieme di operazioni per lavorare sui file: creare
o rimuovere un file, copiarlo, cambiargli nome, inserire informazioni in un file
– effettuare l'accesso alle informazioni mediante operazioni ad alto livello, che non tengono conto del tipo di memorizzazione (accedere ad un file memorizzato sul disco rigido oppure su un CD-ROM allo stesso modo)
23
Il File System
– avere la possibilità di strutturare un insieme di file, organizzandoli in sottoinsiemi secondo le loro caratteristiche, per avere una visione ordinata e strutturata delle informazioni sul disco
– in un sistema multi-utente, inoltre l’utente deve avere dei meccanismi per proteggere i propri file, ossia per impedire ad altri di leggerli, scriverli o cancellarli
– I moderni sistemi operativi (es. Windows) forniscono supporto per queste attività
24
Operazioni sui File Un insieme di operazioni minimale, presente in tutti i
sistemi, è il seguente:– creazione di un file– cancellazione (rimozione) di un file– copia di un file– visualizzazione del contenuto di un file ad esempio sul
video del terminale o in una finestra sul video– stampa di un file– lettura e modifica del contenuto di un file– rinomina di un file, per cambiare il nome ad un file– visualizzazione delle caratteristiche di un insieme di file
(dimensione, data di creazione e dell’ultima modifica, vincoli di protezione, ecc.)
25
Organizzazione Gerarchica dei file Il numero di file che devono essere memorizzati su
un disco può essere estremamente elevato Si ha quindi la necessità di mantenere i file in una
forma ordinata Un unico spazio (contenitore) di file è scomodo
perché le operazioni di ricerca di un file e di creazione di un nuovo file diventano onerose (non è possibile avere due file con lo stesso nome)
L'idea è quella di raggruppare i file in sottoinsiemi (seguendo magari dei criteri di tipo logico)
26
Organizzazione Gerarchica dei file Tutti i sistemi operativi forniscono operazioni per
creare delle directory Una directory è costituita da un insieme di file I nomi dei file sono locali alle directory (si possono
avere due file con lo stesso nome purché siano in due directory diverse)
In questo modo l’indice conterrà due tipi di oggetti: nomi di file e nomi di directoryrelazione1relazione2cartella-esamicartella-documenti-privatirelazione3
•Rel-esame1•Rel-esame2{
{•Elenco-Appuntamenti•Elenco-Indirizzi
27
Nomi di file e directory Costituiti da (almeno) due parti:
– nome: scelto dall’utente, sistema impone lunghezza massima (8 caratteri in DOS, 255 in Unix e Windows 95) e caratteri usabili
– estensione: separata dal nome dal carattere ‘.’, identifica il formato del file o l’applicazione che lo ha creato image1.bmp indica un file immagine in formato
bitmap testo.doc indica un documento Word
28
Nomi di Unità I sistemi sono dotati di più
unità di memoria DOS e Windows usano nomi
di unità per distinguerle In UNIX la gestione è
trasparente all’utente: utente conosce solo nome di file, e non si interessa dell’unità dove è memorizzato
29
Organizzazione Gerarchica dei file
30
Organizzazione Gerarchica dei file
Floppy da 3,5 pollici (A:)
Applicazioni
Biblioteca
Indice
Utenti
Elab_imm
Elab_suoni
Elab_testi
Narrativa-Fra
Narrativa-Ing
Narrativa-Ita
Bianchi
Photoshop.exe
Premiere.exe
Winword.exe
Pautasso
Rossi
libro1libro2libro1libro2libro3libro1libro2libro3
Questa struttura viene chiamata alberoRadice dell’alberoNodiFoglie
31
Organizzazione Gerarchica dei file Se non esiste la strutturazione in directory, tutti i file
possono essere identificati mediante il loro nome Nel caso di un’organizzazione gerarchica a più
livelli il nome non è più sufficiente ad identificare il file (nell’esempio precedente esistono diversi file con lo stesso nome)
Per individuare un file o una directory in modo univoco si deve allora specificare l'intera sequenza di directory che lo contengono, a partire dalla radice dell'albero
32
Organizzazione Gerarchica dei file Ad esempio il file libro1 di narrativa italiana è
univocamente identificato dalla sequenza:A:\Biblioteca\Narrativa-Ita\libro1
La directory Pautasso di Utenti è identificata dalla sequenza:
A:\Utenti\Pautasso Il carattere “\” (backslash) viene usato come separatore. Una sequenza di questo tipo può essere vista come il
cammino che si deve compiere per raggiungere un determinato file a partire dalla radice dell'albero, ed è chiamata pathname
33
Organizzazione Gerarchica dei file Un altro modo di individuare un file (o una
directory) è basato sul concetto di posizione In questo caso per individuare un file o una
directory in modo univoco si deve specificare l'intera sequenza di directory che lo contengono, a partire dalla posizione corrente
34
Organizzazione Gerarchica dei file
Floppy da 3,5 pollici (A:)
Applicazioni
Biblioteca
Indice
Utenti
Elab_imm
Elab_suoni
Elab_testi
Narrativa-Fra
Narrativa-Ing
Narrativa-Ita
Bianchi
Photoshop.exe
Premiere.exe
Winword.exe
Pautasso
Rossi
libro1libro2libro1libro2libro3libro1libro2libro3
Posizione corrente
35
Organizzazione Gerarchica dei file Se la posizione corrente è A:\Biblioteca, il file libro1
di narrativa italiana è univocamente identificato dalla sequenza:
Narrativa-Ita\libro1 Se la posizione corrente è A:\Utenti, la directory
Pautasso è identificata dalla sequenza:
Pautasso Per raggiungere un determinato file a partire dalla
posizione corrente si utilizza il pathname relativo
36
Organizzazione Gerarchica dei file Per organizzare gerarchicamente i file, il sistema
operativo deve fornire all'utente un insieme di operazioni sulle directory, per esempio:– creare una nuova directory
– rimuovere una directory
– ridenominare una directory
– elencare il contenuto (l'insieme di file e sotto-directory) di una directory
– copiare o spostare i file da una directory ad un'altra
37
Struttura logica e organizzazione fisica
Floppy da 3,5 pollici (A:)
Applicazioni
Biblioteca
Indice
Utenti
Elab_imm
Elab_suoni
Elab_testi
Narrativa-Fra
Narrativa-Ing
Narrativa-Ita
Bianchi
Photoshop.exe
Premiere.exe
Winword.exe
Pautasso
Rossi
libro1libro2libro1libro2libro3libro1libro2libro3
38
Organizzazione fisica
Elenco file e directoryfloppy da 3,5 pollici (A:)
Applicazioni directory ...
Biblioteca directory ...
Utenti directory ...
Index file-Word ...
Elenco file e directorydirectory Applicazioni
Elab_imm directory ...
Elab_suoni directory ...
Elab_testi directory ...
Elenco file e directorydirectory Elab_imm
Photoshop.exe program ...
Premiere.exe program ...
Elenco file e directorydirectory Elab_suoniElenco file e directorydirectory Elab_imm
Photoshop.exe program ...
Premiere.exe program ...