16.05.2015 Views

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

SHOW MORE
SHOW LESS

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

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

powrocie z procesu identyfikować - z którego procesu nastąpił<br />

powrót i podejmować stosowną decyzję np. przy pomocy instrukcji<br />

switch:<br />

switch(setjmp(bufor))<br />

{<br />

case 1 : proces2();<br />

case 2 : proces3();<br />

.....<br />

default : proces0();<br />

}<br />

[!!!]UWAGA<br />

________________________________________________________________<br />

* Zmienne sterujące przełączaniem procesów powinny być zmiennymi<br />

globalnymi, bądź statycznymi. Także dane, które nie mogą ulec<br />

nadpisaniu bezpieczniej potraktować jako globalne.<br />

________________________________________________________________<br />

W przypadku wielu procesów celowe jest utworzenie listy, bądź<br />

kolejki procesów. Przydatny do tego celu bywa mechanizm tzw.<br />

"łańcuchowej referencji". W obiektach klasy PozycjaListy należy<br />

umieścić pole danych - strukturę i pointer do następnego<br />

procesu, któremu (zgodnie z ustalonym priorytetem) należy<br />

przekazać sterowanie:<br />

static jmp_buf Bufor[m];<br />

...<br />

class PozycjaListy<br />

{<br />

public:<br />

jmp_buf Bufor[n];<br />

PozycjaListy *nastepna;<br />

}<br />

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

Saved successfully!

Ooh no, something went wrong!