UNIVERSITETET I OSLO. Sekundærlager. Institutt for Informatikk. INF Ellen Munthe-Kaas 1

Like dokumenter
Effektiv bruk av sekundærlager

Effektiv bruk av sekundærlager

Effektiv bruk av sekundærlager

Effektiv bruk av sekundærlager

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

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

Dagens tema. Flere teknikker for å øke hastigheten

Filsystemet fra innsiden

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Generelt om permanent lagring og filsystemer

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

Oppgave 8.1 fra COD2e

Hashing. INF Algoritmer og datastrukturer HASHING. Hashtabeller

UNIVERSITETET I OSLO

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

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

Dagens temaer. Fra kapittel 4 i Computer Organisation and Architecture. Kort om hurtigminne (RAM) Organisering av CPU: von Neuman-modellen

Filer i Linux og Bourne-again shell

TDT4258 Eksamen vår 2013

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

Tildeling av minne til prosesser

Andre sett obligatoriske oppgaver i INF3100 V2013

Lars Vidar Magnusson

Tildeling av minne til prosesser

IN1020. Minnehierarki

Minnehåndtering i operativsystemer

DBS22 Databasegjenopprettingsteknikker

Fakultet for informasjonsteknologi, Oppgave 1 Flervalgsspørsmål ( multiple choice ) 15 %

Eksamensoppgave i TDT4225 Lagring og behandling av store datamengder

Oppsummering av digitalteknikkdelen

... Når internminnet blir for lite. Dagens plan: Løsning: Utvidbar hashing. hash(x) katalog. O modellen er ikke lenger gyldig ved

INF2270. Minnehierarki

Minnehåndtering i operativsystemer

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

Eksamensoppgave i TDT4225 Lagring og behandling av store datamengder Kontinuasjonseksamen

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

Andre sett obligatoriske oppgaver i INF3100 V2012

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

TDT4225 Lagring og behandling av store datamengder

UNIVERSITETET I OSLO

Systemfeil og logging

Filsystemet fra innsiden

Linklaget - direkte. forbindelser mellom noder. Foreleser: Kjell Åge Bringsrud kjellb 2/8/2005 1

Oppgave 1 Flervalgsspørsmål ( multiple choice ) 15 %

ZFS. Siste ord innen filsystemer. Trond Endrestøl. Fagskolen Innlandet, IT-avdelingen. 23. desember 2013

ZFS. Siste ord innen filsystemer. Trond Endrestøl. 23. desember Fagskolen Innlandet, IT-avdelingen

Internminnet. Håkon Tolsby Håkon Tolsby

TDT4225 Lagring og behandling av store datamengder

Memory Access) Figure: DMA kommuniserer med disk-controlleren og sørger for at det OS ønsker blir kopiert mellom harddisken og internminnet.

Tildeling av minne til prosesser

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

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

ZFS. Siste ord innen filsystemer. Trond Endrestøl. 23. februar Fagskolen Innlandet, IT-avdelingen

Scheduling og prosesshåndtering

Andre sett obligatoriske oppgaver iinf3100v2011

INF1040 Oppgavesett 6: Lagring og overføring av data

DBS18 - Strategier for Query-prosessering

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

Dagens temaer. Praktisk anvendelse: Satellittkommunikasjon. eksempler på bruk av assembler/c/arkitektur teknikker for å øke hastigheten

Innhold. Introduksjon til parallelle datamaskiner. Ulike typer parallelle arkitekturer. Prinsipper for synkronisering av felles hukommelse

HØGSKOLEN I SØR-TRØNDELAG

Internminnet. Håkon Tolsby Håkon Tolsby

Det matematisk-naturvitenskapelige fakultet

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

INF2270. Datamaskin Arkitektur

Hukommelseshierarki. 16/3 cache /3 virtuell hukommelse in 147, våren 1999 hukommelseshierarki 1

Filer i Linux og Bourne-again shell

Fakultet for informasjonsteknologi, Løsning på kontinuasjon i TDT4186 Operativsystemer August 2005,

Linklaget. Feildeteksjon/feilretting - pålitelig overføring. Foreleser: Kjell Åge Bringsrud kjellb 2/17/2004 1

Fakultet for informasjonsteknologi,

Fakultet for informasjonsteknologi, Oppgave 1 Flervalgsspørsmål ( multiple choice ) 15 %

Hvorfor lære om maskinvare*?

Eksamensoppgave i TDT4258 Energieffektive datamaskinsystemer

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

hvor mye hurtigminne (RAM) CPU en kan nyttiggjøre seg av. mens bit ene betraktet under ett kalles vanligvis et ord.

IT1101 Informatikk basisfag 4/9. Praktisk. Oppgave: tegn kretsdiagram. Fra sist. Representasjon av informasjon binært. Ny oppgave

Singletasking OS. Device minne Skjerm minne. Brukerprogram. Brukerdata/heap. Stack. Basis for flerprosess-systemer.

Innhold. 2 Kompilatorer. 3 Datamaskiner og tallsystemer. 4 Oppsummering. 1 Skjerm (monitor) 2 Hovedkort (motherboard) 3 Prosessor (CPU)

UNIVERSITETET I OSLO

Effektiv eksekvering av spørsmål

Hva er en fil logisk sett?

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

INF2220: Forelesning 3

IN1020. Datamaskinarkitektur

Maps og Hashing. INF Algoritmer og datastrukturer. Map - ADT. Map vs Array

Eksamensoppgave i TDT4258 Energieffektive Datamaskinsystemer

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Generelt om operativsystemer

MAT1030 Diskret Matematikk

Kapittel 5: Mengdelære

Forelesning Hurtigbuffer Kap 4.5

Effektiv eksekvering av spørsmål

1. SQL datadefinisjon og manipulering

Maps og Hashing. INF Algoritmer og datastrukturer. Map - ADT. Map vs Array

Characteristics of a good design

Dagens temaer. eksempler på bruk av assembler/c/arkitektur teknikker for å øke hastigheten. Organisation and Architecture )

INF Algoritmer og datastrukturer

Dagems temaer. kapittel 4 i Computer Organisation and Architecture. av CPU: von Neuman-modellen. Transfer Language (RTL) om hurtigminne (RAM)

Transkript:

UNIVERSITETET I OSLO Sekundærlager Institutt for Informatikk 1

Minnehierarkiet Vi kan ikke aksessere sekundærlageret hver gang vi trenger data (det tar tid!) Store datamaskinsystemer har derfor flere forskjellige komponenter hvor data kan lagres med ulik kapasitet ulik hastighet Komponenter med mindre kapasitet har typisk lavere aksesstid og høyere kostnad pr. byte Høyere nivåer tjener som sikkerhetskopi av data på lavere nivåer et laveste nivået ligger nærmest PUen kapasitet persistent (nonvolatile) tertiært lager (tapes) sekundærlager (H/SS/SSH) primærminne cacher ikkepersistent (volatile) hastighet pris 2

ataflyt i minnehierarkiet Hvis ønskede data ikke finnes på et nivå, må vi se etter dem på nivået over (langsommere, men med mer kapasitet) Hvis vi henter data fra et høyere nivå, må vi kanskje overskrive data som allerede finnes på inneværende nivå et finnes mange algoritmer/strategier for å velge et passende offer for utskiftning Hvis vi endrer data, må vi også endre dataene på de høyere nivåene for å opprettholde en konsistent database Her er det to hovedstrategier: elayed write ata på høyere nivåer oppdateres «når det passer» Write-through ata på høyere nivåer oppdateres umiddelbart; andre operasjoner må vente på oppdateringsoperasjonen 3

acher To eller flere nivåer av cacher Overføringsenhet cache/ primærminne: achelinje Hvis hver core har sin egen cache i et multiprosessorsystem, må vi bruke writethrough til neste nivå tertiært lager (tapes) sekundærlager (H/SS/SSH) primærminne cacher 4

Primærminne Primærminnet er random access Overføringsenhet primærminne/sekundærlager: atablokk Operativsystemets minnehåndterer bruker vanligvis virtuelt minne tertiært lager (tapes) sekundærlager (H/SS/SSH) primærminne cacher 5

Minnehåndtering og MSer Vanligvis prøver vi å holde de aktuelle databaserelasjonene i primærminnet for å øke ytelsen Vi vil gjerne unngå å bruke write-through-strategien mellom primærminne og sekundærminne, men siden endringer i databasen skal være persistente, må alle oppdateringer før eller siden skrives til sekundærminnet og logges atabaser som er så små at de får plass i tilgjengelig virtuelt minne, kan, men trenger ikke, bruke operativsystemets minnehåndtering Større databaser må selv håndtere sine data direkte på sekundærminnet, og et slikt MS må derfor ha sin egen minnehåndterer 6

Sekundær- og tertiærlager Sekundærlager: en viktigste typen er magnetisk harddisk (H); disker er i størrelsesorden 10 5 ganger langsommere enn primærminnet rukes som persisent lager for data og som lager for programmets virtuelle minne Ofte håndterer MS selv I/O mot disk. Oppgavene og problemene er i hovedsak de samme som i et ordinært filsystem Tertiærlager: rukes når systemet er for stort til å kunne lagres på disker ksesstider på flere sekunder, noen på flere minutter, dvs. minst 10 2 ganger langsommere enn disker et finnes mange typer, bl.a. ad-hoc tapelager, optiske jukebokser, tapesiloer Tertiære lagere er ikke noe sentralt tema i dette kurset tertiært lager (tapes) sekundærlager (H/SS/SSH) primærminne cacher 7

isker Selv om det nå finnes mange persistente media som kan brukes som sekundærlager, er disker fortsatt nær enerådende for større systemer På grunn av den store hastighetsforskjellen mellom disk og primærminne er det viktig å minimalisere antall diskaksesser Sekundærlageret er laveste nivå av persistente data et er derfor viktig at ikke diskfeil fører til tap av data (Overføring til tertiærlager gjøres vanligvis med delayed write, slik at tertiærlageret ikke alltid er oppdatert) I vår håndtering av disker har vi to hovedoppgaver: Sikring mot feil Effektiv bruk 8

lternativer til disk SS (solid state drive) vs. H: Lavere aksesstid (minst 30 ganger så rask) Høyere overføringshastighet (minst 10 ganger så høy) Lavere energiforbruk (halvparten til en tredel) Foreløpig høyere kostnad (4-5 ganger så dyr pr. G) Feiler gradvis etter et endelig antall skrivesykler årlig pålitelighet ved gjentatte strømbrudd SSH (solid state hybrid drive) Tradisjonell disk + SS brukt til caching 9

iskfeil Vi deler diskfeil inn i tre grupper: Opprettbare (intermittent failures) Midlertidige feil som kan rettes ved å lese blokken på nytt (f.eks. at støv på disken gir en bit-feil) Uopprettbare (media decay/write failures) Permanente feil hvor bits er ødelagte (f.eks. skader/sår i den magnetiske overflaten) iskkræsj Hele disken er permanent uleselig 10

Sjekksummer I iskblokker lagres med noen ekstra bit, kalt sjekksum Sjekksummer gjør systemet robust mot opprettbare diskfeil e brukes til å validere en lest eller skrevet blokk: Les blokk + lagret sjekksum eregn sjekksummen på lest blokk Sammenlign lest og beregnet sjekksum Hvis lest og beregnet sjekksum er forskjellige, les blokken på nytt og beregn på nytt Lykkes leseoperasjonen, så returner riktig innhold Hvis antall leseforsøk går over en gitt grense, returner feilmeldingen bad disk block 11

Sjekksummer II Sjekksummer brukes bare for å oppdage feil et er mange måter å beregne sjekksummer på 1-bit paritet er den enkleste: tell ener-bits i blokken Likt antall gir paritetsbit 0 Odde antall gir paritetsbit 1 Stor fare for å ikke oppdage feil (1/2 = 50%) 8-bit paritet: ett paritetsbit pr. bit i en byte: Tell 1-ere i mest signifikante bit,..., minst signifikante bit Faren for å overse feil er 1/2 8 Polynomiske koder R (cyclic redundancy check) : Generer en sjekksum med modulo-2 aritmetikk (XOR) Flere andre... 12

Håndtering av diskkræsj et er ingen annen (praktisk) måte å gjenopprette data på etter et diskkræsj enn å ha en kopi på et annet medium som magnetbånd eller en speilet disk Samme teknikker som brukes til å håndtere diskkræsj, brukes også til å håndtere uopprettbare diskfeil et finnes en rekke strategier for å redusere faren for tap av data ved permanente diskfeil e fleste baserer seg på en utvidet paritetssjekk e vanligste går under betegnelsen RI-strategier (RI = Redundant rrays of Independent isks) 13

Striping ette er en teknikk for å øke lese- og skrivehastigheten til og fra disk I stedet for å skrive alle data til samme disk, splittes dataene og skrives i parallell til n disker ette reduserer selve skrive/lesetiden med en faktor n (søke- og rotasjonsforsinkelsen blir omtrent som før) To disker: En disk: 14

Speiling Speiling betyr at vi har flere identiske kopier av hver disk, som oftest to Fordeler: Raskere svartider ved lesing Overlever diskkræsj feiltoleranse alanserer lasten ved å fordele leseoperasjonene likt mellom de speilede diskene Ulemper: Øker lagringsbehovet 15

RI (Redundant rrays of Independent isks) RI 0: striping (uten feiltoleranse) RI 1: speiling RI 2: Hamming error correcting code (E) RI 3: bit-vis paritet RI 4: blokkvis paritet RI 5: blokkvis distribuert paritet RI 6: multippel redundans 16

RI 0 (striping) I RI 0: Stripet diskarray uten feiltoleranse Striping betyr at data brekkes opp i logiske blokker som hver skrives til en separat disk Logisk disk : RI 0 disk array E I M F J N G K O H L P 17

RI 0 (striping) II Fordeler Ytelsen blir mye bedre ved å spre I/O på mange kanaler og disker en beste ytelsen får man når data stripes på flere kontrollere med bare en disk per kontroller Ulemper Ikke en ekte RI fordi den ikke er feiltolerant Hvis en disk feiler, vil alle data i diskarrayen gå tapt Må aldri brukes i feilkritiske situasjoner 18

RI 1 (speiling) ata er duplisert og ligger på to disker Fordeler En skriving eller to samtidige lesinger pr. speilet par 100% redundans betyr at ingen rekonstruksjon trengs etter en diskfeil, bare en kopi til erstatningsdisken Ulempe: Høy disk-overhead Logisk disk RI 1 disk array : 19

RI 2 og RI 3 RI 2: Hamming E lle databits skrives til én datadisk (ekstrem striping) lle dataord får sitt Hammingkodede E-ord lagret på egne E-disker E-koden verifiserer korrekte data og retter feil på en enkelt disk N! Ingen kommersielle implementasjoner finnes RI 3: Parallell dataoverføring med bit-paritet atablokkene stripes og skrives på datadiskene Stripepariteten genereres ved skriving og lagres på en paritetsdisk Pariteten sjekkes ved lesing 20

Modulo 2-summer En vanlig måte å lage en korreksjonsblokk (paritetsblokk) på, er å beregne modulo 2-summen av datablokkene. (Modulo 2-sum blir ofte kalt XOR - exclusive OR) Modulo 2-summen beregnes ved å la bit k i summen være 1 hvis et odde antall blokker har 1 i posisjon k 0 hvis et like antall blokker har 1 i posisjon k Eksempel blokk 1 1 1 1 1 0 0 0 0 blokk 2 1 0 1 0 1 0 1 0 blokk 3 0 0 1 1 1 0 0 0 modulo 2-sum 0 1 1 0 0 0 1 0 21

Regneregler for modulo 2-summer La betegne modulo 2-sum-operatoren a gjelder: en kommutative loven: x y = y x en assosiative loven: (x y) z = x (y z) 0 er identiteten: x = 0 x = x 0 er sin egen invers: x x = 0 22

RI 4 (blokkvis paritet) I Uavhengige datadisker med en felles paritetsdisk Hver datablokk skrives i sin helhet til én datadisk Logisk disk : Pariteten beregnes ved skriving og lagres på en felles paritetsdisk I figuren har vi at -parity = RI 4 disk array G J E H K F I L -par. EF-par. GHI-par. JKL-par. 23

RI 4 II Ved skriving av en datablokk beregnes den nye verdien av den tilhørende paritetsblokken ved formelen gammel paritetsblokk gammel datablokk ny datablokk Hvis en enkelt disk kræsjer, det er det samme om det er en datadisk eller paritetsdisken, kan den regeneres ved å ta modulo 2-summen av alle de andre diskene En ulempe ved RI 4 er at paritetsdisken kan bli en flaskehals: en må skrives ved hver oppdatering 24

RI 5 (blokkvis stripet paritet) Som RI 4, men paritetsblokkene er fordelt på alle diskene, noe som fordeler lasten jevnt RI 5 er en mye brukt teknologi Logisk disk RI 5 disk array G JKL-par. E GHI-par. J : EF-par. H K -par. F I L 25

RI 6 (striping med flere pariteter) Logisk disk : ette er egentlig en familie metoder som tåler at mer enn en disk kræsjer samtidig e mest avanserte bruker n logiske paritetsdisker (fysisk fordelt som i RI 5) for å tåle n samtidige diskkræsj RI 6 disk array G JKL-par. E GHI-par. g4-par. EF-par. g3-par. J -par g2-par. H K g1-par. F I L 26

Hamming-kodet RI 6 Vi skal se nærmere på Hamming-kodet RI 6 som tåler 2 samtidige diskkræsj blant 2 k - 1 disker hvorav k er paritetsdisker (og 2 k - k - 1 er datadisker) iskene nummereres fra 1 til 2 k - 1. e identifiseres med sitt nummer tolket som et binærtall iskene som bare har ett bit satt (toerpotensene), blir paritetsdisker, og de defineres som modulo 2-summen av de datadiskene som har dette bitet satt 27

Hamming-kodet RI 6 Logisk disk : RI 6 Hamming-kodet disk array -par. EFH-par. IJL-par. MNP-par. -par. EGH-par. IKL-par. MOP-par. E I M -par. FGH-par. JKL-par. NOP-par. F J N G K O H L P 28

RI 6 Hammingkodeeksempel I paritet data disknummer 1 0 0 1 2 0 1 0 4 1 0 0 3 0 1 1 5 1 0 1 6 1 1 0 7 1 1 1 Vi har 7 disker e tre diskene 1, 2 og 4 er paritetsdisker isk 1 er modulo 2-summen av diskene 3, 5 og 7 isk 2 er modulo 2-summen av diskene 3, 6 og 7 isk 4 er modulo 2-summen av diskene 5, 6 og 7 29

RI 6 Hammingkodeeksempel II paritet data disknummer 1 0 0 1 2 0 1 0 4 1 0 0 3 0 1 1 5 1 0 1 6 1 1 0 7 1 1 1 nta at disk 4 og 5 kræsjer Siden disk 5 trenges for å regenerere disk 4, må vi først regenerere disk 5 isk 1 er modulo 2-summen av diskene 3, 5 og 7, så disk 5 er modulo 2-summen av diskene 1, 3 og 7 Nå kan vi regenerere disk 4 som modulo 2-summen av diskene 5, 6 og 7 30

RI 1E (stripet speiling) Logisk disk RI 1E disk array E : F E F Kombinerer datastriping fra RI 0 med dataspeiling fra RI 1 ata skrevet på en stripe på en disk er speilet på en stripe på den (syklisk) neste disken i arrayet en viktigste fordelen fremfor RI 1 er at RI 1E-arrays benytter et odde antall disker 31

RI 10 (striping og speiling) Logisk disk : RI 10 er en blanding av RI 0 og RI 1 I hvert diskarray (kabinett) ordnes diskene i par som speiles (RI 1) striping RI 10 disk array E G E G RI 1 array E G F H F H RI 1 array F H ataene blir så stripet over parene (RI 0) ermed kombineres hastigheten i RI 0 med sikkerheten i RI 1 et er dagens store og billige disker som har gjort RI 10 konkurransedyktig RI 10 er en vanlig driftsform i store datasentre 32

RI 5E (hot spare drive) Logisk disk : RI 5 med en ekstra disk som automatisk overtar for en feilet disk Ekstradisken benyttes ikke under normal drift RI 5E disk array G JKL-par. E GHI-par. J EF-par. H K -par. F I L Hot spare 33

RI 5EE (hot space) Logisk disk : RI 5EE er som RI 5E, men den ubenyttede diskkapasiteten til ekstradisken stripes i stedet over alle diskene slik at alle diskene inngår i normal drift RI 5EE disk array G spare E spare JKL-par. spare GHI-par. J spare EF-par. H K -par. F I L 34

RI 50 Logisk disk : Kombinerer flere RI 5-arrays med RI 0 (striping) striping, E,F I,J M,N, G,H K,L O,P RI 50 disk array E IJ-par. M EF-par. I N RI 5 array -par. F J MN-par. G KL-par. O GH-par. K P RI 5 array -par. H L OP-par. 35

Logisk disk RI 60 : Kombinerer flere RI 6-arrays med RI 0 (striping) striping,, G,H,I M,N,O S,T,U,E,F J,K,L P,Q,R V,W,X RI 60 disk array G M STU-par. H MNO-par. g7-par. GHI-par. g5-par. S -par g3-par. N T g1-par. I O U J P VWX-par. E K PQR-par. g8-par. F JKL-par. g6-par. V EF-par g4-par. Q W g2-par. L R X RI 6 array RI 6 array 36

Oversikt over RI 0 - RI 60 Egenskaper RI 0 RI 1 RI 1E RI 10 RI 5 RI 5EE RI 50 RI 6 RI 60 ntall disker 2 eller flere 2 eller flere 3 eller flere (odde antall) 2 eller flere RI 1- arrays 3 eller flere 4 eller flere 2 eller flere RI 5- arrays 4 eller flere 2 eller flere RI 6- arrays Redundans, dvs. antall diskkræsj som kan håndteres Ingen m-1 der m er antall disker/ speilinger n-1 der n er antall kopier av hver blokk 1 i hver subarray (hvis hver har to speilinger) 1 1 1 i hver subarray 2 eller flere 2 eller flere i hver subarray Leseytelse Høy Høy Høy Høy Høy Høy Høy Høy Høy Skriveytelse Høy Middels Middels Middels Lav Lav Middels Lav Middels Leseytelse (degradert) Skriveytelse (degradert) N/ Middels Høy Høy Lav Lav Middels Lav Middels N/ Høy Høy Høy Lav Lav Middels Lav Lav Kapasitetsutnyttelse (der m er antall disker) 100% 1/m (m=2: 50%) 1/n der n er antall kopier av hver blokk (n=2: 50%) Som RI 1 innen hver subarray (m-1)/m (3-16 disker: 67-94%) (m-2)/m (4-16 disker: 50-88%) Som RI 5 innen hver subarray (m-k)/m der k er graden av redundans (k=2, 4-16 disker: 50-88%) Som RI 6 innen hver subarray 37

Ekstramateriale 38

Fysiske disker (terminologi) Platters (plater) Sirkulære plater dekket med magnetiserbart materiale, sørger for persistent (non-volatile) lagring av bits; begge platesidene kan være magnetisert Sectors Segmenter av et spor, adskilt av ikke-magnetiserte gaps Gaps brukes til å identifisere begynnelsen på en sektor Spindle som platene spinner rundt Tracks (spor) Konsentriske sirkler på hver enkelt plate isk heads Leser eller endrer magnetismen på bits som passerer under hodet. Hodene er festet på en arm som kan forflytte hodene radialt langs plateoverflatene ylinders Samhørende spor på de enkelte platene sies å danne en sylinder 39

iskkapasitet iskstørrelsen er avhengig av ntall plater, og om platene brukes på begge sider ntall spor pr. overflate Gjennomsnittlig antall sektorer pr. spor. Moderne disker er sonet; dvs. at de ytre sporene har flere sektorer enn de indre ntall bytes pr. sektor et er forskjell på total og formatert kapasitet Noe plass blir brukt til administrative formål (sjekksummer, reservespor o.l.) 40

ksessering av disk Hva må vi gjøre for å lese/skrive fra/til disk? Plasser hodet over sylinderen (sporet) som inneholder datablokken vi vil lese eller skrive (den kan bestå av en eller flere sektorer) Vent til første sektor i datablokken passerer under diskhodet Les eller skriv datablokken mens sektorene passerer under diskhodet Tiden fra en prosess ber om å få lese en datablokk til blokken er i primærminnet, kalles diskens aksesstid 41

iskers aksesstid scheduling latency disk latency Søketid (seek time): Tiden det tar å starte, flytte og stanse diskhodet over rett sylinder Rotasjonsforsinkelse (rotational latency): Tiden det tar for platene å rotere slik at første ønskede sektor er under diskhodet Midlere forsinkelse er en halv omdreining Overføringstid (transfer time): Tiden det tar for de ønskede data å passere under diskhodet avhengig av størrelsen på datablokken, datatetthet og rotasjonshastighet og om datablokken strekker seg over flere spor (sylindre) En rekke andre faktorer medfører tidsbruk: PU-tid for å be om og prosessere I/O; konkurranse om tilgang til diskkontroller, buss og minne; kontroll av at datablokker er korrekt overført (med mulige retransmisjoner),... Felles for alle disse er at de har neglisjerbar verdi sammenliknet med de øvrige faktorene (ns/μs versus ms) 42

Skriving og endring av blokker Skriveoperasjoner er analoge med leseoperasjoner En komplikasjon oppstår hvis skriveoperasjonen må verifiseres vi må da vente en rotasjon og så lese og verifisere blokken Total skrivetid lesetid + tid for en rotasjon lokker kan ikke endres direkte på disk: Les blokken inn i primærminnet Modifiser blokken Skriv det nye innholdet tilbake til disk (Verifiser skriveoperasjonen) Total modifiseringstid lesetid + tid til endring + skrivetid (tiden brukt på selve endringen er neglisjerbar) 43

iskkontrollere iskkontrolleren er en liten prosessor som: Flytter diskhodene til riktig sylinder Velger plate og overflate som skal brukes Vet når riktig sektor er under hodet Overfører data mellom primærminnet og disk Nyere kontrollere er selv små datamaskiner åde disk og kontroller har egne buffere som reduserer diskaksesstiden ata på ødelagte diskblokker/sektorer blir flyttet til et reserveområde på disken operativsystemet (OS) vet ikke om dette, så en blokk kan ligge et annet sted enn hva OS tror ermed blir OS diskadresser virtuelle 44

Effektiv bruk av disk Siden bruken av disker er totalt dominerende når det gjelder effektiviteten av et MS, er det her det er lønnsomt å optimalisere Men det er mange måter å optimalisere på 45

etydningen av blokkstørrelsen Forutsatt en tilfeldig plassering av blokkene på disken vil en dobling av blokkstørrelsen halvere antall diskaksesser Total overføringstid blir den samme Søketid og rotasjonsforsinkelse blir halvert Men for store blokker er heller ikke bra Hver blokk bør ligge innenfor ett spor (i hvert fall innen en sylinder) Små dataelementer vil bare fylle brøkdelen av en blokk Valg av optimal blokkstørrelse er avhengig av datastørrelse og aksessmønster Ny teknologi med større og raskere disker gjør at trenden er større blokkstørrelser 46

Søkestrategier Søketid er den dominerende faktor for total disk I/O tid et finnes flere algoritmer, bl.a.: First-ome-First-Serve Shortest Seek First: iskkontrolleren velger hvilken prosess den vil betjene avhengig av hodets posisjon og ønsket blokks posisjon (minimaliser hodebevegelsen) Elevatoralgoritmen: La hodet gå fra innerste til ytterste sylinder og stopp hvis det passerer en ønsket blokk, snu når siste blokk i denne retningen er prosessert sylindernummer x x x x x x x x x tid 47

Lagring av data på disk Tupler/objekter representeres ved poster En post består av en mengde bytes som lagres samlet på en (eller flere) diskblokk(er) Posten har ett felt pr. attributt Hver post har i tillegg et posthode med administrativ informasjon om innholdet i posten atabasesystemet lagrer postskjemaer informasjon om attributter og datatyper, feltenes rekkefølge,... Hver diskblokk har et blokkhode med administrativ informasjon om innholdet i blokken Samhørende diskblokker lagres fortrinnsvis nær hverandre på disk, f.eks. på samme eller tilstøtende sylindere 48

Poster med fast lengde Ett felt med en gitt lengde pr. attributt Vanligvis settes lengden av et felt til 4n eller 8n for en passende n (mange maskiner arbeider mer effektivt hvis alle felter starter på minneadresser som er delelige med 4 eller 8) Posthodet inneholder typisk en peker til postskjemaet lengden på posten pekere til de enkelte feltene tidsstempler En blokk inneholder vanligvis poster fra bare én relasjon lokkhodet inneholder typisk lenker til andre blokker som hører logisk sammen med denne info om relasjonen(e) postene i blokken tilhører pekere (offsets) til de enkelte postene i blokken tildsstempler 49

Eksempel: Post med fast lengde create table employee ( name char(10), gender char(1), department char(3) ); name char(10) gender char(1) department char(3) H N S E N M I F I posthode blokkhode post 1 post 2... post n 50

Poster med variabel lengde Poster med variabel lengde skyldes attributter med variabel lengde f.eks. varchar attributter med repeterende felter f.eks. multiset (SQL:2003) LOer (binary large objects), f.eks. lyd, fotoer, film poster uten fast skjema f.eks. XML 51

Eksempel: ttributter med variabel lengde create table employee ( name varchar(50), gender char(1), department char(3) ); gender department name 52

Eksempel: Repeterende felter create table employee ( name varchar(50), gender char(1), department varchar(20), projects ref(projecttype) multiset ); pekere til projects gender department name 53

dressehåndtering lokker og poster adresseres i primærminnet: ved virtuell byteadresse til første byte i sekundærlageret: disk I + fysisk plassering på disken I klient-tjenerarkitekturen: Klientprosessen bruker minneadresser (dvs. konvensjonelt virtuelt adresserom) Serverprosessen (Set) bruker databaseadresser: fysiske adresser når blokken er i sekundærlageret logiske adresser når blokken er i primærminnet En map table relaterer logiske og fysiske adresser. Flytting eller sletting av en blokk gjøres ved én endring i tabellen; pekere til tabellen (logiske adresser) må ikke endres 54

Pekerhåndtering Pekere i poster: En transisjonstabell oversetter logiske adresser til minneadresser når posten er i primærminnet Pekerswizzling: Når blokker flyttes fra sekundærlager til primærminnet, oversettes pekere (pointer swizzling) fra databaseadresserom til virtuelt adresserom. Når blokken returneres til sekundærlager, omgjøres oversettelsen (unswizzling) Pinned block: For å hindre uønsket skriving tilbake til disk 55