Hva er en fil logisk sett?

Like dokumenter
Filhåndtering. Fysisk organisering av filer. Hva er en fil logisk sett? Eksempel: Post (record) orientert fil. Kjell Åge Bringsrud INF 103

Generelt om permanent lagring og filsystemer

Filer i Linux og Bourne-again shell

Oppgave 2: Gå til roten (/) av systemet. Finn minst tre forskjellige måter å gå tilbake til hjemmekatalogen din på.

Filsystemet fra innsiden

Filer i Linux og Bourne-again shell

Tildeling av minne til prosesser

Håndtering av filer og kataloger

Håndtering av filer og kataloger

Tildeling av minne til prosesser

En harddisk består av et lite antall plater av et magnetisk materiale.

Tildeling av minne til prosesser

Innhold uke 10. Objektorientert programmering i Python. Oblig 7 og 8. IN1000 Seminar! IN1000 Høst 2018 uke 10 Siri Moe Jensen

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.

Flerveis søketrær og B-trær

Dagens tema. Flere teknikker for å øke hastigheten

Litt om Javas class-filer og byte-kode

Dagens temaer. Kort repetisjon. Mer om cache (1) Mer om cache (2) Read hit. Read miss. Write hit. Hurtig minne. Cache

Filbehandling. Begreper

Læringsmål og pensum. Oversikt. Systemprogramvare Operativsystemer Drivere og hjelpeprogrammer. To hovedtyper programvare

Dagens temaer. Dagens emner er hentet fra Englander kapittel 11 (side ) Repetisjon av viktige emner i CPU-design.

Mål. Pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Filer og unntak (exceptions) Utgave 3: Kap. 6. Terje Rydland - IDI/NTNU

6105 Windows Server og datanett

6105 Windows Server og datanett

Funksjonalitet og oppbygning av et OS (og litt mer om Linux)

C# (.Net) EE1212 Objektorientert programmering

Generelt om operativsystemer

UNIVERSITETET. Indeksering. Konvensjonelle indekser B-trær og hashing Flerdimensjonale indekser Hashliknende strukturer.

Generelt om operativsystemer

En harddisk består av et lite antall plater av et magnetisk materiale.

Grunnkurs i. Windows Utforsker. Nordre Land kommune IKT-avdelingen

Hashing. INF Algoritmer og datastrukturer HASHING. Hashtabeller

Repetisjon: Binære. Dagens plan: Rød-svarte trær. Oppgave (N + 1)!

Plan for dagen. Vprg 4. Dagens tema - filbehandling! Strømmer. Klassen FilLeser.java. Tekstfiler

UNIVERSITETET I OSLO

NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse

Javas klasse-filer, byte-kode og utførelse (og litt om C# sin CIL-kode)

Læringsmål og pensum. Inn- og utoperasjoner 21/10/16

INF Algoritmer og datastrukturer

Det matematisk-naturvitenskapelige fakultet

Alg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing. Børge Rødsjø

Plan. Oppgaver og repetisjon Eksempler med fikspunkt og induksjon: 1. sortering 2. divisjon 3. Heis? IN 315: Foilsett 9: Unity: Arkitekturer

IN Algoritmer og datastrukturer

Definisjon av prosess

Innhold. Virtuelt minne. Paging i mer detalj. Felles rammeverk for hukommelseshierarki Hukommelseshierarki-2 1

UNIVERSITETET. Indeksering. Hvordan finne et element raskt? Vera Goebel, Ellen Munthe-Kaas

Oversikt. Beskrivelse Bash. 1 UNIX shell. 2 Kommandolinje som brukergrensesnitt. 3 Input og output. 4 Bash builtins. 5 Linux utilities.

Introduksjon til fagfeltet

Filterprogrammer og redirigering av I/O

FYS3240/4240 Forslag til prosjektoppgave for Lab 4: DAQ-øvelse med LabVIEW

Et eksempel: Åtterspillet

Operativsystemer og grensesnitt

Eksamen DAT 103. Oppgave 2. Kandidatnr.: 145 1) B 2) B 3) A 4) A 5) D 6) C 7) B 8) A 9) A 10) D

TDT4105 Informasjonsteknologi, grunnkurs

Programmeringsspråket C Del 3

Lars Vidar Magnusson. October 11, Lars Vidar Magnusson () Forelesning i Operativsystemer October 11, / 28

Forskjeller mellom masselager og hovedminne. Permanent? Allokasjonstabell. Filer. Sekvensielle filer. Operativsystemets rolle

Kurset består av to relativt uavhengige deler. Foreleser: Hårek Haugerud, rom PS431

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

Filterprogrammer og redirigering av I/O

Andre sett obligatoriske oppgaver i INF3100 V2013

Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først

Filsystemer og gjennoppretning av data

Sist gang (1) IT1101 Informatikk basisfag. Sist gang (2) Oppgave: Lenket liste (fysisk) Hva menes med konseptuelt og fysisk i forb med datastrukturer?

Innhold. Oversikt over hukommelseshierakiet. Ulike typer minne. Innledning til cache. Konstruksjon av cache Hukommelseshierarki-1 1

Linux distribusjoner

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk

Linklaget - direkte forbindelser mellom noder

Operativsystemer og nettverk

Dagens temaer. Cache (repetisjon) Cache (repetisjon) Cache (repetisjon)

TDT4105 Informasjonsteknologi, grunnkurs MatLab: Filbehandling - load, save, type - fopen, fgetl, feof, fprintf, fclose

Dagens temaer. Mer om cache-hukommelse (kapittel 6.5 i Computer Organisation and Architecture ) RAM ROM. Hukommelsesbusser

Hva er en liste? Hvert element har en forgjenger, unntatt første element i listen. Hvert element har en etterfølger, unntatt siste element i listen

Indeksering. Konvensjonelle indekser B-trær og hashing Flerdimensjonale indekser Treliknende strukturer Hashliknende strukturer Bitmapindekser

INF2220: Forelesning 3. Map og hashing Abstrakte datatyper (kapittel 3.1) Map (kapittel 4.8) Hashing (kapittel 5)

Løsningsforslag Eksamen i TDT4190 Distribuerte systemer

INF2220: Forelesning 3

Indeksering. Konvensjonelle indekser B-trær og hashing Flerdimensjonale indekser Trestrukturer Hashliknende strukturer Bitmapindekser

Hvordan lage en hjemmeside

Minnehåndtering i operativsystemer

IN1020. Minnehierarki

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Oversikt. Historie Struktur Moderne UNIX systemer Moderne UNIX kernel struktur 1 UNIX. 2 Linux. 3 Process. 4 Process models

Temaer til terminalserverinstallasjon

UNIVERSITETET I OSLO

INF Algoritmer og datastrukturer

Transkript:

Filhåndtering Kjell Åge Bringsrud (Foiler fra Olav Lysne) INF 103 Filhåndtering 1 Hva er en fil logisk sett? En samling data til ett eller annet formål En kjørbar programfil En fil med kildekode til et program En samling tall som skal benyttes av et program som driver med numerisk analyse Informasjon om andre filer (linker, directories) Et tekstdokument i ett eller annet gitt format En samling administrative data som henger sammen på ett eller annet vis både internt og med andre filer Representasjon av et bilde, en lydsekvens, en film, et kunstverk Filhåndtering 2 1

Eksempel: Post (record) orientert fil En post-orientert fil består av en samling av poster (records), som hver består av en sekvens av felt (fields). Vanlig form for organisering innen databaser. Filhåndtering 3 Fysisk organisering av filer Et logisk bilde av en fil må kunne representeres på et fysisk medium. Sylinder Plate (platter) Spor Sektor Blokk Filhåndtering 4 2

Blokker En blokk er den minste enheten som kan leses fra eller skrives til på en disk. Et program som leser ett ascii tegn fra en fil, vil kreve at det leses en hel blokk av disken. En typisk (og svært vanlig) blokkstørrelse er 512 byte. Hele disken har samme blokkstørrelse. Det betyr at dataene er lagret på mindre fysisk plass innerst på disken enn ytterst. Dette gjør oppgaven til diskhodet mye enklere. Filhåndtering 5 Mapping av post-filer til diskblokker Det er (som regel) ingen sammenheng mellom poststørrelse og blokkstørrelse på en maskin. Filhåndtering 6 3

Blokkstørrelse Vanligvis 512, evt 256 eller 1024. En fil krever minimum en blokk, uansett hvor liten den er. Det er en avveining mellom effektiv lesing/skriving, og god utnyttelse av diskplass i valg av blokkstørrelse. Det er ikke nødvendigvis slik at de blokkene som inneholder en fil er lokalisert i nærheten av hverandre. Det er imidlertid ofte ønskelig av ytelsesårsaker. Filhåndtering 7 Operativsystemets filtyper Windows og UNIX har bare to filtyper Kataloger (directories) og datafiler. Datafilene sees på som en byte-strøm. For å holde rede på forskjellige filtyper benyttes forskjellige navne-utvidelser..doc.c.java Dette gir fordeler i form av enkelhet i filsystemet. Det overlater imidlertid ansvaret for en del funksjonalitet til applikasjonsprogrammereren. Filhåndtering 8 4

Men hva med Random Access filer? Enkelte logiske filtyper er slik at vi typisk ikke ønsker å lese hele filen fra starten av, men ønsker tilgang til en post midt inni Databasefiler er typiske eksempler Disse kalles gjerne post-baserte (record-based) IBM OS/390 har et rikere sett av filtyper, hvor dette problemet er løst av OSet. Mer om dette senere Filhåndtering 9 Andre egenskaper ved filer som systemet kan støtte Tilgangskontroll Skrive Lese Eksekvere Kopiere, kunnskap om eksistens Forskjellige brukergrupper. Assosiere et program med en fil på en annen måte enn vha. slutten på filnavnet). Filhåndtering 10 5

Fil håndteringsystemets (FS) rolle Tjener som et grensesnitt mellom brukerens logiske bilde av filen, og maskinens fysiske realiteter. Skjuler begreper som sektorer, plater og blokker. Tilbyr et felles sett av kommandoer for alle filer uavhengig av lagringsmediets egenskaper (floppy, harddisk, blokkstørrelser etc.) Sjekker gyldigheten av forespørsler, og oversetter dem til f.eks lesing og skriving av enkelte blokker. For å få til dette vedlikeholder systemet en katalog- (directory-) struktur. Filhåndtering 11 Logisk bilde av FS sin rolle Filhåndtering 12 6

Hva skjer ved kommandoen prompt> cp frafil tilfil 1. Shell ber FM åpne filen frafil og opprette filen tilfil. 2. FM sjekker om frafil finnes, i tilfelle settes det av bufferplass i minnet til (minst) en diskblokk. 3. FM sjekker om det er plass til tilfil. I tilfelle opprettes den med det nødvendige antall blokker. 4. Shell informeres om at punkt 2 og punkt 3 over gikk bra. 5. Shell ber FM om å lese litt (typisk en blokk) av frafil 6. FM leser en blokk av frafil inn i det avsatte bufferet. 7. Shell ber FM om å skrive bufferet ut til en blokk av tilfil. 8. FM skriver bufferet ut til frafil 9. Punktene 5-8 gjentas det nødvendige antall ganger. 10. Filene lukkes 11. Kopieringen avsluttes. Filhåndtering 13 Tre typer operasjoner De som opererer på hele filer Kopier, flytt, lagre, etc. De som bare opererer på informasjon om filen uten å endre filen selv. Endre sikkerhetsnivå, endre navn på filen De som endrer innholdet i filer Skriv, legg til, fjern Hvilken funksjonalitet som her er nødvendig er avhengig av om filene ansees som strøm-baserte eller post- (record-) baserte. Filhåndtering 14 7

Funksjoner som endrer innholdet i filer Post-baserte filer Åpne og lukke filer Lese en post Skrive en post Fjerne en post Endre en post Hvilken post (record) man opererer på angis gjerne med en unik nøkkel. Mer om dette i andre kurs. Strøm-baserte filer Åpne og lukke filer Lese et antall byte Skrive et antall byte Spole frem og tilbake Dersom OS kun tilbyr denne typen filer, må de post-baserte operasjonene implementeres av de applikasjonene som trenger dem. Filhåndtering 15 Logisk fil-aksess Sekvensiell aksess Byte-strøm Magnetisk tape analogi Støttes av alle OS. Random aksess Tilgang til enkelt-poster Tilgang basert på kjennskap til hvilken logisk blokk posten befinner seg i. Ved f. eks Hashing. Logisk blokkstørrelse behøver ikke være det samme som fysisk blokkstørrelse - man ønsker ikke å endre alle applikasjoner selv om man bytter til en disk med annen fysisk blokkstørrelse. Omregning fra logisk blokk til fysisk blokk må gjøres av Filsystemet Støttes av nesten alle moderne OS. Filhåndtering 16 8

Logisk aksess forts. Indeksert aksess. Tilgang til poster gjennom flere forskjellige indekser. Oppslag i telefonkataløgen ved hjelp av Etternavn eller gatenavn eller kommune eller telefonnummer eller. Implementert ved hjelp av pekere fra indekslister til blokker. Gjerne kombinert med sekvensiell eller random access. Implementasjonen av indeksert aksess er ofte overlatt til applikasjonen, men noen OS har et FS som støtter indeksert aksess direkte (IBM OS/390). Filhåndtering 17 Fysisk fillagring FM må tilordne blokker til filer, og holde rede på hvilke blokker en fil består av. For sekvensiell aksess bør dette gjøres slik at det er mulig å aksessere alle blokker etter hverandre på en rask måte. For random aksess er det viktig at det finnes effektive metoder for å få tak i en gitt blokk midt inne i en fil. De to kravene over står ofte i motsetning til hverandre. Tre vanlige metoder Kontinuerlig Pekerkjede Indeksert Filhåndtering 18 9

Kontinuerlig blokk-allokering Dette er den enkleste metoden Enhver fil lagres i blokker som følger etter hverandre. men hva betyr etter hverandre her? Jo at diskhodet lett kan lese blokkene i sekvens. Filhåndtering 19 Kontinuerlig forts. Styrker Sekvensiell aksess blir svært effektiv. Random aksess kan gjøres enkelt-hvilken blokk en post ligger i kan lett regnes ut. Svakheter Vanskelig med filer som vokser over tid de må få satt av all den plassen de trenger med en gang, evt flyttes når de er for store. Fragmentering av disken når en fil blir fjernet er man sjelden så heldig at det dukker opp en ny fil som er akkurat like stor. Filhåndtering 20 10

Kontinuerlig - fragmentering Dette problemet minner mye om fragmenteringsproblemet for minnehåndtering. Metodene for å håndtere dem er de samme: Allokering ved First fit første og beste Best fit den minste som er stor nok Worst fit den største ledige plassen (fordi det da er større sjanse for at det som er igjen er stort nok til å kunne benyttes av noen andre). I siste instans må disken jevnlig reorganiseres for å fjerne fragmenteringsproblemer. Defragmentering, eller defragging, kompaktering. Filhåndtering 21 Pekerkjede En fil kan spres ut over de blokkene som er tilgjengelige. I slutten av hver blokk ligger en peker til neste blokk. Listen kan også være toveis, ved at hver blokk også inneholder en peker til forrige blokk. Filhåndtering 22 11

Pekerkjede forts. Styrker God utnyttelse av diskkapasitet Velegnet til sekvensiell aksess Ingen fragmenteringsproblemer Svakheter Dårlig egnet for random access. Hva med evnen til å tolerere feil i en diskblokk..? Filhåndtering 23 Indeksert allokering Samme grunnidé som pekerkjeder, men med den forskjell at alle pekere (indekser) ligger på samme sted (indeks blokken). Det er mao. én indeksblokk per fil. Filhåndtering 24 12

Indeksert allokering Styrker Egnet for sekvensiell aksess Velegnet for random aksess Ingen fragmentering Svakheter Bruker en hel blokk til pekere uavhengig av hvor stor filen er. Hva når indeksblokken blir for liten? Man kan søke å allokere så mange kontinuerlige blokker som mulig. Indeksblokken trenger da bare ta vare på adressen til den første blokken, og antallet blokker for hvert cluster av blokker (Windows 2000). Filhåndtering 25 UNIX allokeringsmetode Indeksert aksess med et antall første nivå indekser. I tillegg én peker til et 2- nivå hierarki, én til et 3- nivåhierarki, og én til et 4-nivåhierarki. Dette er tilstrekkelig for filer opp til flere hundre GigaByte. Filhåndtering 26 13

UNIX i-node Filhåndtering 27 FAT File Allocation Table Brukt i MS-DOS, Windows, OS/2 I stedet for en indekstabell per fil, er det en felles indekstabell for hver disk. Hver linje i en FAT tilsvarer en blokk (cluster av blokker) på disken. Hver linje inneholder en peker til neste blokk i filen. Et spesielt tegn tabellen angir at dette er filens siste blokk Filhåndtering 28 14

FAT-eksempel fra boken Filhåndtering 29 FAT Styrker Samme som indeksert aksess Enklere å sette av bare den indeksplassen som trengs. Svakheter Opprinnelig bare satt av 16 bit til å lagre hver peker det gir kun 65536 mulige blokker (clustre) På store disker må derfor blokkene (clustrene) bli store, slik at mye plass går til spille ved små filer. FAT32 løser dette problemet, men FAT ser allikevel ut til å fases ut av Micrsoft. Filhåndtering 30 15

Håndtering av ledig plass Bitmap Setter av en bit som er 0 dersom blokken er ledig, og 1 dersom den er opptatt. Fordeler Trenger lite ekstra plass Enkelt å implementere Lett å finne kontinuerlige sekvenser av ledige blokker. Ulemper Når en fil slettes risikerer man å overskrive blokkene med en gang uheldig for recovery. Filhåndtering 31 Håndtering av ledig plass forts. Kø/Pekerkjede Vedlikeholder en oversikt over alle ledige blokker i en kø. Blokker som akkurat har blitt ledige legges bakerst i køen Allokering av nye blokker skjer forfra. Styrke Bra for recovery av fjernede filer det tar lang tid fra en fil blir slettet til innholdet i den er borte fra diskblokkene. Svakhet Gir svært inneffektiv allokering av blokker kontinuerlige blokker er vanskelig å finne. Filhåndtering 32 16

Fjerning av diskdata Merk at vi har antatt at idet en fil slettes, så vil de blokkene som inneholdt filen ikke berøres. Dette er den vanligste måten å gjøre det på, siden det opplagt er det som krever minst ressurser Det gir imidlertid en sikkerhetsrisiko en fil som er slettet er ikke det samme som et dokument som er makulert. Det finnes software som virkelig sletter de blokkene som ikke er i bruk på disken. Filhåndtering 33 Katalogstrukturer Historisk Flate struktur - alle filer på samme nivå Vanskelig å holde oversikt Navnekollisjoner skjer ofte Alle brukere må ha hensyn til hverandres filnavn Struktur med to nivåer Skiller brukerfiler fra hverandre og fra systemfiler Fremdeles vanskelig for en bruker med mange filer å holde oversikt. I dag hierarkiske strukturer Trær (MS-DOS, og eldre Windows) Asyklisk graf (UNIX og nyere Windows) Filhåndtering 34 17

Trestrukturert katalog Relevante begreper er rot (root), sti (path), stinavn (path name), nåværende katalog (current) etc. Dette er kjent stoff! Filhåndtering 35 Asyklisk graf En enkel generalisering av trestrukturert katalog, som tillater lenker (links) fra et sted i katalogen til en fil eller mappe/directory som ligger et annet sted. Dette er praktisk av flere grunner Flere brukere kan innlemme et filområde blant sine filer for å lette samarbeide Tillater en bruker å benytte korte enkle navn i stedet for lange stinavn. Opprettes i UNIX ved ln kommandoen f eks: ln s /hom/olavly OlavSittOmråde gir en peker ved navn OlavSittOmråde som peker til olavly sitt hjemmeområde. Filhåndtering 36 18

Asyklisk graf - eksempel Filhåndtering 37 Asyklisk graf forts. Når en fil fjernes kan man få en linker som ikke peker noen steder lengre Man kan jo vente til den siste linken er fjernet før man fjerner filen. Hvordan vet man når den siste linken er fjernet? Man kan for hver fil telle opp antall linker hver gang de opprettes, og telle ned hver gang en fjernes. Hva når det blir løkker i grafen slik at den ikke lenger er asyklisk? Det må unngås! Ved sykler i grafen vil blant annet verktøy som søker etter filer gå i det uendelige. Filhåndtering 38 19

Tilnærming til linker Skal alle linker til en fil være sidestilte (hard link), eller skal en link eie filen (symbolic links). Filhåndtering 39 Oppsummering Vi har sett på det logiske filgrepet og hvordan det kan implementeres på fysiske medier. Diskens oppdeling i plater, sylindre, sektorer og blokker. Filsystemets oppgaver og funksjonalitet Aksesstyper for filer: Sekvensiell Random Indeksert. Filhåndtering 40 20

Oppsummering forts. Håndtering av ledige blokker/allokering av plass Bittabell Kø/pekerkjede Katalogstrukturer Trestruktur Asykliske grafer linker Fysisk lagring tilordning av blokker til filer: Kontinuerlig Pekerkjede Indeksert Filhåndtering 41 21