«« ( Date ) »» // «« ( Thread ) »» // drs - 2006

Re: Regioni

by Igor Stojkovic
sreda, 26. april 2006 - 19:25.

On 4/25/06, Sasa Ninkovic <sninkovic@gmail.com> wrote:
> Region ti govori koji segmenti programa ne mogu u isto vreme da se
> izvrsavaju (tj. pripadaju istom regionu).
>
>
> region A do pera-mika;
> region A do zika-lazal;
>
> ovo govori da ako pocne da se izvrsava pera-mika, zika-laza mora da
> saceka zavrsetak (pere-mike) pa tek onda moze da se startuje (i
> obratno).
>
> Sama filozofija regiona bas i nije zakljucavanje promenjive, vec
> ubacivanje naredbi u region ...Mozda te buni to sto se region u
> zadacima uvek zove kao i promenjiva, ali imenovanje je tako samo da bi
> bilo jasnije na sta se odnosi region (mozes da ih nazoves kako
> hoces...)
>
> poz,
> sale
>

Ma ipak meni nije jasno ovo:

program graph;
const n = ...;
type point = record
x, y:integer;
full: boolean
end;

var p: shared point;

procedure makepoints;
var i: integer;
begin
for i := 1 to n do
region p do //ako se prvo udje u ovaj region
begin //onda se dodje do await iskaza
await(not p.full); //i tu se ceka da p.full postane false
p.x := i; //ali...
p.y := i*i;
p.full := true
end
end;

procedure printpoints;
var i: integer;
begin
for i := 0 to n do
region p do //...ne moze da postane false jer vise
begin //ne moze da se udje u ovaj region
await(p.full); //zato sto se vec uslo u onaj gore
write('(',p.x,',',p.y,')'); //pa imamo dead lock
p.full := false
end
end;

begin
p.x := 0; p.y := 0; p.full := true;
cobegin
makepoints;
printpoints;
coend
end.

Gde gresim u rezonovanju?

Hteo bih i da pitam asistenta da li Vezbe2006_V3.pdf predstavljaju
zbirku ili je zbirka nesto drugo, posto u tom fajlu regioni nisu
objasnjeni a ja sam danas narezao materijale iz 26-ice i nisam nasao
nista drugo sto lici na zbirku.

Hvala.

--
Best regards,
Igor Stojkovic mailto: stojkovic.igor@gmail.com