Aggiungi parte di vrabie

This commit is contained in:
s03529 2025-04-03 18:31:12 +02:00
parent 26a3f9bec1
commit 5fcfd880dd
8 changed files with 72 additions and 10 deletions

View File

@ -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
View 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
View 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
View 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
View 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>

View File

@ -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>

View File

@ -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>

View File

@ -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;