T10.3/T11.2 Virtuelt minne Flashcards
⭐️ Hvordan oversettes virtuelle adresser til fysiske adresser?
Operativsystemet bruker sidetabellen til å tilordne virtuelle sider til fysiske sider
Hva består sidetabellen av?
Minnet delt inn i sider på typsik 4 KiB
Prosess
Et kjørende program med en tilstand
⭐️ Hvilket arbeid gjør programvaren under oversetting av virtuelle adresser til fysiske adresser?
Operativsystemet endrer sidetabellen som er lagret i minnet
Adresse oversettelse
Prosessen der en virtuell adresse blir mappet til en adresse brukt til å aksessere minnet
Hvor ligger sidetabellen?
I hovedminnet
⭐️ Hvilket arbeid gjør maskinvaren under oversetting av virtuelle adresser til fysiske adresser?
Maskinvaren har sidetabell registeret som peker på starten av sidetabellen
De minst signifikante bitene i en adresse går til hvilke verdier?
Verdier inni siden
Hva angir den delen av adressen som ikke består av LSB?
Sidenummeret
Dersom den gyldige bit’en vi bruker i sidetabell inngangsverdien er on vil det si at
siden er i minnet og inngangsverdien inneholder det fysiske sidetallet
Dersom den gyldige bit’en vi bruker i sidetabell inngangsverdien er off vil det si at
siden ikke er i hovedminnet og en sidefeil oppstår
⭐️ Hvordan brukes et Translation Lookaside Buffer til å implementere rask adresseoversettelse?
- Lagrer et hurtigbuffer med nylig brukte sideoversettelser.
- Når en virtuell adresse skal oversettes, sjekker systemet først TLB
- Dersom oversettelsen finnes der, kan den fysiske adressen hentes raskt, ellers så må systemet gå gjennom hele sidekartet
Hvordan optimaliserer man en TLB?
Gjør TLB’en fullassosiativ - øker treffrate
Legger til maskinvarestøtte for å slå opp i sidetabellen - reduserer kostnad ved bom
⭐️ Hvordan kan virtuelt minne brukes til å beskytte prosesser fra hverandres minneaksesser?
Virtuelt minne beskytter prosesser fra hverandres minneaksesser ved å isolere minneområdene til hver prosess. Dette gjøres ved
- Isolasjon av minneområder
- Systemmodi
- Prosessortilstand
- Modusbytte
- Kontekstbytte
Hvilke to systemmodi trenger man minst for å implementere beskyttelse?
Brukermodus og systemmodus
Priviligerte instruksjoner
generer unntak hvis de kjøres i brukermodus
En funksjonalitet som kreves for å implementere beskyttelse er en tilstand i prosessoren som kan
leses i brukermodus, men kun skrives i systemmodus
En funksjonalitet som kreves for å implementere beskyttelse er at man kan bytte mellom
brukermodus og systemmodus
Kontekstbytte
Å bytte mellom prosesser
Hva går isolasjon av minneområder ut på?
Hver prosess har sitt eget minneområde, som hindrer feil og villet tilgang fra andre prosesser.
Hva går systemmodi ut på?
Det finnes minst to modi - brukermodus og systemmodus. Priviligerte instruksjoner kan kun kjøres i systemmodus, og forsøk på å kjøre dem i brukermodus genererer unntak.
Hva går prosessortilstand ut på?
Visse tilstander i prosessoren kan leses i brukermodus, men kun skrives i systemmodus. Dette inkluderer modusbit (som indikerer systemmodus) og sidetabellpeker (som peker til prosessens sidetabell).
Hva går modusbytte ut på?
Systemet kan bytte mellom brukermodus og systemmodus via systemkall (f.eks. ecall i RISC-V) og systemretur (sret i RISC-V).
Hva går kontekstbytte ut på?
Når prosesser byttes, lagrer operativsystemet all tilstanden til den nåværende prosessen slik at den kan gjenopptas senere uten problemer. Operativsystemet fungerer som en privilegert prosess med spesielle rettigheter
Hvordan oppstår sidefeil?
Når siden vi aksesserer ikke er i minnet
⭐️ Hvordan håndteres sidefeil?
- Prosessoren fullfører alle instruksjoner før load-instruksjonen og generer et unntak
- Operativsystem håndterer unntaket
- Prosessoren utfører load-instruksjonen
⭐️ Hvordan håndteres genereringen av unntak pga. sidefeil?
- Operativsystemet bytter til systemmodus og lagrer tilstanden til prosessen som utførte instruksjonen
- Setter inn den manglende siden i minnet og oppdaterer sidetabellen
- Legger inn den nye tilordningen i TLB
- Skriver tilbake tilstanden til prosessen
- Bytter til brukermodus og returnerer kontroll til prosessen
⭐️ Hva er en virtuell maskin?
En programvarebasert emulering av en fysisk datamaskin. Som støttes av programvare kalt VMM, som administrerer de virtuelle maskinene. Den underliggende maskinvareplattformen kalles “host”, og dens ressurser deles med “guest” VMs.
Hvilke krav stilles til VMM?
Må ha minst to prosessormoduser: system og bruker.
Må ha et sett med privilegerte instruksjoner som kun kan aksesseres i systemmodus.
Hva er fordelene med virtuelle maskiner?
Forbedrer beskyttelse ved å isolere miljøer.
Gjør det enklere å håndtere programvare.
Gjør det enklere å håndtere maskinvare.
Hvordan kan man forbedre ytelsen til virtuelle maskiner?
Redusere kostnaden av prosessorvirtualisering.
Redusere interrupt overhead på grunn av virtualisering.
Styre interrupts direkte til riktig VM uten å bruke VMM.