Document 13050882

advertisement
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
Download