Operating Systems Flashcards

1
Q

Wat zijn de basiselementen van een computer?

A
  • De PROCESSOR beheert de werking van de computer en voert de functies voor de gegevensverwerking uit. De processor heeft twee interne registers, de Memory Address Register (MAR) en de Memory Buffer Register (MBR).
  • Het MAIN MEMORY (= reëel/primair) slaat data en programma’s op. Dit geheugentype is volatile; wanneer de computer uitgeschakeld wordt, gaat de inhoud van het geheugen verloren.
  • De I/O-MODULES verplaatsen gegeven tussen de computer en zijn externe omgeving.
    De externe omgeving bestaat uit een variatie van apparaten inclusief secundair geheugen (schijven), communicatie-apparaten en aansluitingen.
  • De SYSTEMBUS verzorgt de communicatie tussen de processors, het hoofdgeheugen en de I/O-modules.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Bespreek de registers die niet zichtbaar zijn voor de gebruikers.

A

Control- en statusregisters:

  • werking besturingssysteem optimaliseren
  • geprivilegieerde uitvoeren om programma’s te beheren.
  • Program Counter (PC): bevat het adres van de volgende op te vragen instructie.
  • Instruction Register (IR): bevat de laatst opgevraagde instructie.
  • Program Status Word (PSW): bevat statusinformatie.
  • Conditie codes (flags): zijn bits sets gemaakt door de processor hardware tengevolge het resultaat van een operatie, vb.: positief, negatief, zero of overflow.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Welke soorten instructies kan het instructie-register bevatten?

A
  • PROCESSOR-MEMORY: gegevens worden overgebracht van de processor naar het geheugen of omgekeerd.
  • PROCESSOR-I/O: gegevens worden uitgewisseld tussen de processor en een I/O-module.
  • DATA PROCESSING: rekenkundige of logische bewerkingen worden uitgevoerd op gegevens.
  • CONTROL: de volgorde van uitvoering wordt gewijzigd.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Bespreek kort hoe instructies uitgevoerd worden.

A

Het uitvoeren van een instructie bestaat uit 2 stappen:

  1. De processor haalt (fetches) instructies één voor één op uit het geheugen.
  2. De processor voert (executes) elke instructie uit.

De processor haalt de instructie op uit het geheugen. De programmateller bevat het adres van de volgende op te halen instructie. De teller wordt verhoogd na het ophalen van instructie, zodat de daarop volgende instructie kan worden opgehaald.
De opgevraagde instructie is geladen in het instructieregister. De processor interpreteert de instructie en voert de gewenste actie uit.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Wat zijn interrupts en waarom worden ze gebruikt?

A

Onderbreken normale werking processor
Verwerkingsefficiëntie processor verhogen

De meeste externe apparaten zijn langzamer dan de processor. Dus na elke schrijfbewerking zou de processor moeten pauzeren totdat het apparaat de instructie heeft verwerkt, maar door gebruik te maken van interrupts hoeft de processor niet te wachten en kan onmiddelijk verdergaan met de normale verwerking. De processor schakelt pas terug over naar de IO-opdracht wanneer hij een interruptsignaal heeft ontvangen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Welke soorten interrupt klassen zijn er?

A
  • PROGRAMMA: gegenereerd door het resultaat van de uitvoering van een instructie, vb. een rekenkundige berekening met een te grote waarde, een deling door nul, een poging tot het uitvoeren van een ongeldige machine-instructie,…
  • TIMER: gegenereerd door een timer binnen de processor. Hiermee kan het besturingssysteem functies uitvoeren met een bepaalde regelmaat.
  • I/O: gegenereerd door een I/O-controller om de normale voltooiing van een bewerking of foutconditie te melden.
  • HARDWAREFOUT: gegenereerd door fouten zoals het uitvallen van de stroom of een geheugenpariteitsfout.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Bespreek een instructiecyclus met interrupts + tekening

A

De processor controleert of er interrupts zijn opgetreden, hetgeen wordt aangegeven door de aanwezigheid van een interruptsignaal. Indien er geen interrupts in behandeling zijn, gaat de processor over tot de “fetch cycle” en haalt de volgende instructie in het lopende programma op. Als er een interrupt op komst is, doet de processor het volgende:

  • Hij schorst de uitvoering van het huidige programma dat wordt uitgevoerd en slaat de context ervan op.
  • De processor gaat over tot de fetch cycle en fetcht de eerste instructie in het interrupt handler programma. Het interrupt handler programma is onderdeel van het OS
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Bespreek de geheugen hiërarchie.

A

Computergeheugen heeft drie variabelen, namelijk capaciteit, toegangstijd en kost.
Deze factoren hebben de volgende relaties:
* Kortere toegangstijd: hogere kosten per bit
* Hogere capaciteit: lagere kosten per bit
* Hogere capaciteit: lagere toegangssnelheid
Deze trade-offs kunnen geminimaliseerd worden door gebruik te maken van verschillende geheugentechnologiëen, in plaats van te vertrouwen op één type geheugen.
Een typische geheugen hiërarchie ziet er als volgt uit:
1. Intern geheugen:
- registers
- cache
- hoofdgeheugen
2. Extern geheugen:
- CD, DVD,…
3. Off-line geheugen:
- magneetband,…
Van boven naar onder gebeurt het volgende:
* De kosten per bit dalen.
* De capaciteit neemt toe.
* De toegangstijd neemt toe.
* De frequentie van de processor toegang tot het geheugen neemt af.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wat is het cache-geheugen en waarom het gebruikt?

A

Het cache-geheugen is een klein en snel geheugen. Het bevat een kopie van een deel van het hoofdgeheugen.

Processors zijn sneller dan de geheugentoegangstijd, daarom gebruiken computers een ‘tussengeheugen’ (cache) dat sneller is dan het hoofdgeheugen. Het principe van lokaliteit zorgt ervoor dat dit een efficiënte manier is.

Als de processor een byte van het geheugen wilt lezen, dan wordt eerst gecontroleerd of de byte zich in de cache bevindt. Zo ja, dan wordt de byte doorgegeven aan de processor. Zo nee, dan wordt eerst een blok uit het hoofdgeheugen naar de cache geschreven en wordt pas dan doorgegeven aan de processor.
Door de lokaliteit van verwijzingen is het waarschijnlijk dat wanneer een blok gegevens in de cache wordt geplaatst, toekomstige geheugenverwijzingen zullen verwijzen naar andere bytes in dat blok.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Wat zijn de basis principes van het cache-geheugen?

A

Bij het ontwerp van cachegeheugen kunnen we de volgende aandachtspunten onderscheiden:

  • Cachegrootte:
  • Kleine caches hebben een duidelijke invloed op prestaties
  • Blokgrootte:
    = De eenheid gegevens die wordt uitgewisseld tussen het cachegeheugen en het hoofdgeheugen
  • Grotere blokken betekenen grotere hit-ratio
  • Maar zorgen ook voor meer onnodige data in de cache, alsook in veelvuldige weg schrijven.
  • Mapping function (adresseringsfunctie):
    = Bepaalt welke locatie het nieuwe blok zal innemen in de cache
  • Vervangingsalgoritme:
    = Kiest het blok dat wordt vervangen
  • Liefst een blok vervangen dat in de nabije toekomst niet nodig is > utopisch doel, onmogelijk te garanderen
  • Effectieve strategie: het vervangen van een blok dat zich het langst in de cache bevindt zonder gebruikt te zijn = Least Recently Used (LRU)
  • Schrijfstrategie:
    = Bepaalt wanneer de geheugenschrijfbewerking plaatsvindt
  • Kan gebeuren na elke update
  • Of wanneer de block vervangen moet worden:
    + Minimaliseert schrijfbewerkingen
    + Laat het hoofdgeheugen in een rust toestand
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Bij de diensten geleverd door een OS, wordt gesproken over fouten opsporen en afhandelen, hoe wordt dit gedaan ?

A

Opsporen en afhandelen van fouten: Bij elk probleem moet het besturingssysteem zo reageren dat de fouttoestand wordt verwijderd met zo min mogelijk invloed op de toepassingen die worden uitgevoerd.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Wat is DMA, hoe wordt aan DMA gedaan ?

A

Direct Memory Access (DMA) maakt het mogelijk om data over te brengen van een hoger niveau in de geheugenhiërarchie met een minimale tussenkomst van de CPU.
DMA laat toe efficiënter te werken dan de cache controller kan toelaten, maar vereist een duidelijk inzicht van de programmeur in het algoritme of code.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Wat zijn de hardware vereisten bij gebruik van residente monitoren?

A

Memory protection => het geheugengebied met de monitor mag niet gewijzigd worden.
Timer => voorkomt monopolisering van de resources, dus zorgt ervoor dat de resources niet constant door 1 proces gebruikt worden.
Gepriviligeerde instructies => dit zijn instructies die enkel uit te voeren zijn door de monitor.
Interrupts => zorgt voor flexibiliteit bij het uitvoeren van gebruikersprogramma’s, vb. printer die een melding geeft dat het papier op is.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Met welke overwegingen moet het OS rekening houden bij scheduling en beheer van bronnen?

A
  • rechtvaardigheid:
    gelijke en evenredige toegang tot de bronnen voor alle processen
  • gedifferentieerd reactievermogen:
    onderscheid tussen verschillende klassen van taken
    met toewijzings- en planningsbeslissingen
  • efficiëntie:
  • maximalisatie van:
    – throughput (Aantal voltooide processen per tijdsunit)
    – mogelijke gebruikers
  • minimalisering van response time
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Waartoe dient de HAL bij Windows NT?

A

De Hardware Abstraction Layer isoleert het besturingssysteem van platform-afhankelijk hardware verschillen. Het is een abstractielaag voor de hardware.
De HAL zorgt ervoor dat de hardware (DMA, IC, Timers) er uniform uitziet voor de Executive en Kernel componenten.
Het zorgt ook voor de nodige ondersteuning voor Symmetric MultiProcessing (SMP).

Bevindt zich in de kernel ruimte tussen de hardware en de uitvoerende diensten.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Volgens welke modellen kan de OS code gestructureerd zijn ? Bespreek het model van Windows NT

A

Modellen :
Client/Server model voor multi OS steun
Object model
SMP (performantie maximaliseren)

Windows NT is gestructureerd volgens het Client/Server model

  • HAL.DLL, gaat rechtstreeks communiceren met hardware op moederbord. Dit wordt aangemaakt bij de setup van je windows. Deze laag gaat alle hardware detecteren en windows configureren zodat windows correct werkt.
  • device drivers:
    gaan ook communiceren met de hardware, maar niet deze op het moederbord. Vooral voor I/O-systemen.
  • users
  • graphical drivers voor alles wat graphical is(keyboard, muis, terminal)
  • Win32/Win64 graphical user interface:
    bureaublad, zorgt dat dialoog mens machine kan gedaan worden
  • Kernel:
    Controleert de uitvoering van de processoren. De Kernel beheert het plannen van threads, het omschakelen van processen, het afhandelen van uitzonderingen en interrupts, en synchronisatie met meerdere processoren.
  • Win executive:
    Bevat de kerndiensten van het OS, zoals geheugenbeheer, proces- en thread-beheer, beveiliging, I/O en communicatie tussen processen.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

A(S)MP?

A

Asymmetric Multi-Processing

meerdere CPU’s, die elk een andere architectuur kunnen hebben [maar kunnen ook dezelfde zijn]

elk heeft zijn eigen adresruimte

elk kan al dan niet een OS draaien [en de OS’en hoeven niet hetzelfde te zijn]

tussen de CPU’s is een of andere vorm van communicatievoorziening aanwezig

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

SMP

A

Symmetric Multi-Processing

meerdere CPU’s, die elk dezelfde architectuur hebben

CPU’s delen geheugenruimte [of, ten minste, een deel ervan]

hierbij voeren de processoren processen uit van het OS en de user tasks.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

SMP vs A(S)MP

A

SMP :
- Operating system routines kunnen op elke processor draaien

  • Routines kunnen simultaan op meerdere processors runnen
  • Flexibele interproces communicatie, meestal in shared memory

AMP:
- wanneer verschillende CPU-architecturen optimaal zijn voor specifieke activiteiten

  • mogelijkheid om op elke kern een ander OS te implementeren - b.v. Nucleus en Android/Linux - naar gelang van de vereiste functionaliteit.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

NT subsysteem protected & priviliged? + kernelmodus

A

• User mode
o Omdat het een deel van het geheugen is die afgeschermd wordt. Users mogen namelijk sommige delen van het geheugen niet kunnen bereiken.
o Sommige instructies mogen NIET worden uitgevoerd.

• Kernal mode
o De monitor werkt in een systeem mode –> Kernal mode
o Privileged instructies worden hier uitgevoerd die dan protected areas van het geheugen kunnen bereiken

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Wat zijn de vereisten van een OS in functie van de processen?

A
  • uitvoering van meerdere processen toestaan
  • bronnen toewijzen aan elk proces
  • bronnen beschermen tov andere processen.
  • Interproces synchronisatie ondersteunen
    (Mechanisme voor processen om te communiceren en hun acties te synchroniseren.)
22
Q

Welke gebeurtenissen kunnen de creatie van een proces veroorzaken?

A
  • Batchtaak:
    het OS ontvangt een jobbesturingsopdracht voor een batchtaak vanuit een magneetband of schijf.
  • Interactieve aanmelding:
    een gebruiker meldt zich aan op het systeem.

*OS dienst:
een uitvoering van een functie op het verzoek van een gebruikersprogramma, zoals afdrukken.

  • Bestaand proces:
    parent creëert een child process
23
Q

Wanneer wordt een proces beëindigt?

A
  • Normale voltooiing:
    beëindigd omdat de uitvoering voltooid is.
  • Tijd verstreken:
    het proces heeft langer dan de maximale tijd gewacht op het optreden van een event.
  • Onvoldoende geheugen beschikbaar
  • Overtreding geheugengegevens:
    probeert toegang te krijgen tot geheugenlocatie waar het geen toegang mag tot hebben.
  • Beschermingsfout:
    het proces probeert een voorziening of bestand te gebruiken dat het niet mag gebruiken of het probeert deze op onjuiste manier te gebruiken.
  • Rekenkundige fout:
    het proces probeert een verboden berekening te maken, zoals delen door nul.
  • I/O fout
  • Ongeldige instructie
  • Geprivilegieerde instructie: het proces probeert een instructie uit te voeren die beschermd is.
  • Onjuiste gebruik van gegevens
  • Ingreep van de gebruiker of het OS:
    bijvoorbeeld een deadlock.
  • Beëindiging van het ouderproces:
    automatisch het kindproces stoppen.
  • Verzoek van het ouderproces:
    het ouderproces heeft het recht om zijn kinderprocessen te stoppen.
24
Q

Bespreek het procesmodel met vijf toestanden + tekening

A
  • New:
    nog niet is toegelaten tot de pool van uitvoerbare processen door OS
    nieuw proces nog niet in het hoofdgeheugen geladen, hoewel het procesbesturingsblok is aangemaakt.
  • Ready:
    Een proces dat bereid is om uit te voeren als het de kans krijgt.
  • Running:
    Het proces dat momenteel wordt uitgevoerd
  • Blocked/Waiting: Een proces dat niet kan uitvoeren totdat een bepaalde gebeurtenis plaatsvindt,
    zoals de voltooiing van een I/O operatie.
  • Exit: Een proces dat is vrijgegeven uit de pool van uitvoerbare processen door het besturingssysteem, hetzij omdat het is gestopt, hetzij omdat het om een of andere reden is afgebroken.
25
Q

Waarom is er een overgang van het procesmodel met vijf toestanden naar het model met zeven toestanden

A

Onderbroken Processen:

Processor is sneller dan I/O dus alle processen kunnen wachten op I/O
Wissel deze processen naar tweede schijf om meer geheugen vrij te maken en de processor te gebruiken voor meer processen
Geblokkeerde status wordt suspend status als ze naar schijf worden geswapt

Two new states
Blocked/Suspend
Ready/Suspend

26
Q

New naar Ready/Suspend

A

ready queue in main memory (size is limited)
geswapped als geen plaats (2ndary memory)

Zonder suspend:
vaak onvoldoende ruimte in het hoofdgeheugen voor een nieuw proces, vandaar het gebruik van de (New Ready/Suspend) overgang.

27
Q

Ready Proces

A

Het proces is klaar om te beginnen en is aan het wachten om een processer assigned te krijgen
De short term scheduler dispatched het aan de processer en wordt running.

28
Q

Running Proces

A

Wanneer het begint met execution, is het running

Finished:
terminated (geen interruption & properly executed)

Interrupt:
wanneer wordt uitgevoerd, ander proces komt met hogere priority. Proces gaat terug naar ready state

I/O op of Event wait:
heeft een event of io nodig om door te gaan

29
Q

Blocked/waiting process

A

Wachten op een event om voor te komen. Vraagt signaal van ergens
Als het is gecompleted. Gaat het terug naar de ready state, klaar om executed te worden

30
Q

Wat zijn monitoren?

A

De monitor beheert de volgorde van uitvoering. Hierdoor moet een groot deel (Resident Monitor) van de monitor zich altijd in het hoofdgeheugen bevinden en beschikbaar zijn voor uitvoering.

De CLI interpreteert Job Control Language (JCL). Dit speciaal type programmeertaal wordt gebruikt voor het opgeven en inbrengen van instructies aan de Monitor, zoals:

  • Taakbeheer instructies
  • welke compiler te gebruiken
  • welke data te gebruiken
31
Q

Bespreek de procestoestanden waarin de residente monitor, de processen van de kernel en de user processen kunnen terechtkomen, hoe en wanneer?

A

Processen van de kernel of residente monitor kunnen niet onderbroken worden. Eens ze gestart zijn worde ze dus tot het einde uitgevoerd. User processen daarentegen kunnen wel onderbroken worden.

User processen:
Bijna alle functies van het besturingssysteem worden uitgevoerd binnen de omgeving van het gebruikersproces

32
Q

Wat zijn geheugentabellen, welke soorten geheugentabellen zijn er?

A
  • 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, …
33
Q

Met welke aandachtspunten moet rekening gehouden worden bij het ontwerpen van besturingsstructuren voor OS?

A
  • 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
34
Q

Process attributen, welke categorieën?

A

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
35
Q

Wat is het Process Control Block?

A

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.

36
Q

Welke zijn de modi van procesuitvoering, waarom worden die modi gebruikt en hoe weet de processor de modus van uitvoering?

A
  • 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.

37
Q

Wat is relocatie?

A

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.

38
Q

Waarom is er naast een fysieke indeling een logische indeling van het geheugen?

A

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.
39
Q

Bespreek geheugenindeling met vaste partities

A

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.
40
Q

Welke plaatsingen algoritmes worden gebruikt bij geheugenindeling met vaste partities?

A

Wanneer de vaste partities een gelijke grootte hebben, maakt het niet uit welke partitie er gebruikt wordt.

Wanneer de vaste partities een ongelijke grootte hebben, zijn er twee mogelijkheden:

  • elk proces toewijzen aan de kleinst mogelijke partitie.
  • gebruik van een wachtrij (queue) voor elk proces. Wanneer een proces moet geladen worden, wordt steeds de partitie met het kleinst mogelijke geheugen gekozen.
41
Q

Bespreek geheugenindeling met dynamische partities

A

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.

42
Q

Wat is het verschil tussen het best-fit, first-fit en next-fit plaatsingsalgorithme voor geheugentoewijzing?

A

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
43
Q

Wat is pagineren, bespreek kort het principe.

A

Pagineren verdeelt het geheugen in kleine gelijke delen en verdeelt het proces in delen die even groot zijn.
Deze delen worden ofwel pages (proces) ofwel frames (MM) genoemd.
Het operating systeem houdt een page-table bij voor elk proces. Deze tabel bevat de locatie van elk frame met elke page van het proces. Het geheugenadres bestaat uit een paginanummer en een ofset binnen in die pagina.

44
Q

Wat is het verschil tussen interne- en externe fragmentatie (Ontstaan, probleem, oplossing,…)

A

Bij interne fragmentatie wordt een partitie helemaal gebruikt voor een programma dat veel minder geheugen vergt, dit leidt tot verspilling van het geheugen. Deze vorm van fragmentatie kan alleen verminderen, maar kan nooit verhinderd worden.

Externe fragmentatie ontstaat door processen in en uit te swappen, waardoor er gaten in het geheugen worden gevormd. Deze gaten zijn te klein om gebruikt te worden voor nieuwe processen. Hierdoor gaat er geheugengebruik verloren.

Een oplossing voor dit verschijnsel is ‘compaction’ ( verdichting). Op geregelde tijdstippen gaat het OS de processen shiften en zorgt er zo voor dat de kleine fragmentatie-gaten weer één groot bruikbaar blok geheugen wordt. Nadeel is dat dit een tijdverslindende procedure is, wat kostbare processortijd verspilt.

45
Q

Hoe kan het absolute geheugenadres bekomen worden vanaf een virtueel adres bij een geheugen met paging?

A

De volgende stappen zijn nodig voor een adres vertaling van een logisch adres naar een fysisch adres:

  • Neem de linkse n bits van het logische adres als het segment nummer.
  • Gebruik het segment nummer als een index in de process segment table om het begin van het fysische adres van de segment te vinden.

Vergelijk de offset, de rechtste m bits, met de lengte van het segment. Als de offset groter of gelijk is aan de lengte van het segment, dan is het adres fout.

Het gewenste fysische adres is de som van het beginadres met de offset.
(zie powerpoint slide 40 van hfdstk 7 voor voorbeeld)

46
Q

Wat is medium-term scheduling ?

A

Medium-term scheduling:
- Wordt frequenter uitgevoerd dan long-term scheduling.
- Is deel van de swapping functie; het verwijderd tijdelijk processen van MM en plaatst ze op SM of vice versa.
- Beslissing tot swappen is gebaseerd op de noodzaak om multiprogramming te beheren.
- Wordt gedaan door memory management
// Welk proces binnen of buiten te swappen?

47
Q

Waar wordt de long-term scheduling uitgevoerd, wat bepaalt de long-termscheduling ?

A
  • Long-term scheduling:
  • Wordt relatief infrequent uitgevoerd.
  • Bepaalt welke programma’s toegelaten worden voor verwerking, beheert dus de graad van multiprogramming.
  • De long term scheduler houdt geen rekening met processor-bound and I/O-bound processen
    // Welk proces toelaten?
48
Q

Bespreek kort de criteria voor de short time scheduling.

A

User-oriented:
- Responstijd:
de tijd tussen het doorsturen van een verzoek en het begin van antwoord ervan
- Turnaround time:
tijd tussen het doorsturen van een verzoek en het einde ervan(omplooptijd)
- Deadlines: voor voltooien proces

System-oriented:
- Processorgebruik, rechtvaardigheid
- Doorvoer:
aantal processen voltooid per tijdseenheid

49
Q

Wat is de invloed van de factor q of de grootte van de time-slice bij Round Robin scheduling ?

A

Round Robin scheduling = time slicing

Een proces is actief tot zijn timeslice (meestal 5 tot 100 ms) voorbij is, tenzij het onderbroken wordt. Na die tijd komt er een klok IRQ en het proces gaat terug naar de wachtrij “Ready”.
De timeslice moet wel groter zijn dan de noodzakelijke tijd voor het afhandelen van een interrupt en de afhandeling.
Dus hoe groter de time slice, hoe meer tijd een process krijgt.

De grootte van de timeslice bepaald de graad van efficiëntie.
Kleine quota zorgen voor een snelle wisseling van processen, wat wel een grote overhead zich mee brengt.

Dit zorgt er voor dat het proces dat het langst staat te wachten, eerst wordt uitgevoerd (het verst van het nieuwe getal staat). Staan er even lang te wachten, dan wordt een niet-gestart proces eerst genomen om de responstijd zo klein mogelijk te houden.

50
Q

Absolute vs relatieve adressing

A

Proces X wordt vroeg of laat geswapt. Die gaat van het RAM-geheugen naar je swapbestand om plaats te maken in het geheugen.

Proces x zit dan niet meer in het RAM-geheugen. Op een bepaald moment zal process x terug binnengebracht worden in het RAM-geheugen, maar de kans dat het process op dezelfde locatie terechtkomt is zeer klein. Dus de waarde in je program counter zal niet meer correct zijn, want dit is nog de waarde van voor de swap.

Om dit op te lossen bevat de program counter een relatief adres (= beginadres) en offset (zoveel adressen verder). Tel je deze op krijg je een absoluut adres. Bij een swap wordt het beginadres leeg gemaakt. Bij het terug toewijzen wordt het beginadres terug ingevuld en kan met behulp van de offset(die zal altijd blijven) de locatie terug bepaald worden.