Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
SQLServerprzydzielazadaniawątkomroboczymwwęzłachNUMAwykorzystując
domyślnietrybcyklicznyiniebierzepoduwagęliczbyzarządców.Różneliczbyzarząd-
cówprzypisanychdowęzłówNUMApowodująnierównomiernypodziałpracy(przykład
takiejsytuacjizostaniezaprezentowanywrozdziale15.).
Wwiększościprzypadkówpodczasrozwiązywaniaproblemównależysięskoncen-
trowaćnazadaniach.Istniejejednakwyjątek:gdyzadanieznajdujesięwstanie
PENDING
,
oznaczato,żezostałoutworzoneiczekanadostępnywątekroboczy.Jesttocałkowicie
normalnezjawisko,ponieważwątkiroboczezazwyczajbardzoszybkoprzydzielane
dozadań.Możejednakżeoznaczaćbardzoniebezpiecznystan,gdysystemniemawystar-
czającejliczbywątkówroboczychdoobsługiżądań.Sposóbwykrywaniairozwiązywania
tegoproblemuzostaniezaprezentowanywrozdziale13.Zadaniemożesiętakżeznajdować
wjednymzpięciuinnychstanów:
RUNNING
Zadaniejestobecniewykonywaneprzezzarządcę.
RUNNABLE
Zadanieoczekujenauruchomienieprzezzarządcę.
SUSPENDED
Zadanieoczekujenazewnętrznezdarzenielubzasób.
SPINLOOP
Zadaniejestwtrakcieobsługiblokadytypuspinlock.Blokadyspinlockmecha-
nizmamisynchronizacji,którechroniąniektóreobiektywewnętrzne.Mogąbyć
używaneprzezSQLServer,gdyoczekujeon,żedostępdoobiektuzostanieprzy-
znanybardzoszybko,adziękitemuunikniesięprzełączaniakontekstudlawątków
roboczych.
DONE
Zadaniezostałowykonane.
Pierwszetrzystanynajważniejszeinajczęściejspotykane.Każdyzarządcaobsługuje
conajwyżejjednozadaniewstanie
RUNNING
.Ponadtozawieradwieróżnekolejkijedną
dlazadań
RUNNABLE
,adrugadla
SUSPENDED
.Gdyzadaniewstanie
RUNNING
potrzebujepew-
nychzasobów(naprzykładpaczkidanychzdysku),wysyłażądaniewykonaniaoperacji
wejściaiwyjścia,anastępniezmieniastanna
SUSPENDED
.Zadaniepozostajewkolejce
SUSPENDED
domomentuzrealizowaniażądaniaiodczytaniadanych.Gdyjużmożekon-
tynuowaćdziałanie,zostajeprzeniesionedokolejki
RUNNABLE
.
Byćmożenajbliższąanalogiądotegoprocesujestkolejkadokasywsklepiespożyw-
czym.Osobywkasachmogłybybyćzarządcami,akliencizadaniamiwkolejce
RUNNABLE
.
Klient,którywłaśniewykładatowar,jestpodobnydozadaniawstanie
RUNNING
.
Jeślinaopakowaniutowarubrakujekodukreskowego,kasjerwysyłapracownika
sklepu,abysprawdziłcenę.Następnieprzestajeobsługiwaćbieżącegoklientaprosząc
gooodsunięciesię(idołączeniedokolejki
SUSPENDED
).Gdypracownikwrócizinformacją
ocenie,klientustawiasięnakońcukolejkidokasy(konieckolejki
RUNNABLE
).
SILOSimodelwykonawczysystemu
|
31