Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
1.4.Wybraneproblemyprogramowaniawspółbieżnego
9
należywykazać,żewewszystkichmożliwychrealizacjachprocesówsytuacjeopisane
powyżejniewystąpią.
Nieformalnie,własnośćżywotnościoznacza,żewtrakciekażdegowykonaniapro-
gramuwspółbieżnegopewienpożądanywarunekwpewnymmomenciebędziespełniony.
Rozważmyprzykład,wktórymokreślonaliczbaprocesówwspółzawodniczyodostęp
dowspólnieużytkowanegozasobu,np.drukarki.Własnośćżywotnościstwierdza,że
jeżelidowolnyproceswyśleżądaniedrukowania,towpewnymmomenciezostanie
muprzydzielonadrukarka.Innymisłowy,niewystąpiindywidualnezagłodzeniepro-
cesu(ang.starvation)wskuteknieprzydzieleniamuzasobu.Zwłasnościążywotności
wiążesięwłasnośćuczciwości(ang.fairness).Własnośćtamanaceluograniczenie
wszystkichmożliwychrealizacjiprocesówwspółbieżnychdotzw.realizacjiuczciwych.
Warunkiuczciwościzapobiegajątakimrealizacjom,wktórychżądaniazgłaszaneprzez
procesynieprzerwanielubnieskończenieczęstonieobsługiwane,ponieważcały
czasobsługiwaneinneżądania.Wyróżniasiędwapodstawowe8rodzajeuczciwości:
słabąimocną.Warunekuczciwościsłabejstwierdza,żejeśliprocesnieprzerwanie
zgłaszażądanie,tokiedyśbędzieonoobsłużone.Dlauczciwościmocnejwarunekten
mapostać:jeśliproceszgłaszaswojeżądanienieskończeniewielerazy,tokiedyśbędzie
onoobsłużone.Rozpatrzmyproceszgłaszającyipodtrzymującynieprzerwanieżądanie
przydzieleniadrukarki.Jeżelipodczaskażdegowykonaniaprogramuwspółbieżnego
żądanietozostanieobsłużone,toprogrammawłasnośćsłabejuczciwości.Załóżmy
teraz,żeproceszgłaszażądaniedrukowania,alegdypopewnymczasieniezostaje
onoobsłużone,wtedywycofujeje,abywykonaćinneobliczenia.Jeśliprzyjąć,że
żądanietojestponawianeiwycofywanenieskończeniewielerazy,towprogramie
współbieżnymosłabejuczciwościmożeononigdyniezostaćobsłużone.Zajdzieto
wprzypadku,kiedyprocessterującydrukarką,doktóregokierowaneżądania,będzie
sprawdzał,czyjestżądaniedrukowaniawmomentach,gdyjestonoakuratwycofane.
Abyzapobiectegorodzajusytuacji,formułujesięwłasnośćmocnejuczciwości,wktó-
rejwymagasię,abyżądaniazgłaszanenieskończonąliczbęrazywkońcuzostały
obsłużone.
1.4.Wybraneproblemyprogramowaniawspółbieżnego
Podczasprojektowaniaorazimplementowaniasystemówwspółbieżnychtrzebarozwią-
zywaćproblemyniewystępującewsystemachsekwencyjnych.Związaneonezregu-
łyzewspółpracąprocesów(zadań),którajestniezbędnadlaprawidłowegodziałania
systemów.Wniniejszympodrozdzialeomówimywybraneproblemyprogramowania
współbieżnegoisposobyichrozwiązywania.
8Oprócztegomożnasformułowaćuczciwośćzoczekiwaniemliniowym,wktórejżądaniezgłoszone
przezdowolnyproceszostanieobsłużone,zaniminnyproceszostanieobsłużonywięcejniżraz.Można
teżsformułowaćuczciwośćzgodniezregulaminemkolejkiFIFO(ang.firstin,firstout),tj.abyżądania
byłyobsługiwanezgodniezkolejnościąichzgłaszania.