De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

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

Verwante presentaties


Presentatie over: "DEEL V: INVOER/UITVOER EN BESTAND Hoofdstuk 11: I/O beheer en schijfscheduling Hoofdstuk 12: Bestandsbeheer."— Transcript van de presentatie:

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

2 Hoofdstuk 11: I/O beheer en schijfscheduling

3 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, …

4 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

5 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

6 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

7 I/O 11.2. 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

8 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)

9 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, …

10 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 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)

12 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: 15.000 omwentelingen per minuut dan: rotatievertraging gemiddeld 2 msec

13 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

14 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)

15 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: 4 + 4 + 8 = 16 msec voor volgende sporen: 0 + 4 + 8 = 12 msec totaal: 16 + 4*12 = 0,064 sec lezen van 1 sector: 4 + 4 + 0,016 = 8,016 msec totaal: 2500*8,016=20,04 sec

16 11.5. Schijfscheduling strategieën voor scheduling van schijf 55 58 39 18 90 160 150 38 184 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

17 11.5. Schijfscheduling strategieën voor scheduling van schijf 55 58 39 18 90 160 150 38 184 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

18 11.5. Schijfscheduling strategieën voor scheduling van schijf 55 58 39 18 90 160 150 38 184 spoor aanvragen: Shortest Service Time First strategie: kies spoor met kleinste verplaatsing pos: - zeer efficient neg: - deadlock mogelijk gemiddelde seek lengte = 27.5

19 11.5. Schijfscheduling strategieën voor scheduling van schijf 55 58 39 18 90 160 150 38 184 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)

20 11.5. Schijfscheduling strategieën voor scheduling van schijf 55 58 39 18 90 160 150 38 184 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

21 11.5. Schijfscheduling strategieën voor scheduling van schijf 55 58 39 18 90 160 150 38 184 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

22 11.5. Schijfscheduling strategieën voor scheduling van schijf spoor aanvragen: 55 58 39 18 90 160 150 38 184

23 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

24 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

25 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

26 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

27 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

28 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)

29 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 7 P(4-7) block 3 P(0-3) voordelen: - geen bottleneck door pariteitsschijf (zie RAID 4)

30 block 13block 12P(12-15)block 14 block 15 Q(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


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

Verwante presentaties


Ads door Google