Examenvragen Flashcards
Wat zijn de basiselementen van een computer?
- 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.
Bespreek de registers die niet zichtbaar zijn voor de gebruikers.
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.
Welke soorten instructies kan het instructie-register bevatten?
- 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.
Bespreek kort hoe instructies uitgevoerd worden.
Het uitvoeren van een instructie bestaat uit 2 stappen:
- De processor haalt (fetches) instructies één voor één op uit het geheugen.
- 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.
Wat zijn interrupts en waarom worden ze gebruikt?
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.
Welke soorten interrupt klassen zijn er?
- 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.
Bespreek een instructiecyclus met interrupts.
- Apparaatcontoller of andere systeemhardware geeft een interrupt
- Processor voltooit de uitvoering van de huidige instructie
- Processor bevestigt de ontvangst van de interrupt
- Processor plaats het programmastatuswoord (PSW) en de programmateller (PC) op de besturingsstack
- Processor laadt nieuwe PC-waarde op basis van de interrupt
- Processor slaat het restant van de informatie over de processtatus op
- Processor verwerkt de interupt
- Processor herstelt de informatie over de processtatus
- Processor herstelt het oude PSW en PC
> 1 - 5: hardware
> 6 - 9: software
Bespreek de geheugen hiërarchie.
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.
Wat is het cache-geheugen en waarom het gebruikt?
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.
Wat zijn de basis principes van het cache-geheugen?
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
Bespreek kort de diverse lagen en views van een computersysteem.
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.
Welke algemene diensten worden er geleverd door een Operating Systems?
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.
Wat is de kernel?
De kernel of nucleus is het gedeelte van het OS dat permanent in MM is geladen.
Het bevat de meest frequent gebruikte functionaliteiten.
Bespreek de geheugenindeling voor een Residente Monitor of Kernel?
*** 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
Wat zijn de hardware vereisten bij gebruik van residente monitoren?
- 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.
Wat is het verschil tussen system modus en user modus?
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.
Wat is een timesharing systeem?
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.
Wat is het verschil tussen een timesharing en een batch system?
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.
Wat is een proces of een taak?
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.
Met welke problemen dient men rekening te houden bij de design van een OS?
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)
Wat komt er te kijken bij geheugenbeheer?
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.
Met welke overwegingen moet het OS rekening houden bij scheduling en beheer van bronnen?
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
Wat zijn de kenmerken van moderne Operating Systems?
- 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.
Wat is het verschil tussen multiprogramming en multiprocessing?
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.
Waartoe dient de HAL bij Windows XP?
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).
Windows XP is gestructureerd volgens het Client/Server model, leg kort uit.
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
Hoe gebeurt het tracen van een proces?
*** Een trace (spoor) van een proces is de volgorde van instructies die voor dat proces uitgevoerd zijn.
Welke gebeurtenissen kunnen de creatie van een proces veroorzaken?
- 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
Wanneer wordt een proces beëindigt?
- 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.
Waarom worden processen onderbroken (suspended)?
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.