TDT4225 Lagring og behandling av store datamengder



Like dokumenter
Eksamensoppgave i TDT4225 Lagring og behandling av store datamengder Kontinuasjonseksamen

TDT4225 Lagring og behandling av store datamengder

Eksamensoppgave i TDT4225 Lagring og behandling av store datamengder

TDT4225 Lagring og behandling av store datamengder

TDT4225 Lagring og behandling av store datamengder

Bokmål. Eksamensinformasjon. Del 2 skal leveres inn etter 5 timer. verktøy som tillater kommunikasjon.

EKSAMENSOPPGAVE I TDT4145 DATAMODELLERING OG DATABASESYSTEMER. Faglig kontakt under eksamen: Svein Erik Bratsberg og Roger Midtstraum

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

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

Høgskolen i Gjøvik. Avdeling for elektro- og allmennfag K O N T I N U A S J O N S E K S A M E N. EKSAMENSDATO: 11. august 1995 TID:

Andre sett obligatoriske oppgaver i INF3100 V2013

DEL1 Uten hjelpemidler

UNIVERSITETET I OSLO

Filsystemet fra innsiden

TDT4145 Datamodellering og databasesystemer

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

Eksamen i matematikk løsningsforslag

1. Relasjonsmodellen Kommentarer til læreboka

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

DEL1 Uten hjelpemidler

UNIVERSITETET I OSLO

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Antall sider (inkl. forsiden): 7. Alle trykte og håndskrevne

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

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

DBS18 - Strategier for Query-prosessering

Hashing. INF Algoritmer og datastrukturer HASHING. Hashtabeller

TDT4105 Informasjonsteknologi, grunnkurs

Del 3. Pekere RR 2016

Obligatorisk oppgave 1 INF1020 h2005

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

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

Skisse til løsning for eksamensoppgave i TDT4186 Operativsystemer

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

Øvingsforelesning 4. Martin Aasen

TDT4110 Informasjonsteknologi grunnkurs: Eksempler. Mangekanter

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Faglig kontakt under eksamen: Orestis Gkorgkas

EKSAMENSOPPGAVE. INF-1101 Datastrukturer og algoritmer. Adm.bygget, rom K1.04 og B154 Ingen

Filsystemet fra innsiden

Testlig og binær form

SAMMENDRAG OG FORMLER. Nye Mega 9A og 9B

EKSAMENSOPPGAVE. INF-1100 Innføring i programmering og datamaskiners virkemåte. Ingen. Elektronisk (WiseFlow) Robert Pettersen

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

Eksamen iin115 og IN110, 15. mai 1997 Side 2 Oppgave 1 Trær 55 % Vi skal i denne oppgaven se på en form for søkestrukturer som er spesielt godt egnet

Algoritmer og Datastrukturer

Eksamen i EVU-kurs TRAFIKKTEKNIKK. Oslo Tirsdag 13. november 2007

UNIVERSITETET I OSLO

TDT4102 Prosedyreog objektorientert programmering Vår 2016

TDT4105 Informasjonsteknologi, grunnkurs MatLab: Filbehandling - load, save, type - fopen, fgetl, feof, fprintf, fclose

Oversikt. INF1000 Uke 2. Repetisjon - Program. Repetisjon - Introduksjon

Generelt om permanent lagring og filsystemer

TDT4110 IT Grunnkurs Høst 2014

UNIVERSITETET I OSLO

Oppgave 1 Datamodellering 25 %

Eksamensoppgave i TIØ4120 Operasjonsanalyse, gk.

UNIVERSITETET I OSLO

EKSAMENSOPPGAVE. NB! Det er ikke tillatt å levere inn kladd sammen med besvarelsen

DBS16: Disklagring, filstrukturer, hashing

EKSAMENSOPPGAVE. INF-1100 Innføring i programmering og datamaskiners virkemåte. Teorifagb, hus 3, og og Adm.bygget, Aud.max og B.

Kapittel 2. Tall på standardform

Programmeringsspråket C Del 3

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Oppgave 1 ER- og relasjonsmodell 10 %

UNIVERSITETET I OSLO

Dagens plan: INF Algoritmer og datastrukturer. Repetisjon: Binære søketrær. Repetisjon: Binære søketrær

VÅRE «SIDER» Professor Kjell Bratbergsengen, Institutt for datateknikk og informasjonsvitenskap, NTNU

Litt om Javas håndtering av tall MAT-INF 1100 høsten 2004

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

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

BOKMÅL Side 1 av 7. KONTINUASJONSEKSAMEN I FAG TDT4100 Objektorientert programmering / IT1104 Programmering, videregående kurs

a) Blir produktet av to vilkårlige oddetall et partall eller et oddetall? Bevis det.

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.

Effektiv eksekvering av spørsmål

Programmeringsspråket C Del 3

KONTINUASJONSEKSAMEN

UNIVERSITETET I OSLO

EKSAMENSOPPGÅVE I TDT4145 DATAMODELLERING OG DATABASESYSTEMER

INF2220: Forelesning 2

EKSAMENSOPPGAVE. : INF-1400 Objektorientert programmering. Oppgavesettet er på 5 sider inklusiv forside

Eksamensoppgave i MA0301 Elementær diskret matematikk løsningsforslag

UNIVERSITETET. Indeksering. Konvensjonelle indekser B-trær og hashing Flerdimensjonale indekser Hashliknende strukturer.

Niels Henrik Abels matematikkonkurranse

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

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

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

Eksamen i emne TFE4110 DIGITALTEKNIKK MED KRETSTEKNIKK Fredag 21. mai 2004 Tid. Kl

Python: Variable og beregninger, input og utskrift. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Tirsdag 21/11. Onsdag 24/11. Tirsdag 12/12. TDT4110 Informasjonsteknologi grunnkurs: Tema: Et større case

SKOLEEKSAMEN 29. september 2006 (4 timer)

UNIVERSITETET. Indeksering. Hvordan finne et element raskt? Vera Goebel, Ellen Munthe-Kaas

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

E K S A M E N. Algoritmiske metoder I. EKSAMENSDATO: 11. desember HINDA / 00HINDB / 00HINEA ( 2DA / 2DB / 2EA ) TID:

DEL1 Uten hjelpemidler

UNIVERSITETET I OSLO SQL. Structured Query Language. (forts.) Institutt for Informatikk. INF Ragnar Normann 1

Mål. Pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Et større case. Terje Rydland - IDI/NTNU. Lære å lage større og sammensatte programmer

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Transkript:

Eksamensoppgave i TDT4225 Lagring og behandling av store datamengder Kontinuasjonseksamen. Fredag 17. august 2012, kl. 0900-1300 Oppgaven er utarbeidet av faglærer Kjell Bratbergsengen. Kontaktperson under eksamen: Kjell Bratbergsengen, telefon 906 17 185. NB: Ingen besøksrunder under eksamen, ta kontakt via telefon. Språkform: Bokmål Tillatte hjelpemidler: D Ingen trykte eller håndskrevne hjelpemiddel er tillatt. Bestemt, enkel kalkulator tillatt. Sensur: Innen fredag 31. august 2012 Oppgave 1, randomisert lagring (20%) Det norske folkeregisteret inneholder opplysninger om ca. 8 millioner mennesker. Da regner vi med personer som har eller har hatt et norsk personnummer. Det norske personnummeret er bygget opp slik: ddmmyylllcc. dd er dag i måned, 1-31 mm er måned, 1-12 yy er år, 00-99 lll er et løpenummer, 0-999, liketall for kvinner og oddetall for gutter. cc er sjekksiffer som beregnes ut fra de andre sifrene i nummeret. a) Hvilke kvalitetskriterier kan du sette opp for en hashformel? b) Du skal lage en hashformel som bruker personnummer som nøkkel. Hashformelen skal gi en adresse mellom 0 og 55 012 101. Begrunn ditt valg av hashformel. c) Persondata er lagret som personposter på en diskfil som er byte-adressert. Personpostene kommer i vilkårlig rekkefølge og har variabel lengde. Du skal lage en indeks til denne filen ved å bruke hashformelen i foregående oppgave. Indeksen skal ligge på disk. Du skal selv velge hvordan du vil utforme filen. Beskriv indeksfilen. d) Du skal velge blokkstørrelse, blokkfaktor og fyllingsgrad for indeksfilen. Alle disse valgene skal begrunnes. Side 1 av 5

a) Formelen skal spre posten mest mulig uniformt innen adresseområdet. Opphoping av poster på en adresse eller et lite adresseområde er meget uheldig. Formelen skal også være rask å utføre. b) Velger ut de sifferposisjoner som varierer best. Vi trenger også minst 7 siffer som er antall siffer i adresseområdet. Vi kan velge cc, de to siste sifrene i løpenummeret, yy og siste siffer i dd og mm. Da får vi et tall ccl 2 l 3 yyd 2 m 2 som er 8 desimale siffer. Adressen beregnes til slutt med formelen a=mod(ccl 2 l 3 yyd 2 m 2, N) hvor N er lik 55 012 101. c) Vi velger en randomisert fil med progressivt eller lenket separat overløp. Vi har god kontroll på filens størrelse som gjør at vi kan velge progressivt overløp. Vi vil også bruke en stor blokkfaktor fordi hver post er liten. En stor blokkfaktor gjør progressivt overløp enda mer attraktivt. Beregning av poststørrelsen: personnummeret tar 11 siffer, vi lagrer det som tekst. Vi gir det 12 siffer for å bruke et antall hele ord (4 byte). Pekeren til selve posten er en byteadresse. Vi antar at den blir større enn 4GB som er grensen for 4 bytes heltall. I stedet bruker vi en lang integer 8 byte. Hver post blir da 20 byte (5 hele ord). Alle poster er like, så vi trenger ingen administrative data. d) Vi kan velge små blokker, for eksempel 4 KB. Det gir en blokkfaktor på ca. 4000/20=200 som er meget bra for en randomisert fil. Vi velger en fyllingsgrad på 0,8 som er meget lavt for en så stor blokkfaktor. Da vil vi nesten ikke finne overløp. Filens totale størrelse blir da: 8000000*20/0.8=200 MB (ikke spurt om i oppgaven). Oppgave 2, organisering av data innen en blokk (20%) Data transporteres mellom arbeidslager (buffer) og disk i blokker. a) I en blokk lagrer vi administrative data som er til hjelp for å sikre at data blir lagret på en sikker måte. Nevn og forklar noen slike data. b) En blokk kan inneholde mange poster. Hvordan vil du organisere data i en blokk som skal lagre poster av variabel lengde mellom 20 og 10000 byte? Anta en blokkstørrelse på minst 64 KB og at det er langt flere korte poster en lange. Postene kan slettes og oppdateres. En oppdatering kan endre postlengden den kan bli mindre like lang eller lengre enn før oppdatering. c) Du skal lagre poster med følgende felter, se tabellen nedenfor: Feltnavn Datatype Antall byte Andel (%) A integer 4 100 B char 0-1000 30 C float 8 90 D byte 1 100 E char 30 60 F char 0-10000 4 G integer 4 100 H integer 4 80 Side 2 av 3

Andel angir andel i % av postene hvor felttypen forekommer. Felt A er nøkkel i posten. Feltene G og H er fremmednøkler i relasjonsmodellens terminologi. Gjennomsnittslengden av B-felt (som finnes) er 700 byte. Tilsvarende for F-felt er 4000 byte. Forklar hvordan du vil organisere posten for å oppnå mest mulig effektiv behandling. d) Hvor lang blir gjennomsnittlig postlengde? a) En blokk kan inneholde adressen til sin førkopiblokk og etterkopiblokk. Den kan også inneholde et sekvensnummer som forteller når blokken ble skrevet. Sekvensnummeret må stå både først og sist i blokken for å være sikker på at den er skrevet i sin helhet. Vi må gardere oss mot at vi bruker en blokk som bare delvis er skrevet. Vi kan også beregne en sjekksum basert på hele blokkens innhold og lagre den som administrative data. Hvis en blokk da ikke får samme sjekksum har den bli endret på mystisk vis og innholdet i blokken kan ikke uten videre stoles på. b) Se også læreboka. Hovedprinsippet er at en lagrer poster fortløpende bakfra så lenge det er plass. Forfra i blokken har vi en peker til posten som forteller hvor i blokken den er lagret. Sletting av post og utvidelse av post medfører flytting vil begge etterlate ledig plass innimellom opptatt plass. Når blokken er full må den ledige plassen samles opp for å gjøres tilgjengelig igjen. En stor blokkfaktor gjør at søk i blokken kan unngås ved organisere postene i et binærtre. Det krever to interne pekere ekstra i tillegg til den aktuelle postpekeren. c) Felter av fast lengde som forekommer hyppig gis en fast plass innen posten. Felter med varierende lengde og usikker forekomst plasseres i halen. De kan ha en fast pekerposisjon som sier om de eksisterer og i så fall hvor de starter, eller hvert felt kan komme i en kommaseparert liste med felt id og lengde. Den aktuelle posten ville kunne se slik ut: AGHCD,E,B,F. De fem første feltene starter på fast plass, de tre siste er lagt ut som variabel lengde felter eller variabel forekomst felter. Se boka for detaljer. d) Vi regner ut basert på data i tabellen: Feltnavn Datatype Antall byte Andel (%) Gjsn Bidrag A integer 4 100 4 4 B char 0-1000 30 700 210 C float 8 90 8 7,2 D byte 1 100 1 1 E char 30 60 30 18 F char 0-10000 4 4000 160 G integer 4 100 4 4 H integer 4 80 4 3,2 Gjennomsnittlig postlengde er 407,4 byte. 407,4 Oppgave 3, Sortering (15 %) a) Du skal gjøre initiell sortering av følgende poster med reservoarmetoden, reservoaret har plass for 3 poster. Innfilens nøkler ser slik ut: 32, 44, 10, 3, 62, 79, 64, 43, 98, 33, 8, 19, 5, 2. Forklar metoden, og vis resultatet ved å skrive ut alle delfilene. Side 3 av 3

b) Du har fått 432 delfiler og kan flette maksimalt 107 delfiler. Hvor mange dummy delfiler må du legge til i første fletting for å få et optimalt flettetre? Forklar hvordan du kommer fram til svaret a) Delfil 1 10 32 44 62 64 79 98 eof Delfil 2 3 8 19 33 43 eof Delfil 3 2 5 eof b) N+x-y(p-1)=1. N er antall delfiler 432, x er antall dummy delfiler og p er flettegrad 107. 432+x-5(106)=1, x=1+530-432=99 Oppgave 4, 3-dimensjonale rasterbilder (seismikk) (30 %). 3-dimensjonale bilder kan lagres som 3-dimensjonale matriser. Hvert element i matrisen representerer et bilde-element voksel. Hvert voksel gis en fargekode på 2 byte. Hvert voksel representerer et areal på 10 ganger 10 meter og en dybde på 5 meter når vi lagrer data fra seismiske undersøkelser. Hvor stor datamengde utgjør et seismikk-data for et felt på 20 km ganger 30 km. Det dekkes en dybde fra 0 til 7000 meter. Dataene er lagret på magnetisk disk. Vi velger en blokkstørrelse på 65536 (2 16 )byte. Vi velger å lagre like mange voksler i alle tre akseretninger x, y og z. z angir dybde. Vi får da en kube eller en likesidet terning med voksler. Hvor stor blir sidekanten på terningen som det er plass til i en diskblokk? Data er lagret på disk med følgende parametre: 10000 rotasjoner per minutt, gjennomsnittlig aksesstid er 10 ms og overføringskapasitet er 20 MB/s. Hvor mye tid tar det å hente ut en diskblokk? Dataene visualiseres ved å ta utsnitt som er parallelle med ett av akseplanene xz eller yz. Utsnittene er vilkårlig lokalisert. Hvert utsnitt er 1280 x 1024 voksler. Hvor stort datavolum må leses for å få fram et slikt utsnitt? Forklar også hvordan du resonnerer for å komme fram til svaret. Finn blokkstørrelsen som vil minimalisere tidsforbruket for å hente fram et utsnitt etter den metoden som er angitt i oppgave 4d. a) x y z 20000 30000 7000 m 10 10 5 2000 3000 1400 8 400 000 000 2 16.8 GB Siste linje inneholder antall voksler i x-, y- og z-retning. Antall voksler er 8.4 G, hvert voksel er 2 byte, totalt datavolum er 16.8 GB. Side 4 av 3

b) x y z 65536 32 32 32 65536 Sidekanten er 32 = 2**5. Blokkstørrelsen da blir (2**5)**3=2**15, som er antall voksler. Hver voksel er 2 byte, dvs. blokken blir 64 KB. c) 20000 Tid 64 0,01 0,0032 0,0132 Tid for å hente ut en diskblokk er 0,0132 sekunder er 13,2 ms. d) Blokkene må omslutte bildet. 1280 1024 32 32 1312 1056 88 670 208 176,3 MB Legger til en diskblokk i hver dimensjon, dvs, 32 voksler i hver dimensjon. Tykkelsen på bildet er 32 voksler. Hver voksel er to byte, totalt 88.67 MB. For å minimalisere tidsforbruket må vi derivere tidsforbruket med hensyn på blokkstørrelsen. Volumet er V=wx(h+x)(b+x)=w(hbx+hx 2 +bx 2 +x 3 ). H er høyde i bildet og b er bredden av bildet. w er antall byte per voksel. Tidsforbruket er T = av/b+v/t a er tid per aksess og b er blokkstørrelse. b= wx 3 t er overføringskapasitet i MB per sekund. Vi setter inn i T. T = aw(hbx+hx 2 +bx 2 +x 3 )/wx 3 + w(hbx+hx 2 +bx 2 +x 3 )/t T= a(hbx -2 +hx -1 +bx -1 +1)+ w(hbx+hx 2 +bx 2 +x 3 )/t dt/dx=0=a(-2hbx -3 -hx -2 -bx -2 )+ w(hb+2hx+2bx+3x 2 )/t (2hbx -3 +hx -2 +bx -2 )ta/w= hb+2hx+2bx+3x 2 Iterasjonsformel : x=((2hbx -3 +hx -2 +bx -2 )ta/w-hb-3x 2 )/(2h+2b) Ved å prøve seg fram på formel for tidsforbruk T får vi at optimal sidekant er 56 voksler. Optimalt tidsforbruk er 12,68 sekunder og b er 351 KB. Oppgave 5, Relasjonsalgebra (15 %) a) Forklar relasjonsalgebraoperasjonen divisjon R=A/B. b) Forklar hvordan du vil utføre operasjonen. Skriv gjerne et program i pseudokode. Se lærebok. Kjb/8.8.2012 Side 5 av 3