File systemen. File attributen

Vergelijkbare documenten
File systemen. File attributen

Virtueel Geheugen en demand paging (1)

Geheugen en Adressering. Binding. Binding (2) Logische en Fysieke adresruimten. relocatie register. Dynamic loading

Memory Management. Virtual Memory. Eisen Memory Management. Verdelen geheugen over meerdere processen

Bestandssystemen. yvan vander sanden. 16 maart 2015

Basis UNIX commando's - overzicht

Computerarchitectuur en netwerken. Operating System structuur. Files

Oefening 1: hardware block devices (zoals harde schijven) herkennen

Dit zijn latency s die voorkomen bij het selecteren van het juiste geheugenadres in de RAM.

De Floppy Disk Drive (5)

Korte uitleg: Wie mag wat met welk bestand

Software. Opdrachten - Deel 1. Naam: Klas: 2015 versie:concept-3.4.2

Bouwstenen voor PSE. Datatypes en Datastructuren

' Het tentamen is gesloten boek, dus het is niet toegestaan om het tekstboek, slides of eigen gemaakte aantekeningen te gebruiken.

8 bits: NTFS op bitniveau

Centrale begrippen hoofdstuk 3. Waarom multiprogramming? Vandaag. processen proces state: running, ready, blocked,... Vragen??

Geheugenbeheer. ICT Infrastructuren 2 december 2013

Inleiding Practicum Operating Systems

Productmeeting EqualLogic

in Operating System Concepten Doel van een Operating System Interrupts 3-Lagen model spooling (Simultaneous Peripheral Operation On Line)

in Operating System Concepten

FAT32 disk structuur 2007 stam.blogs.com

Examen besturingssystemen

Tentamen 17 augustus 2000 Opgaven Computerarchitectuur

High Availability & Disaster Recovery

Erik Poll Martijn Warnier.

Computerarchitectuur en netwerken Toets 1 4 okt

Huiswerk Linux: Apache groepsrechten

4/4 Bestandssystemen

TI-2720 Operating System Concepten. 21 januari 2013, uur. docent: H.J. Sips. Dit is een tentamen met 9 open vragen

Examen besturingssystemen

We beginnen met een strikvraag: Welk van de volgende zijn bestanden?

Inleiding Practicum Operating Systems

NW09 NTFS machtigingen

Blackboard Gebruikersdag

Computerarchitectuur en netwerken. Memory management Assembler programmering

Korte uitleg: Mounten van filesystemen

The Linux Cowloop Device Driver

Datastructuren Uitwerking jan

Databases - Inleiding

Nederlandse versie. Inleiding. Hardware. Activeren RAID mogelijkheden. PU103 Sweex 2 Port Serial ATA RAID PCI Card

TSMS Lite, Professional and Enterprise vergelijking

CPU scheduling : introductie

Operating Systems Linux Blok 7a Partities Erik Seldenthuis

Icoon/Icon Betekenis Description. Change scheduling Online. Gaat offline op (datum/tijd) Online. Going offline on (date/time)

Open Enterprise Server 2 en vsphere Best Practises. Michael Wilmsen

Korte uitleg: Mounten van filesystemen door de desktopgebruiker

DB architectuur.

SCSI INSTALLATIE. Bij een SCSI netwerk tussen bijvoorbeeld 2 BERT interfaces en 1 Harddisk. Terminator geen Terminator Terminator.

Deel 2: Endnote bibliografische software gebruiken als databasemanager en editor

In deze aflevering van deze serie zal ik proberen een groot gebrek van Turbo Pascal weg te nemen, namelijk het gemis aan Random Access Files.

Intake Formulier Opleidingen

ESA Week 4a: Unix. Vandaag: versiebeheer (RCS, CVS, SVN) Donderdag: Compilatiebeheer, SSH en nog het een en ander

Belangrijkste ideeën/concepten uit OS, incl. proces

Hoofdstuk 3: Processen: Beschrijving en Besturing. Wat is een proces? Waarom processen? Wat moet het OS ervoor doen? Is het OS zelf een proces?

Digitale opslag. Wat als er geen tape meer bestaat? 20 maart 2013

Werken met het DOS commando Fdisk

Windows Command Prompt

Subject: Backups en Beestjes

RAM optimaliseren: Cacheman

Handleiding DirectAdmin

Linux Server Installatie

Beveiliging van persoonlijke bestanden door middel van encryptie een tutorial door Nick heazk Vannieuwenhoven

Les 3, di : De Installatie van Windows Server Windows Server De installatie van Windows Server 2012

Info-books. Toegepaste Informatica. Deel1c : Systeemsoftware (Win XP), netwerken en hardware. BI1c. Jos Gils Erik Goossens

Examen Programmeren 2e Bachelor Elektrotechniek en Computerwetenschappen Faculteit Ingenieurswetenschappen Academiejaar juni, 2010

Harde schijven hebben tegenwoordig zelfs een capaciteit van 4 tot 15 gigabyte. Een gigabyte is 1024 megabyte.

Examen besturingssystemen

Installatiehandleiding. Facto minifmis

HOWTO: Configuratie van Samba als PDC

Werkplekbeheer en kantoorautomatisering Examennummer: Datum: 24 maart 2012 Tijd: 13:00 uur - 14:30 uur

1.2 ENVIRONMENT DIVISION.

Opgave Tussentijdse Oefeningen Jaarproject I Reeks 4: Lcd Interface & Files

Access to innovation. Televersal Deltatraining OpensScape Business. OpenScape Business Deltatraining. Backup en restore.

Besturingssystemen beschrijving van de belangrijkste functies.

slides2.pdf April 12,

Transcriptie:

File systemen Een file is een verzameling gegevens met een naam en andere attributen. Een file wordt bewaard in de vorm van een reeks bytes op permanent geheugen (b.v. disk of tape) Een file systeem bestaat uit een verzameling files en mechanismen voor het opslaan en benaderen hiervan. Gegevens over files worden opgeslagen in directories. 8-1 File attributen naam type (hoe kan de file gebruikt worden?) omvang eigenaar (creator) bescherming (wie heeft toegang, en hoe?) tijdstempels (creatie, laatste gebruik, laatste wijziging) (locatie op disk) 8-2 1

File operaties (1) minimale set create (filenaam) read (filenaam, positie, buffer, lengte) write (filenaam, positie, buffer, lengte) delete (filenaam) ( truncate (filenaam, lengte) ) meestal aan te vullen met: open en close operaties m.b.v. file-id en current file-pointer 8-3 File operaties (2) gebruikelijke set create (filenaam) open (filenaam, mode) file-id read (file-id, buffer, lengte) write (file-id, buffer, lengte ) reposition (file-id, positie) delete (file-id) close (file-id) ( truncate (file-id, lengte) eventueel: setattributes en getattributes 8-4 2

Open-file table Per proces een open-file table. bevat een entry voor iedere open file entry bevat o.a. current file-pointer en locatie op disk bij multi-user systemen: 2 niveaus van open-file tables: per proces een open-file table, bevat current file pointer voor dat proces één systeembrede open-file table bevat o.a. locatie op disk open-file count 8-5 Open-file Table (2) voorbeeld: UNIX read(4, ) data blokken inodes open-file table file-structure table in-core inode table user space system space disk space 8-6 3

File typen file type geeft informatie over inhoud en gebruiksmogelijkheden : type vaak opgenomen in laatste onderdeel van filenaam: b.v. harvest.exe is een executable b.v. cipher.asm bevat assembler source code 8-7 Access Methods Access Method (Toegangswijze): Op welke wijze worden de gegevens in de file benaderd Sequential access : blokken alleen in volgorde vanaf het begin van de file te benaderen b.v. read, leest volgend blok Direct Access : blokken in willekeurige volgorde te benaderen b.v. read n, leest (relatief) bloknummer n Overige Access methoden: b.v. Indexed Sequential Access Method 8-8 4

Directory structuur (1) File systeem bestaat uit 1 of meer partities relatie tussen partitie en disk (volume) verschillend voor verschillende systemen per partitie een directory directory bevat een entry voor iedere filenaam in de partitie entry bevat file-attributen en locatie-gegevens 8-9 Directory structuur (2) operaties: search (directory, filenaam) create (directory, filenaam) delete (directory, filenaam) list (directory) rename (directory, filenaam, nieuwe filenaam) setattributes(directory, filenaam, attribute values) getattributes(directory, filenaam, attributes) 8-10 5

Single level directory Alle files in één lijst voordelen: eenvoudig nadelen unieke namen nodig lange zoektijden 8-11 Two-level directories(1) Per user een eigen directory Master directory bevat pointers naar user directories voordelen: unieke namen per gebruiker kortere zoektijden voor/nadeel scheiding tussen files van verschillende gebruikers 8-12 6

Two-level directories (2) Voor benaderen van file van andere gebruikers : padnaam opgeven, d.i. usernaam en filenaam, b.v. /pieters/harvest.exe Soms ook partitie opgeven b.v. (bij MS-DOS): C:\results\monday.dat systeemprogramma's in aparte directories. Zoekvolgorde opgeven in searchpad d.i. een lijst van padnamen van directories 8-13 Multi-level directories: bomen (1) generalisatie van two-level directory iedere file bereikbaar vanuit de root via een unieke padnaam een directory is ook een file (met een speciaal attribuut) in een directory kunnen zich entries bevinden voor files (sub)directories onderscheid: absolute padnamen en relatieve padnamen ieder proces heeft steeds een current directory 8-14 7

Multi-level directories : bomen (2) voorbeeld /users/staff/pieters/projecta/harvest.data absolute padnaam filenaam Na cd /users/staff/pieters : /users/staff/pieters/projecta/harvest.data current directory relatieve padnaam 8-15 Multi-level directories : bomen (3) Files van andere gebruikers benaderen door: absolute padnaam, of current directory aanpassen, en relatieve filenaam gebruiken, of directory van andere gebruiker opnemen in search pad. (als het om een programma gaat) 971 8-16 8

Acyclic Graph Directory (1) Generalisatie van een boomstructuur Maakt. het o.a. mogelijk (sub)directories te delen (sharing) mogelijke implementaties: symbolic link (soft link) : absolute of relatieve padnaam in andere directory opnemen duplicaat entry in andere directory maken (hard link) : probleem: handhaven van consistentie 8-17 Acyclic Graph Directory (2) Complexer dan boom: doorlopen van directory (dubbele entries) deleten van files, mogelijkheden: bij een delete opdracht file meteen opruimen: bij duplicaat entry wijst de pointer van het duplicaat naar een ongeldige locatie. Dit kan ernstige problemen opleveren. bij een symbolic link wordt naar een niet bestaande file verwezen. Gebruiker merkt dit t.z.t. file pas opruimen als alle referenties naar de file verdwenen zijn referentieteller bijhouden (UNIX: referentie teller voor hard links. Geen hard links naar directories.) 8-18 9

Acyclic Graph Directory (3) soft links voorbeeld: teveel symbolic links dutikos-/home/staff/heijnsd/demo2-> ln -s e.txt f.txt dutikos-/home/staff/heijnsd/demo2-> ln -s f.txt e.txt dutikos-/home/staff/heijnsd/demo2-> ls -l total 2 lrwxrwxrwx 1 heijnsd 5 Oct 1 12:06 e.txt -> f.txt lrwxrwxrwx 1 heijnsd 5 Oct 1 12:06 f.txt -> e.txt dutikos-/home/staff/heijnsd/demo2-> cat f.txt cat: f.txt: Too many levels of symbolic links dutikos-/home/staff/heijnsd/demo2-> 8-19 General Graph Directories Meest algemene vorm; cycles mogelijk verhinderen van eeuwige lussen bij zoekacties door een maximum voor het aantal te doorzoeken directories. garbage collect nodig voor het verwijderen van onbereikbare files met reference count > 0 cycles vermijden bij toevoegen van links is mogelijk, maar kost veel rekentijd. 971 8-20 10

Bescherming (1) reliability bescherming tegen fysieke schade protectie: bescherming tegen ongeauthoriseerde toegang voor protectie is toegangsbeheersing (access control) nodig op niveau van individuele (low level) operaties: read, write, execute. Soms ook: append, delete, list etc. bij iedere file een access list nodig; d.i. een lijst van gebruikers en de operaties die zij mogen uitvoeren. gecomprimeerde versie van access list d.m.v. groepen i.p.v. individuele gebruikers b.v UNIX kent categorieën: eigenaar, groep, wereld., voor iedere categorie mogelijke rechten: r, w, x voor read, write, execute 8-21 UNIX access rechten (1) voorbeeld dutikos-/home/staff/heijnsd-> ls -l select1 -rwxr-x--x 1 heijnsd 24576 Nov 20 1998 select1 iedereen mag het programma uitvoeren de groep mag lezen en uitvoeren de eigenaar mag lezen, schrijven en uitvoeren 8-22 11

UNIX access rechten (2) Eigenaar kan rechten attributen van een file wijzigen d.m.v. het chmod commando. Absoluut : hierbij worden rechten octaal weergegeven, (één octaal digit per groepje van drie bits) Voorbeeld: chmod 750 <filenaam> geeft: user r,w,x recht, group: r,x, public: geen rechten Symbolisch : per categorie (u,g,o) of alle (a) de wijzigingen aangeven, voorbeeld: chmod o+w <filenaam> geeft iedereen schrijfrecht voor <filenaam> 8-23 UNIX access rechten (3) voorbeeld: dutikos-/home/staff/heijnsd-> ls -l select1 -rwxr-x--x 1 heijnsd 24576 Nov 20 1998 select1 dutikos-/home/staff/heijnsd-> chmod o+w select1 dutikos-/home/staff/heijnsd-> ls -l select1 -rwxr-x-wx 1 heijnsd 24576 Nov 20 1998 select1 dutikos-/home/staff/heijnsd-> chmod o+r-w select1 dutikos-/home/staff/heijnsd-> ls -l select1 -rwxr-xr-x 1 heijnsd 24576 Nov 20 1998 select1 dutikos-/home/staff/heijnsd-> chmod 751 select1 dutikos-/home/staff/heijnsd-> ls -l select1 -rwxr-x--x 1 heijnsd 24576 Nov 20 1998 select1 dutikos-/home/staff/heijnsd-> 8-24 12

Bescherming (2) Bescherming van directories analoog aan bescherming van files, maar rechten enigszins aangepast: read betekent: directory entry te zien write betekent: directory entry te wijzigen execute betekent directory entry te gebruiken om de file (of subdirectory ) te vinden Bij benadering van een file via een padnaam moet een gebruiker de juiste rechten hebben voor iedere directory in de padnaam Soms (bij gebruik van links) heeft een gebruiker verschillende rechten voor een file, afhankelijk van de gebruikte padnaam 8-25 Consistentie semantiek Vraag: wat gebeurt er wanneer meerdere gebruikers dezelfde file tegelijk benaderen? met name: Wanneer is het effect van een write door een proces te zien door een ander proces? voorbeelden: UNIX: het resultaat van een write is onmiddellijk zichtbaar voor andere gebruikers (one-copy semantiek ) Andrew: effect van een write pas zichtbaar voor anderen na close. andere benadering: niet muteerbare shared files. 8-26 13

File systeem implementatie introductie Files worden opgeslagen op permanent geheugen (disk, tape,...) alleen disks worden hier besproken model I/O van main memory naar disk in de vorm van blokken van vaste grootte. 1 blok op disk is 1 of meer sectoren (van b.v. 512 bytes) een blok heeft een uniek blok-adres als het blok-adres bekend is, dan is het blok direct te benaderen. een blok is op dezelfde plaats terug te schrijven 8-27 File systeem implementatie organisatie gelaagde structuur: applicatie programma gebruikt system calls (evt. via een subroutine library) logisch file systeem gebruikt directory om file te vinden file organisatie vertaalt logisch blok-adres naar fysiek blok-adres I/O control bevat device drivers en interrupt control routines devices de controllers en de schijven 8-28 14

Mounting File systeem toe te voegen aan een bestaand file systeem d.m.v. mount opdracht. mount geeft aan: de fysieke locatie van het te mounten file systeem de (logische) plaats waar het te mounten file systeem moet worden ingevoegd in het bestaande file systeem mounting vindt o.a. plaats: bij toevoegen van een (verwisselbare) schijf in geval van gedistribueerde systemen, als verbinding wordt gemaakt met een ander file systeem. 8-29 Mounting: voorbeeld device A device B f1 f2 f3 d1 d2 d3 a b c mount B:/d1 A:/f3 geeft een nieuwe logische structuur: device A device B f1 f2 f3 d1 d2 d3 a b c c nu ook bereikbaar als A:/f3/c a b c 8-30 15

Toekennen van schijfruimte aan files overzicht Allocatie methoden: aaneengesloten (contiguous allocation) geketende blokken (linked allocation) geïndexeerde blokken (indexed allocation) 8-31 contiguous allocation (1) aaneengesloten blokken voordelen: minimum aantal seeks nodig eenvoudige administratie geschikt voor sequentiële en directe toegang nadelen externe fragmentatie : dynamic allocation problem; soms compaction nodig interne fragmentatie: grootte van tevoren schatten is vaak moeilijk voor een gebruiker 8-32 16

contiguous allocation (2) variant: primaire allocatie van een aantal aaneengesloten blokken wanneer primaire allocatie niet voldoende, dan een aantal extra gebieden van aaneengesloten blokken (extents) mogelijk. extents hoeven niet te grenzen aan de primaire allocatie of aan elkaar ( voorbeeld IBM: MVS grootte van primary en van extents op te geven door gebruiker. Maximaal 15 extents mogelijk) 8-33 linked allocation (1) geketende lijst van even grote blokken verspreid over de disk voordelen geen externe fragmentatie beperkte interne fragmentatie alle files kunnen groeien nadelen alleen efficient voor sequentiele toegang pointers kosten veel ruimte veel seeks nodig gevoelig voor verminking (of verlies) van pointers 8-34 17

linked allocation (2) variaties dubbel gelinkte lijst i.p.v. enkelvoudig gelinkt MS-DOS File Allocation Table (FAT) pointer naar eerste blok bevindt zich in de directory, pointer naar het volgende blok bevindt zich niet in een blok, maar in de FAT 8-35 indexed allocation (1) Files in blokken verspreid over de schijf ; pointers naar de blokken worden per file bewaard in een index blok voordelen: weinig seeks nodig geschikt voor sequentiële en directe toegang alle files kunnen groeien nadelen: overhead (ruimteverlies) t.g.v. pointers Index blok vaak voor grootste deel leeg (veel kleine files ) 8-36 18

Indexed allocation (2) varianten met oplossingen voor de grootte van het index blok (kleinere) geketende indexblokken (linked scheme ) multilevel index combinatie (vast minimum + multilevel hierarchie) 8-37 Indexed Allocation: basis (met 1 index block) index block data blocks empty 8-38 19

Indexed Allocation: met linked index blocks index blocks data blocks nil 8-39 Indexed allocation: met multilevel index blocks voorbeeld: 3-voudige indirectie 8-40 20

Indexed allocation : vast aantal indexen + multilevel voorbeeld met 128 pointers per index block blok 0 blok 9 0 9 10 137 138 16521 16522 2113673 8-41 Secondary storage (1) voornamelijk disks kleinst leesbare eenheid: sector plaats van een sector volledig bepaald door: drive nummer (diskpack) de plaat (head) de track de sector cylinder : tracks die op verschillende platen vertikaal onder elkaar liggen 971 8-42 21

Secondary storage (2) Disk voor te stellen als een ééndimensionale array van sectoren, met volgorde van nummering: eerst sectoren van cylinder 0, head 0 daarna die van cylinder 0, head 1, etc. Als : s sectoren per track, h heads per cylinder, c cylinders per disk pack, dan sector k van head j van cylinder i heeft array-positie (logisch sectornummer): p = k + s * (j + i * h) 971 8-43 Secondary storage (3) Een proces doet I/O-requests op basis van logisch sectornummer het file-organisatie module vertaalt logisch sectornummer naar cylinder, track en sector adres Op I/O-control niveau (device driver) worden de requests uitgevoerd. 8-44 22

Disk-head scheduling (1) Tijd tussen het starten van de I/O-operatie en het einde van de I/O operatie, bestaat uit: seektijd (t.b.v. het bewegen van de kop naar de goede track) b.v. 10 ms latencytijd (tot goede sector onder de kop) b.v. 8 ms transfertijd (het lezen of schrijven zelf) b.v. 1 ms Seektijd evenredig met het aantal 'over te steken' tracks Bij meer dan één wachtende I/O request, seektijd te bekorten door goede disk-head scheduling 8-45 Disk-head scheduling Algoritmen (1) FCFS (First Come First served) eenvoudig geen starvation seektijden niet optimaal SSTF (Shortest Seek Time First) gunstiger seektijden starvation mogelijk 8-46 23

Disk-head scheduling Algoritmen (2) SCAN. Kop beweegt van track 0 naar track max, en terug. Onderweg worden alle passende requests uitgevoerd. met name geschikt in dynamische omgevingen SCAN-C (Circulair). Kop beweegt van track 0 naar track max, maar voert alleen op de heenweg requests uit. geeft meer uniform wachttijden LOOK en LOOK-C, als SCAN en SCAN-C maar in plaats van track 0 en track max, minimale en maximale tracknummers waarvoor requests aanwezig zijn. 8-47 Disk head scheduling (3) keuze van een algoritme Als zelden meer dan 1 request in de queue, dan is ieder algoritme goed. patroon van de requests heeft ook te maken met single/multi user systeem file allocation methode positie van de directory positie van index tabel SSTF veel gebruikt Bij zware belasting SCAN of SCAN-C beter 971 8-48 24

Disk Management Formattering sectoren aanbrengen logische formattering lege directory FAT (File Allocation Table) vrije ruimte lijst Boot block voor laden van systeem bootstrap programma nodig: gedeeltelijk in ROM ander deel op vaste positie op disk. (MS-DOS: aan begin van hard disk) 8-49 Disk Management Bad Blocks Slechte sectoren registreren en buiten gebruik stellen. Verschillende methodes: IBM-PC: Bij FORMAT speciale indicatie voor slechte sectoren in FAT tijdens bedrijf ontstane slechte sectoren later in FAT aangeven SCSI disks: lijst van bad blocks op disk, door controller bijgehouden slechte sectoren worden vervangen door andere sectoren. (transparant voor de gebruiker.) N.B. dit werkt optimalisatie d.m.v. disk-head scheduling tegen 8-50 25

Disk Management Swap space (1) Gebruik van swap-space afhankelijk van memory management: hele proces image, of op page basis swap space locatie: opnemen in normale file systeem, of aparte partitie N.B. swap space vaak gespreid over meerdere schijven 8-51 swap space management Disk Management Swap space (2) code pages: ruimte bij start proces toewijzen, inhoud: meteen copiëren uit file, of pas als betreffende page wordt uit-gepaged data pages: ruimte kan groeien inhoud kan wijzigen 8-52 26

Disk Management Betrouwbaarheid (1) Disks zijn kwetsbaar periodiek backups nodig restore wanneer nodig RAID systemen (RAID = Redundant Array of Inexpensive Disks) gebaseerd op striping en redundancy gebruikte technieken: mirroring (of shadowing) block interleaved parity 8-53 Disk management Betrouwbaarheid (2) Stable Storage: Stable storage gaat 'nooit' verloren implementatie d.m.v. replicatie ( b.v. duplicatie) acties bij wegschrijven van blok A naar disk: 1. Schrijf blok A naar disk1 (d.i. blok A 1 ) 2. Als 1) klaar schrijf blok A naar disk 2 (d.i. blok A 2 ) 3. operatie is klaar als 1) en 2) klaar recovery actie bij optreden van een fout als A 1 en A 2 geen fout bevatten, en A1=A2, operatie geslaagd. als A i een error en A j niet, vervang A i door A j Als A 1 en A 2 beide geen error, maar A 1 A 2, dan A 1 := A 2 effect: write volledig geslaagd, of helemaal niet 8-54 27