Examenvragen 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 vluchtig; 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

De control- en statusregisters zijn niet zichtbaar voor de gebruikers en worden gebruikt door de processor om de werking te optimaliseren en door geprivilegieerde routines van het besturingssysteem om programma’s te beheren en uit te voeren.

  • 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

Interrupts onderbreken de normale verwerking van de processor. Ze worden gebruikt om de verwerkingsefficiëntie van de processor te 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. Hiermaak 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.

A

  1. Apparaatcontoller of andere systeemhardware geeft een interrupt
  2. Processor voltooit de uitvoering van de huidige instructie
  3. Processor bevestigt de ontvangst van de interrupt
  4. Processor plaats het programmastatuswoord (PSW) en de programmateller (PC) op de besturingsstack
  5. Processor laadt nieuwe PC-waarde op basis van de interrupt
  6. Processor slaat het restant van de informatie over de processtatus op
  7. Processor verwerkt de interupt
  8. Processor herstelt de informatie over de processtatus
  9. Processor herstelt het oude PSW en PC
    > 1 - 5: hardware
    > 6 - 9: software
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

Bespreek kort de diverse lagen en views van een computersysteem.

A

De hardware en software van een computer kan in een hiërarchische manier worden bekeken, zoals in figuur 2.1. (slide 5 van hfdstk 2).
De eindgebruiker is over het algemeen niet bezig met de hardware en ziet zo het computersysteem als een reeks applicaties.
Een applicatie wordt geschreven door een programmeur. Om de taak van een programmeur makkelijker te maken, biedt een computersysteem verschillende systeemprogramma’s aan die veel gebruikte functies, zoals bestandbeheer, controle van I/O-apparaten,… voor zich neemt.
Het besturingssysteem bestaat uit de meest essentiële functies. Deze verbergt de details van de hardware voor de programmeur door het aanbieden van een handige interface. Het OS fungeert als bemiddelaar tussen applicaties en hardware.

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

Welke algemene diensten worden er geleverd door een Operating Systems?

A

Het besturingssysteem verzorgt doorgaans diensten op de volgende gebieden:

  • programma ontwikkeling: het besturingssysteem biedt uiteenlopende voorzieningen en diensten, zoals editors en debuggers, die de programmeur helpen bij het maken van programma’s.
  • programma uitvoering: het besturingssysteem verzorgt de taken die het uitvoeren van programma’s mogelijk maakt, zoals het laden van instructies en gegevens in het hoofdgeheugen, het initialiseren van I/O-apparaten en bestanden en het voorbereiden van andere bronnen, …
  • Toegang tot I/O apparaten: het besturingssysteem voorziet in een uniforme interface voor alle I/O apparaten, dit verbergt de specifieke details die elk I/O-apparaat vereist.
  • Beheerde toegang tot bestanden: Bij een systeem dat meerdere gebruikers tegelijk ondersteunt, kan het systeem voorzien in beveiligingsmechanismen voor het beheren van de toegang tot bestanden.
  • Systeem toegangen: de toegangsfunctie voorziet in de beveiliging van bronnen en gegevens tegen ongeautoriseerd gebruik en lost conflicten op bij een te zware belasting.
  • 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.
  • Administratie en Accounting: het besturingssysteem verzamelt gebruiksstatistieken, bewaakt prestatiemeters,… Deze informatie is nuttig voor het anticiperen op de behoefte aan toekomstige verbeteringen en het bijstellen van het systeem voor het verbeteren van de prestaties. Ook kan deze informatie worden gebruikt voor het toerekenen van kosten bij een systeem met meerdere gebruikers.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Wat is de kernel?

A

De kernel of nucleus is het gedeelte van het OS dat permanent in MM is geladen.
Het bevat de meest frequent gebruikte functionaliteiten.

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

Bespreek de geheugenindeling voor een Residente Monitor of Kernel?

A
***
De Residente Monitor is onderverdeelt in vier delen:
* Interrupt processing
* Device drivers
* Job sequencing
* Control Language Interpreter
---
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:

  • Taakbeheersinstructies
  • welke compiler te gebruiken
  • welke data te gebruiken
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Wat zijn de hardware vereisten bij gebruik van residente monitoren?

A
  • Geheugenbeveiliging: een geheugengebied met monitor mag niet gewijzigd worden.
  • Timer: voorkomt dat één taak onbeperkt beslag legt op het hele systeem.
  • Geprivilegieerde instructies: deze kunnen uitsluitend uitgevoerd worden door de monitor.
  • Interrupts: verhogen de flexibiliteit van het besturingssysteem door het afstaan en terugkrijgen van de controle over gebruikersprogramma’s.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Wat is het verschil tussen system modus en user modus?

A

Gebruikersmodus:

  • Gebruikersprogramma’s worden uitgevoerd in gebruikersmodus.
  • Bepaalde gebieden in het geheugen zijn niet beschikbaar voor de gebruiker.
  • Bepaalde instructies mogen niet worden uitgevoerd.

Systeemmodus:

  • Monitor wordt uitgevoerd in systeemmodus (=kernelmodus).
  • Bevoorrechte instructies kunnen worden uitgevoerd.
  • Beveiligde gebieden in het geheugen kunnen benaderd worden.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Wat is een timesharing systeem?

A

Bij timesharing wordt multiprogrammering gebruikt voor het afhandelen van meerdere interactieve taken.
De processortijd wordt gedeeld door meerdere gebruikers.
Meerdere gebruikers hebben via werkstations tegelijkertijd toegang tot het systeem en het besturingssysteem geeft afwisselend elk gebruikersprogramma een korte rekenperiode.

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

Wat is het verschil tussen een timesharing en een batch system?

A

Het hoofddoel van een batch system is het maximaliseren van het gebruik van de processor. Bij een timesharing system is het minimaliseren van reactietijd het hoofddoel.
Een batch system gebruikt Job Control Language commando’s die verbonden zijn aan de opdracht. Terwijl een timesharing system commando’s gebruikt die ingegeven zijn via de terminal.

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

Wat is een proces of een taak?

A

Een proces is essentieel voor de structuur van het besturingssysteem.
Het is een meer algemene term dan een taak.
Het is een eenheid van activiteit die wordt gekenmerkt door:
* een sequentiële eenheid van uitvoering (thread)
* een bepaalde toestand
* een aantal bijbehorende systeembronnen
Het is een programma dat wordt uitgevoerd.

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

Met welke problemen dient men rekening te houden bij de design van een OS?

A

Het ontwerpen van een besturingssysteem is uiterst moeilijk.
In het algemeen worden problemen verdeeld in 4 hoofdoorzaken:
* onjuiste synchronisatie
* mislukte wederzijdse uitsluiting (mutual exclusion)
* niet-vastgelegde programma verwerking
* deadlocks (programma’s wachten op elkaar)

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

Wat komt er te kijken bij geheugenbeheer?

A

Het besturingssysteem heeft 5 hoofdtaken bij het beheer van opslag:

  • Procesisolatie: voorkomen dat onafhankelijke processen elkaar geheugen, zowel gegevens als instructies, verstoren.
  • Automatische toewijzing en beheer: programma’s moeten, waar nodig, dynamisch worden verdeeld over de geheugenhiërarchie. De toewijzing moet transparant zijn voor de programmeur. Het besturingssysteem kan efficiënt werken door geheugen alleen toe te wijzen aan taken die het nodig hebben.
  • Ondersteuning van modulair programmeren: programmeurs moeten programmamodules kunnen definiëren en modules dynamisch kunnen maken, verwijderen, vergroten en verkleinen.
  • Bescherming en toegangsbeheer: toestaan dat gedeelten van het geheugen op verschillende manieren toegankelijk zijn voor verschillende gebruikers.
  • Langetermijnopslag: veel gebruikers en toepassingen vereisen middelen voor het opslaan van informatie gedurende langere periodes.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

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

A

Elke strategie voor de toewijzing en de planning van bronnen moet gebaseerd zijn op 3 overwegingen:
* rechtvaardigheid: gelijke en evenredige toegang tot de bronnen voor alle processen
* gedifferentieerd reactievermogen: onderscheid tussen verschillende klassen van taken
* efficiëntie:
- maximalisatie van
+ throughput
+ mogelijke gebruikers
- minimalisering van response time

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

Wat zijn de kenmerken van moderne Operating Systems?

A
  • Microkernelarchitectuur: Bij deze architectuur worden slechts enkel essentieële functies toegewijzen aan de kernel, zoals de adresruimten, communicatie tussen processen (IPC) en basic scheduling. Andere diensten van besturingssysteem worden verzorgd door processen.
  • Multithreading: proces wordt verdeeld in draden (threads) die tegelijkertijd kunnen worden uitgevoerd. Een thread is een inzetbare eenheid van werk, wordt sequentieel uitgevoerd en kan worden onderbroken. Een proces is een verzameling van 1 of meer threads en de bijbehorende bronnen.
  • Symmetrische multiprocessing: gebruikt meerdere processors. Deze processors delen hetzelfde hoofdgeheugen en dezelfde I/O-voorzieningen. Alle processors kunnen dezelfde functies uitvoeren. Het besturingssysteem van een SMP verdeelt processen of threads over alle processors. Dit heeft volgende voordelen:
  • prestaties: meerdere processen tegelijkertijd actief
  • beschikbaarheid: het uitvallen van één processor stopt het systeem niet
  • stapsgewijze groei: de prestaties kunnen verbeteren door extra processoren toe te voegen
  • schaalbaarheid
  • Gedistribueerde besturingssystemen: verzameling computers die elk hun eigen geheugen en I/O-modules hebben. Dit wekt de illusie van 1 hoofdgeheugen, 1 secundaire geheugenruimte en andere gelijkgeschakelde toegangsvoorzieningen, niettegenstaande dit uitgesmeerd is op meerdere machines.
  • Objectgeoriënteerd ontwerp: laat toe om modulaire uitbreidingen toe te voegen aan een kleine kernel. Het geeft de mogelijkheid een besturingssysteem aan te passen zonder de integriteit van het systeem in gevaar te brengen.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Wat is het verschil tussen multiprogramming en multiprocessing?

A

Bij multiprogramming wordt er maar één proces per keer uitgevoerd, alle andere processen moeten wachten.
Bij multiprocessing worden er meerdere processen gelijktijdige uitgevoerd elk op een andere processor.

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

Waartoe dient de HAL bij Windows XP?

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 er uniform uitziet voor de Executive en Kernel componenten.
Het zorgt ook voor de nodige ondersteuning voor Symmetric MultiProcessing (SMP).

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

Windows XP is gestructureerd volgens het Client/Server model, leg kort uit.

A

Het besturingssysteem is verdeeld in meerdere processen, elk met een beperkte set van diensten.

Elk proces wacht op verzoek van een klant; een applicatie of module die een request doorstuurt via de executive naar de juiste service.

Dit model zorgt voor de volgende voordelen:

  • API’s kunnen gemakkelijk toegevoegd worden.
  • Betrouwbaar: elke module is een apart proces met een eigen beschermd geheugendeel die enkel toegankelijk is via executive.
  • Uniforme communicatie met de executive via LPC’s
  • Basis voor distributed verwerking
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Hoe gebeurt het tracen van een proces?

A
***
Een trace (spoor) van een proces is de volgorde van instructies die voor dat proces uitgevoerd zijn.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Welke gebeurtenissen kunnen de creatie van een proces veroorzaken?

A
  • Een nieuwe batchtaak: het OS ontvangt een jobbesturingsopdracht voor een batchtaak vanuit een magneetband of schijf.
  • Interactieve aanmelding: een gebruiker meldt zich aan op het systeem.
  • Door het OS om een dienst te verzorgen: een uitvoering van een functie op het verzoek van een gebruikersprogramma, zoals afdrukken.
  • Door een bestand proces
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Wanneer wordt een proces beëindigt?

A
  • Normale voltooing: een dienst wordt beïndigd omdat de uitvoering voltooid is.
  • Tijdslimiet overschreden: het proces wordt langer uitgevoerd dan de opgegeven totale tijdslimiet.
  • Onvoldoende geheugen beschikbaar: het proces vereist meer geheugen dan er kan verschaft worden.
  • Overtredeing geheugengegevens: het proces probeert toegang te krijgen tot een 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.
  • Tijd verstreken: het proces heeft langer dan de maximale tijd gewacht op het optreden van een event.
  • I/O fout: er is een fout opgetreden bij de invoer of uitvoer.
  • Ongeldige instructie: er wordt geprobeerd om een instructie uit te voeren die niet bestaat.
  • Geprivilegieerde instructie: het proces probeert een instructie uit te voeren die beschermd is.
  • Onjuiste gebruik van gegevens
  • Ingreep van de gebruiker of het OS: het proces wordt beëindigd door bijvoorbeeld een deadlock.
  • Beëindiging van het ouderproces: als het ouderproces wordt gestopt zal het automatisch het kindproces stoppen.
  • Verzoek van het ouderproces: het ouderproces heeft het recht om zijn kinderprocessen te stoppen.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Waarom worden processen onderbroken (suspended)?

A

Een processor is sneller dan een I/O module, dus moet een processor vaak wachten op de I/O module. Dit is dus een inefficiënte benutting van de processor.
Een oplossing hiervoor is swapping; het verplaatsen van een deel of het geheel van een proces van het hoofdgeheugen naar de externe harde schijf.
Wanneer er geen enkel proces in het hoofdgeheugen zich in de toestand Ready bevindt, dan verplaatst het besturingssysteem één van de geblokkeerde processen naar de wachtrij Suspended. Dit zijn processen die tijdelijk uit het hoofdgeheugen zijn verplaatst.

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

Welke onderbroken toestanden zijn er?

A

Er zijn twee onderbroken toestanden:

  • Geblokkeerd - Opgeschort (Blocked/Suspend): het proces bevindt zich in het secundaire geheugen en wacht op een gebeurtenis.
  • Gereed - Opgeschort (Ready/Suspend): het proces bevindt zich in het secundaire geheugen, en is beschikbaar voor uitvoering zodra het in het hoofdgeheugen is geladen.
32
Q

Hoe komen processen in de Suspended toestand terecht?

A

Het opschorten van processen kan om de volgende redenen gebeuren:

  • Swapping: het OS heeft MM nodig voor het uitvoeren van een Ready proces.
  • Andere reden van het besturingssysteem: het OS verdenkt het proces van het creëeren van een probleem.
  • Verzoek van een interactieve gebruiker: vb.: debugging
  • Timing: een proces kan periodiek worden uitgevoerd en opgeschordt worden in afwachting van de volgende uitvoering.
  • Verzoek van het ouderproces: een ouderproces kan wensen om de uitvoering van een kinderproces op te schorten om te onderzoeken of om het opgeschorte proces aan te passen, of om de activiteit van diverse kinderprocessen te coördineren.
33
Q

Hoe kan een proces de toestand Suspended verlaten?

A

Wanneer het proces in de toestand Suspended-Blocked verkeert, is het niet geschikt voor uitvoering. De toestand van het proces moet eerst verandert worden naar Suspended-Ready.
Wanneer het proces in de toestand Suspended-Ready verkeert, kan het deze toestand alleen maar verlaten tenzij een ander hiervoor expliciet opdracht geeft. Als er geen enkel proces in de toestand Ready is, moet het besturingssysteem een proces uit de rij Suspended-Ready halen om de uitvoering te kunnen verderzetten.

34
Q

Bespreek kort de diverse besturingsstructuren van een OS.

A

Alle besturingssystemen werken in essentie met informatie over de volgende 4 categorieën:
* Geheugentabellen (memory tables):
Geugentabellen worden gebruikt voor het bijhouden van het hoofdgeheugen en het secundaire geheugen. De geheugentabellen bevatten de volgende informatie:
- De toewijzing van hoofdgeheugen aan processen.
- De toewijziging van secundair geheugen aan processen.
- Beschermingsattributen voor welke processen toegang mogen krijgen tot bepaalde gedeelde geheugengebieden.
- Alle informatie die nodig is voor het beheren van het virtuele geheugen.

  • I/O-tabellen:
    I/O-tabellen worden door het besturingssysteem gebruikt voor het beheren van de I/O-apparaten en I/O-kanalen van het computersysteem.
    De I/O-tabellen bevatten de volgende informatie:
  • Of een I/O-apparaat beschikbaar is of toegewezen is aan een bepaald proces.
  • Status van de I/O-bewerking.
  • Locatie in het hoofdgeheugen die wordt gebruikt als bron of bestemming van de I/O-overdracht.
  • Bestandstabellen (file tables):
    Deze tabellen verschaffen informatie over:
  • Het bestaan van bestanden.
  • Hun locatie in het secundaire geheugen.
  • Hun huidige status.
  • Andere attributen
    Vaak wordt al deze informatie bijgehouden en gebruikt door het bestandsbeheerssysteem (file management system).
* Procestabellen (process tables):
Voor het beheren en besturen van een proces moet een besturingssysteem de volgende dingen weten:
- Procesidentificatienummer
- Procestoestand
- Waar het proces zich bevindt
35
Q

Welke informatie wordt allemaal in een PCB hernomen?

A

We kunnen informatie in het Process Control Block groeperen tot drie algemene categorieën:
* Procesidentificatie:
Aan elk proces is een unieke, numerieke identificatiecode toegewezen.
Veel andere tabellen die worden beheerd door het besturingssysteem, kunnen procesidentificatie gebruiken voor kruisverwijzing naar procestabellen.

  • Processortoestandsinformatie:
    Processortoestandsinformatie bestaat uit de inhoud van processorregisters:
  • Registers die zichtbaar zijn voor de gebruiker
  • Beheer- en statusregisters
  • Stackpointers
    Het Program Status Word (PSW) is een register of verzameling ervan die alle statusinformatie bevatten.
  • Procesbesturingsinformatie:
    Dit is de aanvullende informatie die het besturingssysteem nodig heeft voor het beheren en coördineren van de diverse actieve processen.
36
Q

Welke modi van uitvoering zijn er 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

Bespreek kort de diverse stappen bij het wisselen van proces status.

A
  1. Opslaan van de context van het proces, inclusief de programmateller en andere registers
  2. Bijwerken van het procesbesturingsblok van het afgebroken proces. Dit omvat het wijzigen van de toestand Actief in 1 van de andere toestanden (Gereed, Geblokkeerd, Gereed-opgeschort, Einde)
  3. Het verplaatsen van het betreffende procesbesturingsblok naar de juiste wachtrij (Gereed, Geblokkeerd, Gereed-opgeschort)
  4. Selecteren van een ander uit te voeren proces
  5. Bijwerken van het procesbesturingsblok van het geselecteerde proces
  6. Bijwerken van de gegevensstructuren voor het geheugenbeheer
  7. Terugbrengen van de context van dit proces naar de context zoals deze was op het moment dat het geselecteerde proces het laatst uit de toestand Actief werd gewisseld, door het laden van de opgeslagen waarden van de programmateller en andere registers.
38
Q

Wat is het verschil tussen Niet-proces Kernel, uitvoering binnen user processen en Proces-based operating systemen?

A
  • Procesloze kernel:
    Een OS met een procesloze kernel voert de kernel uit buiten alle processen.
    De code van het besturingssysteem wordt uitgevoerd als een afzonderlijke entiteit die werkt in een geprivilegieerde modus
  • Uitvoering binnen gebruikersprocessen:
    Bijna alle functies van het besturingssysteem worden uitgevoerd binnen de omgeving van het gebruikersproces
  • Op processen gebaseerd besturingssysteem:
    Implementeert het OS als een verzameling systeemprocessen.
    Dit is nuttig in een omgeving met meerdere processen of meerdere computers, waarbij een deel van de functies van het besturingssysteem kan worden verplaatst naar speciale processors, hetgeen de prestaties verbeterd
39
Q

Hoe wordt een proces gecreëerd binnen UNIX?

A

In een UNIX OS gebeurt de proces creatie via de kernel systeem oproep, fork().
Dit zorgt ervoor dat het OS, in Kernel Mode, de volgende stappen uitvoert:
1. Er wordt een locatie toegewezen in de procestabel voor het nieuwe proces.
2. Een uniek proces ID wordt geven aan het kindproces.
3. De process image van de ouder wordt gekopieerd, met uitzondering van gedeeld geheugen.
4. De teller wordt verhoogd voor alle bestanden die eigendom zijn van de ouder om aan te tonen dat het nieuw proces ook een eigenaar is.
5. Het kindproces wordt het Ready to Run status toegewezen.
6. Het ID-nummer van het kind wordt gegeven aan het ouderproces, en een nul-waarde aan het kindproces.

40
Q

Wat is een 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.

41
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.
42
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)
(fig 7.2 pg 346)

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

Welke plaatsingsalgorithmes 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:

  • De simpelste optie is om elk proces toe te wijzen aan de kleinst mogelijke partitie.
  • De tweede optie is het gebruik van een wachtrij (queue) voor elk proces. Wanneer een proces moet geladen worden, wordt steeds de partitie met het kleinst mogelijke geheugen gekozen.
44
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.

45
Q

Wat is het verschil tussen interne- en externe fragmentatie?

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.

46
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 fysiek 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)

47
Q

Wat zijn de voordelen om processen op te delen?

A
  • zodat het mogelijk is om processen te interrupten en later de execution verder
    uit te voeren.
  • Op elk ogenblik wanneer het proces aan het runnen is kan deze uniek
    gekarakteriseerd worden door verschillende elementen. (p138 staan deze)
  • Ieder element heeft zijn taak in het proces, zo is alles verdeelt. (bv. Memory
    pointers, context data, ..)
48
Q

Wat is trashing, hoe wordt het verholpen?

A

Wanneer het systeem meer tijd spendeert in het swappen in plaats van instructies te executen. De oplossingen zijn complexe algoritmes die proberen te raden (op basis van recente geschiedenis) welke delen er het minst zouden gebruikt worden. Dit is gebaseerd op het principe van locality. Deze omvat dat programma en data verwijzingen binnen een proces de neiging hebben om te clusteren. Dus kan men aannemen dat er enkel een paar stukken van een proces nodig zullen zijn over een korte tijd. Ook is zou het mogelijk zijn om intelligente gokken te maken over welke stukken er nodig zouden zijn in de nabije toekomst, dit vermijdt thrashing.

49
Q

Wat is de invloed van de paginagroottes op de werking van de CPU?

A

Als de page size klein is , is er als gevolg een groot aantal pages beschikbaar in het main memory voor een proces. Als de pages groter worden zal iedere page locaties bevatten die verder liggen dan enige recente referentie (die dan zogezegd in het main memory zouden moeten zitten). Dus het effect van het principe van ’locality’ is verzwakten de pagina fout ratio zal bij gevolg verhogen. Maar wanneer een page dan eigenlijk de grootte heeft van een geheel proces zal de fout ratio weer dalen.

50
Q

Wat is een opvraagstrategie, welke soorten zijn er?

A

(fetch policy) Dit bepaald wanneer er een pagina in het geheugen zou moeten gebracht worden.
Demand Paging: Een page wordt enkel in het main memory gebracht wanneer er een referentie wordt gemaakt naar een locatie op die pagina.
Prepaging: Andere pages dan diegene die word gevraagd door de “fault page” worden binnen gebracht. Dit heeft karakteristieken van een secundaire memory. Deze hebben zoek tijden en rotatie latency. Als de pages van een proces naast elkaar worden opgeslagen op een secundair geheugen is het efficiënter om naast elkaar liggende pages allemaal ter gelijk binnen te brengen dan één voor één over een bepaalde periode. Dit kan bijvoorbeeld gebeuren wanneer een proces net opstart.

51
Q

Wat is een vervangingsstrategie, vergelijk de optimale strategie met LRU en FIFO?

A

Een vervangingsstrategie is het protocol dat gebruikt wordt bij het main memory wanneer alle frames bezet zijn en er moet een nieuwe ‘page’ inkomen om een ‘page fault’ te bevredigen. Deze strategie bepaalt welke ‘page’ uit het geheugen vervangen zal worden.
LRU: Least Recently Used = minst recent gebruikte. Het verplaatst de ‘page’ in het geheugen waarnaar er de langste tijd niet naar gerefereerd is geweest. Door het principe van localiteit zou dit de pagina zijn waarnaar er het minst gerefereerd zou worden in de nabije toekomst. Dit komt dicht in de buurt van de optimale strategie, maar het probleem is de moeilijkheidsgraad in de implementatie. Een benadering zou zijn om iedere ‘page’ te taggen met de tijd van zijn laatste referentie. Dit zou dan bij iedere geheugen referentie moeten gedaan worden. Beide instructie en data.
Ookal zou de hardware dit ondersteunen, dit zou voor veel overhead zorgen. (afbeelding 8.14 p. 393)
FIFO: First in First Out= als eerste erin, als eerste eruit. Behandeld de ‘page frames’ toegewezen aan een proces als een circulaire buffer. De pages worden verwijderd in Round-Robin stijl. Het enige dat nodig is, is een pointer die circuleert door de ‘page frames’ van het process. Daarom is dit een van de makkelijkste strategieën om te implementeren. De logica is om de page die al het langst in het geheugen zit te verwijderen. Dit is echter geen goede logica aangezien er pages zijn die meermaals nodig zijn in een programma en andere maar één keer. Zo worden deze die meermaals nodig zijn er herhaaldelijk in en uit het geheugen gehaald. Dit leidt tot zwakke prestaties.
LRU komt dicht in de buurt van de optimale strategie. Maar de overhead zorgt voor veel problemen en LRU is moeilijk te implementeren. FIFO is zeer simpel maar presteert relatief zwak.
(afbeelding 8.16, p396: schema van optimale policy en waar LRU en FIFO zich bevinden)

52
Q

Wat is een Residente set, waartoe dient deze laatste?

A

Resident set van een proces: het deel van een proces dat eigenlijk altijd in het main memory zit.

53
Q

Bespreek kort de criteria voor de short time scheduling.

A

De hoofdzaak van short-term scheduling is om de processortijd toe te wijzen op zo’n manier dat één of meer aspecten van het systeem geoptimaliseerd worden.

Dit kan opgesplitst worden in twee dimensies:

  • User-oriented = het gedrag van het systeem waargenomen door de user of proces:
  • Dit kan gemeten worden aan de hand van de responstijd of turnaround time of via deadlines voor het voltooien van het proces.
  • System-oriented = focus op het efficiënt en effectief gebruik van de processor:
  • Dit kan gemeten worden aan de hand van de doorvoer.
  • Een hoge doorvoer is van minder belang bij single-user systemen, zolang de responstijd van de applicaties acceptabel zijn.
54
Q

Bespreek de invloed van het tijdsquotum 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.

55
Q

Bespreek kort de werking van Multiple Feedback Scheduling

A
56
Q

Welke registers en waarom, worden er gebruikt tijdens de uitvoering van een proces?

A
  • De waarde van het basisregister wordt opgeteld bij de offset om alzo een absoluut adres te bekomen.
  • Deze waarde wordt vergeleken met de waarde in het begrenzings-register.
  • Wanneer het bekomen adres buiten de grenzen valt, wordt een IRQ gegenereert naar het operating system voor het melden van de fout
  • Deze waarden worden geset bij het laden of swap in van een proces
57
Q

Wat is framelocking, en waarom word het gedaan?

A
58
Q

Bespreek kort de klassificatie van scheduling.

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?
  • 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?
  • Short-term scheduling:
  • Wordt het meest frequent uitgevoerd.
  • Bepaald welk proces het volgende uit te voeren is (= CPU scheduling).
  • De short term scheduler wordt soms de dispatcher genoemd.
  • Wordt aangeroepen door een event die vraagt om een andere proces aan de CPU toe te wijzen, zoals klok interrupts, I/O interrupts, OS calls and traps, signalen.
    // Welk gereed proces vervolgens behandelen?
59
Q

Wat is het verschil tussen preëmptieve en niet-preëmptieve scheduling?

A
  • Niet-preëmptive scheduling:
    Eens een proces actief is, blijft het actief tenzij beëindiging of blokkering.
  • Preëmptive scheduling:
    Het actieve proces kan door het OS onderbroken worden en derhalve verplaatst worden naar gereed.
    Dit laat betere dienstverlening toe, omdat geen enkel proces de processor kan monopoliseren gedurende een lange tijd.
60
Q

Wat is een CPU-I/O cyclus?

A

Een proces maakt herhalend en alternerend gebruik van de processor en een I/O-module.

Elke cyclus bestaat uit een CPU burst (meestal 5 ms) gevolgd door een (meestal langere) I/O burst.
Een proces wordt altijd beëindigt met een CPU burst.

61
Q

Waarom wordt een kernel gebruikt?

A
62
Q

Hoe gebeurt de Logon Sessie van Windows XP?

A

XP is een beveiligd OS. Elke gebruiker heeft een account. Deze account heeft een security profiel dat bewaard is in een database. Het maakt gebruik van een security subsysteem voor verificatie.

De werking is als volgt:
Het logon proces wacht op user input. Een thread geeft de user-info (account + paswoord) aan het security subsysteem. Wanneer de verificatie wordt goedgekeurd wordt er een object gecreëerd met een access token, wat de sleutel is tot de beveiliging.

63
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.

64
Q

Wat is het verschil tussen het best-fit, first-fit en next-fit plaatsingsalgorithm 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
65
Q

Wat is een frame?

A

Een frame is een gedeelte van het MM met een vaste grootte.

66
Q

Wat is een page?

A

Een page is een gedeelte van het SM (secondary memory) met een vaste grootte.

67
Q

Definieer responstijd.

A

De tijd tussen het doorsturen van een verzoek en het begin van het antwoord ervan.

68
Q

Definieer turnaround time.

A

De tijd tussen doorsturen van een verzoek en het einde ervan; de omlooptijd.

69
Q

Definieer doorvoer.

A

Het aantal processen voltooid per tijdseenheid.

70
Q

Wat is het verschil tussen CPU-bound en niet-CPU-bound in verband met de CPU-I/O cyclus?

A

CPU-bound processen hebben langere CPU bursts dan I/O-bound processes.

71
Q

Wat is de MAR?

A

De Memory Address Register is één van de interne registers van de processor.
Het specifieert het adres van de volgende te lezen of te schrijven locatie.

72
Q

Wat is de MBR?

A

De Memory Buffer Register is één van de interne registers van de processor.
Het bevat data in het geheugen die er kan gelezen of geschreven worden.

73
Q

Wat is multiprogramming?

A

Bij uniprogramming moet de processor de I/O voltooiing afwachten vooraleer hij verder kan met het proces.

74
Q

Wat omvat een proces?

A
  • programma code
  • een set gegevens (data)
  • Een aantal attributen die de status van het proces beschrijven.
75
Q

Wat is het PCB?

A

Het Process Control Block bevat de diverse elementen van een proces.
Het is gecreëerd en wordt beheerd door het OS.
Het biedt ondersteuning voor meerdere processen.