100% satisfaction guarantee Immediately available after payment Both online and in PDF No strings attached
Previously searched by you
Universiteit Gent (UGent)
Industriële Wetenschappen
Besturingssystemen 1
Exam (elaborations)
Besturingssystemen I THEORIEEXAMEN ~ Industrieel ingenieur informatica UGent
187 views 1 purchase
Course
Besturingssystemen 1
Institution
Universiteit Gent (UGent)
!!! Update: Dit vak werd tot '19-'20 gegeven door meneer Moreau, de inhoud verschilt dus waarschijnlijk !!!
Alle opgeloste theorievragen (op voorhand gegeven door de prof, elk jaar dezelfde) van Besturingssytemen 1 (Industriële wetenschappen, universiteit Gent). Veel uitgebreider dan de bestaan...
, 1) Reeks A
1.1. Vraag A1
Procesbeheer: interrupts en uitvoering van besturingssystemen
a) Beschrijf de werking en de bedoeling van interrupts:
hoe deze door de processorhardware en het besturingssysteem worden verwerkt,
waarom ze de efficiëntie van I/O bewerkingen verbeteren (geef hierbij eerst een beschrijving
van het mechanisme van I/O bewerkingen !),
welke benaderingen men kan volgen indien tijdens het verwerken van een interrupt een
andere interrupt optreedt.
b) Bespreek drie alternatieven waarop de relatie tussen het besturingssysteem tot processen kan
worden benaderd (cfr. §2.4 van de cursus, uitvoering van besturingssystemen): bestaat het
besturingssysteem zelf uit processen ?
c) Welke alternatieven worden gevolgd in UNIX, Linux en Windows NT ?
d) Kan men in deze besturingssystemen gebruik maken van threads ? Zo ja, welk
implementatiemodel volgen deze threads ?
a) Werking en bedoeling van interrupts:
Een interrupt is een hardwaremechanisme dat een extern apparaat in staat stelt om de CPU een
signaal te sturen ( asynchroon) wanneer de I/O operatie voltooid is.
Een interrupt wordt gegenereerd door een I/O controller (niet door de administrator), door een
signaal op de IRQ (Interrupt Request Line) lijn te zetten.
Verwerking door de CPU:
In de interruptcyclus controleren of er interrupts zijn opgetreden door interruptsignaal te bekijken.
Er zijn geen interrupts:
De CPU gaat verder met de opvraagcyclus.
Er zijn wel wachtende interrupts:
De CPU onderbreekt huidige programma, slaat informatie op voor het hervatten van het
programma. De inhoud van alle registers en het adres van de volgende instructie in het
hoofdprogramma, worden op de stack geplaatst. De stackpointer wordt bijgewerkt.
De programmateller wordt bijgewerkt zodat hij naar het begin van de interruptroutine verwijst.
Verwerking door het besturingssysteem:
De verwerking is afhankelijk van de computerarchitectuur en het besturingssysteem. Soms is er
één enkele routine voor de interruptafhandeling, of er is een specifieke routine voor elk type
interrupt.
Soms is er één interruptlijn per I/O controller, soms is er één interruptlijn per voor meerdere
controllers, deze moeten zich dan kunnen identificeren bij het genereren van een interrupt.
De meeste architecturen maken gebruik van een interruptvector, een tabel van verwijzingen naar
gespecialiseerde routines voor specifieke interruptafhandeling. De routine voor de interrupt wordt
hierbij indirect via de tabel aangeroepen. Zo moeten niet alle apparaten afgescand worden, om te
zien welk apparaat de interrupt genereerde. Na verwerking worden de opgeslagen registers
opgehaald van de stack en de programmateller hersteld.
2
,Mechanisme van I/O bewerkingen:
Om een I/O-operatie te starten, laadt de CPU-gegevens in de I/O-controller. Hierdoor weet de
controller, welke gegevens moeten opgehaald worden. Bij een uitvoer, van hoofdgeheugen naar
I/O-apparaat, moeten ook de buffers gevuld worden. (1) en (2).
De controller interageert dan met het apparaat, om
de data in of uit de buffer te schrijven. (3).
De signaleringsbits (4) en (5) worden ingesteld bij
het starten en bij voltooiing.
Bij geprogrammeerde I/O moet het
gebruikersprogramma nu een wachtlus uitvoeren,
om te zien of de actie is uitgevoerd. (4) en (5).
In elke wachtlus gaan 3 instructiecycli verloren:
Het apparaatregister lezen.
Waarde van signaleringsbit bepalen.
Voorwaardelijke spronginstructie uitvoeren.
Na de wachtcycli kan nu de buffer naar het hoofdgeheugen geschreven worden, of is de buffer vrij
voor een nieuwe I/O-operatie. (6). Deze synchrone benadering houdt de processor telkens op
wanneer een I/O-aanvraag wordt verwerkt I/O apparaten simultaan aansturen niet mogelijk.
Een I/O-bewerking bestaat uit 3 secties:
Een voorbereidende sectie.
De feitelijke I/O-overdracht.
Voltooiing van de opdracht.
De feitelijke I/O-overdracht kan enkele duizenden processorcycli in beslag nemen, dit verspilt
processorgebruik.
Interrupts en I/O-bewerkingen.
Dankzij interrupts moet de CPU niet meer voortdurend bits controleren.
Met interrupts kan de processor andere instructies uitvoeren terwijl een I/O-bewerking bezig is.
Nadat de I/O-opdracht is gegeven, wordt de besturing teruggegeven aan het hoofdprogramma. De
I/O-bewerking wordt gelijktijdig uitgevoerd met het hoofdprogramma. Als de bewerking voltooid is
wordt een interrupt naar het hoofdprogramma doorgestuurd, die de I/O-opdracht voltooit, en dan
doorgaat met het hoofdprogramma.
Hierdoor ontstaat overhead, door het verwerken van de interrupt, maar de processor verspilt geen
tijd met wachten op afhandeling van de I/O-bewerking. Toch kan het toch voorvallen dat de
processor toch moet wachten, maar dan nog is er verbetering van efficiëntie.
3
, Interrupt gedurende een interrupt:
Er zijn twee mogelijke manieren om dit op te lossen. Een eerste benadering is om interrupts uit te
schakelen als een interrupt verwerkt wordt. De processor neemt tijdelijk in zijn instructiecyclus
geen interruptcyclus op. De interrupts worden in sequentiële volgorde behandeld.
In een tweede benadering worden prioriteiten ingevoerd. Routines voor interruptafhandeling
kunnen onderbroken worden door interrupts met hogere prioriteit. In systemen met meerdere
interruptlijnen wordt aan elke lijn een prioriteit geassocieerd, en gebeurt de arbitrage van
prioriteiten door de processor zelf.
b) Drie alternatieven waarop de relatie tussen het besturingssysteem tot processen kan
worden benaderd.
Het besturingssysteem kan gezien worden als een verzameling interrupthandlers. Of als een
verzameling programma’s.
1. Kernel zonder processen:
Dit wordt vooral gebruikt in oudere besturingssystemen.
De kernel, zonder processen, heeft een eigen
geheugengebied en een eigen systeemstack.
Processen worden enkel toegepast op
gebruikersprogramma’s.
De kernel werkt als een afzonderlijke entiteit, die in een geprivilegieerde kernelmodus werkt.
Bij een interrupt, trap of systeemaanroep wordt het huidige actieve proces opgeslagen en de
besturing overgedragen aan de kernel. Na uitvoering wordt ofwel context hersteld? ofwel
verdergegaan met het opslaan van de omgeving van actief proces, en een ander proces
geactiveerd
4
The benefits of buying summaries with Stuvia:
Guaranteed quality through customer reviews
Stuvia customers have reviewed more than 700,000 summaries. This how you know that you are buying the best documents.
Quick and easy check-out
You can quickly pay through credit card or Stuvia-credit for the summaries. There is no membership needed.
Focus on what matters
Your fellow students write the study notes themselves, which is why the documents are always reliable and up-to-date. This ensures you quickly get to the core!
Frequently asked questions
What do I get when I buy this document?
You get a PDF, available immediately after your purchase. The purchased document is accessible anytime, anywhere and indefinitely through your profile.
Satisfaction guarantee: how does it work?
Our satisfaction guarantee ensures that you always find a study document that suits you well. You fill out a form, and our customer service team takes care of the rest.
Who am I buying these notes from?
Stuvia is a marketplace, so you are not buying this document from us, but from seller indinginf. Stuvia facilitates payment to the seller.
Will I be stuck with a subscription?
No, you only buy these notes for $0.00. You're not tied to anything after your purchase.