TQ: Maskinarkitektur Flashcards
Theory Questions
Forklar kort hva som er de to hovedoppgavene til et operativsystem
Skape et pent grensesnitt for brukere, og styre ressursene til systemet.
Hva er et “directive” i Assembly?
Metainfo. Sier noe om hvordan Assembly-koden skal kjøres.
Hva er pipelining og superskalar i en prosessor?
Pipelining er når man kjører flere instruksjoner parallellt. Blir som et samlebånd av mindre instruksjoner.
Superskalar er en utvidelse av pipelining ved at man har flere enheter som kan jobbe med samme steg i pipelinen.
Hva menes med kernel mode og user mode?
I kernel mode har man ubegrenset tilgang til datamaskinen og all dens funksjonalitet (registre, I/O). I user mode kjører bare brukerapplikasjoner.
Hva mener med hyperthreading?
Man øker antall kjerner, og kan holde statusen til flere tråder samtidig og bytte mellom dem raskt.
Hva er ulempen med direkte mappet cache?
Hvis to oppslag i en loop indekseres til samme sted i cache, vil de vekselvis kaste hverandre ut fra cache.
Hvordan finner CPU riktig “vei” til sett/associatve cache?
Noen av bit-ene i adressen brukes som indeks for å finne sett. For å finne vei søkes det parrallelt på alle tags (kostbart).
Nevn de tre typene interrupt, og hvordan de kan oppstå.
Hardware: I/O som blir ferdig
Software: En instruksjon fra et program, f.eks lese fra fil
Exceptions: Interne interrupts, f.eks å dele på null
Hva er oppgaven til en C-kompilator? Hva er forskjellen på C-kode, Assembly og maskinkode?
Kompilator skal “oversette” C-kode til maskinkode. C er høynivåspråk, assembly er tekstlig representasjon av maskinkode og maskinkode er bare binærkode til maskinen.
Hvor store cache-lines har en 2-veis-sett-assosiativ cache som er 32KB stor og har 128 sett?
2^7 aka 128 bytes (husk å dele på 2 og, 2-veis)