Realtidssystem. - Schemaläggning - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 6

Storlek: px
Starta visningen från sidan:

Download "Realtidssystem. - Schemaläggning - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 6"

Transkript

1 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 EDA040 (Klas Nilsson, Mathias Haage) samt EDA698 (Mats Lilja) 1

2 Innehåll Schemaläggning Realtid - krav, garanti, exekveringstider Schemaläggningsprinciper Prioritetstilldelning Prioritetsinvertering 2

3 Från parallellitet till realtid - Realtidskrav Ett realtidssystem måste utföra alla beräkningar logiskt korrekt reagera på inmatningar jämlöpande alltid ha konsistent data att arbeta med producera alla (del-)resultat i tid För att uppnå realtids-korrekthet (real-time correctness) måste mjukvaran säkerställa, att det jämlöpande-korrekta resultatet produceras pålitligt i tid. Ofta handlar det om att hantera både periodiskt upprepade aktiviteter parallelt med händelsestyrda aktiviteter 3

4 Tidsfördröjningar och väntetider i återkopplingsreglering Control system Software timing sample delay control delay latency execution time control response time response time job execution sensor data control signal sample time (1) (2) (3) (4) (5) 4

5 Tidpunkterna i grafiken: Tidsfördröjningar och väntetider i återkopplingsreglering Control system Software timing sample delay control delay latency execution time control response time response time job execution sensor data control signal sample time (1) (2) (3) (4) (5) 4

6 Tidpunkterna i grafiken: Tidsfördröjningar och väntetider i återkopplingsreglering 1. Starttid för regleringen, önskad början av perioden Control system Software timing sample delay control delay latency execution time control response time response time job execution sensor data control signal sample time (1) (2) (3) (4) (5) 4

7 Tidpunkterna i grafiken: Tidsfördröjningar och väntetider i återkopplingsreglering 1. Starttid för regleringen, önskad början av perioden 2. Faktiska starten av regleringsberäkning, efter trådbyte (release time) Control system Software timing sample delay control delay latency execution time control response time response time job execution sensor data control signal sample time (1) (2) (3) (4) (5) 4

8 Tidpunkterna i grafiken: Tidsfördröjningar och väntetider i återkopplingsreglering 1. Starttid för regleringen, önskad början av perioden 2. Faktiska starten av regleringsberäkning, efter trådbyte (release time) 3. Givarens mätdata är tillgänglig Control system Software timing sample delay control delay latency execution time control response time response time job execution sensor data control signal sample time (1) (2) (3) (4) (5) 4

9 Tidpunkterna i grafiken: Tidsfördröjningar och väntetider i återkopplingsreglering 1. Starttid för regleringen, önskad början av perioden 2. Faktiska starten av regleringsberäkning, efter trådbyte (release time) 3. Givarens mätdata är tillgänglig 4. De beräknade regleringsvärden blir utgivna Control system Software timing sample delay control delay latency execution time control response time response time job execution sensor data control signal sample time (1) (2) (3) (4) (5) 4

10 Tidpunkterna i grafiken: Tidsfördröjningar och väntetider i återkopplingsreglering 1. Starttid för regleringen, önskad början av perioden 2. Faktiska starten av regleringsberäkning, efter trådbyte (release time) 3. Givarens mätdata är tillgänglig 4. De beräknade regleringsvärden blir utgivna 5. Reglering och exekvering är avslutade, inkluderande förberedelse för nästa mätomgång Control system Software timing sample delay control delay latency execution time control response time response time job execution sensor data control signal sample time (1) (2) (3) (4) (5) 4

11 Tidpunkterna i grafiken: Tidsfördröjningar och väntetider i återkopplingsreglering 1. Starttid för regleringen, önskad början av perioden 2. Faktiska starten av regleringsberäkning, efter trådbyte (release time) 3. Givarens mätdata är tillgänglig 4. De beräknade regleringsvärden blir utgivna 5. Reglering och exekvering är avslutade, inkluderande förberedelse för nästa mätomgång Control system Software timing sample delay control delay latency execution time control response time response time job execution sensor data control signal sample time (1) (2) (3) (4) (5) Control delay och control response time är något som folk i reglerteknik tittar på, medans vi behandlar execution time (exekveringstid) och response time (svarstid) från mjukvaruperspektivet. 4

12 Tiden som en aktivitet (tråd) förbrukar 5

13 Tiden som en aktivitet (tråd) förbrukar Att hantera något i realtid betyder att garantera ett korrekt (användbart) svar inom en given tid 5

14 Tiden som en aktivitet (tråd) förbrukar Att hantera något i realtid betyder att garantera ett korrekt (användbart) svar inom en given tid Vi måste då titta på två olika typer av tider som ingår i en tråds sammanlagda arbetstid, alltså den maximala svarstiden (maximum response time, R) som vi vill garantera: 5

15 Tiden som en aktivitet (tråd) förbrukar Att hantera något i realtid betyder att garantera ett korrekt (användbart) svar inom en given tid Vi måste då titta på två olika typer av tider som ingår i en tråds sammanlagda arbetstid, alltså den maximala svarstiden (maximum response time, R) som vi vill garantera: 1. Exekveringstiden i värsta fall (Worst Case Execution Time, WCET), plus väntetider, ifall det finns delade resurser och preemption. 5

16 Tiden som en aktivitet (tråd) förbrukar Att hantera något i realtid betyder att garantera ett korrekt (användbart) svar inom en given tid Vi måste då titta på två olika typer av tider som ingår i en tråds sammanlagda arbetstid, alltså den maximala svarstiden (maximum response time, R) som vi vill garantera: 1. Exekveringstiden i värsta fall (Worst Case Execution Time, WCET), plus väntetider, ifall det finns delade resurser och preemption. 2. Starttid (som hänger direkt ihop med andra trådars exekveringstid och trådbytestider). 5

17 Tiden som en aktivitet (tråd) förbrukar Att hantera något i realtid betyder att garantera ett korrekt (användbart) svar inom en given tid Vi måste då titta på två olika typer av tider som ingår i en tråds sammanlagda arbetstid, alltså den maximala svarstiden (maximum response time, R) som vi vill garantera: 1. Exekveringstiden i värsta fall (Worst Case Execution Time, WCET), plus väntetider, ifall det finns delade resurser och preemption. 2. Starttid (som hänger direkt ihop med andra trådars exekveringstid och trådbytestider). Eftersom vi vill kunna ge garantier, kommer vi alltid utgå från det värsta möjliga läget, 5

18 Tiden som en aktivitet (tråd) förbrukar Att hantera något i realtid betyder att garantera ett korrekt (användbart) svar inom en given tid Vi måste då titta på två olika typer av tider som ingår i en tråds sammanlagda arbetstid, alltså den maximala svarstiden (maximum response time, R) som vi vill garantera: 1. Exekveringstiden i värsta fall (Worst Case Execution Time, WCET), plus väntetider, ifall det finns delade resurser och preemption. 2. Starttid (som hänger direkt ihop med andra trådars exekveringstid och trådbytestider). Eftersom vi vill kunna ge garantier, kommer vi alltid utgå från det värsta möjliga läget, Release time (maximal starttid) WCET (maximal exekveringstid) }R Maximum response time (Svarstid) 5

19 Svarstider och prioritet 6

20 Svarstider och prioritet Svarstiderna, dvs väntetider och fördröjningar beror också på trådens prioritet 6

21 Svarstider och prioritet Svarstiderna, dvs väntetider och fördröjningar beror också på trådens prioritet Högst prioriterade tråden Tid för kontextbyte (trådbyte) Maximal exekveringstid av själva koden i tråden + maximal blockeringstid (vid gemensamma resurser) }RhighP 6

22 Svarstider och prioritet Svarstiderna, dvs väntetider och fördröjningar beror också på trådens prioritet Högst prioriterade tråden Andra trådar Tid för kontextbyte (trådbyte) Maximal exekveringstid av själva koden i tråden + maximal blockeringstid (vid gemensamma resurser) }RhighP Tid för kontextbyte (trådbyte) + WCET för alla högre / likt prioriterade trådar Maximal exekveringstid av själva koden i tråden + maximal blockeringstid (vid gemensamma resurser) + n* WCET för alla högre / likt prioriterade trådar (vid preemption, beror på periodtider) (+ n*kontextbyte) } RlowP 6

23 Svarstider och prioritet Svarstiderna, dvs väntetider och fördröjningar beror också på trådens prioritet Högst prioriterade tråden Andra trådar Tid för kontextbyte (trådbyte) Maximal exekveringstid av själva koden i tråden + maximal blockeringstid (vid gemensamma resurser) }RhighP Beräkningen av den maximala svarstiden (Worst case response time) hänger alltså ihop med den valda schemaläggningen och trådarnas periodiska aktivitet Tid för kontextbyte (trådbyte) + WCET för alla högre / likt prioriterade trådar Maximal exekveringstid av själva koden i tråden + maximal blockeringstid (vid gemensamma resurser) + n* WCET för alla högre / likt prioriterade trådar (vid preemption, beror på periodtider) (+ n*kontextbyte) } RlowP 6

24 Statisk schemaläggning 7

25 Statisk schemaläggning Används för extremt kritiska trådar och i enkla styrsystem 7

26 Statisk schemaläggning Används för extremt kritiska trådar och i enkla styrsystem Tiden blir delad i små intervall (slots) 7

27 Statisk schemaläggning Används för extremt kritiska trådar och i enkla styrsystem Tiden blir delad i små intervall (slots) Alla aktiviteter (trådars exekveringstid) måste vara tillräckligt små så att de passar in i ett intervall 7

28 Statisk schemaläggning Används för extremt kritiska trådar och i enkla styrsystem Tiden blir delad i små intervall (slots) Alla aktiviteter (trådars exekveringstid) måste vara tillräckligt små så att de passar in i ett intervall Aktiviteterna är schemalagda i passande tidsintervaller innan systemet börjar köras 7

29 Statisk schemaläggning Används för extremt kritiska trådar och i enkla styrsystem Tiden blir delad i små intervall (slots) Alla aktiviteter (trådars exekveringstid) måste vara tillräckligt små så att de passar in i ett intervall Aktiviteterna är schemalagda i passande tidsintervaller innan systemet börjar köras Cyklisk upprepade exekvering av schemat 7

30 Statisk schemaläggning Används för extremt kritiska trådar och i enkla styrsystem Tiden blir delad i små intervall (slots) Alla aktiviteter (trådars exekveringstid) måste vara tillräckligt små så att de passar in i ett intervall Aktiviteterna är schemalagda i passande tidsintervaller innan systemet börjar köras Cyklisk upprepade exekvering av schemat T1 T2 T1: 50 gånger / sek, 8ms WCET, T2: 25 gånger / sek, 8ms WCET, 10ms tidsintervall 7

31 Statisk schemaläggning Används för extremt kritiska trådar och i enkla styrsystem Fördelar Tiden blir delad i små intervall (slots) Alla aktiviteter (trådars exekveringstid) måste vara tillräckligt små så att de passar in i ett intervall Aktiviteterna är schemalagda i passande tidsintervaller innan systemet börjar köras Cyklisk upprepade exekvering av schemat T1 T2 T1: 50 gånger / sek, 8ms WCET, T2: 25 gånger / sek, 8ms WCET, 10ms tidsintervall 7

32 Statisk schemaläggning Används för extremt kritiska trådar och i enkla styrsystem Tiden blir delad i små intervall (slots) Fördelar Garanterad schema, alla får köra, allt utförs inom angivna tidsramar Alla aktiviteter (trådars exekveringstid) måste vara tillräckligt små så att de passar in i ett intervall Aktiviteterna är schemalagda i passande tidsintervaller innan systemet börjar köras Cyklisk upprepade exekvering av schemat T1 T2 T1: 50 gånger / sek, 8ms WCET, T2: 25 gånger / sek, 8ms WCET, 10ms tidsintervall 7

33 Statisk schemaläggning Används för extremt kritiska trådar och i enkla styrsystem Tiden blir delad i små intervall (slots) Alla aktiviteter (trådars exekveringstid) måste vara tillräckligt små så att de passar in i ett intervall Fördelar Garanterad schema, alla får köra, allt utförs inom angivna tidsramar Varje aktivitet kan alltid utföras färdigt, inga avbrott, inga kritiska sekvenser Aktiviteterna är schemalagda i passande tidsintervaller innan systemet börjar köras Cyklisk upprepade exekvering av schemat T1 T2 T1: 50 gånger / sek, 8ms WCET, T2: 25 gånger / sek, 8ms WCET, 10ms tidsintervall 7

34 Statisk schemaläggning Används för extremt kritiska trådar och i enkla styrsystem Tiden blir delad i små intervall (slots) Alla aktiviteter (trådars exekveringstid) måste vara tillräckligt små så att de passar in i ett intervall Aktiviteterna är schemalagda i passande tidsintervaller innan systemet börjar köras Fördelar Garanterad schema, alla får köra, allt utförs inom angivna tidsramar Varje aktivitet kan alltid utföras färdigt, inga avbrott, inga kritiska sekvenser Lätt att beräkna den maximala svarstiden Cyklisk upprepade exekvering av schemat T1 T2 T1: 50 gånger / sek, 8ms WCET, T2: 25 gånger / sek, 8ms WCET, 10ms tidsintervall 7

35 Statisk schemaläggning Används för extremt kritiska trådar och i enkla styrsystem Tiden blir delad i små intervall (slots) Alla aktiviteter (trådars exekveringstid) måste vara tillräckligt små så att de passar in i ett intervall Aktiviteterna är schemalagda i passande tidsintervaller innan systemet börjar köras Fördelar Garanterad schema, alla får köra, allt utförs inom angivna tidsramar Varje aktivitet kan alltid utföras färdigt, inga avbrott, inga kritiska sekvenser Lätt att beräkna den maximala svarstiden Nackdelar Cyklisk upprepade exekvering av schemat T1 T2 T1: 50 gånger / sek, 8ms WCET, T2: 25 gånger / sek, 8ms WCET, 10ms tidsintervall 7

36 Statisk schemaläggning Används för extremt kritiska trådar och i enkla styrsystem Tiden blir delad i små intervall (slots) Alla aktiviteter (trådars exekveringstid) måste vara tillräckligt små så att de passar in i ett intervall Aktiviteterna är schemalagda i passande tidsintervaller innan systemet börjar köras Cyklisk upprepade exekvering av schemat Fördelar Garanterad schema, alla får köra, allt utförs inom angivna tidsramar Varje aktivitet kan alltid utföras färdigt, inga avbrott, inga kritiska sekvenser Lätt att beräkna den maximala svarstiden Nackdelar Fragmentering, inget bra nyttjande av CPUtiden T1 T2 T1: 50 gånger / sek, 8ms WCET, T2: 25 gånger / sek, 8ms WCET, 10ms tidsintervall 7

37 Statisk schemaläggning Används för extremt kritiska trådar och i enkla styrsystem Tiden blir delad i små intervall (slots) Alla aktiviteter (trådars exekveringstid) måste vara tillräckligt små så att de passar in i ett intervall Aktiviteterna är schemalagda i passande tidsintervaller innan systemet börjar köras Cyklisk upprepade exekvering av schemat T1 T2 Fördelar Garanterad schema, alla får köra, allt utförs inom angivna tidsramar Varje aktivitet kan alltid utföras färdigt, inga avbrott, inga kritiska sekvenser Lätt att beräkna den maximala svarstiden Nackdelar Fragmentering, inget bra nyttjande av CPUtiden Aktiviteter måste eventuellt delas upp i onaturliga avsnitt för att få dem in i en enstaka tidsintervall T1: 50 gånger / sek, 8ms WCET, T2: 25 gånger / sek, 8ms WCET, 10ms tidsintervall 7

38 Statisk schemaläggning Används för extremt kritiska trådar och i enkla styrsystem Tiden blir delad i små intervall (slots) Alla aktiviteter (trådars exekveringstid) måste vara tillräckligt små så att de passar in i ett intervall Aktiviteterna är schemalagda i passande tidsintervaller innan systemet börjar köras Cyklisk upprepade exekvering av schemat T1 T2 T1: 50 gånger / sek, 8ms WCET, T2: 25 gånger / sek, 8ms WCET, 10ms tidsintervall Fördelar Garanterad schema, alla får köra, allt utförs inom angivna tidsramar Varje aktivitet kan alltid utföras färdigt, inga avbrott, inga kritiska sekvenser Lätt att beräkna den maximala svarstiden Nackdelar Fragmentering, inget bra nyttjande av CPUtiden Aktiviteter måste eventuellt delas upp i onaturliga avsnitt för att få dem in i en enstaka tidsintervall Schemat kan bli ganska komplext, och måste eventuellt göras om när programmet ändras 7

39 Dynamisk schemaläggning 8

40 Dynamisk schemaläggning Används i de flesta, inte helt så kritiska system, ofta också där resurserna måste utnyttjas till högsta möjliga grad 8

41 Dynamisk schemaläggning Används i de flesta, inte helt så kritiska system, ofta också där resurserna måste utnyttjas till högsta möjliga grad Beroende på den valda schemaläggningsprincip hanteras trådarna dynamiskt allt eftersom de startas up 8

42 Dynamisk schemaläggning Används i de flesta, inte helt så kritiska system, ofta också där resurserna måste utnyttjas till högsta möjliga grad Beroende på den valda schemaläggningsprincip hanteras trådarna dynamiskt allt eftersom de startas up Strict priority (Prioritetsbaserad) - trådarna sorteras i en väntekö enligt deras prioritet 8

43 Dynamisk schemaläggning Används i de flesta, inte helt så kritiska system, ofta också där resurserna måste utnyttjas till högsta möjliga grad Beroende på den valda schemaläggningsprincip hanteras trådarna dynamiskt allt eftersom de startas up Strict priority (Prioritetsbaserad) - trådarna sorteras i en väntekö enligt deras prioritet Round robin - trådarna sorteras i en FIFO-kö 8

44 Dynamisk schemaläggning Används i de flesta, inte helt så kritiska system, ofta också där resurserna måste utnyttjas till högsta möjliga grad Beroende på den valda schemaläggningsprincip hanteras trådarna dynamiskt allt eftersom de startas up Strict priority (Prioritetsbaserad) - trådarna sorteras i en väntekö enligt deras prioritet Round robin - trådarna sorteras i en FIFO-kö Vi måste anta dynamisk, prioritetsbaserad schemaläggning för att kunna bygga realtidssystem, annars måste man känna till alla trådar i systemet (så att man kan räkna in dem i schemaläggningsanalysen) 8

45 Prioritetsbaserad schemaläggning 9

46 Prioritetsbaserad schemaläggning Strict priority order - strikt prioritetsbaserad schemaläggning 9

47 Prioritetsbaserad schemaläggning Strict priority order - strikt prioritetsbaserad schemaläggning Dynamisk schemaläggning bestämmer online vilken tråd (av de som är flaggad ready ) ska köra 9

48 Prioritetsbaserad schemaläggning Strict priority order - strikt prioritetsbaserad schemaläggning Dynamisk schemaläggning bestämmer online vilken tråd (av de som är flaggad ready ) ska köra De flesta system-schemaläggare är baserad på prioriteter (som syns i Java-klasserna) 9

49 Prioritetsbaserad schemaläggning Strict priority order - strikt prioritetsbaserad schemaläggning Dynamisk schemaläggning bestämmer online vilken tråd (av de som är flaggad ready ) ska köra De flesta system-schemaläggare är baserad på prioriteter (som syns i Java-klasserna) Vi antar interrupt-driven schemaläggning, dvs avrbytbar (med preemption), men detta kan kringgås på program-nivå med java.lang.thread.yield(), ifall en ny schemaläggning behövs 9

50 Prioritetsbaserad schemaläggning Strict priority order - strikt prioritetsbaserad schemaläggning Dynamisk schemaläggning bestämmer online vilken tråd (av de som är flaggad ready ) ska köra De flesta system-schemaläggare är baserad på prioriteter (som syns i Java-klasserna) Vi antar interrupt-driven schemaläggning, dvs avrbytbar (med preemption), men detta kan kringgås på program-nivå med java.lang.thread.yield(), ifall en ny schemaläggning behövs Om prioriteterna är fasta, alltså inte ändras efter att tråden har skapats, pratar vi om fixed priority scheduling 9

51 Prioritetsbaserad schemaläggning Strict priority order - strikt prioritetsbaserad schemaläggning Dynamisk schemaläggning bestämmer online vilken tråd (av de som är flaggad ready ) ska köra De flesta system-schemaläggare är baserad på prioriteter (som syns i Java-klasserna) Vi antar interrupt-driven schemaläggning, dvs avrbytbar (med preemption), men detta kan kringgås på program-nivå med java.lang.thread.yield(), ifall en ny schemaläggning behövs Om prioriteterna är fasta, alltså inte ändras efter att tråden har skapats, pratar vi om fixed priority scheduling Hur sätter man då en tråds prioritet? 9

52 Prioritetsbaserad schemaläggning Strict priority order - strikt prioritetsbaserad schemaläggning Dynamisk schemaläggning bestämmer online vilken tråd (av de som är flaggad ready ) ska köra De flesta system-schemaläggare är baserad på prioriteter (som syns i Java-klasserna) Vi antar interrupt-driven schemaläggning, dvs avrbytbar (med preemption), men detta kan kringgås på program-nivå med java.lang.thread.yield(), ifall en ny schemaläggning behövs Om prioriteterna är fasta, alltså inte ändras efter att tråden har skapats, pratar vi om fixed priority scheduling Hur sätter man då en tråds prioritet? Trådens prioritet påverkar schemaläggningen, dvs väljer man fel kan det bli omöjligt att hitta ett fungerande schema 9

53 Prioritetsbaserad schemaläggning Strict priority order - strikt prioritetsbaserad schemaläggning Dynamisk schemaläggning bestämmer online vilken tråd (av de som är flaggad ready ) ska köra De flesta system-schemaläggare är baserad på prioriteter (som syns i Java-klasserna) Vi antar interrupt-driven schemaläggning, dvs avrbytbar (med preemption), men detta kan kringgås på program-nivå med java.lang.thread.yield(), ifall en ny schemaläggning behövs Om prioriteterna är fasta, alltså inte ändras efter att tråden har skapats, pratar vi om fixed priority scheduling Hur sätter man då en tråds prioritet? Trådens prioritet påverkar schemaläggningen, dvs väljer man fel kan det bli omöjligt att hitta ett fungerande schema Både för att bestämma prioritet och för att sen kunna garantera en maximal svarstid, måste man analysera värsta fallet - schemaläggningsanalys med WCET. 9

54 Prioritetstilldelning Exempel: T1 exekverar 1ms varje 2ms, T2 exekverar 2ms varje 5ms. Trådarna måste exekveras färdigt en gång per period Tidsintervallet vi måste titta på är minsta gemensamma multipeln av perioderna, dvs 2x5 = 10ms 10

55 Prioritetstilldelning Exempel: T1 exekverar 1ms varje 2ms, T2 exekverar 2ms varje 5ms. Trådarna måste exekveras färdigt en gång per period Tidsintervallet vi måste titta på är minsta gemensamma multipeln av perioderna, dvs 2x5 = 10ms A: T2 får högre prioritet än T1: 10

56 Prioritetstilldelning Exempel: T1 exekverar 1ms varje 2ms, T2 exekverar 2ms varje 5ms. Trådarna måste exekveras färdigt en gång per period Tidsintervallet vi måste titta på är minsta gemensamma multipeln av perioderna, dvs 2x5 = 10ms A: T2 får högre prioritet än T1: T2 T1 10

57 Prioritetstilldelning Exempel: T1 exekverar 1ms varje 2ms, T2 exekverar 2ms varje 5ms. Trådarna måste exekveras färdigt en gång per period Tidsintervallet vi måste titta på är minsta gemensamma multipeln av perioderna, dvs 2x5 = 10ms A: T2 får högre prioritet än T1: T2 T1 T1 får inte köra i sin första period (FEL) 10

58 Prioritetstilldelning Exempel: T1 exekverar 1ms varje 2ms, T2 exekverar 2ms varje 5ms. Trådarna måste exekveras färdigt en gång per period Tidsintervallet vi måste titta på är minsta gemensamma multipeln av perioderna, dvs 2x5 = 10ms A: T2 får högre prioritet än T1: T2 T1 T1 får inte köra i sin första period (FEL) B: T1 får högre prioritet än T2: 10

59 Prioritetstilldelning Exempel: T1 exekverar 1ms varje 2ms, T2 exekverar 2ms varje 5ms. Trådarna måste exekveras färdigt en gång per period Tidsintervallet vi måste titta på är minsta gemensamma multipeln av perioderna, dvs 2x5 = 10ms A: T2 får högre prioritet än T1: T2 T1 T1 får inte köra i sin första period (FEL) B: T1 får högre prioritet än T2: T1 T2 10

60 Prioritetstilldelning Exempel: T1 exekverar 1ms varje 2ms, T2 exekverar 2ms varje 5ms. Trådarna måste exekveras färdigt en gång per period Tidsintervallet vi måste titta på är minsta gemensamma multipeln av perioderna, dvs 2x5 = 10ms A: T2 får högre prioritet än T1: T2 T1 T1 får inte köra i sin första period (FEL) B: T1 får högre prioritet än T2: T1 T2 T2 blir avbruten av T1 vid 2ms och 6ms, men får ändå köra inom den tänkte 5ms-perioden varje gång 10

61 Prioritetstilldelning Exempel: T1 exekverar 1ms varje 2ms, T2 exekverar 2ms varje 5ms. Trådarna måste exekveras färdigt en gång per period Tidsintervallet vi måste titta på är minsta gemensamma multipeln av perioderna, dvs 2x5 = 10ms A: T2 får högre prioritet än T1: T2 T1 T1 får inte köra i sin första period (FEL) B: T1 får högre prioritet än T2: T1 Det fungerar alltså om högst frekvens får högst prioritet T2 T2 blir avbruten av T1 vid 2ms och 6ms, men får ändå köra inom den tänkte 5ms-perioden varje gång 10

62 RMS - Rate monotonic scheduling 11

63 RMS - Rate monotonic scheduling RMS regel: välj prioritet i relation till perioden; Kort period motsvarar hög prioritet. 11

64 RMS - Rate monotonic scheduling RMS regel: välj prioritet i relation till perioden; Kort period motsvarar hög prioritet. Fråga: Hur bra är denna tumregel? Kan vi granskar ett system mera noggrant? Hur exakt kan vi bestämma, om ett system kommer att fungera? 11

65 RMS - Rate monotonic scheduling RMS regel: välj prioritet i relation till perioden; Kort period motsvarar hög prioritet. Fråga: Hur bra är denna tumregel? Kan vi granskar ett system mera noggrant? Hur exakt kan vi bestämma, om ett system kommer att fungera? Fråga: Hur mycket CPU-tid kan vi använda? Går det att utnyttja CPUn till 100% om flera trådar ska samsas om den, som var för sig har en viss grad av nyttjande av CPUtid? 11

66 RMS - Rate monotonic scheduling RMS regel: välj prioritet i relation till perioden; Kort period motsvarar hög prioritet. Fråga: Hur bra är denna tumregel? Kan vi granskar ett system mera noggrant? Hur exakt kan vi bestämma, om ett system kommer att fungera? Fråga: Hur mycket CPU-tid kan vi använda? Går det att utnyttja CPUn till 100% om flera trådar ska samsas om den, som var för sig har en viss grad av nyttjande av CPUtid? Scheduling analysis enligt RMS: Hur mycket CPU-användning kan vi ha och fortfarande garantera att det finns ett schema som fungerar? 11

67 RMS - Rate monotonic scheduling RMS regel: välj prioritet i relation till perioden; Kort period motsvarar hög prioritet. Fråga: Hur bra är denna tumregel? Kan vi granskar ett system mera noggrant? Hur exakt kan vi bestämma, om ett system kommer att fungera? Fråga: Hur mycket CPU-tid kan vi använda? Går det att utnyttja CPUn till 100% om flera trådar ska samsas om den, som var för sig har en viss grad av nyttjande av CPUtid? Scheduling analysis enligt RMS: Hur mycket CPU-användning kan vi ha och fortfarande garantera att det finns ett schema som fungerar? 11

68 RMS - Rate monotonic scheduling RMS regel: välj prioritet i relation till perioden; Kort period motsvarar hög prioritet. Fråga: Hur bra är denna tumregel? Kan vi granskar ett system mera noggrant? Hur exakt kan vi bestämma, om ett system kommer att fungera? Förenklingar Till en början antar vi: Periodiska trådar Ingen blockering på resurs Deadline = period Fråga: Hur mycket CPU-tid kan vi använda? Går det att utnyttja CPUn till 100% om flera trådar ska samsas om den, som var för sig har en viss grad av nyttjande av CPUtid? Scheduling analysis enligt RMS: Hur mycket CPU-användning kan vi ha och fortfarande garantera att det finns ett schema som fungerar? 11

69 RMS - Rate monotonic scheduling RMS regel: välj prioritet i relation till perioden; Kort period motsvarar hög prioritet. Fråga: Hur bra är denna tumregel? Kan vi granskar ett system mera noggrant? Hur exakt kan vi bestämma, om ett system kommer att fungera? Fråga: Hur mycket CPU-tid kan vi använda? Går det att utnyttja CPUn till 100% om flera trådar ska samsas om den, som var för sig har en viss grad av nyttjande av CPUtid? Scheduling analysis enligt RMS: Hur mycket CPU-användning kan vi ha och fortfarande garantera att det finns ett schema som fungerar? Förenklingar Till en början antar vi: Periodiska trådar Ingen blockering på resurs Deadline = period Notation För varje tråd vet vi: T = Period C = Exekveringstid U = C/T = CPU-användning 11

70 Exempel (RMS) Vi försöker med 100% CPU utnyttjande 12

71 Exempel (RMS) Vi försöker med 100% CPU utnyttjande T1: C=2ms, T=4ms, C/T=0.5 T2: C=5ms, T=10ms, C/T=0.5 12

72 Exempel (RMS) Vi försöker med 100% CPU utnyttjande T1: C=2ms, T=4ms, C/T=0.5 T2: C=5ms, T=10ms, C/T=0.5 T1 T2 12

73 Exempel (RMS) Vi försöker med 100% CPU utnyttjande T1: C=2ms, T=4ms, C/T=0.5 T2: C=5ms, T=10ms, C/T=0.5 T1 T2 12

74 Exempel (RMS) Vi försöker med 100% CPU utnyttjande T1: C=2ms, T=4ms, C/T=0.5 T2: C=5ms, T=10ms, C/T=0.5 T1 T2 Men med T2: C=2ms, T=4ms, C/T=0.5 hade det fungerat... problemet ligger alltså i relationen mellan perioderna 12

75 Exempel (RMS) Vi försöker med 100% CPU utnyttjande T1: C=2ms, T=4ms, C/T=0.5 T2: C=5ms, T=10ms, C/T=0.5 T1 T2 Men med T2: C=2ms, T=4ms, C/T=0.5 hade det fungerat... problemet ligger alltså i relationen mellan perioderna Värsta fallet som fortfarande går att schemalägga för två trådar utan blockering Med T1: C=1ms, T=2ms (C/T=0.5) får man T2: C=1ms, T=3ms som minsta U = C/T som fortfarande går att schemalägga. Totalt blir U = C/T = 1/2 + 1/

76 EDF- earliest deadline first 13

77 EDF- earliest deadline first Ett annat schemaläggningsprincip, som alltid ger CPUn till den tråden som är närmast sin deadline 13

78 EDF- earliest deadline first Ett annat schemaläggningsprincip, som alltid ger CPUn till den tråden som är närmast sin deadline T1: C=2ms, T=4ms T2: C=5ms, T=10ms 13

79 EDF- earliest deadline first Ett annat schemaläggningsprincip, som alltid ger CPUn till den tråden som är närmast sin deadline T1: C=2ms, T=4ms T2: C=5ms, T=10ms T1 T2 13

80 EDF- earliest deadline first Ett annat schemaläggningsprincip, som alltid ger CPUn till den tråden som är närmast sin deadline T1: C=2ms, T=4ms T2: C=5ms, T=10ms T1 T2 Här kan man få 100% CPU användning, 13

81 EDF- earliest deadline first Ett annat schemaläggningsprincip, som alltid ger CPUn till den tråden som är närmast sin deadline T1: C=2ms, T=4ms T2: C=5ms, T=10ms T1 T2 Här kan man få 100% CPU användning, men: dyrt att implementera (ligger ovanpå prioritetsbaserad schemaläggare) 13

82 EDF- earliest deadline first Ett annat schemaläggningsprincip, som alltid ger CPUn till den tråden som är närmast sin deadline T1: C=2ms, T=4ms T2: C=5ms, T=10ms T1 T2 Här kan man få 100% CPU användning, men: dyrt att implementera (ligger ovanpå prioritetsbaserad schemaläggare) samt leverar riktigt dåliga resultat när det blir fel någonstans, då kommer alla trådar missar sina deadlines 13

83 Svarstider under tillfällig blockering Trådar i ett realtidssystem borde exekveras med absolut prioritetsbaserad ordning, dvs en tråd med hög prioritet ska inte behöva vänta på en tråd med lägre prioritet under en obestämt tidsperiod Därför (i ett realtidssystem): CPUn tilldelas alltid den högst prioriterade tråden som är redo (ready) Semaforer och monitorer har prioritetskö Det finns en ingångskö för nya och nyligen blockerade trådar till delade monitorer Kan vi då garantera rätt exekveringstid för högt prioriterade trådar utan att känna till exekveringstiden av mindre prioriterade trådar? Vad händer när det blir blockering på delade resurser? 14

84 Prioritetsinvertering 15

85 Prioritetsinvertering Ett problematiskt scenario: 15

86 Prioritetsinvertering Ett problematiskt scenario: Tre trådar med H(ög), M(edel) och L(åg) prioritet, där H och L delar en resurs. 15

87 Prioritetsinvertering Ett problematiskt scenario: Tre trådar med H(ög), M(edel) och L(åg) prioritet, där H och L delar en resurs. L exekveras och kommer in i en kritisk region (kommer in i resursen) 15

88 Prioritetsinvertering Ett problematiskt scenario: Tre trådar med H(ög), M(edel) och L(åg) prioritet, där H och L delar en resurs. L exekveras och kommer in i en kritisk region (kommer in i resursen) M avbryter (preemption) och börjar exekvera 15

89 Prioritetsinvertering Ett problematiskt scenario: Tre trådar med H(ög), M(edel) och L(åg) prioritet, där H och L delar en resurs. L exekveras och kommer in i en kritisk region (kommer in i resursen) M avbryter (preemption) och börjar exekvera H avbryter och försöker komma in i den delade resursen, som L håller. H är blockerad. 15

90 Prioritetsinvertering Ett problematiskt scenario: Tre trådar med H(ög), M(edel) och L(åg) prioritet, där H och L delar en resurs. L exekveras och kommer in i en kritisk region (kommer in i resursen) M avbryter (preemption) och börjar exekvera H avbryter och försöker komma in i den delade resursen, som L håller. H är blockerad. M fortsätter exekvera under en obestämd tidsperiod, och blockerar både L och H. 15

91 Prioritetsinvertering Ett problematiskt scenario: Tre trådar med H(ög), M(edel) och L(åg) prioritet, där H och L delar en resurs. L exekveras och kommer in i en kritisk region (kommer in i resursen) M avbryter (preemption) och börjar exekvera H avbryter och försöker komma in i den delade resursen, som L håller. H är blockerad. M fortsätter exekvera under en obestämd tidsperiod, och blockerar både L och H. 15

92 Prioritetsinvertering Ett problematiskt scenario: Tre trådar med H(ög), M(edel) och L(åg) prioritet, där H och L delar en resurs. L exekveras och kommer in i en kritisk region (kommer in i resursen) M avbryter (preemption) och börjar exekvera H avbryter och försöker komma in i den delade resursen, som L håller. H är blockerad. M fortsätter exekvera under en obestämd tidsperiod, och blockerar både L och H. 15

93 Prioritetsarv 16

94 Prioritetsarv Ett botemedel mot prioritetsinvertering är prioritetsarv 16

95 Prioritetsarv Ett botemedel mot prioritetsinvertering är prioritetsarv Idé: Låt en tråd med låg prioritet som håller i resurser som behövs av högre prioriterade trådar ärva den högre prioriteten, så att de blir klara så snart som möjligt och inte blockerar längre. 16

96 Prioritetsarv Ett botemedel mot prioritetsinvertering är prioritetsarv Idé: Låt en tråd med låg prioritet som håller i resurser som behövs av högre prioriterade trådar ärva den högre prioriteten, så att de blir klara så snart som möjligt och inte blockerar längre. Det finns olika protokoll som implementerar prioritetsarv: 16

97 Prioritetsarv Ett botemedel mot prioritetsinvertering är prioritetsarv Idé: Låt en tråd med låg prioritet som håller i resurser som behövs av högre prioriterade trådar ärva den högre prioriteten, så att de blir klara så snart som möjligt och inte blockerar längre. Det finns olika protokoll som implementerar prioritetsarv: Dynamiskt prioritetsarv (basic inheritance protocol) 16

98 Prioritetsarv Ett botemedel mot prioritetsinvertering är prioritetsarv Idé: Låt en tråd med låg prioritet som håller i resurser som behövs av högre prioriterade trådar ärva den högre prioriteten, så att de blir klara så snart som möjligt och inte blockerar längre. Det finns olika protokoll som implementerar prioritetsarv: Dynamiskt prioritetsarv (basic inheritance protocol) Prioritetstak (priority ceiling protocol) 16

99 Prioritetsarv Ett botemedel mot prioritetsinvertering är prioritetsarv Idé: Låt en tråd med låg prioritet som håller i resurser som behövs av högre prioriterade trådar ärva den högre prioriteten, så att de blir klara så snart som möjligt och inte blockerar längre. Det finns olika protokoll som implementerar prioritetsarv: Dynamiskt prioritetsarv (basic inheritance protocol) Prioritetstak (priority ceiling protocol) Direkt prioritetsarv (immediate inheritance protocol) 16

100 Dynamiskt prioritetsarv 17

101 Dynamiskt prioritetsarv Det problematiska scenariot räddad med prioritetsarv (?) 17

102 Dynamiskt prioritetsarv Det problematiska scenariot räddad med prioritetsarv (?) L exekveras och kommer in i en kritisk region (kommer in i resursen) 17

103 Dynamiskt prioritetsarv Det problematiska scenariot räddad med prioritetsarv (?) L exekveras och kommer in i en kritisk region (kommer in i resursen) M avbryter (preemption) och börjar exekvera 17

104 Dynamiskt prioritetsarv Det problematiska scenariot räddad med prioritetsarv (?) L exekveras och kommer in i en kritisk region (kommer in i resursen) M avbryter (preemption) och börjar exekvera H avbryter 17

105 Dynamiskt prioritetsarv Det problematiska scenariot räddad med prioritetsarv (?) L exekveras och kommer in i en kritisk region (kommer in i resursen) M avbryter (preemption) och börjar exekvera H avbryter och försöker komma in i den delade resursen, som L håller. H är blockerad. L ärver Hs prioritet och avslutar jobbet i den kritiska sekvensen. L får sen tillbaka sin egen prioritet och blir avbruten av H. 17

106 Dynamiskt prioritetsarv Det problematiska scenariot räddad med prioritetsarv (?) L exekveras och kommer in i en kritisk region (kommer in i resursen) M avbryter (preemption) och börjar exekvera H avbryter och försöker komma in i den delade resursen, som L håller. H är blockerad. L ärver Hs prioritet och avslutar jobbet i den kritiska sekvensen. L får sen tillbaka sin egen prioritet och blir avbruten av H. H avsluter och M fortsätter exekveringen 17

107 Dynamiskt prioritetsarv Det problematiska scenariot räddad med prioritetsarv (?) L exekveras och kommer in i en kritisk region (kommer in i resursen) M avbryter (preemption) och börjar exekvera H avbryter och försöker komma in i den delade resursen, som L håller. H är blockerad. L ärver Hs prioritet och avslutar jobbet i den kritiska sekvensen. L får sen tillbaka sin egen prioritet och blir avbruten av H. H avsluter och M fortsätter exekveringen Både H och M väntar enligt sina tidsperioder. L får avsluta. 17

108 Dynamiskt prioritetsarv Det problematiska scenariot räddad med prioritetsarv (?) L exekveras och kommer in i en kritisk region (kommer in i resursen) M avbryter (preemption) och börjar exekvera H avbryter och försöker komma in i den delade resursen, som L håller. H är blockerad. L ärver Hs prioritet och avslutar jobbet i den kritiska sekvensen. L får sen tillbaka sin egen prioritet och blir avbruten av H. H avsluter och M fortsätter exekveringen Både H och M väntar enligt sina tidsperioder. L får avsluta. 17

109 Dynamiskt prioritetsarv - problem Högst prioriterade tråden Tid för kontextbyte (trådbyte) Maximal exekveringstid av själva koden i tråden + maximal blockeringstid (vid gemensamma resurser) } RhighP 18

110 Dynamiskt prioritetsarv - problem Högst prioriterade tråden Tid för kontextbyte (trådbyte) Maximal exekveringstid av själva koden i tråden + maximal blockeringstid (vid gemensamma resurser) } RhighP Det kan förekommer multipla blockeringer på olika resurser av flera lägre prioriterade (LP) trådar, som tillfälligt får hög prioritet enligt prioritetsarv. Detta kan man komma förbi med: 18

111 Dynamiskt prioritetsarv - problem Högst prioriterade tråden Tid för kontextbyte (trådbyte) Maximal exekveringstid av själva koden i tråden + maximal blockeringstid (vid gemensamma resurser) } RhighP Det kan förekommer multipla blockeringer på olika resurser av flera lägre prioriterade (LP) trådar, som tillfälligt får hög prioritet enligt prioritetsarv. Detta kan man komma förbi med: Prioritetstak (priority ceiling protocol): Enbart EN LP-tråd får komma åt någon av resurserna som HP-tråden behöver vid ett tillfälle. 18

112 Dynamiskt prioritetsarv - problem Högst prioriterade tråden Tid för kontextbyte (trådbyte) Maximal exekveringstid av själva koden i tråden + maximal blockeringstid (vid gemensamma resurser) } RhighP Det kan förekommer multipla blockeringer på olika resurser av flera lägre prioriterade (LP) trådar, som tillfälligt får hög prioritet enligt prioritetsarv. Detta kan man komma förbi med: Prioritetstak (priority ceiling protocol): Enbart EN LP-tråd får komma åt någon av resurserna som HP-tråden behöver vid ett tillfälle. Direkt prioritetsarv (immediate inheritance protocol): LP-tråden som innehar en kritisk region (sekvens) får alltid den högste prioriteten som är förknippad med den aktuella resursen. 18

113 Dynamiskt prioritetsarv - problem Högst prioriterade tråden Tid för kontextbyte (trådbyte) Maximal exekveringstid av själva koden i tråden + maximal blockeringstid (vid gemensamma resurser) } RhighP Det kan förekommer multipla blockeringer på olika resurser av flera lägre prioriterade (LP) trådar, som tillfälligt får hög prioritet enligt prioritetsarv. Detta kan man komma förbi med: Prioritetstak (priority ceiling protocol): Enbart EN LP-tråd får komma åt någon av resurserna som HP-tråden behöver vid ett tillfälle. Direkt prioritetsarv (immediate inheritance protocol): LP-tråden som innehar en kritisk region (sekvens) får alltid den högste prioriteten som är förknippad med den aktuella resursen. Egenskaper: Det blir ett staket kring en grupp av resurser, som då också garanterar att det hela är dödlägesfritt. Nackdelen är något högre hanteringskostnader, eftersom man måste registrerar trådarnas resursbehov. 18

114 Dynamiskt prioritetsarv - problem Högst prioriterade tråden Tid för kontextbyte (trådbyte) Maximal exekveringstid av själva koden i tråden + maximal blockeringstid (vid gemensamma resurser) } RhighP Det kan förekommer multipla blockeringer på olika resurser av flera lägre prioriterade (LP) trådar, som tillfälligt får hög prioritet enligt prioritetsarv. Detta kan man komma förbi med: Prioritetstak (priority ceiling protocol): Enbart EN LP-tråd får komma åt någon av resurserna som HP-tråden behöver vid ett tillfälle. Direkt prioritetsarv (immediate inheritance protocol): LP-tråden som innehar en kritisk region (sekvens) får alltid den högste prioriteten som är förknippad med den aktuella resursen. fence around that set of resources. Egenskaper: Det blir ett staket kring en grupp av resurser, som då också garanterar att det hela är dödlägesfritt. Nackdelen är något högre hanteringskostnader, eftersom man måste registrerar trådarnas resursbehov. 18

115 Schemaläggning - begrepp 19

116 Schemaläggning - begrepp Schedulability (möjligt att schemaläggas): Ett system är schemaläggningsbart (schedulable) när alla trådar håller sina deadlines 19

117 Schemaläggning - begrepp Schedulability (möjligt att schemaläggas): Ett system är schemaläggningsbart (schedulable) när alla trådar håller sina deadlines Schedulability test (test för möjlig schemaläggning) 19

118 Schemaläggning - begrepp Schedulability (möjligt att schemaläggas): Ett system är schemaläggningsbart (schedulable) när alla trådar håller sina deadlines Schedulability test (test för möjlig schemaläggning) Givet ett antal trådar och kunskap om deras prioriteter (RMS - perioder räcker!), besvarar ett sådant test frågan Är detta system schemaläggningsbart? 19

119 Schemaläggning - begrepp Schedulability (möjligt att schemaläggas): Ett system är schemaläggningsbart (schedulable) när alla trådar håller sina deadlines Schedulability test (test för möjlig schemaläggning) Givet ett antal trådar och kunskap om deras prioriteter (RMS - perioder räcker!), besvarar ett sådant test frågan Är detta system schemaläggningsbart? Svaret blir ja eller nej. 19

120 Schemaläggning - begrepp Schedulability (möjligt att schemaläggas): Ett system är schemaläggningsbart (schedulable) när alla trådar håller sina deadlines Schedulability test (test för möjlig schemaläggning) Givet ett antal trådar och kunskap om deras prioriteter (RMS - perioder räcker!), besvarar ett sådant test frågan Är detta system schemaläggningsbart? Svaret blir ja eller nej. Scheduling analysis (schemaläggningsanalys) 19

121 Schemaläggning - begrepp Schedulability (möjligt att schemaläggas): Ett system är schemaläggningsbart (schedulable) när alla trådar håller sina deadlines Schedulability test (test för möjlig schemaläggning) Givet ett antal trådar och kunskap om deras prioriteter (RMS - perioder räcker!), besvarar ett sådant test frågan Är detta system schemaläggningsbart? Svaret blir ja eller nej. Scheduling analysis (schemaläggningsanalys) Arbetet att bedöma ett systems egenskaper när det gäller schemaläggningen, utfört under systemets uppbyggande 19

122 Schemaläggning - begrepp Schedulability (möjligt att schemaläggas): Ett system är schemaläggningsbart (schedulable) när alla trådar håller sina deadlines Schedulability test (test för möjlig schemaläggning) Givet ett antal trådar och kunskap om deras prioriteter (RMS - perioder räcker!), besvarar ett sådant test frågan Är detta system schemaläggningsbart? Svaret blir ja eller nej. Scheduling analysis (schemaläggningsanalys) Arbetet att bedöma ett systems egenskaper när det gäller schemaläggningen, utfört under systemets uppbyggande Scheduling (schemaläggning) 19

123 Schemaläggning - begrepp Schedulability (möjligt att schemaläggas): Ett system är schemaläggningsbart (schedulable) när alla trådar håller sina deadlines Schedulability test (test för möjlig schemaläggning) Givet ett antal trådar och kunskap om deras prioriteter (RMS - perioder räcker!), besvarar ett sådant test frågan Är detta system schemaläggningsbart? Svaret blir ja eller nej. Scheduling analysis (schemaläggningsanalys) Arbetet att bedöma ett systems egenskaper när det gäller schemaläggningen, utfört under systemets uppbyggande Scheduling (schemaläggning) Specialfall: statisk schemaläggning 19

124 Schemaläggning - begrepp Schedulability (möjligt att schemaläggas): Ett system är schemaläggningsbart (schedulable) när alla trådar håller sina deadlines Schedulability test (test för möjlig schemaläggning) Givet ett antal trådar och kunskap om deras prioriteter (RMS - perioder räcker!), besvarar ett sådant test frågan Är detta system schemaläggningsbart? Svaret blir ja eller nej. Scheduling analysis (schemaläggningsanalys) Arbetet att bedöma ett systems egenskaper när det gäller schemaläggningen, utfört under systemets uppbyggande Scheduling (schemaläggning) Specialfall: statisk schemaläggning Normalfall: dynamiskt schemaläggning (kan vara prioritetsbaserad eller Round-robin ) 19

125 Schemaläggning - begrepp Schedulability (möjligt att schemaläggas): Ett system är schemaläggningsbart (schedulable) när alla trådar håller sina deadlines Schedulability test (test för möjlig schemaläggning) Givet ett antal trådar och kunskap om deras prioriteter (RMS - perioder räcker!), besvarar ett sådant test frågan Är detta system schemaläggningsbart? Svaret blir ja eller nej. Scheduling analysis (schemaläggningsanalys) Arbetet att bedöma ett systems egenskaper när det gäller schemaläggningen, utfört under systemets uppbyggande Scheduling (schemaläggning) Specialfall: statisk schemaläggning Normalfall: dynamiskt schemaläggning (kan vara prioritetsbaserad eller Round-robin ) OBS: Prioriteter och deadlines är till för korrekt realtidshantering (realtime correctness), medan den korrekta hanteringen av jämlöpande exekvering (concurrency correctness) INTE får vara kopplad till prioriteter! 19

126 Laboration 3 - periodiska trådar och mailbox 20

127 Laboration 3 - periodiska trådar och mailbox Ofta hamnar man i en situation där vissa aktiviteter i ett system ska utföras återkommande, möjligen med en given tidsperiod som de ska upprepas i (jfr laboration 1, tidsräknaren) 20

128 Laboration 3 - periodiska trådar och mailbox Ofta hamnar man i en situation där vissa aktiviteter i ett system ska utföras återkommande, möjligen med en given tidsperiod som de ska upprepas i (jfr laboration 1, tidsräknaren) Vissa aktiviteter har i sig ingen upprepning, de ska bara utföras en gång när någon händelse inträffar: när användaren trycker på en knapp ska knapptrycken hanteras, men när det inte händer något med knapparna behöver man inte göra något annat än att vänta (sporadiska trådar) eller rent av inte finnas (transaktionstråd). 20

129 Laboration 3 - periodiska trådar och mailbox Ofta hamnar man i en situation där vissa aktiviteter i ett system ska utföras återkommande, möjligen med en given tidsperiod som de ska upprepas i (jfr laboration 1, tidsräknaren) Vissa aktiviteter har i sig ingen upprepning, de ska bara utföras en gång när någon händelse inträffar: när användaren trycker på en knapp ska knapptrycken hanteras, men när det inte händer något med knapparna behöver man inte göra något annat än att vänta (sporadiska trådar) eller rent av inte finnas (transaktionstråd). Det kan vara bra att skilja den egentliga aktiviteten från periodhanteringen (om en sådan nu finns), så att man lättare kan komma åt tiden det ska ta för en aktivitet att utföras. En implementering kan då t ex erbjuda en perform -metod, som beskriver trådens jobb, medan run-metoden är redan implementerad i superklassen och implementerar loopen över återkommande anrop till perform. 20

130 Laboration 3 - periodiska trådar och mailbox Ofta hamnar man i en situation där vissa aktiviteter i ett system ska utföras återkommande, möjligen med en given tidsperiod som de ska upprepas i (jfr laboration 1, tidsräknaren) Vissa aktiviteter har i sig ingen upprepning, de ska bara utföras en gång när någon händelse inträffar: när användaren trycker på en knapp ska knapptrycken hanteras, men när det inte händer något med knapparna behöver man inte göra något annat än att vänta (sporadiska trådar) eller rent av inte finnas (transaktionstråd). Det kan vara bra att skilja den egentliga aktiviteten från periodhanteringen (om en sådan nu finns), så att man lättare kan komma åt tiden det ska ta för en aktivitet att utföras. En implementering kan då t ex erbjuda en perform -metod, som beskriver trådens jobb, medan run-metoden är redan implementerad i superklassen och implementerar loopen över återkommande anrop till perform. class Control extends PeriodicThread { Control() {super(20);} // Sampling period 20ms } public void perform() { // Perform ONE sample (i.e., no loop here!). double yr = getsetpoint(); double y = sample(); double u = controlpid(yr,y); setcontroloutput(u); } 20

131 Basklasser för periodiska uppgifter 21

132 Basklasser för periodiska uppgifter se.lth.cs.realtime.* (och Javas grundutbud) tillhandahåller olika typer av trådklasser som man kan bygga sina trådklassar på: 21

133 Basklasser för periodiska uppgifter se.lth.cs.realtime.* (och Javas grundutbud) tillhandahåller olika typer av trådklasser som man kan bygga sina trådklassar på: CyclicThread: PeriodicThread: SporadicThread: RTThread: JThread: Cykliskt upprepade uppgift utan specifik period Cykliskt upprepade uppgift med specifik period Cykliskt upprepade uppgift med en minimiperiod Basklass för de tre klasserna ovan. Ingen subklass av java.lang.thread Subklass av java.lang.thread, som erbjuder en metod perform som man ska implementera trådens uppgift i; perform kallas i en given period från run. Erbjuder också en mailbox (RTEventBuffer). 21

134 Tvättmaskiner och annan reglering 22

135 Tvättmaskiner och annan reglering En tvättmaskin ska enligt sin specifikation håller en viss vattentemperatur, beroende på det valda tvättprogrammet OCH steget i programmet. 22

136 Tvättmaskiner och annan reglering En tvättmaskin ska enligt sin specifikation håller en viss vattentemperatur, beroende på det valda tvättprogrammet OCH steget i programmet. Temperaturen måste alltså kontrolleras regelbundet och justeras enligt de ställda kraven, utan att det hamnar under eller över en viss gräns (under gränsen är kanske inte farligt, men över brukar inte vara bra för tvätten). 22

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

Läs mer

Realtidssystem. - Dödläge - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 5

Realtidssystem. - Dödläge - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 5 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

Läs mer

Realtidsprogrammering Ordinarie tentamen

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.

Läs mer

Exam Concurrent and Real-Time Programming

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

Läs mer

Tentamen Lösningar EDA698 Realtidssystem

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

Läs mer

Tråd C (ms) T (ms) A 4 16 B 3 10 C 4 25 D 2 12

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.

Läs mer

Omtentamen i Realtidsprogrammering för Au3, D3, E3

Omtentamen i Realtidsprogrammering för Au3, D3, E3 Omtentamen i Realtidsprogrammering för Au3, D3, E3 Datum: 2004-01-14 Tid: 0800-1300 Ansvarig lärare: Telefon: 1438 (kontor) Hjälpmedel: Inga särskilda hjälpmedel är tillåtna. Poäng: Tentamen omfattar 40

Läs mer

TENTAMEN I REALTIDSPROCESSER OCH REGLERING TTIT62

TENTAMEN I REALTIDSPROCESSER OCH REGLERING TTIT62 TENTAMEN I REALTIDSPROCESSER OCH REGLERING TTIT62 Tid: Tisdagen den 2 juni 27, kl 4.-8. Lokal: TER Ansvariga lärare: Inger Klein, 28 665 eller 73-9699, Calin Curescu, 28 937 eller 73-54355 Hjälpmedel:

Läs mer

Tentamen i Realtidsprogrammering för Au3, D3, E3

Tentamen i Realtidsprogrammering för Au3, D3, E3 Tentamen i Realtidsprogrammering för Au3, D3, E3 Ordinarie Tentamen Datum: 2005-10-21 Tid: 14:00-19:00 Ansvarig lärare: Telefon: 1438 (kontor) Hjälpmedel: Miniräknare Poäng: Tentamen omfattar 40 poäng

Läs mer

Realtidssystem Z EDA300 Tentamen 15/ , kl i V-huset

Realtidssystem Z EDA300 Tentamen 15/ , kl i V-huset Realtidssystem Z EDA300 Tentamen 15/12 2005, kl. 08.30 12.30 i V-huset Examinator: Docent Jan Jonsson Förfrågningar: Docent Jan Jonsson Telefon: 031 772 5220 Hjälpmedel: Utdrag ur Ada 95 Reference Manual

Läs mer

Aktivitetsschemaläggning för flerkärninga processorer

Aktivitetsschemaläggning för flerkärninga processorer Lunds Tekniska Högskola Datorarkitekturer med Operativsystem EDT621 Aktivitetsschemaläggning för flerkärninga processorer Tobias Lilja 5 december 2016 Innehåll 1 Inledning 3 1.1 Syfte................................

Läs mer

Outline. Datorsystemtekni. Kravspecifikation. Kravspecifikation (forts.)

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,

Läs mer

Tentamen EDA698 Realtidssystem (Helsingborg)

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.

Läs mer

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

Läs mer

Realtidssystem HT03. Vad är realtidssystem? Inbyggda system. Att programmera, Tasks (Uppgifter) Realtidssystem kräver analys

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

Läs mer

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

Läs mer

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

Läs mer

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

Läs mer

Fö 7 TSEA81. Scheduling

Fö 7 TSEA81. Scheduling Fö 7 TSEA81 Scheduling Reflektion Lab 3 Operation Linux Simple OS * wait pthread_mutex_lock si_sem_wait * signal pthread_mutex_unlock si_sem_signal * await pthread_cond_wait si_ev_await * cause pthread_cond_broadcast

Läs mer

Tentamen EDA698 Realtidssystem (Helsingborg)

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

Läs mer

TENTAMEN I REALTIDSPROCESSER OCH REGLERING TTIT62

TENTAMEN I REALTIDSPROCESSER OCH REGLERING TTIT62 TENTAMEN I REALTIDSPROCESSER OCH REGLERING TTIT62 Tid: Fredagen den 6 mars 27, kl 4.-8. Lokal: U Ansvariga lärare: Inger Klein, 28 665 eller 73-9699, Calin Curescu, 28 937 eller 73-54355 Hjälpmedel: Tabeller,

Läs mer

INSTITUTIONEN FÖR DATA- OCH INFORMATIONSTEKNIK

INSTITUTIONEN FÖR DATA- OCH INFORMATIONSTEKNIK INSTITUTIONEN FÖR DATA- OCH INFORMATIONSTEKNIK DIT162 Realtidssystem, 7,5 högskolepoäng Real-Time Systems, 7.5 credits Fastställande Kursplanen är fastställd av Institutionen för data- och informationsteknik

Läs mer

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

Läs mer

Föreläsning 13 Innehåll

Föreläsning 13 Innehåll Föreläsning 13 Innehåll Exempel på problem där materialet i kursen används Hitta k största bland n element Histogramproblemet Schemaläggning PFK (Föreläsning 13) VT 2013 1 / 15 Hitta k största bland n

Läs mer

Synkronisering. Föreläsning 8

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

Läs mer

Tentamen EDA698 Realtidssystem (Helsingborg)

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.

Läs mer

Realtidsprogrammering. En introduktion Implementering (med exempel från PIC)

Realtidsprogrammering. En introduktion Implementering (med exempel från PIC) Realtidsprogrammering En introduktion Implementering (med exempel från PIC) Utan timing Periodtid varierar beroende på funktionernas exekveringstid. Specificera endast maxtid ( Worst case) och eventuellt

Läs mer

Realtidsprogrammering

Realtidsprogrammering Realtidsprogrammering En introduktion - Principer och begrepp Realtidsprog. - Anders Arvidsson 1 Vad är ett realtidssystem? Ett system som reagerar på yttre händelser och ger svar inom en bestämd tid.

Läs mer

Institutionen för elektro- och informationsteknologi, LTH

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

Läs mer

Datorteknik. Föreläsning 5. Realtidssystem och realtidsprogrammering. Institutionen för elektro- och informationsteknologi, LTH.

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

Läs mer

Föreläsning 3: Händelsestyrda program och användargränssnitt

Föreläsning 3: Händelsestyrda program och användargränssnitt (2 september 2015 F3.1 ) Föreläsning 3: Händelsestyrda program och användargränssnitt Idag Från sekventiella till händelsestyrda program Lyssnare Kontroller Layout för ordning av kontroller (2 september

Läs mer

Tentamen vid Institutionen för Datavetenskap, Linköpings universitet

Tentamen vid Institutionen för Datavetenskap, Linköpings universitet TENTAMEN TDDC47 Realtids- och processprogrammering Datum: 2009-04-14 Tid: 14-18 Lokal: TER2 Jourhavande-lärare: Simin Nadjm-Tehrani (Tel: 070-2282412) Hjälpmedel: Poängantal: Miniräknare/Calculator 40p

Läs mer

Hitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet

Hitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet Föreläsning 13 Innehåll Algoritm 1: Sortera Exempel på problem där materialet i kursen används Histogramproblemet Schemaläggning Abstrakta datatyper Datastrukturer Att jämföra objekt Om tentamen Skriftlig

Läs mer

Tentamen vid Institutionen för Datavetenskap, Linköpings universitet

Tentamen vid Institutionen för Datavetenskap, Linköpings universitet TENTAMEN TDDC47 Realtids- och processprogrammering Datum: 2008-12-12 Tid: 8-12 Lokal: KÅRA Jourhavande-lärare: Jonas Elmqvist (Tel: 013-28 26 75, 070-647 63 72) Hjälpmedel: Poängantal: Engelsk lexikon/english

Läs mer

Tentamen, EDAA10 Programmering i Java

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

Läs mer

Tentamen i Realtidsprogrammering

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

Läs mer

Föreläsning 15: Parallella subrutiner. Parallellitet. Varför parallella underprogram?

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

Läs mer

Kompletterande kompendium till kursen Realtidsprogrammering

Kompletterande kompendium till kursen Realtidsprogrammering Kompletterande kompendium till kursen Realtidsprogrammering Mathias Broxvall, Lars Karlsson Örebro Universitet Januari 2010 v2010.1 1 2 Innehåll Innehåll...1 Processer i VxWorks...2 Multitasking...2 Ett

Läs mer

PROGRAMMERINGSTEKNIK TIN212

PROGRAMMERINGSTEKNIK TIN212 Data och Informationsteknik / Computer Science and Engineering Chalmers University of Technology and University of Gothenburg Robin Adams Göteborg 8 June 2018 PROGRAMMERINGSTEKNIK TIN212 Dag: Fredag Datum:

Läs mer

Föreläsning 13 Innehåll

Föreläsning 13 Innehåll Föreläsning 13 Innehåll Prioritetsköer och heapar Prioritetsköer och heapar ADT prioritetskö Heapar Implementering av prioritetskö med heap Klassen PriorityQueue i java.util Programexempel LPT-algoritmen

Läs mer

Vad är viktigast? Sammanfattning. Processer och trådar. Processer och trådar. Flerprocessorsystem. Schemaläggning. Interprocesskommunikation.

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

Läs mer

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

Läs mer

Tentamen Datorteknik och realtidssystem, TSEA81 Datum Lokal

Tentamen Datorteknik och realtidssystem, TSEA81 Datum Lokal Tentamen Datorteknik och realtidssystem, TSEA81 Datum 2018-04-0 Lokal G6 Tid 14-18 Kurskod TSEA81 Provkod TEN1 Kursnamn Datorteknik och realtidssystem Institution ISY Antal uppgifter 5 Antal sidor 16 (inklusive

Läs mer

Operativsystem ID2206 Tentamen TEN1 4.5 hp :00-18:00

Operativsystem ID2206 Tentamen TEN1 4.5 hp :00-18:00 Operativsystem ID2206 Tentamen TEN1 4.5 hp 2018-04-03 14:00-18:00 Instruktioner Du får, förutom skrivmateriel, endast ha med dig en egenhändigt handskriven A4 med anteckningar. Svaren skall lämnas på dessa

Läs mer

Datorarkitekturer med operativsystem ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON Datorarkitekturer med operativsystem ERIK LARSSON Pipelining Tid SSA P Pipelining FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO Superscalar pipelining FI DI CO FO EI WO FI DI

Läs mer

Operativsystem. Informationsteknologi sommarkurs 5p, 2004. Agenda. Slideset 7. Exempel på operativsystem. Operativsystem

Operativsystem. Informationsteknologi sommarkurs 5p, 2004. Agenda. Slideset 7. Exempel på operativsystem. Operativsystem Informationsteknologi sommarkurs 5p, 2004 Mattias Wiggberg Dept. of Information Technology Box 337 SE751 05 Uppsala +46 18471 31 76 Collaboration Jakob Carlström Slideset 7 Agenda Exempel på operativsystem

Läs mer

Föreläsning 5 Innehåll

Föreläsning 5 Innehåll Föreläsning 5 Innehåll Algoritmer och effektivitet Att bedöma och jämföra effektivitet för algoritmer Begreppet tidskomplexitet Datavetenskap (LTH) Föreläsning 5 VT 2019 1 / 39 Val av algoritm och datastruktur

Läs mer

Realtidssystem, device drivers. Föreläsning 10

Realtidssystem, device drivers. Föreläsning 10 Realtidssystem, device drivers Föreläsning 10 Dagens föreläsning Realtidssystem Device drivers (Multimedia video) Realtidssystem Karakteristika Mjuka realtidssystem Hårda realtidssystem Schemaläggning

Läs mer

Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID

Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID Vad gör vi här? Programmeringsteknik fördjupningskurs (EDAA01; 7,5hp) Valfri för F, N & BME (kan läsas från åk 2 eller i sommar!) Avancerad

Läs mer

syftar till att förbättra prestanda. Den kan avse något eller flera av följande mått.

syftar till att förbättra prestanda. Den kan avse något eller flera av följande mått. 71 4. 4.1. Allmänt Vid multiprogrammering kan det vara önskvärt att anpassa systemets beteende till olika tillämpningars behov. En anledning till multiprogrammering var att man önskade öka genomströmningen.

Läs mer

Java-syntax (arv) Exempel: public class Crow extends Bird {... } Jämför med Lab 1: public class FirstApp extends Frame {... }

Java-syntax (arv) Exempel: public class Crow extends Bird {... } Jämför med Lab 1: public class FirstApp extends Frame {... } Föreläsning 3 Arv Kategorisering Stora program leder till många klasser (tänk liknelsen med en affär med många varor). Att dela in saker i kategorier är en vanlig strategi för att hantera stora komplexa

Läs mer

Tentamen i Realtidsprogrammering

Tentamen i Realtidsprogrammering Tentamen i Realtidsprogrammering Omtentamen Datum: 2007-08-31 Tid: 08:00 11:00 Ansvarig lärare: Telefon: ej tillgänglig Hjälpmedel: Miniräknare Poäng: Tentamen omfattar 40 poäng fördelade på 5 uppgifter.

Läs mer

Operativsystem ID2200 Tentamen TEN1 3.8 hp :00-18:00

Operativsystem ID2200 Tentamen TEN1 3.8 hp :00-18:00 Operativsystem ID2200 Tentamen TEN1 3.8 hp 2018-04-03 14:00-18:00 Instruktioner Du får, förutom skrivmateriel, endast ha med dig en egenhändigt handskriven A4 med anteckningar. Svaren skall lämnas på dessa

Läs mer

Klasshierarkier - repetition

Klasshierarkier - repetition Klasshierarkier - repetition Klasser kan byggas på redan denierade klasser, egna och/eller färdigskrivna, genom: I att klassobjekt används som attribut (instansvariabler): har-relation. Exempel: traksystemet

Läs mer

Objektorienterad Programkonstruktion. Föreläsning 11 6 dec 2016

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

Läs mer

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

Läs mer

Tung bakgrundsaktivitet t.ex. Aktiva objekt t.ex. Animering, simulering. DD2385 Programutvecklingsteknik Några bilder till föreläsning 9 6/5 2013

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

Läs mer

Fö 5+6 TSEA81. Real-time kernel + Real-time OS

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

Läs mer

Trådar. Aktiva objekt

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.

Läs mer

Tentamen. Datorteknik och realtidssystem

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

Läs mer

TENTAMEN I REALTIDSPROCESSER OCH REGLERING TTIT62

TENTAMEN I REALTIDSPROCESSER OCH REGLERING TTIT62 TENTAMEN I REALTIDSPROCESSER OCH REGLERING TTIT6 Tid: Fredagen den 4 mars 8, kl 4.-8. Lokal: TER Ansvariga lärare: Inger Klein, 8 665 eller 73-96 99, Mikael Aslund, tel 8668 eller 77-4846 Hjälpmedel: Tabeller,

Läs mer

Tentamen, EDA501 Programmering M L TM W K V

Tentamen, EDA501 Programmering M L TM W K V LUNDS TEKNISKA HÖGSKOLA 1(3) Institutionen för datavetenskap Tentamen, EDA501 Programmering M L TM W K V 2010 04 13, 8.00 13.00 Anvisningar: Denna tentamen består av 4 uppgifter. Preliminärt ger uppgifterna

Läs mer

Tentamen. Datorteknik och realtidssystem

Tentamen. Datorteknik och realtidssystem Tentamen Datorteknik och realtidssystem, TSEA81 Datum 2017-08-18 Lokal TER2 Tid 14-18 Kurskod TSEA81 Provkod TEN1 Kursnamn Datorteknik och realtidssystem Institution ISY Antal frågor 5 Antal sidor (inklusive

Läs mer

Schemaläggning Unix. Minneshantering etc. Linux. Schemaläggning av trådar (kernel threads) Detaljer. Operativsystem - Lektion 7

Schemaläggning Unix. Minneshantering etc. Linux. Schemaläggning av trådar (kernel threads) Detaljer. Operativsystem - Lektion 7 Schemaläggning Unix 20 priority = CPU_usage + nice + base Minneshantering etc Operativsystem - Lektion 7-20 Linux Schemaläggning av trådar (kernel threads) Real-time FIFO Real-time round robin Timesharing

Läs mer

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

Läs mer

Systemkonstruktion LABORATION REALTIDSPROGRAMMERING

Systemkonstruktion LABORATION REALTIDSPROGRAMMERING Systemkonstruktion LABORATION REALTIDSPROGRAMMERING Laborationsansvariga: Anders Arvidsson, Björn Lundblad Utskriftsdatum: 2002-10-31 Laboranter: 1 Syfte Denna laboration syftar till att öva användningen

Läs mer

Concurrency Saker händer samtidigt. Process En instans av ett program

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)

Läs mer

Några gamla tentamensuppgifter: Processer. 3. Antag givet ett system i vilket rent CPU-bundna processer med följande egenskaper exekveras.

Några gamla tentamensuppgifter: Processer. 3. Antag givet ett system i vilket rent CPU-bundna processer med följande egenskaper exekveras. 1 Tentamen 1992-08-26 1. Fyra processer ska synkroniseras så att A går före B och B och C går före D. Realisera denna ordning genom att använda (potentiellt blockerande) send- och receive- operationer

Läs mer

Classes och Interfaces, Objects och References, Initialization

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

Läs mer

Operativsystem - Processkedulering

Operativsystem - Processkedulering Operativsystem - Processkedulering Mats Björkman 2015-02-02 Innehåll n Processer (föreläsning 2) n n n Processmodell Processtillstånd Trådar n Processkommunikation (föreläsning 3) n n n Semaforer Monitorer

Läs mer

Hjälpmedel: Inga hjälpmedel förutom penna, suddgummi och glatt humör.

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

Läs mer

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018 Static vs Dynamic binding Polymorfism Objekt-orienterad programmering och design (DIT95) Niklas Broberg, 2018 Diagnostiskt prov Shape + overlaps(shape): int return 1; Shape shape = new Shape(); Polygon

Läs mer

Spekulativ exekvering i CPU pipelining

Spekulativ exekvering i CPU pipelining Spekulativ exekvering i CPU pipelining Max Faxälv Datum: 2018-12-05 1 Abstrakt Speculative execution is an optimisation technique used by modern-day CPU's to guess which path a computer code will take,

Läs mer

Fö 7: Operativsystem. Vad är ett operativsystem? Målsättning med operativsystem. Styr operativsystemet datorn?

Fö 7: Operativsystem. Vad är ett operativsystem? Målsättning med operativsystem. Styr operativsystemet datorn? Fö 7: Operativsystem Introduktion. Klassificering. Vad är ett operativsystem? Program som kontrollerar andra andra program. Gränssnitt mellan användare och hårdvaran. Kärnan. Historisk översikt. Typeset

Läs mer

Javas Exceptions. DD2385 Programutvecklingsteknik Fler bilder till föreläsning 7 23/ Kort om Javas Exceptions Trådar i Java

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,

Läs mer

AVR 3 - datorteknik. Avbrott. Digitala system 15 hp. Förberedelser

AVR 3 - datorteknik. Avbrott. Digitala system 15 hp. Förberedelser Namn: Laborationen godkänd: Digitala system 15 hp AVR 3 - datorteknik LTH Ingenjörshögskolan vid Campus Helsingborg Avbrott. Syften med den här laborationen är att introducera avbrott. Avbrott som uppkommer

Läs mer

Datorsystemteknik Föreläsning 7DAVA14

Datorsystemteknik Föreläsning 7DAVA14 Datorsystemteknik Föreläsning 7DAVA14 Innehåll Introduktion (forts) Polling (cyklisk avfrågning) Större delen av materialet framtaget av :Jan Eric Larsson, Mats Brorsson och Mirec Novak IT-inst LTH Exempel

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP Objekt-orienterad programmering OOP F1:1 Delkursansvarig Epost Kursens webbsidor sm@fc.dsv.su.se http://people.dsv.su.se/~sm/oop/ Föreläsning 1 Introduktion till kursen OOP Vad är Java? Ett första

Läs mer

Föreläsning 2 Datastrukturer (DAT037)

Föreläsning 2 Datastrukturer (DAT037) Föreläsning 2 Datastrukturer (DAT037) Fredrik Lindblad 1 2016-11-02 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037 Tidskomplexitet

Läs mer

Föreläsning 13 Innehåll

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?

Läs mer

Föreläsningsmaterial (Arv) Skrivet av Andreas Lund

Föreläsningsmaterial (Arv) Skrivet av Andreas Lund Föreläsningsmaterial (Arv) Skrivet av Andreas Lund Inledning Arv är ett begrepp som är tätt förknippat med objektorientering. Principerna bakom arv är grundade i högst vardagliga relationer mellan olika

Läs mer

Mekanismer. (implementation)

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

Läs mer

Öka prestanda i Shared-Cache multi-core processorer

Öka prestanda i Shared-Cache multi-core processorer Öka prestanda i Shared-Cache multi-core processorer 1. Abstract Många processorer har nuförtiden flera kärnor. Det är även vanligt att dessa kärnor delar på högsta nivås cachen för att förbättra prestandan.

Läs mer

Tentamen, Algoritmer och datastrukturer

Tentamen, Algoritmer och datastrukturer UNDS TEKNISKA ÖGSKOA (6) Institutionen för datavetenskap Tentamen, Algoritmer och datastrukturer 23 8 29, 8. 3. Anvisningar: Denna tentamen består av fem uppgifter. Totalt är skrivningen på 36 poäng och

Läs mer

ADT Prioritetskö. Föreläsning 13 Innehåll. Prioritetskö vs FIFO-kö. Prioritetskö Exempel på användning. Prioritetsköer och heapar

ADT Prioritetskö. Föreläsning 13 Innehåll. Prioritetskö vs FIFO-kö. Prioritetskö Exempel på användning. Prioritetsköer och heapar Föreläsning 1 Innehåll ADT Prioritetskö Prioritetsköer och heapar Prioritetsköer och heapar ADT prioritetskö Klassen PriorityQueue i java.util ar Implementering av prioritetskö med heap Sortering med hjälp

Läs mer

Schemaläggningsmetodik för multi-core inom Windows 7 OS Vad är scheduling och hur schemalägger Windows OS sina processer?

Schemaläggningsmetodik för multi-core inom Windows 7 OS Vad är scheduling och hur schemalägger Windows OS sina processer? LUNDS TEKNISKA HÖGSKOLA Schemaläggningsmetodik för multi-core inom Windows 7 OS Vad är scheduling och hur schemalägger Windows OS sina processer? 2015-12-07 1. Inledning Det är ett faktum idag att multi-core

Läs mer

"Är en"-relation. "Har en"-relation. Arv. Seminarium 2 Relevanta uppgifter. I exemplet Boll från förra föreläsningen gällde

Är en-relation. Har en-relation. Arv. Seminarium 2 Relevanta uppgifter. I exemplet Boll från förra föreläsningen gällde Föreläsning 7 "Har en"-relation Arv "Har en" "Är en" Superklassen Object Överskuggning Fordonsexempel Seminarium 2 Relevanta uppgifter Uppgift 31 I exemplet Boll från förra föreläsningen gällde följande

Läs mer

TENTAMEN OOP

TENTAMEN OOP TENTAMEN OOP 2013-08-08 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli

Läs mer

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design Alex Gerdes, 2016

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design Alex Gerdes, 2016 Static vs Dynamic binding Polymorfism Objekt-orienterad programmering och design Alex Gerdes, 2016 Diagnostiskt prov Shape + overlaps(shape): int return 1; Shape shape = new Shape(); Polygon tripoly =

Läs mer

Carl-Fredrik Lindberg, ABB Corporate Research. Automation Scandinavia, Trådlös kommunikation i industrin - ett PiiA-projekt

Carl-Fredrik Lindberg, ABB Corporate Research. Automation Scandinavia, Trådlös kommunikation i industrin - ett PiiA-projekt Carl-Fredrik Lindberg, ABB Corporate Research. Automation Scandinavia, 2016-04-12 Trådlös kommunikation i industrin - ett PiiA-projekt Trådlös reglering Tidigare och nuvarande PiiA-projekt Control & Communications

Läs mer

Föreläsning 2 Datastrukturer (DAT037)

Föreläsning 2 Datastrukturer (DAT037) Föreläsning 2 Datastrukturer (DAT037) Fredrik Lindblad 1 1 november 2017 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037

Läs mer

Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON Datorteknik ERIK LARSSON Inledning Ken Thompson och Dennis M. Ritchie utvecklade C Turingpriset( Nobelpris i datavetenskap ), 1983 Alan Turing (1912-1954) För deras utveckling av generell OS teori och

Läs mer

Tentamen i Objektorienterad modellering och design Helsingborg

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

Läs mer

Föreläsning 8. Arv. Arv (forts) Arv och abstrakta klasser

Föreläsning 8. Arv. Arv (forts) Arv och abstrakta klasser Föreläsning 8 Arv och abstrakta klasser Arv Definierar en klass utifrån en redan existerande klass Den nya klassen utökar den ärvda klassen (extends) Den nya klassen behåller alla egenskaper som den gamla

Läs mer

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1 Institutionen för Data- och informationsteknik JSk TENTAMEN OBJEKTORIENTERAD PROGRAMVARUUTVECKLING Övningstentamen 1 OBS! Det kan finnas kurser med samma eller liknande namn på olika utbildningslinjer.

Läs mer

Introduktionsmöte Innehåll

Introduktionsmöte Innehåll Introduktionsmöte Innehåll Introduktion till kursen Kursens mål och innehåll Undervisning Datavetenskap (LTH) Introduktionsmöte ST 2019 1 / 14 EDAA01 Programmeringsteknik - fördjupningskurs Ingen sommarkurs

Läs mer

Fö 8: Operativsystem II. Minneshantering. Minneshantering (1) Minneshantering (2) Minneshantering och Virtuelltminne.

Fö 8: Operativsystem II. Minneshantering. Minneshantering (1) Minneshantering (2) Minneshantering och Virtuelltminne. Fö 8: Operativsystem II Minneshantering och Virtuelltminne. Virtuella I/O enheter och Filsystemet. Flerprocessorsystem. Minneshantering Uniprogrammering: Minnet delas mellan operativsystem och användarprogrammet.

Läs mer

Föreläsning 11. Giriga algoritmer

Föreläsning 11. Giriga algoritmer Föreläsning 11 Giriga algoritmer Föreläsning 11 Giriga algoritmer Användning Växelproblemet Kappsäcksproblemet Schemaläggning Färgläggning Handelsresandeproblemet Giriga algoritmer (Greedy algorithms)

Läs mer

2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning

2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning 2I1049 Föreläsning 5 Objektorienterad programmering i Java KTH-MI Peter Mozelius Objektorientering Världar uppbyggda av objekt Inte helt olikt vår egen värld Ett sätt att modularisera våra system Objekten

Läs mer