Parallel programmeren op laag niveau

20 belangrijke vragen over Parallel programmeren op laag niveau

Omschrijf het begrip gelijktijdige uitvoering

Als 2 processen gelijktijdig kunnen worden uitgevoerd op de CPU's

Omschrijf het begrip (arbitrary) interleaving

Arbitraty interleaving is het in willekeurige volgorde uitvoeren (verwerven) van de atomaire acties van processen waardoor deze processen schijnbaar gelijktijdig worden uitgevoerd

Omschrijf het begrip sequentieel proces

Een sequentieel proces is een totaal geordend aantal transacties; voor elke twee acties is duidelijk welke van de twee als eerste wordt uitgevoerd
  • Hogere cijfers + sneller leren
  • Niets twee keer studeren
  • 100% zeker alles onthouden
Ontdek Study Smart

Omschrijf het begrip sequentieel programma

Een sequentieel programma specificieert de mogelijke status veranderingen van een sequentieel proces, die plaatsvindt in een bepaalde volgorde afhankelijk van de controle structuur van het programma.

Omschrijf het begrip parallel programma

Een parallel programma specificeert de mogelijke status veranderingen van twee of meer sequentiële processen. Er is geen gedefinieerd tussen de status verandering van de verschillende statusveranderingen. Ze kunnen dus tegelijkertijd uitgevoerd worden.

Omschrijf het begrip race condition

Wanneer outcomes (uitslagen) afhankelijk zijn van de snelheid, dan bestaat er een race-condition

Omschrijf het begrip (non)preemptive CPU-scheduler

Moderne besturingssystemen gebruiken een preemptive CPU-scheduler. Een dergelijke scheduler wordt niet alleen uitgevoerd als een running proces wijzigt in terminated of waiting - men spreekt dan van non-preemptive scheduling - maar ook als een running proces wijzigd in ready of een waiting proces wijzigt in ready. Door het gebruik van een preemptive scheduler wordt voorkomen dat een running proces de CPU monopoliseert totdat zijn status wijzigt in waiting of terminated

Omschrijf het begrip multithreaded proces

De mogelijkheid om in 1 proces meer control flows te creëren

Effectief deterministische berekening

Niet-deterministische berekening die ondanks de onvoorspelbaarheid van de volgorde van de verschillende berekeningsstappen toch een voorspelbaar effect heeft.

[T3.7.5] [C9.3.1]

Beschrijf het begrip snelheids-(on)afhankelijk


Een sequentieel programma is snelheids-onafhankelijk, omdat de juistheid van de werking van het programma niet afhangt van de snelheid waarmee het wordt uitgevoerd.
De outcome (uitslag) van een parallel programma kan afhangen van de relatieve snelheid waarmee elk sequentieel proces runt.

Omschrijf het begrip (on) eerlijke scheduling

De term (on)eerljike scheduling wordt gerbuikt als er altijd high-priority processen zijn, waardoor de low-priority processen niet aan bod komen.
Bij eerlijke scheduling komen alle processen aan bod, zoals bijvoorbeeld bij first-come first-served orde (queue).

Omschrijf het begrip atomaire variabele

Een ondeelbare variabel

Beschrijf het begrip spin lock

Een spin lock is een lege herhalingsopdracht (busy-waiting-lus) waarin een proces wacht op toegang tot een gemeenschappelijke hulpbron. Bekende (correcte) spin-lock-algoritmen zijn het algoritme van Dekker en het algoritme van Peterson

Beschrijf het begrip binaire semafoor


Als een Semaphore-instantie als volgt wordt geinitialiseerd met de waarde 1:
Semaphore lock = new Smaphore(1);
mag de verborgen variabele s alleen de waarden 0 of 1 annnemen. We spreken in dat geval van een binaire semfoor of van een lock

Noem 4 verschillende manieren voor het oplossen van het deadlock-probleem

- Het negeren van de deadlock
-  Het detecteren van de deadlock en automatisch oplossen van een deadlock-situatie door een of meer processen af te breken
-  Het voorkomen van de deadlock door de situaties van incrementele verwerving of circulair wachten te elimineren
-  Het vermijden van deadlock door het gebruik van scheduling-algoritmen waaraan opvoorhand het maximum aantal vereiste hulpbronnen moeten worden opgegeven, zoals het banker's algoritme

Noem 3 manieren om processen te combineren


- Sequentiele compositie, notatie C;K.
De procesen worden na elkaar uitgvoerd; dit houdt in dat alle atomaire acties van C moeten zijn beeindigd voordat acies van K kunnen starten
- Collaterale compositie, notatie C,K.
De processen kunnen in willekeurige volgorde worden uitgevoerd; dit houdt in dat de atomaire acties van C en K in willekeurige volgorde kunnen worden verweven (arbitrary interleaving)
- Parallelle compositie, notatie C||K.
De procesen kunnen gelijktijfig worden uitgevoerd; dit houdt in dat de atomaire acties van C en K gelijktijdig kunnen plaatsvinden.

Geef het verband aan tussen de begrippen gemeenschappelijke variabele, kritieke sectie en wederzijdse uitsluiting

Een kritieke sectie met betrekking tot een gemeenschappelijke hulpbron is een procesonderdeel waarin exclusieve toegang is vereist tot die hulpbron. Twee kritieke secties C en K mogen niet gelijktijdig worden uitgevoerd (= wedezijdse uitsluiting). Een voorbeeld van een hulpbron waarvan de status door twee wedrijvende processen kan worden gewijzigd is een variabele waartoe beide processen toegang hebben en die door beide processen kan worden geïnspecteerd en gewijzigd. Een dergelijke variabel heet een gemeenschappelijke variabele.

Beschrijf de globale werking van spin-lock algoritme


Een spin-lock is een "busy-waiting loop', waarbij een proces wacht om toegang te krijgen tot een gedeelde resource door het herhaardelijk testen van een flag die aangeeft of een resource vrij is.
Spin-lock algoritmen zijn afhankelijk van fair serialization van concurrent load en bewaard operaties door de CPU/store interface. Ze gaan er van uit dat toegang tot dezelfde storage locatie die gelijktijdig geinitieerd worden sequentieel uitgevoerd word en dat geen enkele proces is uitsterft

Beschrijf de globale werking van het wait-free algoritme

Het algoritme van SImpson is een wait-free algoritme, dat wil zeggen een algoritme dat processen nooit in een eindeloze lus kan blokkeren. Met een wait-free algoritme kunnen concurrerende processen probleemloos een gemeenschappelijke variabele lezen en wijzigen. Het algoritme van SImpson maakt gebruik van de 4 atomaire variabelen data_bank, data_col, last_row_inspected en last_row_updated om ervoor te zorgen dat de meest recente waarde van de variabele wordt gelezen en dat processen nooit op elkaar hoeven te wachten

Pas semaforen toe voor het programmeren van wederzijdse uitsluiting en communicatie


Binaire semaforen met wait en notify zijn te gebruiken voor het programmeren van wederzijdse uitsluiting. De volgende relaties gelden:
s=0 <=> kritieke sectie is bezet
s=1 <=> critieke sectie is vrij

<TODO>

De vragen op deze pagina komen uit de samenvatting van het volgende studiemateriaal:

  • Een unieke studie- en oefentool
  • Nooit meer iets twee keer studeren
  • Haal de cijfers waar je op hoopt
  • 100% zeker alles onthouden
Onthoud sneller, leer beter. Wetenschappelijk bewezen.
Trustpilot-logo