monitor/slide/3/5.html
2025-04-03 18:31:12 +02:00

26 lines
1.3 KiB
HTML

<titolo>Un esempio di monitor</titolo>
<corpo>
<codeblock>
<name>single resource</name>: <kw>monitor</kw><br />
<kw>begin</kw><br />
<idt></idt><name>busy</name>: <type>Boolean</type>;<br />
<idt></idt><name>nonbusy</name>: <type>condition</type>;<br />
<idt></idt><kw>procedure</kw> <name>acquire</name>;<br />
<idt></idt><idt></idt><kw>begin</kw><br />
<idt></idt><idt></idt><idt></idt><kw>if</kw> <name>busy</name> <kw>then</kw> <name>nonbusy</name>.<call>wait</call>;<br />
<idt></idt><idt></idt><idt></idt><name>busy</name> := <value>true</value><br />
<idt></idt><idt></idt><kw>end</kw>;<br />
<idt></idt><kw>procedure</kw> <name>release</name>;<br />
<idt></idt><idt></idt><kw>begin</kw><br />
<idt></idt><idt></idt><idt></idt><name>busy</name> := <value>false</value>;<br />
<idt></idt><idt></idt><idt></idt><name>nonbusy</name>.<call>signal</call><br />
<idt></idt><idt></idt><kw>end</kw>;<br />
<idt></idt><name>busy</name> := <value>false</value>;<br />
<kw>end</kw> <name>single resource</name>
</codeblock>
<p>busy = boolean per indicare se la risorsa è in uso</p>
<p>se la risorsa è occupata si farà <code><nome>acquire</nome></code></p>
<p>una volta che la risorsa sarà utilizzata si farà il <code><nome>release</nome></code></p>
</corpo>
<autore>Enrico Vrabie</autore>