File 1 Memorizzazione n In memoria principale Strutture

  • Slides: 22
Download presentation
File 1

File 1

Memorizzazione n In memoria principale ¨ Strutture dati: interi, reali, array, liste, . .

Memorizzazione n In memoria principale ¨ Strutture dati: interi, reali, array, liste, . . . ¨ Durante l’esecuzione di un programma n In memoria secondaria ¨ file 2

Record logici e fisici n Un file e’ suddiviso in record logici ¨ Es.

Record logici e fisici n 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, n Memorizzato in memoria secondaria in pezzi (record fisici) ¨ Es. : n indirizzo, . . . settori di un disco Lettura e scrittura di record fisici, anche se il programma chiede di leggere o scrivere un solo record logico 3

Lettura/scrittura di un record logico Lettura: viene letto tutto un record fisico contenente il

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 n Scrittura: il record logico che si vuole modificare viene messo in un buffer e poi scritto in un intero record fisico n 4

5

5

File Allocation Table (FAT) n n n Tabella di allocazione dei file: per ogni

File Allocation Table (FAT) n n n 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) 6

Operazioni su file Apertura n Lettura n Scrittura n Chiusura n 7

Operazioni su file Apertura n Lettura n Scrittura n Chiusura n 7

File sequenziali Accesso sequenziale n Esempi: file di audio, video, programmi, testo n Se

File sequenziali Accesso sequenziale n Esempi: file di audio, video, programmi, testo n Se su CD o nastro (supporto sequenziale), l’accesso sequenziale e’ naturale n Se su disco e diviso in settori diversi, il SO deve recuperare i settori e ricostruire il file n 8

9

9

File sequenziali – fine file n n Rilevare la fine del file Record di

File sequenziali – fine file n n 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) 10

File sequenziali -- chiave n n Ogni record logico ha un campo che lo

File sequenziali -- chiave n n 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, . . . 11

Fusione (merge) di due file Procedure merge(file 1, file 2, file 3) if (eof

Fusione (merge) di due file Procedure merge(file 1, file 2, file 3) if (eof 1 and eof 2) then (file 3= vuoto) if (not eof 1) then (record 1 = primo record di file 1) if (not eof 2) then (record 2 = primo record di file 2) while (not eof 1 and not eof 2) do ¨ Metti il record con chiave piu’ piccola tra record 1 e record 2 in file 3; ¨ Aggiorna record 1 o record 2 al rcord successivo; Copia i restanti record del file non finito in file 3 12

13

13

14

14

File di testo n n Stringa di caratteri: ogni carattere e’ un intero record

File di testo n n 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 15

16

16

Linguaggi di programmzione Istruzioni per gestire file sequenziali n Aprire un file per leggere

Linguaggi di programmzione Istruzioni per gestire file sequenziali n Aprire un file per leggere un record o un suo campo o un carattere o una riga n Tastiera, schermo, stampante considerati come file sequenziali da cui leggere o a cui inviare caratteri n 17

Indici n n n n Indice: sequenza di chiavi e indirizzi di memoria dove

Indici n n n n 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 18

19

19

File invertiti Piu’ indici per accedere velocemente secondo diverse chiavi n Es. : numero

File invertiti Piu’ indici per accedere velocemente secondo diverse chiavi n Es. : numero di matricola, codice fiscale n 20

21

21

Indici parziali n n n File sequenziale, diviso in vari segmenti Ogni segmento contiene

Indici parziali n n n 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 22