Gestione di file (parte I) Terminologia di base

Documenti analoghi
File: definizione. Il file è la più piccola unità logica manipolabie Un file è caratterizzato principalmente da:

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.

Architettura degli elaboratori Docente:

Il file È un insieme di informazioni: programmi. Il File System. Il file system

Sistemi Operativi III. Giorgio Richelli giorgio

Sistemi Operativi Il Sistema Operativo Windows (parte 3)

Realizzazione del file system. Fabio Buttussi HCI Lab Dipart. Di Matematica ed Informatica Università degli studi di Udine

Sistema Operativo (Software di base)

Gestione della Memoria

A confronto Linux e Microsoft. d i A g n e s e D a i d o n e

GESTIONE DELLA MEMORIA CENTRALE 6.1 D. - UNICAL

INDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso

File system: aspetti implementativi

Informatica 3. LEZIONE 20: Ordinamento esterno. Modulo 1: Organizzazione della memoria Modulo 2: Ordinamento esterno

FILE E INDICI Architettura DBMS

11 Realizzazione del File System Struttura a livelli (fig. 11.1) 11.4 Allocazione dei file

Sistemi Operativi. 12 LEZIONE REALIZZAZIONE DEL FILE SYSTEM CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08

File System ext2. Struttura del filesystem ext2.

Basi di Dati e Sistemi Informativi. Organizzazione fisica dei dati. Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale

Introduzione Definizioni

Il Sistema Operativo. Informatica Sistema Operativo 1

Stru3ura del file system

Il Sistema Operativo

Indice. settembre 2008 Il File System 2

Il software: Istruzioni per il computer

Le Memorie. Si distinguono per: Supporti sui quali le informazioni vengono fisicamente memorizzate.

Sistemi Operativi 1. Mattia Monga. a.a. 2016/17. Dip. di Informatica Università degli Studi di Milano, Italia

Sistemi Operativi (modulo di Informatica II)

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Gestione della memoria

Parte V. Il File System

Capitolo Silberschatz

Sistemi Operativi (modulo di Informatica II)

Sistemi di Calcolo (A.A ) Corso di Laurea in Ingegneria Informatica e Automatica Sapienza Università di Roma

Gestione della memoria. Introduzione Swapping Allocazione contigua Paginazione

Il Gestore della Memoria. Tecnica a Partizioni Fisse e a Partizioni Variabili

Linux la gestione dei dischi

Fondamenti di GNU/Linux

14 Struttura della memoria secondaria Struttura del disco Struttura del disco

Struttura Logica del S.O:

Dove siamo. Gestione della Memoria (1) Dove siamo. Dove siamo. Operating Systems and Distributed Systems. Operating Systems and Distributed Systems

File System. Capitolo 13

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

GESTIONE DELLA MEMORIA CENTRALE

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

SOLUZIONI: Memoria virtuale

Gestione della memoria

IL SOFTWARE DI SISTEMA

Sistema operativo. Interazione con il SO

Sistema operativo (SO)

File System. Capitolo Silberschatz

Il File System. Architettura del File System (2) Architettura del File System. Parte V. Il File System

Parte V Il File System

File System. Concetti e tecniche generali

Registri della CPU. Memoria Centrale. Memoria di Massa. Memorie di altri sistemi in rete

Pag Politecnico di Torino 1

Sistemi Operativi. Organizzazione logica ed implementazione di un File System

Controllo I/O Costituito dai driver dei dispositivi e dai gestori dei segnali d interruzione.

La gestione della memoria. Lezione 16 Sistemi Operativi

Esercitazione su Gerarchie di Memoria

12 Memoria secondaria

Il Software. Il software del PC. Il BIOS

Lezione 12. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata

Interfaccia del file system

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica

Memory management. Le attività di memory management del SO per la condivisione da parte di più processi

Sistemi Operativi (Laboratorio)

12. Implementazione di un File System Struttura a livelli Allocazione contigua

Strutture di accesso ai dati: B + -tree

La memoria secondaria

Gestione della memoria di massa. Capitolo Silberschatz

File system. Chiamate di sistema POSIX Esempi: Chiamate di sistema Windows Esempio: Esercizi. 4.3 BSD Linux NTFS. Sistemi Operativi mod B 12.

LA MEMORIA NEL CALCOLATORE

Gestione mem. secondaria (File System)

La memoria-gerarchia. Laboratorio di Informatica - Lezione 3 - parte I La memoria - La rappresentazione delle informazioni

La memoria secondaria

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

I sistemi operativi. Prof. Daniele Contarino

Sistemi Operativi. Lez. 16 File System: aspetti implementativi

Gestione della Memoria Introduzione ai Sistemi Operativi Corso di Abilità Informatiche Laurea in Fisica

Il Sistema Operativo

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Implementazione del File System

Sistemi Operativi Esercizi Gestione Memoria

Lena Cota Guido Corso di Informatica - II livello. File System. File e Cartelle

Sistemi Operativi. Implementazione del File System

File system. Realizzazione del file system. Struttura del file system. Struttura del file system. Realizzazione del file system

Architettura CPU. Memoria principale (RAM) Dispositivi di ingresso. Dispositivi di uscita. Memoria secondaria (memoria di massa)

Realizzazione del file system

Architettura hardware

CAP9. Device drivers

Sistemi RAID. Motivazioni Concetti di base Livelli RAID. Sommario

Architettura dei calcolatori e sistemi operativi. M2 Organizzazione della memoria virtuale Struttura dello spazio virtuale kernel e utente

Struttura interna del sistema operativo Linux

Sistema operativo & file system 1

I THREAD O PROCESSI LEGGERI

La memoria secondaria

Indici multilivello dinamici (B-alberi e B + -alberi) Alberi di ricerca - 1. Un esempio. Alberi di ricerca - 3. Alberi di ricerca - 2

Il file system. File system. Fornisce il meccanismo per la memorizzazione e l accesso di dati e programmi Consiste di due parti

Transcript:

Gestione di file (parte I) Dario Maio http://bias.csr.unibo.it/maio dmaio@deis.unibo.it Terminologia di base File: collezione di informazioni (di solito) memorizzate su supporti di memoria di massa. unità di memorizzazione logica, che astrae dalle proprietà fisiche del dispositivo (es. hard disk, CD-ROM, floppy, tape,..). può essere non strutturato: non presenta una struttura logica regolare, ad esempio una bit map; strutturato: organizzato come un insieme di record di struttura similare, ad esempio un agenda telefonica. Record: Elemento di un file che rappresenta l unità di informazione elaborata da un applicazione. File system: sovrintende all organizzazione dei dati sui dispositivi di memoria permanente e offre una serie di utili astrazioni agli applicativi. Vari livelli di astrazione possono essere costruiti, sopra un nucleo di base, per raggiungere successivi gradi di indipendenza. 2 Page

Un architettura a livelli Applicazione File System Logico Modulo di Organizzaione dei file File System di Base Controllo dell I/O Dispositivi Richiede servizi al file system logico. Sulla base del nome di un file e dell organizzazione delle directory, genera richieste al modulo per l organizzazione dei file. Legge i descrittori dei file restituendo la posizione. Conosce l organizzazione logica e fisica. Traduce le richieste logiche in richieste fisiche verso il file system di base. Genera il numero assoluto di un blocco dato il suo numero relativo all inizio del file. Invia comandi generali alla parte di controllo dell I/O. Dato il numero di blocco assoluto genera informazioni specifiche quali superficie, settore, traccia, blocco fisico. Driver che traducono in segnali di controllo i comandi ricevuti dal livello superiore Eseguono i comandi richiesti attraverso i driver. 3 Livelli di indipendenza Indipendenza dai dispositivi Il file system gestisce una grande varietà di dispositivi di memoria attraverso l uso di tipi di dati astratti (e quindi di primitive di manipolazione). Indipendenza dall allocazione L allocazione di un file può interessare uno o più dispositivi, controllati da uno o più nodi di una rete, ed eventualmente con un certo grado di replicazione dei dati. Dal punto di vista dell applicazione un file viene referenziato per nome. Indipendenza dall indirizzo fisico Il file system offre meccanismi di accesso associativo alle informazioni sulla base del contenuto. Un file system minimale offre un astrazione di dispositivo in cui gli oggetti gestiti sono blocchi di byte di lunghezza fissa. 4 Page 2

Terminologia per dischi Blocco Unità di informazione gestita dal file system di base. I trasferimenti tra memoria centrale e memoria esterna avvengono in termini di multipli del blocco. La dimensione del blocco e l organizzazione dei record all interno dei blocchi sono parametri importanti ai fini delle prestazioni. Slot (Sector) Unità di suddivisione delle superfici di un disco. Le sue coordinate riflettono la geometria di un disco (logica o fisica). In generale un blocco occupa uno o più slot contigui. 5 Blocchi e settori Ipotesi: un blocco occupa un solo settore mapping di indirizzi tra disco e file file A file B traccia file D numerazione degli slot disk denota mapping di indirizzi file C file E 6 Page 3

Gestione spazi su disco () È necessario operare una traslazione di indirizzi di un blocco di un file in indirizzi fisici di disco, che sono quadruple del tipo: <disk_id, cyl_id, track_no, slot_no)> La relazione tra dischi e file è di tipo n:m, cioè un disco può ospitare (parti di) molti file e un file può essere sparso in più dischi. Blocchi che sono contigui in un file non sono necessariamente mappati in slot contigui su disco; neppure l ordine relativo degli indirizzi di blocco corrisponde, in generale, a quello della rappresentazione fisica su disco 7 Gestione spazi su disco (2) Allocazione iniziale poiché di solito l applicazione non conosce a priori come evolverà nel tempo la dimensione di un file, all atto della creazione il file system deve adottare una strategia per allocare inizialmente un certo numero di slot. Espansione incrementale il file system deve gestire la richiesta da parte di un applicazione di aumentare le dimensioni del file. Anche questo compito comporta in generale l adozione di opportune strategie di espansione incrementale. Riorganizzazione: l espansione e la contrazione dei file comportano la necessità di ricorrere a politiche di riorganizzazione degli spazi, allo scopo di evitare fenomeni di frammentazione che penalizzerebbero le prestazioni. Si assume che su un disco sia riservato un certo numero di slot per tenere traccia dei blocchi liberi. Le tecniche più comuni sono: Lista concatenata Bit map 8 Page 4

Allocazione statica e contigua () È la tecnica più semplice: all atto della creazione di un file l applicazione deve conoscere la dimensione massima prevista; viene così riservato su un singolo disco un numero di slot contigui sufficiente a ospitare i blocchi richiesti. La traslazione degli indirizzi comporta un semplice calcolo. Si fanno le seguenti assunzioni: i blocchi del file sono numerati a partire da ; nsb è il numero di slot necessari per memorizzare un blocco; s è il numero d ordine dello slot allocato per l inizio del blocco. Il blocco del file con numero d ordine k è dunque memorizzato a partire dallo slot s + nsb x k. k= k= k=2 k=3 k=4 s=2 nsb=3 22=2+3x4 9 Allocazione statica e contigua (2) Consente di gestire sia accesso sequenziale sia accesso diretto ai blocchi; inoltre la sequenza logica dei blocchi corrisponde alla sequenza fisica. La dimensione del file non può variare dinamicamente, pertanto l amministrazione degli spazi liberi è semplice. Si rende comunque necessaria una riorganizzazione quando la frammentazione, generata da cancellazioni di file, non consente di trovare un numero contiguo di slot per la creazione di un nuovo file. Sostanziali modifiche sono necessarie per consentire che un file possa essere più grande dello spazio disponibile su un disco e che un file possa essere memorizzato su più dischi. Spesso questa organizzazione è utilizzata dai DBMS per creare dischi virtuali su cui gestire file con proprie regole, in modo da realizzare indipendenza dal particolare file system. Page 5

Allocazione statica e contigua (3) Si usano sostanzialmente tre politiche di allocazione, quando si deve creare un file di B blocchi: First Fit: Best Fit: Worst Fit: viene allocata la prima zona di almeno B blocchi viene allocata la zona più piccola di almeno B blocchi viene allocata la zona più grande di almeno B blocchi Le prime due sono in genere le tecniche che danno migliori risultati; la tecnica First Fit risulta più veloce. Si dice frammentazione esterna il fenomeno provocato nel tempo dalla presenza di alcune piccole zone non utilizzate. Allocazione con estensioni Al fine di consentire crescita (o contrazione) dinamica della dimensione dei file, si utilizza una tecnica che assegna (rilascia), a ogni richiesta di espansione (contrazione), un certo numero di blocchi contigui detti extent. Le diverse realizzazioni di questa idea di base si differenziano per i criteri di scelta della dimensione degli extent (fissa o variabile a ogni passo di espansione), per le tecniche di gestione degli spazi liberi, per le tecniche di riorganizzazione. Un file può essere più grande dello spazio di un disco; un file può essere allocato su più dischi. 2 Page 6

Gestione delle estensioni File directory extent disk-id extent- index accum_length primary. secondary 2. secondary 3. secondary A B A A 24 9 3 2 35 6 85 accum_lenght riporta per ogni extent il numero totale cumulativo di blocchi assegnato DISK A extent directory DISK B extent Per conoscere l indirizzo fisico corrispondente al blocco di ordine k, si deve cercare l indice i tale che accum_lenght[i] sia il più piccolo valore >= k, quindi accedere alla relativa extent directory 3 Allocazione in linked list () Una semplice organizzazione in cui i vari blocchi (o cluster) di un file sono concatenati in lista. Ciascun blocco fisico contiene il puntatore al successivo. Efficiente per accesso sequenziale (anche se può essere necessario riposizionare più volte la testina); inefficiente per accesso diretto. Blocco # Blocco # Blocco # n- directory 534 22 FILE F 569 4 Page 7

Allocazione in linked list (2) Una variante utilizzata in molti file system consiste nel raggruppare più blocchi in cluster, prevedendo l accesso a tali cluster piuttosto che a singoli blocchi. Si ha un miglioramento delle prestazioni a causa del ridotto numero di posizionamenti della testina; si riduce lo spazio utilizzato per i riferimenti; si produce una maggiore frammentazione interna. Cluster # Cluster # Cluster # n- directory 533..54 22..229 FILE F 569..577 5 Allocazione nel S.O. DOS MS DOS gestisce lo spazio in termini di cluster (insieme contiguo di settori di disco) di dimensione fissa, in parte caratteristica del particolare disco. Per gli hard disk, la dimensione di un cluster va da 4 settori (248 byte) a 64 settori (32768 byte). I floppy usano cluster più piccoli. A ogni partizione di disco assegnata al DOS viene riservata un area di disco costituita da un certo numero di settori contigui. Un file occupa un certo numero di cluster, che non sono necessariamente contigui fra loro. La FAT (File Allocation Table) tiene traccia dei cluster occupati per i vari file di una partizione DOS. 6 Page 8

Organizzazione di un disco DOS BOOT : Contiene un piccolo programma che avvia il processo di caricamento del DOS nella memoria principale, nel caso di partizione bootable. FAT: è la mappa di allocazione della partizione; le prime due voci della FAT sono riservate per informazioni sul tipo di disco; le altre numerate a partire da 2 contengono una voce per ogni cluster e ne indicano lo stato. ROOT DIRECTORY: il direttorio radice serve a memorizzare informazioni fondamentali sull etichetta del volume, sui file di disco e sui sottodirettori (subdirectory), visti come file speciali. Per ogni file o subdirectory esiste nel direttorio radice una voce che contiene: nome, tipo (es. EXE), attributi, riservato per usi futuri, ora, data, entry iniziale nella FAT, dimensione. SUBDIRECTORY: file di tipo speciale che appartengono al direttorio radice o ad altri sottodirettori e sono organizzati in modo analogo al root directory. AREA DI SISTEMA AREA DATI E PROGRAMMI BOOT doppia copia della FAT ROOT DIRECTORY 7 I vari tipi di FAT Proprietà FAT2 FAT6 FAT32 Usata per Floppy e piccoli hard disk da piccoli a grandi hard disk da medi ad hard disk molto grandi Dimensione di una entrata della FAT 2 bit 6 bit 28 bit Massimo numero di cluster utilizzabili 486 65526 ~268435456 Dimensione Cluster da.5 KB a 4 KB da 2 KB a 32 KB da 4 KB a 32 KB Massima dimensione di un volume 6736256 247232 circa 2^4 8 Page 9

Esempio FAT6 () La FAT realizza di fatto una variante della tecnica di allocazione a lista concatenata, utilizzando un indice. L applicazione richiede, in base alle sue necessità, l allocazione di un certo numero di cluster ogni qual volta un file deve essere espanso. La FAT è organizzata in catene, tante quanti sono i file allocati Una voce della FAT può contenere un numero di cluster o un codice. Ad esempio per una FAT a 6 bit: cluster disponibile riservato per ragioni tecniche FFFF ultimo cluster di una catena (EOF) FFF7 cluster difettoso FFF FFFE (escluso FFF7) riservati per usi speciali 9 Esempio FAT6 (2) L applicazione richiede, in base alle sue necessità, l allocazione di un certo numero di cluster ogni qual volta un file deve essere espanso. Quando la frammentazione diventa eccessiva si ricorre a tecniche di riorganizzazione degli spazi. La FAT è organizzata in catene, tante quanti sono i file allocati. Una voce della FAT può contenere un numero di cluster o un codice. Ad esempio per una FAT a 6 bit: Il file file.txt occupa i cluster 5, 5, 52, 6, 3. Si suppone 4KB la dimensione di un cluster L entrata nel direttorio contiene le informazioni sul file: nome, data di creazione, attributi, dimensione, e il numero del primo cluster. FAT6 caricata in RAM occupa al massimo 28 KB. 2 Page

L uso di una tecnica di allocazione con indice consente un efficienza migliore per accessi diretti, rispetto alla tecnica con allocazione a liste. Non è efficiente per file di piccole dimensioni. Directory Allocazione con indice 2 Allocazione in UNIX () A ogni file è associata una tabella (i-node = index node) che contiene informazioni sul file e un array di puntatori di cui i primi dieci puntano direttamente a blocchi del file; per gestire file di grandi dimensioni si fa uso di ulteriori puntatori a blocchi di puntatori, fino a un massimo di tre livelli di indirezione. Vengono pertanto privilegiati file di piccole dimensioni Esempio: dimensione di blocco di 52 byte; un i-node contiene 3 puntatori (di cui diretti); puntatori di 4 byte. La dimensione massima che si riesce a gestire senza livelli di indirezione è pari a blocchi, ovvero 52 byte. 22 Page

Allocazione in UNIX (2) Attivando il pointer, l estensione massima è: 52+ 28 X 52 = 7656 byte = 69 Kbyte Il 2 puntatore aggiunge : 28 2 * 52 = 8,388,68 bytes = 8 Mbyte Con l uso del 3 puntatore l'estensione massima del file è: +28+28 2 +28 3 blocchi = 2,3,674*52 =,82,2,88 byte. diretti ind inode 3......... 2................................. blocchi dati............ 38 39...... 6522 6523...... numerati logicamente 23 Allocazione in UNIX (3) Nelle prime versioni di Unix veniva usata una strategia di allocazione incrementale basata su un extent di dimensione pari a un singolo blocco. Nelle varie versioni di Unix si trovano applicate oggi diverse tecniche per la gestione delle estensioni. Un disco è considerato un insieme numerato di blocchi accessibile attraverso il suo numero. Pertanto un file è allocato in un numero intero di blocchi anche non contigui. L allocazione di Unix è di fatto una variante della tecnica con indice multi-livello. 24 Page 2

NTFS di Windows NT Volume: partizione logica su disco. Un disco può avere uno o più volumi, e un volume può espandersi su più dischi. Un volume memorizza tutti i dati del file system, quali bitmap e directory, e anche il system bootstrap e i file ordinari. C: 2 MB NTFS Volume C: 7 MB D:5 MB NTFS Volume NTFS Volume 2 C: 8 MB D:4 MB NTFS Volume FAT Volume 2 Cluster: insieme di blocchi contigui. NTFS usa Logical Cluster Number e Virtual Cluster Number. LCN numera i cluster dall inizio alla fine del volume. VCN numera i cluster di un file da al numero effettivo di cluster. NTFS mappa indirizzi VCN in LCN e LCN in indirizzi fisici di disco. 25 In NTFS, tutti i dati del volume sono contenuti in un file, inclusi i metadata di NTFS. MFT (Master File Table) è un array di file record. MFT contiene una riga, base file record, per ogni file, inclusa una riga per la stessa MFT. Metafile: contiene l informazione usata per implementare la struttura del file system. NTFS trova l indirizzo fisico del record relativo a MFT dal boot file quando il volume viene montato. MFT 63 47 Sequence number NTFS : MFT e Metafile File number Per ogni file il File reference è costituito da un Sequence number e da un File number (quest ultimo rappresenta l offset all interno di MFT del record descrittore del file) MFT copy (partial) 2 Log File 3 Volume File 4 Attribute definition table 5 Root directory 6 Bitmap file 7 Boot file 8 Bad cluster file 9 6 User files and directories Metadata 26 Page 3

NTFS : File record NTFS memorizza un file come una collezione di coppie (attributo,valore) una delle quali (unnamed data attribute) di fatto rappresenta i dati che il file stesso contiene. Ogni attributo è memorizzato separatamente come stream di byte. MFT record per small file.. Standard Information Filename Security descriptor Data MFT 27 NTFS : Attributi di un file () Attributi residenti: sono memorizzati direttamente in MFT. Attributi non residenti: sono memorizzati altrove in run ciascuna di 2KB o 4 kb MFT record per small file Standard Information Filename Security descriptor Data Attribute Header Resident Offset 8h Length 4h MyFile.dat Attribute list: se il numero degli attributi è tale da non poter essere contenuto in un record MFT, si usa un altro record della tabella. 28 Page 4

NTFS : Attributi di un file (2) Nel caso di un attributo non residente l attribute header contiene l informazione (mapping VCN -> LCN) necessaria a reperire le run su disco dove risiede il valore dell attributo. Standard Information Filename Security descriptor Data Attribute Header Starting Starting Number of VCN LCN clusters 365 4 4 588 4 VCN 2 3 data LCN 365 366 367 368 VCN 4 5 6 7 data LCN 588 589 59 59 29 NTFS : File name indexing Viene usato un indice B-tree per i nomi dei file, al fine di minimizzare gli accessi a disco. Ogni entrata nell indice contiene un nome di file e il suo file reference in MFT, un time stamp e informazioni sulla dimensione del file. Vi sono tre attributi per i direttori: Index root attribute: contiene il primo livello del B-tree e punta a nodi dell indice contenenti il livello successivo Index allocation attribute: contiene i mapping VCN->LCN per i nodi dell indice Bitmap attribute: tiene traccia di quali nodi indice sono in uso e quali sono liberi. Standard Information Filename V Index root Index allocation Bitmap Index of files file4 file file5 VCNtoLCN mappings VCN 2 3 VCN 4 5 6 7 VCN 8 9 file file file3 file6 file8 file9 file file2 file3 file4 3 Page 5

Page 6 3 In un buddy system gli extent hanno dimensione 2 i dove i è detto tipo dell extent. Un extent è di tipo i se contiene 2 i blocchi contigui. blocks (quelli verdi sono liberi) 2 3 2 3 free extent type buddy types La tecnica Buddy () 32 Gli extent che possono essere combinati fra di loro per costituire extent più grandi sono detti buddy. L indirizzamento in questo schema risulta particolarmente semplice, in quanto il più piccolo numero di blocco di un extent di tipo i è k x 2 i, k, ovvero, per i> i bit di peso,,...,i- sono tutti a. Gli extent di uguale dimensione che sono liberi vengono concatenati in una lista. Esempio: possibili extent di tipo i=2, k=,,2,3 k= 4 k= 8 k=2 2 k=3 La tecnica Buddy (2)

La tecnica Buddy : allocazione Se un file viene creato senza precisare una richiesta in termini di blocchi, la strategia consiste nell allocare inizialmente un blocco, e per ogni ( i =, 2,..) successiva espansione 2 i blocchi. In generale gestire una richiesta di nb blocchi comporta l ispezione e l aggiornamento della lista degli extent liberi: se esiste un extent libero di tipo i= log 2 nb allora vengono allocati nb blocchi contigui e i restanti 2 i -nbvengono suddivisi in extent di tipo j (j < i), altrimenti si cerca un extent libero di dimensione maggiore. Se ad esempio l extent libero è di tipo i+, allora una metà dell extent viene parzialmente occupata, mentre l altra metà viene collegata alla lista degli extent liberi di tipo i. 33 La tecnica Buddy : deallocazione Se un extent E di tipo i viene rilasciato, si deve controllare se il suo buddy è anch esso libero, e in caso affermativo fonderli insieme per formare un nuovo extent libero di dimensione doppia; se questo nuovo extent ha un buddy libero il processo di fusione continua. Determinare l indirizzo del buddy di E è semplice: infatti per i> i bit di peso,,...,i- dell indirizzo di E sono ; se il bit di ordine i dell indirizzo di E vale allora il buddy di E è il vicino a destra altrimenti il vicino a sinistra. Mentre altre tecniche comportano per la gestione degli spazi liberi un costo proporzionale al numero degli extent, la tecnica buddy richiede un tempo logaritmico nel caso peggiore. FRAMMENTAZIONE: se vengono allocati molti extent di piccole dimensioni che non sono buddy, si può avere una eccessiva frammentazione esterna, che comporta una riorganizzazione degli extent allocati. 34 Page 7

Organizzazione dei record nei blocchi Le operazioni di I/O implicano sempre trasferimento di blocchi, mentre un applicazione agisce su un file invocando operazioni di lettura o scrittura a livello di record. R R2 R3 R4 BLOCCAGGIO FISSO R R2 R3 R4 R4 R5 R6 BLOCCAGGIO VARIABILE ATTRAVERSANTE R R2 R3 R4 R5 BLOCCAGGIO VARIABILE NON ATTRAVERSANTE spreco per adattamento record di lunghezza fissa nel blocco spreco per fine file spreco per adattamento record di lunghezza variabile nel blocco Per il bloccaggio fisso è necessario conoscere solo la lunghezza del record. Per il bloccaggio variabile devono essere aggiunte informazioni che consentano di reperire il record richiesto. 35 Le diverse tecniche di organizzazione di record a lunghezza variabile si possono confrontare considerando la quantità addizionale di informazione richiesta, l efficienza delle operazioni di ricerca e la complessità delle operazioni di aggiornamento. Alcuni esempi: N record Record a lunghezza variabile Marche di fine record 4 ALESSANDRA * DARIO * DAVIDE * FLAVIA * Indicatori di lunghezza 4 ALESSANDRA DARIO DAVIDE FLAVIA Tabella di posizione 4 ALESSANDRA DARIO DAVIDE FLAVIA 36 Page 8

Indirizzamento di un record Non è conveniente usare indirizzi assoluti, ciò rende infatti complessa l operazione di spostamento di un record all interno di un blocco o in altro blocco. Dovrebbero infatti essere aggiornati tutti i riferimenti a quel record. L indirizzo di un record è in genere una coppia (i b,k) dove i b identifica il blocco (o pagina) in cui è memorizzato il record e k è un valore di chiave che identifica univocamente il record. La terminologia in uso è RID (Record Identifier) oppure TID (Tuple Identifier) in alcuni DBMS relazionali 37 Page 9