Multicore en synchronisatie

Wat is het meest passende gebruik van een tellende semafoor?

  1. ADe waarde van een variabele altijd verdubbelen
  2. BDe uitvoering van het programma bundelen in één thread
  3. CEen resource met een vast aantal gelijktijdige gebruikers (bijvoorbeeld maximaal 4 verbindingen) door maximaal 4 threads tegelijk laten gebruiken
Antwoord en toelichting tonen

Antwoord: C. Een resource met een vast aantal gelijktijdige gebruikers (bijvoorbeeld maximaal 4 verbindingen) door maximaal 4 threads tegelijk laten gebruiken

Een semafoor heeft een teller voor het resterende aantal, verlaagt die vóór gebruik met 1 (bij 0 wordt gewacht tot hij toeneemt) en verhoogt hem na gebruik met 1. Bij beginwaarde 4 kunnen maximaal 4 threads tegelijk de resource gebruiken. Bij beginwaarde 1 kan hij als lock voor uitsluiting dienen. Wachtende threads worden gewoonlijk door het besturingssysteem in slaap gebracht en gewekt.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Multicore en synchronisatie

  1. Welk verschil tussen cachecoherentie en een geheugenconsistentiemodel is juist?
  2. Welke uitleg van het idee van hardware transactional memory is juist?
  3. Waarom wordt bij een conditievariabele, wanneer wordt gewacht tot de wachtrij niet meer leeg is, na het ontwaken de voorwaarde opnieuw gecontroleerd met een while-lus in plaats van een if-opdracht?
  4. Twee cores hebben elk in hun eigen cache een kopie van variabele x. Welk probleem kan optreden wanneer core 1 x leest nadat core 0 naar x heeft geschreven, als er geen cachecoherentiemechanisme is?
  5. Welke combinatie van de vier toestanden van het cachecoherentieprotocol MESI is juist?

Vergelijkingen bij dit onderwerp