Presentation laddar. Vänta.

Presentation laddar. Vänta.

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

Liknande presentationer


En presentation över ämnet: "Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 11: Implementation av filsystem."— Presentationens avskrift:

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

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

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

4 11.4 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Olika filsystem Många olika filsystem används idag Diskbaserade filsystem: UNIX – UFS Windows – FAT, FAT32, NTFS Linux – ext2, ext3 + minst 40 andra Filsystem för DVD, CD-ROM Distribuerade filsystem

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

20 11.20 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Hantering av ledigt utrymme Bitvektor (n block) … 012n-1 bit[i] =  0  block[i] ledigt 1  block[i] upptaget

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


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

Liknande presentationer


Google-annonser