Title: Besturingssystemen / hoofdstuk 4

Naam: thread
Wat is/doet het?: programma opdelen in synchroniseerbare stukken
Hoe werkt het?: elke thread heeft eigen registers en stapel
Wanneer gebruikt?: opdelen van taken
Voordelen: UI thread en CPU thread
resources (geheugen) delen
geen context switch
multi core
Alternatieven: multiprocessing
Pagina: 162
Figuur: 4.1

Naam: concurrency vs parallellism
Wat is/doet het?: multithreading schemas
Hoe werkt het?: concurrency: snel wisselen
parallel: effectief gelijktijdig
Pagina: 164
Figuur: 4.3, 4.4

Naam: data vs task parallellism
Wat is/doet het?: synchronisatie modellen
Hoe werkt het?: data: deel data op en voer bewerking uit op elk stuk (som 1 tot 0.5n, som 0.5n tot n)
task: twee verschillende taken

Naam: many to one model
Wat is/doet het?: mapping kernel/user thread
Hoe werkt het?: per proces maar 1 door kernel uitgevoerd
Waar gebruikt?: zelden
Voordelen: competitie tussen threads in user space
Nadelen: geen voordeel uit multicores
thread maakt blocking syscall => proces blokkeert volledig
Alternatieven: many to many
one to one
Pagina: 167
Figuur: 4.5

Naam: one to one model
Wat is/doet het?: thread mapping
Hoe werkt het?: voor elke user thread wordt een thread op kernelniveau aangemaakt
Waar gebruikt?: linux/windows
Wanneer gebruikt?: bij aanmaken van thread
Voordelen: voordeel halen uit multicore
Nadelen: telkes nieuwe kerel thread aanmaken bij maken van user thread
Alternatieven: many to one
many to many
Pagina: 168
Figuur: 4.6

Naam: many to many model
Wat is/doet het?: thread mapping model
Hoe werkt het?: aantal aangemaakte threads hangt af van programma of machie
Waar gebruikt?: solaris <= 9
Voordelen: voordeel halen uit multicores
niet meer threads dan nodig
Alternatieven: one to one
many to one
Pagina: 168
Figuur: 4.7

Naam: thread pool
Wat is/doet het?: vorm van implicit threading
Hoe werkt het?: bij opstaren van een proces worden een aantal threads gemaakt, die dan werk afwachten
Wanneer gebruikt?: opstarten proces
Voordelen: geen overhead bij aanmaken van nieuwe thread
geen te groot aantal threads (dus geen overdaad aan CPU of geheugengebruik)
Pagina: 178

Naam: openMP
Wat is/doet het?: implicit threading
Hoe werkt het?: automatisch threads aanmaken voor parallelle regio's in code
Waar gebruikt?: c code
Wanneer gebruikt?: programmeren
Pagina: 179

Naam: threading en fork/exec problemen
Hoe werkt het?: alle threads kopieren of enkel uitvoerende?
als exec() onmiddellijk wordt uitgevoerd door kind, is kopieren van alle threads overbodig
Pagina: 181

Naam: thread cancellation
Wat is/doet het?: thread beeindigen (bv als de gebruiker wil afsluiten)
Welke types zijn er?: asynchronous cancellation: NU STOPPEN !!!!!
deferred cancellation: threads kijken periodisch of ze beeindigd moeten worden, indien dit het geval is, maken ze hun werk af (bv belangrijke datastructuren afwerken en niet halfafgewerkt achterlaten)
Pagina: 183