Parallel programmeren op laag niveau
20 belangrijke vragen over Parallel programmeren op laag niveau
Omschrijf het begrip gelijktijdige uitvoering
Omschrijf het begrip (arbitrary) interleaving
Omschrijf het begrip sequentieel proces
- Hogere cijfers + sneller leren
- Niets twee keer studeren
- 100% zeker alles onthouden
Omschrijf het begrip sequentieel programma
Omschrijf het begrip parallel programma
Omschrijf het begrip race condition
Omschrijf het begrip (non)preemptive CPU-scheduler
Omschrijf het begrip multithreaded proces
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
Bij eerlijke scheduling komen alle processen aan bod, zoals bijvoorbeeld bij first-come first-served orde (queue).
Omschrijf het begrip atomaire variabele
Beschrijf het begrip spin lock
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 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
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
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