Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
20
1.Procesywspółbieżne
filozofowie(wprzeciwnymraziefilozofizostałbydopuszczonydostołu),zktórychco
najmniejjedenmożepodnieśćdwawidelce.Pozakończeniujedzeniaopuścionmiejsce
przystole,wykonującoperacjęsignal(są_miejsca)(wiersz13),awtedyfilozofiotrzyma
pozwoleniezajęciamiejscaprzystole,cojestsprzeczneznaszymwcześniejszymzałoże-
niem.Powyższestwierdzeniadowodząspełnieniawrozważanymrozwiązaniuwłasności
bezpieczeństwa,atymsamymjegopoprawności.
Zauważmy,żeabypowstałozakleszczenie,zadaniaczekającenazasobymuszą
utworzyćnastępującycykl:pierwszezadanieczekanazasób,którymadrugiezadanie,
tozkoleiczekanazasób,którymatrzeciezadanieitd.dozadaniaostatniego,
któreczekanazasób,którymapierwszezadanie.Cykl,awięcizakleszczenie,nie
powstanie,jeśliwprowadzimyasymetrięwdziałaniuprzynajmniejjednegozadania,tj.
gdybędziewnimpodnoszonynajpierwprawywidelec,apóźniejlewy.Narysunku1.12
jestpokazanerozwiązanieasymetryczne,wktórymwzadaniachonumerachparzystych
podnoszonelewyiprawywidelec,awzadaniachonumerachnieparzystychwidelce
podnoszonewodwrotnejkolejności.Możnaudowodnić,żerozwiązanietojestpo-
prawne.
1.4.4.Problemczytelnikówipisarzy
Wproblemieczytelnikówipisarzyzadaniazwaneczytelnikamiipisarzamirywalizują
odostępdowspólnejbazydanych.Czytelnicydokonujątransakcjiodczytywaniarekor-
dówbazy,apisarzetransakcjiodczytywaniaorazmodyfikowaniarekordów.Wcelu
zapewnieniaspójnościdanychzawartychwbaziepisarzpodczasrealizowaniatransakcji
musimiećwyłącznydostępdobazy.Natomiastwmomenciegdyżadenzpisarzy
niemadostępudobazy,dowolnaliczbaczytelnikówmożeprzeprowadzaćtransakcje
odczytywaniarekordówbazy.
Pojęciebazydanychnależywtymprzypadkurozumiećszeroko.Baząmożebyć
dowolnyfragmentpamięci,pliklubinnyzasób,doktóregodostępodbywasięnawyżej
opisanychzasadach.Problemczytelnikówipisarzyjestbardziejzłożonymprzypadkiem
problemusekcjikrytycznej(por.p.1.4.1).Dostępczytelnikówdobazyodbywasiębo-
wiemzwykluczeniempisarzy,adostęppisarzazwykluczeniemwszystkichpozostałych
zadań.Problempolegawistocienasynchronizowaniuwarunków(por.s.15)dostępu
dobazydanychdlaczytelnikówipisarzy.Warunkiemdostępudobazyprzezczytelnika
jestto,abyżadenzpisarzyzniejniekorzystał,przezpisarzazaś,abyniekorzystali
zbazyaniczytelnicy,aniżadeninnypisarz.
Przedstawimyterazrozwiązanieproblemuczytelnikówipisarzyprzyużyciusema-
forów.Przyjmijmynastępującedeklaracje:
s:semafor:=(17);--semaforbinarnydowzajemnegowykluczania
dostęp:semafor:=(17);--semaforbinarnysynchronizującydostępdobazy
liczba_czytelników:natural:=0;--liczbaczytelnikówkorzystającychzbazy
Narysunku1.13zdefiniowanezadaniaczytelnikówipisarzynapodstawietypu
zadaniowegojęzykaAda.Wwierszach1–2występująspecyfikacjetypówzadaniowych