Werkcollegebundel Deel 1 Concurrency 8 oktober 2018, Gerard Tel, Niet verspreiden 1!.

Maat: px
Weergave met pagina beginnen:

Download "Werkcollegebundel Deel 1 Concurrency 8 oktober 2018, Gerard Tel, Niet verspreiden 1!."

Transcriptie

1 Werkcollegebundel Deel 1 Concurrency 8 oktober 2018, Gerard Tel, Niet verspreiden 1!. Deze bundel bevat een collectie toetsvragen over het eerste deel van Concurrency. Behalve dat goede antwoorden worden gegeven, worden ook de foute besproken, met korte uitleg waarom het niet klopt. Je kunt deze bundel gebruiken voor je toetsvoorbereiding, maar enige voorzichtigheid is geboden. Doordat de inhoud van Concurrency soms verandert, kunnen sommige opgaven minder relevant zijn of sommige onderwerpen onderbelicht zijn! De toetsen, met een duur van twee uur, zijn meestal genormeerd op 20 tot 25 punten. 1 Patterns 1. Beantwoord met Amdahls Regel: Een programma bestaat voor 80% uit parallelliseerbare code en wordt gedraaid op een quad-core. (a) Welke speedup wordt gehaald? (b) Om de executie verder te versnellen kunnen we kiezen tussen (1) het programma verbeteren zodat 90% parallelliseerbaar is; (2) meer cores bijschakelen. Hoeveel cores heb je bij optie (2) nodig om dezelfde speedup te halen als bij optie (1)? 2. Hardware: Een processor met vier fysieke cores doet zich naar het operating system voor als een processor met acht cores. (a) Welke technologie wordt hier beschreven? (b) Een zekere applicatie heeft een 20% hogere throughput op deze processor dan op een verder gelijkwaardige processor zonder de bedoelde technologie (dus met gewoon vier cores). Hoe valt deze snelheidswinst te verklaren? 3. Vectorizatie: Twee vormen van paralellisme zijn instruction level paralellism en thread level paralellism. (a) Wat is het verschil tussen beide vormen? (b) Wat is het verschil tussen een thread en een stream (ook wel lane)? 4. Parallellisme: Wat is het verschil tussen potential en mandatory concurrency? 5. Vectorizatie: In een simulatie wordt de volgende data gebruikt: class Particle, met de properties argb van type Vector4, en size, van type float. En array particles met instances van de Particle class. (a) Hoe wordt, in de context van vectorizatie, deze data layout genoemd? (b) Herstructureer de data layout zodat deze geschikt is voor vectorizatie. (Ga uit van 4-wide SIMD.) 6. Amdahl and friends: Een programma besteedt 5 seconden aan werk dat niet parallel uitgevoerd kan worden en 10 seconden aan werk dat wel parallel uitgevoerd kan worden. (a) Wat is volgens Amdahl s Law de maximaal haalbare versnelling van dit programma op een quadcore CPU? Laat hyperthreading buiten beschouwing. (b) Waarom kan dit volgens Gustafson en Barsis toch beter? (c) Welke informatie is nodig om met het work-span model een betere inschatting te maken van de te verwachten prestatie van een parallelle variant van het programma? 1 Op deze bundel geldt namelijk auteursrecht. Je mag het bestand bekijken en ook afdrukken, en iemand naar dit bestand verwijzen, maar niet het bestand of de afdruk aan iemand anders geven.

2 7. Hardware: (a) Wat is de relatie tussen speculative execution en branch prediction? (b) Wat is false sharing, en hoe beïnvloedt dit de performance van een parallel programma? 8. Worker Threads: Worker threads bieden betere performance en meer controle dan de generieke mechanismen van de Parallel Task Library. (a) Beschrijf wat work stealing is. (b) Hoe kunnen worker threads het gebruik van caches verbeteren? 9. Thread Parallellisme: Windows en Linux zijn voorbeelden van preemptive operating systems. Oude versies van Windows maakten gebruik van cooperative multitasking. (a) Wat is cooperative multitasking? (b) Wat is een context switch? (c) Wat is een logische core? 10. SIMD: Voor het efficient uitvoeren van code met behulp van SIMD instructies is het een goed idee om de gebruikte data om te zetten van AoS naar SoA. (a) Wat is het verschil tussen AoS en SoA? (b) Waarom is de SoA structuur beter voor SIMD code? 11. Moore: In de slides en in de artikelen van Russell Fish ( The Future of Computers ) wordt naast Moore s Law ook de gerelateerde Dennard scaling beschreven. (a) Leg uit wat Dennard scaling is. (b) Welk verschijnsel beschrijft de wet van Moore? Wees accuraat. (c) In tegenstelling tot Moore s law gaat Dennard scaling niet meer op. Waarom niet? 12. Caching: Caches dragen in belangrijke mate bij aan de performance van een processor. (a) Hoe? (b) Wat is het verschil tussen een inclusive en een exclusive cache design? (c) Wat is contention, en hoe draagt multi-threading hier aan bij? 13. GPGPU: Om code efficiënt op een GPU uit te voeren dient een algoritme data parallel te zijn, en het liefst embarrassingly parallel. (a) Wat is data-parallellisme? (b) Wanneer is een algoritme embarrassingly parallel? (c) Waarom is data-parallellisme nodig voor een GPU? 2 Multithreading 14. Assignments: In een situatie waar x is 0 en v is true, worden deze twee threads opgestart: Thread 1: Thread 2: x = 1; while (v) {}; v = false; y = x; Is het zeker dat de waarde van y na afloop 1 is wanneer (a) read/write atomicity geldt? Waarom? (b) dit wordt uitgevoerd in Java of C#? Waarom? (c) v als volatile wordt gedeclareerd? 15. Eigenschappen van methoden: (a) Wanneer zijn operaties atomair? (Boek: linearizable.) (b) Wanneer is een methode wachtvrij? (c) Wat wordt bedoeld met de aanname van fairness?

3 16. Interleavings: Bekijk alle interleavings van LOADA c ; LOADA c ; INCRA ; ADDA 2 ; STOREA c STOREA c (ADDA 2 is een instructie die 2 bij register A optelt.) Veronderstel dat de afzonderlijke instructies atomair (linearizable) zijn. In hoeveel interleavings wordt c uiteindelijk met 0, met 1, met 2 en met 3 opgehoogd? 17. Fair executie: In dit programma kijkt thread 1 steeds naar variabele i, die door thread 2 afwisselend op 0 en 1 wordt gezet. Ga uit van read/write atomicity; initieel is i=0 en s=true: Thread 1: Thread 2: t = 0 while (i==0) while (s) { t = t + 1 } { i = 1 - i } s = False print t (a) Beschrijf van dit programma een executie waarin thread 2 de waarde 2 print. (b) Beschrijf een oneindige executie die niet kan voorkomen als de scheduler fair is. (c) Beschrijf een oneindige executie die wel mogelijk is onder een fair scheduler. 18. Fair executie: In dit programma kijkt thread 1 steeds naar w, die door thread 2 afwisselend op true en false wordt gezet. Ga uit van read/write atomicity; initieel is w=s=true en t=0: Thread 1: Thread 2: while (w) while (s) { t = t + 1 } { w =!w } s = False print t Beschrijf een oneindige executie die mogelijk is onder een fair scheduler. 19. Fairness: In dit lusje zitten twee concurrente statements, die i op 0 en 1 zetten: int i = 0; while (i == 0) { parallel.invoke( { i=0; }, { i=1; } ); print(i); } (a) Laat zien dat er voor elke k N een executie is die eerst k nullen en dan een 1 print. (b) Geef de definitie van fair scheduling (c) Is bovenstaand programma terminerend onder de aanname van fair scheduling? Leg uit! 20. Safety of Liveness: Zeg van elk van deze uitspraken of ze een Safety of een Liveness eigenschap beschrijven en waarom (in 1 zin). (a) De relschoppers worden opgespoord, berecht en gestraft! (b) Asielaanvragen worden binnen zes maanden afgehandeld. (c) Als één of meer threads aan de operatie beginnen, zal tenminste één de operatie in eindige tijd kunnen voltooien. (d) Als een thread t 2 de ticket-keuze begint nadat thread t 1 de ticket-keuze heeft voltooid, ontvangt t 2 een hoger ticket dan t 1. (e) De scheduler voor threads t1, t2 en t3 is fair. 21. Interleavings: Hoeveel interleavings zijn er mogelijk bij het concurrent uitvoeren van: (a) een thread met twee instructies en een met ook twee instructies; (b) een thread met 7 instructies en een met 11 instructies; (c) een thread met 6, een thread met 7, en een thread met 9 instructies.

4 22. Safety of Liveness: Zeg van elk van deze uitspraken of ze een Safety of een Liveness eigenschap beschrijven en waarom (in 1 zin). (a) Berichten worden afgeleverd in dezelfde volgorde als waarin ze zijn verstuurd. (b) Als een bericht aan een niet-bestaand adres wordt verzonden, wordt binnen 1500 ms een foutmelding getoond. (c) Na klikken op LOAD wordt het bestand in de edit-buffer geladen. (d) Een krant die in de zon ligt, wordt geel. (e) De waarde van counter A is strikt stijgend. 23. Atomaire Queue: (a) Geef de definitie van atomaire operaties. (b) Geef een voorbeeld van drie operaties op een Queue (inclusief timing) die wel consistent zijn maar niet atomair. 24. Terminatie van Threads: Twee threads delen variabele s, die door thread 1 steeds wordt opgehoogd. Thread 0 leest s en termineert beide threads als s even is: Thread0 Thread1 s = 0; t = 0; b = True; while (s%2 == 1) while (b) { t++ } { s++ } b = False; print(t); (a) Wanneer is een methode wait-free? (b) Is het programma van Thread0 waitfree? Is dat van Thread1 wait-free? (c) Is het programma terminerend onder de aannamen van read-write atomicity en fairness? 25. Terminatie: Twee threads alterneren de waarde van hun flag, en termineren zodra ze de flag van de andere thread False zien. Veronderstel read/write atomicity en initieel is f1=f2=true: Thread 1: Thread 2: while (f2) while (f1) { f1 =!f1; } { f2 =!f2; } f1 = False; f2 = False; (a) Beschrijf een oneindige executie van deze code. (b) Is je executie fair? Leg uit! (c) Voldoet de code aan Terminatie als fairness wordt aangenomen? 3 Locking 26. Het TaS-lock: Met een enkel TaS-register kun je een multi-threaded lock maken. (a) Geef de code voor dit TaS-lock (lock en unlock methode). (b) Welke van deze eigenschappen heeft het TaS-lock niet: Mutal Exclusion, NoDeadlock, NoStarvation en leg uit waarom niet. (c) Welke instructie(s) in C# kun je gebruiken om de TaS-operatie te implementeren? 27. Fairness en TaS-lock: Het TaS-lock heeft als lock-methode het herhalen van de Test-and- Set operatie, tot het resultaat 0 wordt gekregen: while (L.TaS ==1) {}. (a) Voldoet het TaS-lock aan No Starvation als fairness niet wordt aangenomen? (b) Voldoet het TaS-lock aan No Starvation als fairness wel wordt aangenomen? (c) Voldoet het TaS-lock aan No Deadlock als fairness wel wordt aangenomen? 28. LockOne: Hier staan de lock en unlock van de LockOne klasse (voor thread i).

5 public void lock() public void unlock() { flag[i] = true; { flag[i] = false ; } while (flag[j]) {} } (a) Aan welke drie eisen moet een lock implementatie voldoen? (b) Welke van deze eisen is/zijn voor LockOne niet voldaan? Waarom? (c) Als je de twee regels in lock verwisselt, is dan het probleem opgelost? 29. LockTwo: Hier staan de lock en unlock van de LockTwo klasse (voor thread i: 0 of 1). public void lock() public void unlock() { victim = i; { } while (victim == i) { } } (a) Aan welke drie eisen moet een lock implementatie voldoen? (b) Welke van deze eisen is/zijn voor LockTwo niet voldaan? Waarom? (c) Als je de opdracht victim = i verplaats naar de unlock, is dan het probleem opgelost? 30. Lock typen: Voor locken kennen we een spin-lock en een blocking lock. (a) Leg uit, wat het verschil is tussen deze twee type locks. (b) In welke situaties is een spin-lock beter, en wanneer is een blocking lock beter? (c) Wanneer is er een voordeel van een TTaS-lock boven een TaS-lock? 31. Deadlocks: Geef een eenvoudig programma waarin elke lock voldoet aan de deadlock-freedomeigenschap, maar het toch voor kan komen dat het programma als geheel deadlockt. 32. Het Peterson Lock: Het verkrijgen van een lock (de lock()-methode voor thread i) gaat bij Petersons algoritme zo: 1. flag[i] = T; 2. vic = i; 3. while (flag[j] && vic == i) { } (a) Hoe luidt de unlock()? (b) Hoe luidt de No deadlock eis op een lock? (c) Waarom is het onmogelijk dat een thread die het lock wil, oneindig vaak door de andere thread wordt ingehaald? Is er een maximum op het aantal keren dat hij wordt ingehaald? 33. Bakery labels: In het Bakery algoritme kiest een thread i een label: l = 0; for (j=0; j<n; j++) if (label[j] > l) l = label[j]; label[i] = l+1 (a) Geef een voorbeeld waarin thread a eerder klaar is met kiezen dan thread b, maar toch een groter label krijgt. (b) Is het een probleem dat twee threads een gelijk label kunnen krijgen? Licht toe! 34. TaS-lock: Een TaS-lock beschermt kritieke code. (a) Hoeveel test-and-set bits zijn nodig om een lock te maken voor n threads? Geef de code. (b) Noem enkele nadelen van het TaS-lock? Welk nadeel wordt opgeheven door het TTaS-lock, en hoe? 4 Registers 35. Safe Integer: Van een Safe bit kun je een Regular bit maken met de methode van silent writes.

6 (a) Wanneer zal een Write operatie als silent uitgevoerd worden? (b) Is de methode van silent writes ook toe te passen om van een Safe Integer een regular Integer te maken? 36. Safe en Regular Bit: Bij het implementeren van registers kennen we een onderscheid tussen een safe register, een regular register en een atomic register. (a) Leg uit, waarom regular een sterkere eigenschap is dan safe. (b) Leg uit, waarom regular een zwakkere eigenschap is dan atomic. (c) Laat zien, hoe je met een safe bit, een regular bit kunt implementeren. 37. Register uit bit: Om een m-waardig register te implementeren uit bits gebruiken we een unaire representatie. De Write(x) set bit r[x], en reset de lagere bits. De Read bekijkt bits van laag naar hoog, en returnt de eerste x waarvoor r[x] true is. Deze constructie is behandeld op college. (a) Een karakteristieke eigenschap van registers is: dat een Write alle voorgaande toestanden van het register uitwist. In deze register-implementatie zijn oude toestanden echter nog zichtbaar als 1-en in de array. Heeft deze implementatie dan wel de karakteristieke registereigenschap? (b) Een programmeur vindt het mooier om, in een Write(x), ook de hogere bits te resetten (zodat na de operatie, precies één bit true is). Laat zien, dat dit tot een foute uitkomst bij Read leidt. 38. Atomaire en Regular Registers: Deze vraag gaat over Single Reader, Single Writer Registers. (a) Geef een voorbeeld van gedrag dat wel Regular is, maar niet Atomic. (b) Hoe kun je met een Regular register een Atomic register maken? 39. Register Implementaties: Voor het implementeren van wacht-vrije registers bestaan o.a. deze technieken: (A) Copying, (B) Silent Write, (C) Sequence Numbers, (D) Unary Representation. (a) Welke hiervan gebruik je om (i) van een Safe Bit een Regular Bit te maken; (ii) van een Regular Register een Atomic Register te maken; (iii) van een Regular Bit een Regular m-valued Register te maken? (b) Leg uit hoe de Silent Write werkt. (c) Kun je deze technieken combineren om met registers een TaS-instructie te implementeren? 40. Multivalued register: Je kunt een m-waardig regular register maken uit een array van m regular bits. De Writer schrijft waarde x door bit x op 1 te zetten en de lagere bits op 0, de reader zoekt vanaf positie 0 naar de eerste 1: Write(x): Read: r[x].write(1) for(i=0; i<m; i++) for (i=x-1; i>=0; i--) if (r[i].read == 1) r[i].write(0) return i (a) Laat zien dat de Reader kan falen wanneer de Writer ook de hogere bits op 0 zet (met een loopje for (i=x+1; i<m; i++) r[i].write(0)). (b) Is het gebouwde register ook atomic? Leg uit! 41. Multivalued register: Je kunt een m-waardig regular register maken uit een array van m regular bits. De Writer schrijft waarde x door bit x op 1 te zetten en de lagere bits op 0, de reader zoekt vanaf positie 0 naar de eerste 1: Write(x): Read:

7 r[x].write(1) for(i=0; i<m; i++) for (i=x-1; i>=0; i--) if (r[i].read == 1) return i; r[i].write(0) // A (a) Laat zien dat de Reader kan falen wanneer de Writer ook de hogere bits op 0 zet (met een loopje for (i=x+1; i<m; i++) r[i].write(0)). (b) Is het gebouwde register ook atomic? Leg uit! (c) Bobs compiler weigert de Read code wegens executiepaden zonder return. Daarom wil Bob als default op plek A een return... zetten; met welke waarde achter de return is de methode correct? 42. Technieken voor Register-Implementatie: Om sterke registers te implementeren kunnen deze technieken worden gebruikt: Silent Write, Unaire notatie, Serienummers. (a) Hoe werkt de Silent Write? (b) Welke techniek gebruikt men om van een regular bit naar een m-valued register te gaan? Welke techniek gebruikt men om van een Safe bit naar een Regular bit te gaan? 43. Multivalued register: Je kunt een 12-waardig regular register maken uit een array van 12 regular bits. De Writer schrijft waarde x door bit x op 1 te zetten en de lagere bits op 0, de reader zoekt vanaf positie 0 naar de eerste 1: Write(x): Read: r[x].write(1) for(i=0; i<12; i++) for (i=x-1; i>=0; i--) if (r[i].read == 1) r[i].write(0) return i (a) Stel dat de Writer al een Write(4) en daarna een Write(7) heeft afgerond, dat dan een Read begint, en terwijl die Read bezig is, begint de Writer aan een Write(5). Welke uitkomsten mag de Reader krijgen volgens de eis van Regular? (b) Otto zegt dat je de write(1) ook later kunt doen, dwz., de r[x].write(1) na de for-lus zetten. Laat door een voorbeeld zien dat het register dan niet Regular is. 5 Consensushierarchie 44. Consensus en Test-and-Set: Geef een wacht-vrije implementatie van 2-Consensus met een Test-and-Set. 45. Lock-free snapshot: Een snapshot-object heeft voor elke thread een cel. De cel kan atomair geschreven worden door de thread (update), en de combinatie van cellen kan atomair gelezen worden (scan). (a) Geef het algoritme van double collect om te komen tot een atomair snapshot. Waarom is het opgeleverde snapshot correct? (b) Waarom is de double collect methode niet wait-free? Kan het snapshot-object wait-free worden gebouwd? Hoe? 46. Valentie in Consensus-objecten: De executieboom van een consensus-object bevat configuraties en beschrijft welke configuraties elkaar kunnen opvolgen in een executie. (a) Waarom heeft een configuratie doorgaans meerdere opvolgers? (b) Wanneer is een configuratie univalent? (c) Kunnen van een bivalente configuratie alle opvolgers univalent zijn? bivalente configuratie alle opvolgers 1-valent zijn? Kunnen van een

8 47. Atomic Copy: Een CopyDog heeft als toestandsruimte een rij van waarden, en naast operaties write(i,x) (schrijf x in locatie i) en read(i) (geef waarde van locatie i), een operatie copy(i,j) die de waarde van locatie i kopieert naar j. Een CopyDog met twee locaties kan 2-Consensus implementeren. (a) In de propose(x) operatie zal thread i (0 of 1) precies eenmaal Arb.copy(i,1-i) uitvoeren. Hoe kun je de initiële waarde van Arb kiezen om ervoor te zorgen dat alleen de eerste copy-operatie iets aan de inhoud verandert? (b) Hoe kan een thread na het uitvoeren van zijn copy zien, welke thread als eerste de copy deed? (Uitleg!) (c) Geef een wachtvrij algoritme dat een CopyDog gebruikt en 2-Consensus implementeert. (d) Kan een CopyDog wachtvrij worden geïmplementeerd met registers? (e) Wat is het Consensusgetal van een CopyDog? 48. Atomic Copy: Een CopyDog geheugen bevat een rij van waarden, en heeft naast operaties write(i,x) (schrijf x in locatie i) en read(i) (geef waarde van locatie i), een operatie copy(i,j) die de waarde van locatie i atomair kopieert naar j. Een CopyDog met twee locaties kan 2-Consensus implementeren. (a) In de propose(x) operatie zal thread i (0 of 1) precies eenmaal Arb.copy(i,1-i) uitvoeren. Hoe kun je de initiële waarde van Arb kiezen om ervoor te zorgen dat alleen de eerste copy-operatie iets aan de inhoud verandert? (b) Geef een wachtvrij algoritme dat een CopyDog gebruikt en 2-Consensus implementeert. (c) Kan een CopyDog wachtvrij worden geïmplementeerd met registers? Motiveer! 49. Electie en Consensus: Een electie-object gebruik je als een bepaalde taak door precies één thread moet worden gedaan, maar je kunt niet van tevoren bepalen welke dat is. Het atomaire object heeft slechts één methode boolean elect() en garandeert: Als elect() één of meerdere keren wordt aangeroepen, wordt precies één keer true teruggegeven en verder false. (a) Toon aan, dat als aanroepen na elkaar plaatsvinden, het altijd de eerste aanroep is die true oplevert. (b) Laat zien, dat je met het electie-object consensus kunt implementeren voor twee threads. (c) Kan het ook voor drie threads? (d) Wat is het consensus-getal van het electie-object? 50. Consensus met Swapper: Een Swapper is een array-object dat je per cel kunt lezen en schrijven (read(i) en write(i,x)) en een methode swap(i,j) heeft die de inhoud van cellen i en j atomair verwisselt. Om consensus te bereiken tussen n threads gebruiken we een swapper met n + 1 cellen, en initieel een 0 in cellen 0 t/m n 1 en een 1 in cel n. (a) Bewijs: als elke thread i eenmaal swap(i,n) doet, verandert de toestand van de swapper alleen in de eerste aanroep. (b) Geef een wacht-vrije Consensus-implementatie met swapper. 51. Electie en Consensus: Een electie-object gebruik je om een thread te selecteren om een eenmalige taak uit te voeren. Het object heeft als methode boolean elect() en garandeert: Als elect() één of meerdere keren wordt aangeroepen, wordt precies één keer true teruggegeven en verder false. (a) Laat zien, dat je met het electie-object, consensus voor twee threads kunt implementeren. (b) Kan het ook voor drie threads? (c) Wat is het consensus-getal van het electie-object?

9 52. Electie en Consensus: Een electie-object gebruik je als een bepaalde taak door precies één thread moet worden gedaan, maar je kunt niet van tevoren bepalen welke dat is. Het atomaire object heeft slechts één methode boolean elect() en garandeert: Als elect() één of meerdere keren wordt aangeroepen, wordt precies één keer true teruggegeven en verder false. (a) Toon aan, dat als aanroepen na elkaar plaatsvinden, het altijd de eerste aanroep is die true oplevert. (b) Laat zien, dat je met het electie-object consensus kunt implementeren voor twee threads. (c) Kan het ook voor drie threads? (d) Wat is het consensus-getal van het electie-object? 53. Consensus Number: (a) Wat wordt bedoeld met het Consensus Number van een object? (b) Wat is het Consensus Number van (i) Het Snapshot Object; (ii) Een Register; (iii) Een Compare-and-Swap; (iv) de Test-And-Set? (c) Is het mogelijk om, uitgaande van alleen registers, een wachtvrije Stack te implementeren? Bewijs je antwoord! 54. Read en Increment: In haar softwareproject heeft Anneke behoefte aan een wachtvrij, atomair ticket object. Het heeft methode rinc (read-and-increment) die bij opeenvolgende aanroepen, opeenvolgende getallen teruggeeft. In haar vorige project heeft Anneke al een wachtvrij counter object gebouwd, met methoden increment en read. Wat is nodig om een wachtvrije ticket te bouwen met behulp van een wachtvrije counter? 55. Ticket met Maxer: In haar softwareproject heeft Anneke behoefte aan een wachtvrij, atomair ticket object (door meerdere threads te gebruiken). Het heeft methode rinc (read-andincrement) die bij meerdere aanroepen, opeenvolgende getallen teruggeeft. In haar vorige project heeft Anneke al een wachtvrij maxer object gebouwd, met methoden update(x) en curmax. De maxer houdt per thread de laatst met update ingevoerde x bij, en de methode curmax geeft atomair de hoogste huidige waarde. Kan het Ticket object met behulp van een Maxer (en registers) worden gebouwd? Leg uit! 56. Wisselgeheugen en Consensus: Valerie heeft een geheugenchip gemaakt (het wisselgeheugen) die je niet alleen per geheugenlocatie i atomair kunt lezen en schrijven (read(i) en write(i,x)), maar ook een instructie wissel(i,j) heeft die de inhoud van locaties i en j atomair verwisselt. Zij claimt dat haar product ConsensusGetal oneindig heeft. Voor consensus tussen threads 0 t/m n 1 stoppen we eerst een 0 in locaties 0 t/m n 1 en een 1 in plek n. (a) Bewijs: als elke thread i eenmaal wissel(i,n) doet, verandert de toestand van het geheugen alleen in de eerste aanroep. (b) Geef een wacht-vrije Consensus-implementatie voor n threads met wisselgeheugen. (c) Klopt de claim van Valerie?

Eerste Toets Concurrency 20 december 2018, , Educ-β.

Eerste Toets Concurrency 20 december 2018, , Educ-β. Eerste Toets Concurrency 20 december 2018, 11.00 13.00, Educ-β. Motiveer je antwoorden kort! Stel geen vragen over deze toets; als je een vraag niet duidelijk vindt, schrijf dan op hoe je de vraag interpreteert

Nadere informatie

Toetsbundel Deel 1 Concurrency 10 december 2015, Gerard Tel, Niet verspreiden 1!.

Toetsbundel Deel 1 Concurrency 10 december 2015, Gerard Tel, Niet verspreiden 1!. Toetsbundel Deel 1 Concurrency 10 december 2015, Gerard Tel, Niet verspreiden 1!. Deze bundel bevat een collectie toetsvragen over het eerste deel van Concurrency. Je kunt deze bundel gebruiken voor je

Nadere informatie

Gelijktijdigheid: Wederzijdse Uitsluiting & Synchronisatie Concurrency: Mutual Exclusion & Synchonization (5e ed: 5.1-5.2, Appendix A.

Gelijktijdigheid: Wederzijdse Uitsluiting & Synchronisatie Concurrency: Mutual Exclusion & Synchonization (5e ed: 5.1-5.2, Appendix A. Gelijktijdigheid: Wederzijdse Uitsluiting & Synchronisatie Concurrency: Mutual Exclusion & Synchonization (5e ed: 51-52, Appendix A1) Processes zijn meestal niet onafhankelijk Bijvoorbeeld: 2 processen

Nadere informatie

Concurrency. Gerard Tel / Jacco Bikker - november 2015 januari Welkom!

Concurrency. Gerard Tel / Jacco Bikker - november 2015 januari Welkom! Concurrency Gerard Tel / Jacco Bikker - november 2015 januari 2016 Welkom! Agenda: Wat vooraf ging Taken en Data Hardware Performance Theorie Concurrency college 3 Hardware 3 Previously in Concurrency

Nadere informatie

College 13: Patterns (2)

College 13: Patterns (2) Concurrency Gerard Tel / Jacco Bikker - november 2016 februari 2017 College 13: Patterns (2) Welkom! genda: Collective Operations Reduce Scan Stencil Recurrence Concurrency college 13 Patterns (2) 3 Collectives

Nadere informatie

Tentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft

Tentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft Tentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Dit

Nadere informatie

Gedistribueerd programmeren

Gedistribueerd programmeren Gedistribueerd programmeren Gedistribueerd programmeren Collegedictaat, september 2007 Gerard Tel Email: gerard@cs.uu.nl Instituut voor Informatica en Informatiekunde Universiteit Utrecht Opmaak: Gerard

Nadere informatie

Computerarchitectuur. Terugblik / discussie / oefenopgaven

Computerarchitectuur. Terugblik / discussie / oefenopgaven Computerarchitectuur Terugblik / discussie / oefenopgaven Kristian Rietveld http://ca.liacs.nl/ Trends & Performance Voorkennis We bouwden een 4-bit microprocessor bij Digitale Technieken. Bij computerarchitectuur

Nadere informatie

TI-2720 Operating System Concepten. 6 november 2012, uur. docent: H.J. Sips. Dit is een tentamen met 9 open vragen

TI-2720 Operating System Concepten. 6 november 2012, uur. docent: H.J. Sips. Dit is een tentamen met 9 open vragen TECHNISCHE UNIVERSITEIT DELFT Faculteit Elektrotechniek, Wiskunde en Informatica Sectie Parallelle en Gedistribueerde Systemen TUDelft TI-2720 Operating System Concepten 6 november 2012, 14.00-17.00 uur.

Nadere informatie

Computerarchitectuur. H&P Ch 5. Thread-Level Parallelism

Computerarchitectuur. H&P Ch 5. Thread-Level Parallelism Computerarchitectuur H&P Ch 5. Thread-Level Parallelism Kristian Rietveld http://ca.liacs.nl/ Thread-Level Parallelism In het geval van thread-level parallelism (TLP) gaan we uit van meerdere threads.

Nadere informatie

Toetsbundel Deel 2 Concurrency 8 oktober 2018, Gerard Tel, Niet verspreiden 1!.

Toetsbundel Deel 2 Concurrency 8 oktober 2018, Gerard Tel, Niet verspreiden 1!. Toetsbundel Deel 2 Concurrency 8 oktober 2018, Gerard Tel, Niet verspreiden 1!. Deze bundel bevat een collectie toetsvragen over het tweede deel van Concurrency. Behalve dat goede antwoorden worden gegeven,

Nadere informatie

Centrale begrippen hoofdstuk 3. Waarom multiprogramming? Vandaag. processen proces state: running, ready, blocked,... Vragen??

Centrale begrippen hoofdstuk 3. Waarom multiprogramming? Vandaag. processen proces state: running, ready, blocked,... Vragen?? Vragen?? Vandaag Hoofdstuk 4: threads (tentamenstof : 4.1 t/m 4.2) Kleine Opgaven 4.1 (niet alleen ja of nee, ook waarom!) en 4.4 inleveren maandag Centrale begrippen hoofdstuk 3 processen proces state:

Nadere informatie

college 2: Introductie

college 2: Introductie Concurrency Gerard Tel / Jacco Bikker - november 2017 februari 2018 college 2: Welkom! Agenda: Concepten en patronen Multi-threading in C# Concurrency college 2 3 Concurrency college 2 4 Jacco Bikker j.bikker@uu.nl

Nadere informatie

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren HOOFDSTUK 3 3.1 Stapsgewijs programmeren De programmeertalen die tot nu toe genoemd zijn, zijn imperatieve of procedurele programmeertalen. is het stapsgewijs in code omschrijven wat een programma moet

Nadere informatie

Multi-core systemen. door Alexander Melchior

Multi-core systemen. door Alexander Melchior Multi-core systemen Multi-cpu & Multi-core Multi cpu & Multi core door Alexander Melchior Toevoeging aan GDP Overdragen Capita Selecta Waarom? Een stukje geschiedenis 2005: Introductie eerste consumenten

Nadere informatie

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, 14.00-15.30, Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Dit tentamen bestaat uit twee delen. Deel 1 (14.00-14.45, gesloten

Nadere informatie

Semaforen. Semaforen p. 1/2

Semaforen. Semaforen p. 1/2 Semaforen 2008 Semaforen p. 1/2 Vorige Keer mbv mutual exclusion kritieke sectie (cs) 1. software : Dekker s, Peterson s algoritme 2. hardware: uniprocessor machine: disable interrupts 3. hardware: multiprocessor

Nadere informatie

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren Universiteit van Amsterdam FNWI Voorbeeld van tussentoets Inleiding programmeren Opgave 1: Wat is de uitvoer van dit programma? public class Opgave { static int i = 0 ; static int j = 1 ; int i = 1 ; int

Nadere informatie

Programmeren in Java les 3

Programmeren in Java les 3 4 september 2015 Deze les korte herhaling vorige week loops methodes Variabelen Soorten variabelen in Java: integer: een geheel getal, bijv. 1,2,3,4 float: een gebroken getal, bijv. 3.1415 double: een

Nadere informatie

Tentamen Objectgeorienteerd Programmeren TI februari Afdeling ST Faculteit EWI TU Delft

Tentamen Objectgeorienteerd Programmeren TI februari Afdeling ST Faculteit EWI TU Delft I ' Tentamen Objectgeorienteerd Programmeren TI 1200 1 februari 2012 9.00-12.00 Afdeling ST Faculteit EWI TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Dit

Nadere informatie

Vakgroep CW KAHO Sint-Lieven

Vakgroep CW KAHO Sint-Lieven Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen tony.wauters@kahosl.be en tim.vermeulen@kahosl.be

Nadere informatie

Uitwerking oefententamen Computerarchitectuur December 2016

Uitwerking oefententamen Computerarchitectuur December 2016 Uitwerking oefententamen Computerarchitectuur December 2016 I.a. De overall CPI kan worden berekend met de formule n IC i CPI Instruction count CPI i voor de ratio vullen we telkens de geven frequentie

Nadere informatie

Een eenvoudig algoritme om permutaties te genereren

Een eenvoudig algoritme om permutaties te genereren Een eenvoudig algoritme om permutaties te genereren Daniel von Asmuth Inleiding Er zijn in de vakliteratuur verschillende manieren beschreven om alle permutaties van een verzameling te generen. De methoden

Nadere informatie

Hoofdstuk 3: Processen: Beschrijving en Besturing. Wat is een proces? Waarom processen? Wat moet het OS ervoor doen? Is het OS zelf een proces?

Hoofdstuk 3: Processen: Beschrijving en Besturing. Wat is een proces? Waarom processen? Wat moet het OS ervoor doen? Is het OS zelf een proces? Hoofdstuk 3: Processen: Beschrijving en Besturing Wat is een proces? Waarom processen? Wat moet het OS ervoor doen? Is het OS zelf een proces? 1 Wat is een proces? Een proces is een programma in uitvoering

Nadere informatie

College 4: Mechanismen

College 4: Mechanismen Concurrency Gerard Tel / Jacco Bikker - november 2017 februari 2018 College 4: Mechanismen Welkom! Agenda: Wat vooraf ging Hardware Electronic components are submerged into a bath of dielectric heat transfer

Nadere informatie

Variabelen en statements in ActionScript

Variabelen en statements in ActionScript Ontwikkelen van Apps voor ios en Android Variabelen en statements in ActionScript 6.1 Inleiding Als we het in de informatica over variabelen hebben, bedoelen we een stukje in het geheugen van de computer

Nadere informatie

Stacks and queues. Hoofdstuk 6

Stacks and queues. Hoofdstuk 6 Hoofdstuk 6 Stacks and queues I N T R O D U C T I E In dit hoofdstuk worden drie datastructuren stack, queue en deque behandeld. Om deze datastructuren te implementeren, worden onder andere arrays en linked

Nadere informatie

Gedistribueerd Programmeren - Samenvatting

Gedistribueerd Programmeren - Samenvatting Gedistribueerd Programmeren - Samenvatting Geertjan van Vliet Disclaimer: Aan deze teksten kunnen geen rechten ontleend worden. Bepaalde passages zijn de visie van de auteur en niet die van de docent.

Nadere informatie

1=2720/2725 Operating System Concepten

1=2720/2725 Operating System Concepten TECHNISCHE UNIVERSITEIT DELFT Faculteit EWI, Afdeling SCT 1 1 1=2720/2725 Operating System Concepten ^ november 2013, 14.00-17.00 uur. docent: H.J. Sips Dit is een tentamen met 9 open vragen Opgave Punten

Nadere informatie

Take-home Tentamen Protocolvericatie. Universiteit van Amsterdam. 27 Maart 1994

Take-home Tentamen Protocolvericatie. Universiteit van Amsterdam. 27 Maart 1994 Take-home Tentamen Protocolvericatie Vakgroep Programmatuur Universiteit van Amsterdam 27 Maart 1994 Algemene Opmerkingen Dit tentamen omvat zes reguliere opgaven plus een bonusopgave. Opgaves 1, 2, 5

Nadere informatie

Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld

Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld Afdeling ST Faculteit EWI TU Delft Bij dit tentamen mag u gebruik maken van: Barnes, Object-Oriented Programming with Java en de Notitie Algoritmiek

Nadere informatie

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk.

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk. HOOFDSTUK 3 3.1 Stapsgewijs programmeren In de vorige hoofdstukken zijn programmeertalen beschreven die imperatief zijn. is het stapsgewijs in code omschrijven wat een programma moet doen, net als een

Nadere informatie

Java virtuele machine JVM

Java virtuele machine JVM Implementatie Java Java virtuele machine JVM Java programma vertaald naar byte code instructies Byte code instructies uitgevoerd door JVM JVM is processor architectuur kan in principe in hardware worden

Nadere informatie

Universiteit Leiden Opleiding Informatica

Universiteit Leiden Opleiding Informatica Internal Report 2010 08 February 2011 Universiteit Leiden Opleiding Informatica Multithreading voor iedereen Jaron Viëtor BACHELOR THESIS Leiden Institute of Advanced Computer Science (LIACS) Leiden University

Nadere informatie

Computerarchitectuur en netwerken Toets 1 4 okt

Computerarchitectuur en netwerken Toets 1 4 okt 11.00 13.00 De open vragen moet je beantwoorden op tentamenpapier. De multiple-choice antwoorden moet je op het vragenblad invullen in de rechtervakjes en dat blad inleveren. Schrijf je naam, studentnummer

Nadere informatie

Tentamen Computersystemen

Tentamen Computersystemen Tentamen Computersystemen baicosy6 2e jaar bachelor AI, 2e semester 21 oktober 213, 9u-11u OMHP D.9 vraag 1 Van een Single Cycle Harvard machine hebben de componenten de volgende propagation delay time:

Nadere informatie

TI-2720 Operating System Concepten. 21 januari 2013, uur. docent: H.J. Sips. Dit is een tentamen met 9 open vragen

TI-2720 Operating System Concepten. 21 januari 2013, uur. docent: H.J. Sips. Dit is een tentamen met 9 open vragen TECHNISCHE UNIVERSITEIT DELFT Faculteit EWI, Afdeling SCT Sectie Parallelle en Gedistribueerde Systemen Ty Delft TI-2720 Operating System Concepten 21 januari 2013, 14.00-17.00 uur. docent: H.J. Sips Dit

Nadere informatie

Het begrip 'Proces' Proces-toestand

Het begrip 'Proces' Proces-toestand Het begrip 'Proces' Een proces is de uitvoering van een programma Bij een proces hoort een programma (de code) Program Counter (Instructiewijzer) stack data (data sectie) twee of meer processen kunnen

Nadere informatie

Examen Geavanceerde Computerarchitectuur

Examen Geavanceerde Computerarchitectuur Examen Geavanceerde Computerarchitectuur Academiejaar 2006-2007 Dinsdag 16 januari 2007, 14u00 Prof. dr. ir. L. Eeckhout Richting: Enkele opmerkingen vooraf: Vul eerst en vooral op ieder blad Uw naam en

Nadere informatie

17 Operaties op bits. 17.1 Bitoperatoren en bitexpressies

17 Operaties op bits. 17.1 Bitoperatoren en bitexpressies 17 Operaties op bits In hoofdstuk 1 is gezegd dat C oorspronkelijk bedoeld was als systeemprogrammeertaal om het besturingssysteem UNIX te implementeren. Bij dit soort toepassingen komt het voor dat afzonderlijke

Nadere informatie

Programmeren in Java 3

Programmeren in Java 3 7 maart 2010 Deze les Zelf componenten maken Concurrency (multithreading): werken met threads levenscyclus van een thread starten tijdelijk onderbreken wachten stoppen Zelf componenten maken Je eigen component:

Nadere informatie

Datastructuren: stapels, rijen en binaire bomen

Datastructuren: stapels, rijen en binaire bomen Programmeermethoden Datastructuren: stapels, rijen en binaire bomen week 12: 23 27 november 2015 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Inleiding In de informatica worden Abstracte DataTypen (ADT s)

Nadere informatie

informatica. hardware. overzicht. moederbord CPU RAM GPU architectuur (vwo)

informatica. hardware. overzicht. moederbord CPU RAM GPU architectuur (vwo) informatica hardware overzicht moederbord CPU RAM GPU architectuur (vwo) 1 moederbord basis van de computer componenten & aansluitingen chipset Northbridge (snel) Southbridge ("traag") bussen FSB/HTB moederbord

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 13 december 2013 Terugblik Fibonacci public class Fibonacci { public static void main(string[] args) { // Print het vijfde Fibonaccigetal System.out.println(fib(5));

Nadere informatie

Deeltentamen Grammatica s en ontleden 22 december 2005

Deeltentamen Grammatica s en ontleden 22 december 2005 Tentamen Grammatica s en ontleden 22 december 2005 1 Deeltentamen Grammatica s en ontleden 22 december 2005 Let op: opgave 1 t/m 4 tellen voor (slechts) 5 punten mee, opgave 5 voor maar liefst 50 punten,

Nadere informatie

Real-Time Systems (RTSYST)

Real-Time Systems (RTSYST) Real-Time Systems (RTSYST) Week 3 C++ concurrent programmeren C++ heeft sinds C++11 een standaard library voor concurrent programmeren. Alternatieve libraries: Boost Thread library http://www.boost.org/

Nadere informatie

Aanvullende toets Gameprogrammeren (INFOB1GP) Woensdag 24 december 2014, uur

Aanvullende toets Gameprogrammeren (INFOB1GP) Woensdag 24 december 2014, uur Aanvullende toets Gameprogrammeren (INFOB1GP) Woensdag 24 december 2014, 13.30-15.30 uur Naam: Studentnummer: Het tentamen bestaat uit 4 opgaven. Opgaven 1 levert 8 punten op, opgave 2 levert 12 punten

Nadere informatie

voegtoe: eerst methode bevat gebruiken, alleen toevoegen als bevat() false is

voegtoe: eerst methode bevat gebruiken, alleen toevoegen als bevat() false is PROEF-Tentamen Inleiding programmeren (IN1608WI), X januari 2010, 9.00-11.00, Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Open boek tentamen: bij het tentamen mag alleen gebruik worden gemaakt

Nadere informatie

Tentamen Imperatief Programmeren

Tentamen Imperatief Programmeren Tentamen Imperatief Programmeren Maandag 22 oktober 2001 Toelichting Dit is een open boek tentamen, d.w.z. het cursusboek mag gebruikt worden. N.B.: Het tentamen is individueel: voor het maken van de opgaven

Nadere informatie

Toetsbundel Deel 2 Concurrency 25 oktober 2017, Gerard Tel, Niet verspreiden 1!.

Toetsbundel Deel 2 Concurrency 25 oktober 2017, Gerard Tel, Niet verspreiden 1!. Toetsbundel Deel 2 Concurrency 25 oktober 2017, Gerard Tel, Niet verspreiden 1!. Deze bundel bevat een collectie toetsvragen over het tweede deel van Concurrency. Behalve dat goede antwoorden worden gegeven,

Nadere informatie

Syntax- (compile), runtime- en logische fouten Binaire operatoren

Syntax- (compile), runtime- en logische fouten Binaire operatoren Inhoud Syntax- (compile), runtime- en logische fouten Binaire operatoren Operaties op numerieke datatypen Evaluatie van expressies, bindingssterkte Assignment operaties en short-cut operatoren Controle

Nadere informatie

Concurrency. Gerard Tel / Jacco Bikker - november 2017 februari College 8: Patronen. Welkom!

Concurrency. Gerard Tel / Jacco Bikker - november 2017 februari College 8: Patronen. Welkom! Concurrency Gerard Tel / Jacco Bikker - november 2017 februari 2018 College 8: Patronen Welkom! Previously in Concurrency Blur embarrassingly parallel ST prefix-sum loop dependency Blur embarrassingly

Nadere informatie

Digitale technieken Deeltoets II

Digitale technieken Deeltoets II Digitale technieken Deeltoets II André Deutz 11 januari, 2008 De opgaven kunnen uiteraard in een willekeurige volgorde gemaakt worden geef heel duidelijk aan op welke opgave een antwoord gegegeven wordt.

Nadere informatie

Computerarchitectuur en netwerken. Memory management Assembler programmering

Computerarchitectuur en netwerken. Memory management Assembler programmering Computerarchitectuur en netwerken 2 Memory management Assembler programmering Lennart Herlaar 10 september 2018 Inhoud 1 Protectie: Hoe het O.S. programma s tegen elkaar kan beschermen modes memory management

Nadere informatie

Tweede Toets Concurrency 2 februari 2017, , Educ-β.

Tweede Toets Concurrency 2 februari 2017, , Educ-β. Tweede Toets Concurrency 2 februari 2017, 8.30 10.30, Educ-β. Motiveer je antwoorden kort! Zet je mobiel uit. Stel geen vragen over deze toets; als je een vraag niet duidelijk vindt, schrijf dan op hoe

Nadere informatie

Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur

Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur Uitwerking Aanvullend tentamen Imperatief programmeren Woensdag 24 december 2014, 13.30 15.30 uur 1. deze opgave telt voor 30% van het totaal. Schrijf een compleet programma, dat door de gebruiker vanaf

Nadere informatie

Zelftest Inleiding Programmeren

Zelftest Inleiding Programmeren Zelftest Inleiding Programmeren Document: n0824test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST INLEIDING PROGRAMMEREN Deze

Nadere informatie

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax, Deel 1: Arduino kennismaking Wat is een microcontroller, structuur van een programma, syntax, Wat is een microcontroller Wat is een microcontroller? Microcontroller = kleine dedicated computer. - Beperkt

Nadere informatie

1 Inleiding in Functioneel Programmeren

1 Inleiding in Functioneel Programmeren 1 Inleiding in Functioneel Programmeren door Elroy Jumpertz 1.1 Inleiding Aangezien Informatica een populaire minor is voor wiskundestudenten, leek het mij nuttig om een stukje te schrijven over een onderwerp

Nadere informatie

Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI

Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI Vrijdag 22 januari 2010 Toelichting Dit is een open boek tentamen. Communicatie en het gebruik van hulpmiddelen zijn niet toegestaan.

Nadere informatie

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica Deel-tentamen Operating Systemen (2IN05) op vrijdag 5 oktober 2007, 9.00-10.30 uur. Het tentamen bestaat uit twee delen die apart worden

Nadere informatie

http://www.liacs.nl/home/kosters/java/

http://www.liacs.nl/home/kosters/java/ sheets Programmeren 1 Java college 2, Walter Kosters De sheets zijn gebaseerd op de hoofdstukken 2 tot en met 6 van: D. Bell en M. Parr, Java voor studenten, Prentice Hall, 2002 http://www.liacs.nl/home/kosters/java/

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 11 december 2015 Ingebouwde datastructuren Meer boomstructuren Access specifiers Gebruikersinvoer Codestijl Packages SAT-solver Ingebouwde datastructuren Ingebouwde

Nadere informatie

Programmeren A. Genetisch Programma voor het Partitie Probleem. begeleiding:

Programmeren A. Genetisch Programma voor het Partitie Probleem. begeleiding: Programmeren A Genetisch Programma voor het Partitie Probleem begeleiding: Inleiding Het Partitie Probleem luidt als volgt: Gegeven een verzameling van n positieve integers, vindt twee disjuncte deelverzamelingen

Nadere informatie

Java Les 3 Theorie Herhaal structuren

Java Les 3 Theorie Herhaal structuren Java Les 3 Theorie Herhaal structuren Algemeen Een herhaal structuur een is programmeertechniek waarbij bepaalde Java instructies worden herhaald net zo lang tot een bepaalde voorwaarde is bereikt. Een

Nadere informatie

Programmeren in Java 3

Programmeren in Java 3 26 september 2007 Deze les korte herhaling vorige les Unified Modelling Language notatie van een class afleiding pointers abstracte classes polymorphisme dubieuze(?) constructies interfaces Meer over class

Nadere informatie

Programmeren (1) Examen NAAM:

Programmeren (1) Examen NAAM: Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien) en geef zowel klad als net af. Bij heel wat vragen moet je zelf Java-code schrijven. Hou dit kort en bondig. Je hoeft

Nadere informatie

TENTAMEN Programmeren 1 VOORBEELDUITWERKING

TENTAMEN Programmeren 1 VOORBEELDUITWERKING TENTAMEN Programmeren 1 vakcode: 213500 datum: 10 juli 2004 tijd: 9:00-12:30 uur VOORBEELDUITWERKING Algemeen Bij dit tentamen mag gebruik worden gemaakt van het boek van Niño/Hosch, en van de handleiding

Nadere informatie

Zelftest Programmeren in Java

Zelftest Programmeren in Java Zelftest Programmeren in Java Document: n0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST PROGRAMMEREN IN JAVA Deze test

Nadere informatie

Voorkennis: C, basiskennis microprocessoren (bij voorkeur ARM7 processor)

Voorkennis: C, basiskennis microprocessoren (bij voorkeur ARM7 processor) Real Time Operating Systems (RTOS) Voorkennis: C, basiskennis microprocessoren (bij voorkeur ARM7 processor) Kennis nodig voor: Operating systems Niveau: inleidend Diplomavoorwaarde: bachelor, schakelprogramma

Nadere informatie

BEGINNER JAVA Inhoudsopgave

BEGINNER JAVA Inhoudsopgave Inhoudsopgave 6 Configuratie Hallo wereld! Praten met de gebruiker Munt opgooien Voorwaarden Lussen......6 Configuratie Met deze Sushi kaarten ga je een simpel spel maken met één van de meest populaire

Nadere informatie

Datastructuren: stapels, rijen en binaire bomen

Datastructuren: stapels, rijen en binaire bomen Programmeermethoden : stapels, rijen en binaire bomen Walter Kosters week 12: 26 30 november 2018 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 en Vierde programmeeropgave Othello programmeren we als volgt:

Nadere informatie

Algoritmisch Denken: Dodo s Bit Parity

Algoritmisch Denken: Dodo s Bit Parity Algoritmisch Denken: Dodo s Opdrachtomschrijving: Jouw opdracht, als je deze accepteert, is om Mimi (een Dodo) te leren een bit parity fout te ontdekken en te herstellen. Leerdoelen: Ik kan een correct

Nadere informatie

Computervaardigheden. Universiteit Antwerpen. Computervaardigheden en Programmatie. Grafieken en Rapporten 1. Inhoud. Wat is scripting?

Computervaardigheden. Universiteit Antwerpen. Computervaardigheden en Programmatie. Grafieken en Rapporten 1. Inhoud. Wat is scripting? Inhoud Computervaardigheden Hoofdstuk 4 Scripting (Let op: dit is enkel voor studenten Biologie.) Dit hoofdstuk bekijkt heel kort de basis van scripting. - Opstellen van functies. - Conditionele code.

Nadere informatie

Real-Time Software (RTSOF) EVMINX9 Week 2

Real-Time Software (RTSOF) EVMINX9 Week 2 Real-Time Software (RTSOF) EVMINX9 Week 2 C++ Threads C++ heeft (nog) geen standaard library voor concurrent programmeren. Boost Thread library http://www.boost.org/ Intel Threading Building Blocks (TBB)

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 6 december 2013 Terugblik Programma en geheugen Opdrachten Variabelen Methoden Objecten Klasse Programma en geheugen Opdrachten Variabelen zijn gegroepeerd in

Nadere informatie

1 Aanvulling cosy deeltijd

1 Aanvulling cosy deeltijd 1 Aanvulling cosy deeltijd 1.1 Multiprocessor versus multicomputer Het kenmerk van een multiprocessor is dat meer CPU hetzelfde geheugen delen. Voordeel van deze aanpak is het relatief eenvoudige programmeermodel.

Nadere informatie

Proeftentamen in1211 Computersystemen I (NB de onderstreepte opgaven zijn geschikt voor de tussentoets)

Proeftentamen in1211 Computersystemen I (NB de onderstreepte opgaven zijn geschikt voor de tussentoets) TECHNISCHE UNIVERSITEIT DELFT Faculteit Informatietechnologie en Systemen Afdeling ISA Basiseenheid PGS Proeftentamen in1211 Computersystemen I (NB de onderstreepte opgaven zijn geschikt voor de tussentoets)

Nadere informatie

Let op dat de scoping regels gerespecteerd blijven; het volgende voorbeeld mag geen fout melden.

Let op dat de scoping regels gerespecteerd blijven; het volgende voorbeeld mag geen fout melden. Vrije Universiteit Brussel Faculteit Wetenschappen Vakgroep Computerwetenschappen Academiejaar 2009 2010: tweede examenzittijd Interpretatie van Computerprogrammaʼs I schriftelijke test Voorafgaandelijk:

Nadere informatie

Javascript oefenblad 1

Javascript oefenblad 1 Leer de basis van Javascript. Javascript oefenblad 1 Niels van Velzen Javascript oefenblad 1 Pagina 2 Inleiding Javascript is niet altijd even makkelijk. Vooral aan het begin is het even wennen hoe de

Nadere informatie

Opdracht 4: Overzichtelijker en generieker

Opdracht 4: Overzichtelijker en generieker Opdracht 4: Overzichtelijker en generieker Algoritmisch Denken en Gestructureerd Programmeren in Greenfoot c 2015 Renske Smetsers-Weeda & Sjaak Smetsers Op dit werk is een creative commons licentie van

Nadere informatie

Informatie over. 5VWO DT51: JavaLogo. Casper Bezemer. Toetsweek 1 13 oktober 2016

Informatie over. 5VWO DT51: JavaLogo. Casper Bezemer. Toetsweek 1 13 oktober 2016 Informatie over 5VWO DT51: JavaLogo Casper Bezemer Toetsweek 1 13 oktober 2016 1 Informatie Voor toets DT51 wordt jou gevraagd Java(Logo) programma s te schrijven. De eerste opdracht is een Krimpfiguur,

Nadere informatie

recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie

recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie Hoofdstuk 5 Recursion I N T R O D U C T I E Veel methoden die we op een datastructuur aan kunnen roepen, zullen op een recursieve wijze geïmplementeerd worden. Recursie is een techniek waarbij een vraagstuk

Nadere informatie

Beter, Sneller, Mooier. Processoren 12 januari 2015

Beter, Sneller, Mooier. Processoren 12 januari 2015 Beter, Sneller, Mooier Processoren 12 januari 2015 Beter! Sneller! Krachtigere CPU: maak instructies die meer doen Snellere CPU: pipeline, out-of-order execution Sneller RAM: cache meer mogelijkheden...

Nadere informatie

Genetische algoritmen in Java met JGAP

Genetische algoritmen in Java met JGAP Genetische algoritmen in Java met JGAP Inleiding JGAP, uitgesproken als "jee-gep", is een framework voor het implementeren van genetische algoritmen en het gebruik ervan in Java. Genetische algoritmen

Nadere informatie

Tentamen Object Georiënteerd Programmeren TI1206 29 oktober 2014, 9.00-11.00 Afdeling SCT, Faculteit EWI, TU Delft

Tentamen Object Georiënteerd Programmeren TI1206 29 oktober 2014, 9.00-11.00 Afdeling SCT, Faculteit EWI, TU Delft Tentamen Object Georiënteerd Programmeren TI1206 29 oktober 2014, 9.00-11.00 Afdeling SCT, Faculteit EWI, TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Digitale

Nadere informatie

Aanvullende toets Gameprogrammeren Woensdag 5 januari 2011, uur

Aanvullende toets Gameprogrammeren Woensdag 5 januari 2011, uur Dit tentamen is in elektronische vorm beschikbaar gemaakt door de TBC van A Eskwadraat. A Eskwadraat kan niet aansprakelijk worden gesteld voor de gevolgen van eventuele fouten in dit tentamen. Aanvullende

Nadere informatie

DIAGNOSTISCHE TOETS Softwaresystemen UITWERKING

DIAGNOSTISCHE TOETS Softwaresystemen UITWERKING DIAGNOSTISCHE TOETS Softwaresystemen datum: Donderdag van Week 7 UITWERKING Deze diagnostische toets bevat vragen over excepties en concurrency. Beantwoord de vragen zo goed mogelijk in 30 minuten Bespreek

Nadere informatie

Derde deeltentamen Gameprogrammeren Vrijdag 7 november 2014, uur

Derde deeltentamen Gameprogrammeren Vrijdag 7 november 2014, uur Naam: Derde deeltentamen Gameprogrammeren Vrijdag 7 november 2014, 11.00-13.00 uur Studentnummer: Het tentamen bestaat uit 3 opgaven. Opgaven 1 levert 20 punten op, opgave 2 levert 10 punten op, en opgave

Nadere informatie

Recursion. Introductie 37. Leerkern 37. Terugkoppeling 40. Uitwerking van de opgaven 40

Recursion. Introductie 37. Leerkern 37. Terugkoppeling 40. Uitwerking van de opgaven 40 Recursion Introductie 37 Leerkern 37 5.1 Foundations of recursion 37 5.2 Recursive analysis 37 5.3 Applications of recursion 38 Terugkoppeling 40 Uitwerking van de opgaven 40 Hoofdstuk 5 Recursion I N

Nadere informatie

Programmeermethoden NA. Week 3: Controlestructuren

Programmeermethoden NA. Week 3: Controlestructuren Programmeermethoden NA Week 3: Controlestructuren Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Inleveren opdracht 1 Lever digitaal sxxxxxxx-syyyyyyy-opdr1.py

Nadere informatie

Een korte samenvatting van enkele FORTRAN opdrachten

Een korte samenvatting van enkele FORTRAN opdrachten Een korte samenvatting van enkele FORTRAN opdrachten Inhoud 1 Introductie 3 2 De structuur van een FORTRAN programma 3 3 Datatypen, variabelen en declaraties 3 4 Expressies-volgorde van uitwerking 4 5

Nadere informatie

Elfde college algoritmiek. 18 mei Algoritme van Dijkstra, Heap, Heapify & Heapsort

Elfde college algoritmiek. 18 mei Algoritme van Dijkstra, Heap, Heapify & Heapsort Algoritmiek 018/Algoritme van Dijkstra Elfde college algoritmiek 18 mei 018 Algoritme van Dijkstra, Heap, Heapify & Heapsort 1 Algoritmiek 018/Algoritme van Dijkstra Uit college 10: Voorb. -1- A B C D

Nadere informatie

Lab Webdesign: Javascript 3 maart 2008

Lab Webdesign: Javascript 3 maart 2008 H5: OPERATORS In dit hoofdstuk zullen we het hebben over de operators (of ook wel: operatoren) in JavaScript waarmee allerlei rekenkundige en logische bewerkingen kunnen worden uitgevoerd. Daarbij zullen

Nadere informatie

Tentamen in2705 Software Engineering

Tentamen in2705 Software Engineering Tentamen in2705 Software Engineering Voorbeeld (bijna tweemaal te groot) U mag meenemen naar dit tentamen: Lethbridge, afdrukken PPT slides, afdrukken handouts. 1. De TU wil een nieuw systeem ontwikkelen

Nadere informatie

oefening JavaScript - antwoorden

oefening JavaScript - antwoorden oefening JavaScript - antwoorden De antwoorden op deze opgaven zijn meestal wat aan de brede kant voor een Word document. Het is daarom handig om ze in Notepad++ te kopiëren en ze dan te bekijken. opgave

Nadere informatie

Opgaven Binair Zoeken en Invarianten Datastructuren, 4 mei 2016, Werkgroep.

Opgaven Binair Zoeken en Invarianten Datastructuren, 4 mei 2016, Werkgroep. Opgaven Binair Zoeken en Invarianten Datastructuren, 4 mei 2016, Werkgroep. Gebruik deze opgaven, naast die uit het boek, om de stof te oefenen op het werkcollege. Cijfer: Op een toets krijg je meestal

Nadere informatie

Uitwerkingen derde deeltentamen Gameprogrammeren Vrijdag 6 november 2015, uur

Uitwerkingen derde deeltentamen Gameprogrammeren Vrijdag 6 november 2015, uur Uitwerkingen derde deeltentamen Gameprogrammeren Vrijdag 6 november 2015, 11.00-13.00 uur 1. Deze opgave bestaat uit een aantal deelvragen. Houd het antwoord kort: één of twee zinnen per onderdeel kan

Nadere informatie

ling van die eigenschap binnen het model geldt. In het bijzonder bij het wiskundig modelleren van een programma kan een eigenschap met wiskundige zeke

ling van die eigenschap binnen het model geldt. In het bijzonder bij het wiskundig modelleren van een programma kan een eigenschap met wiskundige zeke De Nederlandse samenvatting van een proefschrift is bij uitstek het onderdeel van het proefschrift dat door familie en vrienden wordt gelezen. Voor hen wil ik deze samenvatting dan ook schrijven als een

Nadere informatie

Computerarchitectuur. App. B. Review of Memory Hierarchy

Computerarchitectuur. App. B. Review of Memory Hierarchy Computerarchitectuur App. B. Review of Memory Hierarchy Kristian Rietveld http://ca.liacs.nl/ Caching De memory wall is een zeer groot probleem dat vraagt om oplossingen. De gebruikelijke oplossing is

Nadere informatie