Transcript Datorsystem

Datorsystem
Tentamen
2011-10-29
Instruktioner
Samtliga svar skall vara motiverade och l¨asbara. Eventuella tabeller och ber¨akningar som
anv¨ands f¨or att n˚
a svaret ska ocks˚
a finnas med i l¨osningen. Ett svar m˚
aste vara l¨asligt f¨
or
att kunna bed¨
omas. Ofullst¨
andigt motiverade svar kan inte ge full po¨
ang!
F¨or del A kan flera fr˚
agor besvaras p˚
a samma sida, men f¨or del B ska samtliga fr˚
agor besvaras
p˚
a en egen sida.
Hj¨
alpmedel
Inga hj¨alpmedel ¨
ar till˚
atna.
R¨
attning och betygsskala
Denna tentamen best˚
ar av tv˚
a delar: A och B. Del A kan maximalt ge betyget E, och man
m˚
aste vara godk¨
and p˚
a del A f¨
or att kunna f˚
a ett h¨ogre betyg p˚
a del B. Del A och del B har
varsin po¨angskala enligt tabellen nedan.
F
0-9
Del A
Fx
E
10-11 12-16
D
6-9
Del B
C
B
10-15 16-20
A
21-24
Resultatet av tentamen kommer att meddelas senast 18 november 2011. Den som f˚
ar betyget
Fx m˚
aste ta kontakt med kursens examinator senast 2 december 2011. Komplettering f¨or betyg
Fx kommer att vara skriftlig, eller skriftlig samt muntlig, beroende p˚
a examinators bed¨omning.
Lycka till!
1
Del A
1. (a) Konvertera talet 5BC16 till den bin¨ara talbasen.
(1 A-po¨
ang)
Lo
an den hexadecimala talbasen till den
¨sning: Tumregeln vid o¨vers¨attning fr˚
bin¨
ara talbasen ¨
ar att ¨
overs¨atta varje enskild position till ett fyrabitars bin¨art tal,
och sedan s¨
atta ihop alla delarna. F¨or 5BC16 f˚
ar vi tre steg: 516 = 01012 , B16 =
1110 = 10112 och C16 = 1210 = 11002 . Delarna ¨ar klara och det resultatet blir att
5BC16 = 101 1011 11002 . Den f¨orsta nollan tas bort eftersom den inte har n˚
agon
signifikans.
(b) Konvertera talet 5BC16 till den decimala talbasen.
(1 A-po¨
ang)
L¨
osning: H¨
ar finns tv˚
a alternativ; antingen ¨overs¨atta direkt till den decimala
talbasen eller att g˚
a via det bin¨ara v¨ardet som ber¨aknades tidigare. En direkt
overs¨
attning ger 5BC16 = 5∗162 +11∗161 +12∗160 = 5∗256+11∗16+12 = 146810 .
¨
G˚
ar man ist¨
allet via den bin¨ara talbasen f˚
ar vi 5BC16 = 101 1011 11002 = 1 ∗ 210 +
1∗28 +1∗27 +1∗25 +1∗24 +1∗23 +1∗22 = 1024+256+128+32+16+8+4 = 146810
2. (a) Illustrera hur man tar fram en Hammingkod f¨or bitstr¨angen 1101.
(1 A-po¨
ang)
L¨
osning: F¨
or en bitstr¨
ang med fyra bitar kommer en Hammingkod ge tre paritetsbitar. H¨
ar anv¨
ands j¨
amn paritet, men det g˚
ar ocks˚
a bra att anv¨anda udda
paritet. Varje f¨
alt ¨
ar numrerat s˚
a att det framg˚
ar var delarna ur bitstr¨angen ska
placeras i venndiagrammet. Numreringen kan g¨oras p˚
a olika vis, s˚
a det finns fler
korrekta svar.
7
3
6
0
0
0
1
2
1
4
1
1
1
5
Med hj¨
alp av venndiagrammet f˚
ar vi ut bitstr¨angen 1101|100, d¨ar de tre sista
bitarna a
¨r paritetsbitarna.
(b) Visa hur man anv¨
ander Hammingkod f¨or att korrigera fel som uppst˚
att f¨or en bitstr¨angen 1101.
(1 A-po¨
ang)
2
L¨
osning: Bilden nedan visar samma Hammingkod som ovan, men paritetsbiten i
f¨
alt tv˚
a har inverterats.
7
3
6
0
0
0
1
2
0
4
1
1
1
5
Med hj¨
alp av paritetsbiten i det sjunde f¨altet finner vi att ett av f¨alten 2,3 eller 4
a
r
inkorrekt.
Paritetsbiten a¨r 0, men bara en av de tre som ing˚
ar i bitstr¨angen som
¨
f¨
alt 7 kontrollerar ¨
ar 1. Eftersom vi har j¨amn paritet b¨or det inneb¨ar att antingen
f¨
alt 2 eller 4 b¨
or vara en etta.
Om vi d¨
arefter kontrollerar de tv˚
a resterande paritetsbitarna ser vi att biten i f¨alt
6 fortfarande st¨
ammer f¨
or f¨alt 1,3 och 4. Paritetsbiten i f¨alt 5 st¨ammer d¨aremot
inte. Den ¨
ar 1, vilket tillsammans med en etta b˚
ade i f¨alt 1 och 4 ger fel n¨ar vi har
j¨
amn paritet.
Vi letar efter gemensamma f¨alt f¨or de tv˚
a paritetsbitar som inte st¨amde och ser
att f¨
alt 2 och 4 ¨
ar gemensamma. Eftersom f¨alt 4 ocks˚
a ing˚
ar den cirkel som ger
paritetsbiten i f¨
alt 6 kan inte f¨alt 4 ha den felaktiga biten, eftersom f¨alt 6 st¨amde.
D¨
armed ¨
ar det f¨
alt 2 som har den felaktiga biten, och vi kan korrigera genom att
toggla det nuvarande v¨
ardet. 0 i f¨alt 2 blir d¨armed 1.
3. I en flerk¨
arning processor d¨
ar varje k¨arna har dedikerat cacheminne kan problem med
cache¨overenst¨
ammelse (cache coherency) uppst˚
a. F¨orklara hur den typen av problem kan
uppst˚
a.
(2 A-po¨
ang)
Lo
a som inneb¨ar att tv˚
a eller fler dedikerade cacheminnen
¨sning: Problem kan uppst˚
har olika v¨
arden sparade f¨
or samma minnesadress. Problemet kan uppst˚
a oavsett om
write back eller write through anv¨ands som tillbakaskrivningsteknik f¨or cacheminnet.
Vid write back skrivs ¨
andringar i f¨orsta hand bara till cacheminnet och sparas inte i
prim¨
arminnet f¨
or ¨
an cacheraden rensas ut ur cachen. Ponera att en processork¨arna, processork¨
arna ett, l¨
aser in en referens fr˚
an prim¨arminnet som sparas i processork¨arnans
dedikerade cacheminne. N¨
ar processork¨arna ett sedan ¨andrar v¨ardet p˚
a minnesplatsen
s˚
a kommer ¨
andringen att sparas i cacheminnet, men inte skrivas till prim¨arminnet p˚
a
grund av write back-tekniken. Vid en senare tidpunkt l¨aser en annan processork¨arna,
processork¨
arna tv˚
a, in samma minnesreferens som sparas i den processork¨arnans de-
3
dikerade cacheminne. Nu har en situation uppst˚
att d¨ar samma minnesreferens ligger
sparad i prim¨
arminnet f¨
or b˚
ade processork¨arna ett och processork¨arna tv˚
a. Dock ligger
olika v¨
arden sparade i de b˚
ada processork¨arnornas dedikerade cacheminnen, d¨armed ¨ar
inte de b˚
ada cacheminnena inte ¨
overst¨ammande.
Om vi ist¨
allet skulle anv¨
anda write through kommer en f¨or¨andring av v¨ardet f¨or en
adress att skrivas till prim¨
arminnet och cacheminnet varje g˚
ang vi g¨or en f¨or¨andring.
Dock kan tv˚
a k¨
arnor ha h¨
amtat v¨ardet fr˚
an samma adress tidigare, men bara den ena
¨
av dem ¨
andrar v¨
ardet. Aven
om det v¨ardet d˚
a skrivs tillbaka till prim¨arminnet kommer
den andra fortfarande ha det gamla v¨ardet kvar i cachen.
F¨or illustrationer av b˚
ada fallen, se bilderna fr˚
an f¨orel¨asning 13.
4. Under de senaste 25 ˚
aren har processorns prestanda utvecklats exponentiellt. Prestandautvecklingen har b˚
ade berott p˚
a att processortillverkarna har kunnat ¨oka processorns klockpuls
men ocks˚
a p˚
a grund av innovationer av processorns arkitektur. Ge exempel p˚
a tv˚
a innovationer av processorns arkitektur som har ¨okat processorns prestanda under de senaste 25
˚
aren.
(2 A-po¨
ang)
Lo
a exempel ¨
ar pipelines och cacheminnen. Fler exempel finns i kapitel tv˚
a
¨sning: Tv˚
i kursboken.
5. Redundant Array of Independent Discs (RAID) ¨ar en serie av olika tekniker f¨or att utnyttja
synnergieffekter av flera h˚
arddiskar.
(a) RAID kan ge tv˚
a olika typer av synnergieffekter, vilka?
(1 A-po¨
ang)
L¨
osning: Snabbare l¨
asning och skrivning av data samt redundans.
(b) V¨alj en av de synnergieffekter du angett och f¨orklara hur RAID tekniskt ˚
astadkommer
den.
(1 A-po¨
ang)
L¨
osning: Gemensamt f¨
or alla typer av RAID ¨ar att de kr¨aver en RAID-kontroller
som sk¨
oter kommunikationen mellan de anslutna h˚
arddiskarna och resten av datorsystemet.
Snabbade inl¨
asning och skrivning av data n˚
as genom att datorsystemet skriver filer till RAID-kontrollern som delar upp informationen i mindre delar och
distribuerar dessa till de anslutna h˚
arddiskarna. Man kan d˚
a l¨asa och skriva
data parallellt och snabbar d¨armed upp l¨as- och skrivtiden.
Redundans kan n˚
as p˚
a tv˚
a olika s¨att. Den enklaste formen ¨ar att RAID-kontrollen
delar upp informationen i mindre delar och skriver samma information till
de anslutna h˚
arddiskarna.
4
Ett alternativ som anv¨ander h˚
arddiskutrymmet mer effektivt ¨ar att RAIDkontrollern sparar informationen samt paritetsinformation vilket inneb¨ar att
bara en br˚
akdel av h˚
arddiskutrymmet beh¨over anv¨andas j¨amf¨ort med ovan
n¨
amnda teknik.
6. Operativsystemet schemal¨
agger processer utifr˚
an tre olika tidsperspektiv. Beskriv kortfattat
de tre tidsperspektiven.
(2 A-po¨
ang)
L¨
osning:
L˚
angsiktig (long-term) schemal¨
aggning
Avg¨
or om en process ska l¨aggas till bland de processer som ska exekveras.
Medell˚
angsiktig (medium-term) schemal¨
aggning
¨
Ar en del av operativsystmets minneshantering; den avg¨or vilka av en process
sidor ska swappas in eller ut ur prim¨arminnet.
Kortsiktig (short-term) schemal¨
aggning
Avg¨
or vilken av de tillg¨
angliga processerna som ska exekveras av processorn.
7. Beskriv de tj¨
anster som Transmission Control Protocol ger j¨amf¨ort med User Datagram
Protocol.
(2 A-po¨
ang)
Lo
ojligheten att anv¨anda portar s˚
a att en specifik process kan adres¨sning: UDP ger m¨
seras, samt ger m¨
ojligheten att kontrollera om datat har f¨or¨andrats under transporten
med hj¨
alp av en checksumma. I ¨ovrigt ger UDP inga tj¨anster ut¨over de som de undre
lagren ger.
TCP d¨
aremot erbjuder samma tj¨anster som UDP, men garanterar ocks˚
a att alla paket
kommer fram och att man kan s¨atta ihop paketen i r¨att ordning. Dessutom ser TCP till
att inte ¨
oversv¨
amma n¨
atverket eller skicka paket snabbare ¨an mottagaren kan hantera.
8. Moderna n¨
atverk ¨
ar paketv¨
axlade, till skillnad fr˚
an det gamla telefonn¨atet som ¨ar kretskopplat. F¨orklara skillnaden mellan paketv¨axlade och kretskopplade n¨atverk.
(2 A-po¨
ang)
L¨
osning: I ett kretskopplat n¨
atverk reserverar man en fast koppling fr˚
an punkt A till
punkt B. Trafiken kommer inte g˚
a n˚
agra andra v¨agar, och om kopplingen av n˚
agon
anledning skulle brytas m˚
aste kopplingen s¨attas upp igen.
I ett paketv¨
axlat n¨
atverk finns ingen f¨orutbest¨amd v¨ag mellan punkt A och punkt B,
v¨agen best¨
ams vid varje v¨
agsk¨al, n˚
agot som kallas att v¨alja v¨ag hop-by-hop. D¨arf¨or
kan trafiken ta olika v¨
agar genom n¨atverket. Om en av de mellanliggande kopplingarna
skulle g˚
a s¨
onder kan trafiken automatisk ta en annan v¨ag till punkt B, utan att hela
uppkopplingen beh¨
over g¨
oras om.
5
Del B
1. Flyttal ¨
ar ett s¨
att att representera stora, sm˚
a och rationella tal. I nedanst˚
aende uppgift
anv¨ands standarden IEEE 754 f¨
or 16 bitars flyttal. Bilden nedan f¨orklarar hur ett flyttal
lagras bin¨
art.
tecken exponent
(1 bit) (5 bitar)
15
mantissa
(10 bitar)
10
0
Figur 1: 16 bitars flyttal enligt IEEE 754
(a) Ber¨
akna operationen A+B. Svara med ett 16 bitars flyttal enligt IEEE 754.
Flyttal A: 0 11000 0111000000
Flyttal B: 0 11010 1011000000
(2 B-po¨
ang)
Formeln f¨
or att f˚
a ut det decimala v¨ardet v ur ett flyttal:
v = (−1)teckenbit × 2exponent−15 × (1, mantissa)2
L¨
osning: F¨
or att kunna ber¨akna addition av tv˚
a flyttal m˚
aste vi kontrollera att
de b˚
ada termerna har samma exponent. Annars m˚
aste det minsta talet skiftas upp
tills b˚
ada talen har samma exponent. Med hj¨alp av formeln ovan kan vi r¨akna ut
exponenten f¨
or de b˚
ada talen.
Flyttal A har exponentbitarna 110002 , allts˚
a 2410 . Enligt formeln ska vi subtrahera
exponentv¨
ardet med 15, vilket ger 24-15=9.
Flyttal B har exponentbitarna 110102 , allts˚
a 2610 . ˚
Aterigen subtraherar vi exponentv¨
ardet med 15 och f˚
ar 26-15=11.
De b˚
ada talen har inte samma exponent, vilket inneb¨ar att vi m˚
aste skifta ned
mantissan tv˚
a steg (11-9=2) f¨or tal A. F¨or att talet inte ska ¨andra v¨arde m˚
aste
mantissan minskas n¨
ar vi ¨
okar exponenten, vilket ger 1, 0111 >> 0, 10111 >>
0, 010111. Observera att den f¨orsta ettan kommer ur formeln f¨or flyttalet.
N¨
ar b˚
ada talen nu har samma exponent kan vi addera deras respektive mantissor.
1
+
1
1
0,
1,
0,
1
0
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
Vi f˚
ar resultatet 10, 0000112 , vilket ¨ar mantissan i det resulterande talet. Mantissan beh¨
over dock normeras eftersom alla tal enligt formeln ska ha f¨oljande form:
1,mantissan. V˚
art resultat just nu har formen 10,mantissan. Vi m˚
aste d¨arf¨or skifta
ned resultatet ett steg, vilket ger 10, 000011 >> 1, 0000011. Eftersom vi skiftade
ned mantissan m˚
aste vi ¨
oka exponenten. Exponenten var 11, ¨okas med 1 och blir
12. Enligt formeln ska exponentbitarna vid utr¨akning subtraheras med 15, allts˚
a
m˚
aste vi nu ¨
oka 12 med 15, vilket ger 27. 2710 = 110112
6
B˚
ade flyttal A och B var positiva, och v˚
art nya flyttal kommer d¨armed vara positivt.
D¨
armed har vi samtliga f¨
alt klara och kan s¨atta ihop dem till ett helt flytta.
A + B = 0 11011 0000011000.
(b) I formeln ovan, tagen fr˚
an IEEE 754 16 bit, tar man v¨ardet i exponentf¨altet minus 15.
Varf¨
or ¨
ar formeln designad p˚
a det s¨attet?
L¨
osning: I ett flyttal vill man kunna representera b˚
ade stora och sm˚
a tal. Det
kan man g¨
ora genom att exponenten anger om decimalkommat ska flyttas fram˚
at
eller bak˚
at. Eftersom exponentbitarna inte har en teckenbit m˚
aste vi representera
negativa tal p˚
a n˚
agot annat vis. Med IEEE 754 g¨or man det med excess-k, d¨ar k
ar antalet bitar som anger exponentens v¨arde.
¨
Om vi har 5 bitar f¨
or exponenten kan vi representera 0 till 32, utan negativa tal.
Med excess-5 kan vi representera -15 till 16 (0-15 till 31-15). Vi f˚
ar - 15 fr˚
an f¨oljande
formel: (2antalet teckenbitar )/2 − 1 = (25 )/2 − 1 = 32/2 − 1 = 15. Med hj¨alp av den
formeln kan vi ber¨
akna v¨
ardet f¨or alla flyttal enligt IEEE 754, s˚
a l¨ange vi vet hur
m˚
anga bitar exponenten utg¨or.
(2 B-po¨
ang)
2. Anta att vi har en RISC-processor kallad DA RISC med samma instruktionsupps¨attning
som NIOS II-processorn. Eftersom det ¨ar en RISC-processor ¨ar majoriteten av alla instruktioner register-register-instruktioner.
Instruktionscykeln f¨
or register-register-instruktioner best˚
ar av tv˚
a steg:
• I: Instruction fetch. Instruktionen l¨ases in och avkodas.
• E: Execute. Instruktionen utf¨ors och resultatet skrivs till det angivna resultatregistret.
Instruktionscykeln f¨
or load och store-operationer best˚
ar av tre steg:
• I: Instruction fetch.
• E: Execute. Ber¨
aknar minnesadressen.
• M: Memory. Register-minne-operation eller minne-register-operation.
Anta att nedanst˚
aende program k¨ors av DA RISC-processorn:
1
2
3
4
5
6
7
8
9
10
start :
movi
movia
movia
r10 , 20
r8 , 0 x4
r9 , 0 x20
ldb
addi
beq
sub
subi
r11
r12
r12
r12
r12
,
,
,
,
,
0( r8 )
r11 , 1
r12 , SAVE RESULT
r10 , r 1 1
r12 , 1
7
11
add
12 SAVE RESULT :
13
stb
r11 , r12 , r 1 2
r12 , 0( r9 )
(a) Illustrera vilken/vilka pipeline hazards som uppkommer vid k¨orning av programmet
ovan.
(2 B-po¨
ang)
L¨
osning:
F¨
or att unders¨
oka vilka pipeline hazards som uppkommer uppr¨attar vi en tabell
over hur instruktionerna kommer att exekveras i pipelinen:
¨
movi
movia
movia
ldb
addi
beq
sub
subi
stb
r10, 20
r8, 0x4
r9, 0x20
r11, 0(r8)
r12, r11, 1
r12, r12, SAVE RESULT
r12, r10, r11
r12, r12, 1
r12, 0(r9)
I
E
I
E
I
E
I
E
I
M
E
I
E
I
I
E
M
Vi ser att i ovanst˚
aende exempel uppst˚
ar en data hazard n¨ar instruktionen addi
r12, r11, 1 anv¨
ander informationen i r11 innan dess att instruktionen ldb r11, 0(r8)
har l¨
ast in informationen fr˚
an minnet till r11 samt att en control (branch) hazard
uppst˚
ar vid mellan det att instruktionen beq r12, r12, SAVE RESULT tills dess
att branchm˚
alet (instruktionen stb r12, 0(r9)) ¨ar inl¨ast i pipelinen. Instruktionen
sub r12, r12 r11 hinner l¨
asas in i pipelinen och m˚
aste rensas ur s˚
a att den inte
utf¨
ors, eftersom det skulle medf¨ora att r12 fick ett felaktig v¨arde.
Data hazard
Control hazard
(b) Ange tv˚
a tekniker som kan anv¨andas f¨or att eliminiera hazarden eller minska risken
att den intr¨
affar som inte inneb¨ar att pipelinens prestanda p˚
averkas negativt.
(2 B-po¨
ang)
L¨
osning: Det optimala s¨
attet att komma till r¨atta med de hazarder som uppkommer i exemplet ovan a
r
att
till¨ampa delayed branch. Eftersom branchinstruktionen
¨
kommer att kr¨
ava tv˚
a steg i pipelinen f¨or att utf¨oras kan vi l¨agga den f¨ore den
instruktion som kommer innan, allts˚
a addi r12, r11 1. Om vi uppr¨attar en tabell
p˚
a samma s¨
att som tidigare ¨over instruktionernas exekvering i pipelinen s˚
a blir
resultatet f¨
oljande (Vi l˚
ater markeringen f¨or var de tidigare hazarderna uppstod
kvarst˚
a).
8
movi
movia
movia
ldb
beq
addi
sub
subi
stb
r10, 20
r8, 0x4
r9, 0x20
r11, 0(r8)
r12, r12, SAVE RESULT
r12, r11, 1
r12, r10, r11
r12, r12, 1
r12, 0(r9)
I
E
I
E
I
E
I
E
I
M
E
I
E
I
E
M
Vi kan konstatera att data hazarden har eliminerats i och med att branchin¨
struktionen nu kommer mellan ldb- och addi-instruktionen. Aven
branch-hazarden
har eliminerats d˚
a addi-instruktionen har l¨asts in i pipelinen och utf¨ors och m˚
alinstruktionen f¨
or branchen kommer att l¨asas in direkt efter att addi-instruktionen
har l¨
asts in. Sammanfattningsvis har vi med hj¨alp av delayed branch-tekniken eliminerat b˚
ada de pipeline hazards som vi identifierade i f¨orsta deluppgiften vsv.
Andra exempel p˚
a tekniker som kan anv¨andas f¨or att minska problematiken med
branch hazards ¨
ar exempelvis branch prediction. I v˚
art exempel skulle den statiska
tekniken predict always taken ge ett utm¨arkt resultat eftersom branchens villkor
alltid kommer att vara sant, och branchen d¨armed alltid att tas. I ett verkligt
datorsystem m˚
aste man v¨
aga f¨ordelarna som en dynamisk branch prediction teknik
ger med den komplexiteten som de inneb¨ar att inf¨ora.
3. I ett datorsystem beh¨
ovs flera typer av minne f¨or att lagra data och instruktioner.
(a) Vi har f¨
oljande avsnitt ur ett assemblerprogram:
1 movia
2 ldw
3 ldw
4 ldw
5 stw
6 ldw
7 stw
8 ldw
r8 ,
r10
r11
r12
r13
r14
r15
r16
,
,
,
,
,
,
,
0 x357B40
0( r8 )
16( r8 )
40( r8 )
132( r8 )
8( r8 )
135( r8 )
64( r8 )
#
#
#
#
#
#
#
0 x357B40
0 x357B50
0 x357B68
0x357BC4
0 x357B48
0x357BC7
0 x357B80
Vi har ocks˚
a ett cacheminne med egenskaper enligt tabell 1.
Storlek:
Radl¨angd:
Associativitet:
128 byte
16 byte
2-v¨ags
Tabell 1: Egenskaper f¨or cacheminnet
F¨or varje instruktion som l¨
aser eller skriver till minnet ska du ange om det blir en tr¨
aff
eller miss i cacheminnet.
(2 B-po¨
ang)
9
L¨
osning: F¨
orst m˚
aste vi ta reda p˚
a hur m˚
anga rader cacheminnet har: storleken/radl¨
angden = 128/(16*2) = 4. Vi anv¨ander n¨amnaren 16*2 eftersom vi har
ett tv˚
a-v¨
agsassociativt cacheminne, allts˚
a tv˚
a rader i bredd.
F¨
or att kunna adressera 4 rader beh¨ovs tv˚
a bitar (00-11). Vi har 16 bytes per rad,
och f¨
or att kunna adressera dessa 16 bytes beh¨ovs fyra bitar (0000-1111).
Utifr˚
an dessa ber¨
akningar kan vi dela in adressen i tag, rad och byte: 26 bitar f¨or
tag, tv˚
a bitar f¨
or rad och fyra bitar f¨or bytes.
N¨
ar vi har indelningen kan vi se om vi f˚
ar en miss eller tr¨aff i cachen f¨or koden
ovan:
Rad 2 Cacheminnet ¨
ar alltid tomt fr˚
an b¨orjan, s˚
a vi kommer f˚
a en cachemiss
vad som ¨
an h¨
ander. Vi kommer ocks˚
a l¨asa in data, och m˚
aste kolla vilken
rad det ska in p˚
a: 0x357B40 → 4016 = 01|00|00002 . Raden ¨ar 00, och p˚
a den
raden l¨
agger vi in data fr˚
an adresserna 0x357B40 - 0x357B4F.
Rad 3 N¨
asta adress ¨
ar 0x357B50 → 5016 = 01|01|0000. Rad 01 ¨ar tom och vi f˚
ar
en cachemiss. Vi l¨
aser in 0x357B50 till 0x357B5F.
Rad 4 0x357B68 → 6816 = 01|10|1000. Rad 10 a¨r tom vilket ger en cachemiss.
Vi l¨
aser in 0x357B60 till 0x357B6F.
Rad 5 0x357BC4 → C416 = 11|00|0100. Raden 00 ¨ar inte tom, men om vi j¨amf¨or
tag s˚
a ¨
ar det heller inte r¨att data som finns d¨ar. Det ¨ar dock bara en av
m¨
angderna som har data, och vi kan l¨agga in v˚
art nya data i den resterande
m¨
angden. Vi f˚
ar en cachemiss och l¨agger in 0x357BC0 till 0x357BCF.
Rad 6 0x357B48 → 4816 = 01|00|1000. Raden ¨ar 00 igen, och vi kan med hj¨alp
av tag se att matchande data finns i den f¨orsta m¨angden p˚
a rad 00. Vi f˚
ar
d¨
armed v˚
ar f¨
orsta cachetr¨
aff.
Rad 7 0x357BC7 → C716 = 11|00|0111. Raden ¨ar ˚
aterigen 00, men den h¨ar
¨
g˚
angen finns korrekt data i den andra m¨angden. Annu en cachetr¨
aff.
¨
Rad 8 0x357B80 → 8016 = 10|00|0000. Annu
en g˚
ang ska vi in p˚
a rad 00, men
den h¨
ar g˚
angen f˚
ar vi en cachemiss eftersom taggen inte matchar det data
som nu finns p˚
a rad 00. Data kastas ut fr˚
an den f¨orsta m¨angden p˚
a rad 00,
och nuvarande data blir d˚
a 0x357B80 till 0x357B8F.
(b) Vilka adresseringstekniker finns det f¨or cacheminnen? Beskriv och j¨amf¨or f¨ordelar och
nackdelar med de olika teknikerna.
(2 B-po¨
ang)
Lo
¨sning:
Direktmappad adressering ¨ar en snabb teknik f¨or att adressera minne d˚
a man
med hj¨
alp av adressen direkt kan hitta r¨att plats. Nackdelen ¨ar att om m˚
anga
adresser hamnar p˚
a samma rad beh¨over man kasta ut data ofta a¨ven om det
finns plats ledigt.
Associativ adressering adresserar inte alls baserat p˚
a adressen, utan l¨agger in
10
data p˚
a f¨
orsta lediga plats. Det g¨or att man utnyttjar hela minnesutrymmet,
men g¨
or ˚
a andra sidan att det tar l˚
ang tid att s¨oka genom minnet. Om man
har n rader i minnet kan man beh¨ova s¨oka igenom samtliga n rader innan
man hittar det data man s¨oker.
M¨
angd-associativ adressering f¨ors¨oker utnyttja den snabbhet som finns med
direktmappade minnen samtidigt som en viss associativitet ska g¨ora att man
inte beh¨
over kasta data riktigt lika ofta. Ju fler m¨angder som anv¨ands, desto
l¨
angre tid tar det att s¨oka hitta r¨att data f¨or en rad, men det ¨ar fortfarande
effektivare ¨
an att s¨
oka igenom hela minnet.
4. Anta att du f˚
att i uppdrag att designa ett datorsystem som ska optimeras f¨or att ge
anv¨andaren en s˚
a bra upplevelse som m¨ojligt. Det betyder att anv¨andaren ska uppleva
att den kan interagera med datorsystemet utan att det upplevs som l˚
angsamt. Datorsystemet m˚
aste naturligtvis ha st¨
od f¨
or multiprogramming s˚
a att anv¨andaren ha flera program
i g˚
ang.
(a) F¨or att best¨
amma n¨
ar olika processer ska k¨ora anv¨ands en schemal¨aggare. Beskriv
hur en l¨
amplig schemal¨
aggningsalgoritm skulle v¨alja ut vilken process som skulle f˚
a
exekveras? Motivera ditt svar.
(2 B-po¨
ang)
L¨
osning: F¨
orst beh¨
over vi best¨amma vilken kategori av schemal¨aggningsalgoritm
som ska anv¨
andas: kooperativ eller pre-emptiv. Kooperativa algoritmer l˚
ater processerna sj¨
alva best¨
amma hur l¨ange de ska k¨ora, medan pre-emptiva tilldelar varje
process en viss tid f¨
or exekvering. Eftersom v˚
art system ska vara interaktivt kan vi
inte lita p˚
a att processerna sj¨alva kommer terminera p˚
a ett s¨att som ger anv¨andaren
upplevelsen av ett snabbt datorsystem. D¨arf¨or v¨aljer vi en pre-emptiv algoritm s˚
a
att vi kan best¨
amma hur l¨
ange varje process f˚
ar k¨ora.
V˚
ar algoritm b¨
or prioritera interaktiva processer, men b¨or samtidigt ge alla processer m¨
ojligheten att k¨
ora s˚
a att vi inte sv¨alter ut icke-interaktiva processer. Eftersom
det inte finns n˚
agot s¨
att att helt s¨akert veta vilka processer som ¨ar interaktiva ¨ar
det en sv˚
ar uppgift.
Vad man kan g¨
ora ¨
ar att f¨
ors¨oka gissa vilka processer som ¨ar interaktiva. Exempelvis kan man ge processer som k¨or ofta men inte speciellt l¨ange en h¨ogre prioritet,
d˚
a interaktiva processer beh¨over k¨ora ofta, f¨or att f˚
anga upp inmatningar fr˚
an
anv¨
andaren, men inte g¨
or avancerade ber¨akningar.
(b) I ett datorsystem kan man anv¨anda sig av time slices f¨or att styra hur l˚
ang tid varje
process f˚
ar hos processorn. Vilka saker a¨r viktiga att t¨anka p˚
a n¨ar du v¨aljer hur l˚
ang
varje time slice ska vara? Motivera ditt svar.
(1 B-po¨
ang)
L¨
osning: Vi beh¨
over t¨
anka p˚
a att varje process beh¨over s˚
a pass l˚
ang time slice att
de hinner f˚
a n˚
agot gjort innan det a¨r dags att byta, och vi beh¨over se till att context switch inte ger f¨
or mycket overhead eftersom vi d˚
a inte utnyttjar processorns
11
kapacitet i den m˚
an vi skulle kunna g¨ora.
Vi m˚
aste dock se till att kravet p˚
a att systemet ska vara interaktivt styr, s˚
a att vi
inte har f¨
or l˚
anga time slices. En l˚
ang time slice g¨or att anv¨andaren upplever att
datorn inte reagerar p˚
a input fr˚
an anv¨andaren, och v˚
art m˚
al var att anv¨andaren
skulle k¨
anna att v˚
art system a¨r snabbt. Med det m˚
alet i ˚
atanke ligger det n¨armre
till hands att ha n˚
agot kortare time slices, s˚
a att vi f˚
ar en n˚
agot h¨ogre througput
och de interaktiva processerna kan k¨ora oftare.
(c) Virtuellt minne ger flera f¨
ordelar, och bland dessa finns m¨ojligheten att l˚
atsas att
prim¨
arminnet ¨
ar st¨
orre ¨
an det egentligen ¨ar. Hur stort virtuellt minne skulle du ha, i
f¨orh˚
allande till prim¨
arminnet? Motivera ditt svar.
(1 B-po¨
ang)
L¨
osning: H¨
ar finns flera saker att ta h¨ansyn till. Hur vi ¨an v¨aljer storleken p˚
a v˚
art
virtuella minne m˚
aste vi t¨
anka p˚
a att alla sidor som inte f˚
ar plats i prim¨arminnet
m˚
aste lagras p˚
a sekund¨
arminnet. D¨arf¨or m˚
aste vi se till att inte ta allt f¨or stor
del av sekund¨
arminnet. En netbook har ofta v¨aldigt lite sekund¨arminne, och sekund¨
arminne i form av SSD ¨
ar dyrt och brukar d¨armed komma i mindre kvantiteter.
Hur stort det virtuella minnet ska vara i f¨orh˚
allande till prim¨arminnet beror p˚
a
hur stort prim¨
arminnet ¨
ar. Om vi har ett litet prim¨arminne kommer vi inte kunna
h˚
alla allt f¨
or m˚
anga processer i minnet, och ju st¨orre virtuellt minne vi har desto
st¨
orre a
ar risk f¨
or thrashing. Om v˚
art prim¨arminne a¨r litet kan vi d¨arf¨or inte
¨r v˚
ha ett allt f¨
or stor virtuellt minne.
Om prim¨
arminnet ¨
ar stort och f˚
ar plats med hyfsat m˚
anga processer kan vi ha
ett st¨
orre virtuellt minne eftersom vi inte kommer att beh¨ova swappa in sidor lika
ofta. D˚
a kan vi hellre ha ett st¨orre virtuellt minne och d¨armed till˚
ata fler processer
som tar upp minnesresurser.
5. I figur 2 finns en skiss av ett n¨
atverk med flera subn¨at och olika n¨atverksenheter anslutna.
Switch B
DNS-server B
Klient A
Klient B
Switch A
Switch C
Klient C
Router B
www.dsv.su.se
Klient B
DNS-server C
DNS-server A
Router A
Router C
¨
Figur 2: Oversikt
¨over ett n¨atverk
(a) F¨orklara hur trafiken fl¨
odar n¨ar Klient A vill ansluta till webbservern www.dsv.su.se.
Du kan utg˚
a fr˚
an att Klient A inte vet vilken IP-adress webbservern har. Flera alternativa v¨
agar existerar, redog¨
or f¨or samtliga av dessa v¨agar.
(2 B-po¨
ang)
12
L¨
osning: Eftersom klient A inte vet IP-adressen f¨or www.dsv.su.se m˚
aste klient
A f¨
orst g¨
ora ett DNS-uppslag. D˚
a kommer trafiken g˚
a: Klient A → Switch A →
Router A → Router D → Switch D → DNS-servern → Switch D → Router D →
Router A → Switch A → Klient A, eftersom trafiken ocks˚
a m˚
aste g˚
a tillbaka till
Klient A fr˚
an DNS-servern. H¨ar finns flera alternativa fl¨oden: Router A → Router
B → Router D eller Router A → Router C → Router D.
N¨
ar Klient A nu vet IP-adressen till webbservern kan Klient A skicka paket direkt
dit: Klient A → Switch A → Router A → Router C → Switch C → www.dsv.su.se
¨
→ Switch C → Router C → Router A → Switch A → Klient A. Aven
h¨ar finns flera
alternativa v¨
agar: Router A → Router B → Router D → Router C eller Router A
→ Router D → Router C.
(b) Beskriv och j¨
amf¨
or f¨
ordelar och nackdelar med klient-server-arkitektur och peer-topeer-arkitektur.
(2 B-po¨
ang)
Lo
¨sning:
Klient-server
En f¨
ordel med klient-server ¨ar att all information bara beh¨over finnas p˚
a
ett (eller ˚
atminstone ett f˚
atal) st¨allen. En annan f¨ordel ¨ar att en klient inte
beh¨
over vara lika ”smart” som en server, vilket g¨or att klienterna kan vara
billigare och enklare. Det a¨r ocks˚
a enklare att administrera en server j¨amf¨ort
med ett helt peer-to-peer-n¨atverk, och det ¨ar ocks˚
a enklare att ha kontroll
p˚
a ett n¨
atverk d¨
ar klient-server-arkitekturen anv¨ands j¨amf¨ort med ett som
anv¨
ander peer-to-peer.
Nackdelar ¨
ar att om servern g˚
ar s¨onder kan ingen anv¨anda serverns tj¨anster,
och en server har h¨
ogre kostnader f¨or n¨atverkuppkoppling eftersom en server
m˚
aste ha tillr¨
ackligt med bandbredd f¨or den m¨angd anv¨andare som ens tj¨anst
har. En server brukar ocks˚
a vara kraftfullare ¨an en klient, vilket g¨or en server
dyrare i ink¨
opskostnad ¨an en klient.
Peer-to-peer
Peer-to-peer ¨
ar t¨
ankt att l¨osa vissa av de problem som finns med klient-serverarkitekturen. Genom att sprida ut serverns uppgifter p˚
a flera peers undviker
man problemet med att ha en enda punkt som kan fallera, och systemet
blir d¨
armed mer robust.. Det sprider dessutom kostnaden f¨or bandbredden
mellan peers. Om det exempelvis ¨ar en ber¨akning som ska utf¨oras beh¨over
varje peer inte ha lika avancerad och dyr h˚
ardvara som en motsvarande server
skulle beh¨
ova.
Nackdelar med peer-to-peer a¨r att om man till exempel har filer som delas ut
i ett peer-to-peer-system ¨ar uppdateringar av en fil m˚
aste n˚
a ut till samtliga
peers, eller att man p˚
a n˚
agot vis m˚
aste h˚
alla koll p˚
a vilken version som ¨ar
den senaste. Som en f¨oljd av detta kan en illvillig person eller organisation
skicka in felaktigt data i ett peer-to-peer-n¨atverk f¨or att st¨ora eller sprida
virus och liknande.
13
6. I ett lokalt n¨
atverk kan man anv¨anda Ethernet f¨or de n¨atverksenheter som anv¨ander en
tr˚
adbunden anslutning. Moderna Ethernetenheter kopplas vanligen ihop med en switch.
(a) Hur fungerar en switch, och vad ¨ar skillnaden mellan en router och en switch?
(2 B-po¨
ang)
L¨
osning: En switch tar emot paket i n¨atverk och l¨aser mottagaren fysiska (MAC)
adress. Switchen skickar sedan paketet till r¨att mottagare direkt, utan att skicka
paket till n˚
agon annan enhet som ¨ar inkopplad i switchen.
En router tar ocks˚
a emot paket, men skickar ist¨allet paket mellan tv˚
a eller flera
n¨
atverk baserat p˚
a n¨
atverksadressen, i regel IP-adressen. En router kan besluta vart
ett paket ska skickas baserat p˚
a flera saker, exempelvis kostnad i tid och pengar.
En switch jobbar med protokoll i l¨anklagret, en router med protokoll i n¨atverkslagret.
En switch vidarebefordrar bara paket till r¨att mottagare, medan en router beslutar
om en mottagare f¨
or ett paket baserat p˚
a kriterier.
(b) Med hj¨
alp av TCP/IP-modellen delar man in n¨atverksprotokoll i olika lager. Beskriv
lagren samt ordna lagren i ordning fr˚
an ¨oversta till understa lagret. F¨orklara ocks˚
a
vilka f¨
ordelar man f˚
ar av att dela in protokollen i olika lager.
(2 B-po¨
ang)
L¨
osning:
Applikationslagret
H¨
ar finns protokoll som hanterar hur data ska representeras f¨or att en applikation ska f¨
orst˚
a det.
Transportlagret
H¨
ar finns protokoll som hanterar logisk o¨verf¨oring mellan tv˚
a enheter, och
h¨
ar finns portarna som g¨or att man kan adressera en specifik process.
N¨
atverkslagret
H¨
ar finns protokoll som hanterar hur trafik skickas mellan tv˚
a n¨atverk.
L¨
anklagret
H¨
ar finns protokoll som hanterar hur enheter ska kopplas ihop i ett lokalt
n¨
atverk, och som ser till att kommunikationen mellan dem fungerar. Protokoll
h¨
ar m˚
aste hantera problem som att enheter f˚
ar skicka data samtidigt och
liknande.
Att dela in n¨
atverksprotokollen i olika lager ger att de ska vara oberoende av
varandra. Oavsett vilket l¨anklagerprotokoll som anv¨ands man kan skicka trafik
mellan olika n¨
atverk med hj¨alp av Internet Protocol. Oavsett vilket transportlagerprotokoll som anv¨
ands kan en applikation skicka data, precis som att en applikation
inte ¨
ar beroende av att enheten ¨ar uppkopplad med ett visst l¨anklagerprotokoll.
14