Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
REDMI Note 17 Pro porta in fascia media una batteria da 8.340 mAh con ricarica HyperCharge a 67W, un display AMOLED da 6,83 pollici capace di picchi di luminosità molto elevati e una struttura certificata TÜV SÜD contro cadute e infiltrazioni d'acqua, il tutto racchiuso in una scocca da 223 grammi. Lo abbiamo provato per diversi giorni tra fotocamera, prestazioni, autonomia e prezzo sul mercato italiano
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 10-12-2010, 17:30   #1
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9948
[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, 17:36   #2
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9948
... 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, 17: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, 17: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, 19:21   #5
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9948
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, 19: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 10-12-2010, 23: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, 08:50   #8
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9948
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, 09: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, 09: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, 09: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, 09: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, 09:44   #13
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9948
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, 11: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, 11:33   #15
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9948
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, 12: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, 12: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, 13: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, 14:09   #19
Matrixbob
Senior Member
 
L'Avatar di Matrixbob
 
Iscritto dal: Jul 2001
Messaggi: 9948
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, 15:08   #20
WarDuck
Senior Member
 
L'Avatar di WarDuck
 
Iscritto dal: May 2001
Messaggi: 13043
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


Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce Recensione REDMI Note 17 Pro: il midrange con ba...
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Samsung Gallery Cloud Sync introduce il ...
Dyson V8 Cyclone a 249€: scopa elettrica...
Rifiuti elettronici, l'altra faccia dell...
Meta prepara Luna, i nuovi occhiali smar...
SSD NVMe Gen4 2TB in offerta: Acer Preda...
Perché i backup non bastano pi&ug...
Maserati, si concretizza la pista cinese...
Corea del Sud preoccupata: le cinesi YMT...
Se ne vendono 3000 al mese su Amazon: Sm...
Sedie gaming ergonomiche su Amazon: SONG...
Criptovalute, il Senato USA blocca il Cl...
Samsung Galaxy S26 FE a 635€ con coupon ...
Tesla porta il Cybercab in Cina, ma solo...
I modelli di OpenAI mentono e si nascond...
Rivoluzione in arrivo per il Game Pass? ...
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: 10:40.


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