kapitel 11: implementation av filsystem

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

Upload: leo-pace

Post on 01-Jan-2016

52 views

Category:

Documents


0 download

DESCRIPTION

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? - PowerPoint PPT Presentation

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