Realtidssystem. - Dödläge - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 5
|
|
- Anders Abrahamsson
- för 5 år sedan
- Visningar:
Transkript
1 Realtidssystem - Dödläge - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp Föreläsning 5 Kursens innehåll motsvarar tidigare omgångar under beteckning EDA698 Stora delar baserad på: Föreläsningsmaterial EDA040 (Klas Nilsson, Mathias Haage) samt EDA698 (Mats Lilja) 1
2 Innehåll Dödläge Hold-wait Resource allocation graphs (Resursallokeringsgrafer) 2
3 Deadlock - dödläge För att få en anställning behövs ett personnummer För att få ett personnummer behövs ett uppehållstillstånd För att få uppehållstillstånd behövs en anställning 3
4 Deadlock - dödläge 4
5 Deadlock - dödläge Om det blir en cirkel i villkoren, eller snarare väntandet på att villkoren uppfylls, hamnar systemet i ett dödläge (deadlock) Om det är teoretiskt möjligt att aktörer (trådar, bilar, personer) måste vänta på varandra i en cirkel, finns det en risk för dödläge (deadlock risk) 4
6 Dödläge - definition och bakgrund 5
7 Dödläge - definition och bakgrund Ömsesidig uteslutning betyder att en tråd kan vara försenad (blockerad) pga 5
8 Dödläge - definition och bakgrund Ömsesidig uteslutning betyder att en tråd kan vara försenad (blockerad) pga En tråd får inte komma in i en kritisk sekvens (av en delad resurs) om den är upptagen av en annan tråd 5
9 Dödläge - definition och bakgrund Ömsesidig uteslutning betyder att en tråd kan vara försenad (blockerad) pga En tråd får inte komma in i en kritisk sekvens (av en delad resurs) om den är upptagen av en annan tråd För att systemet ( och all data) ska vara konsistent, för att beräkningar och resultat ska vara förutsägbara och för effektivitetens skull, kan tillgång till en sådan resurs inte bli avbruten, eller utsättas för en sk roll-back ( bakåt-behandling ) 5
10 Dödläge - definition och bakgrund Ömsesidig uteslutning betyder att en tråd kan vara försenad (blockerad) pga En tråd får inte komma in i en kritisk sekvens (av en delad resurs) om den är upptagen av en annan tråd För att systemet ( och all data) ska vara konsistent, för att beräkningar och resultat ska vara förutsägbara och för effektivitetens skull, kan tillgång till en sådan resurs inte bli avbruten, eller utsättas för en sk roll-back ( bakåt-behandling ) Vi har alltså ingen resource preemption (inget lov för avbrott på resurser annat än -OBS skillnaden! - beräkningstid, dvs processorn, som hanteras med preemptive scheduling - avbrytbar schemaläggning.) 5
11 Dödläge - definition och bakgrund Ömsesidig uteslutning betyder att en tråd kan vara försenad (blockerad) pga En tråd får inte komma in i en kritisk sekvens (av en delad resurs) om den är upptagen av en annan tråd För att systemet ( och all data) ska vara konsistent, för att beräkningar och resultat ska vara förutsägbara och för effektivitetens skull, kan tillgång till en sådan resurs inte bli avbruten, eller utsättas för en sk roll-back ( bakåt-behandling ) Vi har alltså ingen resource preemption (inget lov för avbrott på resurser annat än -OBS skillnaden! - beräkningstid, dvs processorn, som hanteras med preemptive scheduling - avbrytbar schemaläggning.) Om blockeringen inte tar slut, kan man konstatera ett dödläge (deadlock). 5
12 Dödläge - definition och bakgrund Ömsesidig uteslutning betyder att en tråd kan vara försenad (blockerad) pga En tråd får inte komma in i en kritisk sekvens (av en delad resurs) om den är upptagen av en annan tråd För att systemet ( och all data) ska vara konsistent, för att beräkningar och resultat ska vara förutsägbara och för effektivitetens skull, kan tillgång till en sådan resurs inte bli avbruten, eller utsättas för en sk roll-back ( bakåt-behandling ) Vi har alltså ingen resource preemption (inget lov för avbrott på resurser annat än -OBS skillnaden! - beräkningstid, dvs processorn, som hanteras med preemptive scheduling - avbrytbar schemaläggning.) Om blockeringen inte tar slut, kan man konstatera ett dödläge (deadlock). Wikipedia säger: Deadlock refers to a specific condition when two or more processes are each waiting for the other to release a resource, or more than two processes are waiting in a circular chain. 5
13 Dödläge med semaforer Två trådar vill komma åt två resurser och hamnar i ett speciellt läge (som kan bli dödläge), nämligen i ett hold - wait state T1 res 1 res 2 T2 take take take take
14 Dödläge med semaforer, kod-exempel T1 T2 T1 T2... S2.take(); S1.take();... S1.give(); S2.give();... S1.take(); S2.take();... S2.give(); S1.give(); S2.take(); S1.take(); S1.take(); S2.take(); blocked blocked 7
15 Dödläge med semaforer, kod-exempel T1 T2 T1 T2... S2.take(); S1.take();... S1.give(); S2.give();... S1.take(); S2.take();... S2.give(); S1.give(); S2.take(); S1.take(); S1.take(); S2.take(); blocked blocked Ett dödläge kan uppstå om en tråd utför take och blir sen avbruten av schemaläggaren (context switch, kontextbyte, trådbyte). 7
16 Dödläge med monitor, kod-exempel T1 T2 M1... M1 m1; m1.op1(); M2 m2; m2.op1();... T1 M2 T2 class M1 { M2 m2; synchronized void op1() { m2.op2(); } class M2 { M1 m1; synchronized void op1() { m1.op2(); } } synchronized void op2() { wait(); } } synchronized void op2() { wait(); } 8
17 Färdiga lösningar (?) 9
18 Färdiga lösningar (?) Som så ofta finns det programmeringsspråk eller -verktyg som tvingar programmeraren att bygga säkra system 9
19 Färdiga lösningar (?) Som så ofta finns det programmeringsspråk eller -verktyg som tvingar programmeraren att bygga säkra system Concurrent Pascal (Hansen, 1979) är ett sådant språk som använder enbart monitorer för ömsesidig uteslutning och tillåter inga referenser framåt, från monitor till monitor. 9
20 Färdiga lösningar (?) Som så ofta finns det programmeringsspråk eller -verktyg som tvingar programmeraren att bygga säkra system Concurrent Pascal (Hansen, 1979) är ett sådant språk som använder enbart monitorer för ömsesidig uteslutning och tillåter inga referenser framåt, från monitor till monitor. Fördelen är såklart att man undviker problem, Concurrent Pascal påstås göra dödläge omöjligt... 9
21 Färdiga lösningar (?) Som så ofta finns det programmeringsspråk eller -verktyg som tvingar programmeraren att bygga säkra system Concurrent Pascal (Hansen, 1979) är ett sådant språk som använder enbart monitorer för ömsesidig uteslutning och tillåter inga referenser framåt, från monitor till monitor. Fördelen är såklart att man undviker problem, Concurrent Pascal påstås göra dödläge omöjligt nackdelen är dock att man förlorar flexibilitet och att det kan kosta mycket (resurser, beräkningstid, etc). 9
22 Färdiga lösningar (?) Som så ofta finns det programmeringsspråk eller -verktyg som tvingar programmeraren att bygga säkra system Concurrent Pascal (Hansen, 1979) är ett sådant språk som använder enbart monitorer för ömsesidig uteslutning och tillåter inga referenser framåt, från monitor till monitor. Fördelen är såklart att man undviker problem, Concurrent Pascal påstås göra dödläge omöjligt nackdelen är dock att man förlorar flexibilitet och att det kan kosta mycket (resurser, beräkningstid, etc). Dessutom kan man faktiskt fortfarande bygga ett dödläge med en egen enkel resurshantering med monitorer utan framåt-referenser: 9
23 Färdiga lösningar (?) Som så ofta finns det programmeringsspråk eller -verktyg som tvingar programmeraren att bygga säkra system Concurrent Pascal (Hansen, 1979) är ett sådant språk som använder enbart monitorer för ömsesidig uteslutning och tillåter inga referenser framåt, från monitor till monitor. Fördelen är såklart att man undviker problem, Concurrent Pascal påstås göra dödläge omöjligt nackdelen är dock att man förlorar flexibilitet och att det kan kosta mycket (resurser, beräkningstid, etc). Dessutom kan man faktiskt fortfarande bygga ett dödläge med en egen enkel resurshantering med monitorer utan framåt-referenser: class R { boolean occupied = false; } synchronized void request() { while( occupied) wait(); occupied = true; } synchronized void release() { occupied = false; notify(); } R R1, R2; class P1 extends Thread {... R1.request(); R2.request();... } class P2 extends Thread {... R2.request(); R1.request();... } 9
24 Krav för dödläge (Peterson / Silberschatz) 10
25 Krav för dödläge (Peterson / Silberschatz) Följande punkter måste vara uppfyllda för att det ska bli dödläge: 10
26 Krav för dödläge (Peterson / Silberschatz) Följande punkter måste vara uppfyllda för att det ska bli dödläge: 1. Ömsesidig uteslutning - enbart en tråd åt gången kan komma åt en resurs. 10
27 Krav för dödläge (Peterson / Silberschatz) Följande punkter måste vara uppfyllda för att det ska bli dödläge: 1. Ömsesidig uteslutning - enbart en tråd åt gången kan komma åt en resurs. 2. Hold and Wait (hålla och vänta) - en tråd kan reservera (ta) en resurs och vänta sedan på en annan 10
28 Krav för dödläge (Peterson / Silberschatz) Följande punkter måste vara uppfyllda för att det ska bli dödläge: 1. Ömsesidig uteslutning - enbart en tråd åt gången kan komma åt en resurs. 2. Hold and Wait (hålla och vänta) - en tråd kan reservera (ta) en resurs och vänta sedan på en annan 3. Ingen resource-preemption (avbrott under resursnyttjande) - en tråd kan inte tvingas att lämna en resurs när den väl har kommit in 10
29 Krav för dödläge (Peterson / Silberschatz) Följande punkter måste vara uppfyllda för att det ska bli dödläge: 1. Ömsesidig uteslutning - enbart en tråd åt gången kan komma åt en resurs. 2. Hold and Wait (hålla och vänta) - en tråd kan reservera (ta) en resurs och vänta sedan på en annan 3. Ingen resource-preemption (avbrott under resursnyttjande) - en tråd kan inte tvingas att lämna en resurs när den väl har kommit in 4. Cirkulärt vänteläge - när det finns en cirkel i tråd-resurs-beroenden 10
30 Krav för dödläge (Peterson / Silberschatz) Följande punkter måste vara uppfyllda för att det ska bli dödläge: 1. Ömsesidig uteslutning - enbart en tråd åt gången kan komma åt en resurs. 2. Hold and Wait (hålla och vänta) - en tråd kan reservera (ta) en resurs och vänta sedan på en annan 3. Ingen resource-preemption (avbrott under resursnyttjande) - en tråd kan inte tvingas att lämna en resurs när den väl har kommit in 4. Cirkulärt vänteläge - när det finns en cirkel i tråd-resurs-beroenden För Java - monitorer gäller följande: 10
31 Krav för dödläge (Peterson / Silberschatz) Följande punkter måste vara uppfyllda för att det ska bli dödläge: 1. Ömsesidig uteslutning - enbart en tråd åt gången kan komma åt en resurs. 2. Hold and Wait (hålla och vänta) - en tråd kan reservera (ta) en resurs och vänta sedan på en annan 3. Ingen resource-preemption (avbrott under resursnyttjande) - en tråd kan inte tvingas att lämna en resurs när den väl har kommit in 4. Cirkulärt vänteläge - när det finns en cirkel i tråd-resurs-beroenden För Java - monitorer gäller följande: 1. Monitor - enbart en tråd kan komma in, ömsesidig uteslutning är uppfylld 10
32 Krav för dödläge (Peterson / Silberschatz) Följande punkter måste vara uppfyllda för att det ska bli dödläge: 1. Ömsesidig uteslutning - enbart en tråd åt gången kan komma åt en resurs. 2. Hold and Wait (hålla och vänta) - en tråd kan reservera (ta) en resurs och vänta sedan på en annan 3. Ingen resource-preemption (avbrott under resursnyttjande) - en tråd kan inte tvingas att lämna en resurs när den väl har kommit in 4. Cirkulärt vänteläge - när det finns en cirkel i tråd-resurs-beroenden För Java - monitorer gäller följande: 1. Monitor - enbart en tråd kan komma in, ömsesidig uteslutning är uppfylld 2. Anrop av en metod i en annan monitor inifrån en monitor-metod är möjligt 10
33 Krav för dödläge (Peterson / Silberschatz) Följande punkter måste vara uppfyllda för att det ska bli dödläge: 1. Ömsesidig uteslutning - enbart en tråd åt gången kan komma åt en resurs. 2. Hold and Wait (hålla och vänta) - en tråd kan reservera (ta) en resurs och vänta sedan på en annan 3. Ingen resource-preemption (avbrott under resursnyttjande) - en tråd kan inte tvingas att lämna en resurs när den väl har kommit in 4. Cirkulärt vänteläge - när det finns en cirkel i tråd-resurs-beroenden För Java - monitorer gäller följande: 1. Monitor - enbart en tråd kan komma in, ömsesidig uteslutning är uppfylld 2. Anrop av en metod i en annan monitor inifrån en monitor-metod är möjligt 3. En monitor friges enbart om en tråd lämnar den tillfälligt (wait()) eller lämnar efter avslutad jobb, ingen resource-preemption, därmed kan det bli dödläge 10
34 Krav för dödläge (Peterson / Silberschatz) Följande punkter måste vara uppfyllda för att det ska bli dödläge: 1. Ömsesidig uteslutning - enbart en tråd åt gången kan komma åt en resurs. 2. Hold and Wait (hålla och vänta) - en tråd kan reservera (ta) en resurs och vänta sedan på en annan 3. Ingen resource-preemption (avbrott under resursnyttjande) - en tråd kan inte tvingas att lämna en resurs när den väl har kommit in 4. Cirkulärt vänteläge - när det finns en cirkel i tråd-resurs-beroenden För Java - monitorer gäller följande: 1. Monitor - enbart en tråd kan komma in, ömsesidig uteslutning är uppfylld 2. Anrop av en metod i en annan monitor inifrån en monitor-metod är möjligt 3. En monitor friges enbart om en tråd lämnar den tillfälligt (wait()) eller lämnar efter avslutad jobb, ingen resource-preemption, därmed kan det bli dödläge 4. Cirkulärt vänteläge är det som man måste åtgärda själv, allt annat KAN man inte ändra 10
35 Dining philosophers - en klassiker... Philosopher while( true) { think(); preproto(); eat(); postproto(); } preproto() = take fork(s) postproto() = give fork(s) 11
36 Resursallokeringsgrafer 12
37 Resursallokeringsgrafer Ett verktyg för att upptäcka cirkulära hold-wait situationer, och för att förstå, vilka trådar och resurser kan inblandas i ett dödläge, 12
38 Resursallokeringsgrafer Ett verktyg för att upptäcka cirkulära hold-wait situationer, och för att förstå, vilka trådar och resurser kan inblandas i ett dödläge, 1. Rita resurserna (monitorer, semaforer...) 12
39 Resursallokeringsgrafer Ett verktyg för att upptäcka cirkulära hold-wait situationer, och för att förstå, vilka trådar och resurser kan inblandas i ett dödläge, 1. Rita resurserna (monitorer, semaforer...) 2. Rita alla hold-wait situationer. Pil från en upptagen resurs till en markör för tråden som håller i resursen (kan bli flera markörer för en tråd, en för varje hold-wait) och pil från trådmarkör till resursen den väntar på. 12
40 Resursallokeringsgrafer Ett verktyg för att upptäcka cirkulära hold-wait situationer, och för att förstå, vilka trådar och resurser kan inblandas i ett dödläge, 1. Rita resurserna (monitorer, semaforer...) 2. Rita alla hold-wait situationer. Pil från en upptagen resurs till en markör för tråden som håller i resursen (kan bli flera markörer för en tråd, en för varje hold-wait) och pil från trådmarkör till resursen den väntar på. 3. Cirkel i ritningen? Då är det risk för dödläge. Hold-wait förbindelserna i cirkeln visar hur många och vilka trådar kan orsaka ett dödläge. 12
41 Resursallokeringsgrafer Ett verktyg för att upptäcka cirkulära hold-wait situationer, och för att förstå, vilka trådar och resurser kan inblandas i ett dödläge, 1. Rita resurserna (monitorer, semaforer...) 2. Rita alla hold-wait situationer. Pil från en upptagen resurs till en markör för tråden som håller i resursen (kan bli flera markörer för en tråd, en för varje hold-wait) och pil från trådmarkör till resursen den väntar på. 3. Cirkel i ritningen? Då är det risk för dödläge. Hold-wait förbindelserna i cirkeln visar hur många och vilka trådar kan orsaka ett dödläge. 12
42 Resursallokeringsgrafer, exempel T1... A.take(); B.take(); C.take();... C.give(); B.give(); A.give(); T2... D.take(); C.take(); B.take();... B.give(); C.give(); D.give(); 13
43 Resursallokeringsgrafer, exempel T1... A.take(); B.take(); C.take();... C.give(); B.give(); A.give(); T2... D.take(); C.take(); B.take();... B.give(); C.give(); D.give(); Ett dödläge kan uppstå om T1 lyckas komma till B.take() och blir sen avbruten av T2, som då lyckas komma till C.take() och börjar vänta på B (som är upptagen av T1). När då T1 får exekvera igen, väntar den i sin tur på C (som är upptagen av T2). 13
44 Dödläge i cirkel - tåg på räls E F D A C B 14
45 Dödläge i cirkel - tåg på räls E F D A C B Även i system där ordningen av semafor.take()-anropen är samma för alla trådar, kan det bli problem (se programmet!) 14
46 Dödläge - svält - livelock 15
47 Deadlock (dödläge) Dödläge - svält - livelock 15
48 Deadlock (dödläge) Dödläge - svält - livelock 1. När flera trådar försöker komma åt samma resurs måste en av de lyckas någon gång - annars har vi ett dödläge. 15
49 Deadlock (dödläge) Dödläge - svält - livelock 1. När flera trådar försöker komma åt samma resurs måste en av de lyckas någon gång - annars har vi ett dödläge. 2. Ifall att ordningen av resursallokering är olyckligt gjort, eller antalet trådar går över en gräns, kan det bli dödläge, dvs ingen tråd lyckas exekvera eller få tillgång till resurserna den behöver. 15
50 Deadlock (dödläge) Dödläge - svält - livelock 1. När flera trådar försöker komma åt samma resurs måste en av de lyckas någon gång - annars har vi ett dödläge. 2. Ifall att ordningen av resursallokering är olyckligt gjort, eller antalet trådar går över en gräns, kan det bli dödläge, dvs ingen tråd lyckas exekvera eller få tillgång till resurserna den behöver. Starvation (svält) 15
51 Deadlock (dödläge) Dödläge - svält - livelock 1. När flera trådar försöker komma åt samma resurs måste en av de lyckas någon gång - annars har vi ett dödläge. 2. Ifall att ordningen av resursallokering är olyckligt gjort, eller antalet trådar går över en gräns, kan det bli dödläge, dvs ingen tråd lyckas exekvera eller få tillgång till resurserna den behöver. Starvation (svält) 1. Om en tråd vill ha en resurs så måste den lyckas någon gång för att inte hamna i svält-läge 15
52 Deadlock (dödläge) Dödläge - svält - livelock 1. När flera trådar försöker komma åt samma resurs måste en av de lyckas någon gång - annars har vi ett dödläge. 2. Ifall att ordningen av resursallokering är olyckligt gjort, eller antalet trådar går över en gräns, kan det bli dödläge, dvs ingen tråd lyckas exekvera eller få tillgång till resurserna den behöver. Starvation (svält) 1. Om en tråd vill ha en resurs så måste den lyckas någon gång för att inte hamna i svält-läge 2. Vi accepterar att det kan bli svält för mindre prioriterade aktiviteter, så att det som är viktigt kan utföras (jfr buffer-exemplet, föreläsning 3). 15
53 Deadlock (dödläge) Dödläge - svält - livelock 1. När flera trådar försöker komma åt samma resurs måste en av de lyckas någon gång - annars har vi ett dödläge. 2. Ifall att ordningen av resursallokering är olyckligt gjort, eller antalet trådar går över en gräns, kan det bli dödläge, dvs ingen tråd lyckas exekvera eller få tillgång till resurserna den behöver. Starvation (svält) 1. Om en tråd vill ha en resurs så måste den lyckas någon gång för att inte hamna i svält-läge 2. Vi accepterar att det kan bli svält för mindre prioriterade aktiviteter, så att det som är viktigt kan utföras (jfr buffer-exemplet, föreläsning 3). Livelock (levande låsning) 15
54 Deadlock (dödläge) Dödläge - svält - livelock 1. När flera trådar försöker komma åt samma resurs måste en av de lyckas någon gång - annars har vi ett dödläge. 2. Ifall att ordningen av resursallokering är olyckligt gjort, eller antalet trådar går över en gräns, kan det bli dödläge, dvs ingen tråd lyckas exekvera eller få tillgång till resurserna den behöver. Starvation (svält) 1. Om en tråd vill ha en resurs så måste den lyckas någon gång för att inte hamna i svält-läge 2. Vi accepterar att det kan bli svält för mindre prioriterade aktiviteter, så att det som är viktigt kan utföras (jfr buffer-exemplet, föreläsning 3). Livelock (levande låsning) 1. Om flera trådar försöker komma åt samma resurs(er) men träda tillbaka hela tiden innan de lyckas få tillgång till allt de behöver, hamnar man i ett slags zombie -läge; trådarna är vid liv, men gör ingen nytta. 15
55 Deadlock (dödläge) Dödläge - svält - livelock 1. När flera trådar försöker komma åt samma resurs måste en av de lyckas någon gång - annars har vi ett dödläge. 2. Ifall att ordningen av resursallokering är olyckligt gjort, eller antalet trådar går över en gräns, kan det bli dödläge, dvs ingen tråd lyckas exekvera eller få tillgång till resurserna den behöver. Starvation (svält) 1. Om en tråd vill ha en resurs så måste den lyckas någon gång för att inte hamna i svält-läge 2. Vi accepterar att det kan bli svält för mindre prioriterade aktiviteter, så att det som är viktigt kan utföras (jfr buffer-exemplet, föreläsning 3). Livelock (levande låsning) 1. Om flera trådar försöker komma åt samma resurs(er) men träda tillbaka hela tiden innan de lyckas få tillgång till allt de behöver, hamnar man i ett slags zombie -läge; trådarna är vid liv, men gör ingen nytta. 2. Utifrån ser det ut som dödläge, men kollar man upp det, är trådarna aktiva, fast det händer ingenting 15
56 Övning 3 Resource allocation graphs, kort exempel Programmeringsuppgift på papper Kort introduktion laboration 3 (tvättmaskin) 16
57 Sammanfattning Dödläge Resource allocation graphs Man borde kunna rita RAGs och analysera ett system för att hitta risk för dödläge, både utifrån kod eller en systembeskrivning Man borde kunna skriva kod (sekvenser) när man har gjort ett system riskfritt med hjälp av en RAG. Lästips: e-bok: Kap 4, Deadlock (s ) Artikel Resource Allocation Graphs, Roger Henriksson (länk på kursens materialsida, rekommenderas!) 17
Deadlocks. detektera och undvik
Deadlocks detektera och undvik Enkla exempel Smal bro med en fil En fyrvägskorsning Fyra vägkorsningar Två lås P: Lock A, Lock B.. Rel. A, Rel. B Q: Lock B, Lock A.. Rel. B, Rel. A Vad motsvarar Resurser?
Exam Concurrent and Real-Time Programming
LUNDS TEKNISKA HÖGSKOLA 1(5) Institutionen för datavetenskap Exam Concurrent and Real-Time Programming 2018 08 23, 14.00 19.00 1. Vad är prioritetsinversion? Illustrera med ett enkelt exempel. Redogör
Realtidssystem. - Semaforer, trådsynkronisering - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 2
Realtidssystem - Semaforer, trådsynkronisering - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp Föreläsning 2 Kursens innehåll motsvarar tidigare omgångar under beteckning EDA698 Stora delar baserad
Realtidssystem. - Semaforer, trådsynkronisering - EDA698 - Realtidssystem (Helsingborg) Elin A. Topp 2015-09-02
Realtidssystem - Semaforer, trådsynkronisering - EDA698 - Realtidssystem (Helsingborg) Elin A. Topp 2015-09-02 Stora delar baserad på: Föreläsningsmaterial EDA040 (Klas Nilsson, Mathias Haage) samt EDA698
Tentamen Lösningar EDA698 Realtidssystem
LUNDS TEKNISKA HÖGSKOLA 1(7) Institutionen för datavetenskap Tentamen Lösningar EDA698 Realtidssystem 13 10 22, 14:00 19:00 1. Prioriteter, korrekthet a) Realtidsproblemet kvarstår. Det finns ingen garanti
Tentamen EDA698 Realtidssystem (Helsingborg)
LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Tentamen EDA698 Realtidssystem (Helsingborg) 2014 10 28, 14.00 19.00 Det är tillåtet att använda Java snabbreferens och miniräknare, samt ordbok.
Realtidssystem. - Schemaläggning - EDA698 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 6
Realtidssystem - Schemaläggning - EDA698 - Realtidssystem (Helsingborg) Elin A. Topp Föreläsning 6 Stora delar baserad på: Föreläsningsmaterial EDA040 (Klas Nilsson, Mathias Haage) samt EDA698 (Mats Lilja)
Realtidssystem. - Introduktion, jämlöpande exekvering - EDA698 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 1
Realtidssystem - Introduktion, jämlöpande exekvering - EDA698 - Realtidssystem (Helsingborg) Elin A. Topp Föreläsning 1 Stora delar baserad på: Föreläsningsmaterial EDA040 (Klas Nilsson, Mathias Haage)
Synkronisering. Föreläsning 8
Synkronisering Föreläsning 8 Synkronisering Så stort, intrikat och viktigt att det finns hela kurser om det i parallellprogrammering. Vi fuskar lite med några av de viktigaste bitarna! Synkronisering Vad
Realtidssystem. - Monitorer, synkroniserade metoder - EDA698 - Realtidssystem (Helsingborg) Elin A. Topp 2015-09-14
Realtidssystem - Monitorer, synkroniserade metoder - EDA698 - Realtidssystem (Helsingborg) Elin A. Topp 2015-09-14 Stora delar baserad på: Föreläsningsmaterial EDA040 (Klas Nilsson, Mathias Haage) samt
Realtidssystem. - Introduktion, jämlöpande exekvering - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 1
Realtidssystem - Introduktion, jämlöpande exekvering - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp Föreläsning 1 Kursens innehåll motsvarar tidigare omgångar under beteckning EDA698 Stora delar
Tentamen EDA698 Realtidssystem (Helsingborg)
LUNDS TEKNISKA HÖGSKOLA 1(7) Institutionen för datavetenskap Tentamen EDA698 Realtidssystem (Helsingborg) LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Det är tillåtet att använda Java snabbreferens
Realtidssystem. - Schemaläggning - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 6
Realtidssystem - Schemaläggning - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp Föreläsning 6 Kursens innehåll motsvarar tidigare omgångar under beteckning EDA698 Stora delar baserad på: Föreläsningsmaterial
Realtidssystem. - Meddelanden och händelsehantering - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 4
Realtidssystem - Meddelanden och händelsehantering - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp Föreläsning 4 Kursens innehåll motsvarar tidigare omgångar under beteckning EDA698 Stora delar baserad
Trådar. Aktiva objekt
Föreläsning 11 Trådar 1 Aktiva objekt Det är välkänt från vardagslivet att saker händer samtidigt. Aktiva objekt gör saker på eget initiativ, medan passiva objekt endast gör saker när de blir ombedda.
Concurrency Saker händer samtidigt. Process En instans av ett program
Concurrency Saker händer samtidigt Hur gör vi flera saker samtidigt på en dator? - Dela på en CPU - Flera CPU Flera processer på en dator. Operativsystemet (OS) tilldelar dem körtid (time slices, prioritet)
Mekanismer. (implementation)
Mekanismer (implementation) Repetition Semafor Räknar tillgängliga resurser Initieras med startvärde Vid förbrukning: väntar tills resurs finns Användning: invänta händelse Lås Markerar att en variabel/datastruktur
Tråd C (ms) T (ms) A 4 16 B 3 10 C 4 25 D 2 12
LUNDS TEKNISKA HÖGSKOLA Datavetenskap Realtidsprogrammering : EDA040 DAT040 Tentamensskrivning - Realtidsprogrammering 2006-06-01, kl 8.00-13.00 Anvisningar: Tillåtna hjälpmedel: inga utöver Java snabbreferens.
Tung bakgrundsaktivitet t.ex. Aktiva objekt t.ex. Animering, simulering. DD2385 Programutvecklingsteknik Några bilder till föreläsning 9 6/5 2013
DD2385 Programutvecklingsteknik Några bilder till föreläsning 9 6/5 2013 Innehåll Trådar i Java swing- klassen Timer Klient-Server-program Trådar Tråd = enkel process Ett program kan ha flera trådar, flera
Objektorienterad Programkonstruktion. Föreläsning dec 2015
Objektorienterad Programkonstruktion Föreläsning 12 14 dec 2015 Parallella Problem I program med flera parallella exekveringstrådar kan det uppstå problem, fel och andra fenomen som inte förekommer i enkeltrådade
Deadlock. Deadlock uppstår när två eller flera processer hamnar i ett cirkelberoende. Resurs 1. Processen vill ha resursen. Processen äger resursen
Deadlock uppstår när två eller flera processer hamnar i ett cirkelberoende Processen vill ha resursen Resurs 1 Process A Processen äger resursen Processen äger resursen Process B Resurs 2 Processen vill
Objektorienterad Programkonstruktion. Föreläsning 11 6 dec 2016
Objektorienterad Programkonstruktion Föreläsning 11 6 dec 2016 Föreläsningen 13/12 Halvtidsrepetition Maila frågor som ni vill att jag tar upp! ccs@kth.se Processer Vad vi i dagligt tal menar när vi pratar
Institutionen för elektro- och informationsteknologi, LTH
Datorteknik Föreläsning 5 Realtidssystem och realtidsprogrammering Mål Att du ska förstå hur avbrott används för - Mätning - Styrning - Stöd för körning av flera processer Att du ska förstå begreppet tråd
Datorteknik. Föreläsning 5. Realtidssystem och realtidsprogrammering. Institutionen för elektro- och informationsteknologi, LTH.
Datorteknik Föreläsning 5 Realtidssystem och realtidsprogrammering Mål Att du ska förstå hur avbrott används för - Mätning - Styrning - Stöd för körning av flera processer Att du ska förstå begreppet tråd
Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering
Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk
Synkronisering. Ordning och reda
Synkronisering Ordning och reda Banköverföring struct account { int balance; char* owner; }; struct account account[ NUM_ACCOUNTS ]; bool transfer( int amount, unsigned from, unsigned to ); 2 Banköverföring
Föreläsning 15: Parallella subrutiner. Parallellitet. Varför parallella underprogram?
Föreläsning 15: Parallella subrutiner Parallellitet Processer och trådar Semaforer, monitorer och synkroniseringsmeddelanden Parallellitet Ofta är det nödvändigt eller önskvärt att programdelar exekveras
F4. programmeringsteknik och Matlab
Programmeringsspråk Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer 1 Ett program är en eller flera instruktioner
Javas Exceptions. DD2385 Programutvecklingsteknik Fler bilder till föreläsning 7 23/ Kort om Javas Exceptions Trådar i Java
DD2385 Programutvecklingsteknik Fler bilder till föreläsning 7 23/4 2014 Innehåll Kort om Javas Exceptions Trådar i Java swing- klassen Timer Klient-Server-program Javas Exceptions Checked måste hanteras,
Objektorienterad Programkonstruktion. Föreläsning 2 2 nov 2016
Objektorienterad Programkonstruktion Föreläsning 2 2 nov 2016 Objekt - klass Namn Fält1 Fält2 Fält3 Metod1 Metod2 Metod3 Metod4 Objekt - klass Objekt - klass Objekt - klass + Objekt - klass public class
Abstrakt klass. DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 7/ Exempel: Implementation av Schackpjäser.
DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 7/4 2014 Innehåll Abstrakta klasser Klasshierarki och typhierarki Polymorfism och dynamisk bindning Polymorfi-exempel: Schack UML-översikt
Trådar och Multiprocessorer. Föreläsning 6
Trådar och Multiprocessorer Föreläsning 6 Trådar och multiprocessorer Hur skriver man program som hanterar många saker samtidigt, t.ex. en web-server som hanterar många samtidiga begäran från olika klienter?
Tentamen EDA698 Realtidssystem (Helsingborg)
LUNDS TEKNISKA HÖGSKOLA 1(10) Institutionen för datavetenskap Tentamen EDA698 Realtidssystem (Helsingborg) 2013 08 23, 08.00 13.00 Det är tillåtet att använda Java snabbreferens och miniräknare, samt ordbok.
Föreläsning 3: Booleans, if, switch
TDA 545: Objektorienterad programmering Föreläsning 3: Booleans, if, switch Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Påminnelse om klasser och objekt Boll boll1 = new Boll(5,12); skapar ett nytt
Tentamensskrivning Nätverksprogrammering (EDA095 - FED) 2004-05-25, kl 8-13
LUNDS TEKNISKA HÖGSKOLA Datavetenskap Nätverksprogrammering 2004 LÖSNINGAR Tentamensskrivning Nätverksprogrammering (EDA095 - FED) 2004-05-25, kl 8-13 DEL 1 - Frågor av teoretisk, principiell eller utredande
Realtidsprogrammering Ordinarie tentamen
Tentamen i Realtidsprogrammering Ordinarie tentamen Datum: 2006-10-20 Tid: 08:00 13:00 Ansvarig lärare: Telefon: 1438 (kontor) Hjälpmedel: Miniräknare Poäng: Tentamen omfattar 40 poäng fördelade på 7 uppgifter.
Tentamen i TDIU16 Process- och operativsystemprogrammering
Linköpings universitet Institutionen för datavetenskap 2017-06-03 Tentamen i TDIU16 Process- och operativsystemprogrammering Datum 2017-06-03 Tid 14-18 Institution IDA Kurskod TDIU16 Provkod TEN1 Examinator
Abstrakt klass. DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 31/ Exempel: Implementation av Schackpjäser.
DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 31/3 2017 Innehåll Abstrakta klasser Klasshierarki och typhierarki Polymorfism och dynamisk bindning Polymorfi-exempel: Schack Klassen Object
Objektinteraktion. Objektorienterad programmering Laboration 2. Syfte Att konstruera ett litet objektorienterat program med flera samverkande objekt.
(7) Objektinteraktion Objektorienterad programmering Syfte Att konstruera ett litet objektorienterat program med flera samverkande objekt. Mål Efter övningen skall du kunna konstruera ett program med flera
a) Vad kallar vi den sorts fel som Hasse:s programvara är behäftad med? (1p)
LUNDS TEKNISKA HÖGSKOLA Datavetenskap Realtidsprogrammering : EDA040 DAT040 Tentamensskrivning - Realtidsprogrammering 2005-06-01, kl 8.00-13.00 Anvisningar Tillåtna hjälpmedel: inga utöver Java snabbreferens.
Tentamen Nätverksprogrammering Lösningsförslag
LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Tentamen Nätverksprogrammering Lösningsförslag 2012 05 28, 8.00 13.00 Del 1 1. Time To Live (TTL) anger hur många routrar ett multicastpaket
Software Technology. Josef Svenningsson
Software Technology Josef Svenningsson Software Technology Software Technology Området Software Technology handlar i mångt och mycket om följande frågeställning: Hur designar man programmeringsspråk för
Tentamen i Realtidsprogrammering
Tentamen i Realtidsprogrammering Omtentamen Datum: 2008-12-13 Tid: 14:00 17:00 Ansvarig lärare: Telefon: 301438 Hjälpmedel: Miniräknare Poäng: Tentamen omfattar 40 poäng fördelade på 5 uppgifter. 20 poäng
Trådar i Java. Johan Ånäs. Seminarieuppsats Institutionen för informationsbehandling Åbo Akademi
Trådar i Java Johan Ånäs Seminarieuppsats Institutionen för informationsbehandling Åbo Akademi Sammandrag I dagens samhälle är vi alla bekanta med att man kan köra flera tjänster och applikationer samtidigt.
Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34
Tentamen Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Lördagen den 30 november 2002 kl 9.00 14.00, salar E33, E34 Inga hjälpmedel 30 poäng ger säkert godkänt, 40 poäng ger betyg 4 50 poäng ger
Försättsblad till skriftlig tentamen vid Linköpings Universitet Cover page for written exam at Linköping University
Försättsblad till skriftlig tentamen vid Linköpings Universitet Cover page for written exam at Linköping University Datum för tentamen Date of exam Sal Room Tid Time Kurskod Course code Provkod LADOK code
Summering av fält. Synkronisering. Summering av fält. Bounded Buffer. Bounded Buffer (get) Bounded Buffer (put)
Summering av fält Synkronisering Ordning och reda function sum_low is begin for i in 0..999_999_999 sum += array[i] end sum_low function sum_high is begin for i in 1_000_000_000..1_999_999_999 sum += array[i]
FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY , kl
Högskolan Dalarna sid 1 av 6 DI-institutionen Hans-Edy Mårtensson Sten Sundin FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY2 2001-03-16, kl 14.00-18.00 1. Grunderna i
Mål. Datorteknik. Repetition av avbrott. Innehåll. Mätning och styrning. Datorer för mätning och styrning. timer. Datorsystem A/D. Analog insignal D/A
Mål Datorteknik Föreläsning 5 Att du ska förstå hur avbrott används för - Mätning - Styrning - Stöd för körning av fle processer Att du ska förstå begreppet tråd Att du ska veta hur odelba resurser kan
Synkronisering - Semaforen. Om att vänta men inte i onödan
Synkronisering - Semaforen Om att vänta men inte i onödan Dörrvakten Har order uppifrån pga brandregler: Släpp in max 40 personer Garanterar att det aldrig är fler insläppta än order angivit Kommer fler
Parallellism, återblick
Parallellism, återblick Josef Svenningsson December 11, 2012 Lab7 Det är problem med lab7. Gå med i den grupp som ni använt tidigare. DEMO Flera saker händer samtidigt Ofta hanterar program olika indata
Tentamen Nätverksprogrammering Lösningsförslag
LUNDS TEKNISKA HÖGSKOLA 1(5) Institutionen för datavetenskap Tentamen Nätverksprogrammering Lösningsförslag 2018 03 14, 8.00 13.00 Del 1 1. Applikationslagret levererar data mellan applikationer och till
Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.
Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java
Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser
Föreläsning 5-6 Innehåll Exempel på program med objekt Skapa och använda objekt Skriva egna klasser public class DrawSquare { public static void main(string[] args) { SimpleWindow w = new SimpleWindow(600,
Vad är viktigast? Sammanfattning. Processer och trådar. Processer och trådar. Flerprocessorsystem. Schemaläggning. Interprocesskommunikation.
Vad är viktigast? Sammanfattning Processer och trådar Avbrottshantering Vad det är och hur det fungerar (på låg nivå) Vilka problem finns Schemaläggning Flerprocessorsystem Varianter, problem Interprocesskommunikation
EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.
EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.aelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade
Föreläsning 5-6 Innehåll
Föreläsning 5-6 Innehåll Skapa och använda objekt Skriva egna klasser Datavetenskap (LTH) Föreläsning 5-6 HT 2017 1 / 32 Exempel på program med objekt public class DrawSquare { public static void main(string[]
1.1 Runnable och Thread
1 Trådar 1.1 Runnable och Thread I övningen är ShoutThread hårdkodad att använda just ShoutRunnable. Det typiska förfarandet brukar annars vara att skicka över din Runnable i konstruktor-anropet till Thread:
Tentamen i ID2206, ID2200 samt IS1350 Operativsystem
Tentamen i ID2206, ID2200 samt IS1350 Operativsystem Tisdagen 2014-03-18 kl 09:00-13:00 Examinator: ID2206, ID2200 Robert Rönngren, IS1350 Jim Dowling Hjälpmedel: Inga Tentamensfrågorna behöver inte återlämnas
Objektorienterad Programkonstruktion, DD1346. Tentamen , kl
Skolan för datavetenskap och kommunikation Objektorienterad Programkonstruktion, DD1346 Tentamen 2016 03 18, kl. 14.00 17.00 Tillåtna hjälpmedel: Papper, penna och radergummi. Notera: Frågorna i del I
Tentamen, EDA501/EDAA20 Programmering M MD W BK L
LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Tentamen, EDA501/EDAA20 Programmering M MD W BK L 2017 05 31, 8.00 13.00 Anvisningar: Preliminärt ger uppgifterna 9 + 12 + 10 + 9 = 40 poäng.
Tentamen i Objektorienterad modellering och design
Lunds Tekniska Högskola Datavetenskap Tentamen EDA061 2016 10-26, 08:00 13:00 Tentamen i Objektorienterad modellering och design Vid bedömningen kommer hänsyn att tas till lösningens kvalitet. UML-diagram
Föreläsning 1 & 2 INTRODUKTION
Föreläsning 1 & 2 INTRODUKTION Denna föreläsning Vad händer under kursen? praktisk information Kursens mål vad är programmering? Skriva små program i programspråket Java Skriva program som använder färdiga
Realtidssystem HT03. Vad är realtidssystem? Inbyggda system. Att programmera, Tasks (Uppgifter) Realtidssystem kräver analys
Realtidssystem HT03 Vad är realtidssystem? Föreläsare: Wang Yi Rum: 1235, yi@it.uu.se, Tel: 471 3110 Assistent: Tobias Amnell Rum: 1216, tobiasa@it.uu.se, Tel: 4717122 Webbsida: www.it.uu.se/edu/course/homepage/realtid/h03
Fö 5+6 TSEA81. Real-time kernel + Real-time OS
Fö 5+6 TSEA81 Real-time kernel + Real-time OS Stackens användningsområde * JSR / RTS : returadress * Temporärdata (push / pop) void myfunc(void) { int i; // hamnar nog i register int test[10]; // hamnar
Program & programmering
Program & programmering Vad är program? Satser och instruktioner, toggla igenom exempel Program på olika nivåer, för olika maskiner, för olika saker Tolka program; kompilator, intepretator, binärbytekod,
Övning2. Variabler. Data typer
Vahid 28 okt 2002 prgk02 Övning2 -Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =, ,!=,!) -String hur man
Trådar. Motivering. Många program måste kunna hålla på med flera saker samtidigt, till exempel. fleranvändarsystem.
Motivering Uppsala Universitet 21 april 2005 Många program måste kunna hålla på med flera saker samtidigt, till exempel fleranvändarsystem en webserver som måste kunna leverera flera websidor samtidigt
2D1339 Programkonstruktion för F1, ht 2003
2D1339 Programkonstruktion för F1, ht 2003 Kontrollskrivning 1 Onsdag 19/11 2003 kl 9.15 10.00 Endast ett svar är rätt på varje fråga! Om mer än ett svar givits blir det noll poäng på frågan. Alla skriftliga
TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Abstrakta datatyper Listor Stackar
Tentamensskrivning Nätverksprogrammering (EDA095) , kl 8-13
LUNDS TEKNISKA HÖGSKOLA Datavetenskap Nätverksprogrammering 2006 LÖSNINGAR Tentamensskrivning Nätverksprogrammering (EDA095) 2004-05-27, kl 8-13 DEL 1 - Frågor av teoretisk, principiell eller utredande
Tentamen. Datorteknik och realtidssystem
Tentamen Datorteknik och realtidssystem, TSEA81 Datum 2017-04-18 Lokal KÅRA Tid 14-18 Kurskod TSEA81 Provkod TEN1 Kursnamn Datorteknik och realtidssystem Institution ISY Antal frågor 5 Antal sidor (inklusive
DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin
DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin TENTAMEN I IKB007 INTERNETPROGRAMMERING MED JAVA för SY2 1999-03-17, kl 14.00-18.00 Hjälpmedel: En lärobok i Java programmering Återlämningstillfälle:
Klassdeklaration. Metoddeklaration. Parameteröverföring
Syntax: Class Declaration Modifier Class Body Basic Class Member Klassdeklaration class Class Member Field Declaration Constructor Declaration Method Declaration Identifier Class Associations Motsvarar
Outline. Datorsystemtekni. Kravspecifikation. Kravspecifikation (forts.)
Outline för D2, ICT2, E3 och Mek3 Nicholas Wickström Högskolan i Halmstad Sverige p.1/18 Förra föreläsningen Specifikation -Kravspecifikation -Funktionsspecifikation -Blockdiagram Operativsystem -Grunder,
Tentamen i Objektorienterad modellering och design Helsingborg
Lunds Tekniska Högskola Datavetenskap Emelie Engström Tentamen EDAF25 2016 10-26, 08:00 13:00 Tentamen i Objektorienterad modellering och design Helsingborg Tentamen består av en teoridel om totalt 5 poäng
Imperativ programmering. Föreläsning 2
Imperativ programmering 1DL126 3p Föreläsning 2 Imperativ programmering Kännetecken för imperativa språk: Programmet består av en serie instruktioner. Olika språk har olika uppsättningar av instruktioner.
Objektinteraktion. Objektorienterad programmering Laboration 2. Syfte Att konstruera ett litet objektorienterat program med flera samverkande objekt.
(7) Objektinteraktion Objektorienterad programmering 2 Syfte Att konstruera ett litet objektorienterat program med flera samverkande objekt. Mål Efter övningen skall du kunna konstruera ett program med
F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander
F5 Selektion och iteration ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Boolska uttryck Boolska uttryck använder sig av jämförelseoperatorer < > = ==!= Resultatets datatyp är boolean
Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Vem är vem på kursen Objektorienterad programvaruutveckling GU (DIT011) Kursansvarig : Katarina Blom, tel 772 10 60 Rum: 6126 (E-huset)
OOP Omtenta 2011-03-05 10.00 15.00
Stockholms universitet 1 (6) OOP OOP Omtenta 2011-03-05 10.00 15.00 Avser kurserna: DSK1:OOP GES:OOP ID1013 Anvisningar Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv
TDDIU81. Processer och trådar. Andreas Dahlberg, Jonathan Doherty, Tony Magnusson, Patrik Ottosson, Rasmus Siljedahl
TDDIU81 Processer och trådar Andreas Dahlberg, Jonathan Doherty, Tony Magnusson, Patrik Ottosson, Rasmus Siljedahl Sammanfattning Den här rapporten innehåller en kort genomgång av allmän process och trådhantering
Laboration A Objektsamlingar
Laboration A Objektsamlingar Avsikten med laborationen är att du ska träna på att använda ett par objektsamlingar. Uppgift 1 Titta genom föreläsningsunderlaget DA129AFAHT07.pdf och testkör exemplen (se
Hjälpmedel: Inga hjälpmedel förutom penna, suddgummi och glatt humör.
Tentamen Inst. för Informationsteknologi Avdelningen för Datorteknik Herbert P Sander Tel: 070 376 06 87 Ämne: Operativsystem Lokal: Post Scriptum, sal 2 Datum: Måndagen den 13 maj 2002 Tid: Kl 09.00-14.00
Agenda (obs! halvdag)
Objektorienterad programmering Föreläsning 3 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda (obs! halvdag) Do-satsen Break-satsen Continue-satsen Goto-satsen Switch-satsen Villkorsoperatorn
Objektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Kompilera och köra programmet under terminal 2: I Skapa Hej.java
Lösningsförslag till tentamen i EDAF25 Objektorienterad modellering och design Helsingborg
LUNDS TEKNISKA HÖGSKOLA 1(7) Institutionen för datavetenskap Lösningsförslag till tentamen i EDAF25 Objektorienterad modellering och design Helsingborg 1. a) Figure 1 2015 06 04 GeometryApp GraphicalApp
I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program
Kompilera och köra programmet Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 under terminal 2: I Skapa Hej.java
Tentamen, EDA501 Programmering M L TM W K V
LUNDS TEKNISKA HÖGSKOLA 1(0) Institutionen för datavetenskap Tentamen, EDA501 Programmering M L TM W K V 2010 05 31, 8.00 13.00 Anvisningar: Denna tentamen består av 4 uppgifter. Preliminärt ger uppgifterna
Översikt MERA JAVA OCH ECLIPSE. Uttryck och tilldelning. Uttryck och tilldelning. Uttryck och tilldelning. Uttryck och tilldelning
Översikt Uttryck i tilldelningssatser Typer och typomvandling Klasser Metoder Konstanter Eclipse-tips MERA JAVA OCH ECLIPSE Institutionen för datavetenskap Programmering 1 Rita Kovordányi 2 public class
Tentamen, EDAA10 Programmering i Java
LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Tentamen, EDAA10 Programmering i Java 2019 08 21, 08.00 13.00 Anvisningar: Preliminärt ger uppgifterna 25 + 15 + 5 = 45 poäng. För godkänt betyg
Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016
Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Abstract class En abstract class är en class som inte kan skapa några objekt. Syfte:
EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Om att lära sig programmera. Föreläsning 1-2 Innehåll.
EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.axelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade
Tentamen i Introduktion till programmering
Tentamen i Introduktion till programmering Kurskod: Skrivtid: D0009E 09:00-13:00 (4 timmar) Totalt antal uppgifter: 7 Totalt antal poäng: 38 Tentamensdatum: 2014-05-17 Jourhavande lärare: Tillåtna hjälpmedel:
Grundkurs i programmering - intro
Grundkurs i programmering - intro Linda Mannila 4.9.2007 Dagens föreläsning Allmän kursinformation: mål, syfte, upplägg, examination, litteratur, etc. Hur arbetar en dator? Hur vi får datorn att förstå
Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista
Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista Abstrakt stack Abstrakt kö Länkade listor Abstrakta datatyper Det är ofta praktiskt att beskriva vilka operationer man vill kunna göra på sina
Blockkedjor. en introduktion för datavetare. Rikard Hjort, 24 maj 2019
Blockkedjor en introduktion för datavetare Vem är jag? Varför ska ni lära er om blockkedjor? Alla ska gå härifrån och kunna... förklara Bitcoin är uppbyggt bygga en egen blockkedja läsa på själva om blockkedjeprojekt
Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2
AID-nummer: Datum: 2014-12-18 Kurskod: 725G61 Provkod: LAB1 Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 Skrivningstid: 2014-12-18 klockan 8.00-10.00. Hjälpmedel: Inga. För varje fråga
Föreläsning 13 Innehåll
Föreläsning 13 Innehåll Arv Repetition Om tentamen Datavetenskap (LTH) Föreläsning 13 HT 2017 1 / 32 Diskutera Här är början på klassen MemoryWindow som använts på en lab. Vad kan menas med extends SimpleWindow?
Classes och Interfaces, Objects och References, Initialization
Classes och Interfaces, Objects och References, Initialization Objekt-orienterad programmering och design (DIT953) Niklas Broberg/Johannes Åman Pohjola, 2018 Abstract class En abstract class är en class