diff --git a/slide/5/1.html b/slide/5/1.html index 7eb4ae9..2bf0136 100644 --- a/slide/5/1.html +++ b/slide/5/1.html @@ -1,6 +1,16 @@ -

aereo = record

-

aggiornato da processi "scrittori"

-

possono accedere dei processi "lettori"

+ + + aereo = record + + + + aggiornato da processi "scrittori" + + + + possono accedere dei processi "lettori" + +
Lorenzo Viola diff --git a/slide/5/2.html b/slide/5/2.html index d232483..471435c 100644 --- a/slide/5/2.html +++ b/slide/5/2.html @@ -1,5 +1,12 @@ -

i lettori possono lavorare in contemporanea

-

gli "scrittori" devono avere accesso individuale per evitare il caos

+ + + i lettori possono lavorare in contemporanea + + + + gli "scrittori" devono avere accesso individuale per evitare il caos + +
Lorenzo Viola diff --git a/slide/5/3.html b/slide/5/3.html index fb6aec0..36feeb7 100644 --- a/slide/5/3.html +++ b/slide/5/3.html @@ -4,6 +4,7 @@

tanti aerei -dati locali del monitor

i tempi di lettura e scrittura sono bassi ridurremo il tempo della voce del monitor

se molti lettori puntano a un record c’è il rischio che la scrittura non aggiorni mai

+

la soluzione sarà di mettere in attesa la scrittura e i lettore non potrà entrare nel record se c’è uno scrittore in attesa, per tanto, anche gli stessi lettori in attesa dovranno iniziare prima di uno scrittore per evitare la mutua esclusione

Lorenzo Viola diff --git a/slide/5/5.html b/slide/5/5.html index b98d290..eb87afa 100644 --- a/slide/5/5.html +++ b/slide/5/5.html @@ -1,42 +1,49 @@ + - - readers and writers: monitor
- begin readercount : integer;
- busy: Boolean;
- OKtoread, OKtowrite:condition;
-
- procedure startread;
- begin
- if busy V OKtowrite.queue then OKtoread.wait;
- readercount := readercount + 1;
- OKtoread.signal;
- // Quando un lettore può iniziare, tutti possono
- end startread;
-
- procedure endread;
- begin
- readercount := readercount -- 1 ;
- if readercount = 0 then OKtowrite.signal
- end endread;
-
- procedure startwrite;
- begin
- if readercount != 0 V busy then OKtowrite.wait
- busy := true
- end startwrite;
-
- procedure endwrite;
- begin
- busy := false;
- if OKtoread.queue then OKtoread.signal
- else OKtowrite.signal
- end endwrite;
-
- readercount := 0;
- busy := false;
- end readers and writers;
-
+ + readers and writers: monitor // il monitor dei lettori e scrittori
+ begin readercount : integer;
+ busy: Boolean; // detto prima del controllo se qualcuno scrive
+ OKtoread, OKtowrite: condition; // condizioni
+
+ procedure startread; // inizia la procedura
+ begin
+ if busy || OKtowrite.queue then OKtoread.wait; // controlla se c'è una scrittura in attesa per bloccare il prossimo lettore
+ readercount := readercount + 1;
+ OKtoread.signal;
+ // dopo che un lettore inizia iniziano quelli in coda dopo
+ end startread; // fine iniziolettura
+
+ procedure endread; // finelettura
+ begin
+ readercount := readercount - 1 ; // leva i lettori in coda
+ if readercount = 0 then OKtowrite.signal // appena finiscono si scrive
+ end endread; // fine finelettura
+
+ procedure startwrite; // inizio scrittura
+ begin
+ if readercount != 0 || busy then OKtowrite.wait // se ci sono lettori aspetta la scrittura
+ busy := true
+ end startwrite; // fine inizioscrittura
+
+ procedure endwrite; // procedura finescrittura
+ begin
+ busy := false;
+ if OKtoread.queue then OKtoread.signal
+ else OKtowrite.signal // continua a fare entrare in scrittura
+ end endwrite; // fine finescrittura
+
+ readercount := 0;
+ busy := false;
+ end readers and writers; // finito tutto
+
Lorenzo Viola diff --git a/slide/5/aereo.jpg b/slide/5/aereo.jpg new file mode 100644 index 0000000..14b4d3c Binary files /dev/null and b/slide/5/aereo.jpg differ diff --git a/slide/5/bagni.jpg b/slide/5/bagni.jpg new file mode 100644 index 0000000..df802ff Binary files /dev/null and b/slide/5/bagni.jpg differ diff --git a/slide/5/bagnofemmine.png b/slide/5/bagnofemmine.png new file mode 100644 index 0000000..10a3658 Binary files /dev/null and b/slide/5/bagnofemmine.png differ diff --git a/slide/5/bagnomaschi.png b/slide/5/bagnomaschi.png new file mode 100644 index 0000000..fc1b614 Binary files /dev/null and b/slide/5/bagnomaschi.png differ diff --git a/slide/5/infinito.jpg b/slide/5/infinito.jpg new file mode 100644 index 0000000..76efa0d Binary files /dev/null and b/slide/5/infinito.jpg differ diff --git a/slide/5/libri.jpg b/slide/5/libri.jpg new file mode 100644 index 0000000..98c6b51 Binary files /dev/null and b/slide/5/libri.jpg differ diff --git a/slide/5/torredicontrollo.webp b/slide/5/torredicontrollo.webp new file mode 100644 index 0000000..89ff24c Binary files /dev/null and b/slide/5/torredicontrollo.webp differ diff --git a/slide/5/update.jpg b/slide/5/update.jpg new file mode 100644 index 0000000..c4e93e7 Binary files /dev/null and b/slide/5/update.jpg differ diff --git a/style.css b/style.css index 58af825..333c347 100644 --- a/style.css +++ b/style.css @@ -118,3 +118,26 @@ kw { comment { color: #494949; } + +imgbox { + height: calc(var(--dimensione-corpo) * 3); + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + margin-top: 1vw; + margin-bottom: 1vw; +} + +imgbox span { + margin-top: var(--dimensione-corpo); + margin-bottom: var(--dimensione-corpo); +} + +imgbox img { + height: 100%; + margin-left: 2vw; +} + + +