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

Re: Regioni

by Zaharije Radivojevic
sreda, 26. april 2006 - 20:31.


Postovani,

U nastavku su odgovori na Vasa pitanja.

> Ma ipak meni nije jasno ovo:
>
> program graph;
> const n = ...;
> type point = record
> x, y:integer;
> full: boolean
> end;
Da bi se postavila jednotavnija sintaksa za pristum kriticnoj sekciji
uvodi seregio nao programska paradigma koja omogucava jednistven pristup
kriticnoj sekciji. Region je jos i struktura podataka u koju stavljate
sve promenljive koje su Vam potrebne da nesto odradite, a koje su
se nalazila u kriticnoj sekciji. Pored ovoga regio ima osobinu da u jednom
trenutku samo jednom procesu pusta da mu pristupa. Osim ovoga dozvoljeno
je i napustanje ekskluzivnog prava koriscenja regiona pomcu await naredbe.

> 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;
Pa nemamo dead lock jer je onaj prvi u await napustio ekskluzivno pravo
koriscenja regiona i cek da se desi dogadjaj koji ce mu ispuniti uslov u
await-u, pa da ga ponovo dobijr.

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

> Gde gresim u rezonovanju?
Objasnjeno.

> 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.
Zbirka je zbirka. Nju mozete naci u skriptarnici. Autori su Ikodinovic i
Jovanovic.

Ukoliko imate jos nekih pitanja slobodno pitajte.

Pozdrav
Zaharije