Linker, loader en uitvoerbare formaten

Wat gebeurt er in het algemeen op Linux en dergelijke als recursie te diep wordt en de bovengrens van de stack wordt overschreden?

  1. AEr wordt een guard page aangeraakt waarvan de toegang is verboden en die voorbij de stack ligt, en het programma eindigt abnormaal
  2. BHet OS verplaatst de stack automatisch naar schijf en er kan onbeperkt diep worden gerecurseerd
  3. COude stackframes worden automatisch gewist en de berekening gaat correct verder
Antwoord en toelichting tonen

Antwoord: A. Er wordt een guard page aangeraakt waarvan de toegang is verboden en die voorbij de stack ligt, en het programma eindigt abnormaal

De stack heeft een bovengrens en daarachter ligt een guard page waarvan de toegang is verboden. Als de stack door te diepe recursie deze bereikt, treedt een page fault op en stopt het OS het programma (segmentation fault). Het voordeel van de guard page is dat kan worden gestopt voordat andere data worden beschadigd. Hetzelfde gebeurt als een grote array als lokale variabele wordt gebruikt, dus grote data worden veiliger op de heap geplaatst.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Linker, loader en uitvoerbare formaten

  1. Welke uitspraak is juist over de waarde bij het eerste gebruik van lokale en globale variabelen in C waarvoor geen beginwaarde is geschreven?
  2. Bij herhaald malloc en free kan het voorkomen dat, ook al is het totaal aan vrij geheugen ruim voldoende, een groot gebied niet meer in één keer kan worden gereserveerd. Hoe heet dit verschijnsel?
  3. Welk voordeel is juist van het zetten van de symboolzichtbaarheid (visibility) op „hidden” voor interne functies, terwijl bij het maken van een gedeelde bibliotheek alleen de van buiten gebruikte functies worden gepubliceerd?
  4. Welk mechanisme waardoor in C++ de constructors van globale objecten vóór main worden uitgevoerd, is juist?
  5. Welke uitspraak over het objectbestand (.o) dat de compiler uit één bronbestand voortbrengt, is juist?

Vergelijkingen bij dit onderwerp