Realtidssystem. - Schemaläggning - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 6
|
|
- Karl-Erik Strömberg
- för 5 år sedan
- Visningar:
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 Stora delar baserad på: Föreläsningsmaterial EDA040 (Klas Nilsson, Mathias Haage) samt EDA698 (Mats Lilja)
Läs merRealtidssystem. - 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 merRealtidsprogrammering 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 merExam 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 merTentamen 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 merTrå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 merOmtentamen 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 merTENTAMEN 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 merTentamen 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 merRealtidssystem 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 merAktivitetsschemalä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 merOutline. 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 merTentamen omfattar 40 poäng fördelade på 7 uppgifter. 20 poäng krävs för betyget 3, 30 poäng för betyget 4 och 36 poäng för betyget 5.
% & ' ()* #$! "#$ +-,/.
Läs merTentamen 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 merRealtidssystem. - 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 merRealtidssystem 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 merRealtidssystem. - 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 merRealtidssystem. - 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 merRealtidssystem. - 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 merFö 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 merTentamen 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 merTENTAMEN 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 merINSTITUTIONEN 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 merRealtidssystem. - 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 merFö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 merSynkronisering. 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 merTentamen 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 merRealtidsprogrammering. 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 merRealtidsprogrammering
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 merInstitutionen 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 merDatorteknik. 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 merFö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 merTentamen 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 merHitta 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 merTentamen 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 merTentamen, 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 merTentamen 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 merFö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 merKompletterande 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 merPROGRAMMERINGSTEKNIK 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 merFö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 merVad ä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 merFö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 merTentamen 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 merOperativsystem 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 merDatorarkitekturer 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 merOperativsystem. 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 merFö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 merRealtidssystem, 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 merFö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 mersyftar 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 merJava-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 merTentamen 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 merOperativsystem 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 merKlasshierarkier - 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 merObjektorienterad 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 merTDDIU81. 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 merTung 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 merFö 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 merTrå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 merTentamen. 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 merTENTAMEN 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 merTentamen, 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 merTentamen. 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 merSchemalä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 merRealtidssystem. - 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 merSystemkonstruktion 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 merConcurrency 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 merNå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 merClasses 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 merOperativsystem - 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 merHjä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 merStatic 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 merSpekulativ 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 merFö 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 merJavas 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 merAVR 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 merDatorsystemteknik 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 merOOP 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 merFö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 merFö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 merFö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 merMekanismer. (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 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 merTentamen, 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 merADT 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 merSchemalä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
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 merTENTAMEN 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 merStatic 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 merCarl-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 merFö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 merDatorteknik 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 merTentamen 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 merFö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 merOBJEKTORIENTERAD 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 merIntroduktionsmö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 merFö 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 merFö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 mer2I1049 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