Operating Systems 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 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.
Bespreek de registers die niet zichtbaar zijn voor de gebruikers.
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.
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?
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.
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. 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.
Bespreek een instructiecyclus met interrupts + tekening
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
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
Bij de diensten geleverd door een OS, wordt gesproken over fouten opsporen en afhandelen, hoe wordt dit gedaan ?
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.
Wat is DMA, hoe wordt aan DMA gedaan ?
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.
Wat zijn de hardware vereisten bij gebruik van residente monitoren?
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.
Met welke overwegingen moet het OS rekening houden bij scheduling en beheer van bronnen?
- 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
Waartoe dient de HAL bij Windows NT?
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.
Volgens welke modellen kan de OS code gestructureerd zijn ? Bespreek het model van Windows NT
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.
A(S)MP?
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
SMP
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.
SMP vs A(S)MP
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.
NT subsysteem protected & priviliged? + kernelmodus
• 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