M1.F1: Concurrency & Parallelism Flashcards
(35 cards)
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
Vad är en task?
En enhet av arbete/uppgifter som ska schemaläggas/utföras.
Hur kan man implementera concurrency?
Både via processer och trådar.
Vad kan man ge som exempel på concurrency?
Köra flera program samtidigt på en dator.
Hur kan man dela upp processerna i en applikation?
I sub-processer.
Vilka processorer kan concurrency användas på?
Enkärniga och flerkärniga.
Hur uppnår man concurrency på en enkärning processor?
Genom time-slicing
Ge 2 exempel på typer av concurrency
Multithreading och parallel programming
Vad innehåller en concurrent application?
Två eller flera processer/trådar som jobbar tillsammans för att utföra en task
Vad kan man kalla en enskild process i en concurrent application?
Sequential application