deel v: invoer/uitvoer en bestand hoofdstuk 11: i/o beheer en schijfscheduling hoofdstuk 12:...

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

Upload: ivo-jonker

Post on 08-Jun-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

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

DEEL V:INVOER/UITVOER EN BESTAND

Hoofdstuk 11: I/O beheer en schijfscheduling

Hoofdstuk 12: Bestandsbeheer

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

Hoofdstuk 11:I/O beheer en schijfscheduling

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

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-readable mouse, printers, screens, keyboard, …

machine-readable HD, RAM, sensors, controllers, …

communication modems, digital data lines, …

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

11.2. Organisatie van I/O functiegeprogrammeerde I/O interruptgestuurde I/Ogeef leesopdracht

aan I/O module

lees statusvan I/O module

lees woorduit I/O module

schrijf woordnaar geheugen

checkstatus

ready?

next instructionyes

no

ready

!ready

foutcn

d.

geef leesopdrachtaan I/O module

lees statusvan I/O module

lees woorduit I/O module

schrijf woordnaar geheugen

checkstatus

ready?

next instructionyes

no

ready

foutcn

d.

CPU I/O

I/O CPU

I/O CPU

CPU RAM

CPU I/O

I/O CPU

I/O CPU

CPU RAM

do something else

interrupt

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

11.2. Organisatie van I/O functie

Direct Memory Access (DMA)

geef leesopdrachtaan I/O module

lees statusvan I/O module

CPU DMA

DMA CPU

interrupt

next instruction

do something else

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

11.2. Organisatie van I/O functie

evolutie van I/O functie

1. processor directe controle over device2. toevoegen van I/O module (voorzien van interfaces)

1. geprogrammeerde I/O2. interruptgestuurde I/O3. 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

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

I/O

11.2. Organisatie van I/O functie

Direct memory access (DMA)

programcounter

dataregister

addressregister

controllogic

Concurrentie tussen DMA-blok en CPU om bus (cycle stealing)

configuraties:

proc. DMA I/O I/O mem.…

proc. DMA mem.DMA

I/OI/O

proc. DMA mem.

I/OI/OI/O

system bus

I/O bus

onefficient

uniformeinterface

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

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)

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

11.3. Aandachtspunten voor ontwerp van besturingssysteem

logische structuur van I/O functiegebruikersprocessen

logischeI/O

apparaatI/O

scheduling& besturing

hardware

gebruikersprocessen

ComputerArchitectuur

apparaatI/O

scheduling& besturing

hardware

gebruikersprocessen

bestands-systeem

apparaatI/O

scheduling& besturing

hardware

fysiekeindeling

directorybeheer

bestandensysteemcommunicatiepoortlokaal randapparaat

vb.TCP/IP

vb. delete, move, copy, …

vb. open, close,read, write, …

vb. memorymappings, …

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

11.4. I/O buffering

stel: Read_block[1000, tape] en wachten tot gegevens beschikbaar zijn

nadelen:1. onefficient: programma onderbroken2. 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/O2. swap proces onmiddellijk uit geheugen I/O bewerking geblokkeerd

oplossing: bufferen van gegevens

blokgerichte apparaten (vb. schijfgeh & tapes)

stroomgerichte apparaten (vb. terminals, printers, …)

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

11.4. I/O bufferingIN

IN

IN

IN…

enkelvoudige buffer (~volgende te verwachten blok op voorhand ingelezen)

geen buffer

T = tijd voor invoeren blokM = tijd voor verplaatsen blokC = 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)

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

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)

datatransfer

apparaat bezet

access time

seek time = opstarttijd + reistijd + bevestigingstijd = +- 5 a 10 msec

rotatietijdstel: 15.000 omwentelingen per minuut dan: rotatievertraging gemiddeld 2 msec

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

11.5. Schijfscheduling

parameters voor schijfprestaties

wachten op apparaat

wachten op kanaal

seek(~juiste spoor)

rotation delay(~juiste sector)

datatransfer

data transfer time= opstarttijd + reistijd + bevestigingstijd = +- 5 a 10 msec

Stel:T = data transfer timeb = aantal over te dragen bytesN = aantal bytes per spoorr = rotatiesnelheid (omwent. per seconde)

T = b / rN

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

11.5. Schijfscheduling

parameters voor schijfprestaties

wachten op apparaat

wachten op kanaal

seek(~juiste spoor)

rotation delay(~juiste sector)

datatransfer

totale gemiddelde toegangstijd:

Ta = Ts + 1/(2*R) + b/(r*N)

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

11.5. Schijfscheduling

stel:gemiddelde seek time = 4 msomwentelingssnelheid = 7500 rpm512 bytes per sector500 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:4 + 4 + 8 = 16 msecvoor volgende sporen:0 + 4 + 8 = 12 msectotaal:16 + 4*12 = 0,064 sec

lezen van 1 sector:4 + 4 + 0,016 = 8,016 msec

totaal:2500*8,016=20,04 sec

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

11.5. Schijfschedulingstrategieën voor scheduling van schijf

5558391890

160150

38184

spoor aanvragen:

gemiddelde seek lengte = 55.3

First-In-First-Out

pos:- eerlijk- goed gedrag bij beperkt aantal processen en geclusterde aanvragenneg:- slecht gedrag bij groot aantal processen met ongeclusterede aanvragen

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

11.5. Schijfschedulingstrategieën voor scheduling van schijf

5558391890

160150

38184

spoor aanvragen:

Prioriteit gebaseerd

Last-In-First-Out

pos:snelle antwoordtijden bekomen voor interactieve jobsneg:omzeilen door langere processen op te delen in kleinere jobs

pos:snelle verplaatsingen van sequentiële bestandenneg:starvation mogelijk

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

11.5. Schijfschedulingstrategieën voor scheduling van schijf

5558391890

160150

38184

spoor aanvragen:

Shortest Service Time First

strategie: kies spoor met kleinste verplaatsingpos:- zeer efficientneg:- deadlock mogelijk

gemiddelde seek lengte = 27.5

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

11.5. Schijfschedulingstrategieën voor scheduling van schijf

5558391890

160150

38184

track requests:

gemiddelde seek lengte = 27.8

strategie: doorloop requests in één richting (L R L R)

pos:- redelijk efficientneg:- geeft voordeel aan recent doorkruist gebied

SCAN (=liftalgoritme)

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

11.5. Schijfschedulingstrategieën voor scheduling van schijf

5558391890

160150

38184

track requests:

gemiddelde seek lengte = 35.8

strategie: doorloop requests in één richting (L R ; R L; R L; R L)

pos:- eerlijkerneg:- minder efficient

C-SCAN

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

11.5. Schijfschedulingstrategieën voor scheduling van schijf

5558391890

160150

38184

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

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

11.5. Schijfschedulingstrategieën voor scheduling van schijf

spoor aanvragen:

5558391890

160150

38184

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

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

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

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

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

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 schijven2) gegevens kunnen parallel bijgewerkt worden bij write-request3) recovery gemakkelijk door duplicatie

nadelen:1) kosten dubbele schijfruimte enkel essentiële bestanden dupliceren2) slechtere performantie indien meer schrijfbewerkingen

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

11.6. RAID

RAID 2: redundantie met hamming code

b0 b1 b2 b3 f0(b) f1(b) f2(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

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

11.6. RAID

RAID 3: pariteit via verweven bits

b0 b1 b2 b3 P(b)

X4(i) = X3(i) xor X2(i) xor X1(i) xor X0(i)

voordelen:- herstel na crash van 1 schijf mogelijk- zeer kleine strips parallelle overdracht van gegevens

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

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

X4(i) = X3(i) xor X2(i) xor X1(i) xor X0(i)

X4‘(i) = X4(i) xor X1(i) xor X1‘(i)

Schrijfstraf (ook bij vorige techniek)

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

block 13

11.6. 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 7P(4-7)

block 3 P(0-3)

voordelen:- geen bottleneck door pariteitsschijf (zie RAID 4)

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

block 13block 12 P(12-15) block 14 block 15Q(12-15)

Q(8-11)

P(4-7)

11.6. 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