Besturingssysteem en hardware
Waarom wordt bij terugkeer naar het oorspronkelijke programma na afhandeling van een interrupt of exception een speciale terugkeerinstructie (zoals sret en mret van RISC-V) gebruikt in plaats van een gewone terugkeerinstructie van een functie?
- AOmdat een speciale instructie een kortere instructielengte heeft
- BOmdat naast het terugkeeradres ook de modus en de interrupttoestand worden hersteld
- COmdat de handler met een gewone terugkeerinstructie het terugkeeradres niet kent
Antwoord en toelichting tonen
Antwoord: B. Omdat naast het terugkeeradres ook de modus en de interrupttoestand worden hersteld
Wanneer een exception of interrupt optreedt, slaat de CPU naast het terugkeeradres ook de tot dan toe geldende werkingsmodus en of interrupts waren toegestaan op in speciale registers en gaat naar de bevoorrechte modus. Bij terugkeer moeten die tegelijk worden hersteld en moet naar de gebruikersmodus worden teruggegaan voordat naar de oorspronkelijke instructie wordt gegaan; anders blijft de uitvoering met privileges doorgaan. Een speciale terugkeerinstructie voert dit ondeelbaar in één instructie uit. Het gaat niet om de instructielengte, en het terugkeeradres is bekend uit het opgeslagen register.