Aggiungi parte di vrabie
This commit is contained in:
parent
26a3f9bec1
commit
5fcfd880dd
@ -1,5 +1,9 @@
|
||||
<titolo>Parte mancante</titolo>
|
||||
<titolo>Le variabili di condizione</titolo>
|
||||
<corpo>
|
||||
<p>perché quando mi mancano le parti io inizio a schizzare</p>
|
||||
<block>
|
||||
<p>1. Meccanismo per gestire l'attesa tra i vari processi</p>
|
||||
<p>2. Non sono true o false, ma bensì una coda di attesa</p>
|
||||
<p>3. Grazie ad esse si può sospendere un processo in modo sicuro</p>
|
||||
</block>
|
||||
</corpo>
|
||||
<autore>Enrico Vrabie</autore>
|
||||
|
6
slide/3/2.html
Normal file
6
slide/3/2.html
Normal file
@ -0,0 +1,6 @@
|
||||
<titolo>Le operazioni delle variabili di condizione</titolo>
|
||||
<corpo>
|
||||
<p>wait = sospende un processo fino al suo riavvio</p>
|
||||
<p>signal = fa riprendere un processo</p>
|
||||
</corpo>
|
||||
<autore>Enrico Vrabie</autore>
|
10
slide/3/3.html
Normal file
10
slide/3/3.html
Normal file
@ -0,0 +1,10 @@
|
||||
<titolo>Funzionamento</titolo>
|
||||
<corpo>
|
||||
<block>
|
||||
<p>1° passo) verificare la disponibilità di una risorsa</p>
|
||||
<p>2° passo) se la risorsa è occupata, il processo andrà in wait</p>
|
||||
<p>3° passo) se il processo ha terminato di usare una risorsa, chiama il signal</p>
|
||||
<p>4° passo) il processo riprende la sua esecuzione</p>
|
||||
</block>
|
||||
</corpo>
|
||||
<autore>Enrico Vrabie</autore>
|
10
slide/3/4.html
Normal file
10
slide/3/4.html
Normal file
@ -0,0 +1,10 @@
|
||||
<titolo>Vantaggi</titolo>
|
||||
<corpo>
|
||||
<p>I vari vantaggi delle variabili di condizione sono:</p>
|
||||
<ul>
|
||||
<li>Maggiore sicurezza</li>
|
||||
<li>Codice più chiaro</li>
|
||||
<li>Si evitano problemi legati alla suddivisione delle risorse</li>
|
||||
</ul>
|
||||
</corpo>
|
||||
<autore>Enrico Vrabie</autore>
|
25
slide/3/5.html
Normal file
25
slide/3/5.html
Normal file
@ -0,0 +1,25 @@
|
||||
<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>
|
@ -1,10 +1,10 @@
|
||||
<titolo>Differenze</titolo>
|
||||
<corpo>
|
||||
<ul>
|
||||
<li>Livello di astrazione</li>
|
||||
<li>Implementazione</li>
|
||||
<li>Flessibilità</li>
|
||||
<li>Deadlock avoidance</li>
|
||||
<li><p>Livello di astrazione</p></li>
|
||||
<li><p>Implementazione</p></li>
|
||||
<li><p>Flessibilità</p></li>
|
||||
<li><p>Deadlock avoidance</p></li>
|
||||
</ul>
|
||||
</corpo>
|
||||
<autore>Manuel Nichele</autore>
|
||||
|
@ -1,9 +1,9 @@
|
||||
<titolo>Sintesi</titolo>
|
||||
<corpo>
|
||||
<ul>
|
||||
<li>I monitor vengono spesso implementati con i semafori</li>
|
||||
<li>I semafori vengono usati per costruire meccanismi come i monitor o per risolvere i problemi in maniera personalizzata</li>
|
||||
<li>I monitor sono più sicuri e semplici, i semafori offrono maggiore controllo da parte del programmatore</li>
|
||||
<li><p>I monitor vengono spesso implementati con i semafori</p></li>
|
||||
<li><p>I semafori vengono usati per costruire meccanismi come i monitor o per risolvere i problemi in maniera personalizzata</p></li>
|
||||
<li><p>I monitor sono più sicuri e semplici, i semafori offrono maggiore controllo da parte del programmatore</p></li>
|
||||
</ul>
|
||||
</corpo>
|
||||
<autore>Manuel Nichele</autore>
|
||||
|
@ -64,7 +64,7 @@ autore::before {
|
||||
content: "- ";
|
||||
}
|
||||
|
||||
ul, ol, codeblock {
|
||||
ul, ol, codeblock, block {
|
||||
display: inline-block;
|
||||
width: auto;
|
||||
text-align: left;
|
||||
@ -93,6 +93,13 @@ codeblock {
|
||||
border-radius: 1vw;
|
||||
}
|
||||
|
||||
code {
|
||||
font-family: 'ubuntu-mono';
|
||||
background: #EAEAEA;
|
||||
padding: 0.5vw 0.5vw 0.5vw 0.5vw;
|
||||
border-radius: 0.25vw;
|
||||
}
|
||||
|
||||
idt {
|
||||
width: calc(var(--dimensione-corpo) / 2 * var(--indentazione));
|
||||
display: inline-block;
|
||||
|
Loading…
Reference in New Issue
Block a user