INF3140 Modeller for parallellitet INF3140/4140: Låser og Barrierer

Størrelse: px
Begynne med side:

Download "INF3140 Modeller for parallellitet INF3140/4140: Låser og Barrierer"

Transkript

1 INF3140/4140: Låser og Barrierer Uke 2, side 1.

2 Praktisk Obligatorisk oppgave 1 Er nå lagt ut. Merk: Frist fredag 21. sept. Guppelærer Mohammad Ali Norozi mohammno@ifi.uio.no Merk: Kun gruppe 1 åpen! Forelesningssted Lille Aud: fra og med neste uke (dvs )! Uke 2, side 2.

3 Innledning Sentralt for kurset er generelle mekanismer og problemstillinger knyttet til parallelle programmer Forrige gang: await språket og enkel versjon av produsent/konsument-eksemplet I dag Inngangs- og utgangsprotokoller til kritisk region Beskytte lesing og skriving til felles variable Barrierer Iterative algoritmer: Prosessene må synkroniseres mellom hver iterasjon Koordinering v.h.a. flagg Uke 2, side 3.

4 Hoved-spørsmål: Hvordan kan man implementere kritiske regioner/ betingede kritiske regioner? v.h.a. låser og lavnivå operasjoner aktiv venting (senere semaphorer og passiv venting) ulike løsninger og egenskaper Uke 2, side 4.

5 Adgang til Kritisk Region (KR) Flere prosesser konkurrerer om tilgang til felles ressurs Bare én prosess kan ha tilgang av gangen Mulige eksempler: Utføring av banktransaksjoner Tilgang til skriver Løsning kan brukes til å implementere await-setninger Uke 2, side 5.

6 Kritisk region: Første tilnærming til løsning Operasjoner på felles variable skjer inne i KR. Aksess til KR må da beskyttes for å unngå interferens process p[i=1 to n] { while (true) { KRinngang ; KR; KRutgang ; ikke KR # inngang til KR # utgang fra KR Antagelse: En prosess som kommer inn i KR vil til slutt forlate denne. Uke 2, side 6.

7 Naiv løsning int in = 1; 1 eller 2 process p1 { process p2 { while (true) { while (true) { while (in=2) skip; while (in=1) skip; KR KR in = 2; in = 1; ikke KR ikke KR God løsning? Hva er bra, hva er ikke så bra? Uke 2, side 7.

8 Safety egenskaper Safety: Ikke noe går galt, kommer ikke i uønsket tilstand Typiske eksempler for sekvensielle programmer Sluttilstanden er riktig, invariant holder,... Typiske safety egenskaper for parallelle programmer Mutex: Bare én prosess i kritisk region om gangen Fravær av vranglås: unngå at alle prosessene venter på betingelser samtidig (deadlock) Uke 2, side 8.

9 Safety: Invarianter (repetisjon) En sikkerhetsegenskap uttrykker at et program ikke kommer til en dårlig tilstand. For å bevise dette, kan vi vise at programmet aldri vil forlate en god tilstand: Vis at egenskapen holder i alle starttilstander Vis at programsetningene opprettholder egenskapen En slik egenskap kalles gjerne global invariant Uke 2, side 9.

10 Atomære regioner Brukes til synkronisering av prosesser Generell form: < await(b)s; > B: Synkroniseringsbetingelse Utføres atomært nårber sann Ubetinget kritisk region (B er true): < S; > S utføres atomært Betingelsessynkronisering: < await(b); > Uke 2, side 10.

11 Kritisk region v.h.a. lås bool lock = false; Lås: Én variabel brukes til regulere process p[i=1 to n] { adgang til KR for n prosesser while (true) { < await (!lock) lock = true; > # KRinngang KR lock = false; # KRutgang ikke KR Safety egenskaper: Mutex Fravær av deadlock Fravær av unødig venting Hva med å endre plasseringen av <...>? Uke 2, side 11.

12 Test & Set Test & Set er en metode for å implementere betinget atomær aksjon: bool TS(bool lock) { < bool initial = lock ; lock = true; return initial; > Virkningen avts(lock): Variabelenlock vil alltid ha verditrue etterts(lock), men returverdien vil variere mellomtrue ogfalse. Finnes som atomær instruksjon på mange maskiner. Uke 2, side 12.

13 Kritisk region v.h.a. TS og Spinnelås bool lock = false; Spinnelås: process p[i=1 to n] { Prosessene brukerts til å gå i løkke. while (true) { while (TS(lock)) skip; Utgang fra løkka skjer nårlock KR har verdienfalse før while-testen. lock = false; ikke KR Uke 2, side 13.

14 Kritisk region v.h.a. Test, test & Set Låsvariabelenlock blir kontinuerlig skrevet til av prosessene. Dette kan være ineffektivt, og en mer effektiv løsning er test, test og set. bool lock = false; process p[i=1 to n] { while (true) { while (lock) skip; while (TS(lock)) { while (lock) skip; KR lock = false; ikke KR spinn mens låsen er opptatt prøv å ta låsen spinn hvis det feiler Uke 2, side 14.

15 Implementere await-setninger LaKRinngang ogkrutgang implementere inngangs- og utgangsprotokoller til kritisk region. Da kan setningen< S;> implementeres ved KRinngang; S; KRutgang; Implementasjon av betinget kritisk region < await (B) S;> : KRinngang; while (!B) { KRutgang; KRinngang; S; KRutgang; Implementasjonen kan effektiviseres meddelay mellom utgang og inngang i kroppen påwhile-setningen. Uke 2, side 15.

16 Liveness egenskaper Liveness: Noe går godt Typisk eksempel for sekvensielle programmer Programmet terminerer Typisk liveness egenskap for parallelle programmer En gitt prosess vil til slutt komme inn i kritisk region Dette påvirkes av strategier for skedulering. Uke 2, side 16.

17 Skedulering og fairness Fairness: garanti for at prosesser får anledning til å eksekvere. Skedulering: Strategi for å avgjøre hvilken prosess som får anledning til å eksekvere. Eksempel: bool x = true; co while (x); x = false; oc Uke 2, side 17.

18 Ubetinget fairness En strategi for skedulering er ubetinget fair hvis enhver ubetinget atomær aksjon som kan velges til slutt blir valgt. Round robin eksekvering Eksempel: bool x = true; co while (x); x = false; oc x = false er ubetinget Må dermed før eller siden bli valgt Dette garanterer terminering Uke 2, side 18.

19 Svak fairness En strategi for skedulering er svakt fair hvis den er ubetinget fair enhver betinget atomær aksjon blir til slutt valgt, forutsatt at betingelsen blir sann og deretter forblir sann til aksjonen blir eksekvert. Eksempel: bool x = true, int y = 0; co while (x) y = y + 1; < await y >= 10; > x = false; oc Nåry >= 10 blir sann, så forblir denne betingelsen sann Dette sikrer terminering av programmet Round robin eksekvering Uke 2, side 19.

20 Sterk fairness En strategi for skedulering er sterkt fair hvis den er ubetinget fair enhver betinget atomær aksjon blir til slutt valgt, forutsatt at betingelsen er sann uendelig ofte. Eksempel: bool x = true, y = false; co while (x) { y = true; y = false; < await (y) x = false; > oc Med sterk fairness: Programmet vil terminere, fordiyer sann uendelig ofte. Med svak fairness: Programmet trenger ikke terminere, fordiyogså er usann uendelig ofte. Uke 2, side 20.

21 Fairness for kritisk region v.h.a lås KR løsningene tidligere i forelesningen trenger antagelse om sterk fairness for å garantere tilgang for en gitt prosess (i ): Jevnt tilsig av prosesser som ønsker låsen Verdien tillock pendler (uendelig lenge) mellomtrue ogfalse Svak fairness: Prosess i kan leselock bare når verdien erfalse Sterk fairness: Garanterer at i før eller siden ser atlock ertrue Vanskelig å lage en skeduleringsstrategi som er både praktisk og sterkt fair. Skal nå se på KR-løsninger der inngang garanteres med svakt fair strategier Uke 2, side 21.

22 Fair løsninger på KR-problemet Tie-Breaker Kø-lapp I tillegg beskriver boka bakeri-algoritmen Uke 2, side 22.

23 Tie-Breaker algoritmen Trenger ingen spesiell maskininstruksjon (somts) Ser på løsning med to prosesser Hver prosess har privat lås Hver prosess setter sin lås i inngangsprotokollen Den private låsen leses, men blir ikke endret av den andre prosessen Uke 2, side 23.

24 Tie-Breaker algoritmen: Forsøk 1 bool in1 = false, in2 = false process p1 { process p2 { while (true) { while (true) { while (in2) skip; while (in1) skip; in1 = true; in2 = true; KR KR in1 = false; in2 = false; ikke KR ikke KR Her kan vi ikke garantere mutex! Uke 2, side 24.

25 Tie-Breaker algoritmen: Forsøk 2 Prøver å snu rekkefølgen i inngangsprotokollen: bool in1 = false, in2 = false process p1 { process p2 { while (true) { while (true) { in1 = true; in2 = true; while (in2) skip; while (in1) skip; KR KR in1 = false; in2 = false; ikke KR ikke KR Her kan vi ikke garantere fravær av deadlock! Uke 2, side 25.

26 Tie-Breaker algoritmen: Forsøk 3 Innfører variabellast som forteller hvilken prosess som sist begynte på inngangsprotokollen. bool in1 = false, in2 = false int last = 1 process p1 { while (true) { in1 = true; last = 1; < await (!in2 or last==2);> KR in1 = false; ikke KR process p2 { while (true) { in2 = true; last = 2; < await (!in1 or last==1);> KR in2 = false; ikke KR Uke 2, side 26.

27 Tie-Breaker algoritmen Selv om variablenein1,in2 oglast kan endre verdi mens en ventebetingelse evaluerer til sann, vil ventebetingelsen fremdeles være sann. p1 ser at ventebetingelsen er sann: in2 == false in2 kan etterhvert blitrue, men da måp2 også settelast til 2 Da holder forsatt ventebetingelsen tilp1 last == 2 Da villast == 2 holde helt tilp1 har eksekvert Dermed kan vi erstatte await-setningen med en while-løkke. Uke 2, side 27.

28 Tie-Breaker algoritmen (4): Implementasjon bool in1 = false, in2 = false int last = 1 process p1 { while (true) { in1 = true; last = 1; while (in2 and last==1) skip; KR in1 = false; ikke KR process p2 { while (true) { in2 = true; last = 2; while (in1 and last==2) skip; KR in2 = false; ikke KR Kan generaliseres til flere prosesser (se boka) Uke 2, side 28.

29 Kølapp-algoritmen Hvis Tie-Breaker algoritmen skaleres for n prosesser, får vi en løkke med n 1 2-prosess Tie-Breaker algoritmer Kølapp-algoritmen gir enklere løsning på KR-problemet for n prosesser. Fungerer som køsystemet på posten (med én luke) En kunde (prosess) som kommer inn trekker et nummer som er høyere enn nummeret til alle andre som venter Kunden betjenes når luka er ledig og hun har lavest nummer av ventende prosesser Uke 2, side 29.

30 Kølapp-algoritmen: Skisse (n prosesser) int number = 1, next = 1, turn[1:n]= ([n] 0); process p[i = 1 to n] { while (true) { < turn[i] = number; number = number + 1; > < await (turn[i] = next);> KR < next = next + 1; > Ikke KR Første linje i løkka må gjøres atomært! await-setningen kan implementeres som egen løkke Noen maskiner har instruksjonen FA(var, incr): < int tmp = var; var = var + incr; return tmp; > Uke 2, side 30.

31 Kølapp-algoritmen: Implementasjon int number = 1, next = 1, turn[1:n]= ([n] 0); process p[i = 1 to n] { while (true) { turn[i] = FA(number, 1); while (turn[i]!= next) skip; KR next = next + 1; Ikke KR FA(var, incr): < int tmp = var; var = var + incr; return tmp; > Uten denne instruksjonen, bruker vi en annen KR: KRinngang; turn[i]=number; number = number + 1; KRutgang; Problem med fairness for KR. Løses med bakeri-algoritmen (se boka). Uke 2, side 31.

32 Kølapp-algoritmen: Invariant Vi kan formulere en global invariant for prosessene i kølapp-algoritmen: 0 < next number For hver prosessp[i]: turn[i] < number hvisp[i] er i KR så erturn[i] == next. For alle prosesserp[i],p[j] deri!= j: hvisturn[i] > 0 så erturn[j]!= turn[i]. Dette holder initielt, og blir opprettholdt av alle atomære setninger. Uke 2, side 32.

33 Barriere-synkronisering Utregning av disjunkte deler i parallell (f.eks. array-elementer). Prosessene går i løkke, der hver gjennomgang er avhengig av resultatene fra forrige gjennomgang. process Worker[i=1 to n] { while (true) { Arbeidsoppgave i; Vent til n-oppgaver er gjort; # Barriere Alle prosessene må nå barrieren før noen kan forsette. Uke 2, side 33.

34 Delt teller Et antall prosesser skal synkronisere avslutning av sine arbeidsoppgaver. Synkroniseringen kan implementeres ved en felles teller : int count = 0; process Worker[i=1 to n] { while (true) { Arbeidsoppgave i < count = count + 1; > < await (count == n); > Kan implementeres v.h.a. FA-instruksjon. Ulemper: count må nullstilles mellom hver gjennomgang. Må endres v.h.a. atomære operasjoner. Ineffektivt: Mange prosesser leser og skriver tilcount samtidig. Uke 2, side 34.

35 Koordinering ved hjelp av flagg Målsetning: Unngår overbelastning av lese- og skriveoperasjoner på én variabel. Deler felles teller i flere lokale variable. Worker[i]: arrive[i] = 1; < await (continue[i] == 1);> Coordinator: for [i=1 to n] < await (arrive[i]==1);> for [i=1 to n] continue[i] = 1; Hvis det er flere synkroniseringspunkter på samme flagg, gjelder følgende: Prosessen som venter på et flagg, er den som skal nullstille flagget etter synkronisering Et flagg skal ikke settes før det er nullstilt Uke 2, side 35.

36 Synkronisering v.h.a. flagg int arrive[1:n] = ([n] 0), continue[1:n] = ([n] 0); process Worker[i = 1 to n] { process Coordinator { while(true) { while(true) { Arbeidsoppgave i; for[i = 1 to n] { arrive[i] = 1; < await (arrive[i] == 1);> < await (continue[i] == 1);> arrive[i] = 0; continue[i] = 0; for [i = 1 to n] continue[i] = 1; Uke 2, side 36.

37 Kombinerte barrierer Rollene til Worker- og Coordinator-prosessene kan kombineres. I en kombinert tre-barriere er prosessene organisert i en trestruktur. Prosessene signaliserer arrive oppover i treet og continue nedover i treet. Uke 2, side 37.

INF4140: Låser og Barrierer (Locks and Barriers)

INF4140: Låser og Barrierer (Locks and Barriers) INF4140: Låser og Barrierer (Locks and Barriers) Chapter 3 (version 3.9.09) H09, Uke 2, side 1. Practical Stuff Obligatory assignment 1 NB: Deadline Monday 21. Sept. See teaching plan. Group teacher Chris

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: December 16th. 2005 Tid for eksamen: 14.30 17.30 Oppgavesettet er på 11 sider. Vedlegg: INF3140/4140 Models of Concurrency

Detaljer

INF3140 Modeller for parallellitet INF3140/4140: Programanalyse

INF3140 Modeller for parallellitet INF3140/4140: Programanalyse INF3140/4140: Programanalyse Uke 4, side 1. Hvordan sjekke egenskaper ved programmer? Testing eller debugging øker tilliten til programmet ved prøving, men gir ingen garanti for korrekthet Operasjonell

Detaljer

INF4140 MODELLER FOR PARALLELLITET. PMA-gruppen. Institutt for informatikk Universitetet i Oslo.

INF4140 MODELLER FOR PARALLELLITET. PMA-gruppen. Institutt for informatikk Universitetet i Oslo. INF4140 MODELLER FOR PARALLELLITET PMA-gruppen Institutt for informatikk Universitetet i Oslo http://www.ifi.uio.no/~pma (versjon 27.8.08) INF 4140 H08 Uke 1, side 1. Modeller for parallellitet Forelesere

Detaljer

INF3140 Modeller for parallellitet INF3140/4140: Semaforer

INF3140 Modeller for parallellitet INF3140/4140: Semaforer INF3140/4140: Semaforer Uke 3, side 1. I dag Symmetriske barrierer Semaforer Verktøy for synkroniseringsprotokoller Skal se flere klassiske problemstillinger Uke 3, side 2. Symmetriske barrierer Alle nodene

Detaljer

INF3140 / INF4140 MODELLER FOR PARALLELLITET. PMA-gruppen. Institutt for informatikk Universitetet i Oslo.

INF3140 / INF4140 MODELLER FOR PARALLELLITET. PMA-gruppen. Institutt for informatikk Universitetet i Oslo. INF3140 / INF4140 MODELLER FOR PARALLELLITET PMA-gruppen Institutt for informatikk Universitetet i Oslo http://www.ifi.uio.no/~pma Uke 1, side 1. Modeller for parallellitet Forelesere Johan Dovland (IFI)

Detaljer

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

Innhold. Introduksjon til parallelle datamaskiner. Ulike typer parallelle arkitekturer. Prinsipper for synkronisering av felles hukommelse Innhold Introduksjon til parallelle datamaskiner. Ulike typer parallelle arkitekturer Prinsipper for synkronisering av felles hukommelse Multiprosessorer koblet sammen av én buss 02.05 2001 Parallelle

Detaljer

GetMutex(lock) { while(testandset(lock)) {} } En context switch kan ikke ødelegge siden testen og endringen av lock skjer i samme instruksjon.

GetMutex(lock) { while(testandset(lock)) {} } En context switch kan ikke ødelegge siden testen og endringen av lock skjer i samme instruksjon. Hardware-støttet Semafor og Implementasjon av semafor i OS til å synkronisere Hardware-støttet alle softwareløsninger innebærer mange instruksjoner i tillegg til busy-waiting, som koster CPU-tid. I praksis

Detaljer

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

Plan. Oppgaver og repetisjon Eksempler med fikspunkt og induksjon: 1. sortering 2. divisjon 3. Heis? IN 315: Foilsett 9: Unity: Arkitekturer Plan Tema: Ulike arkitekturer og avbildninger 1. asynkron arkitektur med felles variable 2. synkron arkitektur med felles variable 3. distribuert arkitektur med kanal-kommunikasjon 4. program-skjemaer

Detaljer

INF1010 Tråder II 6. april 2016

INF1010 Tråder II 6. april 2016 INF1010 Tråder II 6. april 2016 Stein Gjessing Universitetet i Oslo 1 Tråder i Java tråden minrunp class MinRun implements Runable { MinRun(... ) {... } public void run( ) {...... } } //end

Detaljer

En prosess kan sees på som et stykke arbeid som skal utføres på datamaskinen. Ofte vil det være flere prosesser/tråder på datamaskinen samtidig.

En prosess kan sees på som et stykke arbeid som skal utføres på datamaskinen. Ofte vil det være flere prosesser/tråder på datamaskinen samtidig. Synkronisering En prosess kan sees på som et stykke arbeid som skal utføres på datamaskinen. Ofte vil det være flere prosesser/tråder på datamaskinen samtidig. Behov for synkronisering Mange prosesser/tråder

Detaljer

Concurrency. Lars Vidar Magnusson. September 20, Lars Vidar Magnusson () Forelesning i Operativsystemer September 20, / 17

Concurrency. Lars Vidar Magnusson. September 20, Lars Vidar Magnusson () Forelesning i Operativsystemer September 20, / 17 Concurrency Lars Vidar Magnusson September 20, 2011 Lars Vidar Magnusson () Forelesning i Operativsystemer 20.09.2011 September 20, 2011 1 / 17 Oversikt Concurrency 1 Concurrency Beskrivelse Prinsipper

Detaljer

Tråder Repetisjon. 9. og 13. mai Tråder

Tråder Repetisjon. 9. og 13. mai Tråder Tråder Repetisjon 9. og 13. mai Tråder Hva er tråder? 2 Hva er tråder? I utgangspunktet uavhengige aktiviteter som konkurrerer om å få bruke prosessoren. 2 Hvorfor tråder? 3 Hvorfor tråder? Flere oppgaver

Detaljer

Plenumsregning 1. Kapittel 1. Roger Antonsen januar Velkommen til plenumsregning for MAT1030. Repetisjon: Algoritmer og pseudokode

Plenumsregning 1. Kapittel 1. Roger Antonsen januar Velkommen til plenumsregning for MAT1030. Repetisjon: Algoritmer og pseudokode Plenumsregning 1 Kapittel 1 Roger Antonsen - 17. januar 2008 Velkommen til plenumsregning for MAT1030 Torsdager 10:15 12:00 Gjennomgang av ukeoppgaver Gjennomgang av eksempler fra boka Litt repetisjon

Detaljer

MAT1030 Plenumsregning 1

MAT1030 Plenumsregning 1 MAT1030 Plenumsregning 1 Kapittel 1 Mathias Barra - 16. januar 2009 (Sist oppdatert: 2009-02-02 14:21) Plenumsregning 1 Velkommen til plenumsregning for MAT1030 Fredager 12:15 14:00 Vi vil gjennomgå utvalgte

Detaljer

Mer om C programmering og cuncurrency

Mer om C programmering og cuncurrency Mer om C programmering og cuncurrency Lars Vidar Magnusson September 23, 2011 Lars Vidar Magnusson () Forelesning i Operativsystemer 20.09.2011 September 23, 2011 1 / 19 Oversikt Mer om C programmering

Detaljer

Velkommen til plenumsregning for MAT1030. MAT1030 Diskret matematikk. Repetisjon: Algoritmer og pseudokode. Eksempel fra boka. Eksempel

Velkommen til plenumsregning for MAT1030. MAT1030 Diskret matematikk. Repetisjon: Algoritmer og pseudokode. Eksempel fra boka. Eksempel Velkommen til plenumsregning for MAT1030 MAT1030 Diskret matematikk Plenumsregning 1: Kapittel 1 Roger Antonsen Matematisk Institutt, Universitetet i Oslo 17. januar 2008 Torsdager 10:15 12:00 Gjennomgang

Detaljer

Plenumsregning 1. MAT1030 Diskret Matematikk. Repetisjon: Algoritmer og pseudokode. Velkommen til plenumsregning for MAT1030

Plenumsregning 1. MAT1030 Diskret Matematikk. Repetisjon: Algoritmer og pseudokode. Velkommen til plenumsregning for MAT1030 MAT1030 Diskret Matematikk Plenumsregning 1: Kapittel 1 Mathias Barra Matematisk institutt, Universitetet i Oslo Plenumsregning 1 16. januar 2009 (Sist oppdatert: 2009-02-02 14:21) MAT1030 Diskret Matematikk

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF2440 Effektiv parallellprogrammering Eksamensdag: 2. juni 2015 Tidspunkter: 09.00 13.00 Oppgavesettet er på: 3 sider + 2 sider

Detaljer

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk MAT1030 Diskret Matematikk Plenumsregning 1: Kapittel 1 Mathias Barra Matematisk institutt, Universitetet i Oslo 16. januar 2009 (Sist oppdatert: 2009-02-02 14:21) Plenumsregning 1 MAT1030 Diskret Matematikk

Detaljer

INF2810: Funksjonell Programmering. Muterbare data

INF2810: Funksjonell Programmering. Muterbare data INF2810: Funksjonell Programmering Muterbare data Stephan Oepen Universitetet i Oslo 15. mars 2016 Agenda Forrige uke Prosedyrebasert objektorientering Lokale tilstandsvariabler Innkapsling + set! Eksempel:

Detaljer

Kodegenerering, del 2: Resten av Kap. 8 pluss tilleggsnotat (fra kap. 9 i ASU ) INF5110 V2007

Kodegenerering, del 2: Resten av Kap. 8 pluss tilleggsnotat (fra kap. 9 i ASU ) INF5110 V2007 Kodegenerering, del 2: Resten av Kap. 8 pluss tilleggsnotat (fra kap. 9 i ASU ) INF5110 V2007 Stein Krogdahl, Ifi UiO NB: Innfører noen begreper som først og fremst har mening om man skal gå videre med

Detaljer

IN1010 våren Repetisjon av tråder. 15. mai 2018

IN1010 våren Repetisjon av tråder. 15. mai 2018 IN1010 våren 2018 Repetisjon av tråder 15. mai 2018 Stein Gjessing,, Universitetet i Oslo 1 Tråder Datamaskinarkitektur prosessor registre cache 1 cache 2 prosessor registre cache 1 Disk System-bus Minne

Detaljer

Programmeringsspråket C Del 3

Programmeringsspråket C Del 3 Programmeringsspråket C Del 3 Michael Welzl E-mail: michawe@ifi.uio.no 29.08.13 inf1060 1 Dynamisk allokering Ofte trenger man å opprette objekter under kjøringen i tillegg til variablene. Standardfunksjonen

Detaljer

INF5110, onsdag 19. februar, Dagens tema: Parsering ovenfra-ned (top-down)

INF5110, onsdag 19. februar, Dagens tema: Parsering ovenfra-ned (top-down) INF5110, onsdag 19. februar, 2014 Dagens tema: Kapittel 4 Parsering ovenfra-ned (top-down) Vi har med alle foilene til kap. 4 her, også de som ble gjennomgått mot slutten av forelesning 7. februar Pensum

Detaljer

INF2810: Funksjonell Programmering. Køer, tabeller, og (litt om) parallelitet

INF2810: Funksjonell Programmering. Køer, tabeller, og (litt om) parallelitet INF2810: Funksjonell Programmering Køer, tabeller, og (litt om) parallelitet Stephan Oepen & Erik Velldal Universitetet i Oslo 5. april 2013 Tema 2 Siste gang Kort om underveisevaluering Destruktive listeoperasjoner

Detaljer

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java INF høsten 2 Uke 4: 3. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Mål for uke 4: Innhold uke 4 Repetisjon m/ utvidelser:

Detaljer

TDT4105 Informasjonsteknologi, grunnkurs. Matlab 5: Løkker (FOR og WHILE) Matlab 6: Problemløsning / Algoritmer

TDT4105 Informasjonsteknologi, grunnkurs. Matlab 5: Løkker (FOR og WHILE) Matlab 6: Problemløsning / Algoritmer 1 TDT4105 Informasjonsteknologi, grunnkurs Matlab 5: Løkker (FOR og WHILE) Matlab 6: Problemløsning / Algoritmer Rune Sætre (satre@idi.ntnu.no) Anders Christensen (anders@idi.ntnu.no) TDT4105 IT Grunnkurs

Detaljer

Programmeringsspråket C Del 3

Programmeringsspråket C Del 3 Programmeringsspråket C Del 3 Michael Welzl E-mail: michawe@ifi.uio.no 8/25/10 inf1060 1 Dynamisk allokering Ofte trenger man å opprette objekter under kjøringen i tillegg til variablene. Standardfunksjonen

Detaljer

INF2810: Funksjonell Programmering. Køer, tabeller, og (litt om) parallelitet

INF2810: Funksjonell Programmering. Køer, tabeller, og (litt om) parallelitet INF2810: Funksjonell Programmering Køer, tabeller, og (litt om) parallelitet Stephan Oepen & Erik Velldal Universitetet i Oslo 5. april 2013 Tema 2 Siste gang Kort om underveisevaluering Destruktive listeoperasjoner

Detaljer

Algoritmer og datastrukturer E Løkker i Java

Algoritmer og datastrukturer E Løkker i Java Vedlegg E Løkker i Java Side 1 av 6 Algoritmer og datastrukturer E Løkker i Java E Løkker i Java E.1 For-løkker En for-løkke består av de fire delene initialisering, betingelse, oppdatering og kropp (eng:

Detaljer

while-løkker while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt Eksempel 1: en enkel while-løkke

while-løkker while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt Eksempel 1: en enkel while-løkke while-løkker while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt [Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hioa.no) 01/09-17 En liten repetisjon Løkker Arrayer

Detaljer

INF2810: Funksjonell Programmering. Strømmer

INF2810: Funksjonell Programmering. Strømmer INF2810: Funksjonell Programmering Strømmer Stephan Oepen & Erik Velldal Universitetet i Oslo 12. april 2013 Tema 2 Forrige uke Litt mer i dybden om køer Eksperiment: live-programmering Tabeller som hierarkiske

Detaljer

INF2810: Funksjonell Programmering. Strømmer

INF2810: Funksjonell Programmering. Strømmer INF2810: Funksjonell Programmering Strømmer Stephan Oepen & Erik Velldal Universitetet i Oslo 12. april 2013 Tema 2 Forrige uke Litt mer i dybden om køer Eksperiment: live-programmering Tabeller som hierarkiske

Detaljer

Kort notat om parallellstyring IN147

Kort notat om parallellstyring IN147 Kort notat om parallellstyring IN147 Kristin Skar 18. mai 2001 1 Kommunikasjon mellom prosesser Mange problemer man kommer borti kan kreve en paralell løsning: Man kan ha behov for økt hastighet, og dermed

Detaljer

13.09.2012 LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke 1-3 12. September 2012 Siri Moe Jensen EKSEMPLER

13.09.2012 LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke 1-3 12. September 2012 Siri Moe Jensen EKSEMPLER .9.22 LITT OM OPPLEGGET INF EKSTRATILBUD Stoff fra uke - 2. September 22 Siri Moe Jensen Målgruppe: De som mangler forståelse for konseptene gjennomgått så langt. Trening får du ved å jobbe med oppgaver,

Detaljer

Læringsmål og pensum. Oversikt

Læringsmål og pensum. Oversikt 1 2 Læringsmål og pensum TDT4105 Informasjonsteknologi grunnkurs: Uke 39 Betingede løkker og vektorisering Læringsmål Skal kunne forstå og programmere betingede løkker med while Skal kunne utnytte plassallokering

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Prøveeksamen i : INF2440 Praktisk parallell programmering Prøveeksamensdag : 26. mai 2014 Tidspunkter: 11.00 Utdeling av prøveeksamen 15:15

Detaljer

Hvis en person har inntekt < , så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første og 30% på resten.

Hvis en person har inntekt < , så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første og 30% på resten. Oppgave 1: RPJ, kapittel 4, oppg. 2 INF1000 Plenumsgruppe 1, 22.09.02 Hvis en person har inntekt < 10 000, så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første 10 000 og 30% på

Detaljer

Hvis en person har inntekt < , så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første og 30% på resten.

Hvis en person har inntekt < , så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første og 30% på resten. Oppgave 1: RPJ, kapittel 4, oppg. 2 INF1000 Plenumsgruppe 1, 22.09.02 Hvis en person har inntekt < 10 000, så betaler han 10% skatt på alt, og ellers betaler han 10% skatt på de første 10 000 og 30% på

Detaljer

INF3140 Modeller for parallellitet INF3140/4140: Monitorer

INF3140 Modeller for parallellitet INF3140/4140: Monitorer INF3140/4140: Monitorer Uke 6, side 1. Monitor Programmoduler med mer struktur enn semaforer Monitorer er en mekanisme for data-abstraksjon Data i monitor er innkapslet og manipuleres vha. monitorprosedyrer

Detaljer

Løkker og arrayer. Løse problemer med programmering. INF1000, uke3 Geir Kjetil Sandve

Løkker og arrayer. Løse problemer med programmering. INF1000, uke3 Geir Kjetil Sandve Løkker og arrayer Løse problemer med programmering INF1000, uke3 Geir Kjetil Sandve Hva vi har lært så langt Variabler og uttrykk Beslutninger Kontrollflyt og feilmeldinger Metoder og parametre Fokus i

Detaljer

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen INF1000 EKSTRATILBUD Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen PLAN FOR DAGEN gjennomgå stoff fra uke 1-5(6), men med en litt annen tilnærming kun gjennomgått stoff, men vekt på konsepter og

Detaljer

Oppgave 1 a. INF1020 Algoritmer og datastrukturer. Oppgave 1 b

Oppgave 1 a. INF1020 Algoritmer og datastrukturer. Oppgave 1 b Oppgave 1 1 a INF1020 Algoritmer og datastrukturer Forelesning 14: Gjennomgang av eksamen vår 2001 oppgave 1,2,4 Arild Waaler Institutt for informatikk, Universitetet i Oslo Oppgave 1 a Programmer en ikke-rekursiv

Detaljer

Programmeringsspråket C Del 3

Programmeringsspråket C Del 3 Programmeringsspråket C Del 3 Kjell Åge Bringsrud E-mail: kjellb@ifi.uio.no Dynamisk allokering Ofte trenger man å opprette objekter under kjøringen i tillegg til variablene. Standardfunksjonen malloc

Detaljer

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

Ny/utsatt EKSAMEN. Dato: 6. januar 2017 Eksamenstid: 09:00 13:00 Ny/utsatt EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 6. januar 2017 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet

Detaljer

Hjemmeeksamen 1 i INF3110/4110

Hjemmeeksamen 1 i INF3110/4110 Hjemmeeksamen i INF30/40 Innleveringsfrist: fredag 24. oktober kl. 500 Innlevering Hele besvarelsen skal leveres skriftlig på papir i IFI-ekspedisjonen innen fredag 24. oktober kl. 500. Merk besvarelsen

Detaljer

INF2810: Funksjonell programmering: Mer om Scheme. Rekursjon og iterasjon.

INF2810: Funksjonell programmering: Mer om Scheme. Rekursjon og iterasjon. INF2810: Funksjonell programmering: Mer om Scheme. Rekursjon og iterasjon. Stephan Oepen & Erik Velldal Universitetet i Oslo 25. januar, 2013 På blokka 2 Forrige uke Introduksjon og oversikt Funksjonell

Detaljer

Programmeringsspråket C Del 3

Programmeringsspråket C Del 3 Programmeringsspråket C Del 3 Kjell Åge Bringsrud E-mail: kjellb@ifi.uio.no 9/1/2005 inf1060 V05 1 Dynamisk allokering Ofte trenger man å opprette objekter under kjøringen i tillegg til variablene. Standardfunksjonen

Detaljer

Feilmeldinger, brukerinput og kontrollflyt

Feilmeldinger, brukerinput og kontrollflyt Feilmeldinger, brukerinput og kontrollflyt Skjønne hvordan et program presist utføres og forberede seg på håndtering av feil INF1000, uke2 Ragnhild Kobro Runde Programmeringskrøll Programmet vil ikke kjøre

Detaljer

INF2440 Prøveeksamen, løsningsforslag, 20 mai Arne Maus PSE, Inst. for informatikk

INF2440 Prøveeksamen, løsningsforslag, 20 mai Arne Maus PSE, Inst. for informatikk INF2440 Prøveeksamen, løsningsforslag, 20 mai 2015 Arne Maus PSE, Inst. for informatikk 1 Prøveeksamen Er en modell av hva du får til eksamen: - like mange (+-1) oppgaver som eksamen og nesten samme type

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF5110 Eksamensdag : Tirsdag 5. juni 2007 Tid for eksamen : 14.30-17.30 Oppgavesettet er på : 6 sider (pluss vedlegg) Vedlegg

Detaljer

I et Java-program må programmøren lage og starte hver tråd som programmet bruker. Er dette korrekt? Velg ett alternativ

I et Java-program må programmøren lage og starte hver tråd som programmet bruker. Er dette korrekt? Velg ett alternativ INF2440-V18 Information INF2440 Vår 2018 eksamen Dato og tid: 11. juni 2018 09:00. Varighet: 4 timer Hjelpemidler: Alt skriftlig materiale er tillatt. Ingen elektroniske hjelpemidler er tillatt. Powerpoint

Detaljer

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python Professor Guttorm Sindre Institutt for datateknikk og informasjonsvitenskap Læringsmål og pensum Mål Vite hva et

Detaljer

Lenkelister. Lister og køer. Kopi av utvalgte sider fra forelesningen.

Lenkelister. Lister og køer. Kopi av utvalgte sider fra forelesningen. Lenkelister. Lister og køer. Kopi av utvalgte sider fra forelesningen. "Taher" type: String : type: :... type: : inf1010student null michael@ifi.uio.no INF1010 26. januar 2012 (uke 4) 2 class Eks01 { public

Detaljer

Repetisjon Novice Videregående Python PDF

Repetisjon Novice Videregående Python PDF Repetisjon Novice Videregående Python PDF Introduksjon I denne oppgaven skal vi repetere litt Python-syntaks. Hele dette kurset er for de som har programmert Python før. Dersom ikke har mye erfaring med

Detaljer

Plan for dagen. Kræsj-kurs i sanntidsprogrammering. Måter å tenke på. Programmering intro. Tråder & synkronisering

Plan for dagen. Kræsj-kurs i sanntidsprogrammering. Måter å tenke på. Programmering intro. Tråder & synkronisering Kræsj-kurs i sanntidsprogrammering 1. Amanuensis Sverre Hendseth Teknisk Kybernetikk. http://www.itk.ntnu.no/ansatte/hendseth_sverre/ Plan for dagen Programmering intro Tråder & Synkronisering Non-preemptive

Detaljer

Programmering Høst 2017

Programmering Høst 2017 Programmering Høst 2017 Tommy Abelsen Ingeniørfag - Data Innledning Dette er et dokument med litt informasjon og eksempler om kontrollstrukturer, samt oppgaver til forskjellige kontrollstrukturer. Spør

Detaljer

INF2270. Input / Output (I/O)

INF2270. Input / Output (I/O) INF2270 Input / Output (I/O) Hovedpunkter Innledning til Input / Output Ulike typer I/O I/O internt i datamaskinen I/O eksternt Omid Mirmotahari 3 Input / Output En datamaskin kommuniserer med omverdenen

Detaljer

INF2440 Uke 4, våren2014 Avsluttende om matrisemultiplikasjon og The Java Memory Model + bedre forklaring Radix. Arne Maus OMS, Inst.

INF2440 Uke 4, våren2014 Avsluttende om matrisemultiplikasjon og The Java Memory Model + bedre forklaring Radix. Arne Maus OMS, Inst. INF Uke, våren Avsluttende om matrisemultiplikasjon og The Java Memory Model + bedre forklaring Radix Arne Maus OMS, Inst. for informatikk Hva så vi på i uke. Presisering av hva som er pensum. Samtidig

Detaljer

static int skrivetidsfrist = 0; // antall overskredet tid når skrive

static int skrivetidsfrist = 0; // antall overskredet tid når skrive // Dette eksempelet viser en ReaderWriterLock beskytte en delt // ressurs som kan leses samtidig av mange tråder, men kun // skrives til av en tråd om gangen. #include "stdafx.h" using namespace System;

Detaljer

TDT4105 Informasjonsteknologi, grunnkurs. Matlab 5: Løkker (FOR og WHILE) Matlab 6: Problemløsning / Algoritmer

TDT4105 Informasjonsteknologi, grunnkurs. Matlab 5: Løkker (FOR og WHILE) Matlab 6: Problemløsning / Algoritmer 1 TDT4105 Informasjonsteknologi, grunnkurs Matlab 5: Løkker (FOR og WHILE) Matlab 6: Problemløsning / Algoritmer Rune Sætre (satre@idi.ntnu.no) Anders Christensen (anders@idi.ntnu.no) TDT4105 IT Grunnkurs

Detaljer

Pensumoversikt - kodegenerering. Kap. 8 del 1 kodegenerering INF5110 v2006. Hvordan er instruksjonene i en virkelig CPU? Arne Maus, Ifi UiO

Pensumoversikt - kodegenerering. Kap. 8 del 1 kodegenerering INF5110 v2006. Hvordan er instruksjonene i en virkelig CPU? Arne Maus, Ifi UiO Pensumoversikt - kodegenerering Kap. 8 del 1 kodegenerering INF5110 v2006 Arne Maus, Ifi UiO 8.1 Bruk av mellomkode 8.2 Basale teknikker for kodegenerering 8.3 Kode for referanser til datastrukturer (ikke

Detaljer

Oppgave 1. Oppgave 2. Høgskolen i Østfold Avdeling for informasjonsteknologi

Oppgave 1. Oppgave 2. Høgskolen i Østfold Avdeling for informasjonsteknologi Høgskolen i Østfold Avdeling for informasjonsteknologi Løsningsforslag til ny/utsatt eksamen i ITF20006 Algoritmer og datastrukturer 05.01.2018 Oppgave 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

Detaljer

Tråder Repetisjon. 9. og 13. mai Tråder

Tråder Repetisjon. 9. og 13. mai Tråder Tråder Repetisjon 9. og 13. mai Tråder Hva er tråder? 2 Hva er tråder? I utgangspunktet uavhengige aktiviteter som konkurrerer om å få bruke prosessoren. 2 Hvorfor tråder? 3 Hvorfor tråder? Flere oppgaver

Detaljer

Kapittel 5 - Advanced Hypertext Model Kapittel 6 - Overview of the WebML Development Process

Kapittel 5 - Advanced Hypertext Model Kapittel 6 - Overview of the WebML Development Process INF 329 Web-teknologier Kapittel 5 - Advanced Hypertext Model Kapittel 6 - Overview of the WebML Development Process Navn: Bjørnar Pettersen bjornarp.ii.uib.no Daniel Lundekvam daniell.ii.uib.no Presentasjonsdato:

Detaljer

Oppsummering fra sist

Oppsummering fra sist 1 av 34 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Tema: Løkker/Sløyfer Utgave 3: Kap. 4 Terje Rydland - IDI/NTNU 2 av 34 Oppsummering fra sist Betingelser i Python: ,

Detaljer

Med løkke: Læringsmål og pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Løkker/Sløyfer Utgave 3: Kap. 4 Utgave 2: Kap. 5. Mål.

Med løkke: Læringsmål og pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Løkker/Sløyfer Utgave 3: Kap. 4 Utgave 2: Kap. 5. Mål. 1 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Tema: Løkker/Sløyfer Utgave 3: Kap. 4 Utgave 2: Kap. 5 Terje Rydland - IDI/NTNU 2 Læringsmål og pensum Mål Lære om begrepet løkker

Detaljer

Oppgave 1 - Linux kommandolinje (%)

Oppgave 1 - Linux kommandolinje (%) Løsningsforslag Eksamen høst 2017 Operativsystemer Oppgave 1 - Linux kommandolinje (%) a) pwd b) ps Oppgave 2 - Bash-scripting (%) a) ping -i 5 www.hin.no b) ping -c 1 www.hin.no ping -c 1 -t 1 www.hin.no

Detaljer

INF2220: Forelesning 2

INF2220: Forelesning 2 INF2220: Forelesning 2 Mer om analyse av algoritmer Analyse av binære søketrær Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7) ANALYSE AV ALGORITMER 2 Analyse av tidsforbruk Hvor

Detaljer

MAT1030 Diskret matematikk

MAT1030 Diskret matematikk MAT1030 Diskret matematikk Plenumsregning 1: Kapittel 1 Roger Antonsen Matematisk Institutt, Universitetet i Oslo 17. januar 2008 Velkommen til plenumsregning for MAT1030 Torsdager 10:15 12:00 Gjennomgang

Detaljer

Bruk piazza for å få rask hjelp til alles nytte!

Bruk piazza for å få rask hjelp til alles nytte! Kunnskap for en bedre verden 1 TDT4105 Informasjonsteknologi, grunnkurs Matlab 5: Løkker (FOR og WHILE) Amanuensis Terje Rydland Kontor: ITV-021 i IT-bygget vest (Gløshaugen) Epost: terjery@idi.ntnu.no

Detaljer

INF1800 Forelesning 4

INF1800 Forelesning 4 INF1800 Forelesning 4 Utsagnslogikk Roger Antonsen - 27. august 2008 (Sist oppdatert: 2008-09-03 12:39) Før vi begynner Praktiske opplysninger Kursets hjemmeside blir stadig oppdatert: http://www.uio.no/studier/emner/matnat/ifi/inf1800/

Detaljer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer INF2220 - Algoritmer og datastrukturer HØSTEN 2016 Institutt for informatikk, Universitetet i Oslo Forelesning 6: Grafer II Ingrid Chieh Yu (Ifi, UiO) INF2220 28.09.2016 1 / 30 Dagens plan: Dijkstra fort.

Detaljer

En enkel while-løkke. 1 of 12 15.09.2015 15:28. 2 of 12 15.09.2015 15:28. while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt

En enkel while-løkke. 1 of 12 15.09.2015 15:28. 2 of 12 15.09.2015 15:28. while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt [Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hioa.no) 15/09-15 En liten repetisjon Løkker Arrayer (tabeller) Løkker

Detaljer

Korteste vei i en vektet graf uten negative kanter

Korteste vei i en vektet graf uten negative kanter Dagens plan: IN - Algoritmer og datastrukturer HØSTEN 7 Institutt for informatikk, Universitetet i Oslo IN, forelesning 7: Grafer II Korteste vei, en-til-alle, for: Vektet rettet graf uten negative kanter

Detaljer

Matchinger i ikke-bipartite grafer

Matchinger i ikke-bipartite grafer Matchinger i ikke-bipartite grafer Stein Krogdahl, Notat til INF 3/4130 Sist revidert september 2006 Vi skal i dette notatet se på det å finne matchinger i generelle grafer, uten noe krav om at grafen

Detaljer

Løse reelle problemer

Løse reelle problemer Løse reelle problemer Litt mer om løkker, metoder med returverdier, innlesing fra fil og strenger INF1000, uke5 Ragnhild Kobro Runde MER OM LØKKER Repetisjon fra forrige uke: while Syntaks: while (condition)

Detaljer

Oppgaver til kodegenerering etc. INF-5110, 12. mai, 2015

Oppgaver til kodegenerering etc. INF-5110, 12. mai, 2015 Oppgaver til kodegenerering etc. INF-5110, 12. mai, 2015 Oppgave 1: Vi skal se på koden generert av TA-instruksjonene til høyre i figur 9.10 i det utdelte notatet, side 539 a) (repetisjon fra forelesningene)

Detaljer

C# (.Net) Tema: Loops (Løkker) Leksjon 7 Kap 18

C# (.Net) Tema: Loops (Løkker) Leksjon 7 Kap 18 C# (.Net) Tema: Loops (Løkker) Leksjon 7 Kap 18 Olav Dæhli - C#-kurs høsten 2017 1 Løkker Dagens temaer Inkrementering/dekrementering Løkkebetingelser Løkketyper Nøstede løkker Escape-sequences Debugger

Detaljer

løsningsforslag-uke5.txt

løsningsforslag-uke5.txt INF 1000 LØSNINGSFORSLAG TIL UKEOPPGAVER FOR UKE 5 1) Setningen er kompakt skrivemåte for int[] a; a = new int[50]; hvor den første setningen deklarerer arrayen a, og den andre setningen oppretter et array-objekt

Detaljer

INF1800 LOGIKK OG BEREGNBARHET

INF1800 LOGIKK OG BEREGNBARHET INF1800 LOGIKK OG BEREGNBARHET FORELESNING 4: UTSAGNSLOGIKK Roger Antonsen Institutt for informatikk Universitetet i Oslo 27. august 2008 (Sist oppdatert: 2008-09-03 12:39) Før vi begynner Praktiske opplysninger

Detaljer

INF1000 - Uke 10. Ukesoppgaver 10 24. oktober 2012

INF1000 - Uke 10. Ukesoppgaver 10 24. oktober 2012 INF1000 - Uke 10 Ukesoppgaver 10 24. oktober 2012 Vanlige ukesoppgaver De første 4 oppgavene (Oppgave 1-4) handler om HashMap og bør absolutt gjøres før du starter på Oblig 4. Deretter er det en del repetisjonsoppgaver

Detaljer

Kap. 4: Ovenfra-ned (top-down) parsering

Kap. 4: Ovenfra-ned (top-down) parsering Kap. 4: Ovenfra-ned (top-down) parsering Dette bør leses om igjen etter kapittelet: First og Follow-mengder Boka tar det et stykke uti kap 4, vi tok det først (forrige foilbunke) LL(1)-parsering og boka

Detaljer

DBS21 Samtidighetskontrollteknikker

DBS21 Samtidighetskontrollteknikker Side 1 for Databaser DBS21 Samtidighetskontrollteknikker mandag 30. mai 2016 21.25 Pensum: 21.1, side 781-792, og 21.3 side 795-796 tom 21.3.1 21.1 Tofaselåsingsteknikker for samtidighetskontroll 21.1.1

Detaljer

I Kapittel 3 så vi på hvordan data, som hele tall og reelle tall, kan representeres som bitsekvenser

I Kapittel 3 så vi på hvordan data, som hele tall og reelle tall, kan representeres som bitsekvenser Forelesning 5 Logikk Dag Normann - 28. januar 2008 Oppsummering av Kapittel 3 I Kapittel 3 så vi på hvordan data, som hele tall og reelle tall, kan representeres som bitsekvenser i en datamaskin. Stoffet

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF5110 - Kompilatorteknikk Eksamensdag : Onsdag 2. juni 2010 Tid for eksamen : 14.30-17.30 Oppgavesettet er på : 5 sider (pluss

Detaljer

Løsningsforslag til eksamen i IN 147(A)

Løsningsforslag til eksamen i IN 147(A) Løsningsforslag til eksamen i IN 147(A) Dag Langmyhr (oppgave 1, 4 og 6) ØysteinGranLarsen (oppgave 2, 3 og 5) 31. mai 1999 1 Oversettelse Funksjonen strxxx går gjennom en tekst og finner adresessen til

Detaljer

Oppgave 3 a. Antagelser i oppgaveteksten. INF1020 Algoritmer og datastrukturer. Oppgave 3. Eksempelgraf

Oppgave 3 a. Antagelser i oppgaveteksten. INF1020 Algoritmer og datastrukturer. Oppgave 3. Eksempelgraf Oppgave 3 3 a IN1020 Algoritmer og datastrukturer orelesning 15: Gjennomgang av eksamen vår 2001 oppgave 3 Arild Waaler Institutt for informatikk, Universitetet i Oslo 11. desember 2006 Oppgave 3 a. Antagelser

Detaljer

AlgDat 12. Forelesning 2. Gunnar Misund

AlgDat 12. Forelesning 2. Gunnar Misund AlgDat 12 Forelesning 2 Forrige forelesning Følg med på hiof.no/algdat, ikke minst beskjedsida! Algdat: Fundamentalt, klassisk, morsomt,...krevende :) Pensum: Forelesningene, oppgavene (pluss deler av

Detaljer

while-økker while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt Eksempel 1: en enkel while-løkke

while-økker while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt Eksempel 1: en enkel while-løkke [Kurssidene] [ ABI - fagsider bibin ] Utvikling av dynamiske nettsteder med PHP og databaser, våren 2014 while-økker while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt Michael Preminger

Detaljer

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk MAT1030 Diskret Matematikk Forelesning 4: Logikk Roger Antonsen Institutt for informatikk, Universitetet i Oslo 21. januar 2009 (Sist oppdatert: 2009-01-22 13:02) Kapittel 4: Logikk (fortsettelse) MAT1030

Detaljer

Kapittel 4: Logikk (fortsettelse)

Kapittel 4: Logikk (fortsettelse) MAT1030 Diskret Matematikk Forelesning 4: Logikk Roger Antonsen Institutt for informatikk, Universitetet i Oslo Kapittel 4: Logikk (fortsettelse) 21. januar 2009 (Sist oppdatert: 2009-01-22 13:03) MAT1030

Detaljer

Rekursjon. Binærsøk. Hanois tårn.

Rekursjon. Binærsøk. Hanois tårn. Rekursjon Binærsøk. Hanois tårn. Hvorfor sortering (og søking) er viktig i programmering «orden» i dataene vi blir fort lei av å lete poleksempel internett «alt» er søking og sortering alternativer til

Detaljer

MAT1030 Forelesning 4

MAT1030 Forelesning 4 MAT1030 Forelesning 4 Logikk Roger Antonsen - 21. januar 2009 (Sist oppdatert: 2009-01-22 13:02) Kapittel 4: Logikk (fortsettelse) Enda et eksempel (a) Jeg liker ikke Bamsemums. (b) Du liker alt jeg liker.

Detaljer

Oppsummering av Kapittel 3. MAT1030 Diskret matematikk LOGIKK. Logikk. Forelesning 5: Logikk

Oppsummering av Kapittel 3. MAT1030 Diskret matematikk LOGIKK. Logikk. Forelesning 5: Logikk Oppsummering av Kapittel 3 MAT1030 Diskret matematikk Forelesning 5: Logikk Dag Normann Matematisk Institutt, Universitetet i Oslo 28. januar 2008 I Kapittel 3 så vi på hvordan data, som hele tall og reelle

Detaljer

Øvingsforelesning 5 Python (TDT4110)

Øvingsforelesning 5 Python (TDT4110) Øvingsforelesning 5 Python (TDT4110) Repetisjon av løkker og funksjoner Ole-Magnus Pedersen Oversikt Praktisk Info Gjennomgang av Øving 3 Repetisjon 2 Praktisk info Prosjekter i PyCharm må startes med

Detaljer

En implementasjon av binærtre. Dagens tema. Klassestruktur hovedstruktur abstract class BTnode {}

En implementasjon av binærtre. Dagens tema. Klassestruktur hovedstruktur abstract class BTnode {} En implementasjon av binærtre Dagens tema Eksempel på binærtreimplementasjon Rekursjon: Tårnet i Hanoi Søking Lineær søking Klassestruktur hovedstruktur abstract class { class Person extends { class Binaertre

Detaljer

Operativsystemer, prosesser og tråder

Operativsystemer, prosesser og tråder Dagens program Grunnleggende tråd-programmering i Java: Java-tråder: definisjoner, egenskaper Interferens Låsing og synkronisering Venting og signallering Løpende eksempel: lesere og skrivere Erfaringer

Detaljer

Kap. 8 del 1 kodegenerering INF5110 Vår2007

Kap. 8 del 1 kodegenerering INF5110 Vår2007 Kap. 8 del 1 kodegenerering INF5110 Vår2007 Stein Krogdahl, Ifi UiO Forelesninger framover: Tirsdag 8. mai: Vanlig forelesning Torsdag 10. mai: Ikke forelesning Tirsdag 15. mai: Vanlig forelesning (siste?)

Detaljer