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 dictionary Miniräknare/Minicalculator 40p Betyg: F, 3, 4 and 5: U: - 19 p 3: 20-26 p 4: 27-33 p 5: 34-40 p INSTRUCTIONS: Write your anonymous ID number on each sheet of paper that you hand in. Further, pages should only contain one answer per page (answers to sub-questions can be on the same page). You are asked to only answer on the front page of the paper. Sort all the sheets that you hand in with respect to the number of the question. Make sure your answers are presented clearly and precisely. Points will not be given to answers that cannot be read due to bad handwriting. Your answers can be presented in Swedish or English. Your answers shall clearly show the motivation or method for the solution. A correct answer without any explanation will not be given any credits (figures can be of help when describing but should be accompanied by a text description). In those cases where you are in doubt about the question, write down your interpretation and your assumptions and answer the question based on the interpretation. Note that a correct answer embedded in errors may give reduction in points, so make sure your answers are to the point. Results are reported no later than January 5th, 2009. Good luck!!! Simin Nadjm-Tehrani Examiner TDDC47
Q1: Processer, synkronisering och inter-process kommunikation a) Betrakta följande kod för en process Pi som använder semaforen mutex. Anta att det finns 10 processer med liknande kod struktur i samma program, och att alla använder samma semafor. 1. Fungerar ömsesidiga uteslutningen om semaforen initialiseras till 0? 2. Finns det andra konsekvenser från denna initialisering? I så fall vilka? 3. Hur fungerar ömsesidig uteslutning om samma program initialiserar semaforen till 1? 4. Vad ska initialvärdet för mutex vara för att undvika att fler än 5 processer är i kritiska sektionen samtidigt? Motivera ditt svar! var mutex: semaphore; (* initialise *) & process Pi loop wait(mutex) critical_section signal(mutex) non-critical_section end end Pi b) Hur skiljer sig processprogrammering från parallellprogrammering? (1poäng) c) Betrakta program som är avsedda att köras på en CPU och som modelleras m.h.a. processbegreppet. Nämn 2 andra vanliga abstraktioner som kan användas för att modellera samma programvarusystem, och beskriv skillnader mellan syftet med dessa abstraktioner jämfört med processabstraktionen. d) Anta ett system består av tre parallella processer som delar tre resurser. Det finns 2 instanser av R 1 och R 3 var, samt 6 instanser av R 2. Följande tabell beskriver processernas maximala behov av olika resurs typer. Resurs( ) P A P B P C Process ( ) R 1 2 1 1 R 2 1 6 2 R 3 2 1 1 Betrakta systemet när resursallokeringsdiagramet nedan (figur 1) beskriver resursdelningstillståndet och besvara följande frågor med tanke på förekomster av baklås ( deadlock ): 1. Är systemet i ett säkert tillstånd? 2. Om process B begär (0,3, 1) instanser av resurstyper R 1 resp. R 2 och R 3, ska dessa resurser allokeras utan att systemet riskerar baklås i framtiden?
3. Hade resurstypen R 2 funnits i 2 exemplar (istället för 6), skulle samma resursallokeringsdiagram kunna direkt indikera låsning i nuvarande tillståndet? R 1 P C P A P B R 2 R 3 Figur 1. Resursallokeringsdiagram (5 poäng) Q2: Schemaläggning och hantering av delade resurser a) Ge ett exempel var för följande klasser av system (subsystem): (i) hårda realtidssystem som inte betraktas som inbyggda system, (ii) mjuka realtidssystem, och (iii) inbyggda system som inte är realtidssystem. Exemplen ska finnas inom industriproduktion. b) Ange om följande utsagor är sanna eller falska, och motivera ditt svar: 1. Det räcker med en process som svälter för att ett system ska vara i låsning. 2. När processer i en processmängd inte delar resurser så kan systemet inte låsa sig. 3. Det finns inga schemaläggningsalgoritmer som förebygger både låsning och svält. c) Den 26 februari 2008 kunde man läsa i Ny Teknik om automatiska truckar på Karolinska sjukhuset i Huddinge. Med hjälp av laserstrålar som reflekteras i väggarna kan varje vagn känna av var den befinner sig. Truckarna används för att hämta och köra ut mat, tvätt, kläder och annat i olika avdelningar. Spindeln i hela kommunikationsnätet är en dator som styr trådlöst. Den enklaste varianten på styrsystem på varje truck innehåller 5 beräkningsprocesser. Två processer hanterar förflyttning längs X- respektive Y-axeln och kräver max 2,5 ms var som beräkningstid. Dessa körs periodiskt var 40 ms. En process hanterar navigationen och har max beräkningstid motsvarande 20 ms. En fjärde process hanterar kommunikation med centraldatorn via trådlösa nätet. Denna process tolkar inkomna meddelanden och agerar på olika kommandon genom att sätta nya parametrar i de andra styrprocesserna. Den maximala beräkningstiden för kommunikationsprocessen uppskattas vara 8 ms och det minimala interankomstintervallet för meddelanden lär vara 40 ms. Den femte processen övervakar
kollisioner med oväntade objekt. Den körs som en periodisk process med samplingsintervallet 10 ms och tar max 1 ms att reagera för att stoppa trucken. 1. Anta att navigationsprocessen körs en gång var 50:e ms. Konstruera ett cykliskt schema för processmängden och ange minor - resp. major cycle. Kommentera fördelar och nackdelar i ditt framtagna cykliska schema. 2. Betrakta systemet med ovanstående processer, och anta nu att processmängden ska schemaläggas med EDF. Anta att processerna släpps periodiskt även i detta sammanhang. Vad händer om navigationsprocessen fastnar i ett fel läge och inte avslutar sin beräkning förrän efter 30 ms? Förklara hur andra processer påverkas av navigationsprocessens överskridning av sin maximala exekveringstid. d) Bevisa eller motbevisa följande påstående: När man använder takprotokollet immediate ceiling protocol tillsammans med en schemaläggningsalgoritm som använder fasta prioriteter så kan en process blockeras av en annan process högst en gång i sin livcyckel. Q3: Schemaläggning av reglerprocesser Betrakta en distribuerad reglerloop (enligt figuren nedan). Regulatorn F(s) är implementerad på en nod medan aktuatorn är implementerad på en separat nod. Fler processer än reglerprocessen körs på reglernoden och processerna är schemalagda enligt EDF på processorn. Kommunikation mellan noderna görs över ett CAN-nätverk (time-triggered input och output används inte). Figur 2. Distribuerad reglerloop a) Introducera och beskriv de icke försumbara fördröjningarna τ i i reglerloopen i figur 2. Förklara hur man estimerar dem och uppge vilka antaganden du gör. b) Definiera termen reglerfördröjning ( control delay ). (1 poäng) c) Ta fram en överföringsfunktion G c (s) som relaterar insignalen Y r (s) och utsignalen Y(s) på det slutna systemet enligt Y ( s) = G ( s) Y ( s) där eventuella tidsfördröjningar är inkluderade. c r
Q4: Real-time communication a) Ett distribuerat system som körs över en TTP buss brukar innehålla en tidsmässig brandvägg ( temporal firewall ). Vad menas med detta uttryck? b) När man använder CAN bussen i ett distribuerat system så kan beräkningar i en nod vara funktionellt beroende av en annan nods beräkning. Tydliggör vad som händer när ett fel som uppträder i en nod leder till att noden inte blir klar med sin beräkning i tid. Anta att resultatet (i form av ett meddelande) skickas så småningom, men med en avsevärd jitter. Hur påverkas responstiderna för andra meddelanden som är avsedda att skickas på CAN bussen? Betrakta både meddelanden som har högre prioritet och de som har lägre prioritet än det försenade meddelandet. Om ditt resonemang bygger på ytterliggare antaganden ange dessa!