INF3140 Modeller for parallellitet INF3140/4140: Semaforer
|
|
- Ketil Børresen
- 7 år siden
- Visninger:
Transkript
1 INF3140/4140: Semaforer Uke 3, side 1.
2 I dag Symmetriske barrierer Semaforer Verktøy for synkroniseringsprotokoller Skal se flere klassiske problemstillinger Uke 3, side 2.
3 Symmetriske barrierer Alle nodene spiller samme rolle (ingen egen Koordinator-prosess) Mer effektiv hvis arbeidsoppgavene tar ca. like lang tid Arbeiderne eksekverer samme kode n-prosess barriere bygges opp v.h.a. 2-prosess barrierer: Hver prosess har ett flagg som settes når man kommer til barrieren Venter på at den andre sitt flagg skal settes før begge forsetter Uke 3, side 3.
4 Symmetriske barrierer int arrive1 = 0, arrive2 = 0 W1 W2 < await (arrive1 == 0);> < await (arrive2 == 0);> arrive1 = 1; arrive2 = 1; < await (arrive2 == 1);> < await (arrive1 == 1);> arrive2 = 0; arrive1 = 0; Hvis prosessene har flere synkroniseringspunkter, må W1 vente til W2 har nullstiltarrive1 før den kan ankomme neste barriere. Generalisering Til n-prosesser ved kombinasjon av 2-prosess barrierer Beste løsning: Binære kombinasjoner som gir barrierer på log 2 n trinn Hver prosess synkroniserer med forskjellige prosesser i hvert trinn Uke 3, side 4.
5 Implementasjon av KR KR kan implementeres ved < await (!lock) lock = true;> Inngangsportal kritiske programsetninger < lock = false;> Utgangsportal Implementasjon ved spinnelås: while (TS(lock)) skip; Implementerer < await (!lock) lock = true;> Svakhet ved denne tilnærmingen: Busy waiting protokoller blir fort kompliserte Uklart skille mellom bruk av variable til synkronisering og utregning Busy waiting lite effektivt hvis færre prosessorer enn prosesser Uke 3, side 5.
6 Semaforer Ønskelig med spesielt verktøy for synkroniseringsprotokoller Semaforer : Første tilnærming til dette problemet (Dijkstra 1968) Gjør det lett å beskytte KR Disiplinert metode for å implementere signallering og skedulering Inkludert i alle standard biblioteker for tråder og parallell programmering Kan implementeres på ulike måter, som busy waiting Uke 3, side 6.
7 Jernbanesemaforer Semaforkonseptet kommer fra jernbanen Jernbanesemaforer er signalleringsflagg langs togskinnene Gir beskjed om jernbanesporet er klart eller i bruk av et annet tog Programsemaforer Virker på samme måte Grunnleggende signalleringsmekanisme Kan brukes til å implementere mutex og betingelsessynkronisering. Uke 3, side 7.
8 Semaforer: konsept En semafor er en spesiell type programvariabel. Kan bare manipuleres ved to atomære operasjoner P : venter på signal (ønske om å passere) V : signaliserer en hendelse (frigi) Verdien til en semafor er et ikke-negativt heltall. Uke 3, side 8.
9 Semaforer: syntaks I språket deklareres og anvendes en semafor ved: sem s; Ved default initieresstil verdi 0, mulig å initiere semaforer til andre verdier. P(s) V(s) Inngangsprotokoll Implementasjon: < await (s>0) s = s-1; > Utgangsprotokoll Implementasjon: < s = s+1; > Uke 3, side 9.
10 Binær semafor Mulige verdier for semaforen: 0 og 1. Generell semafor Mulige verdier for semaforen: alle ikke-negative heltall Fairness Som for await-setninger. Hvis mange prosesser venter på å få utførep-operasjoner, vil de i de fleste språk bli vekket i samme rekkefølge som de ble satt til å vente. Uke 3, side 10.
11 Eksempel: Mutex Mutex implementert ved binær semafor: sem mutex = 1; process CS[i = 1 to n] { while (true) { P(mutex); KR V(mutex); Ikke KR Semaforenmutex er initiert til 1 og alltid P før V: Binær semafor Uke 3, side 11.
12 Delt binær semafor Delte binære semaforer implementerer mutex: Anta at vi er gitt mer enn én binær semafor Anta initielt at én av semaforene har verdi 1 og resten har verdi 0. Anta så at prosesser begynner med et kall tilppå en semafor og avslutter med et kall tilvpå en (annen) semafor. Da vil prosessene eksekvere i mutex: Hvis én prosess er i KR, vil alle semaforene ha verdi 0 og alle andre prosesser må vente før de kan fullføre sinp-operasjon. Uke 3, side 12.
13 Delt binær semafor (2) Ser på produsent / konsument eksemplet. Labuf være et buffer. En produsent gjør put -operasjoner påbuf. En konsument gjør get -operasjoner påbuf. Angir grenseverdiene tilbuf vha semaforer: sem empty = 1; sem full = 0; En produsent kan gjøre put -operasjoner når den kan passereempty. En konsument kan gjøre get -operasjoner når den kan passerefull. empty ogfull utgjør en delt binær semafor. Uke 3, side 13.
14 Eksempel: Produsent / Konsument Ser først på tilfellet med én plass i bufferet: typet buf; /* Buffer av en eller annen type T */ sem empty = 1, full = 0; process Producer{ while (true){. P(empty); buf = data; V(full); process Consumer{ while (true){. P(full); result = buf; V(empty); Uke 3, side 14.
15 Generalisering til flere plasser i bufferet (1) Eksempelet tvinger Produsent og Konsument til å holde samme fart. De må aksessere bufferet annenhver gang. Det er rett frem å generalisere til buffer av en gitt størrelse n. Bufferet implementerer en kø av verdier som er produsert, men ikke konsumert. Generelle semaforer holder orden på antall fulle og ledige plasser i bufferet. Lafront ogrear være heltall som hhv. peker til første plass i bufferet og til plassen etter siste verdi. Uke 3, side 15.
16 Generalisering til flere plasser i bufferet (2) Tilfellet med begrenset bufferstørrelse n: typet buf[n]; /* Array av en type T */ int front = 0, rear = 0; sem empty = n, full = 0; process Producer{ while (true){. P(empty); buf[rear] = data; rear = rear + 1 % n; V(full); process Consumer{ while (true){. P(full); result = buf[front]; front = front + 1 % n; V(empty); Uke 3, side 16.
17 Generalisering til mange prosesser (1) Anta nå at det er flere produsenter og konsumenter. Unngå at to produsenter skriver tilbuf[rear] førrear oppdateres: Flere produsenter kan ikke utføre put -operasjoner samtidig. Unngå at samme element leses to ganger: Flere konsumenter kan ikke utføre get -operasjoner samtidig. Dette løses ved å legge til to binære semaforer: mutexput ogmutexget. Uke 3, side 17.
18 Generalisering til mange prosesser (2) Programmet kombinerer nå 3 ulike synkroniseringsproblemer: produsent vs. konsument: empty ogfull produsent vs. produsent: mutexput konsument vs. konsument: mutexget De ulike synkroniseringsproblemene løses ved ulike semaforer. Uke 3, side 18.
19 Generalisering til mange prosesser (3) typet buf[t]; int front = 0, rear = 0; sem empty = n, full = 0, mutexput = 1, mutexget = 1; process Producer[i = 1 to M]{ while (true){. P(empty); P(mutexPut); buf[rear] = data; rear = rear + 1 % n; V(mutexPut); V(full); process Consumer[i = 1 to N]{ while (true){. P(full); P(mutexGet); result = buf[front]; front = front + 1 % n; V(mutexGet); V(empty); Uke 3, side 19.
20 Eksempel: Barrieresynkronisering Bruker delte binære semaforer som barrierer. sem arrive1 = 0, arrive2 = 0; process Arbeider1 {. V(arrive1); ankommer barrieren P(arrive2); venter på øvrige prosesser. process Arbeider2 {. V(arrive2); ankommer barrieren P(arrive1); venter på øvrige prosesser. Uke 3, side 20.
21 Eksempel: De spisende filosofer Fem filosofer sitter rundt et bord. Hver filosofer veksler mellom følgende to aktiviteter: tenke spise nudler Filosofene trenger to spisepinner for å kunne spise. Dessverre finnes bare 5 spisepinner, én mellom hvert par med filosofer. Uke 3, side 21.
22 De spisende filosofer (2) process Philosopher [i = 0 to 4] { while (true) { think; acquire chopsticks; eat; release chopsticks; Vi kan her se på spisepinnene som felles ressurser. Tenk på hver spisepinne som en lås til en kritisk region. En filosof kan ta en spisepinne ved å utføre enp-operasjon på den, og slippe den igjen ved å utføre env-operasjon. Vi lar filosofene plukke opp venstre spisepinne først og den høyre etterpå. Uke 3, side 22.
23 De spisende filosofer (3) sem chopstick[5] = ( [5] 1) process Philosopher [i = 0 to 4] { while (true) { think; P(chopstick[i]); P(chopstick[(i+1)%5]); eat; V(chopstick[i]; V(chopstick[(i+1)%5]); Hva med deadlock? Uke 3, side 23.
24 De spisende filosofer (4) For å unngå deadlock, lar vi Philosopher4 plukke opp høyre spisepinne først. sem chopstick[5] = ( [5] 1) process Philosopher [i = 0 to 3] { while (true) { think; P(chopstick[i]); P(chopstick[i+1]); eat; V(chopstick[i]; V(chopstick[i+1]); process Philosopher4 { while (true) { think; P(chopstick[0]); P(chopstick[4]); eat; V(chopstick[0]; V(chopstick[4]); Uke 3, side 24.
25 Eksekvering Det er installert en kompilator for språketmpd på linuxmaskinene på ifi. Startes med kommandoenmpd (Evnt. /store/bin/mpd) man mpd await-setninger er ikke støttet Semaforer er støttet! Sehttp:// for oversikt Uke 3, side 25.
26 Hello world Filenhello.mpd: resource hello() write("hello world.") end Inkludér alltid de magiske ordeneresource ogend Kompilering og kjøring: $ mpd -o hello hello.mpd $./hello Hello world. $ Uke 3, side 26.
27 De spisende filosofer resource phil() sem chopstick[0:4] = ([5] 1) process Philosopher [i = 0 to 3] { int eat = 0, think = 0; while (true) { think = think + 1; writes( Think,i,think); nap(200) # think; P(chopstick[i]); P(chopstick[i+1]); eat = eat + 1; writes( Eat,i,eat); nap(200) # eat; V(chopstick[i]); V(chopstick[i+1]); process Philosopher4 {... end Uke 3, side 27.
28 Leser og skriver problemet Klassisk synkroniseringsproblem Problembeskrivelse Leser- og skriverprosesser deler en felles ressurs (database). Leseres transaksjoner kan lese informasjon fra DB Skriveres transaksjoner kan lese og oppdatere informasjon i DB Antar at DB er initielt konsistent og at hver transaksjon isolert sett vedlikeholder konsistens. For å unngå interferens mellom transaksjonene, krever vi at Skrivere har eksklusiv tilgang til DB. når ingen skriver har tilgang, kan et vilkårlig antall lesere utføre sine transaksjoner samtidig. Uke 3, side 28.
29 Løsning ved Mutex (1) Tilnærming: DB som kritisk region Larw være en mutex semafor: sem rw = 1; sem rw = 1; process Leser [i = 1 to M] { while (true) {. P(rw); Les i DB V(rw); Men: Ønsker flere lesere samtidig process Skriver [i = 1 to N] { while (true) {. P(rw); Skriv i DB V(rw); Uke 3, side 29.
30 Løsning ved Mutex (2) Aksess for flere lesere Lesere må utelukke skrivere, men flere lesere samtidig er akseptabelt. Den første leseren tar låsen, påfølgende lesere går rett inn int nr = 0; sem rw = 1; # teller antall lesere # lås for leser / skriver eksklusjon process Leser [i = 1 to M] { while (true) {. < nr = nr + 1; if (nr == 1) P(rw); > Les i DB < nr = nr - 1; if (nr == 0) V(rw); > process Skriver [i = 1 to N] { while (true) {. P(rw); Skriv i DB V(rw); Uke 3, side 30.
31 Løsning ved Mutex (3) Implementasjon av leseren int nr = 0; sem rw = 1; sem mutexl = 1; # antall lesere # lås for leser / skriver eksklusjon # mutex for lesere process Leser [i = 1 to M] { while (true) {. P(mutexL); nr = nr + 1; if (nr == 1) P(rw); V(mutexL) Les i DB P(mutexL); nr = nr - 1; if (nr == 0) V(rw); V(mutexL) Bruker forskjellige semaforer til forskjellige synkroniseringsproblemer Uke 3, side 31.
32 Løsning ved Mutex (4) Preferanse for lesere Anta at en leser har aksess til DB. Hvis en ny leser ønsker aksess, vil denne få aksess til DB med en gang. Hvis både en leser og en skriver ønsker aksess, vil leseren få aksess med en gang mens skriveren må vente. En kontinuerlig strøm av lesere vil dermed effektivt blokkere for skrivertilgang til DB Denne løsningen er derfor ikke fair for skrivere. Uke 3, side 32.
33 Løsning med buffersynkronisering (1) Mutex-løsningen synkroniserte to uavhengige KR problemer leser vs. skriver leser vs. leser Nå skal vi i stedet bruke en delt binær semafor. Synkroniseringskravet for leser / skriver : en skriver trenger eksklusiv adgang, mange lesere kan ha adgang samtidig. Uke 3, side 33.
34 Løsning med buffersynkronisering (2) Global invariant Anta at vi har to tellere nr nw antallet lesere antallet skrivere Synkroniseringskravet kan formuleres som: RW: (nr == 0 or nw == 0) and nw <= 1 Hvis vi kan gjørerw til en global invariant, har vi løst leser / skriver problemet. Uke 3, side 34.
35 Løsning med buffersynkronisering (3) Telleroppdatering Da trenger vi kode for å oppdatere tellerne: Leser: Skriver: < nr = nr + 1; > < nw = nw + 1; > Lese i DB Skrive i DB < nr = nr - 1; > < nw = nw - 1; > Legger betingelser på de atomære aksjonene for å opprettholde invarianten. Før økning avnr: (nw == 0) Før økning avnw: (nr == 0 and nw == 0) Uke 3, side 35.
36 Løsning med buffersynkronisering (4) int nr = 0, nw = 0; ## RW: (nr == 0 or nw == 0 ) and nw <= 1 process Leser [i=1 to M] { while (true) {. <await (nw == 0) nr = nr + 1;> Lese i DB < nr = nr - 1; > process Skriver [i=1 to N] { while (true) {. <await (nr == 0 and nw == 0) nw = nw + 1;> Skrive i DB < nw = nw - 1; > Uke 3, side 36.
37 Løsning med buffersynkronisering (5) Delte binære semaforer Implementasjon avawait-setninger gjøres med delte binære semaforer. Kan brukes til å implementere vilkårlige synkroniseringsproblemer med forskjellige vakterb 1, B 2... Bruke en entry-semafor (e) initiert til 1 For hver vaktb i : assosier en teller og en delay-samafor, begge initiert til 0 Semaforen: oppholde prosessene som venter påb i Telleren: telle antall prosesser som venter påb i For leser/skriver eksemplet trenger vi da tre semaforer og to tellere: sem e = 1; sem r = 0; int dr = 0; # betingelse leser: nw == 0 sem w = 0; int dw = 0; # betingelse skriver: nr == 0 and nw == 0 Uke 3, side 37.
38 Løsning med buffersynkronisering (6) e, r ogwutgjør en delt binær semafor: Max én har verdien 1 Alle eksekveringsstier starter med P-operasjon og ender med V-operasjon Mutex Signalere slik at invarianten holder B i holder når en prosess starter KR fordi: enten prosessen sjekker det selv, eller prosessen signalleres bare nårb i holder Unngår deadlock fordi delay-semaforene signalleres bare når noen venter på dem (sjekkes v.h.a. tellerne) Trenger signalleringsmekanismesignal som sender signal til riktig semafor. Uke 3, side 38.
39 Løsning med buffersynkronisering (7) int nr = 0, nw = 0; int dr = 0; int dw = 0; sem e = 1; sem r = 0; sem w = 0; process Leser [i=1 to M] { # Inngangsbetingelse: nw == 0 while (true) {. # <await (nw == 0) nr = nr + 1;> P(e); if (nw>0) { dr=dr+1; V(e); P(r); nr=nr+1; SIGNAL; Lese i DB # < nr = nr - 1; > P(e); nr=nr-1; SIGNAL Uke 3, side 39.
40 Løsning med buffersynkronisering (8) process Skriver [i=1 to N] { # Inngangsbetingelse: nw == 0 and nr == 0 while (true) {. # <await (nr == 0 and nw == 0) nw = nw + 1; > P(e); if (nr> 0 or nw> 0) { dw=dw+1; V(e); P(w); nw = nw + 1; SIGNAL; Lese i DB # < nw = nw - 1; > P(e); nw = nw - 1; SIGNAL; Uke 3, side 40.
41 Løsning med buffersynkronisering (9) SIGNAL: if (nw == 0 and dr > 0) { dr = dr -1; V(r); elseif (nr == 0 and nw == 0 and dw > 0) { dw = dw -1; V(w); else V(e); # vekker leser # vekker skriver # slipper KR Koden kan forenkles i mange tilfeller Uke 3, side 41.
42 Delt Binær Semafor Boka kaller slik bruk av delt binær semafor for Passing the Baton Gjør det mulig å implementere vilkårlig synkroniseringsbetingelse Har fått navn p.g.a. signaleringsmekanismen Sender stafettpinnen videre til en ventende prosess slik at ventebetingelsen holder Hvis ingen venter eller kan slippe til, gjøres pinnen tilgjengelig for alle (V(e)) Skedulerings-strategier Løsningen vi har sett gir fremdeles preferanse til lesere. Imidlertid har vi eksplisitt kontroll med skedulering. F. eks. lett å endre slik at Skrivere har prioritet over lesere Lesere og skrivere har lik prioritet Uke 3, side 42.
INF3140 Modeller for parallellitet INF3140/4140: Låser og Barrierer
INF3140/4140: Låser og Barrierer Uke 2, side 1. 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
DetaljerUNIVERSITETET 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
DetaljerINF3140 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
DetaljerINF4140: 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
DetaljerINF4140 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
DetaljerKort 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
DetaljerGetMutex(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
DetaljerPlan. 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
DetaljerOperativsystemer, 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
DetaljerINF1010 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
DetaljerIN1010 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
DetaljerINF3140 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
DetaljerINF3140 / 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)
DetaljerInnhold. 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
DetaljerStein Gjessing. Institutt for informatikk. Universitetet i Oslo. Institutt for informatikk
INF1010 11. mai 2017 Monitorer med kritiske regioner og passive venting innbygget i Java - Kommunikasjon mellom prosesser i Java (Ikke pensum i INF1010) Stein Gjessing Universitetet i Oslo 1 Repetisjon:
DetaljerINF2810: 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
DetaljerINF2810: 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
DetaljerLø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
DetaljerINF1000 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
Detaljerpublic static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren
Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en
DetaljerUNIVERSITETET I OSLO
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
DetaljerOppgave 1 JK-flip-flop (Total vekt 20%)
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 147 Program- og maskinvare Eksamensdag: 12. mai 1997 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 6 sider. Vedlegg: Tillatte
DetaljerModels of Concurrency
Models of Concurrency Martin Steffen 1 University of Oslo, Norway INF3140 Høst 2007 Dagens program Mer asynkron meldingsutveksling Interagerende prosesser med ulike kommunikasjonsmønstre Oppsummering av
DetaljerSemantikk. Dagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7) Semantikk. Semantikk. En måte å svare på: gi semantikken til språket!
agens tema Kjøresystemer (Ghezzi&Jazayeri.,.) Innledende om semantikk Operasjonell semantikk / SIMPLESEM Bokholderi og minneorganisering Forskjellige språkklasser... en beskrivelse av hva som skjer når
Detaljerpublic static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren
Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en
Detaljer13.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,
DetaljerEksempler på ikke-blokkerende systemkall:
Blokkerende systemkall Thread-modeller Thread-modeller Blokkerende systemkall Viktigste grunn for tråder: blokkerende I/O forespørsler Applikasjonen som ber om I/O blir satt på vent av operativsystemet
Detaljer23.09.2015. Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.
Grunnkurs i objektorientert programmering Introduksjon til objektorientert programmering INF1000 Høst 2015 Siri Moe Jensen INF1000 - Høst 2015 uke 5 1 Siri Moe Jensen INF1000 - Høst 2015 uke 5 2 Kristen
DetaljerINF2220: 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
DetaljerINF2810: 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:
DetaljerKjøresystemer. Hva er et kjøresystem? Den abstrakte maskinen SIMPLESEM (2.6) Klassifisering av språk: Parametre (2.7.7) Statiske språk (
Kjøresystemer Hva er et kjøresystem? Den abstrakte maskinen SIMPLESEM (2.6) Klassifisering av språk: Statiske språk (2.7.1-2.7.2) FORTRAN, COBOL Stakk-baserte språk (2.7.3-2.7.4) ALGOL 60 Dynamiske språk
DetaljerIntel Core i7. Omid Mirmotahari 4
INF2270 Pipeline Hovedpunkter Oppsummering av én-sykel implementasjon Forbedring av én-sykel designet Introduksjon til pipelining Oppbygning av datapath med pipelining Intel Core i7 Omid Mirmotahari 4
DetaljerHjemmeeksamen 2 i INF3110/4110
Hjemmeeksamen 2 i INF3110/4110 Innleveringsfrist: onsdag 19. november kl. 1400 Innlevering Besvarelsen av oppgave 2,3,4 og 5 skal leveres skriftlig på papir i IFI-ekspedisjonen. Merk denne med navn, kurskode,
DetaljerINF225 høsten 2003 Prosjekt del 4: kodegenerering
INF225 høsten 2003 Prosjekt del 4: kodegenerering Thomas Ågotnes 19. november 2003 1 Introduksjon I denne delen av prosjektet skal C- -parseren fra del 3 utvides til å generere maskinkode. Maskinkoden
DetaljerFYS3240/4240 Forslag til prosjektoppgave for Lab 4: DAQ-øvelse med LabVIEW
FYS3240/4240 Forslag til prosjektoppgave for Lab 4: DAQ-øvelse med LabVIEW Jan Kenneth Bekkeng, 11.3.2013 Hensikten med denne øvelsen er å lære DAQ-programmering med utviklingsverktøyet LabVIEW. NB: se
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Eksamen i : Eksamensdag : Torsdag 2. desember 2004 Tid for eksamen : 09.00 12.00 Oppgavesettet er på : Vedlegg : Tillatte hjelpemidler
DetaljerINF1010 Sortering. Marit Nybakken 1. mars 2004
INF1010 Sortering Marit Nybakken marnybak@ifi.uio.no 1. mars 2004 Dette dokumentet skal tas med en klype salt og forfatter sier fra seg alt ansvar. Dere bør ikke bruke definisjonene i dette dokumentet
DetaljerDagens tema: Synkronisering
Dagens tema: Synkronisering Kappløp og kritiske regioner Blokkering Produsent/konsument-problemet Semaforer Fraktaleksemplet med semaforer og delt lager. «De spisende filosofer»: 3 gale løsninger En foreløbig
DetaljerEn 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
DetaljerOppgave 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
DetaljerEksamen i IN 110, 18. mai 1993 Side 2 Del 1 (15%) Vi skal se på prioritetskøer av heltall, der vi hele tiden er interessert i å få ut den minste verdi
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 18. mai 1993 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 7 sider. Vedlegg: Tillatte hjelpemidler: IN 110 Algoritmer
DetaljerOPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen?
OPPGAVESETT 4 PROSEDYRER Oppgavesett 4 i Programmering: prosedyrer. I dette oppgavesettet blir du introdusert til programmering av prosedyrer i Java. Prosedyrer er også kjent som funksjoner eller subrutiner.
DetaljerHjemmeeksamen 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
DetaljerIN 147 Program og maskinvare
Dagens tema Mer om C Cs preprosessor Allokering av variable Separat kompilering Programmet make Pekere i C Operasjoner på pekere Pekere og vektorer Referanseparametre Pekere til «alt» og «ingenting» Dynamisk
DetaljerProgrammering i C++ Løsningsforslag Eksamen høsten 2005
Programmering i C++ Eksamen høsten 2005 Simen Hagen Høgskolen i Oslo, Avdeling for Ingeniørutdanning 7. desember 2005 Generelt Denne eksamensoppgaven består av tre oppgaver, pluss en ekstraoppgave. Det
DetaljerLæ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
DetaljerLø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
DetaljerINF2810: 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
DetaljerINF2810: 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
DetaljerHØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL
HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: 12. desember 2002 Varighet: Fagnummer: Fagnavn: Klasse(r): 3 timer LO116D Programmering i Visual Basic FU
DetaljerINF 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.
DetaljerRekursjon som programmeringsteknikk
Rekursjon Kap.7 Sist oppdatert 15.02.10 Rekursjon som programmeringsteknikk 10-1 Rekursiv tenkning Rekursjon er en programmeringsteknikk der en metode kan kalle seg selv for å løse problemet. En rekursiv
DetaljerINF2810: Funksjonell Programmering. En metasirkulær evaluator, del 2
INF2810: Funksjonell Programmering En metasirkulær evaluator, del 2 Stephan Oepen & Erik Velldal Universitetet i Oslo 03. mai 2013 Tema 2 Forrige uke SICP 4.1. Structure and interpretation of computer
DetaljerProgrammeringsspråket C
Programmeringsspråket C Bakgrunn Implementasjon av Unix ved AT&Ts laboratorium i Palo Alto 1960 75. Navnet kommer fra BCPL B C. Opphavsmannnen heter Dennis Ritchie. ANSI standard i 1988; omtrent alle følger
DetaljerINF2810: Funksjonell Programmering. En metasirkulær evaluator, del 2
INF2810: Funksjonell Programmering En metasirkulær evaluator, del 2 Stephan Oepen & Erik Velldal Universitetet i Oslo 03. mai 2013 Tema 2 Forrige uke SICP 4.1. Structure and interpretation of computer
DetaljerINF1000 undervisningen INF 1000 høsten 2011 Uke september
INF1000 undervisningen INF 1000 høsten 2011 Uke 2 30. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Forelesningene: Første
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1020 Algoritmer og datastrukturer Eksamensdag: 15. desember 2004 Tid for eksamen: 14.30 17.30 Oppgavesettet er på 6 sider.
DetaljerINF 1000 høsten 2011 Uke september
INF 1000 høsten 2011 Uke 2 30. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus 1 INF1000 undervisningen Forelesningene: Første
DetaljerLøsningsforslag til eksamen i IN 147 og IN 147A
Løsningsforslag til eksamen i IN 17 og IN 17A Dag Langmyhr Øystein Gran Larsen Våren 1996 1 Oversettelse I vårt forslag har vi lagt større vekt på at oversettelsen skal vært «rett frem» og lett forståelig
DetaljerVranglås (Deadlocks) Fag: Operativsystemer
Vranglås (Deadlocks) Fag: Operativsystemer 1 Innhold: Vranglås Vranglås Eksempler: Svensk flagg, Veikryss, spisende filosofer Betingelser for vranglås Metoder for å håndtere vranglås Tilbake til systemer
DetaljerOppsummering av IN147 siste del Operativsystemer Parallellisering Veien videre
Oppsummering av IN147 siste del Operativsystemer Parallellisering Veien videre Ark 1 av 12 Forelesning 12.5.1999 Operativsystemer I kurset har vi fokusert på UNIX, men prinsippene gjelder i større eller
DetaljerMetoder med parametre, løkker og arrayer
Metoder med parametre, løkker og arrayer Løse problemer med programmering INF1000, uke3 Ragnhild Kobro Runde METODER MED PARAMETRE Statiske void-metoder med parametre Den typen metoder vi så på forrige
DetaljerIntroduksjon til objektorientert programmering
Introduksjon til objektorientert programmering Samt litt mer om strenger og variable INF1000, uke6 Ragnhild Kobro Runde Grunnkurs i objektorientert programmering Strategi: Splitt og hersk Metoder kan brukes
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Side 1 Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1010 Objektorientert programmering Eksamensdag: Onsdag 4. juni 2014 Tid for eksamen: 9:00-15:00 Oppgavesettet er på
DetaljerNy/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
DetaljerProgrammering 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
DetaljerIN1020. Datamaskinarkitektur
IN1020 Datamaskinarkitektur Hovedpunkter Von Neumann Arkitektur BUS Pipeline Hazarder Intel Core i7 Omid Mirmotahari 4 Von Neumann Arkitektur John von Neumann publiserte i 1945 en model for datamaskin
DetaljerDagens tema. Sortering. Fortsettelse om programmering vha tråder.
Dagens tema Sortering. Fortsettelse om programmering vha tråder. «orden» i dataene vi blir fort lei av å lete poleksempel internett «alt» er søking og sortering alternativer til sortering og søking binære
DetaljerInnhold 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:
DetaljerNorsk informatikkolympiade runde
Norsk informatikkolympiade 2017 2018 1. runde Sponset av Uke 46, 2017 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.
DetaljerDagens tema. Sortering. Fortsettelse om programmering vha tråder.
Dagens tema Sortering. Fortsettelse om programmering vha tråder. «orden» i dataene vi blir fort lei av å lete poleksempel internett «alt» er søking og sortering alternativer til sortering og søking binære
DetaljerPlan 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
DetaljerSide 1 av 11, prosesser, tråder, synkronisering, V. Holmstedt, HiO 2006
Side 1 av 11, prosesser, tråder, synkronisering, V. Holmstedt, HiO 2006 Prosesser og tråder Datamaskinen lager prosesser. En prosess organiserer arbeidet i et program ved å administrere tråder. Det er
DetaljerNorsk informatikkolympiade runde. Sponset av. Uke 46, 2016
Norsk informatikkolympiade 2016 2017 1. runde Sponset av Uke 46, 2016 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.
DetaljerHeap* En heap er et komplett binært tre: En heap er også et monotont binært tre:
Heap Heap* En heap er et komplett binært tre: Alle nivåene i treet, unntatt (muligens) det nederste, er alltid helt fylt opp med noder Alle noder på nederste nivå ligger til venstre En heap er også et
DetaljerNybegynnerkurs i C. Øyvind Grønnesby. 14. oktober Introduksjon Typer Operatorer Kontrollstrukturer Pekere Makroer Lenker
Nybegynnerkurs i C Øyvind Grønnesby 14. oktober 2004 Introduksjon pass-by-value svakt typet portabel assembler siste ISO-standard er C99 Hello world #i n c l u d e < s t d l i b. h> #i n c l u d e
DetaljerPython: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre
Python: Løkker TDT4110 IT Grunnkurs Professor Guttorm Sindre Denne uka Vi trenger å Støttes av Hente data fra bruker Vise data til bruker Lagre data i minnet for bruk videre i programmet Fra tastatur:
DetaljerBakgrunnen for INF2100. Velkommen til INF2100. Prosjektet. Hva gjør en kompilator?
Kursopplegg Velkommen til INF2100 Bakgrunnen Bakgrunnen for INF2100 Jeg er Dag Langmyhr (dag@ifi.uio.no). Dagens tema: Hva går kurset ut på? Bakgrunn for kurset Hvordan gjennomføres kurset? Hvordan får
DetaljerLøsningsforslag til eksamen i IN147(A)
Løsningsforslag til eksamen i IN147(A) Dag Langmyhr Øystein Gran Larsen 12 mai 1997 Oppgave 1: JK-flip-flop Boolsk ligning D-signalet bestemmer neste utgang, dvs Q(t + 1), og D-signalet tar derfor de samme
DetaljerUNIVERSITETET I OSLO
Eksamen i UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamensdag: 15. desember 2010 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 8 sider. Vedlegg: Tillatte hjelpemidler: INF2220
DetaljerVelkommen til INF2100 Jeg er Dag Langmyhr
Velkommen til Jeg er Dag Langmyhr (dag@ifi.uio.no). Bakgrunn for I INF1000 20 har dere lært å rammere, men bare små rammer (< 1000 linjer). Hensikten med er å gi mer rammeringstrening Dagens tema: Hva
DetaljerNy/utsatt EKSAMEN. Dato: 5. januar 2018 Eksamenstid: 09:00 13:00
Ny/utsatt EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 5. januar 2018 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet
DetaljerInnhold. Oppgave 1 Oversettelse (vekt 15%)
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 147 Program- og maskinvare Eksamensdag: 29. mai 2001 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 10 sider. Vedlegg: Tillatte
DetaljerStack. En enkel, lineær datastruktur
Stack En enkel, lineær datastruktur Hva er en stack? En datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist Et nytt element legges alltid på toppen av stakken Skal vi
DetaljerMer 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
DetaljerHva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først
Køer Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Et nytt element legges alltid til sist i køen Skal vi ta ut et element, tar vi alltid
DetaljerHvis 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å
DetaljerHvis 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å
DetaljerINF2270. 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
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1010 Objektorientert programmering Dato: 9. juni 2016 Tid for eksamen: 09.00 15.00 (6 timer) Oppgavesettet er på 7 sider. Vedlegg:
DetaljerINF2810: Funksjonell Programmering. En Scheme-evaluator i Scheme, del 2
INF2810: Funksjonell programmering INF2810: Funksjonell Programmering En Scheme-evaluator i Scheme, del 2 Erik Velldal Universitetet i Oslo 7. mai 2015 Tema Forrige uke SICP 4.1. Structure and interpretation
DetaljerHva er en stack? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist
Stack Hva er en stack? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist Et nytt element legges alltid på toppen av stakken Skal vi ta ut et element, tar
DetaljerHva er en stack? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist
Stack Hva er en stack? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn sist Et nytt element legges alltid på toppen av stakken Skal vi ta ut et element, tar
DetaljerVelkommen til INF2100
Kursopplegg Velkommen til INF2100 Jeg er Dag Langmyhr (dag@ifi.uio.no). Dagens tema: Hva går kurset ut på? Bakgrunn for kurset Hvordan gjennomføres kurset? Hvordan får man det godkjent? Pause (med registrering
DetaljerNorsk informatikkolympiade runde
Norsk informatikkolympiade 2015 2016 1. runde Sponset av Uke 46, 2015 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.
DetaljerINF1010 siste begreper før oblig 2
INF1010 siste begreper før oblig 2 Sammenligning. Mer lenkede lister. Forskjellige listeimplementasjoner. Binære trær. Bittelitt om grensesnitt (interface). Dagens forelesning Flere temaer på grunn av
DetaljerINF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 5: Prioritetskø og Heap Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 5 1 /
DetaljerDatastrukturer. Stakker (Stacks) Hva er en datastruktur? Fordeler / Ulemper. Generelt om Datastrukturer. Stakker (Stacks) Elementære Datastrukturer
Hva er en datastruktur? Datastrukturer Elementære Datastrukturer En datastruktur er en systematisk måte å lagre og organisere data på, slik at det er lett å aksessere og modifisere dataene Eksempler på
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1010 Objektorientert programmering Dato: 9. juni 2016 Tid for eksamen: 09.00 15.00 (6 timer) Oppgavesettet er på 7 sider.
DetaljerOppsummering av digitalteknikkdelen
Oppsummering av digitalteknikkdelen! Følgende hovedtemaer er gjennomgått! Boolsk Algebra! von Neuman-arkitektur! Oppbygging av CPU! Pipelining! Cache! Virtuelt minne! Interne busser 09.05. INF 1070 1 Boolsk
Detaljer