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