Tentafrågor - Sant/Falskt Flashcards

1
Q

En process är en applikation under körning och har minst en tråd från vilken nya trådar kan skapas. En flertrådad applikation har två eller flera trådar.

A

Sant

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

En process är ett enskilt program (eller applikation) medan en tråd är en del i processen. Varje process har ett separat minnesområde men trådar delar processens minne.

A

Sant

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

När man säger att en tråd blockerar menar man att tråden blockerar alla andra trådar för att den ska kunna gå in i en synkroniserad del av koden

A

Falskt

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

En metod är trådsäker om metoden kan köras samtidigt av flera trådar under Mutual Exclusion och utan att delade resureser modifieras på ett okontrollerat sätt.

A

Sant

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

En kritisk sektion (critical section) i ett program är ett kodavsnitt där det är nödvändigt att inte låta flera trådar ha tillgång till delad data samtidigt.

A

Sant

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

För att skydda en kritisk sektion kan man använda sig av en bounded buffer tillsammans med en räknarsemafor (counting semaphore)

A

Falskt

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

Mutual exclusion (ME) innebär att critical section (CS) behöver exekveras utan avbrott och endast av en tråd åt gången

A

Sant

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

“Safety” är en egenskap som betyder att en tråd någon gång kommer att göra framsteg, men vi vet inte när, dvs tråden kommer inte svälta

A

Falskt

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

“Liveness” är en egenskap som betyder att koden aldrig ger fel resultat vilket i sin tur innebär att en delad resurs alltid innehåller rätt värde

A

Falskt

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

Lokala variabler i en metod som körs av flera trådar sparas i trådarnas stackminne och därför har varje tråd sin egen uppsättning av lokala variabler och deras aktuella värden inte delas mellan trådar

A

Sant

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

För att en kodblock skall utföras atomärt (atomic) kan ett lås användas. Låset ger mutual exclusion. Monitorer, mutexer och binära semaforer kan användas som lås.

A

Sant

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

Ett mutex objekt och en binär semafor har minst en gemensam egenskap att båda fungerar som lås och låset kan bara släppas av den tråd som anskaffat det

A

Falskt

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

En tråd som sover för en viss tidsperiod (genom Thread.sleep) måste vänta på CPU att exekvera igen när tiden har gått

A

Sant

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

Asynkronprogrammering är mest lämplig när man har flera oberoende uppgifter (Tasks) då flera uppgifter kan göras samtidigt utan att vänta på att en uppgift är klar innan nästa kan börja

A

Sant

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

Ett av de fyra villkor som samtidigt ska råda för att deadlock ska inträffa är starvation

A

Falskt

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

Asynkronprogrammering kräver inte flertrådning medan vid concurrency är det flera trådar som kör samtidigt

A

Sant

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

“Interleave” innebär att en operation i t. ex. satsen “i++;” kan exekveras i flera steg och därmed kan interference inträffas i en kritisk sektion som inte är synkroniserad

A

Sant

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

Mutual exclusion låter bara en tråd i taget att gå in i en kritisk sektion och därmed förhindra deadlock

A

Falskt

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

Skillnaden mellan förgrunds- och bakgrundstrådar är att bakgrunddstrådar avbryts även om de inte är färdiga med sina uppgifter när huvudtråden är färdigt och stänger av applikationen

A

Sant

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

En “counting” semafor kan ha ett värde som är noll eller större än noll men aldrig negativt

A

Falskt

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

Ett asynkront anrop startar direkt men resultatet blir tillgänglig till den anropade koden när uppgiften (the task) är färdig

A

Sant

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

För att undvika race condition och interference i en operation med delad resurs behöver operationen göras atomärt (atomic). En operation som körs som en sammanhållen enhet eller odelbart kallas atomic (atomära).

A

Sant

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

En bounded buffer kan vara en array av variabler eller en samling (ex. ArrayList) av variabler men den kan bara användas tillsammans med semaforer. Monitorer kan inte användas av en boundedbuffer.

A

Falskt

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

En trådpool sägs vara non-blocking då trådar i poolen alltid är igång och aldrig väntar på att en uppgift ska bli klar.

A

Falskt

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

Parallelism är en form av concurrency som kan implementeras på såväl en-kärninga som flerkärninga processorer

A

Falskt

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

Asynkronprogrammering behöver inte trådar (förutom huvudtråden)

A

Sant

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

När en applikation stängs väntar huvudtråden inte på att bakgrundstrådar avslutar sina uppgifter och exekvera färdigt.

A

Sant

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

Varje monitor objekt är associerat med ett lås och en condition variabel

A

Sant

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

En mutex-objekt fungerar som en binär semafor men objektet äger låset vilket innebär att låset inte kan släppas av en annan tråd.

A

Sant

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

Mutual Exclusion löser problemet med Deadlock men Race Condition kan fortfarande inträffa

A

Falskt

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

Man kan aldrig vara säker på i vilken ordning trådar får exekveras när flera trådar exekveras samtidigt

A

Sant

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

En binär semafor, en mutex och en monitor kan alla skapa mutual exclusion

A

Sant

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

Trådpooler jobbar inte asynkront

A

Falskt

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

Trådpooler ökar prestandan speciellt när antalet trådar som samtidigt skall exekveras är större än antalet kärnor i en flerkärning processor

A

Falskt

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

Ett bounded buffer-objekt kan användas när två eller flera trådar som konsumerar data vill kommunicera med andra trådar som producerar data

A

Sant

36
Q

För att deadlock skall inträffa skall fyra villkor vara uppfyllda samtidigt och dessa är: Fairness, bounded wait, race condition och spinning

A

Falskt

37
Q

En tråd har ett tråd-ID, en programräknare, ett register och ett stackminne

A

Sant

38
Q

Synkronisering med condition variabler görs i syfte att skapa mutual exclusion

A

Falskt

39
Q

Mutual exclusion låter bara en tråd i taget att gå in i en kritisk sektion och därmed förhindra race condition

A

Sant

40
Q

En metod är trådsäker om metoden kan köras samtidigt av flera trådar under Mutual Exclusion utan att den delade resurser modifieras på ett okontrolleras sätt.

A

Sant

41
Q

Bounded Buffer kan inte användas med en writer-reader-lösning utan bara med producer-consumer-lösningar

A

Falskt

42
Q

En semafors värde kan bli negativt vilket innebär att det finns trådar som väntar på att få tillstånd till en resurs

A

Sant

43
Q

Concurrency (samtidigthet) kan på en enkärnig dator endast göras genom “time slicing”. Om en dator har två eller fler kärnor, används det fortfarande bara en kärna för concurrency.

A

Falskt

44
Q

En applikation med 5 trådar blir 5 gånger snabbare om den körs på en dator som har 5 kärnor, jämför med om applikationen körs på en dator med endast en kärna (eller en CPU med en enda processor).

A

Falskt

45
Q

När ett program laddas upp från en disk till minnet, exekveras det som en process - en process är en instans av en applikation under körning

A

Sant

46
Q

En nyckelskillnad mellan processer (obs ej processor) och trådar är att flera trådar delar resurser som kan påverka deras status, medan ingen process direkt kan komma in i en annan process minnesområde.

A

Sant

47
Q

Varje applikation har en huvudtråd. Trådar som skapas av huvudtråden blir barn (children) till huvudtråden

A

Sant

48
Q

En sekvens av satser som behöver exekveras utan avbrott och endast av en tråd åt gången kallas för Critical Section eller Critical Region

A

Sant

49
Q

Indeterminism innebär att en applikation med samma indata kan ge olika värden vid olika körningar

A

Falskt

50
Q

Safety innebär att inget dåligt kommer att hända i applikationen

A

Sant

51
Q

Liveness är en egenskap som betyder att en tråd någon gång kommer att göra framsteg men vi vet inte när

A

Sant

52
Q

Liveness betyder att en tråd alltid gör framsteg utan avbrott

A

Falskt

53
Q

Safety förhindrar alltid Race Condition medan Liveness förhindrar alltid Livelock

A

Falskt

54
Q

För en tråd som utför anropet Thread.sleep(1000) gäller följande:
När denna tid har gått återupptar tråden alltid sin exekvering omgående

A

Falskt

55
Q

För en tråd som utför anropet Thread.sleep(1000) gäller följande:
När denna tid har gått blir tråden körbar igen och när tråden åter är körbar kan den när som helst få chans att fortsätta exekvera

A

Sant

56
Q

För en tråd som utför anropet Thread.sleep(1000) gäller följande:
Tråden förblir blockerad tills den väcks av en annan tråd genom anrop av metoden notify

A

Falskt

57
Q

För en tråd som utför anropet Thread.sleep(1000) gäller följande:
Tråden gör ett uppehåll under en sekund. Tråden blockerar sig under detta tidsintervall vilket innebär att en annan tråd med lägre prioritet kan få chans att exekvera, om det inte finns någon annan körbar tråd med högre prioritet

A

Sant

58
Q

wait() gör att en tråd avbryter sin exekvering och placeras i en kö

A

Falskt

59
Q

notify() kan endast anropas av en tråd som äger monitorn

A

Sant

60
Q

Metoderna wait(), notify() och notifyAll() måste anropas inifrån ett synkroniserat block av kod

A

Sant

61
Q

När en tråd anropar notify() väcks en väntande tråd; Om väntekön är tom kommer monitorn ihåg signalen, dvs monitorer sparar signalhistoriken

A

Falskt

62
Q

När en tråd blockeras betyder det att tråden väntar för att gå in i den kritiska sektionen tills en resurs blir tillgänglig

A

Sant

63
Q

När en tråd blockeras betyder det att tråden blockerar alla andra trådar för att gå in i kritiska sektionen för ett visst antal millisekunder

A

Falskt

64
Q

När en tråd blockeras betyder det att tråden låser kritiska sektionen för att skapa Mutual Exclusion

A

Falskt

65
Q

När en tråd blockeras betyder det att tråden måste vänta tills alla andra trådar nått ett visst ställe i koden

A

Falskt

66
Q

Anta att vid ett Reader-Writer-problem, har vi multipla reader- och multipla writer-trådar. Vi har en bounded buffer med N antal element:
När en writer och en reader vill gå in samtidigt i bufferten för att skriva resp. läsa data används två separata semaforer, en för reader-tråden och en för writer-tråden

A

Falskt (kommentar: Misstänker att påståendet är falskt för att det inte nämner att man behöver en mutex också)

67
Q

Anta att vid ett Reader-Writer-problem, har vi multipla reader- och multipla writer-trådar. Vi har en bounded buffer med N antal element:
För att kontrollera writer-trådar att inte skriva när bufferten är full behöver vi en separat räknarsemafor.

A

Sant

68
Q

Anta att vid ett Reader-Writer-problem, har vi multipla reader- och multipla writer-trådar. Vi har en bounded buffer med N antal element:
För att kontrollera reader-trådar att inte läsa när bufferten är tom behöver vi en separat räknarsemafor

A

Sant

69
Q

Anta att vid ett Reader-Writer-problem, har vi multipla reader- och multipla writer-trådar. Vi har en bounded buffer med N antal element:
Vi behöver ha en mutex för att skapa mutual exclusion

A

Sant

70
Q

En mutex låter endast en tråd komma åt en resurs

A

Sant

71
Q

En mutex är egentligen en binär semafor

A

Falskt (men en binär semafor kan användas för ME)

72
Q

En mutex kan endast släppas av den tråd som äger den

A

Sant

73
Q

En tråd äger ett lås men inte en mutex

A

Falskt

74
Q

Trådpooler är användbara för att begränsa antalet trådar som samtidigt körs.

A

Sant

75
Q

En tråd i en trådpool skapas vid behov och tas bort när den är färdig med sin uppgift

A

Falskt

76
Q

En trådpool är en samling av trådar som bara exekverar asynkrona uppgifter (tasks) i en applikation

A

Falskt

77
Q

Trådpooler ger bättre prestanda jämfört med att skapa nya trådar hela tiden då att skapa en ny tråd har overhead och kräver allokering av stackminne

A

Sant

78
Q

En condition variable är ett boolean uttryck som styr om en tråd skall fortsätta exekvera eller vänta

A

Falskt

79
Q

Condition Synchronization görs inne i en synkroniserad sektion

A

Sant

80
Q

Vid en bounded buffer kan en producer-tråd blockera så länge bufferten är full, vilket är ett exempel på condition synkronisering

A

Sant

81
Q

En condition variabel är inte en boolean typ utan en kö där trådar väntar på att ett vilkor blir sant

A

Sant

82
Q

En bounded buffer är en buffer av strängar som används för att garantera Mutual Exclusion

A

Falskt

83
Q

En bounded buffer kan också användas för att säkerställa condition synkronisering

A

Falskt

84
Q

En bounded buffer kan inte användas med en reader-writer-modell men fungerar bra med producer-consumer

A

Falskt

85
Q

En bounded buffer kan användas när två eller flera trådar vill kommunicera med andra trådar som producerar data

A

Sant