INF3140 Modeller for parallellitet INF3140/4140: Monitorer

Størrelse: px
Begynne med side:

Download "INF3140 Modeller for parallellitet INF3140/4140: Monitorer"

Transkript

1 INF3140/4140: Monitorer Uke 6, side 1.

2 Monitor Programmoduler med mer struktur enn semaforer Monitorer er en mekanisme for data-abstraksjon Data i monitor er innkapslet og manipuleres vha. monitorprosedyrer Inneholder variable som beskriver tilstanden Variable kan endres kun gjennom tilgjengelige prosedyrer Implisitt mutex! Betingelsessynkronisering gitt ved betingelsesvariable Uke 6, side 2.

3 Bruk Har aktive prosesser og passive monitorer Alle felles variable for prosessene inne i monitor Prosessene kommuniserer bare ved å kalle monitorprosedyrer Prosessene trenger ikke kjenne alle implementasjonsdetaljer Bare synlig effekt av kallet er viktig Implementasjonen kan endres hvis synlig effekt er den samme Gjør at monitorer og prosesser kan utvikles relativt uavhengig Lettere å forstå og utvikle parallelle programmer Uke 6, side 3.

4 Syntaks & semantikk monitor name { monitor variable initialisering prosedyrer # felles programvariable # for monitorens prosedyrer En monitor er en instans av en abstrakt datatype: Bare prosedyrenavn er synlige fra utsiden av monitoren: call name.opname(argumenter) Programsetninger inne i en monitor har ikke tilgang til programvariable utenfort monitoren. Monitorvariable blir initialisert før monitoren taes i bruk En monitorinvariant benyttes til å beskrive monitorens indre tilstander. Uke 6, side 4.

5 Mutex implisitt i monitorer I monitorer er mutex gitt implisitt i implementasjonen av språket En prosedyre er aktiv hvis en programsetning i prosedyren eksekveres av en eller annen prosess Maksimalt én instans av en monitorprosedyre kan være aktiv om gangen Innebærer at vi er garantert interferens-frihet for monitorprosedyrer Programmereren trenger ikke benytte noen ad hoc metode for mutex. På lavere abstraksjonsnivå kan monitorer implementeres vha. låser eller semaforer. Uke 6, side 5.

6 Condition variable Monitorer har en spesiell type variabel: cond (condition) Brukes til å oppholde prosesser Hver slik variabel assosieres med en ventebetingelse I realiteten har condition-variabelen ingen annen verdi en køen på ventebetingelsen Verdien til variabelen er ikke tilgjengelig for programmereren I stedet kan den manipuleres vha. spesielle operasjoner. cond cv; # deklarerer conditionvariabel cv empty (cv); # spør om køen på cv er tom wait (cv); # får prosessen til å vente på køen til cv signal (cv); # vekker en prosess på køen til cv signal all (cv); # vekker alle prosessene på køen til cv Uke 6, side 6.

7 Signalleringsdisipliner Et signal på en conditionvariabelcv har følgende effekt: tom kø: ingen effekt prosessen som ligger først i ventekøen tilcv vekkes wait ogsignal utgjør en FIFO signalleringsstrategi Når en prosess utførersignal(cv) er den inne i monitor. Hvis en ventende prosess vekkes, vil det dermed være to aktive prosesser i monitor. Det fins to løsninger som gir mutex: Signal and Wait: Signallør venter til siden, og den signallerte prosessen får eksekvere med en gang Signal and Continue: Signallør fortsetter og den signallerte prosessen eksekverer senere Uke 6, side 7.

8 Implementasjon av semafor monitor Semafor { # monitorinvariant: s>=0 int s = 0; # semaforens verdi cond pos; # ventebetingelsen procedure Psem() { while (s==0) wait(pos); s = s-1; procedure Vsem() { s=s+1; signal(pos); Uke 6, side 8.

9 FIFO semafor FIFO semafor med SC signallering kan oppnås ved eksplisitt overførsel av kontrollen internt i monitoren (sende betingelsen videre). monitor FIFO semafor { # monitorinvariant: s>=0 int s = 0; # semaforens verdi cond pos; # signalleres bare når s>0 procedure Psem() { if (s==0) wait(pos); else s = s-1; procedure Vsem() { if empty(pos) s=s+1; else signal(pos); Uke 6, side 9.

10 Eksempel: Begrenset buffer synkronisering (1) Vi har en buffer av størrelse n. En produsent utførerput-operasjoner på bufferet En konsument utførerget-operasjoner på bufferet Vi bruker en variabelcount til å telle antall elementer i bufferet put-operasjoner må vente hvis bufferet er fullt get-operasjoner må vente hvis bufferet er tomt Uke 6, side 10.

11 Eksempel: Begrenset buffer synkronisering (2) Når en prosess er vekket går den tilbake til monitorens inngangskø Kjemper med andre prosesser om tilgangen til monitoren Vilkårlig delay fra vekking til eksekvering starter opp Må derfor teste på ventebetingelsen igjen når eksekvering starter Eks: put-prosess vekkes når bufferet er ikke-fullt. Andre prosesser kan gjøreput-operasjoner før prosessen som er vekket starter opp Må derfor forsikre seg igjen om at bufferet ikke er fullt Uke 6, side 11.

12 Eksempel: Begrenset buffer synkronisering (3) monitor Bounded Buffer { typet buf[n]; int count = 0; cond not full, not empty; procedure put(typet data){ while (count == n) wait(not full); # Legg element inn i buf count = count + 1; signal(not empty); procedure get (typet &result) { while (count == 0) wait(not empty); # Hent element fra buf count = count - 1; signal(not full); Uke 6, side 12.

13 Monitorløsning på leser og skriver problemet (1) 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 6, side 13.

14 Monitorløsning på leser og skriver problemet (2) Databasen kan ikke innkapsles i en monitor, for da får ikke lesere felles adgang. Monitoren brukes i stedet til å tildele adgang til prosesser Baserer oss på at prosessene ikke går inn i kritisk region (DB) før de har passertrw Controller monitoren. Monitorprosedyrer request read: ber om leseradgang. release read: leser forlater KR. request write: ber om skriveradgang. release write: skriver forlater KR. Uke 6, side 14.

15 Monitorløsning på leser og skriver problemet (3) Monitorinvariant Anta at vi har to tellere som lokale variable i monitor: nr nw antallet lesere antallet skrivere Synkroniseringskravet kan formuleres som: RW: (nr == 0 nw == 0) nw <= 1 Vi ønsker atrw skal være en monitorinvariant Strategi for monitoren La to condition-variableoktoread ogoktowrite regulere henholdsvis ventende lesere og ventende skrivere. Uke 6, side 15.

16 Monitorløsning på leser og skriver problemet (4) monitor RW_Controller { int nr = 0, nw = 0; ## RW: (nr == 0 OR nw == 0) AND nw <= 1 cond oktoread; # signaled when nw == 0 cond oktowrite; # signaled when nr == 0 and nw == 0 procedure request_read() { while (nw > 0) wait(oktoread); nr = nr + 1; procedure release_read() { nr = nr - 1; if (nr == 0) signal(oktowrite); # awaken one writer procedure request_write() {... procedure release_write() {... Uke 6, side 16.

17 Monitorløsning på leser og skriver problemet (5) monitor RW_Controller { int nr = 0, nw = 0; ## RW: (nr == 0 OR nw == 0) AND nw <= 1 cond oktoread; # signaled when nw == 0 cond oktowrite; # signaled when nr == 0 and nw == 0 procedure request_read() {... procedure release_read() {... procedure request_write() { while (nr > 0 nw > 0) wait(oktowrite); nw = nw + 1; procedure release_write() { nw = nw - 1; signal(oktowrite); # awaken one writer and signal_all(oktoread); # all readers Uke 6, side 17.

18 Invariant Monitorinvariant (I) brukes til å beskrive monitorens indre tilstand Uttrykke relasjon mellom monitorvariablene Må holde etter initialisering Må holde når en prosedyre avsluttes Må holde idet vi slipper kontrollen p.g.a. kall tilwait Kan da anta at invarianten holder etter wait og når en prosedyre starter Bør være så sterk som mulig! Uke 6, side 18.

19 Aksiomer for Signal and Continue (1) Anta at monitorinvarianten I og predikatet P ikke omtalercv. Da kan vi sette opp følgende aksiomer: {I wait(cv) {I {P signal(cv) {P, for vilkårlig P {P signal all(cv) {P, for vilkårlig P Hva om predikatene omtaler køen tilcv? Uke 6, side 19.

20 Aksiomer for Signal and Continue (2) Anta at invarianten kan omtale antall prosesser til køen på en condition variabel. La#cv være antall prosesser som venter på køen tilcv. Testenempty(cv) er da identisk med #cv == 0 wait(cv) modelleres som en utvidelse av køen etterfulgt av prosessor-slipp: wait(cv) : {I #cv (#cv+1) #cv = #cv +1;{Isleep{I signal(cv) kan modelleres som reduksjon av køen: {((#cv == 0) P) ((#cv 0) P #cv (#cv 1) ) if (#cv! = 0) #cv = #cv 1 {P signal all(cv) modelleres som en løkke avsignal(cv) Uke 6, side 20.

21 Aksiomer for Signal and Continue (3) Tilsammen gir dette: {I #cv (#cv+1) wait(cv){i {((#cv == 0) P) ((#cv 0) P #cv (#cv 1) )signal(cv){p {P signal all(cv){p #cv == 0 Dersom vi vet at #cv 0 idet vi signalerer, så kan aksiomet for signal(cv) forenkles til {P #cv (#cv 1) signal(cv){p Uke 6, side 21.

22 Monitorløsning på leser og skriver problemet (6) Verifikasjon av invarianten overrequest read I : (nr == 0 nw == 0) nw 1 procedure request read() { {I while (nw > 0) { {I nw > 0 {I wait(oktoread); {I {I nw == 0 nr = nr + 1; {I Uke 6, side 22.

23 Tidstjener Monitor med prosedyre som muliggjør soving i en gitt tid Ressurs: en logisk klokke (tod) Tilbyr to operasjoner: delay(interval) kaller ønsker å sove iinterval klokketikk tick øker den logiske klokken med ett tikk Kalles av hardware, gjerne med høy eksekveringsprioritet Hver prosess som kallerdelay regner ut sin egen tid for oppvåkning: wake time = tod + interval; Venter så lengetod < wake time Ventebetingelsen er avhengig av lokale variable Covering condition: Alle prosessene vekkes når det er mulig at noen kan forsette Hver prosess sjekker sin betingelse og sovner igjen hvis denne ikke holder Uke 6, side 23.

24 Tidstjener: Covering condition Invariant: CLOCK : tod 0 tod øker monotont med 1 monitor Timer { int tod = 0; # Time Of Day cond check; # signaleres når tod er øket procedure delay(int interval) { int wake_time; wake_time = tod + interval; while (wake_time > tod) wait(check); procedure tick() { tod = tod + 1; signal_all(check); Lite effektivt hvis mange prosesser skal vente lenge Kan gi mange falske alarmer Uke 6, side 24.

25 Prioritert venting Kan også gi tilleggsargument tilwait: wait(cv, rank) Prosessen venter på køen tilcv ordnet i stigende rekkefølge etter argumentetrank. Vedsignal: Prosessen med lavest verdi avrank vekkes først. Kall tilminrank(cv) returnererrank-verdien til den første prosessen på køen (med lavest rank). Køen endres ikke (ingen prosesser vekkes) Kan brukes til å implementere korteste-jobb allokering (seksjon 5.2.3) Kan også brukes til å effektivisere monitorentimer Uke 6, side 25.

26 Tidstjener: Prioritert vent Bruker prioritert venting til å ordne prosessene påcheck Prosesser vekkes bare nårtod >= wake time Trenger derfor ikkewhile-loop idelay monitor Timer { int tod = 0; # Invariant: CLOCK cond check; # signalert når minrank(check) <= tod procedure delay(int interval) { int wake_time; wake_time = tod + interval; if (wake_time > tod) wait(check, wake_time); procedure tick() { tod = tod + 1; while (!empty(check) && minrank(check) <= tod) signal(check); Uke 6, side 26.

27 Den sovende barberer (1) Vi ser på en barbersalong med to dører og noen stoler. Kunder kommer inn gjennom en dør og går ut gjennom den andre. I barbersalongen kan bare én kunde bevege seg om gangen Når det ikke er kunder, sover barbereren i en av stolene. Når det kommer en kunde og barbereren sover, blir barbereren vekket og kunden setter seg i barberstolen. Hvis barbereren er opptatt, setter kunden seg til å sove i en av de andre stolene. Når kunden er betjent, slipper barbereren ham ut gjennom utgangsdøren. Hvis det er ventende kunder, blir en av disse vekket. Ellers sovner barbereren igjen. Uke 6, side 27.

28 Den sovende barberer (2) Denne aktiviteten modelleres ved følgende monitorprosedyrer: get haircut: kalles av kunde, returnerer når klipping er ferdig get next customer: kalles av barbereren for å betjene en kunde finish haircut: kalles av barbereren for å slippe en kunde ut av frisørsalongen Rendezvous Et rendezvous ligner på en to-prosess barriere: Begge parter må ankomme før noen kan fortsette. Barbereren må vente på en kunde Kunden må vente på at barbereren er ledig. Barbereren kan ha rendezvous med en vilkårlig kunde. Uke 6, side 28.

29 Den sovende barberer (3) Vi bruker 3 tellere til å synkronisere prosessene: barber, chair ogopen Vi programmerer slik at disse tre variablene veksler mellom 0 og 1. barber == 1 : barbereren er klar for ny kunde chair == 1: kunden sitter i stolen, barbereren har ikke begynt å jobbe open == 1 : utgangsdøren er åpnet, kunden har ikke rukket å gå ut. Uke 6, side 29.

30 Den sovende barberer (4) Synkronisering av prosessene Det er fire forskjellige synkroniseringsbetingelser: kunden må vente på at barbereren er ledig kunden må vente på at barbereren åpner utgangsdøren barbereren må vente på at en kunde setter seg i stolen barbereren må vente på at en kunde forlater salongen Prosessene signallerer når en av ventebetingelsene er oppfylt. Uke 6, side 30.

31 Den sovende barberer (5) monitor Barber_Shop { int barber = 0, chair = 0, open = 0; cond barber_available; # signaleres når barber > 0 cond chair_occupied; # signaleres når chair > 0 cond door_open; # signaleres når open > 0 cond customer_left; # signaleres når open == 0 procedure get_haircut() {... procedure get_next_customer() {... procedure finished_cut() {... Uke 6, side 31.

32 Den sovende barberer (6) procedure get_haircut() { while (barber == 0) wait(barber_available); barber = barber - 1; chair = chair + 1; signal(chair_occupied); while (open == 0) wait(door_open); open = open -1; signal(customer_left); procedure get_next_customer() { barber = barber + 1; signal(barber_available); while (chair == 0) wait(chair_occupied); chair = chair - 1; procedure finished_cut() { open = open + 1; signal(door_open); while (open > 0) wait(customer_left); Uke 6, side 32.

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: Låser og Barrierer

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

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

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

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

Models of Concurrency

Models 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

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

INF2810: Funksjonell Programmering. Kommentarer til prøveeksamen

INF2810: Funksjonell Programmering. Kommentarer til prøveeksamen INF2810: Funksjonell programmering INF2810: Funksjonell Programmering Kommentarer til prøveeksamen Erik Velldal Universitetet i Oslo 1: Grunnleggende (6 poeng)? (define foo '(a b))? (define bar foo)? (set!

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: 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

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

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

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

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

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

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

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt. Side 1 av 5 Norges teknisk-naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Løsningsforslag til EKSAMENSOPPGAVE I FAG TDT4186 OPERATIVSYSTEMER Versjon: 17.jan 2013 Faglig

Detaljer

Stein Gjessing. Institutt for informatikk. Universitetet i Oslo. Institutt for informatikk

Stein 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:

Detaljer

INF2810: Funksjonell Programmering. En Scheme-evaluator i Scheme, del 2

INF2810: 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

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

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. En metasirkulær evaluator, del 2

INF2810: 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

Detaljer

INF2810: Funksjonell Programmering. En metasirkulær evaluator, del 2

INF2810: 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

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. En Scheme-evaluator i Scheme, del 2

INF2810: Funksjonell Programmering. En Scheme-evaluator i Scheme, del 2 INF2810: Funksjonell Programmering En Scheme-evaluator i Scheme, del 2 Erik Velldal Universitetet i Oslo 4. mai 2017 Tema 2 Forrige uke SICP 4.1. Structure and interpretation of computer programs Metacircular

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

INF2810: Funksjonell Programmering

INF2810: Funksjonell Programmering INF2810: Funksjonell Programmering Høyereordens prosedyrer, lambda og lokale variabler Stephan Oepen Universitetet i Oslo 9. februar 2015 Tema 2 Forrige uke Lister og listerekursjon quote Høyereordens

Detaljer

INF2810: Funksjonell Programmering. En Scheme-evaluator i Scheme, del 2

INF2810: Funksjonell Programmering. En Scheme-evaluator i Scheme, del 2 INF2810: Funksjonell Programmering En Scheme-evaluator i Scheme, del 2 Erik Velldal Universitetet i Oslo 4. mai 2017 Tema 2 Forrige uke SICP 4.1. Structure and interpretation of computer programs Metacircular

Detaljer

INF2810: Funksjonell Programmering

INF2810: Funksjonell Programmering INF2810: Funksjonell Programmering Høyereordens prosedyrer, lambda og lokale variabler Stephan Oepen Universitetet i Oslo 9. februar 2015 Tema 2 Forrige uke Lister og listerekursjon quote Høyereordens

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

Intel Core i7. Omid Mirmotahari 4

Intel 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

Detaljer

INF1010 Repetisjonskurs i tråder

INF1010 Repetisjonskurs i tråder Eivind Storm Aarnæs eivinsaa@student.matnat.uio.no 19. mai og 21. mai 2014 Hello, World! La oss starte med det vanlige eksempelet: Hello, World Alle trådene skriver ut samtidig. Hello, World! La oss starte

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

INF2810: Funksjonell Programmering

INF2810: Funksjonell Programmering INF2810: Funksjonell Programmering Høyereordens prosedyrer, lambda og lokale variabler Erik Velldal Universitetet i Oslo 9. februar 2017 Tema 2 Forrige uke Lister og listerekursjon quote Høyereordens prosedyrer

Detaljer

var y :{x :T R}; S endvar y

var y :{x :T R}; S endvar y uttrykk av formen some x : T R selekterer ikke-deterministisk Et T -verdi som tilfredsstiller R, det vil si en verdi av subtypen en skal regnes med i den applikative delen av programmeringsspråket, some-uttrykk

Detaljer

INF2810: Funksjonell Programmering. Strømmer og utsatt evaluering

INF2810: Funksjonell Programmering. Strømmer og utsatt evaluering INF2810: Funksjonell Programmering Strømmer og utsatt evaluering Stephan Oepen Universitetet i Oslo 30. mars 2017 Forrige forelesning 2 Mer om (prosedyre)navn, bindinger, og verditilordning Nok en ny abstrakt

Detaljer

Dagens tema: 12 gode råd for en kompilatorskriver

Dagens tema: 12 gode råd for en kompilatorskriver Dagens tema: 12 gode råd for en kompilatorskriver Hvordan sjekke navn? Testutskrifter 12 gode råd Hva skal gjøres med navn? Sjekking av navn En kompilator må også sjekke riktig navnebruk: Det må ikke forekomme

Detaljer

INF2810: Funksjonell Programmering

INF2810: Funksjonell Programmering INF2810: Funksjonell Programmering Høyereordens prosedyrer, lambda og lokale variabler Erik Velldal Universitetet i Oslo 9. februar 2017 Tema 2 Forrige uke Lister og listerekursjon quote Høyereordens prosedyrer

Detaljer

INF2810: Funksjonell Programmering. En Scheme-evaluator i Scheme

INF2810: Funksjonell Programmering. En Scheme-evaluator i Scheme INF2810: Funksjonell Programmering En Scheme-evaluator i Scheme Erik Velldal Universitetet i Oslo 19. april 2016 Tema 2 Forrige uke Strømmer og utsatt evaluering Kort om makroer I dag Kap. 4 Metasirkulær

Detaljer

23.09.2015. Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.

23.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

Detaljer

IN1020. Datamaskinarkitektur

IN1020. 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

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

Oppsummering av IN147 siste del Operativsystemer Parallellisering Veien videre

Oppsummering 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

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

Dagens tema: INF2100. Syntaksanalyse. Hva annet gjør en kompilator? Sjekking av navnebruk. Testutskrifter

Dagens tema: INF2100. Syntaksanalyse. Hva annet gjør en kompilator? Sjekking av navnebruk. Testutskrifter Dagens tema: Syntaksanalyse Hva annet gjør en kompilator? Sjekking av navnebruk Testutskrifter Dag Langmyhr,Ifi,UiO: Forelesning 4. oktober 2005 Ark 1 av 20 Syntaksanalyse På skolen hadde vi grammatikkanalyse:

Detaljer

INF2810: Funksjonell Programmering. En metasirkulær evaluator

INF2810: Funksjonell Programmering. En metasirkulær evaluator INF2810: Funksjonell Programmering En metasirkulær evaluator Stephan Oepen & Erik Velldal Universitetet i Oslo 26. april 2013 Tema 2 Forrige uke Strømmer og utsatt evaluering Memoisering Kort om makroer

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

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

Oppsummering av digitalteknikkdelen

Oppsummering 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

FYS3240/4240 Forslag til prosjektoppgave for Lab 4: DAQ-øvelse med LabVIEW

FYS3240/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

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET 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

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

INF2810: Funksjonell Programmering. En metasirkulær evaluator

INF2810: Funksjonell Programmering. En metasirkulær evaluator INF2810: Funksjonell Programmering En metasirkulær evaluator Stephan Oepen & Erik Velldal Universitetet i Oslo 26. april 2013 Tema 2 Forrige uke Strømmer og utsatt evaluering Memoisering Kort om makroer

Detaljer

Introduksjon til objektorientert programmering

Introduksjon 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

Detaljer

Skisse til løsning for eksamensoppgave i TDT4186 Operativsystemer

Skisse til løsning for eksamensoppgave i TDT4186 Operativsystemer Institutt for datateknikk og informasjonsvitenskap Skisse til løsning for eksamensoppgave i TDT4186 Operativsystemer Faglig kontakt under eksamen: Svein Erik Bratsberg: 9953 9963 Eksamensdato: 9. desember

Detaljer

Prosedyrer. Lars Vidar Magnusson. October 26, Lars Vidar Magnusson () Forelesning i DAS October 26, / 19

Prosedyrer. Lars Vidar Magnusson. October 26, Lars Vidar Magnusson () Forelesning i DAS October 26, / 19 Prosedyrer Lars Vidar Magnusson October 26, 2011 Lars Vidar Magnusson () Forelesning i DAS 11.10.2011 October 26, 2011 1 / 19 Repetisjon om triggere og prosedyrer Triggere og prosedyrer ligner på hverandre

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

INF2810: Funksjonell Programmering. En Scheme-evaluator i Scheme

INF2810: Funksjonell Programmering. En Scheme-evaluator i Scheme INF2810: Funksjonell Programmering En Scheme-evaluator i Scheme Erik Velldal Universitetet i Oslo 27. april 2017 Tema 2 Forrige forelesning Strømmer og utsatt evaluering Kort om makroer I dag Kap. 4 Metasirkulær

Detaljer

Syntaksanalyse. Dagens tema: Språkdiagrammene Jernbanediagrammene er et ypperlig utgangspunkt for å analysere et program: INF2100 INF2100 INF2100

Syntaksanalyse. Dagens tema: Språkdiagrammene Jernbanediagrammene er et ypperlig utgangspunkt for å analysere et program: INF2100 INF2100 INF2100 Syntaksanalyse På skolen hadde vi grammatikkanalyse: Dagens tema: Syntaksanalyse Hva annet gjør en kompilator? Sjekking av navnebruk Testutskrifter Fanger krabber så lenge de orker Syntaksanalyse er på

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

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

Dagens tema: 12 gode råd for en kompilatorskriver. Sjekking av navn. Lagring av navn. Hvordan finne et navn?

Dagens tema: 12 gode råd for en kompilatorskriver. Sjekking av navn. Lagring av navn. Hvordan finne et navn? Dagens tema: 12 gode råd for en kompilatorskriver Hva skal gjøres med navn? Sjekking av navn Hvordan sjekke navn? Testutskrifter 12 gode råd En kompilator må også sjekke riktig navnebruk: Det må ikke forekomme

Detaljer

INF2810: Funksjonell Programmering. Mengder og lokal tilstand

INF2810: Funksjonell Programmering. Mengder og lokal tilstand INF2810: Funksjonell Programmering Mengder og lokal tilstand Stephan Oepen & Erik Velldal Universitetet i Oslo Kvinnedagen, 2013 Forrige gang 2 Dagens dont 3 Del 1 Litt mer om hierarkisk data. Representasjon

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF2810 Eksamensdag: Fredag 5. juni 2015 Tid for eksamen: 14:30 (4 timer) Oppgavesettet er på 4 sider (ikke medregnet denne siden)

Detaljer

INF 3430/4430. Simuleringsmetodikk

INF 3430/4430. Simuleringsmetodikk INF 3430/4430 Simuleringsmetodikk 02.11.2005 Agenda Event driven simulation Simulering av VHDL-modeller Selvtestende testbenker Verifikasjon av syntetisert/plassert design mot RTL-kode Fil-operasjoner

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET 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:

Detaljer

INF2810: Funksjonell Programmering. Strømmer og utsatt evaluering

INF2810: Funksjonell Programmering. Strømmer og utsatt evaluering INF2810: Funksjonell programmering INF2810: Funksjonell Programmering Strømmer og utsatt evaluering Erik Velldal Universitetet i Oslo 5. april 2016 Forrige forelesning Mer om (prosedyre)navn, bindinger,

Detaljer

Forelesning III Kap 8 & 7; Dagsplan. Gjenbruk. Condition synchronization. Gjennomgående eksempler. Kode: Design: Verktøy

Forelesning III Kap 8 & 7; Dagsplan. Gjenbruk. Condition synchronization. Gjennomgående eksempler. Kode: Design: Verktøy Forelesning III Kap 8 & 7; Dagsplan Moral: Gjenbruk Kap 8: Shared variable-based synchronization and communication Condition synchronization Mutual Exclution Conditional Critical Regions Suspend & Resume

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

Forelesning Instruksjonstyper Kap 5.5

Forelesning Instruksjonstyper Kap 5.5 TDT4160 Datamaskiner Grunnkurs Forelesning 22.11 Instruksjonstyper Kap 5.5 Dagens tema Instruksjonstyper (5.5) Datatransport Datamanipulering Betingede hoppinstruksjoner Prosedyrekall Løkker I/O Eksempler

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

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

INF 3430/4430. Simuleringsmetodikk

INF 3430/4430. Simuleringsmetodikk INF 3430/4430 Simuleringsmetodikk Innhold Event driven simulation Simulering av VHDL-modeller Selvtestende testbenker Fil-operasjoner Eksempel på SRAM modell og simulering av lesing fra denne INF3430 Side

Detaljer

Ikke pensum! Plan for dagen. Resource Management Kontekst: Bloom (1979) Kap. 11: Resource control (utvalg)

Ikke pensum! Plan for dagen. Resource Management Kontekst: Bloom (1979) Kap. 11: Resource control (utvalg) Plan for dagen Kap. 11: Resource control (utvalg) Hva trenger vi av egenskaper? Hvordan unngår vi vranglåser? Ikke pensum! Kap. 11.4 (The requeue facility) Kap 14 (Distributed Systems) Kap 14 Distributed

Detaljer

Eivind Gard Lund. 24. Mars 2009 Foilene bygger på 2009 utgaven av Andreas Svendsen

Eivind Gard Lund. 24. Mars 2009 Foilene bygger på 2009 utgaven av Andreas Svendsen Eivind Gard Lund 24. Mars 2009 Foilene bygger på 2009 utgaven av Andreas Svendsen Informasjon Semantikksjekk Kodegenerering Oblig 2 tilgjengelig på kurssiden Bygger på deres oblig 1 kode. Det er lagt ut

Detaljer

1. Kontrollstrukturer og løkker

1. Kontrollstrukturer og løkker Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Leksjon 02: Kontrollstrukturer og løkker Kjell Toft Hansen 23.06.2010 Lærestoffet er utviklet for faget LO177D Databaseprogrammering med

Detaljer

Introduksjon til DARK assembly

Introduksjon til DARK assembly Introduksjon til DARK assembly Magnus Jahre Institutt for datateknikk og informasjonsvitenskap 2 Plan Assembly vs. Java Dark stakkmaskin Oversikt over stakkmaskinen Dark stakkmaskin eksempel Dark Load-Store

Detaljer

INF 3430/4431. Simuleringsmetodikk

INF 3430/4431. Simuleringsmetodikk INF 3430/4431 Simuleringsmetodikk Innhold Event driven simulation Simulering av VHDL-modeller Selvtestende testbenker Fil-operasjoner Eksempel på SRAM modell og simulering av lesing fra denne INF3430/4431

Detaljer

Tilkobling og Triggere

Tilkobling og Triggere Tilkobling og Triggere Lars Vidar Magnusson October 12, 2011 Lars Vidar Magnusson () Forelesning i DAS 11.10.2011 October 12, 2011 1 / 25 Tilkobling med PHP PHP bruker databasespesifike moduler til å koble

Detaljer

Semantisk Analyse del I

Semantisk Analyse del I Semantisk Analyse del I Attributtgrammatikker Kapittel 6.1-6.2 26.02.2013 1 Statisk semantisk analyse kapittel 6: Innhold Generelt om statisk semantisk analyse Attributt-grammatikker (kapittel 6.1-6.2)

Detaljer

MPIntroduksjon Et eksempel

MPIntroduksjon Et eksempel MPIntroduksjon Et eksempel Jon Nilsen Kjerne- og energigruppen MPIntro p.1/17 Litt om parallisering Grunnleggende ideer: Vil ha raskere og større beregninger parallellisering. Flere prosessorer brukes

Detaljer

INF5110 Obligatorisk Oppgave 2 del 2. Andreas Svendsen SINTEF. 23. April Oversikt

INF5110 Obligatorisk Oppgave 2 del 2. Andreas Svendsen SINTEF. 23. April Oversikt INF5110 Obligatorisk Oppgave 2 del 2 Andreas Svendsen SINTEF 23. April 2009 Oversikt Tilbakeblikk på oppgaven Eksempel på sjekk av semantikk Eksempel på kodegenerering Nødvendige instruksjoner for IF-noden

Detaljer

Heap* En heap er et komplett binært tre: En heap er også et monotont binært tre:

Heap* 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

Detaljer

Obligatorisk oppgave 6 i INF1010: Dekryptering

Obligatorisk oppgave 6 i INF1010: Dekryptering Obligatorisk oppgave 6 i INF1010: Dekryptering INF1010 Frist: mandag 8. mai 2017 kl. 12:00 Versjon 1.0 (8cb4fee ) Innhold 1 Innledning 1 2 Modell 2 3 Pakke for lytting på kanaler og dekryptering 2 4 Implementasjon

Detaljer

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

public 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

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: 15.desember 2004 Varighet: Fagnummer: Fagnavn: Klasse(r): 3 timer LO116D Programmering i Visual Basic FU

Detaljer

Tid og koordinering. Foreleser: Olav Lysne

Tid og koordinering. Foreleser: Olav Lysne Tid og koordinering Foreleser: Olav Lysne Bakgrunn Distribuerte koordineringsprotokoller har ofte behov for en hendte-før relasjon mellom hendelser gjensidig utelukkelse blandt en samling prosesser (som

Detaljer

INF2810: Funksjonell Programmering. Trær og mengder

INF2810: Funksjonell Programmering. Trær og mengder INF2810: Funksjonell programmering INF2810: Funksjonell Programmering Trær og mengder Erik Velldal Universitetet i Oslo 19. februar 2015 Tema Forrige uke Høyereordens prosedyrer lambda, let og lokale variabler

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

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

Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først

Hva 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

Detaljer

INF2810: Funksjonell Programmering. Mer om strømmer

INF2810: Funksjonell Programmering. Mer om strømmer INF2810: Funksjonell Programmering Mer om strømmer Stephan Oepen & Erik Velldal Universitetet i Oslo 19. april 2013 Tema 2 Forrige uke Repetisjon: parallelitet Noe helt nytt: strømmer Noe quizzaktivitet

Detaljer

Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først

Hva 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

Detaljer

Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først

Hva 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

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

C:\web\service-elektronikk\fagprover\Anders\flashlite_program_Anders.pas Page 1

C:\web\service-elektronikk\fagprover\Anders\flashlite_program_Anders.pas Page 1 C:\web\service-elektronikk\fagprover\Anders\flashlite_program_Anders.pas Page 1 { F A G P R Ø V E N V Å R E N 1 9 9 9 Universitetet i Bergen Institutt for den Faste Jords Fysikk A D - K O R T P R O G R

Detaljer

HØ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 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

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

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Eksamensdato: 21. desember 2005 Varighet: 3 timer ( 9:00 12:00 ) Avdeling for informatikk og e-læring Fagnummer: Fagnavn: LO249D Operativsystemer med Linux Klasser: FU (1. ING)

Detaljer

Beskrivelse av programmeringsspråket Compila15 INF Kompilatorteknikk Våren 2015

Beskrivelse av programmeringsspråket Compila15 INF Kompilatorteknikk Våren 2015 Beskrivelse av programmeringsspråket Compila15 INF5110 - Kompilatorteknikk Våren 2015 Her beskrives syntaksen og den statiske semantikken (hva som skal sjekkes av kompilatoren) til språket Compila15. Den

Detaljer