Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
6
1.Procesywspółbieżne
kolejnychodcinkówczasuobliczeńprocesoradorealizacjizadaniaoptymalizacjifunk-
cji,zmożliwościąwykonywaniaobsługioperacjiznakowychwzadaniachwydruku
plikuorazedycjidokumentu.Operacjewejściaiwyjścia,wskróciewe/wy,ocharak-
terzeznakowymniewymagająodprocesoradużegonakładuobliczeniowego.Dlatego
wrozważanymprzypadkuprocesormożerealizowaćzadanieoptymalizacjifunkcji
prawdopodobnieintensywneobliczeniowoprzerywającpracęwodpowiednichmo-
mentachwceluobsługiurządzeńwe/wy,tj.drukarkiiklawiatury.Zwyczajowożądania
obsługitychurządzeńzgłaszanezapomocąprzerwań(ang.interrupts).Wpraktyce
przydziałczasuobliczeńprocesorajestbardziejzłożony,ponieważzarównozadaniom,
jakiprzerwaniomprzypisanepriorytetywpływającenakolejnośćwykonywania
obliczeń.
Zauważmy,żewopisanypowyżejsposóbdziałająobecniejednoprocesorowekom-
puteryosobiste(ang.personalcomputers,PC).Systemoperacyjnykomputeranadzoruje
wykonywanieobliczeń,przydzielającprocesordorealizacjiprocesówwspółbieżnych
metodąpodziałuczasu,atakżeuwzględniającprzerwaniaipriorytetyprocesów.Komu-
nikacjamiędzyprocesamiodbywasięzapośrednictwempamięcioperacyjnejstanowią-
cejjednąprzestrzeńadresową,wspólnądlawszystkichprocesów.
Pseudorównoległewykonywaniezadańzapomocąpojedynczegoprocesoraokreśla-
nejestjakowielozadaniowość(ang.multitasking).Tentrybpracystosowanyjesttakże
wkomputerachowieluprocesorach,tzw.serwerachobliczeniowych,wprzypadkach
gdyliczbawykonywanychzadańznacznieprzewyższaliczbęprocesorów.Zarówno
wsystemachzjednymprocesorem,jakiwsystemachwieloprocesorowychkolejność
wykonywaniazadańjestustalanaprzezmodułsystemuoperacyjnegoprzeznaczonydo
zarządzaniaczasemobliczeńprocesora,zwanyteżmodułemszeregowaniazadań.
Wcelujaknajlepszegowykorzystaniaprocesorówwmoduletymrozwiązywanyjest
problemrównoważeniaichobciążeń(por.podrozdz.4.5).
Wątki
Jakwspomnieliśmywcześniej,zadaniabędąceskładowymiprogramurównoległego
wykonywanepodnadzoremsystemuoperacyjnegojakoprocesysekwencyjne.Od
stronyrealizacyjnejprocesjestjednostkątworzoną,nadzorowanąilikwidowanąprzez
systemoperacyjny.Wceluwykonaniaprocesusystemprzydzielamuokreślonezasoby,
np.czasobliczeńprocesorarzeczywistego,obszarpamięci,wktórymprzechowywane
instrukcje,daneistos,zbiórrejestrów,wtymrejestrylicznikainstrukcjiorazwskaźnika
stosu.
Procesjestwykonywanyprzezjedenwątek(ang.thread)lubprzezzespółwspół-
pracującychzesobąwątków.Wątekstanowijednostkęsystemuoperacyjnegorealizującą
niezależnystrumieńinstrukcji5.Jeśliwprocesiewystępujewiększaliczbawątków,
tomamydoczynieniazewspółbieżnościąobliczeńwewnątrzprocesupolegającąna
5Zarównoproces,jakiwątekjednostkamisystemuoperacyjnego.Zuwaginapodobieństwawątek
nazywanyjestczasamiprocesemlekkim(ang.lightweightprocess),aprocestradycyjnyprocesemciężkim
(ang.heavyweightprocess).