Tentamen vid Institutionen för Datavetenskap, Linköpings universitet TENTAMEN TDDD82/TDDD36 Säkra mobila System (Systemprogramvara) Datum: 2014-06-12 Tid: 14 - 18 Lokal: TER1 Jourhavande-lärare: Simin Nadjm-Tehrani (endast via telefon 0702 282412) Hjälpmedel: Behövs inte. Poängantal: 34p Betyg: 3, 4 and 5: U: 3: 4: 5: 17 23 29 - 16 p 22 p 28 p 34 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, ordered in question number. Your answers can be presented in Swedish or English. Make sure your answers include motivations and are presented precisely. A correct answer without any motivation will not be given any credits. Incorrect answers embedded in a partially correct one reduce the points given for that answer. 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 3rd July, 2014. Good luck! Simin Nadjm-Tehrani Examiner TDDD82/TDDD36, Systems Software Tentamen vid Institutionen för Datavetenskap, Linköpings universitet Q1: a) Följande pseudokod beskriver en algoritm som ska implementera ömsesidig uteslutning för två processer som delar en gemensam resurs via den ”kritiska sektionen”. Process P1 while (true) { flag1 = down turn = 1 while (flag2 == down and turn == 2) { do nothing } Process P2 while (true) { flag2 = down turn = 2 while (flag1 == down and turn == 1){ do nothing } critical-section flag1 = up non-critical-section critical-section flag2 = up non-critical-section } } Avgöra om algoritmen garanterar uteslutning av samtidiga tillgång till kritiska sektionen. Ange dina antaganden och motivera ditt svar! (3 poäng) b) A system is composed of three parallel processes that share three resource types R1, …, R3. The following table describes the current Allocation of resource instances to processes in the system, while running the Banker’s algorithm. PA R1 0 R2 3 R3 2 PB PC 4 3 1 2 5 3 The remaining Need of the three processes is described by the table below. PA R1 3 R2 0 R3 1 PB PC 0 0 2 1 0 0 Assume that there were 10 resource instances of each type available at the initial state. 1) Compute the currently Available resources in the system 2) If process PA requests one instance of resource R1 , two instances of R2, and one instance of R3, should Request A be granted? 3) If process PB comes up with Request B = (0, 1, 0), should the request be granted? (4 poäng) Tentamen vid Institutionen för Datavetenskap, Linköpings universitet c) The following code that uses semaphores has been constructed by a student to print the word “TACK” repeatedly. Is this a correct solution to the problem? Motivate your answer! (The student was told that it is allowed to print a substring of “TACK” in the beginning of a trace, but after that only sequences of “TACK” are required to be printed. ) Semaphore: letter_AK (initially 1), letter_TC (initially 0); Process A while (true) { wait(letter_TC); print(A); signal(letter_AK); wait(letter_TC); print(K); signal(letter_AK) } Process B while (true) { wait(letter_AK); print(T); signal(letter_TC); wait(letter_AK); print(C); signal(letter_TC) } (2 poäng) d) Anta att klient processer K1, …, Kn ska skicka sina anrop till en server genom att utnyttja en gemensam kanal med tillhörande sänd kö. Vi använder monitorn som mekanism för att varje process ska kunna få tillgång till kanalen med ömsesidig uteslutning. Monitorn har därmed operationen access() som kan skriva till sänd kön atomiskt. Packet kan skickas endast om kanalen inte redan är upptagen. Alla klienter som vill skicka medan en annan klient sänder måste köa tills kanalen är ledig. För detta anropas operationerna acquire()och release()för att hantera väntandet mellan processerna. Koden för access() ser så här ut: access() { acquire (); /* send packets that make up the call on server … release() } */ Skriv pseudokod för operationerna acquire() och release() och använd villkorsvariabler för att kunna automathantera köandet när en klient redan använder kanalen. (4 poäng) Tentamen vid Institutionen för Datavetenskap, Linköpings universitet e) Describe two methods for communication between processes running concurrently on a single processor. Which method is suitable for implementing the same process set on a distributed system running on multiple processors? (3 poäng) Q2: a) Ta ställning om följande utsagor (sant eller falsk), och motivera ditt svar med hänvisning till definitioner av termer. 1) Jitter och per-paket-latens (per packet latency) är orelaterade koncept i QoS sammanhang. 2) Intserv har tre tjänstekategorier varav två är likvärdiga under överbelastning. (4 poäng) b) Consider a server that stores and distributes the latest messages delivered by satellite communication from a nuclear reactor disaster area. The clients that are outside the area are thereby connected to the clients in the area via the server. Decide which of the following properties is a functional property and which is an extra-functional property that relates to quality of service. Motivate your answer! 1) An actor outside the area can ask for the messages received in the past 30 minutes to be dispatched at one go by the server. 2) The messages can be sorted in length and the actor outside the area may ask for the shorter messages to be delivered by the server if there are bandwidth limitations. 3) The system should provide a throughput of at least 2kb/s between any two clients connected with the lowest bandwidth. 4) To avoid a single point of failure the server should be replicated with a cold-passive failover mechanism. (4 poäng) Q3: a) Vilka huvudsakliga modeller för arkitekturen i ett distribuerat system existerar? Förklara de särskiljande egenskaperna i respektive modell. (3 poäng) b) Explain the need for the concept of fault model in distributed systems, and give two examples of fault models that apply to: 1) Nodes in a distributed system 2) Communication channels between nodes (one example for each). (3 poäng) Tentamen vid Institutionen för Datavetenskap, Linköpings universitet Q4: Tidningen NyTeknik rapporterade den 5:e maj 2014 resultatet av utredningen av Statens haverikommission efter tågolyckan i saltsjöbanan i Stockholm i januari 2013: ”Det enda städerskan gjorde var att stänga tågdörren. Då körde tåget åkte i väg och det slutade med kraschen in i ett bostadshus i Saltsjöbaden förra vintern, visar haverirapporten. I Statens haverikommissions utredning framgår att den manöver som stängde tågdörren var kopplad så att motorn drog igång. Eftersom tågets bromsar inte var i och spårets bromsanläggning var ur funktion kunde tåget rulla ut på Saltsjöbanan. Städerskan visste inte hur förarreglagen fungerade och hade inte en chans att stoppa tåget. Till slut tog hon skydd i ett säte bakom förarhytten. Där hittades hon svårt skadad av räddningspersonal efter kraschen.” Använd begreppen från IFIP WG 10.4 för att analysera felkälla-felyttring-haveri i detta sammanhang, och klassifiera felet som permanent eller intermittent. (4 poäng) Tentamen vid Institutionen för Datavetenskap, Linköpings universitet Glossary: English to Swedish atomic – atomisk (oavbrytbar) request – begäran availability – tillgänglighet response time – responstid avoid – undvika safety – säkerhet bandwidth – bandbredd scheduler – schemaläggare broker – medlare security – säkerhet clock drift – klockdrift serialisable - serialiserbar concurrency – samtidighet shaping - formning consistency – konsistens shared memory – gemensamt minne deadlock – låsning (baklås) starvation – svält delay – fördröjning sufficient condition- tillräckligt villkor deliberate – avsiktlig synchronisation – synkronisering dependability – pålitlighet system call – systemanrop diversity – mångfald thread - tråd error – felyttring throughput – genomströmning event – händelse trace – spår failure – haveri transparency – transparens fault – felkälla trust – tillit fault tolerance – feltolerans validation – validering forecast – förutse verification - verifiering inheritance – arv vulnerability - sårbarhet integrity – dataintegritet interleavings – sammanflätningar interoperability – interoperabilitet intrusion – intrång latency - latens maintainability – reparerbarhet malicious - illvillig middleware - mellanvara mutual exclusion – ömsesidig uteslutning necessary condition – nödvändigt villkor non-functional property – ickefunktionell egenskap omission – utelämnande performance – prestanda preemptible – avbrytbar prevent – förebygga quality of service – tjänstekvalitet race condition – kapplöpningstillstånd release - släppning reliability – tillförlitlighet rendundancy – redundans replica – kopia replication – replikering Tentamen vid Institutionen för Datavetenskap, Linköpings universitet Swedish – English arv - inheritance atomisk (oavbrytbar) – atomic avbrytbar - preemptible avsiktlig - deliberate bandbredd - bandwidth begäran - request dataintegritet - integrity felkälla - fault feltolerans - fault tolerance felyttring - error fördröjning - delay förebygga - prevent formning - shaping förutse - forecast gemensamt minne - shared memory genomströmning - throughput händelse - event haveri - failure ickefunktionell egenskap - non-functional property illvillig - malicious interoperabilitet - interoperability intrång – intrusion kapplöpningstillstånd – race condition klockdrift - clock drift konsistens - consistency kopia - replica låsning (baklås) - deadlock latens - latency mångfald - diversity medlare - broker mellanvara - middleware nödvändigt villkor - necessary condition ömsesidig uteslutning - mutual exclusion pålitlighet - dependability prestanda - performance redundans - rendundancy reparerbarhet - maintainability replikering - replication responstid - response time säkerhet - safety säkerhet - security sammanflätningar - interleavings samtidighet - concurrency sårbarhet - vulnerability schemaläggare - scheduler serialiserbar - serialisable släppning – release spår - trace svält - starvation synkronisering - synchronisation systemanrop - system call tillförlitlighet - reliability tillgänglighet - availability tillit - trust tillräckligt villkor - sufficient condition tjänstekvalitet - quality of service tråd - thread transparens - transparency undvika - avoid utelämnande - omission validering - validation verifiering - verification