Filsystemer. dopsys. fredag den 26. november 2010

Relaterede dokumenter
Lageret er hierarkisk fokus nu: disk

Filsystemer: Anvendelse. dopsys

Filsystemer: Implementation. dopsys

Oversigt. Operativsystemer [5]: Filsystemer. Hvad er en fil? Hvor er en fil? Strukturen af en fil. Beskrivelse af en fil

Lageradministration. dopsys

FS2: Dynamic Data Replication in Free Disk Space for Improving Disk Performance and Energy Consumption

Lageradministration Paging og segmentering

Lageradministration Intel Pentium og Unix/Linux

Lageret i maskinarkitekturen. Beregningsenhed, lagre (registre, RAM, disk), ydre enheder

Sider og segmenter. dopsys 1

1 Operativsystemer oversigt

Sider og segmenter. dopsys 1

Design Systemkald. User-mode Linux, The Linux kernel/

Interconnect. Front end interface

Koordinering. dopsys

Database Implementering

Operativsystemer of C Efterår 2013 Virtuel hukommelse (kap. 9)

Processer og tråde. dopsys 1

Best Practices: I/O-konfiguration. Thomas Damgaard, Chefkonsulent, SAS Institute

Chapter 10: File System Interface

Grådige algoritmer. Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Som I så gik maskinen ned og viste blå skrærm Årsag: en HDD stod af, efter knapt 200 timers drift. Valg af Ny disk.

Abstrakte datatyper C#-version

Hashing. Hashing. Ordbøger. Ordbøger. Ordbøger Hægtet hashing Hashfunktioner Lineær probering. Ordbøger Hægtet hashing Hashfunktioner Lineær probering

Hashing. Ordbøger Hægtet hashing Hashfunktioner Lineær probering. Philip Bille

20 Filer og indekser.

Principper for Samtidighed og Styresystemer

Disk-vedligeholdelse i Windows 10 - juli 2017

Introduktion til datastrukturer. Philip Bille

Introduktion til datastrukturer. Introduktion til datastrukturer. Introduktion til datastrukturer. Datastrukturer

Introduktion til datastrukturer

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

DM507 Algoritmer og datastrukturer

Introduktion til datastrukturer. Introduktion til datastrukturer. Introduktion til datastrukturer. Datastrukturer

Hashing. Ordbøger Hægtet hashing Hashfunktioner Lineær probering. Philip Bille

Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt.

Implementation af Koordinering. dopsys 1

Virtuel Hukommelse. Niels Olof Bouvin Institut for Datalogi Aarhus Universitet

Styresystemer og tjenester

Sortering. Eksempel: De n tal i sorteret orden

Sortering af information er en fundamental og central opgave.

Input/Output: Disk & Clock. dopsys

Datastrukturer (recap)

Gem dine dokumenter i BON s Content Management System (CMS)

Sortering. Eksempel: De n tal i sorteret orden

Algorithms & Architectures II

Tilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (key, nøgle) for dataelementer.

DM507 Algoritmer og datastrukturer

TCP & UDP. - de transportansvarlige på lag 4. Netteknik 1

Lær Python - Dag 3, modul 1 Læse og skrive filer

DM507 Algoritmer og datastrukturer

Deadlocks dopsys 1 onsdag den 8. december 2010

Datastrukturer (recap)

1. Forklar sammenhængen mellem sektor, spor (track) og cylinder.

DATALOGI 1F. Skriftlig eksamen tirsdag den 27. januar 2004

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Sortering af information er en fundamental og central opgave.

Det Naturvidenskabelige Fakultet. Introduktion til Blackboard (Øvelser) Naturvidenskabeligt Projekt 2006 Prøv at forske

Niveauer af abstrakte maskiner

Tilgang til data. To udbredte metoder for at tilgå data: Sekventiel tilgang Random access: tilgang via ID (også kaldet key, nøgle) for dataelementer.

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

DM507 Algoritmer og datastrukturer

Binære søgetræer. Nærmeste naboer Binære søgetræer Indsættelse Predecessor og successor Sletning Trægennemløb. Philip Bille

GUIDE TIL CLOUD DRIVE

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo

NT PDC Udarbejdet af Kenneth Dalbjerg

DET KONGELIGE BIBLIOTEK NATIONALBIBLIOTEK OG KØBENHAVNS UNIVERSITETS- BIBLIOTEK. Index

Lærer nye styresystemer Installerer programmer som kun kan bruges i ældre versioner

Merging og Hashing (del I)

Nintex Workflow UK/DK

SW6 SAI. Services 1: (Fil) service admin torsdag 7/4 05

Vejledning til Teknisk opsætning

Grundlæggende Algoritmer og Datastrukturer. Hashing [CLRS, kapitel ]

Upload af billeder/filer for nybegyndere Del. 2

Opgradere fra Windows Vista til Windows 7 (brugerdefineret installation)

Guide til Umbraco CMS

Målet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt.

Gerth Stølting Brodal. Hashing [CLRS, kapitel ]

komplet kopi af harddisken: 20 minu sådan! Med en kopi af Windows og dine programmer får du en ustabil eller fejlramt pc på ret kurs i en ruf.

Python programmering. Per Tøfting. MacFest

Indhold. Download driver Find version af Windows Hent drivers til Windows Udpak driver... 6

Spatial Suite Bruggergruppemøde Øst Tirsdag den 11. juni Karsten Pihl,

GUIDE TIL CLOUD DRIVE

Lærebog. Datalogi 1F Forår Hvad sker hvornår? Kursusbøger. Planen for idag. Hvad er et operativsystem

Prioritetskøer og hobe. Philip Bille

Datastrukturer (recap) Datastruktur = data + operationer herpå

COMPUTER ANATOMI klasse 23. FEBRUAR 2015 HTX - ROSKILDE

Sortering. De n tal i sorteret orden. Eksempel: Kommentarer:

1. Redegør for Lister, stakke og køer mht struktur og komplexitet af de relevante operationer

DATALOGI 1F. Skriftlig eksamen tirsdag den 10. juni % 2 10 % 3 25 % 4 10 % 5 30 %

Kernealphaerne Indhold af G1

KOM GODT I GANG MED. Desktop Mendeley Menuen er simpel og intuitiv. I Menuen Tools finder du web importer og MS Word plugin

Systemkald DM Obligatoriske opgave. Antal sider: 7 inkl. 2 bilag Afleveret: d. 18/ Afleveret af: Jacob Christiansen,

DM507 Algoritmer og datastrukturer

VMware og dopsys-linux

DET KONGELIGE BIBLIOTEK NATIONALBIBLIOTEK OG KØBENHAVNS UNIVERSITETS- BIBLIOTEK. Indhold

CPUer og maskinkode DM534. Rolf Fagerberg

Simpel Network Management Protocol SNMP

Installation og aktivering af Windows 7

SAS Scalable Performance Data Server

Transkript:

Filsystemer 1

Lageret er hierarkisk - Fokus: disk Sekundært lager er nødvendigt: Data i RAM forsvinder når processer terminerer o.lign. Og der er også brug for pladsen 2

Lageret er hierarkisk - Fokus: disk Sekundært lager er nødvendigt: Data i RAM forsvinder når processer terminerer o.lign. Og der er også brug for pladsen 2

Top-down: Hvad er en fil? Monitor Bus 3

Top-down: Hvad er en fil? Monitor Bus Er en fil en fysisk genstand? Mål, vægt, længde, højde? 3

Filbegrebet Monitor Bus 4

Filbegrebet Monitor Skal være persistent Skal kunne rumme mange oplysninger Skal kunne tilgås fra processer En fil er en samling data gemt på et sekundært lager, bestemt af en overordnet fortolkning: metadata Bus 4

Filsystemer (1) OS administrerer lagring af filer via filsystemet 5

Filsystemer (1) OS administrerer lagring af filer via filsystemet Hvad skal stilles tilrådighed? Hvordan? 5

Filsystemer (1) OS administrerer lagring af filer via filsystemet 6

Filsystemer (1) OS administrerer lagring af filer via filsystemet Et hierarkisk navnerum der skjuler kompleksiteten, og samtidig sikrer en effektiv udnyttelse, samt organisering af data... 6

Filsystemer (2) Grænseflade Samling af systemkald... Kataloghåndtering Afbildning: symbolsk filnavn fil Filhåndtering Åbning, lukning, læsning, skrivning Organisering af filer Afbildning fra fil til diskblokke 7

Egenskaber ved filer: Navn, Type Filer har symbolske navne, oftest organiseret i et hierarki Under UNIX styrer brugeren valg af navne... 8

Filstruktur En sekvens af bytes, en sekvens af records, et træ af records? a) Record med fast størrelse b) Record med variabel størrelse c) Fast størrelse, med nøgle d) Variabel størrelse, med nøgle 9

Filstruktur En sekvens af bytes, en sekvens af records, et træ af records? a) Record med fast størrelse b) Record med variabel størrelse c) Fast størrelse, med nøgle d) Variabel størrelse, med nøgle... i UNIX og Windows er en fil en sekvens af bytes... 9

[Q/A] Hvilke konsekvenser har det for sekventiel/vilkårlig adgang? a) Record med fast størrelse b) Record med variabel størrelse c) Fast størrelse, med nøgle d) Variabel størrelse, med nøgle 10

[Q/A] Hvilke konsekvenser har det for sekventiel/vilkårlig adgang? a) Record med fast størrelse b) Record med variabel størrelse c) Fast størrelse, med nøgle d) Variabel størrelse, med nøgle 10

Filtyper forskel på et dybere niveau UNIX har... - kataloger - almindelige filer - character special files - block special files - FIFOs... En almindelig fil kan rumme et program, et bibliotek, men OS skal stort set kun kende formatet for en eksekverbar 11

Katalogstruktur (1) Simpel træstruktur Simple insert, delete, search operationer... Ingen deling mellem kataloger, hver fil har kun een forgænger... 12

Katalogstruktur (2) DAG-struktur Deling mellem kataloger, en fil har mange forældre... Hvad med delete? Enhver forælder kan fjerne filen, men kun sidste gang den fjernes skal den fjernes fysisk. Behov for reference count... 13

Katalogstruktur (2*) DAG-struktur Deling mellem kataloger, en fil har mange forældre... Hvad med delete? Enhver forælder kan fjerne filen, men kun sidste gang den fjernes skal den fjernes fysisk. Behov for reference count... Cykler er også et problem ved search og delete... 14

Katalogstruktur (3) Træstruktur med sym-links Deling mellem kataloger, en fil kan have mange forgængere Hvad med delete? Ved delete af et sym-link, fjernes kun linket. Intet behov for reference counting eller garbage collection 15

Katalogstruktur (3) Træstruktur med sym-links Deling mellem kataloger, en fil kan have mange forgængere Hvad med delete? Ved delete af et sym-link, fjernes kun linket. Intet behov for reference counting eller garbage collection Et typisk Unix-filsystem understøtter denne form for katalog-struktur, et symbolsk link skabes med ln -s <file> <symlnk> 15

[Click] Træstruktur med sym-links Hvad så med sidste delete på en fil? A. Sletter alle symlinks B. Efterlader symlinks ødelagte C. Har ingen virkning hvis der findes symlinks D. Ændrer et symlink til et link E. Ved ikke 16

Bottom-up: Hvor lagres filer?... filer lagres typisk på en harddisk...... head, track, sector, cylinder... Rotationshastighed fx 10000 RPM, Læse/skrivehast. 50 MB/s 17

Adgang til harddisken en harddisk er et block device, adgang via device driver Logiske disk-blokke af f.eks. 1KB 0 1 2 3 4 5 6 7 Disk device driver... bloknummer oversættes til (head,track,sector,cylinder)... Disk controller 18

Filsystemer... en disk opdeles i partitions som hver har et filsystem... BOOT: indlæs og kør kode fra MBR indlæs og kør kode fra boot block på aktiv partition opbygger datastrukturer i kernen jvf. super block 19

Administration af ledige blokke Filsystemet skal også holde styr på ledige blokke, samme problematik som ved lageradministration... Kædet liste Bitmap over ledige blokke En kæde af enkelt blokke er ineffektivt... Blokke allokeres og frigøres oftest i sammenhængende grupper Lav kæde af grupper af sammenhængende blokke... Ledige blokke kan også samles i en speciel fil... 20

Organisering af filer: samlet blok... en fil er en samling blokke på disken... Ide nr. 1: en fil lagres i sammenhængende blokke... 21

Organisering af filer: samlet blok... en fil er en samling blokke på disken... Ide nr. 1: en fil lagres i sammenhængende blokke...... simpelt, effektivt at læse en fil, men...... ved dynamisk brug fås fragmentering og spildt plads... 21

Organisering af filer: FAT Ide nr. 2: en fil lagres som en kædet liste af blokke... 22

Organisering af filer: FAT Ide nr. 2: en fil lagres som en kædet liste af blokke...... god udnyttelse af diskplads...... kun den sidste blok i en fil kan være delvis tom... 22

Hvor lagres den kædede liste? Hvis pointere gemmes som en del af blokkene:... random access: ekstremt langsomt - kræver gentagne opslag på disken... Hvis pointere gemmes i en FAT tabel, som indlæses i RAM:... random access kræver nu kun gentagne opslag i RAM...... tabellens størrelser svarer til antal blokke på disken... 23

Organisering af filer: i-nodes Ide nr. 3: en fil lagres som en træ-struktur af blokke 24

Organisering af filer: i-nodes Ide nr. 3: en fil lagres som en træ-struktur af blokke... filens attributter og blokke beskrives af dens i-node... 24

UNIX i-node i-node fra UNIX V7's filsystem... ialt 64 bytes... 25

UNIX i-node i-node fra UNIX V7's filsystem... ialt 64 bytes...... i-nodes for åbne filer gemmes i lageret...... random access kræver få søgninger på disk... 25

Hierarki af blokke Hvor mange blokke kan en fil bestå af?... afhænger af blokstørrelsen og antal bytes i en disk-adresse... 26

Implementation af kataloger... et katalog knytter navne til filer... i-node... i UNIX V7 er en indgang i et katalog 16 bytes... 27

[Q/A] Hvilke attributter kan flyttes til kataloget, for en UNIX V7 i-node? We is cute, can play with all files 28

Et typisk UNIX filsystem Superblok beskriver antal i-nodes, ledige datablokke,... Datablokke er typisk 1KB... Root-kataloget ligger i fast blok... Linux bruger ofte ext# (-Linux: ext2, nyeste: ext4) http://e2fsprogs.sourceforge.net/ext2.html 29

UNIX systemkald, kataloger 30

UNIX systemkald, kataloger Links mellem filer er blot flere henvisninger til samme i-node... 30

UNIX systemkald, filer Åbne filer identificeres med en file descriptor: stdout (0), stdin (1), stderr (2) 31

Søgning efter en fil /usr/ast/mbox 32

File descriptors... en file descriptor udpeger i-node og info om filposition...... file descriptors er lokale for en proces, men info skal deles... 33

Filtyper og rettigheder i UNIX... 16 bit mode fås ved et OR af følgende bitmønstre... 1111 0000 0000 0000 bitmask for the file type bitfields 1100 0000 0000 0000 socket 1010 0000 0000 0000 symbolic link 1000 0000 0000 0000 regular file 0110 0000 0000 0000 block device 0100 0000 0000 0000 directory 0010 0000 0000 0000 character device 0001 0000 0000 0000 fifo 0000 1000 0000 0000 set UID bit 0000 0100 0000 0000 set GID bit (see below) 0000 0010 0000 0000 sticky bit (see below) 0000 0001 1100 0000 mask for file owner permissions 0000 0001 0000 0000 owner has read permission 0000 0000 1000 0000 owner has write permission 0000 0000 0100 0000 owner has execute permission 0000 0000 0011 1000 mask for group permissions 0000 0000 0010 0000 group has read permission 0000 0000 0001 0000 group has write permission 0000 0000 0000 1000 group has execute permission 0000 0000 0000 0111 mask for permissions for others (not in group) 0000 0000 0000 0100 others have read permission 0000 0000 0000 0010 others have write permisson 0000 0000 0000 0001 others have execute permission 34

Eksempel: Ændring af rettigheder s = chmod(name, mode) $ ls -l total 44 drwx------ 3 eernst users 4096 Nov 12 09:24 Desktop drwx------ 7 eernst users 4096 Nov 13 20:02 Mail drwxrwxr-x 2 eernst users 4096 Oct 10 22:17 bin drwxrwxr-x 3 eernst users 4096 Sep 10 15:45 cvs -rwxr-xr-x 1 eernst users 24 Nov 13 12:46 foo.sh $ $ chmod 700 foo.sh $ $ ls -l total 44 drwx------ 3 eernst users 4096 Nov 12 09:24 Desktop drwx------ 7 eernst users 4096 Nov 13 20:02 Mail drwxrwxr-x 2 eernst users 4096 Oct 10 22:17 bin drwxrwxr-x 3 eernst users 4096 Sep 10 15:45 cvs -rwx------ 1 eernst users 24 Nov 13 12:46 foo.sh 35

Eksempel: Ændring af rettigheder s = chmod(name, mode) $ ls -l total 44 drwx------ 3 eernst users 4096 Nov 12 09:24 Desktop drwx------ 7 eernst users 4096 Nov 13 20:02 Mail drwxrwxr-x 2 eernst users 4096 Oct 10 22:17 bin drwxrwxr-x 3 eernst users 4096 Sep 10 15:45 cvs -rwxr-xr-x 1 eernst users 24 Nov 13 12:46 foo.sh $ $ chmod 700 foo.sh $ $ ls -l total 44 drwx------ 3 eernst users 4096 Nov 12 09:24 Desktop drwx------ 7 eernst users 4096 Nov 13 20:02 Mail drwxrwxr-x 2 eernst users 4096 Oct 10 22:17 bin drwxrwxr-x 3 eernst users 4096 Sep 10 15:45 cvs -rwx------ 1 eernst users 24 Nov 13 12:46 foo.sh 700 i octal er 0000000111000000 i binær 35

Delt adgang til filer Hvad sker der hvis flere processer har adgang til samme fil?... UNIX understøtter shared og exclusive locks på dele af filer... 36

[Click] Hvordan er forholdet mellem shared og exclusive locks? A. En applikation skal vælge om den vil bruge shared eller exclusive locks, det er et spørgsmål om stil B. På et givet område må der højst være én exclusive lock og k shared locks C. En shared lock kan holdes af mere en en proces, en exclusive lock holdes altid af højst én proces D. Opdatering kræver en exclusive lock, aflæsning kan nøjes med shared lock E. Ved ikke 37

Performance, caching... gem ofte brugte diskblokke i RAM... 38

Performance, caching... gem ofte brugte diskblokke i RAM...... skriv til disk med jævne mellemrum (sync)... 38

Performance vs. blokstørrelse Lille blokstørrelse, lille pladstab i sidste blok, mange blokke... Stor blokstørrelse, stort pladstab i sidste blok, få blokke... 39

Opsummering Filbegrebet: data på sekundært lagermedie, fortolkes Attributter: Navn, type, størrelse, rettigheder OS støtte: Dir.mgmnt, Basic FS, Device org. Katalogstrukturer: træ, DAG, løkker, dog symlinks Filstruktur Styring af diskblokke, inkl. ubrugte i-nodes, indirect/double/triple blocks Samtidig brug af filer fra >1 proces Cache, performance 40