t. napisał(a):
> O, mógłbyś coś więcej na ten temat? Kiedy proces jest przenoszony
> pomiędzy rdzeniami? (bo to chyba nie jest normalne zachowanie systemu?)
To się generalnie może zdarzać, gdy proces wykonuje dużo
operacji blokujących (we/wy, synchronizacja), a w systemie
działa parę innych okresowo działających procesów.
Załóżmy, że mamy procesy A i B dosyć ważne z punktu obli-
czeniowego oraz proces X odpalający się często, ale tylko
na chwilkę -- coś sprawdza. Na początek A i B działają na
CPU0 (A) i CPU1 (B), jednak A wykonuje I/O i zwalnia kwant
czasu. X wchodzi na jego miejsce, coś chwilkę robi, w tym
czasie B też wykonuje I/O i zwalnia CPU1 dla A, którego I/O
już zostało wykonane. A wskakuje na CPU1, X się kończy i B
wskakuje na CPU0. Już się zamieniły miejscami :)
Jeżeli takie "przypadkowe" zamiany będą częste, to
wydajność drastycznie spada. Miałem np. taką sytuację
na dwuprocesorowym Pentium III kompresującym do MP3 --
ustawienie skojarzenia (CPU affinity) co prawda spowodo-
wało, że proces musiał czekać na "swój" CPU nawet, jeżeli
ten drugi był przez chwilę wolny (bo ten drugi kompresor
czekał na odczyt z dysku), jednak ostatecznie wydajność
była naprawdę o wiele wyższa.
-- |""""""""""""""""""""""""""""""""""""""""""""""""""""""""""| | Radosław Sokół | http://www.grush.one.pl/ | | | Administrator, Politechnika Śląska | \................... Microsoft MVP ......................../Received on Tue Apr 11 13:35:10 2006
To archiwum zostało wygenerowane przez hypermail 2.1.8 : Tue 11 Apr 2006 - 13:51:12 MET DST