Ladda ner presentationen
Presentation laddar. Vänta.
Publicerades avAnders Nyberg
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
Liknande presentationer
© 2024 SlidePlayer.se Inc.
All rights reserved.