M1.F1: Concurrency & Parallelism Flashcards
Vad är concurrency?
När två eller flera saker till synes (nästan) händer samtidigt
Vad är concurrency programming?
När man får två eller flera tasks att köras samtidigt, delandes på datorns CPU
Vad är en task?
En enhet av program som kan köras concurrently med andra enheter av programmet
Vad är parallel programming?
När två eller flera tasks körs exakt samtidigt - delar inte samma CPU
Vad händer när ett program startas?
Operativsystemet skapar en process och får ett ID och ett memory space
Vad består en process av? (5 punkter)
- Programinstruktioner i maskinspråket
- Stack memory (call stack) - för att hålla koll på aktiva metoder
- Ett heap memory
- En program counter (register)
- Andra resurser, säkerhetsinformation, information om processtillstånd
Hur isoleras en process i OS?
Genom att tilldelas sin egna address space
Delar olika processer åtkomst till varandras memory space?
Nej
Hur kommunicerar processer med varandra?
Genom att skicka meddelanden, Inter-Process Communication (IPC)
Vad hanterar IPC?
Operativsystemet
Vad delar alla trådar inom samma process?
Address space och samma programkod och data (global)
Vad kan man säga om både processer och trådar?
Båda är enheter av körning (execution)
Vad är en process?
Körning av ett program, isolerat från andra processer, dvs körs i sitt egna memory space
Hur hör en tråd samman med en process?
Den körs inom address space:en för en process och kör hela eller delar av ett program och delar processens memory space.
Hur kan man bryta ner en process till mindre units av execution?
Genom att använda flera trådar i en applikation