Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

Operativsystemer [5]: Filsystemer Datalogi 1F Forår 2003 Jørgen Sværke Hansen

Lignende præsentationer


Præsentationer af emnet: "Operativsystemer [5]: Filsystemer Datalogi 1F Forår 2003 Jørgen Sværke Hansen"— Præsentationens transcript:

1 Operativsystemer [5]: Filsystemer Datalogi 1F Forår 2003 Jørgen Sværke Hansen cyller@diku.dk

2 Datalogi 1F: Operativsystemer[5]2 Oversigt Grænseflade: –Filoperationer –Filens struktur –Katalogstrukturer Implementering: –Lagerallokering –Afbildning af logisk struktur til fysisk struktur –Caching –Pålidelighed

3 Datalogi 1F: Operativsystemer[5]3 Hvad er en fil? En repræsentation af data: –et dokument (ASCII, DVI, Word XP, …) –en web-side (HTML 4.01, XHTML 1.0, …) –et billede (GIF, JPG, BMP, TIFF, …) –et regneark (Excel, Gnumeric, …) –en database (Oracle, DB2, MySQL, …) En repræsentation af et program: –shell script –binært eksekverbart formet (ELF, exe,..) –kildetekst (Java, BASIC, Perl, …)

4 Datalogi 1F: Operativsystemer[5]4 Hvor er en fil? Placeret på sekundært lagermedie: –harddisk –bånd –CD –diskette Delt mellem (især åbne filer): –applikation –operativsystem –sekundært lager

5 Datalogi 1F: Operativsystemer[5]5 Strukturen af en fil Ingen: en række af bytes, ord, … Simple poster: –linier –fast længde –variabel længde Avancerede formater: –XML –relokerbar programkode En række af bytes kan bruges til at beskrive både simple poster og avancerede formater: –men hvem skal gøre det? –Applikation eller operativsystem

6 Datalogi 1F: Operativsystemer[5]6 Beskrivelse af en fil Navn Type Placering Størrelse Adgangskontrol Tidsstempler Ejere

7 Datalogi 1F: Operativsystemer[5]7 Organisering af flere filer Filsystem /etc Katalog /usr / bar foo bar Filer foo

8 Datalogi 1F: Operativsystemer[5]8 Operationer på filsystemer Filoperationer –Åben –Luk –Læs –Skriv –Tilføj –Afskær –Ændring af rettigheder Katalogoperationer: –Find fil/katalog –Opret fil/katalog –Slet fil/katalog –Udskriv indhold –Skift katalog

9 Datalogi 1F: Operativsystemer[5]9 Katalogstruktur Effektivitet: –Givet et filnavn skal man hurtigt kunne finde en fils placering på sekundært lager Navngivning: –flere brugere skal kunne navngive filer uafhængigt af hinanden –den samme fil kan have flere navne Gruppering: –katalogstruktur skal kunne beskrive at filer er beslægtede

10 Datalogi 1F: Operativsystemer[5]10 Katalogstruktur med et niveau Et enkelt katalog beskriver alle filer: Problemer med: –navngivning –gruppering

11 Datalogi 1F: Operativsystemer[5]11 Kataloger med træstruktur

12 Datalogi 1F: Operativsystemer[5]12 Acyklisk graf

13 Datalogi 1F: Operativsystemer[5]13 Generel grafstruktur

14 Datalogi 1F: Operativsystemer[5]14 Mounts Filsystemet specificeres via en superblok Et filsystem indeholder en katalogstruktur Denne katalogstruktur skal gøres tilgængelig før filerne skal tilgås: –Roden i hvert filsystem optræder som et katalog i et ”super” rodkatalog, f.eks.: A:, B:, C:, D:, …. –Et filsystem er specificeres som værende rodfilsystemet – andre filsystemer indplaceres i rodfilsystemets katalogstruktur

15 Datalogi 1F: Operativsystemer[5]15 To filsystemer

16 Datalogi 1F: Operativsystemer[5]16 Efter mount af (b) på /users/

17 Datalogi 1F: Operativsystemer[5]17 Adgangskontrol Hvem har ret til at gøre hvad? Adgangskontrollister: –Hvem: bruger ID, gruppe ID –Hvad: læse, skrive, udføre, tilføje, slette Adgangsbevis (eng.: capability): –adgangsbeviset indikerer rettigheder –adgangsbevisets ægthed skal kunne verificeres –adgangsbeviser kan måske overdrages

18 Datalogi 1F: Operativsystemer[5]18 Adgangskontrol - UNIX Adgangstyper: læs, skriv, udfør Niveauer: R W X –ejer (7) 1 1 1 –gruppe (4) 1 0 0 –andre (0) 0 0 0 Hvis andre skal have læserettigheder kan de tilføjes gruppen (kræver administrator) Ændring af rettigheder chmod 740 foo

19 Datalogi 1F: Operativsystemer[5]19 Implementering af filsystemer Datastrukturer til: –kataloger –filer –ledige blokke Caching Pålidelighed

20 Datalogi 1F: Operativsystemer[5]20 Lagdeling af filsystemer I/O enheder (disk) Styreprogram Diskblokadgang Filstruktur Metadata Filgrænseflade Brugerprogram

21 Datalogi 1F: Operativsystemer[5]21 Kontrolblok for filer Rettigheder Tidsstempler (oprettet, sidst ændret,..) Referencetæller Størrelse Datablokke

22 Datalogi 1F: Operativsystemer[5]22 Datastrukturer i OS lager

23 Datalogi 1F: Operativsystemer[5]23 Katalogstrukturer En liste af tupler: –langsom søgning (når der er mere end 1 FS blok) Hashtabel: –fast størrelse –kollisioner B+ træer: –balanceret søgetræ –hver knude i træ har FS blok størrelse

24 Datalogi 1F: Operativsystemer[5]24 Allokering af FS blokke Allokering af blokke til et filsystem minder om allokering i hovedlageret: –vi har et virtuelt adresserum (filen), der skal afbildes til et fysisk adresserum (harddisken) men det er meget dyrere at tilgå en disk i forhold til hovedlageret vi vil derfor gerne have så få administrative data liggende på disken som muligt

25 Datalogi 1F: Operativsystemer[5]25 Sammenhængende allokering

26 Datalogi 1F: Operativsystemer[5]26 Hægtet allokering

27 Datalogi 1F: Operativsystemer[5]27 Filallokeringstabel

28 Datalogi 1F: Operativsystemer[5]28 Indekseret allokering

29 Datalogi 1F: Operativsystemer[5]29 UNIX filstruktur

30 Datalogi 1F: Operativsystemer[5]30 Extent-baserede FS’er I stedet for at allokere blokkene til en fil i grupper af en fast størrelse kan man bruge grupper af en variabel størrelse (extents) En extent beskrives via: –startblok –længde –(startposition i fil) En extent kræver mere bogføring, men understøtter store filer bedre (hvis der er sammenhængende diskplads)

31 Datalogi 1F: Operativsystemer[5]31 Håndtering af ledig diskplads Bitmap: –hver blok repræsenteres af en enkelt bit: 0 == blok optaget, 1 == blok ledig –ledig blok: (antal 0 ord)*(bits per ord)+forskydning af første 1 bit Liste af frie blokke: –overhead betyder ingenting –svært at finde sammenhængende diskplads (brug extent-baseret liste) B+ træer med extents sorteret efter –størrelse & diskblok

32 Datalogi 1F: Operativsystemer[5]32 Ydelse Reducer antallet af søgninger: –Allokering af datablokke tæt på indeksblokke og filkontrolblokke –elevatoralgoritme: sorteret liste over ønskede blokke læs de blokke der er tættest på diskhovedet

33 33 Ydelse (2) Caching: –gem ofte refererede blokke: kataloger filer (kontrolblokke, indexblokke, datablokke) –administrativ information (ledige blokke) –forudsig filadgangsmønstre (read-ahead) –forsinkelse af skrivninger: skriv større sammenhængende områder opfang flere ændringer –problem ved forsinkelse af skrivninger: diskstruktur kommer bagefter systemnedbrud kan have alvorlige konsekvenser

34 Datalogi 1F: Operativsystemer[5]34 Side cache vs buffer cache

35 Datalogi 1F: Operativsystemer[5]35 Forenet buffer cache

36 Datalogi 1F: Operativsystemer[5]36 Opdatering af datastrukturer på disk Eksempel: en fil der oprettes kræver ændringer i: (K) katalogstruktur (indsæt navn og peger til FKB) (F) fjern FKB fra frie blokke (hægt ud/flip bit) Ved opdatering på disk –hvis (K) opdateres før (F) kan et systemnedbrud betyde, at (K) refererer til en blok der er markeret ledig –hvis (F) opdateres før (K) kan systemnedbrud betyde at vi mister en blok fra frilisten

37 Datalogi 1F: Operativsystemer[5]37 Efter et nedbrud På mounttidspunktet opdages at filsystemet har oplevet et systemnedbrud Der foretages et check af filsystemet: –det undersøges om katalogindgange refererer blokke, der er markeret frie –det undersøges om der er allokerede blokke, der ikke refereres (f.eks., katalogindgange eller indeksblokke) Dette kræver at hele filsystemet gennemtrævles og kan nemt tage lang tid for store diske

38 Datalogi 1F: Operativsystemer[5]38 Journaliserede filsystemer Opdateringer af metadata (indexblokke, katalogstrukturer, FKB’ere) opfattes som en DB transaktion Alle transaktionerne skrives til en journal på disken inden de udføres på disken Når en transaktion er registreret, er dens udførsel garanteret selv ved nedbrud Herefter kan metadata opdateres Når dette er gjort fjernes transaktionen fra journalen Efter nedbrud er det nok at afspille journalen

39 Datalogi 1F: Operativsystemer[5]39 Journaliserede filsystemer (2) BRAVO! Nu skriver vi metadata TO gange i stedet for EN Ja, men journalen er fortløbende allokerede blokke – dvs. få søgninger og vi kan cache flere opdateringer - dvs. færre søgninger nogle journaliserede filsystemer kan bruge en separat disk/partition til journalen – færre søgninger

40 Datalogi 1F: Operativsystemer[5]40 Backup Trinvis backup Filsystem snapshot –når filsystem har konsistente datastrukturer på disk, kan visse disksystemer tage et tilstandsbillede af diskens indhold på tidspunkt T –herefter kan et backupprogram angive, at det ønsker at læse fra filsystemet som det så ud på tidspunkt T –Ændringer overskriver ikke gamle blokke men skrives til nye Låsning af dele af filsystemet

41 Datalogi 1F: Operativsystemer[5]41 Redundante diske Redundant Array of Inexpensive Disks (RAID): –mange små diske er billigere end en stor –selv med store diske kan det være en god ide at have en (eller flere/færre) i reserve Mest almindelige: –RAID 1: spejlning –RAID 5: paritetsdisk (N data + 1 paritet)

42 Datalogi 1F: Operativsystemer[5]42 Spejlning (RAID 1) RAID gruppe

43 Datalogi 1F: Operativsystemer[5]43 RAID 5

44 Datalogi 1F: Operativsystemer[5]44 Store skrivninger XOR 1 1 12 1 1 1 1

45 Datalogi 1F: Operativsystemer[5]45 Opsummering Der findes mange filformater, men oftest understøtter Oset kun et eller få formater Navngivning/katalogstruktur skal være fleksibel Lageradministration på diske er tungere, og antallet af læsninger vigtigt for effektivitet Caching er vigtig for ydelsen, men vær forsigtig med at cache metadata

46 Datalogi 1F: Operativsystemer[5]46 Kilder Disse slides er baseret på SG03 samt de af forfatterne udviklede slides


Download ppt "Operativsystemer [5]: Filsystemer Datalogi 1F Forår 2003 Jørgen Sværke Hansen"

Lignende præsentationer


Annoncer fra Google