geheugenbeheer

0.0(0)
studied byStudied by 0 people
0.0(0)
full-widthCall with Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/13

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai

No study sessions yet.

14 Terms

1
New cards

1. Kernel Architecturen

Wat is het verschil tussen een monolithische, modulaire en micro-kernel?

  • Monolithisch: Alle OS-functionaliteit zit in één groot blok code (één proces). Bij een wijziging (bv. nieuwe driver) moet de hele kernel opnieuw gelinkt worden en het systeem herstart.

  • Modulair: De kernel is één proces, maar functionaliteit (modules zoals drivers) kan dynamisch tijdens runtime geladen of verwijderd worden zonder reboot.

  • Micro-kernel: De kernel bevat enkel de minimale basisfunctionaliteit. Alle andere functies (drivers, filesystem, netwerk) draaien als aparte processen in userspace en communiceren via IPC (Inter-Process Communication).

2
New cards

2. Linken

Wat is de taak van de linker?

De linker voegt gecompileerde object-files (modules) samen tot één executable en vervangt labels (functienamen) door geheugenadressen.

Verschil statisch vs. dynamisch linken:

  • Statisch: De code van bibliotheken wordt in zijn geheel gekopieerd in de executable tijdens het bouwen.

  • Dynamisch: De koppeling gebeurt pas tijdens de uitvoering. De executable bevat enkel een verwijzing naar de bibliotheek (.so of .dll).

Voordelen dynamisch linken:

  • Updates: Bij een nieuwe versie van een library hoeft het hoofdprogramma niet opnieuw gecompileerd te worden.

  • Geheugen: Gedeelde libraries worden slechts één keer in het geheugen geladen, ook al gebruiken meerdere programma's ze.

3
New cards

3. Partitionering (Oud systeem)

Wat is partitionering met vaste partities? Welke 2 vormen bestaan er?

Het RAM-geheugen wordt bij opstarten opgedeeld in vaste blokken. Een proces wordt in een van deze blokken geladen.

  1. Gelijke grootte: Alle partities zijn even groot.

  2. Verschillende groottes: Er zijn kleine en grote partities om efficiënter om te gaan met processen van diverse groottes.

4
New cards

Wat is interne fragmentatie? (Geef voorbeeld)

Verlies van ruimte binnen een toegewezen partitie omdat het proces kleiner is dan de partitie.

  • Voorbeeld: Een proces van 3MB wordt in een partitie van 8MB geladen. Er is 5MB verspild.

5
New cards

Wat is dynamische partitionering?

Partities worden 'on the fly' aangemaakt bij het laden van een proces, precies ter grootte van dat proces. Er is dus geen interne fragmentatie.

6
New cards

Wat is externe fragmentatie? (Geef voorbeeld + oplossing)

Er ontstaan kleine, onbruikbare "gaten" van vrije ruimte tussen de processen in het geheugen naarmate processen stoppen en starten.

  • Oplossing: Compaction (defragmentatie van RAM): alle processen verschuiven zodat ze weer aansluiten.

7
New cards

Allocatie algoritmes (First-fit, Best-fit, Next-fit):

  • First-fit: Zoek het eerste gat dat groot genoeg is (snelst).

  • Best-fit: Zoek het kleinste gat dat groot genoeg is (laat kleinste restjes achter).

  • Next-fit: Zoek het eerste gat, maar begin te zoeken vanaf de laatste toewijzing.

8
New cards

4. Segmentering & Paging

Leg de werking van segmenting uit.

Een programma wordt logisch opgedeeld in functionele delen (segmenten) zoals code, data, stack. Deze hoeven niet aaneengesloten in het geheugen te zitten19.

  • Adres: Bestaat uit een Segment Nummer + Offset.

  • Vertaling: Hardware gebruikt een segment-tabel om het fysieke adres te berekenen: $Startadres\_segment + Offset$20.

9
New cards

Wat is een segmentation fault?

Een interrupt die optreedt wanneer een proces probeert een adres te benaderen buiten de grenzen (lengte) van zijn toegewezen segment.

10
New cards

Leg de werking van paging uit.

Het fysieke geheugen wordt verdeeld in vaste blokken (frames). Een proces wordt verdeeld in blokken van dezelfde grootte (pages). Pages kunnen verspreid over het geheugen (in willekeurige frames) worden opgeslagen.

11
New cards

Oefening adressen mappen:

  • Bij segmenting: Controleer of Offset < Lengte. Zo ja: Fysiek = Startadres + Offset.

  • Bij paging: Splits logisch adres in Page# en Offset. Zoek Page# op in page-table om Frame# te vinden. Fysiek = (Frame# * PageSize) + Offset.

12
New cards

5. Virtueel Geheugen

Wat is virtueel geheugen? Hoe werkt het?

Een techniek om meer geheugen te simuleren dan er fysiek RAM beschikbaar is. Delen van programma's (pages) die niet actief gebruikt worden, worden weggeschreven naar de harde schijf (swap space).

13
New cards

Wat is een page fault? Hoe reageert het OS?

en interrupt die optreedt wanneer de processor een pagina nodig heeft die niet in het RAM zit (maar op schijf staat).

  • Reactie OS:

    1. Zoek een vrij frame (eventueel een andere pagina swappen naar schijf).

    2. Laad de benodigde pagina van schijf naar het frame.

    3. Hervat het proces.

14
New cards

Wat is thrashing?

Een situatie waarin het OS meer tijd besteedt aan het swappen van pagina's (heen en weer schrijven naar disk) dan aan het uitvoeren van processen, waardoor het systeem extreem traag wordt.