Minne Flashcards
Hva handler memory managment om?
Håndtere systemets minne ressurser, som inkluderer:
- Allokere plass til prosesser.
- Beskytte minne regioner.
- Gi en virtuelt visning av minnet, slik at det fremstår som om systemet har mer minne en de faktiske tilgjenglige bytene.
- Kontrollere forskjellige nivåer av minnet i et hierarki.
Hvordan ser et typisk minne hierarki ut?
tertiary storage (tape) | sekundærminnet (disk) | hovedminnet (ram) | Cache(s)
De lavere nivåene har kopier av data fra høyere nivå.
Hva er ‘absolute addressing’?
Lesing av data ved referanse til den ‘absolutte’ byte nummeret i minnet.
- read absolute byte 0x000000ff
Brukes ofte av hardware, og er raskt.
Hva er ‘relative addressing’?
Lesing av data ved referanse til relative byte nummer i minnet, som er uavhengi av prosessens lokasjon i minnet, relativ til en base lokasjon som typisk vil bli gitt prosessen.
Trenger en dynamisk address translation, får å finne absolute addresser under kjøretid ved å legge til relative og base addressene.
Hvordan ser en prosess sitt minne layout ut?
- System data segment (PCB)
- Text (code) segment
- Data segment
- Stack Segment
Hva inneholder en prosess sitt system data segment (PCB)?
Blandt annet segment pekere, pid, program og stack pekere.
Hva inneholder en prosess sitt text/code segment?
Code segment er et text segment, som er lest fra program filen (for eksempel av exec).
Er vanligvis read-only, og kan være delt.
Hva inneholder en prosess sitt data segment?
Inneholder globale og statiske variabler som har en predefinert verdi og kan bli modifisert.
Initialiserte globale/statiske variabler (data)
Unitialiserte globale/statisk variabler (BSS)
Heap
- Dynamisk minne (vokser mot høyere adresser, mot stacken)
Hva inneholder en prosess sitt stack segment?
Lagrer parametere/variabler i funksjoner.
Lagrer register tilstander (f.eks. kall på funksjons EIP)
Vokser mot lavere addresser (mot heapen).
Hva er swapping ifht. minne administrering?
Fjerne en prosess fra minnet med all dens tilstand og data - og lagre det på et sekundær medium (disk, flash RAM, tape).
Hva er overlays ifht. minne administrering?
Det å manuelt bytte ut deler av kode/data. Blir utført av programmerern, og brukes kun for gamle og memory-scarce systemer.
Hva er segmentation/paging ifht. minne administrering?
Fjerne deler av en prosess fra minnet og lagre det på et sekundær medium - størrelsen på delene som blir byttet er gjerne en fast størrelse.
Hva er fixed partitioning ifht. minne administrering?
Ved fixed partitioning så deles minne inn i statiske partisjoner ved initialisering av systemet (boot eller tidligere).
Hva er fordeler/ulemper med fixed partisjoner med equal-size?
En ulempe er et store programmer ikke kan bli eksekvert (at de ikke får plass i den fast satte partisjon størrelsen).
Små programmer bruker ikke hele partisjonen, og vi får intern fragmentering.
Hva er fordeler/ulemper med fixed partisjoner med uequal-size?
Store programmer kan bli lastet med en gang.
Mindre intern fragmentering.
Krever håndtering av hvilken prosess som passer til hvilken partisjon.