M1.F1: Concurrency & Parallelism Flashcards

1
Q

Vad är concurrency?

A

När två eller flera saker till synes (nästan) händer samtidigt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Vad är concurrency programming?

A

När man får två eller flera tasks att köras samtidigt, delandes på datorns CPU

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Vad är en task?

A

En enhet av program som kan köras concurrently med andra enheter av programmet

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Vad är parallel programming?

A

När två eller flera tasks körs exakt samtidigt - delar inte samma CPU

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Vad händer när ett program startas?

A

Operativsystemet skapar en process och får ett ID och ett memory space

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Vad består en process av? (5 punkter)

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Hur isoleras en process i OS?

A

Genom att tilldelas sin egna address space

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Delar olika processer åtkomst till varandras memory space?

A

Nej

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Hur kommunicerar processer med varandra?

A

Genom att skicka meddelanden, Inter-Process Communication (IPC)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Vad hanterar IPC?

A

Operativsystemet

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Vad delar alla trådar inom samma process?

A

Address space och samma programkod och data (global)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Vad kan man säga om både processer och trådar?

A

Båda är enheter av körning (execution)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Vad är en process?

A

Körning av ett program, isolerat från andra processer, dvs körs i sitt egna memory space

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Hur hör en tråd samman med en process?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Hur kan man bryta ner en process till mindre units av execution?

A

Genom att använda flera trådar i en applikation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Vad är en task?

A

En enhet av arbete/uppgifter som ska schemaläggas/utföras.

17
Q

Hur kan man implementera concurrency?

A

Både via processer och trådar.

18
Q

Vad kan man ge som exempel på concurrency?

A

Köra flera program samtidigt på en dator.

19
Q

Hur kan man dela upp processerna i en applikation?

A

I sub-processer.

20
Q

Vilka processorer kan concurrency användas på?

A

Enkärniga och flerkärniga.

21
Q

Hur uppnår man concurrency på en enkärning processor?

A

Genom time-slicing

22
Q

Ge 2 exempel på typer av concurrency

A

Multithreading och parallel programming

23
Q

Vad innehåller en concurrent application?

A

Två eller flera processer/trådar som jobbar tillsammans för att utföra en task

24
Q

Vad kan man kalla en enskild process i en concurrent application?

A

Sequential application

25
Q

Vad är en sequential application och hur många trådar har den?

A

En sekvens av uttryck som exekveras en efter en. Den har en tråd.

26
Q

Vad hur många trådar har en concurrent application?

A

2 eller fler.

27
Q

Hur sker kommunikation mellan processer?

A

Genom delade variabler eller genom att skicka meddelanden.

28
Q

Hur kan man uppnå parallelism i en applikation?

A

Genom att dela upp applikationen i mindre tasks som kan exekveras parallellt.

29
Q

Vad behöver man för att kunna uppnå parallelism?

A

Flera processenheter, flera kärnor eller flera CPUs.

30
Q

Vad är skillnaden på ett parallelism och ett concurrency?

A

Parallelism: Två eller flera tasks utförs simultant, dvs två applikationer körs helt parallellt i separata processorer

Concurrency: Två eller flera tasks gör framsteg samtidigt. Processorn delar sin tid för programmen med så korta intervaller att upplevs att köras samtidigt.

31
Q

Kan man uppnå både concurrency och paralellism i en enkärnig CPU?

A

Concurrency: Ja Parallelism: Nej

32
Q

När uppstår concurrency, inom datavetenskap?

A

När processer (program) och trådar (delar av en applikation) körs samtidigt.

33
Q

Kan parallelism anses vara en form av concurrency?

A

Ja

34
Q

Vad är poängen med concurrency?

A
  • Att hantera flera saker som händer samtidigt.

- Skapa strukturer som gör flera saker samtidigt, men inte nödvändigtvis simultant

35
Q

Är målet med concurrency parallelism?

A

Nej