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

1
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
2
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
3
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
4
Esempio
dat
dat
BUFFER
date
listener
Monitor
dat directory manager
file manager
driver
dat dat dat dat dat terminal
disk driver
BUFFER
Disco rigido
148.608.043.200.010
clock
Tastiera
Ogni carattere dato in input dalla tastiera viene
ricevuto dal terminal driver che lo invia al monitor per
la visualizzazione
5
Esempio
date<cr>
BUFFER
date
listener
directory manager
file manager
terminal driver
disk driver
Monitor
date<cr>
Disco rigido
148.608.043.200.020
BUFFER
Tastiera
Quando viene immesso il carattere Enter <cr> il
terminal driver passa la stringa date al programma
listener che interpreta il comando
6
Esempio
BUFFER
date
listener
directory manager
file manager
terminal driver
disk driver
Monitor
Disco rigido
148.608.043.200.032
BUFFER
Tastiera
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
7
Esempio
BUFFER
date
listener
directory manager
file manager
terminal driver
disk driver
Monitor
Disco rigido
148.608.043.200.045
BUFFER
Tastiera
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
8
Esempio
BUFFER
date
listener
directory manager
file manager
terminal driver
disk driver
Monitor
BUFFER
Tastiera
Disco rigido
148.608.043.200.101
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
9
Esempio
martedì 7
marzo 2000
BUFFER
date
listener
directory manager
file manager
terminal driver
disk driver
Monitor
BUFFER
Tastiera
Disco rigido
148.608.043.200.104
Il programma date tramite il terminal driver visualizza
sul monitor la data
10
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.
11
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
12
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
13
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
14
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
Kernel
Driver Driver
Driver
Stampante Video Modem
15
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
16
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
17
Il File System
Problemi:
 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 ?
18
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
19
Il File System
Esempio:
relazione1: pag. 1, pag. 4, pag. 6
relazione2: pag. 2, pag. 3, pag. 7
relazione3: pag. 5, pag. 8
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).
1
98.12.11 15:29 B
C:\Matteo\LIBROCONS-RIBA\cap1.doc
<-- graal
/usr/NFS/graal1/matte
o/LIBRO-CONS-RIBA
cap1.doc
98.12.11 15:29 B
C:\Matteo\LIBRO
2
-CONSRIBA\cap2.doc <-graal
/usr/NFS/graal1/matte
o/LIBRO-CONS-RIBA
cap2.doc
98.12.11 15:29 B
C:\Matteo\LIBROCONS-RIBA\cap3.doc
<-- graal
/usr/NFS/graal1
3
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
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
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
6
/matteo/LIBROCONS-RIBA cap3.doc
98.12.11 15:29 B
C:\Matteo\LIBROCONS-RIBA\cap4.doc
<-- graal
/usr/NFS/graal1/matte
o/LIBRO-CONS-RIBA
cap4.doc
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).
8
9
10
11
Pagine bianche
20
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
21
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)
22
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à
23
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.)
24
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)
25
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 directory
relazione1
relazione2
cartella-esami
cartella-documenti-privati
relazione3
{
•Rel-esame1
•Rel-esame2
•Elenco-Appuntamenti
•Elenco-Indirizzi
{
26
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
27
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

28
Organizzazione Gerarchica dei file
29
Organizzazione Gerarchica dei file
Applicazioni
Floppy da 3,5
pollici (A:)
Elab_imm
Photoshop.exe
Elab_suoni
Premiere.exe
Elab_testi
Winword.exe
Narrativa-Fra
Biblioteca
Narrativa-Ing
Narrativa-Ita
libro1
libro2
libro1
libro2
libro3
libro1
libro2
libro3
Bianchi
Utenti
Pautasso
Indice
Radice
Questa
struttura viene
Foglie dell’albero
Nodi
chiamata albero
Rossi
30
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
31
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
32
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

33
Organizzazione Gerarchica dei file
Applicazioni
Floppy da 3,5
pollici (A:)
Elab_imm
Photoshop.exe
Elab_suoni
Premiere.exe
Elab_testi
Winword.exe
Narrativa-Fra
Biblioteca
Narrativa-Ing
Narrativa-Ita
libro1
libro2
libro1
libro2
libro3
libro1
libro2
libro3
Bianchi
Utenti
Pautasso
Indice
Posizione corrente
Rossi
34
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
35
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
36
Struttura logica e organizzazione fisica
Applicazioni
Floppy da 3,5
pollici (A:)
Elab_imm
Photoshop.exe
Elab_suoni
Premiere.exe
Elab_testi
Winword.exe
Narrativa-Fra
Biblioteca
Narrativa-Ing
Narrativa-Ita
libro1
libro2
libro1
libro2
libro3
libro1
libro2
libro3
Bianchi
Utenti
Pautasso
Indice
Rossi
37
Organizzazione fisica
Elenco
Elenco file
file ee directory
directory
directory
floppy daElab_imm
3,5 pollici (A:)
Applicazioni
directory
Elab_suoni
Photoshop.exe
Applicazionidirectory
directory
program
Elab_imm
... ...
...
Premiere.exe
Biblioteca directory
program
...... ...
Elab_suoni
directory
Utenti directory
... ...
Elab_testi
directory
Index file-Word ...
38
Scarica

Lezione del 7-3-2000 - Dipartimento di Informatica