Tentamen vid Institutionen för Datavetenskap, Linköpings universitet TENTAMEN TDDD36 Säkra mobila System (Systemprogramvara) Datum: 2013-10-22 Tid: 8 - 12 Lokal: TER1 Jourhavande-lärare: Simin Nadjm-Tehrani (telefon 013-282411, 0702 282412) Hjälpmedel: Miniräknare, Lexikon 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 with respect to the number of the question. 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, or answers that do not consist of whole sentences to explain a topic. 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 November 7th, 2013. Good luck! Simin Nadjm-Tehrani Examiner TDDD36, Systems Software Tentamen vid Institutionen för Datavetenskap, Linköpings universitet Q1: a) Är målet med bankirsalgoritmen att motverka låsning i ett system genom att under körningstid detektera en pågående låsning? Om så är fallet beskriv hur görs detta. Annars, beskriv på vilket sätt bankirsalgoritmen bidrar till att motverka låsning. Du behöver inte förklara hur algoritmen fungerar i detalj. (2 points) b) Consider two processes P1 and P2 that execute concurrently (assume that each process executes only once): Process P1 While true X = 3; Y = 0; If Y > 1 X = X else X = X } do{ then - 1; + 2 Process P2 While true X = 3; Y = 2; If Y < 1 X = X else X = X } do{ then + 1 - 2 1. Assume that every statement (including the if..then..else statement) other than the While statement is implemented atomically. How many different interleavings of the executions of the two processes are possible? Motivate your answer! 2. Provide 2 different values for the variable X after two iterations of the while loop in each process, and present the interleavings of process traces leading to each value of X. (5 points) Tentamen vid Institutionen för Datavetenskap, Linköpings universitet d) Följande pseudokod påstås lösa problemet med ömsesidig uteslutning för två processer som delar en gemensam resurs via den ”kritiska sektionen”. Process P1 while (true) { flag2 = down turn = 2 while (flag2 == down and turn == 2) { do nothing } Process P2 while (true) { flag1 = down turn = 1 while (flag1 == down and turn == 1){ do nothing } critical-section flag1 = up non-critical-section critical-section flag2 = up non-critical-section } } Är programmet en korrekt implementering av ömsesidig uteslutning? I så fall presentera ett bevis! I annat fall ange ett motbevis. (4 points) e) Betrakta ett program med följande två processer och anta att kod som omsluts av {// …}// anses vara kritisk sektion (CS) för processerna. Process A Process B while (true) do { while (true) do { non_critical_section_A; {// start of CS {// start of CS if ((X mod 2) == 0) { X = X+1; Print(X); Z = X^2; } // end of CS Print(Z); } }// end of CS } non_critical_section_B } 1) Vad är den minimala mängden semaforer som krävs för att implementera ömsesidig uteslutning? För denna del kan du bortse från process kraschar. Motivera ditt svar! 2) Vi fortsätter med semaforen som en mekanism i denna del. Anta nu att Process A kan krascha i sin kritiska sektion. Om man önskar att under den omständigheten Process B skulle kunna fortsätta att köra, vad blir svaret till del 1) nu? (4 points) f) Ta ställning om följande påstående är sant eller falskt. Motivera ditt svar! 1) Man behöver minst två köer för att implementera en variant av monitor begreppet. 2) Monitorns stöd för att åstadkomma villkorssynkronisering är detsamma som stödet som semaforen erbjuder. (2 points) Tentamen vid Institutionen för Datavetenskap, Linköpings universitet Q2: a) Vad menas med begreppet bandbredd? Relatera detta begrepp till begreppet genomströmning i ett distribuerat system. (1 poäng) b) Consider an instant messaging system running on a mobile device that connects to a server where availability (online, offline, …) state for other users in the system is stored and can be retrieved. Decide which of the following properties is a functional property and which is an extra-functional property (also sometimes called a non-functional property), and motivate your answer! 1) An update about another user’s state on the server should result in an update on the own device. 2) The maximum latency for an update of another user’s state on the own device should be 5 seconds. 3) The application should make batch updates for consecutive messages (those that are produced by one user in a row with no reply from corresponding receiver), so that number of message transmissions is reduced and device battery can be saved. 4) The system should be scalable for up to 30 users, given a network bandwidth of 10Mb/s. (4 points) Q3: Att definiera och säkerställa prestanda i distribuerade system kräver att den önskade prestandan preciseras i form av interaktivitet (en. responsiveness), genomströmning, och lastbalansering. 1. Förklara vad menas med dessa termer. 2. För varje prestandakriterium ange ett exempel på möjliga åtgärder för ett system för att förbättra dess prestanda i det avseendet. (6 poäng) Q4: a) The following headlines appeared in the news in the past few months: “Failing electronic circuit caused a total stop at Arlanda airport for several hours” “Google suffered a brief and rare outage on Friday when all of its services became inaccessible for up to five minutes”. Tentamen vid Institutionen för Datavetenskap, Linköpings universitet In both cases the commentators have speculated about a single point of failure which refers to a fault source that is alone capable of leading to a (total) service outage. Explain a fault tolerance strategy that helps to avoid a system outage due to one single fault. (3 points) Q5: Förklara felmodellerna “crash”, “omission”, och “Byzantine” för processer som kör på en nod (CPU), och beskriv vilka paralleller finns för dessa felmoder i distribuerade system. (3 poäng) Tentamen vid Institutionen för Datavetenskap, Linköpings universitet b) 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 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