TDDD82/TDDD36 Datum: Tid:

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