Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Google Pixel 10 Pro XL: uno zoom 100x assurdo sempre in tasca (e molto altro)
Recensione Google Pixel 10 Pro XL: uno zoom 100x assurdo sempre in tasca (e molto altro)
Google Pixel 10 Pro XL è il top di gamma della serie Pixel, presentando un ampio display Super Actua da 6.8 pollici insieme alle novità della serie, fra cui la ricarica wireless magnetica Pixelsnap e le nuove funzionalità AI avanzate. Il comparto fotografico include un sistema a tripla fotocamera con zoom Pro Res fino a 100x, mentre il processore Tensor G5 con 16GB di RAM garantisce prestazioni percepite molto elevate su Android.
Lenovo IdeaPad Slim 3: un notebook Snapdragon X economico
Lenovo IdeaPad Slim 3: un notebook Snapdragon X economico
Forte della piattaforma Qualcomm Snapdragon X, il notebook Lenovo IdeaPad Slim 3 riesce a coniugare caratteristiche tecniche interessanti ad uno chassis robusto, con autonomia di funzionamento a batteria che va ben oltre la tipica giornata di lavoro. Un notebook dal costo accessibile pensato per l'utilizzo domestico o in ufficio, soprattutto con applicazioni native per architettura ARM
Recensione OnePlus Watch 3 43mm: lo smartwatch che mancava per i polsi più piccoli
Recensione OnePlus Watch 3 43mm: lo smartwatch che mancava per i polsi più piccoli
OnePlus risponde alle esigenze di chi cerca un dispositivo indossabile dalle dimensioni contenute con OnePlus Watch 3 43mm. La versione ridotta del flagship mantiene gran parte delle caratteristiche del modello maggiore, offrendo un'esperienza completa in un formato compatto. Il suo limite più grande è abbastanza ovvio: l'autonomia non è il punto di forza di questo modello, ma si raggiungono comodamente le due giornate piene con un uso normale.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 23-09-2011, 11:40   #1
Bandit
Senior Member
 
L'Avatar di Bandit
 
Iscritto dal: Sep 2003
Messaggi: 9431
Mi aiutate a capire i monitor?

Ciao a tutti ragazzi
ho cercato di studiare dalle slides e da quello che ho potuto trovare da internet i monitor ma non è che ci ho capito molto.

Posso dirvi cosa ho capito e chiedervi delle integrazioni eventualmente?li divido in concetti in modo da essere il più chiaro possibile

1)Il monitor è un tipo di dato astratto contenente delle variabili (definite nel monitor e visibili solo in esso) utilizzabili solo da alcuni processi (che sono procedure anch'esse del monitor). Fin qui tutto ok, giusto?

2) Ora poi si parla che per garantire che un solo processo per volta, abbia accesso alla variabile locale (credo che si riferisca alle variabili provate del monitor, giusto?) si impone che le funzioni di accesso al monitor vengano eseguite in modo mutuamente esclusivo, e che tutti gli altri processi che invocano una variabile del monitor devono attendere se c'è già un altro processo attivo nel monitor.
Se fin qui è tutto giusto io vi chiedo: ma allora come si spiega la definizione? cioè ci sono processi esterni al monitor che accedono ad esso, e poi ci sono anche processi interni al monitor?

3) si parla di istanze del monitor, ma cosa si intende? le risorse private del monitor?
__________________
1)P4 2.4-Asrock p4i65- Sapphire Hd3450 512mb agp- 2GB ddr400-Hd 80gb WD- Thermaltake Litepower 450W
2)Amd 3200-Msi K8n Neo4 Platinum - 2*512 MB pc3200-Asus N6600gt- HD WD 160GB-enermax noisetacker 370.
Bandit è offline   Rispondi citando il messaggio o parte di esso
Old 23-09-2011, 13:55   #2
Floris
Senior Member
 
L'Avatar di Floris
 
Iscritto dal: Jan 2007
Messaggi: 2267
Da quel che ricordo, un monitor è un oggetto che incapsula variabili che devono essere accedute in modo controllato. Quindi un processo che voglia accedere la variabile "protetta" deve chiamare i metodi del monitor.
Sarà quindi il monitor a gestire l'accesso concorrente alla variabile prevedendo all'interno dei propri metodi di accesso alla variabile istruzioni di wait per porre in attesa i processi e signal per risvegliarli.
I semafori dovrebbero essere una degenerazione del concetto di monitor quando si ha mutua esclusione, cioè quando solo un processo in ogni istante può accedere alle variabili.

Nei moderni linguaggi di programmazione concorrenti solitamente i monitor sono implementati attraverso primitive del linguaggio (come in Java con synchronized o Ada con...non ricordo) per evitare errori di programmazione.

Quote:
Il monitor è un tipo di dato astratto contenente delle variabili (definite nel monitor e visibili solo in esso) utilizzabili solo da alcuni processi (che sono procedure anch'esse del monitor). Fin qui tutto ok, giusto?
Nel monitor sono definite le variabili su cui deve garantire sincronizzazione più eventuali variabili accessorie per garantire tale sincronizzazione. I processi per accedere alle variabili "sincronizzate" dovranno utilizzare le procedure del monitor.

Quote:
Originariamente inviato da Bandit
cioè ci sono processi esterni al monitor che accedono ad esso, e poi ci sono anche processi interni al monitor?
Processi interni al monitor sono quelli che in un dato momento hanno accesso alle variabili da esso protette o che sono in attesa di accesso.

Quote:
Originariamente inviato da Bandit
si parla di istanze del monitor, ma cosa si intende? le risorse private del monitor?
Solitamente i monitor sono implementati tramite oggetti con un contatore che tiene traccia del numero di processi che in un dato istante stanno accedendo alle variabili.

Comunque guarda anche qua:
http://it.wikipedia.org/wiki/Monitor...onizzazione%29
__________________
Concluso con:...
Floris è offline   Rispondi citando il messaggio o parte di esso
Old 24-09-2011, 08:46   #3
Bandit
Senior Member
 
L'Avatar di Bandit
 
Iscritto dal: Sep 2003
Messaggi: 9431
Ciao Floris
credo che la tua sintesi è davvero chiara, però è meglio che faccio qualche precisazione per maggiore mia chiarezza

Quote:
Nel monitor sono definite le variabili su cui deve garantire sincronizzazione più eventuali variabili accessorie per garantire tale sincronizzazione. I processi per accedere alle variabili "sincronizzate" dovranno utilizzare le procedure del monitor.
Allora nel monitor ci sono delle variabili (dette variabili condizione) che servono per sincronizzare l'accesso alle variabili locali (variabili locali intendo le variabili che sono definite nel monitor, che sono accedibili solo dalle procedure interne al monito)


Per il momento mi sembra chiaro , però poi ci ragiono ed eventualmente ti scrivo

grazie mille
__________________
1)P4 2.4-Asrock p4i65- Sapphire Hd3450 512mb agp- 2GB ddr400-Hd 80gb WD- Thermaltake Litepower 450W
2)Amd 3200-Msi K8n Neo4 Platinum - 2*512 MB pc3200-Asus N6600gt- HD WD 160GB-enermax noisetacker 370.
Bandit è offline   Rispondi citando il messaggio o parte di esso
Old 24-09-2011, 10:14   #4
starfred
Senior Member
 
Iscritto dal: Jul 2011
Messaggi: 381
ciao, come ha scritto Floris, "eventuali variabili accessorie per garantire tale sincronizzazione". Non per forza devo avere delle variabili condizione.
__________________
Concluso positivamente con: Kamzata, Ducati82, Arus, TheLastRemnant, ghost driver, alexbull1, DanieleRC5, XatiX
starfred è offline   Rispondi citando il messaggio o parte di esso
Old 24-09-2011, 11:12   #5
Floris
Senior Member
 
L'Avatar di Floris
 
Iscritto dal: Jan 2007
Messaggi: 2267
Quote:
eventuali variabili accessorie per garantire tale sincronizzazione
Esatto. Infatti in Java viene usato synchronized che è un costrutto per la mutua esclusione. Non serve, in questo caso, (semplice mutua esclusione) definire variabili di controllo per la sincronizzazione. Basta porre la variabile da controllare all'interno di un oggetto e poi etichettare tutti i metodi di accesso ad essa come synchronized.

Cose più sofisticate, sempre in Java, come ad esempio l'accesso simultaneo limitato ad una variabile (ad es. 3 thread per volta possono accedervi) le puoi fare incapsulando la variabile in un oggetto che sfrutta un contatore (variabile condizione). Da notare che le operazioni che agiscono su tale contatore, come ad esempio, quelle che controllano il suo valore per vedere quanti processi in un dato istante hanno accesso alla variabile controllata, devono essere racchiuse in blocchi synchronized cosicchè eventuali race conditions non pregiudichino la semantica che si vuole implementare.
__________________
Concluso con:...

Ultima modifica di Floris : 24-09-2011 alle 11:31.
Floris è offline   Rispondi citando il messaggio o parte di esso
Old 24-09-2011, 11:50   #6
Bandit
Senior Member
 
L'Avatar di Bandit
 
Iscritto dal: Sep 2003
Messaggi: 9431
però se considero le variabili condizioni queste sono nel monitor giusto?

ora poi c'è un problema: trovo scritto che per garantire l'accesso in mutua esclusione alle funzioni del monitor , si associa ad ogni oggetto del monitor un semaforo mutex

e per la gestione delle politiche di sospensione e riattivazione di processi sulle variabili condizione, la soluzione è quella di Hoare ( se c'è un processo che richiede di entrare nel monitor, e c'è già un processo in attesa sulla variabile condizione, quest'ultimo sarà il processo che entrerà nel monitor) ,oltre poi all'introduzione di un semaforo urgent .
Questi due semafori non li ho capiti.

per il mutex (per garantire mutua esclusione)
ho trovato e capito che è inizializzato ad 1 e che per entrare nel monitor un processo deve eseguire una wait (mutex), invece per entrare una signal(mutex)

per l'urgent (sospensione e riattivazione processi) invece
è inizializzato a 0 ma non ci ho capito nulla
__________________
1)P4 2.4-Asrock p4i65- Sapphire Hd3450 512mb agp- 2GB ddr400-Hd 80gb WD- Thermaltake Litepower 450W
2)Amd 3200-Msi K8n Neo4 Platinum - 2*512 MB pc3200-Asus N6600gt- HD WD 160GB-enermax noisetacker 370.
Bandit è offline   Rispondi citando il messaggio o parte di esso
Old 24-09-2011, 12:05   #7
starfred
Senior Member
 
Iscritto dal: Jul 2011
Messaggi: 381
Quote:
Originariamente inviato da Bandit Guarda i messaggi
ora poi c'è un problema: trovo scritto che per garantire l'accesso in mutua esclusione alle funzioni del monitor , si associa ad ogni oggetto del monitor un semaforo mutex
Si e no, dipende dai linguaggi, per esempio con i metodi synchronized il mutex è implicito. Ma nessuno mi vieta di utilizzare un mutex unico per tutte le funzioni del monitor.


Quote:
Originariamente inviato da Bandit Guarda i messaggi
e per la gestione delle politiche di sospensione e riattivazione di processi sulle variabili condizione, la soluzione è quella di Hoare ( se c'è un processo che richiede di entrare nel monitor, e c'è già un processo in attesa sulla variabile condizione, quest'ultimo sarà il processo che entrerà nel monitor) ,oltre poi all'introduzione di un semaforo urgent .
Questi due semafori non li ho capiti.
No, attenzione, per prima cosa bisogna fare due precisazioni:

1) se un processo è in attesa su una variabile condizione, prima di esser risvegliato deve verificarsi l'evento per il quale l'attesa non è più valida (in java avviene attraverso la semantica della signal da parte di un altro thread)

2) Il fatto che il processo risvegliato debba entrare per primo dipende anch'esso dal tipo di linguaggio e dalla semantica, il caso a cui tu fai riferimento è la signal-and-urgent.

Quote:
Originariamente inviato da Bandit Guarda i messaggi
per il mutex (per garantire mutua esclusione)
ho trovato e capito che è inizializzato ad 1 e che per entrare nel monitor un processo deve eseguire una wait (mutex), invece per entrare una signal(mutex)
Generalmente await e signal vengono utilizzati su variabili condition, non sui mutex (in java generalmente si utilizzano mutex di tipo reentrantlock con metodi lock() e unlock() )
Forse tu volevi riferirti ai metoti wait, notify e notifyall?

P.s. Credo che ti stia addentrando in argomentazioni complesse, che senza l'aiuto di un buon libero non se ne esce facilmente...
__________________
Concluso positivamente con: Kamzata, Ducati82, Arus, TheLastRemnant, ghost driver, alexbull1, DanieleRC5, XatiX

Ultima modifica di starfred : 24-09-2011 alle 12:14.
starfred è offline   Rispondi citando il messaggio o parte di esso
Old 24-09-2011, 15:14   #8
Bandit
Senior Member
 
L'Avatar di Bandit
 
Iscritto dal: Sep 2003
Messaggi: 9431
http://www.megaupload.com/?d=B6VF58MQ
questa è la slides che ho
e poi ho cercato di vedere su internet altri libri


per la cosa detta al 1)
che mi vuoi dire che il signal non necessariamente risveglia il programma che immediatamente sarà eseguito?

Per 2) allora faccio riferimento al caso signal-and-urgent


cmq se hai qualche link me lo potresti indicare?qualche slides
__________________
1)P4 2.4-Asrock p4i65- Sapphire Hd3450 512mb agp- 2GB ddr400-Hd 80gb WD- Thermaltake Litepower 450W
2)Amd 3200-Msi K8n Neo4 Platinum - 2*512 MB pc3200-Asus N6600gt- HD WD 160GB-enermax noisetacker 370.
Bandit è offline   Rispondi citando il messaggio o parte di esso
Old 24-09-2011, 15:31   #9
Floris
Senior Member
 
L'Avatar di Floris
 
Iscritto dal: Jan 2007
Messaggi: 2267
http://en.wikipedia.org/wiki/Monitor...hronization%29
Prova a guardare gli External Links.
__________________
Concluso con:...
Floris è offline   Rispondi citando il messaggio o parte di esso
Old 24-09-2011, 15:44   #10
Bandit
Senior Member
 
L'Avatar di Bandit
 
Iscritto dal: Sep 2003
Messaggi: 9431
Quote:
Originariamente inviato da Floris Guarda i messaggi
http://en.wikipedia.org/wiki/Monitor...hronization%29
Prova a guardare gli External Links.
grazie
ma io vorrei capire solo quello delle slides, fino ai produttori e consumatori, ma senza le eventuali implementazioni specifiche etc etc
__________________
1)P4 2.4-Asrock p4i65- Sapphire Hd3450 512mb agp- 2GB ddr400-Hd 80gb WD- Thermaltake Litepower 450W
2)Amd 3200-Msi K8n Neo4 Platinum - 2*512 MB pc3200-Asus N6600gt- HD WD 160GB-enermax noisetacker 370.
Bandit è offline   Rispondi citando il messaggio o parte di esso
Old 24-09-2011, 17:31   #11
starfred
Senior Member
 
Iscritto dal: Jul 2011
Messaggi: 381
ciao, come ti ho detto prima esistono diverse semantiche della signal, quello a cui tu fai riferimento (signal-and-urgent) è un caso particolare di signal-and-wait. Nel caso della signal-and-urgent e signal-and-wait è corretto affermare che il processo risvegliato è quello che immediatamente sarà eseguito.
Attenzione però, nella urgent il segnalato (una volta uscito dal monitor) ritorna subito il controllo al processo segnalante che si era sospeso, mentre invece nella signal-and-wait questo non è vero.

Comunque, son argomentazioni difficili da capire così, senza una spiegazione esaustiva e vari esempi. Il mio consiglio è, per ora, dimenticarti delle variabili condition ed invece cercare di approfondire il concetto di monitor, entry queue del monitor, synchronized ed i metodi wait() notify() e notifyall().

Ps. Ho visto le slides e credo che siano veramente fatte male (giuste ma fatte male). Per prima cosa utilizzano il C / C++ per descrivere i costrutti dei monitor cosa che con il Java risulta molto più semplice, poi (e questo secondo me crea moltissima confusione) all'inizio utilizzano la wait() sia per indicare un lock di un semaforo sia per indicare la wait su una condition; e per ultima cosa vanno subito a implementare una signal-and-urgent senza accenare alle altre varie politiche di signal. Non viene accennato minimamente il metodi notify e notifyAll... insomma, a mio parere, sono pessime.
__________________
Concluso positivamente con: Kamzata, Ducati82, Arus, TheLastRemnant, ghost driver, alexbull1, DanieleRC5, XatiX
starfred è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Google Pixel 10 Pro XL: uno zoom 100x assurdo sempre in tasca (e molto altro) Recensione Google Pixel 10 Pro XL: uno zoom 100x...
Lenovo IdeaPad Slim 3: un notebook Snapdragon X economico Lenovo IdeaPad Slim 3: un notebook Snapdragon X ...
Recensione OnePlus Watch 3 43mm: lo smartwatch che mancava per i polsi più piccoli Recensione OnePlus Watch 3 43mm: lo smartwatch c...
BOOX Note Air4 C è uno spettacolo: il tablet E Ink con Android per lettura e scrittura BOOX Note Air4 C è uno spettacolo: il tab...
Recensione Sony Xperia 1 VII: lo smartphone per gli appassionati di fotografia Recensione Sony Xperia 1 VII: lo smartphone per ...
Il registratore per il ventunesimo secol...
VMware: "alziamo i prezzi perch&eac...
Le prime Leapmotor B10 sono partite per ...
Destiny Rising sbarca domani: ecco perch...
Parallels Desktop si aggiorna con la ver...
Tesla guarda XPeng: le nuove P7 guidano ...
Roscosmos vorrebbe realizzare diverse mi...
Marshall Bromley 750 è il nuovo s...
OpenAI, la ristrutturazione societaria r...
Google perde in tribunale: stop all'obbl...
MasterLiquid Core II e Core Nex, i nuovi...
Porsche: addio alla produzione di batter...
WD Blue SN5100: Sandisk rinnova la serie...
Oracle espande la sua offerta di modelli...
Come il robot DEEBOT X8 PRO OMNI sta con...
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: 23:13.


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