Sei sulla pagina 1di 88

Software e

Sistema Operativo

Riferimenti: Curtin cap. 6


Console cap. 4-5

Queste slides sono un adattamento di quelle di Luca


Anselma, cui va il mio ringraziamento 1
giovedì 31 ottobre 13
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

giovedì 31 ottobre 13
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!
3

giovedì 31 ottobre 13
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.
4

giovedì 31 ottobre 13
Il Software
• I computer moderni raggiungono questi obiettivi mediante la definizione di
macchine virtuali realizzate al di sopra della macchina hardware
reale

Utente

HW

macchina virtuale

giovedì 31 ottobre 13
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)
6

giovedì 31 ottobre 13
Macchine virtuali
• L'utente interagisce con la macchina virtuale con un
linguaggio ad alto livello (interfaccia grafica/testuale)
• La macchina virtuale traduce ogni comando
ad alto livello nell'opportuna serie di
comandi per l’hardware: astrazione
Utente
linguaggio ad
alto livello

linguaggio
HW macchina

macchina virtuale

giovedì 31 ottobre 13
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

giovedì 31 ottobre 13
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

giovedì 31 ottobre 13
Il sistema operativo
medesimo
Utente linguaggio ad Utente
alto livello

diversi
linguaggi
HW1 HW2
macchina
macchina virtuale 1 macchina virtuale 2

• 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…


• …e traduce i comandi in modo diverso, in funzione del tipo di
hardware 11

giovedì 31 ottobre 13
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

12

giovedì 31 ottobre 13
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

hardware

kernel: gestione del processore,


della memoria, dei dispositivi di I/O

12

giovedì 31 ottobre 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 driver driver


printer video modem

13

giovedì 31 ottobre 13
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)

14

giovedì 31 ottobre 13
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)
15

giovedì 31 ottobre 13
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)

16

giovedì 31 ottobre 13
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

17

giovedì 31 ottobre 13
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

18

giovedì 31 ottobre 13
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

19

giovedì 31 ottobre 13
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, …)

20

giovedì 31 ottobre 13
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

21

giovedì 31 ottobre 13
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)

22

giovedì 31 ottobre 13
Avvio dell’elaboratore
In seguito, viene caricata la prima parte del s.o.

23

giovedì 31 ottobre 13
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

24

giovedì 31 ottobre 13
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.

25

giovedì 31 ottobre 13
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?)

26

giovedì 31 ottobre 13
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)

27

giovedì 31 ottobre 13
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
28

giovedì 31 ottobre 13
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

29

giovedì 31 ottobre 13
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

30

giovedì 31 ottobre 13
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

selezionato dal s.o.

pronto in esecuzione
interrotto per lasciare la CPU a
un altro processo richiesta I/O o risorsa
I/O terminato o risorsa
disponibile in attesa
31

giovedì 31 ottobre 13
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)

32

giovedì 31 ottobre 13
Processi (esercizio)
Task Manager (o Gestione
attività)
(Ctrl+Alt+Canc) frazione di tempo che un
processo trascorre in
esecuzione nella CPU

33

giovedì 31 ottobre 13
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)

34

giovedì 31 ottobre 13
Memoria virtuale

Problema:

Come eseguire programmi


e usare dati più grandi
della memoria principale
(memoria fisica)?

35

giovedì 31 ottobre 13
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

36

giovedì 31 ottobre 13
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

37

giovedì 31 ottobre 13
Memoria virtuale
Le pagine vengono riportate
in memoria quando servono
nuovamente, eventualmente
spostandone altre
su disco

38

giovedì 31 ottobre 13
Memoria virtuale
Il s.o. traduce automaticamente gli indirizzi virtuali (usati dalle
applicazioni) in indirizzi fisici

memoria virtuale RAM

altri
programmi

hard disk

39

giovedì 31 ottobre 13
Memoria virtuale (esercizio)
1. Start / Risorse del computer

2. C:

3. Visualizzare i file nascosti (Strumenti / Opzioni cartella /


Visualizzazione / Visualizza cartelle e file nascosti)

4. pagefile.sys è il file di paging

file di paging: la
parte dell’hard
disk dedicata alla
memoria virtuale

40

giovedì 31 ottobre 13
Memoria virtuale (esercizio)
Task Manager (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

41

giovedì 31 ottobre 13
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

42

giovedì 31 ottobre 13
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

43

giovedì 31 ottobre 13
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)

44

giovedì 31 ottobre 13
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
45

giovedì 31 ottobre 13
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

46

giovedì 31 ottobre 13
Interazione testuale (esercizio)
Start/Programmi/Accessori/Prompt dei comandi

Scrivere “dir” e premere Invio per visualizzare il contenuto


della home directory

47

giovedì 31 ottobre 13
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, …

48

giovedì 31 ottobre 13
Interazione grafica
•Concetti principali
–finestra

–icona

–menu

–menu item

–pop-up menu (menu a


tendina)

–button (pulsante)

49

giovedì 31 ottobre 13
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)

50

giovedì 31 ottobre 13
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

51

giovedì 31 ottobre 13
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

52

giovedì 31 ottobre 13
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
Come risolvere questi problemi? 53

giovedì 31 ottobre 13
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)

54

giovedì 31 ottobre 13
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

55

giovedì 31 ottobre 13
Il File System
• Esempio: indice

disco fisso
VUOTA

VUOTA

VUOTA

VUOTA

VUOTA

VUOTA

VUOTA

VUOTA

VUOTA
Nota: anche
l’indice è su
disco fisso
VUOTA

VUOTA

VUOTA

VUOTA

VUOTA

VUOTA

VUOTA

VUOTA

VUOTA

56

giovedì 31 ottobre 13
VUOTA VUOTA

giovedì 31 ottobre 13
VUOTA VUOTA
• Esempio:

VUOTA VUOTA

VUOTA VUOTA

VUOTA VUOTA

VUOTA VUOTA

VUOTA VUOTA

VUOTA VUOTA

VUOTA VUOTA
Il File System

1. crea file 1

57
VUOTA file 1

giovedì 31 ottobre 13
VUOTA file 1
• Esempio:

VUOTA file 1

VUOTA VUOTA

VUOTA VUOTA

VUOTA VUOTA
• file 1: cluster 0, 1, 2

VUOTA VUOTA

VUOTA VUOTA

VUOTA VUOTA
Il File System

1. crea file 1

58
VUOTA file 1

giovedì 31 ottobre 13
VUOTA file 1
• Esempio:

VUOTA file 1

VUOTA VUOTA

VUOTA VUOTA

VUOTA VUOTA
• file 1: cluster 0, 1, 2

VUOTA VUOTA

VUOTA VUOTA

VUOTA VUOTA
Il File System

2. crea file 2

59
Il File System
• Esempio:

• file 1: cluster 0, 1, 2
• Esempio: 2. crea file 2
• file 2: cluster 3
VUOTA

VUOTA

VUOTA

VUOTA

VUOTA
file 1

file 1

file 1

file 2
VUOTA

VUOTA

VUOTA

VUOTA

VUOTA

VUOTA
VUOTA

VUOTA

VUOTA

60

giovedì 31 ottobre 13
Il File System
• Esempio:

• file 1: cluster 0, 1, 2
• Esempio: 3. modifica file 1
• file 2: cluster 3 (più lungo)
VUOTA

VUOTA

VUOTA

VUOTA

VUOTA
file 1

file 1

file 1

file 2
VUOTA

VUOTA

VUOTA

VUOTA

VUOTA

VUOTA
VUOTA

VUOTA

VUOTA

61

giovedì 31 ottobre 13
Il File System
• Esempio:

• file 1: cluster 0, 1, 2, 4
• Esempio: 3. modifica file 1
• file 2: cluster 3 (più lungo)

VUOTA

VUOTA

VUOTA

VUOTA
file 1

file 1

file 1

file 2

file 1
VUOTA

VUOTA

VUOTA

VUOTA

VUOTA

VUOTA
VUOTA

VUOTA

VUOTA

62

giovedì 31 ottobre 13
Il File System
• Esempio:

• file 1: cluster 0, 1, 2, 4
• Esempio: 4. modifica file 2
• file 2: cluster 3 (più lungo)

VUOTA

VUOTA

VUOTA

VUOTA
file 1

file 1

file 1

file 2

file 1
VUOTA

VUOTA

VUOTA

VUOTA

VUOTA

VUOTA
VUOTA

VUOTA

VUOTA

63

giovedì 31 ottobre 13
Il File System
• Esempio:

• file 1: cluster 0, 1, 2, 4
• Esempio: 4. modifica file 2
• file 2: cluster 3, 5 (più lungo)

VUOTA

VUOTA

VUOTA
file 1

file 1

file 1

file 2

file 1

file 2
VUOTA

VUOTA

VUOTA

VUOTA

VUOTA

VUOTA
VUOTA

VUOTA

VUOTA

64

giovedì 31 ottobre 13
Il File System
• Esempio:

• file 1: cluster 0, 1, 2, 4
• Esempio: 5. crea file 3
• file 2: cluster 3, 5

VUOTA

VUOTA

VUOTA
file 1

file 1

file 1

file 2

file 1

file 2
VUOTA

VUOTA

VUOTA

VUOTA

VUOTA

VUOTA
VUOTA

VUOTA

VUOTA

65

giovedì 31 ottobre 13
Il File System
• Esempio:

• file 1: cluster 0, 1, 2, 4
• Esempio: 5. crea file 3
• file 2: cluster 3, 5
• file 3: cluster 6, 7

VUOTA
file 1

file 1

file 1

file 2

file 1

file 2

file 3

file 3
VUOTA

VUOTA

VUOTA

VUOTA

VUOTA

VUOTA
VUOTA

VUOTA

VUOTA

66

giovedì 31 ottobre 13
Il File System
• Esempio:

• file 1: cluster 0, 1, 2, 4
• Esempio: 6. crea file 4
• file 2: cluster 3, 5
• file 3: cluster 6, 7

VUOTA
file 1

file 1

file 1

file 2

file 1

file 2

file 3

file 3
VUOTA

VUOTA

VUOTA

VUOTA

VUOTA

VUOTA
VUOTA

VUOTA

VUOTA

67

giovedì 31 ottobre 13
Il File System
• Esempio:

• file 1: cluster 0, 1, 2, 4
• Esempio: 6. crea file 4
• file 2: cluster 3, 5
• file 3: cluster 6, 7
• file 4: cluster 8, 9
file 1

file 1

file 1

file 2

file 1

file 2

file 3

file 3

file 4
VUOTA

VUOTA

VUOTA

VUOTA

VUOTA
VUOTA

VUOTA

VUOTA
file 4

68

giovedì 31 ottobre 13
Il File System
• Esempio:

• file 1: cluster 0, 1, 2, 4
• Esempio: 7. cancella file 3
• file 2: cluster 3, 5
• file 3: cluster 6, 7
• file 4: cluster 8, 9
file 1

file 1

file 1

file 2

file 1

file 2

file 3

file 3

file 4
VUOTA

VUOTA

VUOTA

VUOTA

VUOTA
VUOTA

VUOTA

VUOTA
file 4

69

giovedì 31 ottobre 13
Il File System
• Esempio:

• file 1: cluster 0, 1, 2, 4
• Esempio: 7. cancella file 3
• file 2: cluster 3, 5 il file 3 viene eliminato
solo dall’indice; i cluster 6
• file 3: cluster 6, 7 e 7 verranno sovrascritti
alla prima occasione
• file 4: cluster 8, 9
file 1

file 1

file 1

file 2

file 1

file 2

file 4
file 3

file 3
VUOTA

VUOTA

VUOTA

VUOTA

VUOTA
VUOTA

VUOTA

VUOTA
file 4

70

giovedì 31 ottobre 13
Il File System
• Esempio:

• file 1: cluster 0, 1, 2, 4 Notare la


• Esempio: frammentazione: i
• file 2: cluster 3, 5
cluster di alcuni file
• file 3: cluster 6, 7 non sono contigui
• file 4: cluster 8, 9
file 1

file 1

file 1

file 2

file 1

file 2

file 4
file 3

file 3
VUOTA

VUOTA

VUOTA

VUOTA

VUOTA
VUOTA

VUOTA

VUOTA
file 4

71

giovedì 31 ottobre 13
Il File System: esercizio
Per deframmentare:
Start / Programmi / Accessori / Utilità di sistema /
Utilità di deframmentazione dischi

72

giovedì 31 ottobre 13
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à 73

giovedì 31 ottobre 13
Il File System
• Tutti i sistemi operativi forniscono i seguenti comandi per
operare sui file:
– creazione

– cancellazione

– copia

– visualizzazione

– stampa

– lettura e modifica

– rinomina 74

giovedì 31 ottobre 13
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

75

giovedì 31 ottobre 13
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

76

giovedì 31 ottobre 13
Come chiamare file e

• 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


77

giovedì 31 ottobre 13
Come chiamare file e
• 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

78

giovedì 31 ottobre 13
Organizzazione gerarchica dei file

79

giovedì 31 ottobre 13
Organizzazione gerarchica dei file
Struttura ad albero Corsi
Inglese Appunti.txt
Dispense.pdf
(rovesciato, come Francese

l’albero genealogico) Tedesco


Spagnolo

Elab_imm coreldrw.exe
Disco rimovibile Applicazioni
(E:) Elab_suoni photopnt.exe

Elab_testi Winword.exe

radice libro1
Francese libro2
libro1
Libri
Inglese libro2
libro3
libro1
Appunti.txt Italiano libro2
libro3 80

giovedì 31 ottobre 13
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) 81

giovedì 31 ottobre 13
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


82

giovedì 31 ottobre 13
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

83

giovedì 31 ottobre 13
Organizzazione gerarchica dei file
Inglese Appunti.txt
Corsi Dispense.pdf
Francese
Tedesco
Spagnolo

Elab_imm coreldrw.exe
Disco rimovibile Applicazioni
(E:) Elab_suoni photopnt.exe

posizione Elab_testi Winword.exe


corrente
libro1
Francese libro2
libro1
Libri
Inglese libro2
libro3
libro1
Appunti.txt Italiano libro2
libro3 84

giovedì 31 ottobre 13
Organizzazione gerarchica dei file

Esempi :

• Posizione corrente: Libri; il file libro1 in lingua italiana è identificato da

Italiano\libro1

85

giovedì 31 ottobre 13
Organizzazione gerarchica dei file
Inglese Appunti.txt
Corsi Dispense.pdf
Francese
Tedesco
posizione Spagnolo

corrente
Elab_imm coreldrw.exe
Disco rimovibile Applicazioni
(E:) Elab_suoni photopnt.exe

Elab_testi Winword.exe

libro1
Francese libro2
libro1
Libri
Inglese libro2
libro3
libro1
Appunti.txt Italiano libro2
libro3 86

giovedì 31 ottobre 13
Organizzazione gerarchica dei file

Esempi :

Posizione corrente: Inglese; il file Dispense.pdf è identificato da

Dispense.pdf

• Un file è identificato dal pathname relativo

87

giovedì 31 ottobre 13
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

88

giovedì 31 ottobre 13

Potrebbero piacerti anche