M1.F1: Multithreading Flashcards

1
Q

Vad är multitasking?

A

När flera program verkar* köras samtidigt

*från engelskans seem to

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

Vad är multithreading?

A

En form av multitasking inuti en applikation

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

Vad är en tråd?

A

Ett enstaka sekventiellt kontrollflöde inom ett program/oberoende enhet av körning inom en process

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

Vad kan man också kalla en tråd?

A

Light-weight process

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

Vilket av dessa har en tråd och vilket har den inte:

  • Egen stack
  • Egen adress space
A

En tråd har egen stack, men inte egen adress space.

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

Nämn 2 fördelar med multithreading:

A
  • förbättrad prestanda

- förbättrad responsivitet/svarstid

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

Förklara trådar i relation till concurrently och parallel:

A

Trådar körs självständigt med concurrently. De kan vara parallela om de körs på olika CPUs.

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

Vad delar trådar på?

A

Processresurser, inklusive minne.

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

Vad har en tråd som sitt eget (dvs inte delat)?

A

Stack memory där program counter och lokal data lagras

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

Nämn fyra nackdelar med multithreading:

A
  • Det kan bli komplext
  • Svårt att debugga
  • Resurskrävande. Många trådar tar upp mycket minne.
  • Det tar mycket CPU-tid att skapa, ta bort och ändra kontext (context-switch) för trådar
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Ge fyra exempel på typiska tillstånd en tråd kan befinna sig i.

A
  • Ready
  • Running/Active
  • Blocked/waiting
  • Terminated
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Varför är det tids- och prestandakrävande för CPUn att växla mellan trådar?

A

För att den måste lagra tillståndet för en process eller tråd för att kunna återställa och återuppta den igen.

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

Varför är en thread-switch “billigare” än en process-switch?

A

För att trådarna delar samma minne

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

Nämn 5 fördelar med multithreading:

A
  • Många real-world situationer innehåller concurrency
  • Man utnyttjar multiprocessor/multikärnehårdvara.
  • Förbättrad processorkraft (throughtput)
  • Förbättrad svarstid
  • Bra för komplexa beräkningar
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Nämn 3 situationer där multithreading passar:

A
  • Ordbehandlare (autocorrect samtidigt som man skriver)
  • Förbättra svarstiden på en hemsida, requests kan processeras av olika trådar utan att vänta på att tidskonsumerande trådar ska avsluta
  • Om man har en tidskrävande beräkning
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Vad är den största utmaningen med multithreading?

A

Synkronisation

17
Q

Varför behöver tillgängligheten till delat data synkroniseras mellan trådarna?

A

För att trådar delar processminnet, om flera trådar kan komma åt och förändra en variabels tillstånd kommer programmet inte att fungera som det ska

18
Q

Vad är poängen med multithreading?

A

Att använda mer än en tråd i en applikation som körs samtidigt inom processen