OS Hoofdstuk 4 Flashcards
Waaruit bestaat een thread?
thread id, program counter, register set, stack, errno
If a process has multiple threads of control it can ….?
perform multiple tasks at a time
Wat is de kernel thread kthreadd met pid = 2?
Deze thread wordt weergegeven bij het uitvoeren van de command ps -ef op linux.
Dit is de parent van alle andere kernel threads
Geef 4 voordelen van multithreading:
Responsiveness
Resource sharing
Economy
Scalability
Wat is het verschil tussen concurrency en parallelism?
Concurrency support meer dan 1 taak door alle taken toestemming te geven om progressie te maken.
parallelism: Kan meerdere taken tegelijk uitvoeren.
Welke 5 uitdagingen komen er kijken bij het programmeren met multicore systems?
1: identifying tasks. Uitzoeken welke taken afgesplitst kunnen worden in meerdere taken.
2: Balance: Wanneer taken parallel runnen, moeten ze wel equal performen.
3: Data splitting: wanneer applicaties gescheiden zijn in verschillende taken, de data die bij die taken hoort ook bij de juiste cores terecht komen.
4: Data dependency: als een taak afhankelijk is van data van een andere taak, moeten de taken gesynchronizeerd zijn.
5: Testing and debugging: dit wordt moeilijk omdat er veel verschillende execution paths zijn.
There are two types of parallelism, which ones?:
Data parallelism and Task parallelism.
Wat doet data parallelism?
Het verspreiden van subsets van dezelfde data over meerdere cores en dezelfde operatie uitvoeren op elke core.
Wat doet task parallelism?
Het verspreiden van taken over meerdere cores. Elke thread voert een unieke operatie uit.
Wat doet de thread library?
Levert een api aan de programmeur waarmee threads kunnen worden gemaakt.
Wat moet een parent thread doen wanneer het meerdere child threads heeft aangemaakt met synchronous threading?
wachten tot de child processes terminated zijn
Wat moet een parent thread doen wanneer het meerdere child threads heeft aangemaakt met synchronous threading?
Hij moet wachten tot de child threads terminated zijn omdat het synchronous is.
Hoe maak je een nieuwe thread aan in java?
Door je class te extenden met Runnable en vervolgens de methode run() te gebruiken.
Wat is implicit threading
Compilers en run-time libraries threads laten maken en managen.
Wat is een thread pool?
Bij start-up een aantal threads creeeren en deze in een pool zetten. Hier wachten ze tot ze werk krijgen. Hierdoor hoeven er niet steeds nieuwe threads aangemaakt te worden wat tijd bespaard.