forked from marcing/systemy-operacyjne-niestacjonarne-2018
Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
b00908bd0d | |||
a924f0b96c | |||
c2ba50aafe | |||
246a411bed |
40
Wykłady/prod-kons.cm
Normal file
40
Wykłady/prod-kons.cm
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
monitor prod_kons {
|
||||||
|
int produkt;
|
||||||
|
int nowys;
|
||||||
|
condition nowy, uzyty;
|
||||||
|
void dodaj_element(int pr){
|
||||||
|
if(nowys==1) waitc(uzyty);
|
||||||
|
produkt=pr;
|
||||||
|
nowys=1;
|
||||||
|
signalc(nowy);
|
||||||
|
}
|
||||||
|
int pobierz_element(){
|
||||||
|
if(!nowys) waitc(nowy);
|
||||||
|
nowys=0;
|
||||||
|
signalc(uzyty);
|
||||||
|
return produkt;
|
||||||
|
}
|
||||||
|
init {
|
||||||
|
nowys = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void producent(){
|
||||||
|
int i;
|
||||||
|
for(i=0;i<50;i++){
|
||||||
|
dodaj_element(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void konsument(){
|
||||||
|
int i;
|
||||||
|
for(i=0;i<50;i++){
|
||||||
|
cout << pobierz_element() << endl;;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
main(){
|
||||||
|
cobegin{
|
||||||
|
producent(); konsument();
|
||||||
|
}
|
||||||
|
}
|
BIN
Wykłady/w1-zsop.pdf
Normal file
BIN
Wykłady/w1-zsop.pdf
Normal file
Binary file not shown.
BIN
Wykłady/w2-zsop.pdf
Normal file
BIN
Wykłady/w2-zsop.pdf
Normal file
Binary file not shown.
BIN
Wykłady/w3-zsop.pdf
Normal file
BIN
Wykłady/w3-zsop.pdf
Normal file
Binary file not shown.
BIN
Wykłady/w4-zsop.pdf
Normal file
BIN
Wykłady/w4-zsop.pdf
Normal file
Binary file not shown.
BIN
Wykłady/w5-asop.pdf
Normal file
BIN
Wykłady/w5-asop.pdf
Normal file
Binary file not shown.
BIN
Wykłady/w6-zsop.pdf
Normal file
BIN
Wykłady/w6-zsop.pdf
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user