Kapitel 11 Implementation av filsystem Operating System Concepts





















- Slides: 21

Kapitel 11: Implementation av filsystem Operating System Concepts – 8 th Edition, Silberschatz, Galvin and Gagne © 2009

Bakgrund n Filsystemet tillhandahåller mekanismer för lagring och access till program och data n Består av en samling filer och en katalogstruktur n Ligger på sekundärminne, oftast en disk n Två designproblem: 1. Hur ska filsystemet se ut för användaren? 2. Hur ska vi mappa det logiska filsystemet till den fysiska disken? n Ett filsystem består oftast av många olika lager Operating System Concepts – 8 th Edition 11. 2 Silberschatz, Galvin and Gagne © 2009

Layered File System Operating System Concepts – 8 th Edition n Logical file system: hanterar metadata (katalogstruktur, filstruktur mm) n File-organization module: översätter logiska blockadresser till fysiska, hanterar ledigt utrymme n Basic file system: generiska kommandon (t ex läs drive 1, cylinder 73, track 2, sector 10) n I/O control: drivrutiner, avbrottshanterare 11. 3 Silberschatz, Galvin and Gagne © 2009

Olika filsystem n Många olika filsystem används idag n Diskbaserade filsystem: l UNIX – UFS l Windows – FAT, FAT 32, NTFS l Linux – ext 2, ext 3 + minst 40 andra n Filsystem för DVD, CD-ROM n Distribuerade filsystem Operating System Concepts – 8 th Edition 11. 4 Silberschatz, Galvin and Gagne © 2009

Implementation av filsystem Många strukturer används för att implementera filsystem På disk: n Boot control block innehåller information om hur OS bootas från den volymen n Volume control block innehåller detaljer om volymen (blockstorlek, antal block mm) n Katalogstruktur – organiserar filerna n File Control Block (FCB) innehåller många detaljer om en fil I minnet: n System-wide open-file table – innehåller en kopia av FCB: n för varje öppen fil n Per-process open-file table – innehåller pekare till system-wide open-file table Operating System Concepts – 8 th Edition 11. 5 Silberschatz, Galvin and Gagne © 2009

A Typical File Control Block Operating System Concepts – 8 th Edition 11. 6 Silberschatz, Galvin and Gagne © 2009

Skapa och öppna en fil n Skapa en ny fil: l Logiska filsystemet allokerar en ny FCB l Katalogen läses in i minnet och uppdateras n Öppna en fil: l Open() skickar ett filnamn till det logiska filsystemet l Först söks system-wide open-file table igenom l Om filen hittas – skapa en pekare i per-process open-file table l Om filen ej hittas – sök igenom katalogstrukturen efter rätt FCB och lägg i system-wide open-file table först l Open() returnerar en pekare till filens rad i per-process open-file table l Alla filoperationer görs sen genom denna pekare Operating System Concepts – 8 th Edition 11. 7 Silberschatz, Galvin and Gagne © 2009

In-Memory File System Structures Operating System Concepts – 8 th Edition 11. 8 Silberschatz, Galvin and Gagne © 2009

Virtuella filystem n Hur kan flera filsystem integreras i en katalogstruktur? n Virtuella filsystem (VFS) använder OO-tekniker för att implementera filsystem n VFS använder samma systemanropsgränssnitt (API) till alla filsystem n API: et är till VFS-gränssnittet, som separerar operationerna från deras implementation. Operating System Concepts – 8 th Edition 11. 9 Silberschatz, Galvin and Gagne © 2009

Schematisk bild av ett virtuellt filsystem Operating System Concepts – 8 th Edition 11. 10 Silberschatz, Galvin and Gagne © 2009

Implementation av kataloger n Linjär lista med filnamn med pekare till datablocken l Enkel att programmera l Tidskrävande att exekvera n Hashtabell – linjär lista med en hash-datastruktur. l Minskar söktiden l Kollisioner – situationer där två filer hashar till samma ställe l Fast storlek Operating System Concepts – 8 th Edition 11. 11 Silberschatz, Galvin and Gagne © 2009

Allokeringsmetoder n Hur ska plats på disken allokeras till filerna? n Sammanhängande (contiguous) allokering n Länkad allokering n Indexerad allokering Operating System Concepts – 8 th Edition 11. 12 Silberschatz, Galvin and Gagne © 2009

Sammanhängande allokering Operating System Concepts – 8 th Edition 11. 13 Silberschatz, Galvin and Gagne © 2009

Sammanhängande allokering (forts) n Varje fil ligger samlad på ett ställe n Enkel, kort söktid n Lider av extern fragmentering n Hur mycket plats ska vi allokera? Operating System Concepts – 8 th Edition 11. 14 Silberschatz, Galvin and Gagne © 2009

Linked Allocation Operating System Concepts – 8 th Edition 11. 15 Silberschatz, Galvin and Gagne © 2009

Länkad Allokering n Varje fil är en länkad lista med diskblock: blocken kan vara utspridda varsomhelst på disken n Katalogen har en pekare till första och sista diskblocken n Varje block har en pekare till nästa block Fördelar: n Ingen extern fragmentering n Inget problem att filer växer Nackdelar: n Bara sekventiell access n Pekarna tar plats n Sårbart om en pekare förstörs Operating System Concepts – 8 th Edition 11. 16 Silberschatz, Galvin and Gagne © 2009

File-Allocation Table (MS-DOS) Operating System Concepts – 8 th Edition 11. 17 Silberschatz, Galvin and Gagne © 2009

Indexerad Allokering n Alla pekare läggs i ett index block n Varje fil har sitt eget indexblock (en array) Fördelar: n Ingen extern fragmentering n Random access n Filer kan växa Nackdel: n Overhead från indexblocken Operating System Concepts – 8 th Edition 11. 18 Silberschatz, Galvin and Gagne © 2009

Exempel på indexerad allokering Operating System Concepts – 8 th Edition 11. 19 Silberschatz, Galvin and Gagne © 2009

Hantering av ledigt utrymme n Bitvektor (n block) 0 1 2 n-1 ��� … bit[i] = Operating System Concepts – 8 th Edition 0 block[i] ledigt 1 block[i] upptaget 11. 20 Silberschatz, Galvin and Gagne © 2009

Länkat ledigt utrymme Operating System Concepts – 8 th Edition 11. 21 Silberschatz, Galvin and Gagne © 2009