12.07.2015 Views

Spis treœci - Patrz

Spis treœci - Patrz

Spis treœci - Patrz

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ozmowy przez nadawcę. Proces CENTRALA powinien udostępniać wejścia DZWONIĘ iZWALNIAM realizujące reakcję centrali na żądanie nadawcy odpowiednio nawiązaniapołączenia i zerwania połączenia.6.3.8 Sito EratostenesaZapisz w Adzie proces SITO, który jest rozwiązaniem zadania 5.3.14. Proces tenpowinien udostępniać wejście LICZBA, przez które przekazuje mu się liczbę. (Proces SITO(0)zapisz oddzielnie.) Załóż istnienie procesu:task WYJŚCIE isentry PISZ(x: in Integer);end;który liczby otrzymywane w wejściu PISZ wypisuje na urządzenie wyjściowe (np. ekran).6.4 Rozwiązania6.4.1 Implementacja semafora dwustronnie ograniczonegoProces SEM_2_OGR udostępnia oprócz wejść PD i VD także wejście INICJACJAsłużące do nadania semaforowi wartości początkowej i ustalenia ograniczenia górnego.Pomijamy tu kontrolę poprawności wywołania tego wejścia (nie sprawdzamy, czy 0 < x < k).task SEM_2_OGR isentry INICJACJA(x,k: in Integer);entry PD;entry VD;end;task body SEM_2_OGR isn: Integer; -- górne ograniczenies: Integer; -- wartość semaforabeginaccept INICJACJA(x,k: in Integer) dos := x;n := k;end INICJACJA;loopselectwhen s > 0 => accept PD; s := s - 1;orwhen s < n => accept VD; s := s + 1;end select;end loop;end SEM_2_OGR;Proces SEM_2_OGR ma strukturę podobną do procesu BUFOR z przykładu 6.2.2.Operacja VD odpowiada wstawianiu do bufora, operacja PD — pobieraniu z bufora, a wartośćs wskazuje liczbę wolnych miejsc w buforze.171

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!