UNIVERSITETET I OSLO

Like dokumenter
UNIVERSITETET I OSLO

Om oppgaveteksten på noe punkt er uklar eller upresis, kan du gjøre egne presiseringer. Formulér i så fall disse tydelig i oppgavebesvarelsen din.

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk

UNIVERSITETET I OSLO

Emnekode: LV121A Dato: Alle skrevne og trykte hjelpemidler

UNIVERSITETET I OSLO

F = a bc + abc + ab c + a b c

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

SKOLEEKSAMEN I. SOS4010 Kvalitativ metode. 19. oktober timer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Forelesning 9 mandag den 15. september

UNIVERSITETET I OSLO

LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke September 2012 Siri Moe Jensen EKSEMPLER

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Opptelling - forelesningsnotat i Diskret matematikk Opptelling

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Ny EKSAMEN. Operativsystemer og nettverk

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

KANDIDATEN MÅ SELV KONTROLLERE AT OPPGAVESETTET ER FULLSTENDIG

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

BOKMÅL Side 1 av 5. KONTERINGSEKSAMEN I FAG TDT4102 Prosedyre og objektorientert programmering. Onsdag 6. august 2008 Kl

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

ALGORITMER OG DATASTRUKTURER

ALGORITMER OG DATASTRUKTURER

Algoritmer og Datastrukturer

Ukeoppgaver fra kapittel 3 & 4

EKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

MAT1030 Forelesning 30

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl

Ny/utsatt EKSAMEN. Dato: 6. januar 2017 Eksamenstid: 09:00 13:00

UNIVERSITETET I OSLO

Oppgavesettet består av 7 sider, inkludert denne forsiden. Kontroll& at oppgaven er komplett før du begynner å besvare spørsmålene.

Vårt sosiale ansvar når mobbing skjer

EKSAMEN Løsningsforslag

UNIVERSITETET I OSLO

Før du søker og finansiering. Ofte stilte spørsmål. Hvem kan delta på videreutdanning? Last ned som PDF. Skriv ut. Sist endret:

Resonnerende oppgaver

Eksamen INF2270 våren 2018

KONTINUASJONSEKSAMEN

UNIVERSITETET I OSLO

DISTRIBUERT UTVIKLING AV NETTTJENESTER ( BARE UTDRAG)

Matematisk julekalender for trinn, 2008

Læringsmål og pensum. Utvikling av informasjonssystemer. Oversikt. Systemutvikling Systemutvikling i seks faser Femstegs prosedyre for programmering

Løsningsforslag til 1. del av Del - EKSAMEN

UNIVERSITETET I OSLO

NyGIV Regning som grunnleggende ferdighet

Nøkkelspørsmål til eller i etterkant av introduksjonsoppgaven:

UNIVERSITETET I OSLO

Fysikkolympiaden 1. runde 26. oktober 6. november 2015

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Løsningsforslag for Obligatorisk Oppgave 1. Algoritmer og Datastrukturer ITF20006

UNIVERSITETET I OSLO

Retningslinjer for gjennomføring av lokalt gitt muntlig eksamen Gjelder for grunnskolene i Meløy kommune med virkning fra våren 2014

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG

EKSAMEN. Emne: Webprogrammering med PHP (kont.) Webprogrammering 1 (kont.) Eksamenstid:

EKSAMEN I EMNE. TDT4136 Logikk og resonnerende systemer. Fredag 19. desember 2008 Tid: kl

Repetisjon: høydepunkter fra første del av MA1301-tallteori.

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Kapittel og 5. september Institutt for geofag Universitetet i Oslo. GEO En Introduksjon til MatLab. Kapittel 4.

Mer om likninger og ulikheter

Sensorveiledning MAT1015 Matematikk 2P

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Informasjon Eksamen i IN1000 høsten 2017

HØGSKOLEN I SØR-TRØNDELAG

EKSAMEN RF5100, Lineær algebra

Generell informasjon

Informasjon Prøveeksamen i IN1000 høsten 2018

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Kapittel 1. Potensregning

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Høgskolen i Gjøvik Institutt for informatikk og medieteknikk E K S A M E N. Grunnleggende programmering

Uendelige rekker. Konvergens og konvergenskriterier

Høgskolen i Telemark Avdeling for estetiske fag, folkekultur og lærerutdanning BOKMÅL 22. mai 2008

UNIVERSITETET I OSLO

Transkript:

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 12. desember 2003 Tid for eksamen: 09.00 12.00 Oppgavesettet er på 5 sider. Vedlegg: INF3140/4140 Modeller for parallellitet Ingen Tillatte hjelpemidler: Alle trykte og skrevne Kontroller at oppgavesettet er komplett før du begynner å besvare spørsmålene. Først noen generelle råd og bemerkninger: Oppgavesettet består av tre uavhengige deler. Det er mange oppgaver og dermed viktig at du disponerer tiden godt. Poengene angitt på hver del antyder hvor mye vekt de forskjellige delene vil bli tillagt ved sensuren. Totalt kan du oppnå 60 poeng for denne besvarelsen. Merk at ikke alle deloppgaver teller like mye. Om oppgaveteksten på noe punkt er uklar eller upresis, kan du gjøre dine egne presiseringer. Formulér i så fall disse tydelig i oppgavebesvarelsen din. Legg vekt på å gi korte og klare forklaringer. (Fortsettes på side 2.) Lykke til!

Eksamen i INF3140/4140, 12. desember 2003 Side 2 Oppgave 1 Analyse (20 poeng) Det har den senere tid vært uklart hvor mange som faktisk reiser med Kolsåsbanen, så Malin og Tore bestemmer seg for å telle antall passasjerer på neste tog. Et tog består av én eller flere vogner. For å effektivisere arbeidet, bestemmer Tore seg for å løpe gjennom vognene og telle antall passasjerer i hver vogn. Ved fullført opptelling i en vogn skriver han tallet på en tavle. Malin skal beregne totalt antall passasjerer på toget. Dette gjør hun ved å legge antallet passasjerer som Tore har skrevet på tavlen, til summen hun har beregnet for vognene som allerede er talt. For å forsikre seg om at ingen passasjerertall går tapt, bruker de to tellere s og l. Vi lar s reprentere antall ganger Tore har skrevet et tall på tavlen og l representere antall ganger Malin har lest et tall fra tavlen. Vi antar at toget har n > 0 vogner, og at antall passasjerer i hver vogn er gitt i arrayet VOGN[n]. Et utkast til program er følgende: int tavle, s = 0, l = 0; process Tore { int vogn[n] = VOGN[n]; while (s < n) { <await (s == l); > tavle = vogn[s]; s = s+1; ## arrayet vogn[n] inneholder tallene ## som Tore skal levere til Malin process Malin { int passasjerer[n]; while (l < n) { <await (l < s); > if (l == 0) then passasjerer[l] = tavle else passasjerer[l] = passasjerer[l-1] + tavle; l = l+1; 1a Analyseregel (5 poeng) Analyseregelen for programsetningen if (B) S; er følgende: Formuler en analyseregel for utsagnet (Fortsettes på side 3.) {P B S {Q P B Q {P if (B) S; {Q {P if (B) then S1; else S2 {Q?

Eksamen i INF3140/4140, 12. desember 2003 Side 3 1b Invariant (5 poeng) Formuler en invariant for programmet over. 1c Kritiske regioner (5 poeng) Angi hva som er kritiske regioner i de to prosessene. Begrunn svaret. 1d Interferensfrihet (5 poeng) Er prosessene interferensfrie? Begrunn svaret. Oppgave 2 Monitor (20 poeng) Denne oppgaven ser på monitorer som kontrollerer allokering av minneblokker, men vi ser bort i fra selve den fysiske allokeringen. Anta at vi har to operasjoner request(amount) og release(amount), der amount er et positivt heltall. Når en bruker av monitoren gjør et kall til request må den vente til det er minst amount ledige minneblokker. En bruker frigjør allokert minne ved å gjøre kall til release. Monitoren skal benytte Signal and Continue-disiplin i alle deloppgaver. 2a (7 poeng) Lag en monitor som implementerer request og release. Det stilles ingen krav til rekkefølgen brukere får allokert minne. (Hint: Bruk covering condition metoden.) 2b (7 poeng) Lag en monitor som lar den minst ressurskrevende bruker få allokere først ( shortest-job-first allokeringsdisiplin). 2c (6 poeng) Lag en monitor der brukerne får allokert minne i den rekkefølgen de ankommer monitor ( first-come-first-served allokeringsdisipin). (Fortsettes på side 4.)

Eksamen i INF3140/4140, 12. desember 2003 Side 4 Oppgave 3 Meldingsutveksling (20 poeng) De tre gode vennene Ane, Bo og Kat bor i samme by. De går på kino sammen hver eneste kveld, noe de avtaler ved å sende tekstmeldinger (SMSer) til hverandre, alltid på samme måte: hver venn sender en melding til de to andre. Byen har bare én kinosal så eneste mulige uenighet er hvilken forestilling, dvs. hvilket tidspunkt, vennene skal velge. Dette løser de ved at den som vil gå på kino tidligst får viljen sin. Han/hun bestiller billetter hvis det er noen igjen, også via tekstmelding til kinoen, som svarer på samme måte. Billettkjøperen sier så ifra, stadig via tekstmelding, til de andre om det blir kinotur eller om de skal ta en øl i stedet. Dersom flere vil gå på samme (første) tidspunkt er det en fast regel for hvem som bestiller billetter. Her er et ufullstendig program som representerer vennene som prosesser:... kanal-deklarasjon(er) process Venn[i = 0 to 2] {... lokale variabel-deklarasjoner... while (true) {... bli enig om kinotidspunkt... if (... jeg skal bestille billetter...)... bestill billetter (hvis mulig) og gi beskjed... else... vent på beskjed om kino... if (... fikk bestilt billetter...) gå_på_kino(); # ferdiglaget else ta_en_øl(); # ferdiglaget process Kino { ta_imot_bestillinger(); # ferdiglaget Oppgaven går ut på å fullføre koden over ved å fylle inn der det står... tekst.... Du skal bruke asynkron meldingsutveksling (engelsk: asynchronous message passing). Merk at vennene representeres i en prosesstabell, dvs. samme kode brukes for hver venn. Anta at tidspunktet er et heltall, int. Anta at kodebitene angitt med # ferdiglaget er laget allerede. (Fortsettes på side 5.)

Eksamen i INF3140/4140, 12. desember 2003 Side 5 3a (5 poeng) Lag kanaldeklarasjoner for kommunikasjon mellom vennene, og for kommunikasjon med kinoen. Lag lokale variabeldeklarasjoner. 3b (15 poeng) Lag kode for: (i) å bli enige om kinotidspunktet, samt å avgjøre hvem som skal bestille billetter. (ii) å bestille billetter hvis mulig, samt å gi og motta beskjed om dette.