1 / 21

Kapitel 11: Implementation av filsystem

Kapitel 11: Implementation av filsystem. 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: Hur ska filsystemet se ut för användaren?

leo-pace
Download Presentation

Kapitel 11: Implementation av filsystem

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Kapitel 11: Implementation av filsystem

  2. 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: • Hur ska filsystemet se ut för användaren? • Hur ska vi mappa det logiska filsystemet till den fysiska disken? • Ett filsystem består oftast av många olika lager

  3. 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 Layered File System

  4. 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. 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. A Typical File Control Block

  7. 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. In-Memory File System Structures

  9. 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. Schematisk bild av ett virtuellt filsystem

  11. 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. Allokeringsmetoder • Hur ska plats på disken allokeras till filerna? • Sammanhängande (contiguous) allokering • Länkad allokering • Indexerad allokering

  13. Sammanhängande allokering

  14. 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. Linked Allocation

  16. 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. File-Allocation Table (MS-DOS)

  18. 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. Exempel på indexerad allokering

  20. Hantering av ledigt utrymme • Bitvektor (n block) 0 1 2 n-1 … 0  block[i] ledigt 1  block[i] upptaget bit[i] = 

  21. Länkat ledigt utrymme

More Related