Operativsystem - Filsystem Mats Björkman 2015-03-09
Administrativt n Extraföreläsning istället för den inställda: torsdag 12/3 kl 8-10 i Pi n Seminarier preliminärt schema ute n 15 minuter per grupp lämna 2 minuter för frågor och svar Operativsystem, Mats Björkman, MDH 2
Lärandemål n Krav på filsystem n Filsystem - layout n Filsystem - implementationer n FAT n I-noder Operativsystem, Mats Björkman, MDH 3
Filsystem P A R T O N E : U S E R S P O I N T O F V I E W n n Del 1: Ur tillämpningens synvinkel Del 2: Implementation P A R T T W O : I M P L E M E N T A T I O N Operativsystem, Mats Björkman, MDH 4
Filsystem Tillämpningens synvinkel n Filer n Attribut n Typer n mer n Directoryn n Operationer n Hierarkier Operativsystem, Mats Björkman, MDH 5
Långtidslagring av data Tre grundkrav för långtidslagring av data: n Möjligt att lagra stora mängder data n Data skall leva vidare efter att processen som skapade data avslutats n Flera processer skall kunna accessa data samtidigt Operativsystem, Mats Björkman, MDH 6
En hårddisks struktur Hårddiskar är komplexa och innehåller Diskar/skivor Spår/cylindrar Sektorer/block Även SSD:er (Solid State Disks, flashdiskar) är komplexa Block-baserade Slits med användning (flash-wear) Operativsystem, Mats Björkman, MDH 7
En hårddisks struktur Operativsystem, Mats Björkman, MDH 8
En hårddisks karaktäristik n Den mekaniska rörelsen av diskens arm(ar) med magnethuvuden är en begränsande faktor n Prestanda begränsas till största delen av accesstiden, tiden för magnethuvudena att positionera sig plus väntan på att disken roterat till rätt sektor Operativsystem, Mats Björkman, MDH 9
En hårddisks karaktäristik n Tiden för positionering kan vara 5-10 ms n Tiden för väntan kan vara 3-5 ms n Läsprestanda kan sedan vara i storleksordning 1 Gbps n Ett 1 kb block kan alltså läsas på 8 mikrosekunder efter en väntan som är i storleksordning 1000 ggr större Operativsystem, Mats Björkman, MDH 10
En hårddisks karaktäristik n Stora lagringsutrymmen är nästan uteslutande uppbyggda av mekaniska hårddiskar n Hur diskutrymmet hanteras blir väldigt viktigt för prestanda Operativsystem, Mats Björkman, MDH 11
En hårddisks karaktäristik n Att läsa flera närliggande sektorer är nästan lika billigt som att läsa 1 n Att flytta sig mellan närliggande tracks är mycket snabbare än att flytta sig tvärs över diskytan (kan vara 50-100 ggr snabbare) Operativsystem, Mats Björkman, MDH 12
En hårddisks karaktäristik n Av dessa anledningar är det viktigt med lokalitet av data, block som accessas nära i tiden bör med fördel ligga nära varandra på disken n Cachning i primärminne blir också viktigt för prestanda n Disken själv har ofta en betydande buffert Operativsystem, Mats Björkman, MDH 13
Modell av en disk En disk ses som en linjär sekvens av block av fix storlek n n Två grundläggande diskoperationer: n n Read k: Läs block k Write k: Skriv block k Problem som uppstår: n n n Hur hittar man information på disken? Hur skyddar man en användares data från en annan? Hur vet man vilka block som är lediga? Operativsystem, Mats Björkman, MDH 14
Filer n Lösning: Filer n Precis som VM är en abstraktion av fysiskt minne, så är en Fil en abstraktion av informationen som lagras på en disk n Filkaraktäristik: n Filer hanteras via filnamn n Filer har en typ n Filer har även attribut Operativsystem, Mats Björkman, MDH 15
Filstrukturer Bytesekvens Record-sekvens Record-träd : 1 byte : 1 record : 1 record 16
Filtyper n Vanliga filer (regular files) n ASCII/UNICODE-filer n Binära filer n Directoryn n Character special files (stdin, stdout, ) n Terminal, skrivare, nätverk n Exekverbara filer n Specialfall av binärfil 17
Filattribut n Metadata om en viss fil, exempelvis: n Rättigheter: Read, Write, Execute n Ägare n Skapare n Storlek n Tider för skapande, senaste läsning, skrivning n 18
Filattribut 19
Långtidslagring av data n Att data överlever processen innebär att vi måste ha något annat än processen att relatera filens accessrättigheter till n Systemanvändarens identitet är den typiska associationen n Ägaren av en fil är då en systemanvändare n Rättigheter till filen relaterar till ägaren och till ev. grupper av användare Operativsystem, Mats Björkman, MDH 20
Filattribut 21
Filoperationer n CREATE, DELETE n OPEN, CLOSE n READ, WRITE, APPEND n SEEK n GET ATTRIBUTES, SET ATTRIBUTES n RENAME 22
Access till filer n Sekventiell n Läser bytes/records i ordning från filens start n Kan inte läsa på godtyckligt ställe i filen n Random Access n Kan läsa på godtyckligt ställe i filen n Record-baserade filsystem accessar genom nyckelvärde snarare än position 23
Sekventiell access n Enkel men begränsad n Naturlig för många tillämpningar: n Sökningar, strömning, transformationer, kompileringar n För vissa (gamla) medier nästan ett tvång, tänk magnetband 24
Sekventiell access n Enkel men begränsad n Naturlig för många tillämpningar: n Sökningar, strömning, transformationer, kompileringar n För vissa (gamla) medier nästan ett tvång, tänk magnetband 25
Sekventiell access n https://www.youtube.com/watch? v=cel8wnw5uvs 26
En hårddisks karaktäristik n Även moderna hårddiskar är som vi nämnt ofta effektivare med sekventiell access än med random access Operativsystem, Mats Björkman, MDH 27
File operation example Fil ThreadA(){ FILE* f; int i=0; CREATE( file ); f=open( file ); for(;i<10;i++){ WRITE(f,i); } CLOSE(f); } 28
File operation example (cont.) ThreadB(){ FILE* f; Fil f=open( file ); SEEK(f,4); WRITE(f,12); CLOSE(f); } 29
File operation example (cont.) Fil ThreadC(){ FILE* f; int i=0,j[2]; f=open( file ); READ(f,&(j[0])); APPEND(f,j[0]); CLOSE(f); } 30
Directoryn n Directoryn är systemfiler som håller reda på andra filer n Hierarkiskt strukturerade med start i en rot n Strukturen åskådliggörs för användare grafiskt som mappar Operativsystem, Mats Björkman, MDH 31
Directoryn n Varje program har ett working/current directory n Absoluta/relativa paths Operativsystem, Mats Björkman, MDH 32
Hierarchical Directory Systems Operativsystem, Mats Björkman, MDH 33
Ett nyskapat directory innehåller:. En referens till det egna directoryt.. En referens till föräldradirectoryt 34
Filsystem exempel Print Working Directory Short directory listing Access Rghts Links Owner Group Size Date Time Name Long directory listing Number of blocks used by files 35
Filsystem exempel Print Working Directory Short directory listing Long directory listing List subdirectory (note link=4 files) File information 36
Filsystem - Implementation n Filsystem layout och block n Implementation av filer n Hantering av ledigt diskutrymme n och mer Operativsystem, Mats Björkman, MDH 37
Filsystem - layout E N T I R E D I S K Partition Partition Partition Partition Partition M B R O N E P A R T I T I O N Partition files and directories Partition table P A R T I T I O N H E A D E R Boot block Super block Free space management I-nodes/FAT Root directory Operativsystem, Mats Björkman, MDH 38
Block En diskpartition är i princip en lång räcka block av fix storlek, typiskt 512 bytes - 4 kbytes Blockstorlek tradeoff: Stor Liten Bra för I/O-prestanda, dålig beträffande fragmentering Dålig för I/O-prestanda, bra beträffande fragmentering Operativsystem, Mats Björkman, MDH 39
Klustring För att minska antalet block i stora filsystem har de flesta OS en möjlighet att klustra fysiska filblock till större enheter som blir de enheter som filsystemet hanterar Kan kallas kluster (Windows: FAT, exfat, NTFS) eller allocation blocks (MacOS: HFS Plus) Här kallar jag dessa block för block för enkelhetens skull, men kom ihåg att filsystem på stora diskar kan ha logiska filblock som är ganska mycket större (16 kb - 128 kb) än de fysiska filblocken (512 bytes - 4 kb) Operativsystem, Mats Björkman, MDH 40
Filsystemimplementation - uppgifter Huvuduppgiften för en filsystemimplementation är att hålla reda på vilka block som hör till vilka filer, och var i filen blocken hör hemma D I S K B L O C K S F I L E S File 1 File 2 File 3 Operativsystem, Mats Björkman, MDH 41
Filsystemimplementation Fyra sätt att hålla reda på filblock: n Sammanhängande allokering n Allokering med länkad lista n Allokering med länkad lista via ett index n I-noder (inoder i UNIX-terminologi) Operativsystem, Mats Björkman, MDH 42
Sammanhängande allokering n Varje fil allokeras som ett antal sammanhängande block: Fil A Fil B Fil C Plus: Lätt att implementera, goda prestanda Minus: Fragmentering, inte bra att tvingas flytta när filer växer Operativsystem, Mats Björkman, MDH 43
Allokering med länkad lista n Alla block som tillhör en fil sitter ihop i en länkad lista: Fil A Fil B Fil C Plus: Ingen fragmenteringsproblematik, enkel sekventiell access Minus: Random access blir väldigt långsam i stora filer Operativsystem, Mats Björkman, MDH 44
0 1 2 3 4 5 6 7 8 E 1 9 10 E E 2 1011 E E 3 11 E E 4 12 E 13 E 1314 E E 6 1415 E 12 E 15 E E 8 16 E 9 17 Allokering med länkad lista via ett index n E X E M P E L : M S D O S F A T Länkarna till nästa block flyttas från disk till en tabell i primärminnet Fil A Fil B Fil C Plus: Tar bort problemet med att traversera en länkad lista där länkarna ligger på disk Minus: Indextabellen behöver vara i primärminnet Operativsystem, Mats Björkman, MDH 45
Allokering med länkad lista via ett index E X E M P E L : M S D O S F A T n Ett entry i ett MS-DOS-filsystemdirectory: Directory 1 Size (in bytes) 8 3 1 10 2 2 2 4 File name Reserved Size FAT 0 1 2 3 4 File extension Attribute Time Date First block number Operativsystem, Mats Björkman, MDH 46
I-noder E X E M P E L : U N I X V 7 F S n En liten tabell, en i-nod, används för varje fil: A 0 1 B 5 6 C 7 8 2 12 9 3 10 18 4 11 Fil A Fil B Fil C 4 13 14 15 Plus: Alla i-noder behöver inte vara i primärminne hela tiden Minus: Långsammare access än indexerade länkade listan Operativsystem, Mats Björkman, MDH 47
I-noder E X E M P E L : U N I X V 7 F S n Ett entry i ett UNIX V7 filsystemdirectory: Directory 2 2 14 File name I-node number I-node block 1 block 2 block 3 block 4 File attributes Disk TIPS: Titta på figur 10.32 i Tanenbaums bok! Operativsystem, Mats Björkman, MDH 48
Implementering av directoryn (a) Ett enkelt directory Fix storlek på entries Diskadresser och attribut i directoryentryt (b) Ett directory där varje entry bara pekar till en i-nod Operativsystem, Mats Björkman, MDH 49
Hantering av fritt diskutrymme n Länkad lista n n Bitmapp En länkad lista av oanvända block används för att hålla reda på fritt utrymme n Mycket bra om vi har ett litet primärminne eller en full disk n En bitmapp för alla block håller reda på vilka block som är allokerade och vilka som är lediga n Bättre än länkad lista om bitmappen kan hållas i primärminnet Operativsystem, Mats Björkman, MDH 50
Övning ledigt diskutrymme Från tentamen 2002-03-14: Givet en hårddisk med en total storlek på X bytes, en blockstorlek på B bytes och ett ickeallokerbart minnesutrymme på Y bytes (t.ex. FAT, rotkatalog och bootsektor), hur stort utrymme (angivet i bytes) krävs för representation av det lediga utrymmet på disken om det representeras av: a) en bitmap. b) en länkad lista (Ett element i den länkade listan tar upp L bytes och varje block länkas för sig. Vidare betecknar vi andelen lediga block (i procent) A) Operativsystem, Mats Björkman, MDH 51
Filsystem - tillförlitlighet n Filsystembackup n n Full Inkrementell n Konsistenskontroll av filsystemet Operativsystem, Mats Björkman, MDH 52
Konsistenskontroll av filsystemet n Varför behövs konsistenskontroll av filsystemet? n Systemkrascher eller strömavbrott just när OS:et hanterar filblock eller ändrar i directoryn eller i-noder (vanligare än man tror, filhantering pågår hela tiden ) n Buggar i operativsystemet ger upphov till fel n Operativsystem, Mats Björkman, MDH 53
Konsistenskontroll av filsystemet - metodik n n Gå genom varje fil och listan av fria block. Notera för varje block i dessa listor om blocket finns med i en fil eller på fria listan. Kontrollera sedan för varje block i filsystemet, att blocket antingen är del av en fil eller finns med på fria listan. Andra möjligheter: n n n n Blocket finns varken i en fil eller med på fria listan Blocket är både del av en fil och med på fria listan Samma block används av mer än en fil Samma block finns mer än en gång i fria listan Hur hanteras dessa situationer? Operativsystem, Mats Björkman, MDH 54
Konsistenskontroll, exempel Free Allocated 0 1 1 0 0 1 1 0 1 1 0 0 1 0 0 1 0 0 1 1 0 1 1. 2. Free Allocated 0 1 1 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 1 1 0 1 Free Allocated 0 1 1 0 0 1 1 0 2 1 0 0 1 0 0 1 0 0 1 1 0 1 3. 4. Free Allocated 0 1 1 0 0 1 1 0 1 1 0 0 1 0 0 2 0 0 1 1 0 1 Free Allocated 0 1 1 0 0 1 1 0 1 1 0 0 1 0 0 1 1 0 1 1 0 1 (Exemplet gäller länkade listor, för bitmapp är inte fall 2 möjligt) Operativsystem, Mats Björkman, MDH 55
Konsistenskontroll av filsystemet n Varför konsistenskontroll tar tid: n Vi måste vandra genom hela filsystemsträdet och notera varje block i varje fil n Med 4 kb block finns det 1 miljard block på en 4 TB-disk Operativsystem, Mats Björkman, MDH 56
För mer information n Läs fallstudierna av Windows och UNIX i boken n Lyssna på seminarierna! Operativsystem, Mats Björkman, MDH 57
Lärandemålen igen n Krav på filsystem n Filsystem - layout n Filsystem - implementationer n FAT n I-noder Operativsystem, Mats Björkman, MDH 58