-
1. Data: 2014-12-17 10:42:11
Temat: Dwa wątki na jednym rdzeniu
Od: Borneq <b...@a...hidden.pl>
To że procesor ma dwa rdzenie umożliwia równoległe wykonywanie dwóch
wątków. A na czym polega to, że każdy z rdzeniu ma dwa wątki?
-
2. Data: 2014-12-17 11:00:53
Temat: Re: Dwa wątki na jednym rdzeniu
Od: Adam Klobukowski <a...@g...com>
W dniu środa, 17 grudnia 2014 10:42:25 UTC+1 użytkownik Borneq napisał:
> To że procesor ma dwa rdzenie umożliwia równoległe wykonywanie dwóch
> wątków. A na czym polega to, że każdy z rdzeniu ma dwa wątki?
Różne rozkazy potrzebują rożnych części procesora do wykonania. Procesory (rdzenie)
mają też zwielokrotnione niektóre elementy, aby zapewnić jednoczesne wykonanie tych
samych operacji na różnych danych. W ten sposób, jeden rdzeń może wykonywac na raz 2
(lub więcej) wątków - są one logicznie oddzielnymi procesorami, ale jednocześnie
wykonują się jedynie wówczas jeśli nie konkurują o te same zasoby procesora.
AdamK
-
3. Data: 2014-12-17 12:15:10
Temat: Re: Dwa wątki na jednym rdzeniu
Od: Robert Winkler <n...@n...org>
W dniu 2014-12-17 o 10:42, Borneq pisze:
> To że procesor ma dwa rdzenie umożliwia równoległe wykonywanie dwóch
> wątków. A na czym polega to, że każdy z rdzeniu ma dwa wątki?
Dwa wątki, dalej pozostaną dwoma wątkami, nie rozmnożą się.
System może te dwa wątki uruchomić na różnych rdzeniach,
ale może też pojawić się sytuacja w której oba wątki będą wykonywane
przez jeden rdzeń.
W takim wypadku uruchamiane będą naprzemiennie,
przez ułamek sekundy działać będzie jeden wątek,
potem jego stan zostanie zapisany
i uruchomiony zostanie na ułamek sekundy kolejny wątek,
aż procesor obsłuży wszystkie wątki wszystkich programów,
które nie są zablokowane przez mechanizmy synchronizacji procesora.
Poza tym systemy oferują jeszcze mechanizm znany jako "processor affinity"
za pomocą którego program może przypisać swoje działanie do danego
procesora/rdzenia.
Może to zrobić albo na poziomie całego procesu, albo na poziomie wątków.
/Robert
-
4. Data: 2014-12-17 14:34:51
Temat: Re: Dwa wątki na jednym rdzeniu
Od: JDX <j...@o...pl>
On 2014-12-17 12:15, Robert Winkler wrote:
> W dniu 2014-12-17 o 10:42, Borneq pisze:
>> To że procesor ma dwa rdzenie umożliwia równoległe wykonywanie dwóch
>> wątków. A na czym polega to, że każdy z rdzeniu ma dwa wątki?
>
> Dwa wątki, dalej pozostaną dwoma wątkami, nie rozmnożą się.
> System może te dwa wątki uruchomić na różnych rdzeniach,
> ale może też pojawić się sytuacja w której oba wątki będą wykonywane
> przez jeden rdzeń.
> W takim wypadku uruchamiane będą naprzemiennie,
> przez ułamek sekundy działać będzie jeden wątek,
> potem jego stan zostanie zapisany
> i uruchomiony zostanie na ułamek sekundy kolejny wątek,
> aż procesor obsłuży wszystkie wątki wszystkich programów,
> które nie są zablokowane przez mechanizmy synchronizacji procesora.
Ale OP chodzi raczej o https://en.wikipedia.org/wiki/Hyper-threading a
nie o pozorny efekt równoległości wykonywania się wątków w wyniku
podziału czasu procesora/rdzenia.