Compare commits
No commits in common. "de9e1319699a3fcd4b5e49c1ba43530dd6173cea" and "c4e189e3706a9b87961a488e8b10c170bd8dd0c9" have entirely different histories.
de9e131969
...
c4e189e370
43
script.js
43
script.js
@ -1,38 +1,20 @@
|
|||||||
var counter = -1;
|
var counter = 0;
|
||||||
var slides = [];
|
|
||||||
|
|
||||||
async function loadSlides() {
|
async function reloadSlide() {
|
||||||
var slidei = 1;
|
const req = await fetch(`./slide/${counter}.html`)
|
||||||
var sectioni = 1;
|
if(req.status != 200) return false;
|
||||||
|
container.innerHTML = await req.text();
|
||||||
sectionloop: while(true) {
|
return true;
|
||||||
slidei = 1;
|
|
||||||
slideloop: while(true) {
|
|
||||||
const req = await fetch(`./slide/${sectioni}/${slidei}.html`);
|
|
||||||
if(req.status != 200) {
|
|
||||||
if(slidei == 1) break sectionloop;
|
|
||||||
break slideloop;
|
|
||||||
}
|
|
||||||
slides.push(await req.text());
|
|
||||||
slidei++;
|
|
||||||
}
|
|
||||||
sectioni++;
|
|
||||||
}
|
|
||||||
nextSlide();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
loadSlides();
|
async function nextSlide() {
|
||||||
|
counter++;
|
||||||
function nextSlide() {
|
if(!await reloadSlide()) counter--;
|
||||||
if(counter >= slides.length - 1) return;
|
|
||||||
|
|
||||||
container.innerHTML = slides[++counter];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function previousSlide() {
|
async function previousSlide() {
|
||||||
if(counter <= 0) return;
|
counter--;
|
||||||
|
if(!await reloadSlide()) counter++;
|
||||||
container.innerHTML = slides[--counter];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
document.body.addEventListener('click', nextSlide);
|
document.body.addEventListener('click', nextSlide);
|
||||||
@ -52,3 +34,4 @@ document.addEventListener(
|
|||||||
false,
|
false,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
nextSlide();
|
||||||
|
9
slide/1.html
Normal file
9
slide/1.html
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<corpo>
|
||||||
|
<h1>I monitor</h1>
|
||||||
|
<small>
|
||||||
|
<p>Pietro Tessarolo</p>
|
||||||
|
<p>Enrico Vrabie</p>
|
||||||
|
<p>Manuel Nichele</p>
|
||||||
|
<p>Lorenzo Viola</p>
|
||||||
|
</small>
|
||||||
|
</corpo>
|
@ -1,9 +0,0 @@
|
|||||||
<corpo>
|
|
||||||
<h1>I monitor</h1>
|
|
||||||
<ul>
|
|
||||||
<li>Pietro Tessarolo</li>
|
|
||||||
<li>Enrico Vrabie</li>
|
|
||||||
<li>Manuel Nichele</li>
|
|
||||||
<li>Lorenzo Viola</li>
|
|
||||||
</ul>
|
|
||||||
</corpo>
|
|
@ -1,5 +0,0 @@
|
|||||||
<titolo>Parte mancante</titolo>
|
|
||||||
<corpo>
|
|
||||||
<p>perché quando mi mancano le parti io inizio a schizzare</p>
|
|
||||||
</corpo>
|
|
||||||
<autore>Enrico Vrabie</autore>
|
|
@ -1,7 +0,0 @@
|
|||||||
<titolo>Monitor e semafori</titolo>
|
|
||||||
<corpo>
|
|
||||||
<p>I monitor e i semafori sono due meccanismi di sincronizzazione utilizzati nella programmazione concorrente, e
|
|
||||||
sono strettamente correlati perché entrambi servono a gestire l'accesso a risorse condivise tra thread o processi.
|
|
||||||
Tuttavia, hanno approcci e livelli di astrazione diversi.</p>
|
|
||||||
</corpo>
|
|
||||||
<autore>Manuel Nichele</autore>
|
|
@ -1,10 +0,0 @@
|
|||||||
<titolo>Monitor e semafori</titolo>
|
|
||||||
<corpo>
|
|
||||||
<p>I monitor si possono implementare con l'utilizzo dei semafori</p>
|
|
||||||
<ul>
|
|
||||||
<li>Semaforo binario (mutex)</li>
|
|
||||||
<li>Semaforo urgent e contatori urgentcount, condsem e condcount</li>
|
|
||||||
<li>Semafori aggiuntivi (variabili condizione)</li>
|
|
||||||
</ul>
|
|
||||||
</corpo>
|
|
||||||
<autore>Manuel Nichele</autore>
|
|
@ -1,10 +0,0 @@
|
|||||||
<titolo>Differenze</titolo>
|
|
||||||
<corpo>
|
|
||||||
<ul>
|
|
||||||
<li>Livello di astrazione</li>
|
|
||||||
<li>Implementazione</li>
|
|
||||||
<li>Flessibilità</li>
|
|
||||||
<li>Deadlock avoidance</li>
|
|
||||||
</ul>
|
|
||||||
</corpo>
|
|
||||||
<autore>Manuel Nichele</autore>
|
|
@ -1,10 +0,0 @@
|
|||||||
<titolo>Esempio codice</titolo>
|
|
||||||
<corpo>
|
|
||||||
<codeblock>
|
|
||||||
<name>condcount</name> := <name>condcount</name> + <value>1</value>;<br />
|
|
||||||
<kw>if</kw> <name>urgentcount</name> > <value>0</value> <kw>then</kw> <call>V</call>(<name>urgent</name>) <kw>else</kw> <call>V</call>(<name>mutex</name>);<br />
|
|
||||||
<call>P</call>(<name>condsem</name>);<br />
|
|
||||||
<name>condcount</name> := <name>condcount</name> - <value>1</value>;
|
|
||||||
</codeblock>
|
|
||||||
</corpo>
|
|
||||||
<autore>Manuel Nichele</autore>
|
|
@ -1,9 +0,0 @@
|
|||||||
<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>
|
|
||||||
</ul>
|
|
||||||
</corpo>
|
|
||||||
<autore>Manuel Nichele</autore>
|
|
@ -1,42 +0,0 @@
|
|||||||
<corpo>
|
|
||||||
<small>
|
|
||||||
<codeblock>
|
|
||||||
<name>readers and writers</name>: <kw>monitor</kw><br />
|
|
||||||
<idt></idt><kw>begin</kw> <name>readercount</name> : integer;<br />
|
|
||||||
<idt></idt><idt></idt><name>busy</name>: Boolean;<br />
|
|
||||||
<idt></idt><idt></idt><name>OKtoread</name>, <name>OKtowrite</name>:condition;<br />
|
|
||||||
<br />
|
|
||||||
<idt></idt><idt></idt><kw>procedure</kw> <name>startread</name>;<br />
|
|
||||||
<idt></idt><idt></idt><idt></idt><kw>begin</kw><br />
|
|
||||||
<idt></idt><idt></idt><idt></idt><idt></idt><kw>if</kw> <name>busy</name> V <name>OKtowrite</name>.queue <kw>then</kw> <name>OKtoread</name>.wait;<br />
|
|
||||||
<idt></idt><idt></idt><idt></idt><idt></idt><name>readercount</name> := <name>readercount</name> + 1;<br />
|
|
||||||
<idt></idt><idt></idt><idt></idt><idt></idt><name>OKtoread</name>.signal;<br />
|
|
||||||
<idt></idt><idt></idt><idt></idt><idt></idt><comment>// Quando un lettore può iniziare, tutti possono</comment><br />
|
|
||||||
<idt></idt><idt></idt><idt></idt><kw>end</kw> <name>startread</name>;<br />
|
|
||||||
<br />
|
|
||||||
<idt></idt><idt></idt><kw>procedure</kw> <name>endread</name>;<br />
|
|
||||||
<idt></idt><idt></idt><idt></idt><kw>begin</kw><br />
|
|
||||||
<idt></idt><idt></idt><idt></idt><idt></idt><name>readercount</name> := <name>readercount</name> -- 1 ;<br />
|
|
||||||
<idt></idt><idt></idt><idt></idt><idt></idt><kw>if</kw> <name>readercount</name> = 0 <kw>then</kw> <name>OKtowrite</name>.signal<br />
|
|
||||||
<idt></idt><idt></idt><idt></idt><kw>end</kw> <name>endread</name>;<br />
|
|
||||||
<br />
|
|
||||||
<idt></idt><idt></idt><kw>procedure</kw> <name>startwrite</name>;<br />
|
|
||||||
<idt></idt><idt></idt><idt></idt><kw>begin</kw><br />
|
|
||||||
<idt></idt><idt></idt><idt></idt><idt></idt><kw>if</kw> <name>readercount</name> != 0 V <name>busy</name> <kw>then</kw> <name>OKtowrite</name>.wait<br />
|
|
||||||
<idt></idt><idt></idt><idt></idt><idt></idt><name>busy</name> := true<br />
|
|
||||||
<idt></idt><idt></idt><idt></idt><kw>end</kw> <name>startwrite</name>;<br />
|
|
||||||
<br />
|
|
||||||
<idt></idt><idt></idt><kw>procedure</kw> <name>endwrite</name>;<br />
|
|
||||||
<idt></idt><idt></idt><idt></idt><kw>begin</kw><br />
|
|
||||||
<idt></idt><idt></idt><idt></idt><idt></idt><name>busy</name> := false;<br />
|
|
||||||
<idt></idt><idt></idt><idt></idt><idt></idt><kw>if</kw> <name>OKtoread</name>.queue <kw>then</kw> <name>OKtoread</name>.signal<br />
|
|
||||||
<idt></idt><idt></idt><idt></idt><idt></idt><kw>else</kw> <name>OKtowrite</name>.signal<br />
|
|
||||||
<idt></idt><idt></idt><idt></idt><kw>end</kw> <name>endwrite</name>;<br />
|
|
||||||
<br />
|
|
||||||
<idt></idt><idt></idt><name>readercount</name> := 0;<br />
|
|
||||||
<idt></idt><idt></idt><name>busy</name> := false;<br />
|
|
||||||
<idt></idt><kw>end</kw> <name>readers and writers</name>;<br />
|
|
||||||
</codeblock>
|
|
||||||
</small>
|
|
||||||
</corpo>
|
|
||||||
<autore>Lorenzo Viola</autore>
|
|
@ -14,7 +14,7 @@
|
|||||||
<idt></idt><idt></idt><kw>begin</kw><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>busy</name> := <value>false</value>;<br />
|
||||||
<idt></idt><idt></idt><idt></idt><name>nonbusy</name>.<call>signal</call><br />
|
<idt></idt><idt></idt><idt></idt><name>nonbusy</name>.<call>signal</call><br />
|
||||||
<idt></idt><idt></idt><kw>end</kw>;<br />
|
<idt></idt><idt></idt><kw>end;</kw><br />
|
||||||
<idt></idt><name>busy</name> := <value>false</value>;<br />
|
<idt></idt><name>busy</name> := <value>false</value>;<br />
|
||||||
<kw>end</kw> <name>single resource</name>
|
<kw>end</kw> <name>single resource</name>
|
||||||
</codeblock>
|
</codeblock>
|
@ -13,7 +13,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
--dimensone-titolo: 4vw;
|
--dimensone-titolo: 5vw;
|
||||||
--dimensione-corpo: 2vw;
|
--dimensione-corpo: 2vw;
|
||||||
--dimensione-autore: 2vw;
|
--dimensione-autore: 2vw;
|
||||||
|
|
||||||
@ -78,7 +78,7 @@ li {
|
|||||||
|
|
||||||
|
|
||||||
small {
|
small {
|
||||||
font-size: 1.25vw;
|
font-size: 2vw;
|
||||||
}
|
}
|
||||||
|
|
||||||
small p {
|
small p {
|
||||||
|
Loading…
Reference in New Issue
Block a user