4.1 - Overview (p.153)

  • Thread = Basis unit van CPU gebruik.
    • Heeft een eigen: ThreadID, program counter, register set en stack.
    • Deelt met threads van hetzelfde proces: code, data, os resources, open files en signals.
  • Multithreaded proces kan meerdere taken tegelijkertijd aan.
  • Single threaded process wordt ook wel een heavyweight process genoemd.

  • Voordelen voor multithreaded programming:

    1. Responsiveness
      • Wanneer een deel van de applicatie is geblokkeerd/bezig kunnen andere delen gewoon verder.
    2. Delen van resources
      • Anders dan processen, delen threads van nature resources van het eigen process met elkaar.
    3. Economish
      • Het is meer kostbaar om processen te beheren, dan om threads te beheren. Vanwege de overhead groote.
    4. Schaalbaar
      • Op een multiprocessor systeem kunnen meerdere threads parallel werken (parallelism).
  • Challenges voor multithreaded programming:

    1. Verdelen van activiteiten
      • Vinden van taken die verdeelt kunnen worden over meerdere threads.
    2. Balans
      • Het kan niet waard zijn om een taak in een aparte thread te laten draaien wanneer het niet genoeg opbrengt aan het process.
    3. Opdelen van data
      • De data moet worden opgedeeld zodat deze kan worden gemanipuleerd per thread.
    4. Afhankelijkheid van data
      • Als een thread afhankelijk is van de output van een andere, kunnen deze threads dus niet tegelijkertijd draaien.
    5. Testen en debuggen
      • Doordat verschillende threads tegelijkertijd draaien is het moeilijk om deze te testen en te debuggen.

results matching ""

    No results matching ""