Torna indietro   Hardware Upgrade Forum > Software > Programmazione

L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint
L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint
Abbiamo intervistato Sumit Dhawan, CEO di Proofpoint, per capire come stia cambiando il mondo della sicurezza con l'avvento dell'intelligenza artificiale e con il ritmo sempre più serrato a cui vengono trovate vulnerabilità nel software. Un problema significativo, che richiederà del tempo per essere risolto (o quantomeno arginato)
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
La parola d'ordine al Nextcloud Summit 2026, che si è tenuto a Monaco, è stata "sovranità". Non come è spesso usato questo termine in politica ma, al contrario, come capacità positiva di decidere il proprio destino tecnologico, con modalità collaborative e aperte. L'Europa dice già molto nel mondo open source, che viene visto come mezzo per ottenere la tanto agognata autonomia digitale
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete implementa due bracci estensibili, per spazzola e moccio, che si spingono ben oltre quanto visto sino ad oggi permettendo una pulizia di casa ancor più capillare e precisa
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 02-12-2003, 15:21   #1
Edde
Senior Member
 
Iscritto dal: Oct 2001
Città: Prov. di Frosinone
Messaggi: 948
Semafori

Ciao

Devo fare questo programma sotto linux:

---------------------------------------------------------
Gioco del Tris (versione peer-to-peer)

Realizzazione di una versione elettronica del famoso "gioco del
Tris". In questa versione due processi (ognuno dei quali funge da
interfaccia con uno dei due giocatori) cooperano tra loro. Per prima
cosa decidono quale dei due processi deve iniziare (il meccanismo di
decisione e' lasciato alla discrezione dello studente), poi si accetta
come input una mossa, la si trasmette al secondo processo, e ci si
pone in attesa di una mossa da parte del secondo processo. Entrambi i
processi, ogni volta che ricevono una mossa (sia dal loro giocatore
che dall'altro processo) valutano se uno dei due giocatori ha vinto e
lo riferiscono al loro giocatore. Il canale di comunicazione tra i due
processi deve essere implementato tramite l'uso di memoria condivisa.
------------------------------------------------------------

La mia idea e' stata quella di usare 2 semafori binari (A =1 e B=0)

Il giocatore1 fa la wait su A, e alla fine la signal(B).
Il giocatore2 fa wait(B) e alla fine signal(A).

Questo per garantire non solo la mutua esclusione, ma anche l'alternaza stretta nell'accesso alla memoria.

Credo di aver fatto bene (anche perche' funziona), ma non sono convintissimo.
Pareri?

Grazie in anticipo a chi rispondera'
Edde è offline   Rispondi citando il messaggio o parte di esso
Old 02-12-2003, 16:07   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Dovrebbe andare bene...
In questo modo quando A è in azione B è fermo e viceversa...
E' come avere una coda produttore-consumatore di 1 elemento...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 03-12-2003, 16:07   #3
mjordan
Bannato
 
L'Avatar di mjordan
 
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR ‫Casco: XR1000 Diabolic 3
Messaggi: 27578
Certo che se ogni volta devi sincronizzare due processi con dei semafori staremmo freschi. Io per esempio avrei usato delle pipe... Fin quando scrivi dati inferiori o uguali a PIPE_BUF come dimensione, non devi preoccuparti della sincronizzazione. Se poi l'esercizio chiedeva esplicitamente l'uso dei semafori è altro conto.
mjordan è offline   Rispondi citando il messaggio o parte di esso
Old 03-12-2003, 16:31   #4
fedo
Senior Member
 
L'Avatar di fedo
 
Iscritto dal: Mar 2001
Città: Roma
Messaggi: 2532
leggendo l'ultima riga del testo dell' esercizio ti consiglio di usare una di queste, NON i semafori (come ti ha fatto notare anche mj):

-Libreria MM Shared Memory
-MMap con flag per la memoria condivisa (non ricordo quale è)


sono due soluzioni molto semplici, la seconda soprattutto (però la prima è + performante)..

ciao
fedo è offline   Rispondi citando il messaggio o parte di esso
Old 04-12-2003, 00:10   #5
Edde
Senior Member
 
Iscritto dal: Oct 2001
Città: Prov. di Frosinone
Messaggi: 948
Grazie a tutti

Il fatto e' che noi, per quanto riguarda la comunicazione tra processi, abbiamo fatto solo mem condivisa, semafori e code di msg, e tutto in maniera abbastanza semplice (per un totale di una decina di chiamate di sistema).

Sinceramente le pipe non so neanche cosa siano

Il testo dell'esercizio e' quello li, e non chiede in maniera specifica di usare i semafori. Pero' alla fine si tratta di garantire mutua esclusione su quell'area di memoria, e mi e' sembrato naturale usare i semafori per farlo

Cmq, nell'ipotesi che si debbano usare i semafori, la soluzione che ho adottato e' corretta o si puo' fare di meglio?

Vi ascolto
Edde è offline   Rispondi citando il messaggio o parte di esso
Old 04-12-2003, 08:27   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da Edde
Cmq, nell'ipotesi che si debbano usare i semafori, la soluzione che ho adottato e' corretta o si puo' fare di meglio?
E' corretta...anche se basterebbe una mutex...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 04-12-2003, 13:04   #7
mjordan
Bannato
 
L'Avatar di mjordan
 
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR ‫Casco: XR1000 Diabolic 3
Messaggi: 27578
Quote:
Originariamente inviato da cionci
E' corretta...anche se basterebbe una mutex...
Anche perchè "semafori" e "mutex" sono la stessa cosa ...
mjordan è offline   Rispondi citando il messaggio o parte di esso
Old 04-12-2003, 13:38   #8
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da mjordan
Anche perchè "semafori" e "mutex" sono la stessa cosa ...
Sì, diciamo che il semaforo è una mutex generalizzata...ma ad esempio in Windows ci sono strutture diverse per i semfori e per le mutex...
La mutex serve per gestire un solo accesso ad una sola risorsa...mentre il semaforo risorse multiple, o accessi multipli alla stessa risorsa...

Ultima modifica di cionci : 04-12-2003 alle 13:47.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 04-12-2003, 14:20   #9
mjordan
Bannato
 
L'Avatar di mjordan
 
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR ‫Casco: XR1000 Diabolic 3
Messaggi: 27578
Quote:
Originariamente inviato da cionci
Sì, diciamo che il semaforo è una mutex generalizzata...ma ad esempio in Windows ci sono strutture diverse per i semfori e per le mutex...
La mutex serve per gestire un solo accesso ad una sola risorsa...mentre il semaforo risorse multiple, o accessi multipli alla stessa risorsa...
Concettualmente è sbagliato perchè con MUTEX nella letteratura classica accettata universalmente si indica una qualsiasi variabile semaforo condivisa fra N processi al fine di ottenere la sincronizzazione mutualmente esclusiva ...
Ecco perchè "accessi multipli ad una risorsa" con la parola MUTualEXclusion non va molto d'accordo...

Mah
mjordan è offline   Rispondi citando il messaggio o parte di esso
Old 04-12-2003, 15:08   #10
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da mjordan
Concettualmente è sbagliato perchè con MUTEX nella letteratura classica accettata universalmente si indica una qualsiasi variabile semaforo condivisa fra N processi al fine di ottenere la sincronizzazione mutualmente esclusiva ...
Ecco perchè "accessi multipli ad una risorsa" con la parola MUTualEXclusion non va molto d'accordo...
L'unica mutua esclusione presente nell'uso di un semaforo è quella sulla variabile che tiene il conteggio...
Io stavo dicendo PER COSA SI USANO i semfori e non PERCHé FUNZIONANO...
Parlo di accessi multipli ad una sola risorsa in questo senso:

Risorsa r;
Semaforo s(N);

s.wait();
r.uso();
s.signal();

All'istante /t all'interno di Risorsa::uso() ci possono essere un massimo di N processi...
Che poi uso tratti la mutua esclusione alle sue risorse come gli pare è un'altro discorso... Di fatto fra la wait e la signal ci sono N processi... Se il numero di processi in esecuzione sono M...M-N processi possono essere in attesa sulla wait...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 04-12-2003, 15:30   #11
Edde
Senior Member
 
Iscritto dal: Oct 2001
Città: Prov. di Frosinone
Messaggi: 948
Al di la delle disquisizioni filosofiche, non ho ben capito in che modo sia possibile usare un solo semaforo binario... In pratica entrambi i processi dovrebbero fare wait e signal sullo stesso semaforo?

A dire la verita' ci avevo provato, ma poi i 2 processi non entravano in sezione critica in alternanza stretta: il primo che entrava teneva sotto controllo la memoria fino alla sua morte (faceva la signal sul semaforo e subito dopo la wait sullo stesso: in pratica era assolutamente indipendente dall'altro e faceva un po' quello che voleva). Il secondo processo riusciva ad eccedere alla memoria solo dopo la morte del primo...

E' li che mi e' venuta l'idea di usarne 2, in modo tale da impredire completamente che uno potesse andare avanti prima che l'altro avesse fatto quello che doveva: anche perche' alla fine, e' dalle scelte di scheduling che dipende chi andra' avanti: se un processo e' in grado di continuare da solo, chi mi garantisce che venga mantenuta l'alternanza stretta?
Edde è offline   Rispondi citando il messaggio o parte di esso
Old 04-12-2003, 15:38   #12
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da Edde
A dire la verita' ci avevo provato, ma poi i 2 processi non entravano in sezione critica in alternanza stretta: il primo che entrava teneva sotto controllo la memoria fino alla sua morte (faceva la signal sul semaforo e subito dopo la wait sullo stesso: in pratica era assolutamente indipendente dall'altro e faceva un po' quello che voleva). Il secondo processo riusciva ad eccedere alla memoria solo dopo la morte del primo...

E' li che mi e' venuta l'idea di usarne 2, in modo tale da impredire completamente che uno potesse andare avanti prima che l'altro avesse fatto quello che doveva: anche perche' alla fine, e' dalle scelte di scheduling che dipende chi andra' avanti: se un processo e' in grado di continuare da solo, chi mi garantisce che venga mantenuta l'alternanza stretta?
Nono....hai fatto bene così...intendevo due mutex al posto dei semafori... Una mutex è in effetti identica ad un semaforo binario...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 04-12-2003, 15:40   #13
mjordan
Bannato
 
L'Avatar di mjordan
 
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR ‫Casco: XR1000 Diabolic 3
Messaggi: 27578
Ho capito ma quello che ti chiedevo prima è dove distingui il termine MUTEX dal termine SEMAFORO. O meglio (forse non mi sono spiegato bene) la differenza fra un SEMAFORO e un SEMAFORO MUTEX. . .
mjordan è offline   Rispondi citando il messaggio o parte di esso
Old 04-12-2003, 15:54   #14
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
No...io non distinguo SEMFOFRO da SEMAFORO MUTEX...distinguo SEMAFORO da MUTEX...
Nel senso che per come l'abbiamo fatta noi...mutex è un caso particolare del semaforo...cioè il semaforo binario...
Non sono solamente io a fare questa distinzione...come già detto, su Windows esistono le API CreateMutex e CreateSemaphore...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 04-12-2003, 16:13   #15
mjordan
Bannato
 
L'Avatar di mjordan
 
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR ‫Casco: XR1000 Diabolic 3
Messaggi: 27578
Ohhh... Vedi allora che avevo capito bene ... Il SEMAFORO MUTEX varia in uno spazio non logicamente definito. Ecco perchè è anche detto semaforo contatore ... Il semaforo binario non è la stessa cosa. Difatti i semafori binari hanno come valori esclusivamente i valori 0 e 1. Ma forse queste sono distinzioni prettamente accademiche:

SEMAFORO -- Variabile generica usata per sincroinizzare processi.
SEMAFORO MUTEX -- Semaforo in cui la variabile varia in uno spazio non definito. Detto anche spinlock perchè fa assumere alla macchina una condizione di busy waiting, laddove potrebbe impiegare il lavoro necessario per effettuare altri compiti.
SEMAFORO BINARIO -- Semaforo i cui valori sono esclusivamente 0 e 1. Dal binario è possibile implementare il MUTEX. Non presenta busy waiting, quindi niente spinlock.
MONITOR -- Arcana strategia implementata sul principio dei semafori per determinare la sezione critica di un processo.

Di chiu nin zo
mjordan è offline   Rispondi citando il messaggio o parte di esso
Old 04-12-2003, 20:11   #16
recoil
Senior Member
 
L'Avatar di recoil
 
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 19149
Quote:
Originariamente inviato da mjordan
MONITOR -- Arcana strategia implementata sul principio dei semafori per determinare la sezione critica di un processo.
da programmatore java dico: w i monitor
recoil è offline   Rispondi citando il messaggio o parte di esso
Old 04-12-2003, 20:29   #17
mjordan
Bannato
 
L'Avatar di mjordan
 
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR ‫Casco: XR1000 Diabolic 3
Messaggi: 27578
Quote:
Originariamente inviato da recoil
da programmatore java dico: w i monitor
Meglio se CRT, quelli TFT non mi fanno poi così impazzire
mjordan è offline   Rispondi citando il messaggio o parte di esso
Old 14-12-2003, 17:20   #18
Edde
Senior Member
 
Iscritto dal: Oct 2001
Città: Prov. di Frosinone
Messaggi: 948
Riposto la specifica:

---------------------------------------------------------
Gioco del Tris (versione peer-to-peer)

Realizzazione di una versione elettronica del famoso "gioco del
Tris". In questa versione due processi (ognuno dei quali funge da
interfaccia con uno dei due giocatori) cooperano tra loro. Per prima
cosa decidono quale dei due processi deve iniziare (il meccanismo di
decisione e' lasciato alla discrezione dello studente)
, poi si accetta
come input una mossa, la si trasmette al secondo processo, e ci si
pone in attesa di una mossa da parte del secondo processo. Entrambi i
processi, ogni volta che ricevono una mossa (sia dal loro giocatore
che dall'altro processo) valutano se uno dei due giocatori ha vinto e
lo riferiscono al loro giocatore. Il canale di comunicazione tra i due
processi deve essere implementato tramite l'uso di memoria condivisa.
------------------------------------------------------------


Devo consegnare il programma il 17. Facendo gli ultimi ritocchi, mi e' caduto l'occhio sulla frase in neretto e mi e' venuto un dubbio atroce.....

Nella mia implementazione c'e' un processo padre (che si occupa delle inizializzazioni) e che a un certo punto crea 2 figli: il primo chiama la funzione "giocatore1", il secondo quella "giocatore2"....
Prima di fare questo chiede il nome ai due giocatori e, in maniera casuale, decide quale nominativo associare a "giocatore1" e quale invece a "giocatore2".

In questo modo, dall'esterno, sembra effettivamente che l'ordine con cui i due giocatori iniziano sia casuale, mentre in realta' il primo figlio giochera' sempre per primo, l'altro sempre per secondo...
Senza contare che tutto questo viene fatto dal padre e non, come sembrerebbe da quella frase, dai 2 processi che cooperano tra di loro....

Insomma, non sono sicuro che sia giusto il mio approccio (c'e' sempre la frase "il meccanismo di decisione e' lasciato alla discrezione dello studente", che potrebbe parzialmente pararmi le chiappe) e non ho neanche grandi idee per modificarlo....

Che ne pensate?
Vi preeeeeeego......
Edde è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint L'IA cambia tutte le regole della sicurezza tra ...
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026 L'Europa conta nella tecnologia e può ess...
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più Dreame X60 Pro Ultra Complete: i bracci si esten...
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati TCL 65C8L, la recensione del SQD-Mini LED da 440...
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro MSI Maestro 500 Wireless: ANC e 90 ore di autono...
Apple MacBook Neo 13'' con chip A18 Pro ...
Insieme a Leica SL3-P presentate le otti...
La Cina svilupperà anche il razzo...
Rocket Lab e la missione Victus Haze per...
Starship: Ship 40 ha eseguito uno static...
I nuovi Samsung Galaxy Watch 9 si mostra...
Einsten aveva ragione, di nuovo: captate...
Top 10 offerte Amazon: 5 sono partite qu...
AI Conf 2026: l'intelligenza artificiale...
Samsung Galaxy S26 scende a 711,49€: un ...
Dopo il maxi blackout, la Spagna cambia ...
Costa meno di un MacBook e fa molto di p...
Ecco tutti i robot aspirapolvere rimasti...
Più partite da seguire in contemporanea?...
389€ sono veramente pochi per questo PC ...
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: 17:22.


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