Torna indietro   Hardware Upgrade Forum > Software > Programmazione

AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa
AWS è il principale operatore di servizi cloud al mondo e da tempo parla delle misure che mette in atto per garantire una maggiore sovranità alle organizzazioni europee. L'azienda ha ora lanciato AWS European Sovereign Cloud, una soluzione specificamente progettata per essere separata e distinta dal cloud "normale" e offrire maggiori tutele e garanzie di sovranità
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Xiaomi ha portato sul mercato internazionale la nuova serie Redmi Note, che rappresenta spesso una delle migliori scelte per chi non vuole spendere molto. Il modello 15 Pro+ punta tutto su una batteria capiente e su un ampio display luminoso, sacrificando qualcosa in termini di potenza bruta e velocità di ricarica
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione
HONOR ha finalmente lanciato il suo nuovo flagship: Magic 8 Pro. Lo abbiamo provato a fondo in queste settimane e ve lo raccontiamo nella nostra recensione completa. HONOR rimane fedele alle linee della versione precedente, aggiungendo però un nuovo tasto dedicato all'AI. Ma è al suo interno che c'è la vera rivoluzione grazie al nuovo Snapdragon 8 Elite Gen 5 e alla nuova MagicOS 10
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 10-12-2010, 18:30   #1
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
[SO] Sottile differenza tra deadlock e starvation?

Wikipedia non è il massimo della chiarezza, sopratutto perché collega male i 2 argomenti e non li contestualizza uno rispetto l'altro.

La starvation viene rappresentata tipicamente col problema dei 5 filosofi, mentre il deadlock con l'ingorgo stradale intorno a una piazza.

Quello che mi pare d'aver capito è che una starvation può diventare deadlock?
Quando ogni filosofo attende che si leberi l'altra bacchetta con cui mangiare, ma se capita che tutti attendono in circolo avviene il deadlock?

Il deadlock indipendentemente lo si ha quando ho una catena in cui ogni processo interessato attende che si liberi una risorsa detenuta da un'altro processo in attesa a sua volta, creando de facto in circolo vizioso infinito.

Chi mi sa chiarire maglio?
TNX!
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 10-12-2010, 18:36   #2
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
... poi attualmente pare che per mantenere presatazioni soddisfacenti i moderni SO non:
  1. preveniscono
  2. evitano
  3. individuano e risolvono
  4. combianono quanto sopra visto
, scaricano sull'utente finale il problemone; devono essere i programmi a livello utente a preoccuparsene se è il caso.

Ma della starvation non mi sovviene nulla ... blackout totale!
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 10-12-2010, 18:43   #3
mad_hhatter
Senior Member
 
L'Avatar di mad_hhatter
 
Iscritto dal: Oct 2006
Messaggi: 1105
Quote:
Originariamente inviato da Matrixbob Guarda i messaggi
Wikipedia non è il massimo della chiarezza, sopratutto perché collega male i 2 argomenti e non li contestualizza uno rispetto l'altro.

La starvation viene rappresentata tipicamente col problema dei 5 filosofi, mentre il deadlock con l'ingorgo stradale intorno a una piazza.

Quello che mi pare d'aver capito è che una starvation può diventare deadlock?
Quando ogni filosofo attende che si leberi l'altra bacchetta con cui mangiare, ma se capita che tutti attendono in circolo avviene il deadlock?

Il deadlock indipendentemente lo si ha quando ho una catena in cui ogni processo interessato attende che si liberi una risorsa detenuta da un'altro processo in attesa a sua volta, completando il ciclo.

Chi mi sa chiarire maglio?
TNX!
sono 2 concetti distinti.

si ha un deadlock quando un agente A si blocca in attesa che un agente B liberi una certa risorsa e B è a sua volta bloccato in attesa che A liberi un'altra risorsa. Gli agenti sono vicendevolmente bloccati e in attesa l'uno dell'altro senza possibilità di soluzione.

la starvation è la condizione per cui, pur non essendo in deadlock, un agente non riesce mai ad acquisire tutte le risorse di cui necessita. Supponi che 3 agenti A, B, C si contendano iterativamente una risorsa R senza particolari vincoli di precedenza: A acquisisce R, A rilascia R e torna a competere per essa, B acquisisce R, la rilascia e torna a competere per essa, A riacquisisce R, ecc... per puro caso C non riesce mai ad acquisire R, non perché sia bloccato, ma perché non essendoci vincoli di precedenza o altri criteri di arbitraggio, ogni agente ha, in ogni momento, la stessa probabilità degli altri di acquisire R. In questo caso si dice che C è soggetto a starvation.
Lo stesso si può dire se i criteri di arbitraggio per l'acquisizione di R fossero tali da sfavorire sempre un agente rispetto agli altri.
mad_hhatter è offline   Rispondi citando il messaggio o parte di esso
Old 10-12-2010, 18:54   #4
mad_hhatter
Senior Member
 
L'Avatar di mad_hhatter
 
Iscritto dal: Oct 2006
Messaggi: 1105
scusami, l'esempio di starvation è poco calzante perché basandosi solo sulla probabilità, prima o poi anche C deve poter entrare in possesso di R.

Riformuliamo l'esempio dicendo che ad A e B è stata accordata una priorità più alta di C sicché fin tanto che A e B tentano di acquisire R, C non sarà in grado di entrarne in possesso. Come vedi non possiamo parlare di deadlock: gli agenti non si bloccano a vicenda (c'è una sola risorsa in gioco).

Spero di essere stato più chiaro
mad_hhatter è offline   Rispondi citando il messaggio o parte di esso
Old 10-12-2010, 20:21   #5
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
Quote:
Originariamente inviato da mad_hhatter Guarda i messaggi
scusami, l'esempio di starvation è poco calzante perché basandosi solo sulla probabilità, prima o poi anche C deve poter entrare in possesso di R.

Riformuliamo l'esempio dicendo che ad A e B è stata accordata una priorità più alta di C sicché fin tanto che A e B tentano di acquisire R, C non sarà in grado di entrarne in possesso. Come vedi non possiamo parlare di deadlock: gli agenti non si bloccano a vicenda (c'è una sola risorsa in gioco).

Spero di essere stato più chiaro
Si + calzante.
Grazie CMQ a tutti.
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 10-12-2010, 20:38   #6
tuccio`
Senior Member
 
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
nel caso di deadlock, un processo non ha più la possibilità di avere la risorsa che aspetta, perché c'è un attesa circolare delle risorse e nessun processo può progredire se una risorsa non viene liberata (la storia dell'attesa circolare la si può capire disegnando un grafo "delle attese" in cui i processi sono i nodi, e c'è un arco da un nodo a un altro se il primo è in attesa di una risorsa detenuta da un altro.. è chiaro che se c'è un ciclo in un grafo così fatto, vuol dire che tutti i processi sono bloccati in attesa di qualcosa che non arriverà mai)

la starvation è l'attesa indefinita, i processi non sono bloccati, solo che non è possibile definire a priori quando arriva il loro turno.. ad esempio se hai un mutex unfair, che sblocca i processi con una politica lifo, il primo che si è bloccato potrebbe non uscirne mai

in realtà trovare un esempio di starvation è difficile perché è difficile riprodurlo in un programma, è molto più facile ad esempio trovare la starvation negli algoritmi di scheduling (ad esempio shortest remaining time)
tuccio` è offline   Rispondi citando il messaggio o parte di esso
Old 11-12-2010, 00:47   #7
clockover
Senior Member
 
L'Avatar di clockover
 
Iscritto dal: Oct 2004
Messaggi: 1945
Quote:
Originariamente inviato da tuccio` Guarda i messaggi
in realtà trovare un esempio di starvation è difficile perché è difficile riprodurlo in un programma, è molto più facile ad esempio trovare la starvation negli algoritmi di scheduling (ad esempio shortest remaining time)
qual'era quel fatto di quel processo che era stato in attesa chissà quanti anni e se ne sono accorti quando hanno spento il calcolatore appena lo trovo in rete posto il link più esempio di starvation di così
clockover è offline   Rispondi citando il messaggio o parte di esso
Old 11-12-2010, 09:50   #8
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
Quote:
Originariamente inviato da clockover Guarda i messaggi
qual'era quel fatto di quel processo che era stato in attesa chissà quanti anni e se ne sono accorti quando hanno spento il calcolatore appena lo trovo in rete posto il link più esempio di starvation di così
era al MIT che l'han scoperto
ma quindi si verifica solo se ho alg con priorità?
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 11-12-2010, 10:03   #9
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
starvation è "far morire di fame un processo" che non viene mai servito se non ricordo male.
E se ancora non ricordo male gli scheduler del tipo round robin definito "democratico" dal mio docente risolve tale problema dedicando ad esempio 20 ms di cpu per processo.

Il deadlock invece si realizza quando c'è contesa di una risorsa ed uno dei due processi contendenti non la libera mai: da qui uso di semafori e quant'altro.
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 11-12-2010, 10:07   #10
clockover
Senior Member
 
L'Avatar di clockover
 
Iscritto dal: Oct 2004
Messaggi: 1945
Quote:
Originariamente inviato da misterx Guarda i messaggi
starvation è "far morire di fame un processo" che non viene mai servito se non ricordo male.
E se ancora non ricordo male gli scheduler del tipo round robin definito "democratico" dal mio docente risolve tale problema dedicando ad esempio 20 ms di cpu per processo.
Ma così facendo però non c'è una differenziazione tra un processo ad alta priorità, ad esempio un processo interattivo, e uno con una bassa priorità! Sarebbero trattati tutti allo stesso modo e questo non è buono!
clockover è offline   Rispondi citando il messaggio o parte di esso
Old 11-12-2010, 10:22   #11
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
Quote:
Originariamente inviato da clockover Guarda i messaggi
Ma così facendo però non c'è una differenziazione tra un processo ad alta priorità, ad esempio un processo interattivo, e uno con una bassa priorità! Sarebbero trattati tutti allo stesso modo e questo non è buono!
ciao,
in effetti poi ci è stato detto che ad esempio windows usa diversi tipi di scheduler a seconda del tipo di processo.
Comunque la spiegazione era per farci capire in cosa consiste la starvation
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 11-12-2010, 10:30   #12
clockover
Senior Member
 
L'Avatar di clockover
 
Iscritto dal: Oct 2004
Messaggi: 1945
Si infatti è un ottimo esempio per introdurre algoritmi con fairness, per lasciare spazio poi a quelli più complessi e efficienti!
clockover è offline   Rispondi citando il messaggio o parte di esso
Old 11-12-2010, 10:44   #13
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
Ma il TOP per la sincronizzazione allo stato dell'arte sono i "monitor"?
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 11-12-2010, 12:14   #14
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
il problema della starvation si risolve brillantemente con le code di priorità

in questo modo hai tante code, i processi nelle code a maggiore priorità sono "trattati meglio", ma tutte le code devono essere processate, non esiste che ci sia una coda che resta lì intoccata
pabloski è offline   Rispondi citando il messaggio o parte di esso
Old 11-12-2010, 12:33   #15
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
quindi stiamo parlando di problemi differenti o riguarda cose che si sovrappongono in qualche applicazione/contesto?
  • starvation --> scheduling di code senza priorità pesata dall'invecchiamento
  • deadlock --> richiesta di risorse per procedere
?
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 11-12-2010, 13:22   #16
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
Quote:
Originariamente inviato da Matrixbob Guarda i messaggi
quindi stiamo parlando di problemi differenti o riguarda cose che si sovrappongono in qualche applicazione/contesto?
  • starvation --> scheduling di code senza priorità pesata dall'invecchiamento
  • deadlock --> richiesta di risorse per procedere
?

direi che sono decisamente due cose diverse

la starvation è colpa del sistema operativo che dorme e non manda in esecuzione determinati processi

i deadlock sono in massima parte colpa delle applicazioni che si mettono a competere circolarmente per una o più risorse

se il primo problema il sistema operativo lo può risolvere facilmente, il secondo non è per nulla facile da risolvere

in genere il sistema operativo setta un timeout oltre il quale significa che il processo è andato in deadlock, ma poi decidere cosa fare è un altro paio di maniche

su un pc uccido il processo e buona notte, ma in una centrale nucleare le cose non sono così semplici
pabloski è offline   Rispondi citando il messaggio o parte di esso
Old 11-12-2010, 13:51   #17
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
Quote:
Originariamente inviato da pabloski Guarda i messaggi
su un pc uccido il processo e buona notte, ma in una centrale nucleare le cose non sono così semplici
a me avevano raccontato che il razzo Arianne programmato dai francesi era precipitato per un problema di deadlock.

Difatti in molti settori tipo quello aereonautico, ma non solo, tali problemi guai se esistessero.
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 11-12-2010, 14:41   #18
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
Quote:
Originariamente inviato da misterx Guarda i messaggi
a me avevano raccontato che il razzo Arianne programmato dai francesi era precipitato per un problema di deadlock.

Difatti in molti settori tipo quello aereonautico, ma non solo, tali problemi guai se esistessero.
l'hanno programmato maluccio allora

adesso capisco perchè chi tiene alla sicurezza usa qnx
pabloski è offline   Rispondi citando il messaggio o parte di esso
Old 11-12-2010, 15:09   #19
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9947
Quindi quando programmo io programmatore ad esempio in Java devo essere io a gestire bene il multithreading usando correttamente i Synchronized Methods?

Della starvation invece me ne infischio?
Se Symbian ad esempio la gestisse malissimo (assunzione mia a cazzo) potrei trovarmi in quella situazione senza possibilità di operare, corretto?
__________________
Aiuta la ricerca col tuo PC: >>Calcolo distribuito BOINC.Italy: unisciti anche tu<<
Più largo è il sorriso, più affilato è il coltello.
Matrixbob è offline   Rispondi citando il messaggio o parte di esso
Old 11-12-2010, 16:08   #20
WarDuck
Senior Member
 
L'Avatar di WarDuck
 
Iscritto dal: May 2001
Messaggi: 12920
Quote:
Originariamente inviato da misterx Guarda i messaggi
a me avevano raccontato che il razzo Arianne programmato dai francesi era precipitato per un problema di deadlock.

Difatti in molti settori tipo quello aereonautico, ma non solo, tali problemi guai se esistessero.
Assolutamente no, è andata ancora peggio se vogliamo.

Hanno riciclato un modulo pensato per i 16bit in una architettura a 32bit, non tenendo conto del possibile overflow.

Le routine di controllo (se non erro ce n'erano più di una) sono andate in panico e hanno attivato la procedura di auto-distruzione, di fatto facendolo esplodere.

Ci sono svariati esempi di cattiva progettazione e programmazione, purtroppo anche in ambito medico.

In molti di questi ambiti andrebbe testata matematicamente la correttezza totale degli algoritmi in gioco, e credo che in alcuni casi lo facciano.
WarDuck è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto Redmi Note 15 Pro+ 5G: autonomia monstre e displ...
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione HONOR Magic 8 Pro: ecco il primo TOP del 2026! L...
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata Insta360 Link 2 Pro e 2C Pro: le webcam 4K che t...
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza Motorola edge 70: lo smartphone ultrasottile che...
Il TAR annulla Bologna Città 30. ...
Laptop con chip NVIDIA da marzo? Emergon...
Costruito in casa, più veloce di ...
Il nuovo Galaxy Book 6 Pro costa il 25% ...
C'è un boom del mercato dei data ...
OVHcloud annuncia la disponiiblità...
Il Wi-Fi 7 ha un nuovo re: da ASUS arriv...
In arrivo l'auto "Frankenstein"...
Chip NVIDIA H200 in Cina? 'Come vendere ...
iPhone 16 torna super conveniente: ora c...
Offerte Amazon pazzesche: tech, smartpho...
Ubisoft annuncia l'arrivo dei 60 fps per...
Infratel Italia: ecco la nuova mappa del...
Hoover HMC5 in offerta: il battimaterass...
Un'idea 'rivoluzionaria' dal Politecnico...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 20:57.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v