1 file. 2 memorizzazione in memoria principale strutture dati: interi, reali, array, liste,......
TRANSCRIPT
![Page 1: 1 File. 2 Memorizzazione In memoria principale Strutture dati: interi, reali, array, liste,... Durante lesecuzione di un programma In memoria secondaria](https://reader036.vdocumenti.com/reader036/viewer/2022062512/5542eb4f497959361e8bf2dc/html5/thumbnails/1.jpg)
1
File
![Page 2: 1 File. 2 Memorizzazione In memoria principale Strutture dati: interi, reali, array, liste,... Durante lesecuzione di un programma In memoria secondaria](https://reader036.vdocumenti.com/reader036/viewer/2022062512/5542eb4f497959361e8bf2dc/html5/thumbnails/2.jpg)
2
Memorizzazione
In memoria principaleStrutture dati: interi, reali, array, liste, ...Durante l’esecuzione di un programma
In memoria secondaria file
![Page 3: 1 File. 2 Memorizzazione In memoria principale Strutture dati: interi, reali, array, liste,... Durante lesecuzione di un programma In memoria secondaria](https://reader036.vdocumenti.com/reader036/viewer/2022062512/5542eb4f497959361e8bf2dc/html5/thumbnails/3.jpg)
3
Record logici e fisici
Un file e’ suddiviso in record logici Es.: file con i dati del persnale Un record per ogni dipendente Vari campi in ogni record: nome, indirizzo, ...
Memorizzato in memoria secondaria in pezzi (record fisici) Es.: settori di un disco
Lettura e scrittura di record fisici, anche se il programma chiede di leggere o scrivere un solo record logico
![Page 4: 1 File. 2 Memorizzazione In memoria principale Strutture dati: interi, reali, array, liste,... Durante lesecuzione di un programma In memoria secondaria](https://reader036.vdocumenti.com/reader036/viewer/2022062512/5542eb4f497959361e8bf2dc/html5/thumbnails/4.jpg)
4
Lettura/scrittura di un record logico
Lettura: viene letto tutto un record fisico contenente il record logico richiesto, e messo in un buffer di memoria principale
Scrittura: il record logico che si vuole modificare viene messo in un buffer e poi scritto in un intero record fisico
![Page 5: 1 File. 2 Memorizzazione In memoria principale Strutture dati: interi, reali, array, liste,... Durante lesecuzione di un programma In memoria secondaria](https://reader036.vdocumenti.com/reader036/viewer/2022062512/5542eb4f497959361e8bf2dc/html5/thumbnails/5.jpg)
5
![Page 6: 1 File. 2 Memorizzazione In memoria principale Strutture dati: interi, reali, array, liste,... Durante lesecuzione di un programma In memoria secondaria](https://reader036.vdocumenti.com/reader036/viewer/2022062512/5542eb4f497959361e8bf2dc/html5/thumbnails/6.jpg)
6
File Allocation Table (FAT)
Tabella di allocazione dei file: per ogni file, quali settori del disco sono assegnati a lui
Tante righe quanti sono i settori (o gruppi di settori)
Nella directory del file: numero del primo settore Nella riga del FAT per il primo settore: numero
del secondo settore, e cosi’ via Ogni voce della FAT: 16 o 32 bit 216 o 232
settori diversi (ogni settore circa 2 KB)
![Page 7: 1 File. 2 Memorizzazione In memoria principale Strutture dati: interi, reali, array, liste,... Durante lesecuzione di un programma In memoria secondaria](https://reader036.vdocumenti.com/reader036/viewer/2022062512/5542eb4f497959361e8bf2dc/html5/thumbnails/7.jpg)
7
Operazioni su file
Apertura Lettura Scrittura Chiusura
![Page 8: 1 File. 2 Memorizzazione In memoria principale Strutture dati: interi, reali, array, liste,... Durante lesecuzione di un programma In memoria secondaria](https://reader036.vdocumenti.com/reader036/viewer/2022062512/5542eb4f497959361e8bf2dc/html5/thumbnails/8.jpg)
8
File sequenziali
Accesso sequenziale Esempi: file di audio, video, programmi,
testo Se su CD o nastro (supporto sequenziale),
l’accesso sequenziale e’ naturale Se su disco e diviso in settori diversi, il SO
deve recuperare i settori e ricostruire il file
![Page 9: 1 File. 2 Memorizzazione In memoria principale Strutture dati: interi, reali, array, liste,... Durante lesecuzione di un programma In memoria secondaria](https://reader036.vdocumenti.com/reader036/viewer/2022062512/5542eb4f497959361e8bf2dc/html5/thumbnails/9.jpg)
9
![Page 10: 1 File. 2 Memorizzazione In memoria principale Strutture dati: interi, reali, array, liste,... Durante lesecuzione di un programma In memoria secondaria](https://reader036.vdocumenti.com/reader036/viewer/2022062512/5542eb4f497959361e8bf2dc/html5/thumbnails/10.jpg)
10
File sequenziali – fine file
Rilevare la fine del file Record di fine (diverso da tutti gli altri record) Oppure, variabile EOF (end of file) che il sistema
operativo mette a vero quando il file e’ finito Es.: while (not EOF) do (leggi un record dal file)
![Page 11: 1 File. 2 Memorizzazione In memoria principale Strutture dati: interi, reali, array, liste,... Durante lesecuzione di un programma In memoria secondaria](https://reader036.vdocumenti.com/reader036/viewer/2022062512/5542eb4f497959361e8bf2dc/html5/thumbnails/11.jpg)
11
File sequenziali -- chiave
Ogni record logico ha un campo che lo identifica (chiave)
Es.: codice fiscale per un dipendente File ordinati secondo il campo chiave
elaborazione piu’ efficiente Es.: merge (fusione) di due file, aggiornamento
di un file usando le informazioni di un altro file, ...
![Page 12: 1 File. 2 Memorizzazione In memoria principale Strutture dati: interi, reali, array, liste,... Durante lesecuzione di un programma In memoria secondaria](https://reader036.vdocumenti.com/reader036/viewer/2022062512/5542eb4f497959361e8bf2dc/html5/thumbnails/12.jpg)
12
Fusione (merge) di due file
Procedure merge(file1,file2,file3)if (eof1 and eof2) then (file3= vuoto)if (not eof1) then (record1 = primo record di file1)if (not eof2) then (record2 = primo record di file2)while (not eof1 and not eof2) do
Metti il record con chiave piu’ piccola tra record1 e record 2 in file3;
Aggiorna record1 o record2 al rcord successivo;Copia i restanti record del file non finito in file3
![Page 13: 1 File. 2 Memorizzazione In memoria principale Strutture dati: interi, reali, array, liste,... Durante lesecuzione di un programma In memoria secondaria](https://reader036.vdocumenti.com/reader036/viewer/2022062512/5542eb4f497959361e8bf2dc/html5/thumbnails/13.jpg)
13
![Page 14: 1 File. 2 Memorizzazione In memoria principale Strutture dati: interi, reali, array, liste,... Durante lesecuzione di un programma In memoria secondaria](https://reader036.vdocumenti.com/reader036/viewer/2022062512/5542eb4f497959361e8bf2dc/html5/thumbnails/14.jpg)
14
![Page 15: 1 File. 2 Memorizzazione In memoria principale Strutture dati: interi, reali, array, liste,... Durante lesecuzione di un programma In memoria secondaria](https://reader036.vdocumenti.com/reader036/viewer/2022062512/5542eb4f497959361e8bf2dc/html5/thumbnails/15.jpg)
15
File di testo
Stringa di caratteri: ogni carattere e’ un intero record logico
Standard ASCII, un byte per carattere Molti file sequenziali complessi realizzati da file
di testo Es.: file dei dipendenti: ogni record logico e’ una
stringa di 25 caratteri per il nome, piu’ 6 caratteri per numero di matricola 31 caratteri per un record
![Page 16: 1 File. 2 Memorizzazione In memoria principale Strutture dati: interi, reali, array, liste,... Durante lesecuzione di un programma In memoria secondaria](https://reader036.vdocumenti.com/reader036/viewer/2022062512/5542eb4f497959361e8bf2dc/html5/thumbnails/16.jpg)
16
![Page 17: 1 File. 2 Memorizzazione In memoria principale Strutture dati: interi, reali, array, liste,... Durante lesecuzione di un programma In memoria secondaria](https://reader036.vdocumenti.com/reader036/viewer/2022062512/5542eb4f497959361e8bf2dc/html5/thumbnails/17.jpg)
17
Linguaggi di programmzione
Istruzioni per gestire file sequenziali Aprire un file per leggere un record o un
suo campo o un carattere o una riga Tastiera, schermo, stampante considerati
come file sequenziali da cui leggere o a cui inviare caratteri
![Page 18: 1 File. 2 Memorizzazione In memoria principale Strutture dati: interi, reali, array, liste,... Durante lesecuzione di un programma In memoria secondaria](https://reader036.vdocumenti.com/reader036/viewer/2022062512/5542eb4f497959361e8bf2dc/html5/thumbnails/18.jpg)
18
Indici Indice: sequenza di chiavi e indirizzi di memoria dove e’
archiviato un bloco di informazioni Per accedere al blocco di informazioni: prima si ceca la
chiave, e poi si guarda l’indirizzo corrispondente File indicizzato: file + file di indice Es.: matricola per dipendenti, numero per CD audio Entrambi memorizzati in M secondaria Quando di vuole usare un file, l’indice viene trasferito in
M principale Piu’ veloce accedere all’informazione
![Page 19: 1 File. 2 Memorizzazione In memoria principale Strutture dati: interi, reali, array, liste,... Durante lesecuzione di un programma In memoria secondaria](https://reader036.vdocumenti.com/reader036/viewer/2022062512/5542eb4f497959361e8bf2dc/html5/thumbnails/19.jpg)
19
![Page 20: 1 File. 2 Memorizzazione In memoria principale Strutture dati: interi, reali, array, liste,... Durante lesecuzione di un programma In memoria secondaria](https://reader036.vdocumenti.com/reader036/viewer/2022062512/5542eb4f497959361e8bf2dc/html5/thumbnails/20.jpg)
20
File invertiti
Piu’ indici per accedere velocemente secondo diverse chiavi
Es.: numero di matricola, codice fiscale
![Page 21: 1 File. 2 Memorizzazione In memoria principale Strutture dati: interi, reali, array, liste,... Durante lesecuzione di un programma In memoria secondaria](https://reader036.vdocumenti.com/reader036/viewer/2022062512/5542eb4f497959361e8bf2dc/html5/thumbnails/21.jpg)
21
![Page 22: 1 File. 2 Memorizzazione In memoria principale Strutture dati: interi, reali, array, liste,... Durante lesecuzione di un programma In memoria secondaria](https://reader036.vdocumenti.com/reader036/viewer/2022062512/5542eb4f497959361e8bf2dc/html5/thumbnails/22.jpg)
22
Indici parziali File sequenziale, diviso
in vari segmenti Ogni segmento
contiene piu’ record e corrisponde ad una sola chiave (l’ultima)
Per cercare un record: trovo la prima chiave nell’indice > del record cercato, poi cerco il record nel segmento