Versione:
11/10/13 1
Software e Sistema Operativo
Riferimenti: Curtin cap. 6 Console cap. 4-5
2
Il Software
• L’hardware da solo è soltanto un insieme di ferro, plastica e silicio e non è sufficiente per il funzionamento dell’elaboratore
• Occorre utilizzare il software:
– un insieme di programmi che permettono di trasformare un insieme di circuiti elettronici in un oggetto in grado di svolgere funzioni di varia natura
• I computer sono programmabili:
possono svolgere compiti diversi in base a istruzioni contenute nei programmi
3
Il Software
• L’utilizzo diretto dell’hardware è complicato:
– l’utente dovrebbe sapere programmare – il programmatore dovrebbe conoscere
l’hardware e il relativo linguaggio macchina – ogni programma dovrebbe essere scritto
come sequenza di bit
– modifiche hardware richiederebbero la riscrittura (parziale) del programma
Non accettabile!
4
Il Software
Occorre fornire all’utente un meccanismo per:
– astrarre dall’organizzazione fisica per:
• usare nello stesso modo (o in modo simile) macchine (hardware) diverse
• avere un semplice linguaggio di interazione
– avere un insieme di programmi applicativi per svolgere diversi compiti: elaborare testi, navigare in Internet, ecc.
Il Software
• I computer moderni raggiungono questi obiettivi mediante la definizione di macchine virtuali realizzate al di sopra della macchina hardware reale
macchina virtuale HW Utente
Macchine virtuali
• La macchina virtuale:
– consiste in un livello software creato sull’hardware
– fornisce le funzionalità desiderate ed è facile da utilizzare
– è virtuale in quanto non esiste fisicamente, ma viene realizzata mediante il software (sistema operativo o software di base)
7
Macchine virtuali
• L'utente interagisce con la macchina virtuale con un linguaggio ad alto livello (interfaccia grafica/testuale)
macchina virtuale HW Utente
linguaggio ad alto livello linguaggio macchina
• La macchina virtuale traduce ogni comando ad alto livello nell'opportuna serie di comandi per l’hardware: astrazione
8
Il sistema operativo
Sistema Operativo: insieme di programmi che interagiscono e cooperano tra di loro per:
• gestire efficientemente il computer e le sue periferiche
• creare un ambiente virtuale per facilitare l'interazione uomo-macchina
9
Il sistema operativo
Esempio: stampa di un file che si chiama
“Documento”
A livello fisico questa operazione è complessa e richiede operazioni coordinate dalla CPU
Per fortuna, il s.o. fornisce all'utente un comando di stampa:
print Documento
10
Il sistema operativo
Il s.o. esegue un comando seguendo i seguenti passi:
1. verifica se si tratta di un comando valido
2. lo traduce per la macchina fisica 3. eseguito il comando,
a) fornisce un riscontro all’utente e b) si pone in attesa di un nuovo comando
da parte dell’utente
Il sistema operativo
macchina virtuale 1 HW1 Utente
macchina virtuale 2 HW2 Utente medesimo
linguaggio ad alto livello
diversi linguaggi macchina
• Macchine fisiche diverse possono essere utilizzate in modo simile costruendo al di sopra macchine virtuali
• Ogni m. v. fornisce il medesimo linguaggio ad alto livello…
Struttura a livelli del s.o.
• Il s.o. ha una struttura a cipolla, ogni livello:
– “astrae” il livello inferiore, nascondendone la complessità e
– fornisce servizi al livello superiore
• In questo modo si può usare il computer senza conoscere i dettagli dei dispositivi elettronici
kernel: gestione del processore, della memoria, dei dispositivi di I/O
hardware
…
…
13
S.O. e dispositivi di I/O
• Ogni dispositivo di I/O collegato al computer è gestito da un modulo del s.o. chiamato driver
• Ogni volta che si aggiunge un nuovo dispositivo, si deve installare il driver corrispondente all’interno del s.o.
• Nota:
Plug&Play kernel
driver printer driver
video driver modem
14
Funzioni svolte dal sistema operativo (1)
• Accensione e configurazione della macchina (bootstrap)
• Gestione del processore
• Gestione della memoria (principale e virtuale)
• Linguaggio ad alto livello per l’interazione con l’utente
• Gestione e accesso alle informazioni su memoria secondaria (File system)
15
Funzioni svolte dal sistema operativo (2)
• Gestione e uso ottimale delle risorse di input/output (dischi, stampanti, …)
• Supporto per la comunicazione tra elaboratori
• Supporto per i programmi applicativi (installazione, accesso alle risorse di sistema)
• Ambienti di programmazione (ad es.
Java, C++, Basic, COBOL)
16
Funzioni svolte dal sistema operativo (1)
• Accensione e configurazione della macchina (bootstrap)
• Gestione del processore
• Gestione della memoria (principale e virtuale)
• Linguaggio ad alto livello per l’interazione con l’utente
• Gestione e accesso alle informazioni su memoria secondaria (File system)
Il bootstrap
Bootstrap = Avvio dell’elaboratore Primo problema:
• La CPU esegue esclusivamente programmi in memoria principale
• RAM volatile à vuota quando si accende il computer
Come fare?
Prima soluzione:
Mettere i programmi in memoria secondaria
Il bootstrap
Secondo problema:
• Per caricare i programmi da memoria secondaria usiamo il file system (cioè il sistema operativo)
• Ma il s.o. risiede in RAM à RAM volatile à vuota quando si accende il computer Come fare?
Seconda soluzione:
Usiamo un piccolo programma (BIOS), molto semplice, che ha il compito di caricare (la prima parte de) il s.o. da memoria secondaria
19
Il bootstrap
Terzo problema:
• La CPU esegue esclusivamente programmi in memoria principale
• RAM volatile à vuota quando si accende il computer
Come fare?
Terza soluzione:
Memorizziamo il BIOS in una parte della memoria principale non volatile: la ROM
20
Il bootstrap
Dubbio:
Non possiamo memorizzare direttamente il s.o. in ROM?
Risposta:
No, perché la ROM è a sola lettura: ha senso memorizzarvi esclusivamente programmi/dati che non è necessario cambiare
Applicativi e s.o. devono potere essere variati e aggiornati (upgrade, patch, …)
21
Il bootstrap
Riassumendo:
Bootstrap: all’accensione della macchina, un programma (il BIOS) in ROM cerca sulla
memoria secondaria il s.o. e ne carica una parte in RAM
22
Il bootstrap
• Ordine tipico di ricerca:
1. Floppy disk 2. CD/DVD 3. Hard Disk
• Questo ordine è utile per installare un s.o. o per live cd (un live cd contiene un s.o.
che non necessita di installazione su hard disk)
Avvio dell’elaboratore
In seguito, viene caricata la prima parte del s.o.
Avvio dell’elaboratore
• La prima parte del s.o. che viene caricata comprende (in generale):
– i programmi per gestire processi e CPU – i programmi per gestire la memoria – i programmi per gestire periferiche e I/O – i programmi per gestire il File System – il programma che crea l'interfaccia
(grafica o testuale) utente
25
Avvio dell’elaboratore
• Parte dei programmi del s.o. devono essere mantenuti sempre in RAM per essere sempre pronti per l’esecuzione ⇒ una porzione della RAM è riservata
a programmi e dati del s.o.
26
Avvio dell’elaboratore: l’I/O
• All’avvio, vengono identificati tutti i dispositivi di memoria secondaria e tutte le periferiche e vengono avviati i relativi programmi di gestione
(driver)
• Alcuni sistemi verificano anche lo stato delle risorse hardware, per esempio lo stato dei dischi (presenza di errori nel file system?)
27
Funzioni svolte dal sistema operativo (1)
• Accensione e configurazione della macchina (bootstrap)
• Gestione del processore
• Gestione della memoria (principale e virtuale)
• Linguaggio ad alto livello per l’interazione con l’utente
• Gestione e accesso alle informazioni su memoria secondaria (File system)
28
Multitasking
• I moderni s.o. sono multitasking, cioè è possibile eseguire più programmi allo stesso tempo (ad es. scaricare un file mentre si scrive un documento)
• Problema: spesso gli elaboratori hanno una unica CPU. Come possono eseguire più programmi contemporaneamente?
• Soluzione: il s.o. alterna i programmi assegnando la CPU a turno è
1. In ogni istante un solo programma è eseguito dalla CPU
2. Se l’alternanza è frequente, si ha l’impressione che i programmi vengano eseguiti
contemporaneamente
Processi (esercizio)
Windows XP è multitasking:
per visualizzare i processi
premere contemporaneamente i tasti Ctrl+Alt +Canc e andare su
Task Manager (o Gestione attività) /Processi
processo = programma in esecuzione
Processi
• I dispositivi di I/O sono molto più lenti della CPU
• Problema: cosa succede se un processo effettua un’istruzione di I/O?
• La CPU rimarrebbe inattiva fino a che il dispositivo non ha terminato à
inefficienza!
• Soluzione: multitasking
Il S.O. assegna la CPU a un altro processo e la restituisce al primo quando l’I/O è terminato
31
Processi
• Un processo può trovarsi in uno dei tre stati:
– in esecuzione, cioè è in esecuzione nella CPU (à max un processo in esecuzione per ogni CPU) – in attesa, cioè attende che un’operazione di I/
O termini (o qualche altro evento esterno si verifichi) – pronto, cioè può andare in esecuzione, ma la
CPU è occupata ad eseguire un altro processo
pronto in esecuzione
in attesa selezionato dal s.o.
richiesta I/O o risorsa I/O terminato o
risorsa disponibile
interrotto per lasciare la CPU a un altro processo
32
Processi
• Il s.o. ha il compito di scegliere quale tra i processi pronti mandare in esecuzione in modo da usare l’elaboratore in modo efficiente (no sprechi) ed efficace (per es. con tempi di attesa limitati)
33
Processi (esercizio)
Gestione attività
(Ctrl+Alt+Canc) frazione di tempo che un processo trascorre in esecuzione nella
CPU
34
Funzioni svolte dal sistema operativo (1)
• Accensione e configurazione della macchina (bootstrap)
• Gestione del processore
• Gestione della memoria (principale e virtuale)
• Linguaggio ad alto livello per l’interazione con l’utente
• Gestione e accesso alle informazioni su memoria secondaria (File system)
Memoria virtuale
Problema:
Come eseguire programmi e usare dati più grandi della memoria principale (memoria fisica)?
Memoria virtuale
• Tecnica di gestione della memoria utilizzata da tutti i sistemi operativi moderni
• Permette di “fare credere” ai singoli programmi di avere a disposizione una quantità di memoria più grande di quella effettivamente installata e contigua
• Per questo si chiama memoria virtuale
37
Memoria virtuale
• Non è necessario mantenere sempre in memoria tutti i programmi in
esecuzione
• Le parti (pagine) dei programmi usate meno spesso vengono “spostate” su hard disk
38
Memoria virtuale
Le pagine vengono riportate in memoria quando servono nuovamente,
eventualmente spostandone altre su disco
39
Memoria virtuale
Il s.o. traduce automaticamente gli indirizzi virtuali (usati dalle applicazioni) in indirizzi fisici
memoria virtuale RAM
altri programmi
hard disk
40
Memoria virtuale (esercizio)
1. Start / Computer 2. C:
3. Visualizzare i file nascosti (Organizza / Opzioni cartella e ricerca / Visualizzazione / Visualizza cartelle, file e unità nascosti)
4. pagefile.sys è il file di paging file di paging: la
parte dell’hard disk dedicata alla memoria virtuale
Memoria virtuale (esercizio)
Gestione attività (Ctrl+Alt+Canc) / Prestazioni RAM (512 MB)
memoria virtuale usata dal S.O. e dalle applicazioni
(Totale) e massima utilizzabile (Limite), cioè
RAM + file di paging
Memoria virtuale
• Cosa succede se si utilizza frequentemente una quantità di memoria virtuale molto più grande della memoria fisica?
• Thrashing(con la ‘h’, to thrash = dimenarsi):
il s.o. impiega più tempo a trasferire le pagine da e su disco che a effettuare lavoro utile
• Sintomo: l’hard disk viene usato
intensamente e il computer è inutilizzabile
• Soluzione: Aumentare la quantità di RAM oppure usare meno programmi
contemporaneamente
43
Memoria virtuale
• Dato che la RAM è molto più veloce dell’hard disk, aumentare la quantità di RAM può migliorare le prestazioni del computer, perché il s.o. dovrà fare ricorso meno frequentemente all’hard disk per implementare la memoria virtuale
44
Funzioni svolte dal sistema operativo (1)
• Accensione e configurazione della macchina (bootstrap)
• Gestione del processore
• Gestione della memoria (principale e virtuale)
• Linguaggio ad alto livello per l’interazione con l’utente
• Gestione e accesso alle informazioni su memoria secondaria (File system)
45
Il sistema operativo
• Due tipi di interazione utente/
sistema operativo:
– interazione testuale
• MS-DOS, Mac OS X, Linux – interazione grafica
• Mac OS X, Linux
• Windows
46
Interazione testuale
• Basata su comandi scritti tramite tastiera
• L’interfaccia è più rapida da usare per utenti esperti
• Richiede poca memoria principale
• Script (programmi costituiti da comandi)
• Molto usata nei sistemi Unix-like
Interazione testuale (esercizio)
Start/Tutti i programmi/Accessori/
Prompt dei comandi
Scrivere “dir” e premere Invio per visualizzare il contenuto della home directory
Interazione grafica
• Basata su interfacce grafiche che presentano funzionalità comuni
– ai programmi sono associate finestre – interazione “point and click”
– tecnologia WYSIWYG
(What You See Is What You Get) – comandi uniformi:
es. Cancellare “oggetto” ⇒ taglia, Copiare “oggetto” ⇒ copia l’“oggetto” può essere testo, file, immagini, …
49
Interazione grafica
• Concetti principali
– finestra – icona – menu – menu item – pop-up menu
(menu a tendina) – button (pulsante) – toolbar (barra
degli strumenti) – necessitano del
mouse
50
Funzioni svolte dal sistema operativo (1)
• Accensione e configurazione della macchina (bootstrap)
• Gestione del processore
• Gestione della memoria (principale e virtuale)
• Linguaggio ad alto livello per l’interazione con l’utente
• Gestione e accesso alle informazioni su memoria secondaria (File
system)
51
Il File System
• File System:
parte del S.O. che si occupa di gestire e strutturare le informazioni
memorizzate su supporti di memoria secondaria
(ad es. su hard disk, CD, DVD…)
• Operazioni di base supportate dal File System sui dati memorizzati: lettura/
scrittura, cancellazione, modifica, copia
52
Il File System
• I dati della memoria secondaria vengono strutturati e gestiti mediante l’organizzazione in file
• I file sono utilizzati per la memorizzazione di
– programmi(del sistema, dell’utente) – dati
Il File System
• Si può immaginare il disco fisso
come un quaderno con tante pagine su cui l’utente scrive varie relazioni (file)
Si noti che:
• quando si cancella un file, rimangono pagine “vuote”
• quando si modifica un file,
la nuova versione potrebbe essere più corta o più lunga:
– se più corta: rimangono pagine vuote – se più lunga: la modifica potrebbe essere
impossibile (perché c’è un file contiguo) Come risolvere questi problemi?
Il File System
Soluzione: utilizzo di un indice:
• le pagine vengono numerate (come per i libri)
• l’indice contiene - nell’ordine - i numeri delle pagine dei file
Vantaggi:
• le pagine possono essere aggiunte, spostate, cancellate
senza sprechi di spazio,
senza limitazioni di dimensioni dei file (basta avere pagine libere)
55
Il File System
• L’indice è memorizzato sul dispositivo di mem. secondaria
• Contiene i nomi dei file e le pagine (cluster) associate
• L’utente può conoscere i nomi dei file memorizzati leggendo l’indice
• Il file system usa l’indice per:
– reperire i cluster che compongono i file e
– trovare lo spazio libero per nuovi file
56
Il File System
• Esempio: indice
disco fisso
VUOTA VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA VUOTA VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
Nota:
anche l’indice è su disco fisso
57
Il File System
• Esempio:
VUOTA VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA VUOTA VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
1. crea file 1
58
Il File System
• Esempio:
• file 1: cluster 0, 1, 2
1. crea file 1
VUOTA VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
file 1 file 1 file 1
VUOTA VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
Il File System
• Esempio:
• file 1: cluster 0, 1, 2
2. crea file 2
TA TA
TA
TA
TA
TA
TA
TA
file 1 file 1 file 1
TA VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
Il File System
• Esempio:
• file 1: cluster 0, 1, 2
• file 2: cluster 3 2. crea file 2
TA TA
TA
TA
TA
TA
TA
TA
file 1 file 1 file 1 file 2
TA VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
61
Il File System
• Esempio:
• file 1: cluster 0, 1, 2
• file 2: cluster 3 3. modifica file 1 (più lungo)
VUOTA VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
file 1 file 1 file 1 file 2
VUOTA VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
62
Il File System
• Esempio:
• file 1: cluster 0, 1, 2, 4
• file 2: cluster 3 3. modifica file 1 (più lungo)
VUOTA VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
file 1 file 1 file 1 file 1
file 2
VUOTA VUOTA
VUOTA
VUOTA
VUOTA
63
Il File System
• Esempio:
• file 1: cluster 0, 1, 2, 4
• file 2: cluster 3 4. modifica file 2 (più lungo)
VUOTA VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
file 1 file 1 file 1 file 1
file 2
VUOTA VUOTA
VUOTA
VUOTA
VUOTA
64
Il File System
• Esempio:
• file 1: cluster 0, 1, 2, 4
• file 2: cluster 3, 5 4. modifica file 2 (più lungo)
VUOTA VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
file 1 file 1 file 1 file 1
file 2 file 2
VUOTA VUOTA
VUOTA
VUOTA
Il File System
• Esempio:
• file 1: cluster 0, 1, 2, 4
• file 2: cluster 3, 5 5. crea file 3
VUOTA VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
file 1 file 1 file 1 file 1
file 2 file 2
VUOTA VUOTA
VUOTA
VUOTA
Il File System
• Esempio:
• file 1: cluster 0, 1, 2, 4
• file 2: cluster 3, 5
• file 3: cluster 6, 7
5. crea file 3
VUOTA VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
file 1 file 1 file 1 file 1
file 2 file 2 file 3
file 3
VUOTA VUOTA
67
Il File System
• Esempio:
• file 1: cluster 0, 1, 2, 4
• file 2: cluster 3, 5
• file 3: cluster 6, 7
6. crea file 4
VUOTA VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
file 1 file 1 file 1 file 1
file 2 file 2 file 3
file 3
VUOTA VUOTA
68
Il File System
• Esempio:
• file 1: cluster 0, 1, 2, 4
• file 2: cluster 3, 5
• file 3: cluster 6, 7
• file 4: cluster 8, 9
6. crea file 4
VUOTA VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
file 1 file 1 file 1 file 1
file 2 file 2 file 4
file 4 file 3
file 3
69
Il File System
• Esempio:
• file 1: cluster 0, 1, 2, 4
• file 2: cluster 3, 5
• file 3: cluster 6, 7
• file 4: cluster 8, 9
7. cancella file 3
VUOTA VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
file 1 file 1 file 1 file 1
file 2 file 2 file 4
file 4 file 3
file 3
70
Il File System
• Esempio:
• file 1: cluster 0, 1, 2, 4
• file 2: cluster 3, 5
• file 3: cluster 6, 7
• file 4: cluster 8, 9
7. cancella file 3
VUOTA VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
VUOTA
file 1 file 1 file 1 file 1
file 2 file 2 file 4
file 4 file 3file 3
il file 3 viene eliminato solo dall’indice; i cluster 6 e 7 verranno sovrascritti alla
prima occasione
Il File System
• Esempio:
• file 1: cluster 0, 1, 2, 4
• file 2: cluster 3, 5
• file 3: cluster 6, 7
• file 4: cluster 8, 9
TA TA
TA
TA
TA
TA
TA
TA
Notare la frammentazione: i
cluster di alcuni file non sono contigui
file 1 file 1 file 1 file 1
file 2 file 2 file 4
le 4 file 3file 3
Per deframmentare:
Start / Tutti i programmi / Accessori / Utilità di sistema / Utilità di deframmentazione dischi
Il File System: esercizio
73
Il File System
Il file system deve fornire una visione astratta dei file, consentendo all’utente di:
• dare un nome ai file (filename)
• manipolare i file (operazioni): creare, cancellare, copiare, rinominare, modificare
• accedere alle informazioni indipendentemente dal supporto fisico (vedere file su hard disk e su CD allo stesso modo)
• strutturare i file (file con caratteristiche comuni possono essere ‘raggruppati’)
• proteggere (da lettura, scrittura, cancellazione) i file di utenti diversi
I moderni s.o. (es. Windows) forniscono queste
funzionalità 74
Il File System
• Tutti i sistemi operativi forniscono i seguenti comandi per operare sui file:
– creazione – cancellazione – copia
– visualizzazione – stampa
– lettura e modifica – rinomina
– visualizzazione delle caratteristiche di un insieme di file (dimensione, data di creazione e di ultima modifica, vincoli di protezione, tipo, ...)
75
Organizzazione gerarchica dei file
• Il numero di file memorizzati su disco può essere estremamente elevato
• Un unico “contenitore” di file è scomodo:
– per la ricerca di un file (‘Chissà come si chiama?’) – per la creazione di un nuovo file (non si possono
avere due file con lo stesso nome)
• Il s.o. deve fornire all’utente la possibilità di dare una struttura organizzata ai file
• Idea: raggruppare i file, consentendo all’utente di seguire criteri di tipo logico
76
Organizzazione gerarchica dei file
• directory (o cartella): gruppo di file (e di altre directory)
il s.o. mette a disposizione comandi per creare directory
• Nomi dei file locali alle directory
ok avere file con lo stesso nome in directory diverse
Come chiamare file e directory
• I nomi di file in genere hanno due parti:
– nome: scelto dall’utente, il sistema impone regole sulla lunghezza massima e sui caratteri usabili
(ad es. non permessi i caratteri *, ?, /, \, <, >, …) – estensione: separata dal nome con ‘.’,
identifica il formato e/o l’applicazione che lo ha creato
• image1.jpg : un file immagine in formato JPEG
• tesi.doc : un documento Word
• tabella.xls : un foglio Excel
Come chiamare file e directory
• Quando si rinomina un file, bisogna prestare attenzione all’estensione, per non perdere l’associazione all’applicativo
• Se, ad es., “dimentico” l’estensione .xls, Windows potrebbe non “sapere” più che il documento è un foglio elettronico e quale applicativo usare per aprire il file
79
Organizzazione gerarchica dei file
80
Organizzazione gerarchica dei file
Disco
rimovibile (E:) Applicazioni
Libri
Appunti.txt Corsi
Elab_imm
Elab_suoni
Elab_testi
Francese
Inglese
Italiano Inglese
coreldrw.exe
photopnt.exe
Winword.exe Francese
Tedesco
libro1 libro2 libro1 libro2 libro3 libro1 libro2 libro3 Spagnolo
Appunti.txt Dispense.pdf
radice Struttura ad albero (rovesciato, come l’albero genealogico)
81
Organizzazione gerarchica dei file
Naming dei file:
• senza le directory, sarebbe sufficiente il nome per identificare un file
• con un’organizzazione gerarchica a più livelli, non solo non è sufficiente il nome, ma neanche la directory in cui il file è contenuto.
Infatti possono esistere file e directory diversi con lo stesso nome (se contenuti in directory diverse)
• Individuazione file o directory in modo univoco: sequenza di directory che lo
contengono, dalla radice (pathname assoluto) 82
Organizzazione gerarchica dei file
Esempi :
• il file libro1 in lingua italiana è identificato da
E:\Libri\Italiano\libro1
• la directory Inglese di Corsi è identificata da
E:\Corsi\Inglese
• “\” (backslash) è il separatore
(in Unix, Linux e Mac OS X si usa “/” (slash))
• Un file è identificato dal pathname
Organizzazione gerarchica dei file
In alternativa, si può usare il concetto di posizione corrente:
• Per identificare un file o una directory (in modo univoco),
si specifica la sequenza di directory che lo (la) contengono, a partire dalla posizione corrente
Organizzazione gerarchica dei file
Disco
rimovibile (E:) Applicazioni
Libri Corsi
Elab_imm
Elab_suoni
Elab_testi
Francese
Inglese Inglese
coreldrw.exe
photopnt.exe
Winword.exe Francese
Tedesco
libro1 libro2 libro1 libro2 libro3 Spagnolo
Appunti.txt Dispense.pdf
posizione corrente
85
Organizzazione gerarchica dei file
Esempi :
• Posizione corrente: Libri; il file libro1 in lingua italiana è identificato da
Italiano\libro1
86
Organizzazione gerarchica dei file
Disco
rimovibile (E:) Applicazioni
Libri
Appunti.txt Corsi
Elab_imm
Elab_suoni
Elab_testi
Francese
Inglese
Italiano Inglese
coreldrw.exe
photopnt.exe
Winword.exe Francese
Tedesco
libro1 libro2 libro1 libro2 libro3 libro1 libro2 libro3 Spagnolo
Appunti.txt Dispense.pdf
posizione corrente
87
Organizzazione gerarchica dei file
Esempi :
Posizione corrente: Inglese; il file Dispense.pdf è identificato da
Dispense.pdf
• Un file è identificato dal pathname relativo
88
Organizzazione gerarchica dei file
• Per organizzare gerarchicamente i file in directory e sottodirectory, il s.o. fornisce alcune operazioni. Per es.:
– creare una nuova directory – cancellare una directory – rinominare una directory
– elencare il contenuto (l’insieme dei file e sottodirectory) di una directory
– spostare la directory stessa o parte del suo contenuto
– copiare il contenuto