Part 1 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