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 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. Your answers can be presented in Swedish or English. Make sure your answers are presented clearly and precisely. Your answers shall provide the motivation or method for the solution. A correct answer without any explanation will not be given any credits. Negative points are drawn for incorrect answers embedded in partially correct ones. Points will not be given to answers that cannot be read due to bad handwriting. Hints: Try to dispose of your time on each question in proportion of the assignment points. 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. Figures can be of help when describing but should be accompanied by a text description. Results are reported no later than April 30th, 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 3 processer med liknande kod struktur i samma program, och att alla använder samma semafor. Är detta ett bra sätt att implementera ömsesidig uteslutning? Varför? Varför inte? var mutex: semaphore; (* initialise *) mutex = 0 (* tilldelas värdet 0 *) process Pi loop wait(mutex) critical_section signal(mutex) non-critical_section end end Pi b) Låsning kan uppstå endast om fyra villkor gäller in ett system med parallella processer som delar resurser (så kallade Coffman villkoren). För att förebygga eller undvika låsning räcker därmed att omöjliggöra någon av dessa villkors uppfyllelse. Beskriv Coffman villkoren kortfattat. Ange två exempel på metoder som förebygger eller undviker låsning och motivera genom att relatera till dessa villkor. (6 poäng). b) Beskriv innebörden hos wait och signal operationer i en monitor, och illustrera deras användning mha ett exempel som använder två villkorsvariabler för villkorssynkronisering mellan en process som läser av och en process som skriver på en gemensam buffer. Q2: Schemaläggning och hantering av delade resurser ( 4 poäng) a) Ange om följande utsagor är sanna eller falska, och motivera ditt svar: 1. Schemaläggningsalgoritmers huvudfunktion är att motverka låsning. 2. Schemaläggningsalgoritmen rate monotonic är en optimal schemaläggningsalgoritm. 3. Cykliskt schemaläggning har svårt att motverka jitter. (3 poäng) b) I Ny Teknik den 17 maj 2006 kunde man läsa om ABB:s nya styrsystem för industrirobotar. Med detta kan ett och samma styrsystem hantera flera robotar samtidigt, och man vinner mycket i prestanda eftersom vissa moment kan göras både snabbare och bättre. Exempelvis kan en robot hålla ett arbetsstycke som ska svetsas medan en annan robot svetsar, och under svetsning kan man vrida arbetsstycket så att svetsen alltid är uppåt. Datorn som styr robotarna har flera uppgifter: Positionsreglering av robotarna. Bangenerering dvs generera referenssignal för respektive robot
Felövervakning dvs avgöra när en robot inte agerar som det var tänkt, justera läget i vissa fall, och larma operatören i vissa andra fall. I den första versionen av systemet görs en utnyttjandegradsanalys för två robotar som ska styras från samma CPU. Varje robot har tre positionsregleringsprocesser som körs med samplingstid T = 20 ms. Dessutom finns två bangenereringsprocesser och två övervakningsprocesser (sammanlagt 10 processer). Anta att varje positionsregleringsprocess (dvs i resp. x, y och z led, för varje robot) har en maximal beräkningstid av 2ms. Anta vidare att bangenerering, respektive övervakningen har maximala beräkningstider motsvarande 5ms respektive 10 ms per robot. Samplingsintervallet för bangenerering är 40 ms. 1. Betrakta earliest deadline first (EDF) som schemaläggningsmetod. Om vi antar att schemaläggningens CPU-utnyttjande ( overhead ) är försumbar, vad är den teoretiska övregränsen för hur ofta systemet kan detektera ett fel i robothanteringen? 2. Betrakta fallet där fel inte antas förekomma oftare än varannan sekund. Betrakta alla beräkningar med samma samplingsintervall som en process nu (dvs 6 positioneringsprocesser som 1, 2 bangenereringsprocesser som 1, och 2 felövervakningsprocesser som 1). Är denna processmängd schemaläggningsbar med rate-monotonic metoden? (4 poäng) 3. Utöver försumbar utnyttjandegrad för schemaläggare vilka andra antaganden ligger till grund för analysen under 1. ovan? Ge ett exempel till! (1 poäng) 4. Anta nu att minsta interankomstintervall för fel i systemet är 12 sekunder, och att positionsreglering samt bangenerering kan optimeras så att den maximala beräkningstiden halveras. Med samma datorkraft och EDF som schemaläggningsalgoritm, vad är den teoretiska övre gränsen för antalet robotar som man kan köra i samma system? c) 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 livscykel. (3 poäng) Q3: Schemaläggning av reglerprocesser Företaget X-by-wire utvecklar servosystem för bilar. Systemet består av en sensornod och en servonod. Sensornoden mäter rattvinkeln a r (t) medan servonodens återkopplar hjulvinkeln a(t) till regleralgoritmen F för att kunna beräkna den spänning v(t) som måste till för att reglera hjulservot W. Kommunikationen mellan noderna sker över bilens CAN-nätverk, det finns alltså ingen mekanisk koppling mellan ratten och hjulen.
Sensornod Nätverk Servonod + F a r (t) A/D - D/A v(t) W a(t) A/D I sensornoden samplas rattvinkeln a r (t) periodiskt med samplingsperioden T och omvandlas till en diskret signal genom en A/D-omvandlare. Efter A/D-omvandlingen skickas rattvinkel a r till servonoden via CAN-bussen. I servonoden samplas hjulvinkeln a(t) periodiskt med samplingsperioden T. När v är beräknad, D/A-omvandlas v och v(t) erhålls. Tiden för A/D och D/A omvandling är δ ad. Anta att a r (t) och a(t) samplas vid samma tidpunkt, tiden för A/D- och D/A-omvandling är δ ad, regleralgoritmen F:s maximala exekveringstid är δ c och att transmissionstiden för ett paket som innehåller a r är δ n. (a) Vad är den maximala reglerfördröjningen (control delay)? Motivera! (1 poäng) (b) Ta fram en överföringsfunktion G c (s) som relaterar insignalen A r (s) och utsignalen A(s) på det slutna systemet enligt A( s) = G ( s) A ( s). Du kan anta för enkelhetens skull att δ + δ T. (3 poäng) ad n c r Q4: Real-time communication a) I en TTP buss finns det flera mekanismer för att meddelande som felaktigt skickas (bla för tidigt eller för sent) från en nod inte ska kunna påverka andra meddelandens överföringstid på bussen. Beskriv följande två mekanismers roll: 1. Feldetektering i en nod (för att åstadkomma så kallad feltysthet) 2. Klocksynkronisering (4 poäng) b) Man kan avgöra om meddelanden som skickas på en CAN nätverk kommer fram före respektive deadline förutsatt att varje meddelande tilldelas en fast prioritet som gäller i hela distribuerade systemet. Responstidsanalys för CAN meddelanden utförs alltså på liknande sätt som responstidsanalys för processer med fasta prioriteter då dessa ska köras på gemensam CPU. Ange tre likheter och två skillnader mellan responstidsberäkningen för processer (tex i rate-monotonic schemaläggning) jämfört med responstidsanalys för meddelanden på CAN. (5 poäng)