DEEL V: INVOER/UITVOER EN BESTAND Hoofdstuk 11: I/O beheer en schijfscheduling Hoofdstuk 12: Bestandsbeheer.

Slides:



Advertisements
Verwante presentaties
PROS2 Les 13 Programmeren en Software Engineering 2.
Advertisements

Hoe werkt een rekenmachine?
SSD gebruik in “WMC“ Nico Oosterwijk.
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 3(2): Instructietypen.
™.
Kennismaking met de computerconfiguratie
Slide 1Structuur en Organisatie van Computersystemen: deel 2Yolande Berbers Geheugen-hiërarchie.
Hardware (1) NSG Informatica.
Jerry van den Heuvel Pim van der Lee
Week 1: overzicht computersysteem-organisatie
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 4(2): Digitale.
ICT Infrastructuren 26 november 2007 David N. Jansen.
Het werkgeheugen stored program concept (John von Neumann) Het achtergrondgeheugen Geheugen.
Hoofdstuk 8: Recursie.
Het computergeheugen.
Hardware (2) SGDB Informatica.
BESTURINGS SYSTEMEN Vincent Naessens.
Opleiding ICT © J.W. Jonker Dia 1/22 Systemen Besturingssoftware Windows XP Mark van Heck.
1 Device driver. 2 Hardware Operating Systeem Prog1Prog2 System calls/ API Device drivers Gebruiker afschermen van de hardware.
OPSLAGMEDIA Evy Van Cleemputte.
Auteursomgeving voor Digitale Componenten
ICT Infrastructuur.
Week 2: Microarchitectuur niveau ALU en datapad
Computerarchitectuur
Steven Van Acker. Transmeta Crusoe - Steven Van Acker - Mei Overzicht  Inleiding  Het Idee  De Technologie  CodeMorphing  LongRun  NorthBridge.
C programma int main(){ } Compilatie met devc++ in file main.c Gecompileerd programma in file FirstProgram.exe Mov R1, 120 Mov R2, 160 ADD R1, R2.
 Ongeveer auto’s in Nederland  Query: zoek op kenteken  Aannames ◦ Een tuple (record) kost ongeveer 400 bytes ◦ Een disk block bevat 8.
De computer: Hardware Het beeldscherm Het toetsenbord De muis
5JJ20: Computerarchitectuur 2M200: Inleiding Computersystemen
1/1/ / faculty of Electrical Engineering eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 1(2): overzicht.
1/1/ / faculty of Computer Science eindhoven university of technology 5B040:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 7(1): Flow of.
Geheugenbeheer ICT Infrastructuren hoofdstukken 7 en 8.1.
1Ben Bruidegom Hoe werkt een rekenmachine? Ben Bruidegom AMSTEL Instituut Universiteit van Amsterdam.
Hoe werkt een rekenmachine?
1 Van Harvard naar MIPS. 2 3 Van Harvard naar MIPS Microprocessor without Interlocked Pipeline Stages Verschillen met de Harvard machine: - 32 Registers.
Backup & Recovery Windows 2003 Server Onderhoud en Beheer Netwerken 4.
Best8-1 Les 8: Input/Output [Lat: datarum initus exitusque]
1 ICT Infrastructuren 19 november 2007 David N. Jansen.
Operating Systems Informatica.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 3: Instructietypen (2)
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 4: Digitale logica niveau: “systeem-architectuur” cpu-chips.
Mem_ex: buddy system Gegeven: een geheugenblok van 1 megabyte wordt toegewezen met het buddysysteem. A)Toon de resultaten van de volgende reeks in een.
Schijvenbeheer Disk Management t/m
Inleiding
RAM-geheugen
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
Basisfuncties Operating System.
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
Besturingssysteem Vaak wordt de Engelse term gebruikt: Operating System ( OS ) Plaats van het OS in een computersysteem: Hardware Applicatie Operating.
Facet offline installatie
Module code: Scheduling Het verdelen van processortijd onder processen en threads 1.
Programmeren. Wat is programmeren? Het schrijven van opdrachten voor de processor De processor “spreekt” machinetaal:
Digitale gegevens Drs. Ing. Rainier Kock 1. Vorige les 2 Computers werken met elektrische schakelingen Schakelaar aan = 1, uit = 0 Tekst, geluid en beeld.
Module code: 11. I/O-beheer en schijfscheduling 12. Bestandsbeheer 1 Operating Systems.
Hardware (2) SGDB Informatica.
Opensource powered Arjan Vliem Cloud engineer
Operating Systems Informatica.
Programmeren.
Computersystemen 2 (TIRCCMS02 - Operating systems)
Computersystemen 2 (TIRCCMS02 - Operating systems)
Computersystemen 2 (TIRCCMS02 - Operating systems)
3 Hardware 3.1 De processor en intern geheugen
Hardware (2) SGDB Informatica.
Welkom woensdag 14 november 2018woensdag 14 november 2018
Hoofdstuk 3 - Computersystemen
Besturingssystemen Ga verder met een muisklik..
Besturingssysteem.
© 2001, SJB Mol Walter Baeckelmans
Transcript van de presentatie:

DEEL V: INVOER/UITVOER EN BESTAND Hoofdstuk 11: I/O beheer en schijfscheduling Hoofdstuk 12: Bestandsbeheer

Hoofdstuk 11: I/O beheer en schijfscheduling

11.1. I/O apparaten opdeling van apparaten verschilpunten data transfer rates (ethernet vs keyboard) application (virtual memory vs persistent data storage) complexity (printer vs disk) unit of data transfer (character vs blocks) coding of data fault conditions human-readablemouse, printers, screens, keyboard, … machine-readableHD, RAM, sensors, controllers, … communicationmodems, digital data lines, …

11.2. Organisatie van I/O functie geprogrammeerde I/Ointerruptgestuurde I/O geef leesopdracht aan I/O module lees status van I/O module lees woord uit I/O module schrijf woord naar geheugen check status ready? next instruction yes no ready !ready foutcnd. geef leesopdracht aan I/O module lees status van I/O module lees woord uit I/O module schrijf woord naar geheugen check status ready? next instruction yes no ready foutcnd. CPU  I/O I/O  CPU CPU  RAM CPU  I/O I/O  CPU CPU  RAM do something else interrupt

11.2. Organisatie van I/O functie Direct Memory Access (DMA) geef leesopdracht aan I/O module lees status van I/O module CPU  DMA DMA  CPU interrupt next instruction do something else

11.2. Organisatie van I/O functie evolutie van I/O functie 1.processor directe controle over device 2.toevoegen van I/O module (voorzien van interfaces) 1.geprogrammeerde I/O 2.interruptgestuurde I/O 3.directe geheugentoegang 3.toevoegen van processor aan I/O module (met I/O specifieke instructieset) 4.toevoegen van geheugen aan I/O module gevolg: loskoppeling van I/O functies  betere prestaties van CPU

I/O Organisatie van I/O functie Direct memory access (DMA) program counter data register address register control logic Concurrentie tussen DMA-blok en CPU om bus (cycle stealing) configuraties: proc.DMAI/O mem. … proc.DMAmem.DMA I/O proc.DMAmem. I/O system bus I/O bus onefficient uniforme interface

11.3. Aandachtspunten voor ontwerp van besturingssysteem ontwerpdoelstellingen efficientie: I/O apparaten traag in vergelijking met RAM en processor generaliteit: verbergen van bijzonderheden I/O apparaten in low level routines (hierarchische structuur van OS)

11.3. Aandachtspunten voor ontwerp van besturingssysteem logische structuur van I/O functie gebruikers processen logische I/O apparaat I/O scheduling & besturing hardware gebruikers processen Computer Architectuur apparaat I/O scheduling & besturing hardware gebruikers processen bestands- systeem apparaat I/O scheduling & besturing hardware fysieke indeling directory beheer bestandensysteem communicatiepoort lokaal randapparaat vb.TCP/IP vb. delete, move, copy, … vb. open, close, read, write, … vb. memory mappings, …

11.4. I/O buffering stel: Read_block[1000, tape] en wachten tot gegevens beschikbaar zijn nadelen: 1.onefficient: programma onderbroken 2.mogelijke swapping problemen: (a) ingelezen data moeten in RAM blijven tot na gegevensoverdracht (b) deadlock mogelijk : stel volgende volgorde: 1. leesopdracht gegeven  proces wacht op voltooiing I/O 2. swap proces onmiddellijk uit geheugen  I/O bewerking geblokkeerd oplossing: bufferen van gegevens blokgerichte apparaten (vb. schijfgeh & tapes) stroomgerichte apparaten (vb. terminals, printers, …)

11.4. I/O buffering IN … enkelvoudige buffer (~volgende te verwachten blok op voorhand ingelezen) geen buffer T = tijd voor invoeren blok M = tijd voor verplaatsen blok C = tijd consumptie van een blok uitvoeringstijd per blok = T + C uitvoeringstijd per blok = max[C,T] + M dubbele buffer (~invoeren + verplaatsen gelijktijdig) uitvoeringstijd per blok = max[C,T] cirkelvormige buffer (~opvangen van I/O bursts)

11.5. Schijfscheduling vaststelling: RAM en processor snelheden veel groter dan snelheden I/O apparaten parameters voor schijfprestaties wachten op apparaat wachten op kanaal seek (~juiste spoor) rotation delay (~juiste sector) data transfer apparaat bezet access time seek time = opstarttijd + reistijd + bevestigingstijd = +- 5 a 10 msec rotatietijd stel: omwentelingen per minuut dan: rotatievertraging gemiddeld 2 msec

11.5. Schijfscheduling parameters voor schijfprestaties wachten op apparaat wachten op kanaal seek (~juiste spoor) rotation delay (~juiste sector) data transfer data transfer time = opstarttijd + reistijd + bevestigingstijd = +- 5 a 10 msec Stel: T = data transfer time b = aantal over te dragen bytes N = aantal bytes per spoor r = rotatiesnelheid (omwent. per seconde) T = b / rN

11.5. Schijfscheduling parameters voor schijfprestaties wachten op apparaat wachten op kanaal seek (~juiste spoor) rotation delay (~juiste sector) data transfer totale gemiddelde toegangstijd: T a = T s + 1/(2*R) + b/(r*N)

11.5. Schijfscheduling stel: gemiddelde seek time = 4 ms omwentelingssnelheid = 7500 rpm 512 bytes per sector 500 sectoren per spoor Vraag: hoelang duurt inlezen van 2500 sectoren? stel: opeenvolgende sectoren uit 5 opeenvolgende sporen stel: random sectoren uit random sectoren 500 sectoren voor eerste spoor: = 16 msec voor volgende sporen: = 12 msec totaal: *12 = 0,064 sec lezen van 1 sector: ,016 = 8,016 msec totaal: 2500*8,016=20,04 sec

11.5. Schijfscheduling strategieën voor scheduling van schijf spoor aanvragen: gemiddelde seek lengte = 55.3 First-In-First-Out pos: - eerlijk - goed gedrag bij beperkt aantal processen en geclusterde aanvragen neg: - slecht gedrag bij groot aantal processen met ongeclusterede aanvragen

11.5. Schijfscheduling strategieën voor scheduling van schijf spoor aanvragen: Prioriteit gebaseerd Last-In-First-Out pos: snelle antwoordtijden bekomen voor interactieve jobs neg: omzeilen door langere processen op te delen in kleinere jobs pos: snelle verplaatsingen van sequentiële bestanden neg: starvation mogelijk

11.5. Schijfscheduling strategieën voor scheduling van schijf spoor aanvragen: Shortest Service Time First strategie: kies spoor met kleinste verplaatsing pos: - zeer efficient neg: - deadlock mogelijk gemiddelde seek lengte = 27.5

11.5. Schijfscheduling strategieën voor scheduling van schijf track requests: gemiddelde seek lengte = 27.8 strategie: doorloop requests in één richting (L  R  L  R) pos: - redelijk efficient neg: - geeft voordeel aan recent doorkruist gebied SCAN (=liftalgoritme)

11.5. Schijfscheduling strategieën voor scheduling van schijf track requests: gemiddelde seek lengte = 35.8 strategie: doorloop requests in één richting (L  R ; R  L; R  L; R  L) pos: - eerlijker neg: - minder efficient C-SCAN

11.5. Schijfscheduling strategieën voor scheduling van schijf track requests: N-step-SCAN FSCAN problemen bij vorige algoritmes: arm kan blijven plakken bij gebieden oplossing: - creeren van meerdere wachtrijen - in elke wachtrij slechts N elementen - verwerk elke deelrij met SCAN algoritme oplossing: - creeren van 2 wachtrijen - bij begin van elke scan is één wachtrij leeg - vanaf dan binnenkomende requests in nieuwe wachtrij

11.5. Schijfscheduling strategieën voor scheduling van schijf spoor aanvragen:

11.6. RAID RAID = Redundant Array of Independent Disks doelstellingen: - verschillende I/O aanvragen parallelliseren - mogelijke fouten verminderen (~reliability) Eigenschappen: set van fysieke schijfstations die door OS w behandeld als 1 logisch station gegevens verdeeld over fysieke schijven van array redundante capaciteit gebruikt voor opslaan pariteitsgegevens

11.6. RAID RAID 0: niet redundant strip 12 strip 8 strip 4 strip 0 strip 13 strip 9 strip 5 strip 1 strip 14 strip 10 strip 6 strip 2 strip 15 strip 11 strip 7 strip 4 voordelen: - gelijktijdig afhandelen van I/O requests indien op verschillende schijven - waarschijnlijkheid dat opeenvolgende strips worden geladen groot (  horizontaal) vereisten: 1)grote overdrachtscapaciteit (door o.a. controller bussen, I/O bussen, adaptors, …) 2)aanvragen typisch groter dan lengte van 1 strip

11.6. RAID RAID 1: gespiegeld strip 12 strip 8 strip 4 strip 0 strip 13 strip 9 strip 5 strip 1 strip 14 strip 10 strip 6 strip 2 strip 15 strip 11 strip 7 strip 4 strip 12 strip 8 strip 4 strip 0 strip 13 strip 9 strip 5 strip 1 strip 14 strip 10 strip 6 strip 2 strip 15 strip 11 strip 7 strip 4 voordelen: 1)read-request kan afgehandeld worden door 2 schijven 2)gegevens kunnen parallel bijgewerkt worden bij write-request 3)recovery gemakkelijk door duplicatie nadelen: 1)kosten  dubbele schijfruimte  enkel essentiële bestanden dupliceren 2)slechtere performantie indien meer schrijfbewerkingen

11.6. RAID RAID 2: redundantie met hamming code b0b0 b1b1 b2b2 b3b3 f 0 (b) f 1 (b)f 2 (b) aanpak: - zeer kleine strips (~1 byte / 1woord) - hamming code: correctie 1 bit fouten; detectie 2 bit fouten nadelen: - nog steeds veel redundantie (nl. log(#schijven) ) wanneer? bij schijven met grote kans op fouten

11.6. RAID RAID 3: pariteit via verweven bits b0b0 b1b1 b2b2 b3b3 P(b) X 4 (i) = X 3 (i) xor X 2 (i) xor X 1 (i) xor X 0 (i) voordelen: - herstel na crash van 1 schijf mogelijk - zeer kleine strips  parallelle overdracht van gegevens

11.6. RAID RAID 4: pariteit op blokniveau block 12 block 8 block 4 block 0 P(12-15) P(8-11) P(4-7) P(0-3) block 13 block 9 block 5 block 1 block 14 block 10 block 6 block 2 block 15 block 11 block 7 block 3 voordelen: relatief grote blokken  parallelle afhandeling I/O requests nadelen: pariteitsschijf betrokken bij elke schrijfopdracht X 4 (i) = X 3 (i) xor X 2 (i) xor X 1 (i) xor X 0 (i) X 4 ‘(i) = X 4 (i) xor X 1 (i) xor X 1 ‘(i) Schrijfstraf (ook bij vorige techniek)

block RAID RAID 5: gedistribueerde pariteit op blokniveau block 12 block 8 block 4 block 0 P(12-15) P(8-11) block 9 block 5 block 1 block 14 block 10 block 6 block 2 block 15 block 11 block 7 P(4-7) block 3 P(0-3) voordelen: - geen bottleneck door pariteitsschijf (zie RAID 4)

block 13block 12P(12-15)block 14 block 15 Q(12-15) Q(8-11) P(4-7) RAID RAID 6: tweevoudige redundantie block 8 block 4 block 0 P(8-11) block 9 block 5 block 1 block 10 block 6 block 2 Q(4-7) block 3 P(0-3) block 11 block 7 Q(0-3) voordelen: - hoge reliability (2 schijven mogen tegelijk kapot gaan) nadelen: - lagere performantie bij schrijfopdrachten