Transcript
Page 1: Kapitel 11:  Implementation av filsystem

Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition,

Kapitel 11: Implementation av filsystem

Page 2: Kapitel 11:  Implementation av filsystem

11.2 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th 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

Page 3: Kapitel 11:  Implementation av filsystem

11.3 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th 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

Page 4: Kapitel 11:  Implementation av filsystem

11.4 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th 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

Page 5: Kapitel 11:  Implementation av filsystem

11.5 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th 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

Page 6: Kapitel 11:  Implementation av filsystem

11.6 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

A Typical File Control Block

Page 7: Kapitel 11:  Implementation av filsystem

11.7 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th 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

Page 8: Kapitel 11:  Implementation av filsystem

11.8 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

In-Memory File System Structures

Page 9: Kapitel 11:  Implementation av filsystem

11.9 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th 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.

Page 10: Kapitel 11:  Implementation av filsystem

11.10 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Schematisk bild av ett virtuellt filsystem

Page 11: Kapitel 11:  Implementation av filsystem

11.11 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th 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

Page 12: Kapitel 11:  Implementation av filsystem

11.12 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Allokeringsmetoder

Hur ska plats på disken allokeras till filerna?

Sammanhängande (contiguous) allokering

Länkad allokering

Indexerad allokering

Page 13: Kapitel 11:  Implementation av filsystem

11.13 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Sammanhängande allokering

Page 14: Kapitel 11:  Implementation av filsystem

11.14 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th 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?

Page 15: Kapitel 11:  Implementation av filsystem

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

Linked Allocation

Page 16: Kapitel 11:  Implementation av filsystem

11.16 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th 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

Page 17: Kapitel 11:  Implementation av filsystem

11.17 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

File-Allocation Table (MS-DOS)

Page 18: Kapitel 11:  Implementation av filsystem

11.18 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th 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

Page 19: Kapitel 11:  Implementation av filsystem

11.19 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Exempel på indexerad allokering

Page 20: Kapitel 11:  Implementation av filsystem

11.20 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Hantering av ledigt utrymme

Bitvektor (n block)

0 1 2 n-1

bit[i] = 0 block[i] ledigt

1 block[i] upptaget

Page 21: Kapitel 11:  Implementation av filsystem

11.21 Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8th Edition

Länkat ledigt utrymme


Top Related