Tråder Repetisjon. 9. og 13. mai Tråder
|
|
|
- Mette Helle
- 9 år siden
- Visninger:
Transkript
1 Tråder Repetisjon 9. og 13. mai Tråder
2 Hva er tråder? 2
3 Hva er tråder? I utgangspunktet uavhengige aktiviteter som konkurrerer om å få bruke prosessoren. 2
4 Hvorfor tråder? 3
5 Hvorfor tråder? Flere oppgaver må kunne gjøres samtidig. 3
6 Hvorfor tråder? Flere oppgaver må kunne gjøres samtidig. Kokker og servitører har forskjellige roller, men jobber samtidig Simulere kjøp av flybilletter fra forskjellige kunder samtidig 3
7 Hvorfor tråder? Flere oppgaver må kunne gjøres samtidig. Kokker og servitører har forskjellige roller, men jobber samtidig Simulere kjøp av flybilletter fra forskjellige kunder samtidig Vi vil utnytte prosessoren(e) for å gjøre noe raskere. 3
8 Hvorfor tråder? Flere oppgaver må kunne gjøres samtidig. Kokker og servitører har forskjellige roller, men jobber samtidig Simulere kjøp av flybilletter fra forskjellige kunder samtidig Vi vil utnytte prosessoren(e) for å gjøre noe raskere. Finne et spesifikt element (f.eks største/minste) Sortere data INF2440 Enkode videofiler INF5063 3
9 Hvordan bruke tråder? Alternativ 1: Lag en subklasse av Thread Alternativ 2: Implementer Runnable 4
10 Subklasse av Thread class TraadklasseNavn extends Thread 5
11 Subklasse av Thread class TraadklasseNavn extends Thread Kan enkelt starte TraadklasseNavn med: TraadklasseNavn traaden = new TraadklasseNavn(); traaden.start(); 5
12 Subklasse av Thread class TraadklasseNavn extends Thread Kan enkelt starte TraadklasseNavn med: TraadklasseNavn traaden = new TraadklasseNavn(); traaden.start(); Men arver også alle variabler og metoder fra klassen Thread. Disse ønsker vi ikke å risikere og kødde med. 5
13 Implementer grensesnittet Runnable class TraadklasseNavn implements Runnable 6
14 Implementer grensesnittet Runnable class TraadklasseNavn implements Runnable Må implementere metoden public void run(){} for å kompilere men det er jo uansett metoden som blir kalt ved start av tråd. 6
15 Implementer grensesnittet Runnable class TraadklasseNavn implements Runnable Må implementere metoden public void run(){} for å kompilere men det er jo uansett metoden som blir kalt ved start av tråd. Krever litt ekstra ved start av tråder: Thread traaden = new Thread( new TraadklasseNavn()); traaden.start(); Må altså opprette et nytt Thread objekt som tar vår klasse som parameter til konstruktøren. 6
16 Starte en tråd traaden.start(); 7
17 Starte en tråd traaden.start(); 1 class TraadklasseNavn implements Runnable { 2 public void run() { 3 System.out.println("Hei fra traad: " + this); 4 } 5 } 7
18 Starte en tråd traaden.start(); 1 class TraadklasseNavn implements Runnable { 2 public void run() { 3 System.out.println("Hei fra traad: " + this); 4 } 5 } Hei fra traad: TraadklasseNavn@b8bb110 7
19 Starte en tråd traaden.start(); 1 class TraadklasseNavn implements Runnable { 2 public void run() { 3 System.out.println("Hei fra traad: " + this); 4 } 5 } Hei fra traad: TraadklasseNavn@b8bb110 IKKE traaden.run(); 7
20 Starte en tråd traaden.start(); 1 class TraadklasseNavn implements Runnable { 2 public void run() { 3 System.out.println("Hei fra traad: " + this); 4 } 5 } Hei fra traad: TraadklasseNavn@b8bb110 IKKE traaden.run(); sekvensiell kjøring 7
21 Kommunikasjon mellom tråder 8
22 Kommunikasjon mellom tråder Ingen garanti for rekkefølge på trådene. Caching og oppdatering av felles data Låser og barrierer Monitor 8
23 Rekkefølge på tråder Operativsystemet bestemmer hvilken tråd som startes når 9
24 Rekkefølge på tråder Operativsystemet bestemmer hvilken tråd som startes når Kan ikke anta at første tråd.start() et vil bli startet først 9
25 Rekkefølge på tråder Operativsystemet bestemmer hvilken tråd som startes når Kan ikke anta at første tråd.start() et vil bli startet først Kan heller ikke garantere at en tråd gjør seg ferdig før en annen tråd får vinduet 9
26 Rekkefølge på tråder Operativsystemet bestemmer hvilken tråd som startes når Kan ikke anta at første tråd.start() et vil bli startet først Kan heller ikke garantere at en tråd gjør seg ferdig før en annen tråd får vinduet 9
27 Tre avgjørende prinsipper for lesing og skriving på felles data (variabler) Før (og etter) synkronisering på felles synkroniserings-objekt gjelder (fra INF2440): 10
28 Tre avgjørende prinsipper for lesing og skriving på felles data (variabler) Før (og etter) synkronisering på felles synkroniserings-objekt gjelder (fra INF2440): 1. Hvis ingen tråder skriver på en felles variabel, kan alle tråder lese denne. 10
29 Tre avgjørende prinsipper for lesing og skriving på felles data (variabler) Før (og etter) synkronisering på felles synkroniserings-objekt gjelder (fra INF2440): 1. Hvis ingen tråder skriver på en felles variabel, kan alle tråder lese denne. 2. To tråder må aldri skrive samtidig på en felles variabel (eks. i++ går galt) 10
30 Tre avgjørende prinsipper for lesing og skriving på felles data (variabler) Før (og etter) synkronisering på felles synkroniserings-objekt gjelder (fra INF2440): 1. Hvis ingen tråder skriver på en felles variabel, kan alle tråder lese denne. 2. To tråder må aldri skrive samtidig på en felles variabel (eks. i++ går galt) 3. Hvis bare én tråd skriver på en variabel må også bare denne tråden lese denne variabelen før synkronisering ingen andre tråder må lese den før synkroniserin (Bankteller eksempelet) 10
31 Caching, volatile, immutable 11
32 Caching, volatile, immutable Cache Et mellomlager i prosessoren, for å slippe å dra til minnet hver gang. 11
33 Caching, volatile, immutable Cache Et mellomlager i prosessoren, for å slippe å dra til minnet hver gang. 12
34 Caching, volatile, immutable Cache Et mellomlager i prosessoren, for å slippe å dra til minnet hver gang. Volatile En variabel som er deklarert volatile caches ikke (og oppbevares ikke i registre (lenger enn helt nødvending)).en volatile variable skrives helt tilbake i primærlageret før neste instruksjon utføres. fra forelesning om Tråder I 13
35 Caching, volatile, immutable Cache Et mellomlager i prosessoren, for å slippe å dra til minnet hver gang. Volatile En variabel som er deklarert volatile caches ikke (og oppbevares ikke i registre (lenger enn helt nødvending)).en volatile variable skrives helt tilbake i primærlageret før neste instruksjon utføres. fra forelesning om Tråder I Immutable Et fancy ord for final, eller konstant en variabel som aldri endrer verdi. 13
36 Caching, volatile, immutable Cache Et mellomlager i prosessoren, for å slippe å dra til minnet hver gang. Volatile En variabel som er deklarert volatile caches ikke (og oppbevares ikke i registre (lenger enn helt nødvending)).en volatile variable skrives helt tilbake i primærlageret før neste instruksjon utføres. fra forelesning om Tråder I Immutable Et fancy ord for final, eller konstant en variabel som aldri endrer verdi. private final char TOM_VERDI_TEGN =. ; 13
37 Caching, volatile, immutable Cache Et mellomlager i prosessoren, for å slippe å dra til minnet hver gang. Volatile En variabel som er deklarert volatile caches ikke (og oppbevares ikke i registre (lenger enn helt nødvending)).en volatile variable skrives helt tilbake i primærlageret før neste instruksjon utføres. fra forelesning om Tråder I Immutable Et fancy ord for final, eller konstant en variabel som aldri endrer verdi. private final char TOM_VERDI_TEGN =. ; 13
38 Låser og barrierer Opprette kritiske regioner områder kun en tråd være om gangen. Låser hindrer tråder i å arbeide på samme variabel samtidig. Barrierer kan brukes for å hindre tråder i å fortsette før alt er klart. wait/notify er en kombinasjon av både lås og barriere. 14
39 Lås Den enkleste formen for lås er synchronized foran metoder. 1 public synchronized void oekverdi() { 2 verdien++; 3 } Andre låser er mer fleksible, men krever også mer forståelse: java.util.concurrent.locks.reentrantlock er en lås dere har fått eksempel på i forelesning 15
40 Barrierer Thread.join() er den enkleste formen for barriere. Den brukes ofte fra main-tråden for å vite når programmet er klar for å skrive ut resultatet. Tråd1 kaller join på tråd2: traad2.join(); Det betyr at Tråd1 venter på den kodelinjen til tråd2 er ferdig (og dermed destruert). wait() er en annen formen for barriere den skal hindre en tråd i å fortsette før situasjonen er klar for det. notify[all]() brukes dermed for å gi beskjed til tråder som venter om at de kan fortsette. (eksempel kommer) Et siste eksempel er java.util.concurrent.cyclicbarrier Minner om join(), men har et gitt antall tråder den venter på. 16
41 Monitor Et felles objekt som håndterer kommunikasjon mellom tråder. Er til for å sikre at tråder ikke er i kritiske regioner samtidig vha. synchronized eller ReentrantLock Bruker notify for å gi beskjed til tråder i wait om at de kan fortsette. 17
42 Typiske problemer Ved dårlig låsing eller wait/notifyer det fort å sette en tråd i lås der den aldri får fortsette Dårlig lastfordeling når effektivitet er viktig Sekvensiell løsning ved for mye synchronized eller ved å starte trådene med traad.run(); 18
43 19
44 Eksamenstips Forstå at tråder har tilfeldig arbeidstid Lær hva synchronized er: hvilke metoder må være det, og hvorfor ikke alle metoder kan være det Tenk enkelt på wait/notify, tråder venter (wait) til de får beskjed (notify) om å fortsette. Ved bruk av.join(), pass på at alle trådene er startet først. 20
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
La oss begynne med en repetisjon av hva som skjer når du kjører Javaprogrammet
K A P I T T E L 18 Tråder N år et program kjøres, utføres programsetningene i en bestemt rekkefølge. En tråd er det samme som denne programflyten, og i dette kapitlet skal vi se på hvordan vi starter og
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
INF1010, 22. mai Prøveeksamen (Eksamen 12. juni 2012) Stein Gjessing Inst. for Informatikk Universitetet i Oslo
INF, 22. mai 23 Prøveeksamen 23 (Eksamen 2. juni 22) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Oppgave a Tegn klassehierarkiet for de 9 produkttypene som er beskrevet over. Inkluder også
INF Notater. Veronika Heimsbakk 10. juni 2012
INF1010 - Notater Veronika Heimsbakk [email protected] 10. juni 2012 1 Tilgangsnivåer 2 CompareTo Modifier Class Package Subclass World public Y Y Y Y protected Y Y Y N no modifier Y Y N N
INF1010 Repetisjonskurs i tråder
Eivind Storm Aarnæs [email protected] 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
UNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Prøveeksamen i: INF2440 Effektiv parallellprogrammering Prøveeksamensdag: 1. juni 2016 Tidspunkter: 09.00 16.00 Oppgavesettet er på: 4 sider
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
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
INF1010 Tråder J. Marit Nybakken Motivasjon. Å lage en tråd
J INF1010 Tråder J Marit Nybakken [email protected] Motivasjon Til nå har vi kun skrevet programmer der programmet bare var på ett sted i koden til enhver tid (bortsett fra når vi har drevet med GUI,
Konstruktører. Bruk av konstruktører når vi opererer med "enkle" klasser er ganske ukomplisert. Når vi skriver. skjer følgende:
Konstruktører Bruk av konstruktører når vi opererer med "enkle" klasser er ganske ukomplisert. Når vi skriver Punkt p = new Punkt(3,4); class Punkt { skjer følgende: int x, y; 1. Det settes av plass i
Sortering med tråder - Quicksort
Sortering med tråder - Quicksort Skisser til to programmer INF1010 våren 2016 Stein Gjessing Institutt for informatikk Universitetet i Oslo Sortering som tema, slikt som valg av sorteringsmetode, hastigheten
Eksamen INF1010 V2009 Del B prøveeksamen V2010 Vekt 60 %
Eksamen INF1010 V2009 Del B prøveeksamen V2010 Vekt 60 % Stein Gjessing Institutt for Informatikk Universitetet i Oslo 1 Oppgave 10 Tegning av datastrukturen (vekt 5% av del B) Tegn datastrukturen til
2 Om statiske variable/konstanter og statiske metoder.
Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.
UNIVERSITETET 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å
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
Prøveeksamen INF2440 v Arne Maus PSE, Inst. for informatikk
Prøveeksamen INF2440 v 2016 Arne Maus PSE, Inst. for informatikk 1 Oppgave 1 (10 poeng) Forklar hva som skjer ved en synkronisering: a) Når to tråder synkroniserer på samme synkroniseringsobjekt (f.eks
Repitisjonskurs. Arv, Subklasser og Grensesnitt
Repitisjonskurs Arv, Subklasser og Grensesnitt Subklasser Klasser i OO-programmering representerer typer av objekter som deler et sett med egenskaper. En subklasse har egenskapene til en klasse + ett sett
klassen Vin må få en ny variabel Vin neste alle personvariable (personpekere) i listeklassen må byttes til Vin
INF1010 forelesning Lenkelister II Dette skrivet inneholder en oversikt over det jeg planlegger å forelese på andre forlesning om lenkelister. Det inneholder stort sett programeksempler med kommentarer
Oppsummering. Kort gjennomgang av klasser etc ved å løse halvparten av eksamen Klasser. Datastrukturer. Interface Subklasser Klasseparametre
Oppsummering Kort gjennomgang av klasser etc ved å løse halvparten av eksamen 2012. Klasser Interface Subklasser Klasseparametre Datastrukturer Hva er problemet? Oppgaven Emballasjefabrikken Renpakk skal
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.
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:
Gjøre noe i hele treet = kalle på samme metode i alle objekten. Java datastruktur Klassestruktur
Godkjent oblig 1? Les e-post til din UiO-adresse Svar på e-post fra lablærer Ingen godkjenning før avholdt møte med lablærer Godkjentlistene brukes ikke til å informere om status for obligene Ta vare på
GUI («Graphical User Interface») del 2
GUI («Graphical User Interface») del 2 Interaksjon med brukeren Hendelsesdrevet programmering Tråder i GUI Et spill basert på klikkbare ruter Se også på Infoskrivet https://www.uio.no/studier/emner/matnat/
INF1000 Metoder. Marit Nybakken [email protected] 16. februar 2004
INF1000 Metoder Marit Nybakken [email protected] 16. februar 2004 Motivasjon Når man begynner å skrive store programmer, vil man fort oppleve at programmene blir uoversiktlige. Det blir vanskeligere
< T extends Comparable<T> > Indre klasser mm. «Det du bør ha hørt om før oblig 4»
< T extends Comparable > Indre klasser mm. «Det du bør ha hørt om før oblig 4» Strukturen i oblig 3 null null null null Personbeholder pl null null Person p "Adnan" [email protected] INF1010 21. februar
Eks 1: Binærtre Binærtretraversering Eks 2: Binærtre og stakk
Godkjent oblig 1? Les e-post til din UiO-adresse Svar på e-post fra lablærer Ingen godkjenning før avholdt møte med lablærer Godkjentlistene brukes ikke til å informere om status for obligene Ta vare på
GUI («Graphical User Interface») del 2
GUI («Graphical User Interface») del 2 Interaksjon med brukeren Hendelsesdrevet programmering Tråder i GUI Se også på Infoskrivet https://www.uio.no/studier/emner/matnat/ ifi/in1010/v18/gui/fx-intro-in1010.pdf
Synkronisering II. Kapittel 7. Betingelse oppfylt (0) liste. tråd-deskriptor. venteliste. tråd-deskriptor. tråd-deskriptor.
Kapittel 7 Synkronisering II etingelse oppfylt (0) liste venteliste tråd-deskriptor tråd-deskriptor tråd-deskriptor tråd-deskriptor Figur 7-1: Datastrukturen for en etingelse. are når oppfylt er 0 kan
2 Om statiske variable/konstanter og statiske metoder.
Gaustadbekkdalen, januar 22 Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Innledning Dette notatet beskriver noe av det som foregår i primærlageret når
Forklaring til programmet AbstraktKontoTest.java med tilhørende filer Konto.java, KredittKonto.java, SpareKonto.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 Forklaring til programmet AbstraktKontoTest.java med tilhørende
class Book { String title; } class Dictionary extends Book { int wordcount; } class CartoonAlbum extends Book { int stripcount; }
Arv Arv (eng: inheritance) er en mekanisme for å bygge videre på eksisterende klasser og regnes ofte som varemerket til objektorientert programmering. Når arv brukes riktig, kan den gjøre koden ryddigere
INF2440 Eksamen 2016 løsningsforslag. Arne Maus, PSE ifi, UiO
INF2440 Eksamen 2016 løsningsforslag Arne Maus, PSE ifi, UiO 1 Oppgave 1 (10 poeng) a) Beskriv meget kortfattet de to viktigste egenskapene ved tråder i et Java-program. 1. En tråd er sekvensielt programdel
Arv. Book book1 = new Book(); book1. title = "Sofies verden" class Book { String title; } class Dictiona ry extends Book {
Arv Arv (eng: inheritance) er en mekanisme for å bygge videre på eksisterende klasser og regnes ofte som varemerket til objektorientert programmering. Når arv brukes riktig, kan den gjøre koden ryddigere
Eksekveringsrekkefølgen (del 1) Oppgave 1. Eksekveringsrekkefølgen (del 2) Kommentar til oppgave 1. } // class Bolighus
// class Bygning Oppgave 1 System.out.println( Bolighus ); // class Bolighus Hva blir utskriften fra dette programmet? class Blokk extends Bolighus{ // class Blokk IN105subclassesII-1 Eksekveringsrekkefølgen
INF1010 Binære søketrær ++
INF1010 Binære søketrær ++ Programeksempler med insetting, gjenfinning av noder i et binært søketre samt eksempler på hvordan lage en liste av et binærtre. Hva må du kunne om binære søketrær i INF1010
UNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 6. juni 2006 Tid for eksamen: 1430 1730 Oppgavesettet er på 6 sider. Vedlegg: INF1010 Objektorientert programmering
Inf1010 oppgavesamling
Table of ontents Inf1010 oppgavesamling.. 1 Subklasser... 1 Grensesnitt.. 2 Rekursjon... 3 Datastrukturer... 3 GUI. 4 Sortering... 6 Tråder... 6 Inf1010 oppgavesamling Subklasser Klassehirarki for dyr
INF Våren 2017 Tråder del 1
INF1010 - Våren 2017 Tråder del 1 23. mars 2017 Stein Gjessing,, Universitetet i Oslo Horstmann kap 20.1 20.3 1 Maskin med 8 kjerner 2 Oversikt Hva er parallelle programmer? Hvorfor parallelle programmer?
Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister
Dagens tema Lister og generiske klasser, del I Array-er og ArrayList (Big Java 6.1 & 6.8) Ulike lagringsformer (Collection) i Java (Big Java 15.1) Klasser med typeparametre («generiske klasser») (Big Java
Tråder del 2 Våren Stein Gjessing Institutt for informatikk Universitetet i Oslo
Tråder del 2 Våren 2008 Stein Gjessing Institutt for informatikk Universitetet i Oslo Om parallellitet En beregning delt opp i parallell går fortere jo mer uavhengig delene er Amdahls lov: Totaltiden er
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
INF1000: Forelesning 7
INF1000: Forelesning 7 Klasser og objekter del 2 Konstruktører Static UML REPETISJON 2 Repetisjon Repetisjon forts. Verden består av objekter av ulike typer (klasser). Ofte er det mange objekter av en
INF Våren Li' repe$sjon om Tråder og GUI. Stein Gjessing, Ins$tu' for informa$kk, Universitetet i Oslo. Ins$tu' for informa$kk
INF1010 - Våren 2015 Li' repe$sjon om Tråder og GUI Stein Gjessing,, Universitetet i Oslo 1 GUI, tråder og hendelser Op-sys (Win, Linux,..) Ditt Program sin Event Dispatch Thread Hver ting brukeren gjør
Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister Videre
Dagens tema Lister og generiske klasser, del I Array-er og ArrayList (Big Java 6.1 & 6.8) Ulike lagringsformer (Collection) i Java (Big Java 15.1) Klasser med typeparametre («generiske klasser») (Big Java
INF2440, Uke 3, våren2015 Regler for parallelle programmer, mer om cache og Radix-algoritmen. Arne Maus OMS, Inst. for informatikk
INF2440, Uke 3, våren2015 Regler for parallelle programmer, mer om cache og Radix-algoritmen Arne Maus OMS, Inst. for informatikk 1 Hva har vi sett på i Uke2 I) Tre måter å avslutte tråder vi har startet.
INF1010 Rekursive metoder, binære søketrær. Algoritmer: Mer om rekursive kall mellom objekter Ny datastruktur: binært tre
INF1010 Rekursive metoder, binære søketrær Algoritmer: Mer om rekursive kall mellom objekter Ny datastruktur: binært tre public void skrivutmeg ( ) { System. out. println (navn + " er venn med " + minbestevennheter
Avdeling for ingeniørutdanning Institutt for teknologi
Avdeling for ingeniørutdanning Institutt for teknologi Oppgavetittel: Lab Fag(nr./navn): DOPS2021 - Operativsystemer Gruppemedlemmer: T. Alexander Lystad Faglærer: Karoline Moholth Dato: 15. oktober 2009
INF2440 Uke 7, våren2017. Arne Maus PSE, Inst. for informatikk
INF2440 Uke 7, våren2017 Arne Maus PSE, Inst. for informatikk 1 Hva så vi på i uke 6 1. Hva er raskest: Modell2 eller Modell3 kode? 2. Avslutning om matrisemultiplikasjon 1. Radvis (ikke kolonnevis) beregning
INF1000: Forelesning 4. Mer om arrayer Metoder
INF1000: Forelesning 4 Mer om arrayer Metoder MER OM ARRAYER 2 Array som en samling verdier Anta at vi ønsker å lagre en liste med navnene på alle INF1000-studentene: String[] studenter = new String[500];
UNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: 13. juni 2006 Tid for eksamen: 9.00 12.00 Oppgavesettet er på 5
Kapittel 8: Programutvikling
Kapittel 8: Programutvikling Redigert av: Khalid Azim Mughal ([email protected]) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk
Kap 19. Mer om parallelle programmer i Java og Kvikksort
Arne Maus, 5.april 2011: Kap 19. Mer om parallelle programmer i Java og Kvikksort Parallell programmering er vanskelig, og det er derfor utviklet flere synkroniseringsmåter og biblioteker for mer strukturert
INF våren 2017
INF1010 - våren 2017 Om Java Objekter og klasser Både for deg som kan og for deg som ikke kan Java Stein Gjessing Universitetet i Oslo Ny versjon etter forlesningen der tre meningsløse private modifikatorer
INF1000 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
INF1000: Forelesning 7. Konstruktører Static
INF1000: Forelesning 7 Klasser og objekter del 2 Konstruktører Static UML REPETISJON 2 Repetisjon Verden består av objekter av ulike typer (klasser). Ofte er det mange objekter av en bestemt type. Objekter
INF1010 Arv. Marit Nybakken [email protected] 2. februar 2004
INF1010 Arv Marit Nybakken [email protected] 2. februar 2004 Motivasjon Arv bruker vi så vi skal slippe å skrive oss i hjel. Når vi programmerer, prøver vi gjerne å modellere en del av verden ved hjelp
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
Side 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
TDT4100 Objektorientert programmering
Eksamensoppgave i TDT4100 Objektorientert programmering Torsdag 12. august 2010, kl. 09:00-13:00 Oppgaven er utarbeidet av faglærer Hallvard Trætteberg og kvalitetssikret av Svein Erik Bratsberg. Kontaktperson
UNIVERSITETET 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
Argumenter fra kommandolinjen
Argumenter fra kommandolinjen Denne veiledningen er laget for å vise hvordan man kan overføre argumenter fra kommandolinjen til et program. Hvordan transportere data fra en kommandolinje slik at dataene
Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program
Oversikt INF1000 Uke 1 time 2 Variable, enkle datatyper og tilordning Litt repetisjon Datamaskinen Programmeringsspråk Kompilering og kjøring av programmer Variabler, deklarasjoner og typer Tilordning
Seminaroppgaver IN1010, uke 2
Seminaroppgaver IN1010, uke 2 1.a: Skriv en klasse HeiVerden.java. Klassen skal inneholde en main- metode (se på notatet fra tidligere). Inne i main -metoden skal programmet først la brukeren oppgi en
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
Programmering 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
static int ant_steiner; //antall steiner static int teller2 = 0; //teller for printing til Thread^ murer; //murertråden
Øving 4 Thorstein Brekke Operativsystemer Oppgave 1 Kode for Murer: // Uke4oppgave1murer.cpp : main project file. #include "stdafx.h" using namespace System; using namespace Threading; using namespace
UNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1010 Prøveeksamen 2010 Eksamensdag: 26. mai 2010 Tid for eksamen: 00.00 06.00 Oppgavesettet er på 7 sider. Vedlegg: ingen Tillatte
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
Programmeringsspråket C Del 3
Programmeringsspråket C Del 3 Michael Welzl E-mail: [email protected] 29.08.13 inf1060 1 Dynamisk allokering Ofte trenger man å opprette objekter under kjøringen i tillegg til variablene. Standardfunksjonen
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 [email protected] INF1010 26. januar 2012 (uke 4) 2 class Eks01 { public
Program delegate. Lage et nytt prosjekt i Visual Studio
Program delegate Kommunikasjon mellom objekter er en utfordring i objektorientert programmering. Dette GUI eksempelet viser hvordan bruke en delegate til å gjøre metodekall i et annet objekt. Vi skal legge
UNIVERSITETET I OSLO
Side 1 UNIVERSITETET I OSLO Kandidatnr Det matematisk-naturvitenskapelige fakultet Eksamen i: PRØVEEKSAMEN INF1000 Eksamensdag: Prøveeksamen 22.11.2011 Tid for eksamen: 12:15-16:15 Oppgavesettet er på
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
INF2440 Effektiv parallellprogrammering Uke 1, våren Arne Maus PSE, Inst. for informatikk
INF2440 Effektiv parallellprogrammering Uke 1, våren 2016 Arne Maus PSE, Inst. for informatikk 1 Hva vi skal lære om i dette kurset: Lage parallelle programmer (algoritmer) som er: Riktige Parallelle programmer
