Parcourir la source

Added last PSR MOD2 lesson

Federico Amedeo Izzo il y a 9 ans
Parent
commit
8b01f78ee6
1 fichiers modifiés avec 42 ajouts et 0 suppressions
  1. 42 0
      Piattaforme Software per la Rete/MOD2/lesson_06.md

+ 42 - 0
Piattaforme Software per la Rete/MOD2/lesson_06.md

@@ -0,0 +1,42 @@
+# Piattaforme e Software per la rete - lezione 6
+#### William Fornaciari
+###### 4 April 2016
+## Deadlock
+Il __deadlock__ è la condizione in cui ognuno dei due agenti aspetta le *risorse*
+dell'altro.
+Una __risorsa__ è qualunque cosa (hardware o software) a cui si può accedere
+in mutua esclusione, es: una stampante, una licenza, una memoria...
+Le risorse possono essere:
+- __Preemptable__: la risorsa può essere sospesa senza grossi problemi (es: stampante)
+- __Non Preemptable__: la risorsa non può essere sospesa (es: software ABS)
+
+Il __busy waiting__ consiste nell'aspettare la risorsa *non pronta* in modo bloccante,
+può essere comodo far svegliare il processo dal sistema operativo o da un timer, ma
+non è detto che questa funzione sia disponibile, può essere necessario implementarla
+a mano.
+
+Le condizioni per avere un deadlock sono:
+- Mutua esclusione nell'utilizzo della risorsa
+- Hold & Wait, process holding resources can request new ones.
+- No preemption, resources taken can be reseased only from the user.
+- Circular wait: must exists between processes.
+
+Approcci per risolvere i deadlock:
+- Ignore: usato in sistemi general purpose, normalmente sovradimensionati
+- Detection and recovery:
+- Prevention: Eliminare una delle 4 precondizioni dei deadlock
+- Avoidance: Algoritmi per gestire allocazione delle risorse, molto difficile.
+
+Per rompere un loop posso aprire gli archi o togliere uno dei nodi.
+
+Un __demone__ è un processo a cui viene ucciso il padre e quindi viene ereditato
+da init.
+
+Uno __spooler__ consiste in un demone che gestisce in modo esclusivo ad esempio
+una stampante, e appena gli viene inviato un file da stampare, esso lo manda in
+stampa.
+Una politica __FIFO__ per la gestione della coda di stampa è adeguata.
+
+__Distributed deadlock detection__
+Viene inviato un messaggio che contiene informazioni su risorsa attesa e chi la attende,
+se il messaggio torna al mittente con il proprio ID, allora è stato rilevato un ciclo.