introduktion:-eftersom diskutrymme är begränsat bör vi återanvända utrymmet från raderade filer för nya filer. För att hålla reda på ledigt diskutrymme upprätthåller systemet en lista över ledigt utrymme. Listan över ledigt utrymme registrerar alla lediga diskblock som inte tilldelats någon fil eller katalog. Denna lista med ledigt utrymme kan implementeras som en av följande:
a) Bitvektorfri rymdlista implementeras som en bitkarta eller en bitvektor. Varje block representeras av en bit. Om blocket är ledigt är bit 1, om blocket tilldelas är bit 0.
den största fördelen med detta tillvägagångssätt är dess relativa enkelhet och dess effektivitet när det gäller att hitta det första fria blocket eller n på varandra följande fria block på skivan. Beräkningen av blocknumret är (antal bitar per ord) * (Antal 0-värdeord) förskjutning av första 1 bit
b) länkad lista – ett annat sätt att hantera ledigt utrymme är att länka samman alla lediga diskblock som håller en pekare till det första fria blocket på en speciell plats på disken och cachar den i minnet. Det första blocket innehåller en pekare till nästa lediga diskblock.
c) gruppering – en ändring av den fria listmetoden är att lagra adresserna på N-fria block i det första fria blocket.
D) räkning-ett annat tillvägagångssätt är att dra nytta av det faktum att flera sammanhängande block kan tilldelas eller frigöras samtidigt när utrymme tilldelas med den sammanhängande allokeringsalgoritmen eller klustringen.
effektivitet och prestanda
diskar tenderar att representera en stor flaskhals i systemprestanda eftersom de är den långsammaste huvuddatorkomponenten. Effektivitet:- Effektiv användning av diskutrymme beror starkt på diskallokering och katalogalgoritmer som används.
Prestanda: de flesta diskkontroller inkluderar lokalt minne för att bilda en inbyggd cache som är tillräckligt stor för att lagra hela spår åt gången. När en sökning har utförts läses spåret in i diskcachen från sektorn under diskhuvudet. Diskkontrollen överför sedan alla sektorförfrågningar till OS. Vissa system upprätthåller en separat del av huvudminnet för en buffertcache där block hålls under antagandet att de kommer att användas igen. Andra system cache fildata med hjälp av en sida cache. Sidcachen använder virtuella minnestekniker för att cacha fildata som sidor snarare än som ett filsystemorienterat block. Caching fildata med virtuella adresser är effektivare än cachning genom fysiska diskblock som åtkomst gränssnitt med virtuellt minne snarare än filsystemet. Flera system använder sidcachning för att cache både process sidor och fildata. Detta kallas unified buffer cache.
det finns andra problem som kan påverka prestanda för I/O, till exempel om skrivningar till filsystemet sker synkront eller asynkront. Synkrona skrivningar förekommer i den ordning i vilken diskundersystemet tar emot dem och skrivningarna buffras inte. Asynkrona skrivningar görs större delen av tiden. Vissa system optimerar sin sidcache genom att använda olika ersättningsalgoritmer beroende på filens åtkomsttyp. Sekventiell åtkomst kan optimeras med tekniker som kallas gratis bakom och läs framåt. Gratis bakom tar bort en sida från buffert så snart Nästa sida begärs. Med read ahead läses en begärd sida och flera efterföljande sidor och cachas.