• No results found

Tentamen i ID2206, ID2200 samt IS1350 Operativsystem

N/A
N/A
Protected

Academic year: 2022

Share "Tentamen i ID2206, ID2200 samt IS1350 Operativsystem"

Copied!
5
0
0

Loading.... (view fulltext now)

Full text

(1)

Tentamen i ID2206, ID2200 samt IS1350 Operativsystem

Tisdagen 2014-03-18 kl 09:00-13:00

Examinator: ID2206, ID2200 Robert R¨onngren, IS1350 Jim Dowling Hj¨alpmedel: Inga

Tentamensfr˚agorna beh¨over inte ˚aterl¨amnas efter avslutad tentamen.

Ange vilken kurs du tenterar och vilken termin du registrerades ffg. p˚a kursen.

Varje inl¨amnat blad skall f¨orses med f¨oljande information:

ˆ Namn och personnummer

ˆ Nummer f¨or behandlade uppgifter

ˆ Sidnummer R¨attning:

ˆ Alla svar, ¨aven p˚a delfr˚agor, m˚aste ha ˚atminstone en kortfattad motivering f¨or att ge po¨ang

Betygsgr¨anser:

ˆ Godk¨ant (E) garanteras fr˚an 50% av den maximala po¨angen p˚a respektive kurs

Fr˚ agor:

(1) Vad ¨ar en translation lookaside buffer, TLB, och varf¨or beh¨ovs den? (1p)

Vad inneh˚aller normalt en entry i en TLB? (1p)

I ett virtuellminnessystem baserat p˚a paging s˚a g¨ors adress¨overs¨attningen vid exekveringen.

Har man en sidtabell i vanligt minne s˚a f˚ar man minst en f¨ordubbling av minnesaccesstiden om man f¨orst m˚aste sl˚a upp ¨overs¨attninngen sida-¿ ram i sidtabellen i vanligt minne och sedan accessa den minnesposition man avs˚ag. Delvis kan det h¨ar problemet minskas om man har sidtabellerna i de vanliga cacharna. Men f¨or att f˚a acceptabel prestanda s˚a inf¨or man oftast en liten, mycket snabb tabell i h˚ardvara n¨ara processorn d¨ar man h˚aller de senast accessade adress¨overs¨attningrana i. Den kallas Translation Lookaside Buffer.

TLB:n m˚aste inneh˚alla ¡Sidnr, Ramnr, ¨ovrig info fr˚an sidtabellen som skyddsbitar, PID¿, Pid beh¨ovs om man inte vill beh¨ova t¨omma hela TLB:n d˚a man byter process.

(2)

(2) N¨ar man bygger distribuerade system, kan man anv¨anda b˚ade blockerande- och icke- blockerande kommunikation. Beskriv en viktig f¨ordel och en viktig nackdel med att v¨anta tills ett meddelande har skickats ist¨allet f¨or att v¨anta tills mottagaren har tagit emot meddelandet.

(2p)

Non-blocking sockets kan vara b˚ade TCP och UDP - dvs, non-blocking TCP ¨ar inte n¨odv¨andigtvis mindre p˚alitligt ¨an blocking TCP. Vad ¨ar annorlunda ¨ar att clienten som skickar medelandet blockeras inte - clienten kan forts¨atta g¨ora ber¨akningar. Non-blocking skalar b¨attre p˚a multi- core h˚ardvara. En nackdel ¨ar att det ¨ar sv˚arare att programmera message-passing applikationer

¨

an RPC applikationer, eftersom fl¨odeskontroll inte l¨angre ¨ar sekventiellt.

(3) F¨orklara vad f¨olj¨ande 64bitars NASM kod g¨or. Vad h¨ander om vi byter positioner av rad 9 och rad 12 (dvs., flytter rad 9 till rad 12 och rad 12 till rad 9)? Varf¨or? (2p) 1 s e c t i o n . d a t a

2 msg : db ” Tentan i d a g ! ” , 10 3 . l e n : equ $ − msg

4

5 s e c t i o n . t e x t 6 g l o b a l s t a r t 7

8 s t a r t :

9 mov rax , 0 x1 ; w r i t e

10 mov r d i , 2

11 mov r s i , msg

12 mov rdx , msg . l e n 13 s y s c a l l

14 mov rax , 0 x3c ; e x i t

15 mov r d i , 0

16 s y s c a l l

Programmet skriver meddelandet ’Tentan idag!’ till stderr (fildescriptor 2). Ingenting h¨ander n¨ar vi flytter raderna. N¨ar vi anropar syscall, d¨aremot, m˚aste alla parametrar vara p a plats, s˚a att k¨arnan kan avl¨aer dem och syscall nummret.

(4) Vilka delar av den virtuella adressrymden ¨ar delade mellan tr˚adar i en process? (1p) i) Stack

ii) Heap iii) BSS iv) Data v) Text

Samtliga utom stacken som varje tr˚ad har en egen privat. (BSS Block Started by Symbol, dataarea f¨or globala variabler med odefinierat eller nollst¨allt initialv¨arde)

(5) Linux har tv˚a systemcall clone och fork som kan anv¨andas f¨or att skapa en ny process.

F¨orklara vad clone och fork g¨or och skillnaden mellan dem. (1p) Vilken systemcall brukar tr˚adbibliotek i Linux anv¨anda f¨or att skapa tr˚ader? Varf¨or? (1p) Fork skapar en ny barn process som f˚ar en kopia av f¨oreldrars adressrymd, men en copy-on- write kopia. Clone skapar en ny process som delar det mesta (f¨orrutom stack) med sin f¨oreldrar process. Clone anv¨ands f¨or att skapar tr˚ader i Linux.

(3)

(6) DMA kan reducera tiden f¨or att ¨overf¨ora data till/fr˚an minne j¨amfort med ren avbrottstyrd I/O. F¨orklara hur DMA fungerar och varf¨or DMA ¨ar snabbare. (2p) Vid avbrottstyrd I/O m˚aste CPU:n ta hand om varje avbrott, t.ex. efter varje ¨overf¨ort tecken. Vid DMA har man en ”slav-processor” som kan instrueras att f¨ora ¨over st¨orre m¨angder data till/fr˚an minne och bara avbryta CPU:n d˚a hela ¨overf¨oringen ¨ar klar. DMA ¨ar allts˚a at f¨oredra vid ¨overf¨oring av at¨orre m¨angder data.

(7) Hur m˚anga sidfel f˚ar man givet ett prim¨arminne om 4 ramar som ¨ar tomt fr˚an b¨orjan, ren demand-paging och f¨oljande referensstr¨ang:

7 4 3 6 4 5 1 3 5 2 3 5 7 6 2

F¨or sidutbytesalgoritmerna FIFO, LRU och OPT. (1p)

Fifo 10, LRU 11, OPT 8

(8) Sv¨altning ¨ar ett problem man m˚aste ta h¨ansyn till d˚a man inf¨or prioritetsbaserad schemal¨aggning av processer. Beskriv hur en schemal¨aggare kan f¨orhindra att problemet uppst˚ar. (1p) Ett annat problem kan uppst˚ar n¨ar en tr˚ad exekveras ¨over en l¨angre tid p˚a en multiprocessor dator som k¨or Linux. Tr˚aden kan context switchas ofta och schemal¨aggas p˚a olika processorer.

F¨orklara varf¨or problemet uppst˚ar och hur man kan f¨orhindra att problemet uppst˚ar. (1p) Schemal¨aggare kan tempor¨art ¨oka prioritet f¨or en processs schemal¨aggningen fr˚an baspri- oriteten. Man vill sedan s¨anka den ¨okade prioritet, ibland genom aging - man antingen s¨anker prioriteten f¨or processer som f˚att exekvera mycket eller h¨ojer prioriteten f¨or processer som inte f˚att exekvera eller som f˚att exekvera lite. Man kan anv¨anda affinity-based schemal¨aggning f¨or att se till att en tr˚ad forts¨atter k¨ora p˚a samma CPUn. Man kan ocks˚a konfigurera linux s˚a att alla avbrott hanteras av bara en CPU - en som inte k¨or tr˚aden.

(9) Beskriv kortfattat tv˚a f¨ordelar med distribuerade filsystem (som, t.ex. NFS) j¨amf¨ort med

lokala filsystem. (1p)

Distribuerade filsystem underl¨attar delning av filer/mapper mellan anv¨andare. Distribuer- ade filsystem ¨ar l¨attre att administrera uppdatera mjukvara, auktorisering, osw. Distribuerad filsystem ¨ar mer skalbar de kan inneh˚aller m˚anga datorer och st¨odja st¨orre filsystem.

(10) Varf¨or genererar kompilatorer i de flesta moderna operativsystem relokerbar kod? (1p) Detta ges av att man i virtuellminnessystem inte f¨ore exekveringen vet i) var koden kommer att laddas i minnet; ii) Om man l¨ankar ihop flera kodmoduler vet man inte exakt var i den laddbara modulen de hamnar (hur l˚angt fr˚an b¨orjan)

(11) Kalle ¨ar ¨agare till en fil i ett Unix filsystem som just nu kan l¨asas/skrivas/exekveras av alla ¨anv¨andare i systemet. Hur kan Kalle skyddar filen s˚a att ingen annan kan l¨asa, skriva eller

exekvera filen? (1p)

Chmod kan anv¨andas f¨or att ¨andra r¨attigheterna p˚a filen. Kom ih˚ag att ta bort r¨attigheterna f¨or gruppen ocks˚a - man vill att ingen annan har tillg˚ang till filen. Det finns 3 grupper av anv¨andare alla, gruppen, och ¨agaren. Om man ¨agar filen sj¨alv, man kan se till att andra anv¨andare inte tillh¨or grupperna som har r¨attigheter till filen eller man kan s¨atta r¨attighera s˚a att bara ¨agaren kan l¨asa/skriva/exekvera filen.

(12) I ett Unix filsystem, vilka datastrukturer anv¨ands f¨or att hantera ¨oppna filer? (1p) I ett Unix filsystem, hur h˚aller man ordning p˚a lediga blockar p˚a disken? (1p)

(4)

Val av blockstorlek ¨ar ett viktigt beslut n¨ar man konfiguerera ett Unix filsystem. Beskriv kortfattat f¨ordeler och nackdelar med ett blockstorlek p˚a 1 KB. (1p) Per process fil-descriptor tabeller, Gemensam tabell f¨or ¨oppna filer, i-nodes tabell f¨or ¨oppna filer. Ett bitvektor ¨ar inte bra eftersom den v¨axer lin¨art med antal blockar. Man kan anv¨anda l¨ankade listor som ¨ar lagrada i lediga blockar. F¨ordelar med 1KB blocker: mindre intern defragmentering, snabbare att l¨asa in en block till minnet. Nackdelar med sm˚a blocker: page storleken ¨ar oftast 4 KB i Unix/Linux, och n¨ar man l¨aser in blockar fr˚an disk, man alltid l¨aser in 4 blockar ˚at g˚angen. Relativt mer overhead per block med sm˚a blockstorlekar. Kan leda till mer extern defragmentering.

(13) Vilka information sparas i Windows Registry? (1p)

Registry i Windows sparar inst¨allningar, information och datorn, filextensioner, och anv¨andare.

Registry ¨ar en inst¨allningsdatabas. Registryn ¨ar uppdelat i inst¨allningar f¨or hela datorn, alla anv¨andare och ¨aven f¨or varje anv¨andare.

(14) Beskriv vad h¨ander (kontrollfl¨ode) n¨ar man anropar en funktion fr˚an anv¨anderniv˚a som i sin tur anropar en device driver i ett UNIX/LINUX system. Beskriv vilka datastrukturer man

g˚ar igenom i k¨arnan. (2p)

En device-driver anropas indirekt via ett systemanrop, t.ex read(), write(), n¨ar man skriver/l¨aser till en enhet eller en fil. Abstraktionen f¨or en enhet i UNIX/LINUX ¨ar en fil med tillh¨orande i-nod. Det betyder att oavsett om man g¨or I/O mot en fil eller en specifik I/O enhet har den en i-nod och i den finns information om device-id (major device number) Major device number anv¨ands f¨or att i device-driver vektorn sl˚a upp en datastruktur med pekarna till gr¨anssnittsfunktionerna f¨or device-drivern. Gr¨anssnittsfunktionerna implementerar funktion- erna motsvarande systemanropen f¨or att manipulera filer (read(), write() etc.)

(15) Vilka ¨ar Coffmans fyra villkor f¨or deadlock? (1p)

Omsesidig uteslutning Beh˚¨ all och v¨anta Ingen pre-emption (konfiskering ) Cirkul¨ar v¨antan

(16) Varf¨or kan en flertr˚adad process ibland exekvera snabbare ¨aven p˚a en dator med en enda processork¨arna ¨an motsvarande process som bara utnyttjar en tr˚ad (en enkel-tr˚adad process)?

(1p) Om man har k¨arntr˚adar kan man ¨overlappa I/O och ber¨akningar. I en enkeltr˚adad process blockeras hela processen om man g¨or blockerande I/O. I en flertr˚adad process blockeras bara den tr˚ad som g¨or I/O om man har k¨arntr˚adar.

(17) Context switch tiden att byta mellan tv˚a k¨arntr˚adar ¨ar betydligt mindre ¨an att byta mellan tv˚a processer. F¨orklara varf¨or och beskriv vilket tillst˚and man byter ut n¨ar man context

switchar b˚ade processer och tr˚adar. (1p)

Att byter mellan processer kr¨aver att man byter ut sidtabeller, tabeller med fildescriptorer osv. Dessa delas av tr˚adar i en och samma process och vid tr˚adbyte beh¨obver man i princip bara byta stack och programpekare och registerinneh˚all.

(18) Vad kan h¨ander om ett virus kan lyckas ta kontroll ¨over avbrottshanteraren i k¨arnan.

(1p) Man kan logga den mesta I/O som g¨ors p˚a maskinen, dvs., allt som h¨ander p˚a tangentbord, mus tryckningar, osv.

(5)

(19) Hur skiljer sig periodiska jobb fr˚an aperiodiska jobb i ett realtidsoperativ system? (1p) Beskriv bivillkorna schemal¨aggningensalgoritmer m˚aste ta h¨ansyn till i h˚arda realtidsystem.

(1p) Ett periodiskt jobb sk¨oter en uppgift som utf¨ors med regelbundna intervall. Aperiodiska jobb ¨ar inte periodiska utan f¨ororsakas av n˚agon h¨andelse i systemet.

Bivillkor i en realtidsschemal¨aggningsalgoritm f¨or att klara alla jobb:

ˆ Deadlines

ˆ Ber¨akningstider, C

ˆ Starttider, S

ˆ Ordning mellan jobb (ex. jobb A m˚aste vara klart f¨ore jobb B)

ˆ Vikter

(20) Operativsystem beskrivs ibland som ”resurshanterare” och ibland som ”virtuella mask-

iner”. Beskriv kortfattat de olika synvinkel! (1p)

Ser man OS:et som en virtuell (ut¨okad/extended) maskin ¨ar de prim¨ara m˚alen att: Isolera program fr˚an h˚ardvaran, B¨attre programmeringsmodell, Portabilitet. Ser man OS:et fr¨amst som en resurshanterare ligger ist¨allet fokus p˚a vilka resurser OS:et hanterar: Filsystem, Minne, CPU tid, I/O enheter

References

Related documents

Klöverns styrelse har från årsstämman 2008 fått förnyat bemyndigande om återköp av egna aktier till högst 10 procent av totalt antal registrerade aktier. Den 31 mars

Resultat före skatt med återläggning av fi nansnetto samt värde- förändring derivat i relation till genomsnittligt totalt

Tredje kvartalets omsättning i Americas uppgick till 280 MUSD (286) med två procents negativ organisk tillväxt.. Rörelseresultat före goodwillavskrivningar uppgick till 47 MUSD

Resultat före skatt men exklusive jämförelsestörande poster för fjärde kvartalet uppgick till 562 MSEK (547) där de negativa valutaeffekterna uppgick till 44 MSEK..

Det operativa kassaflödet för kvartalet steg till 615 MSEK (564), exklusive betalningar hänförliga till strukturåtgärder.. Det operativa kassaflödet motsvarade därmed 116%

Det operativa kassaflödet för kvartalet, exklusive kostnader för omstruktureringsprogrammet, uppgick till 652 MSEK – vilket är 114% av resultat före skatt – jämfört med 578

Definitionen av en anhörig har en emotionell utgångspunkt och fokuserar på de känslomässiga band som finns mellan människor vilket betyder att du kan vara make, maka,

Gunnar Johansson hade med sig intresset för den i Vänersborg nya sporten ishockey från Stockholm där ishockey hade funnits i 25 år och hunnit bli riktigt populär.. Alla