Part 4 Flashcards
Wat zijn geheugentabellen, welke soorten geheugentabellen zijn er?
- Geheugentabellen worden gebruikt om zowel het hoofdgeheugen als het secundaire geheugen bij te houden.
- Moeten deze informatie bevatten:
o Toewijzing van hoofdgeheugen aan processen
o Toewijzing van secundair geheugen aan processen
o Beveiligingsattributen voor toegang tot gedeelde geheugengebieden
o Informatie die nodig is om virtueel geheugen te beheren
Soorten:
- I/O tables => wordt door het OS gebruikt om I/O toestellen en kanalen van de computer te beheren
- File tables => deze worden voorzien van informatie zoals bestaan van een bestand, locatie op het secundaire geheugen, de huidige status en nog andere attributen
- Process tables => om processen te kunnen beheren moet het OS volgende details van de processen weten: huidige status, proces ID, locatie in het geheugen, …
Met welke aandachtspunten moet rekening gehouden worden bij het ontwerpen van besturingsstructuren voor OS?
- Betrouwbaarheid & robuustheid
- Efficiëntie en gemak
- Mogelijkheid om te evolueren:
- Patches => bug die men herstelt
- Updates => iets meer dan een patch
- Nieuwe of betere drivers
Process attributen, welke categorieën?
Procesattributen:
- Identifier => in windows is dit zijn naam, in Unix is het zijn naam gelinkt aan Inodenummer
- State => Running(krijgt timeslice op processor waar hij instructies mag uitvoeren), wachten op I/O, Time-out(klaar)
- Prioriteit => Windows heeft er 22 waarvan eerste 6 gereserveerd voor kernel-taken.
- Program counter => register op processor dat verwijst naar de volgende uit te voeren instructie
- Memory pointers
- Context data
- I/O status informatie
- Accounting informatie => taakbeheer
Categorieën:
- Proces identificatie
- Proces status informatie
- Proces controle informatie
Wat is het Process Control Block?
Een procesbesturingsblok (PCB) is een gegevensstructuur die door computerbesturingssystemen wordt gebruikt om alle informatie over een proces op te slaan. Het is ook bekend als een procesdescriptor. Wanneer een proces wordt aangemaakt (geïnitialiseerd of geïnstalleerd), maakt het besturingssysteem een overeenkomstig procescontroleblok aan.
Welke zijn de modi van procesuitvoering, waarom worden die modi gebruikt en hoe weet de processor de modus van uitvoering?
- Gebruikersmodus (user mode):
- minder geprivilegieerde modus
- gebruikersprogramma’s worden meestal in deze modus uitgevoerd
- Systeemmodus (system mode):
- meer geprivilegieerde modus
- kernel van het besturingssysteem
De processor weet de modus van uitvoering door het Program Status Word. Dit register duidt de uitvoeringsmodus aan.
Wat is relocatie?
Relocatie is beter bekend als hertoewijzen.
Dit is een proces swappen naar het hoofdgeheugen. Hierbij keert het proces niet terug naar het oorspronkelijk adres, maar naar een nieuw fysisch adres. Nieuw fysisch adres is het relatief adres samen met de offset.
Waarom is er naast een fysieke indeling een logische indeling van het geheugen?
Omdat de fysische indeling niet kan corresponderen met de manier waarop programma’s zijn gemaakt. De meeste programma’s zijn georganiseerd in modules. Wanneer het OS en de hardware kunnen werken met user programs en data in de vorm van modules, dan krijg je volgende voordelen:
- Modules kunnen onafhankelijk geschreven worden en gecompileerd.
- Modules kunnen verscheidene graden van bescherming bevatten (read-only, execute-only).
- Het is mogelijk mechanisme te introduceren waarbij modules kunnen gedeeld worden onder de processen.
Bespreek geheugenindeling met vaste partities + tekening
Bij vaste partities zijn er 2 soorten indelingen:
- partities met gelijke grootte; (equal-size partition).
- partities met ongelijke grootte; (unequal-size partition)
Er zijn twee problemen met vaste partities:
- Het aantal actieve processen is beperkt door het aantal partities.
- Een groot aantal kleine processen zal de geheugenruimte niet optimaal benutten, waardoor er interne fragmentatie ontstaat.
Welke plaatsingen algoritmes worden gebruikt bij geheugenindeling met vaste partities?
- Equal-size: Stel een proces is 1 Mega groot, dan wordt deze volledige partitie van 8 Mega gereserveerd voor dit ene proces. Dit noemt men fragmentatie. Deze 8 Mega komt terug vrij wanneer het proces gedaan is. Dit systeem is dus niet goed en wordt niet meer gebruikt.
- Unequal-size: We hebben terug 64 Mega, met 8 partities van 2,4,6,8,8,12,16 Mega. Hierbij laadt je elk proces in de beste partitie. Stel je hebt nu een proces van 1 mega, dan zal je deze laden in de kleinst passende partitie, partitie met een grootte van 2 dus. Je zal nog altijd interne fragmentatie hebben, maar dit is niet 7, maar 1 meer nu wat veel minder is. Je krijgt deze 1 Mega terug wanneer het proces deze partitie verlaat. Het probleem hierbij is dat je een wachtrij gaat maken voor elke partitie. Dit systeem is al beter, maar ook nog niet goed en ook niet meer gebruikt.
Bespreek geheugenindeling met dynamische partities
Dynamische partitioneren gebruikt een variabel aantal partities met een variabele grootte.
Wanneer een proces binnenkomt krijgt het exact zoveel geheugen toegewezen als nodig. Wanneer het proces ten einde is, komt deze ruimte in het geheugen weer vrij en kunnen andere processen die plaats inpalmen.
In het begin verloopt deze methode goed maar verloop van tijd zit je met externe fragmentatie.
Wat is het verschil tussen het best-fit, first-fit en next-fit plaatsingsalgorithme voor geheugentoewijzing?
Dit zijn 3 algoritmes om een proces toe te wijzen aan het geheugen.
- Best-fit:
- Keuze van het blok dat het dichtst de gevraagde ruimte benadert
- Statistisch gezien de minst goede
- Gezien kleinste blok gebruikt, blijft er altijd zeer kleine fragmentatie over. Er zal dus meer compactie moeten gebeuren
- First-fit:
- Scanning start vooraan het MM en de eerste passende vrije blok wordt gekozen.
- Snelste methode
- Eerste deel van het geheugen wordt zwaarder belast dan de andere gedeeltes.
- Wanneer er veel processen geladen zijn, is er performantie verlies.
- Next-fit:
- Scanning start vanaf de plaats waar de vorige keer toegewezen werd.
- Meestal zullen de grootste blokken achteraan gevonden worden
- Ontstaan van fragmentatie
- Fragmentatie is noodzakelijk
- Moeilijker inter-procescommunicatie