Torna indietro   Hardware Upgrade Forum > Software > Programmazione

iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
C'è tanta sostanza nel nuovo smartphone della Mela dedicato ai creator digitali. Nuovo telaio in alluminio, sistema di raffreddamento vapor chamber e tre fotocamere da 48 megapixel: non è un semplice smartphone, ma uno studio di produzione digitale on-the-go
Intel Panther Lake: i processori per i notebook del 2026
Intel Panther Lake: i processori per i notebook del 2026
Panther Lake è il nome in codice della prossima generazione di processori Intel Core Ultra, che vedremo al debutto da inizio 2026 nei notebook e nei sistemi desktop più compatti. Nuovi core, nuove GPU e soprattutto una struttura a tile che vede per la prima volta l'utilizzo della tecnologia produttiva Intel 18A: tanta potenza in più, ma senza perdere in efficienza
Intel Xeon 6+: è tempo di Clearwater Forest
Intel Xeon 6+: è tempo di Clearwater Forest
Intel ha annunciato la prossima generazione di processori Xeon dotati di E-Core, quelli per la massima efficienza energetica e densità di elaborazione. Grazie al processo produttivo Intel 18A, i core passano a un massimo di 288 per ogni socket, con aumento della potenza di calcolo e dell'efficienza complessiva.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 05-11-2002, 18:26   #121
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 Cimmo
[b]allocava memoria ogni volta e quindi non modificava mai la stessa variabile.
Secondo me è ancora più pericoloso... Pensa passando per valore il puntatore alla memoria allocata dinamicamente...
Il thread che è stato lanciato viene interrotto dopo la creazione...entra in esecuzione il thread principale che dealloca la memoria...il thread che è stato lanciato ritorna in esecuzione e legge il valore della memoria già deallocata ed il contenuto non è garantito

Allocando e deallocando presupponi che la lettura del valore avvenga prima della deallocazione...quindi hai fatto una supposizione sull'ordine di esecuzione dei thread e quindi sei già in errore...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 05-11-2002, 18:31   #122
Cimmo
Senior Member
 
L'Avatar di Cimmo
 
Iscritto dal: Jan 2001
Città: California
Messaggi: 7174
Quote:
Originariamente inviato da Luc@s
[b]Una sola domanda: ma che progrmma hai creto e a cosa serve?
In sintesi il problema e':
mandare un pacchetto ad uno o piu' destinazioni data una sorgente.
Il pacchetto deve essere segmentato per tutti gli host e caricata la rete a seconda della bandwith in modo che il pacchetto arrivi alle destinazioni nel modo piu' veloce possibile...(o almeno si spera )

Limiti a questa implementazione:
- tutti gli host sono collegati con la sorgente, ma non e' detto che tutti gli host siano collegati tra di loro
- la velocita' della rete (e di tutte le interconnessioni) e' nota alla sorgente
- il software non tiene conto delle dinamiche della rete, se mentre sta trasferendo una parte di rete si satura lui non ricalcola un altro tragitto.

Vi assicuro che non e' stato semplice...tra qualche giorno ve lo do da testare se ne avrete la voglia e il tempo...solo per Linux!
Cimmo è offline   Rispondi citando il messaggio o parte di esso
Old 05-11-2002, 18:33   #123
Cimmo
Senior Member
 
L'Avatar di Cimmo
 
Iscritto dal: Jan 2001
Città: California
Messaggi: 7174
Quote:
Originariamente inviato da cionci
[b]
Secondo me è ancora più pericoloso... Pensa passando per valore il puntatore alla memoria allocata dinamicamente...
Il thread che è stato lanciato viene interrotto dopo la creazione...entra in esecuzione il thread principale che dealloca la memoria...il thread che è stato lanciato ritorna in esecuzione e legge il valore della memoria già deallocata ed il contenuto non è garantito

Allocando e deallocando presupponi che la lettura del valore avvenga prima della deallocazione...quindi hai fatto una supposizione sull'ordine di esecuzione dei thread e quindi sei già in errore...
Se noti dall'esempio de "ilsensine" () la deallocazione della struttura viene fatta dal thread figlio e non dal padre proprio per evitare questo side effect...
Cimmo è offline   Rispondi citando il messaggio o parte di esso
Old 05-11-2002, 18:37   #124
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 Cimmo
[b]
Se noti dall'esempio de "ilsensine" () la deallocazione della struttura viene fatta dal thread figlio e non dal padre proprio per evitare questo side effect...
Ah...non avevo visto
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 05-11-2002, 18:51   #125
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
Quote:
Originariamente inviato da Cimmo
[b]
In sintesi il problema e':
mandare un pacchetto ad uno o piu' destinazioni data una sorgente.
Il pacchetto deve essere segmentato per tutti gli host e caricata la rete a seconda della bandwith in modo che il pacchetto arrivi alle destinazioni nel modo piu' veloce possibile...(o almeno si spera )

Limiti a questa implementazione:
- tutti gli host sono collegati con la sorgente, ma non e' detto che tutti gli host siano collegati tra di loro
- la velocita' della rete (e di tutte le interconnessioni) e' nota alla sorgente
- il software non tiene conto delle dinamiche della rete, se mentre sta trasferendo una parte di rete si satura lui non ricalcola un altro tragitto.

Vi assicuro che non e' stato semplice...tra qualche giorno ve lo do da testare se ne avrete la voglia e il tempo...solo per Linux!
molto interessante!!!!!
Vuoi sapere come la memoria viene gestita dal kernel ???
Da bash digita:

memusage -p output.png -t -T <eseguibile>
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 05-11-2002, 18:58   #126
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 Cimmo
[b]Il pacchetto deve essere segmentato per tutti gli host
Che intendi con questo ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 05-11-2002, 19:09   #127
Cimmo
Senior Member
 
L'Avatar di Cimmo
 
Iscritto dal: Jan 2001
Città: California
Messaggi: 7174
Quote:
Originariamente inviato da cionci
[b]
Che intendi con questo ?
Cioe' deve...la parola piu' giusta e': puo' segmentare.
Ti faccio un esempio:
abbiamo una sorgente S e 2 destinazioni D1 e D2
tra S e D1 c'e' una bandwith di 50 KB/s e cosi' anche tra S e D2.
Tra D1 e D2 invece c'e' una bandwith di 100 Kb/s.
Ora se spedisci normalmente 100 Kb a D1 e a D2 ci metti 2 secondi giusto? Piu' o meno chiaramente...
Se pero' mandi il 50% a D1 a 50 Kb/s e il restante 50% lo mandi a D2 sempre a 50 Kb/s e poi tra D1 e D2 si scambiano i rispettivi 50% usano meta' banda a testa e cosi' in (circa) 1 secondo si fa tutto.
Capito ora?
Cimmo è offline   Rispondi citando il messaggio o parte di esso
Old 06-11-2002, 10:45   #128
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
Cioè un classico problema di ottimizzazione...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 06-11-2002, 11:37   #129
Cimmo
Senior Member
 
L'Avatar di Cimmo
 
Iscritto dal: Jan 2001
Città: California
Messaggi: 7174
Quote:
Originariamente inviato da cionci
[b]Cioè un classico problema di ottimizzazione...
Diciamo di si'...
Cimmo è offline   Rispondi citando il messaggio o parte di esso
Old 06-11-2002, 12:12   #130
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
Comunque l'utilizzazione nel campo pratico è alquanto limitata...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 06-11-2002, 16:28   #131
Cimmo
Senior Member
 
L'Avatar di Cimmo
 
Iscritto dal: Jan 2001
Città: California
Messaggi: 7174
Scusate dopo tante domande intelligenti una stupida: come si fa a cambiare colore di quello che stampi a video con la printf?
Cimmo è offline   Rispondi citando il messaggio o parte di esso
Old 06-11-2002, 16:44   #132
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
Con la printf non si fa...
Sotto Linux c'è la libreria ncurses che dovrebbe avere qualcosa in proposito...
Altrimenti giù di assembler Anche se perdi al portabilità...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 07-11-2002, 12:19   #133
Cimmo
Senior Member
 
L'Avatar di Cimmo
 
Iscritto dal: Jan 2001
Città: California
Messaggi: 7174
Toglietemi una curiosita':
ma se io faccio una malloc di una struttura e poi non faccio la free, al termine del programma la memoria torna disponibile oppure rimane occupata fino a quando non riavvio il pc?
Cimmo è offline   Rispondi citando il messaggio o parte di esso
Old 07-11-2002, 14:21   #134
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
Dovebbe tornare disponibile...almeno così succede in Windows...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 18-11-2002, 12:43   #135
Cimmo
Senior Member
 
L'Avatar di Cimmo
 
Iscritto dal: Jan 2001
Città: California
Messaggi: 7174
Scusate un'altra cosa:
ma io se ho collegato un host con un altro, i due host possono spedirsi dei messaggi contemporaneamente usando la stessa connessione o devono farlo uno per volta?
Esempio A collegato con B:
A spedisce msg1 a B
B spedisce msg2 a A

il tutto contemporaneamente e usando la stessa connessione...si puo' fare? I messaggi vengono recapitati correttamente?
Cimmo è offline   Rispondi citando il messaggio o parte di esso
Old 18-11-2002, 17:21   #136
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
Certo che può avvenire in contemporanea !!!
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2002, 00:10   #137
Cimmo
Senior Member
 
L'Avatar di Cimmo
 
Iscritto dal: Jan 2001
Città: California
Messaggi: 7174
Ok, ma perche' cavolo se A deve spedire a B e B non ha fatto una read prima della write di A .... B non riceve il messaggio? Cio' e' grave io come cavolo faccio a sapere se B e' in attesa oppure no?
Cimmo è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2002, 10:46   #138
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
Basta non fare le recv bloccanti

Altrimenti con la select :
Codice:
	fd_set rTest;
	TIMEVAL t;
	FD_ZERO(&rTest);
	FD_SET(recvSocket, &rTest);
	rTest.fd_count = 1;
	t.tv_sec = 1; //il timeout è di un secondo
	t.tv_usec = 0;

	if(select(0, &rTest, NULL, NULL, &t) != 1)
	{
		/*timeout*/
	}
	else
	{
		/*qui fai la receive*/
		/*se la receive torna 0 byte allora errore*/
	}
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2002, 11:13   #139
Cimmo
Senior Member
 
L'Avatar di Cimmo
 
Iscritto dal: Jan 2001
Città: California
Messaggi: 7174
Quote:
Originariamente inviato da cionci
[b]Basta non fare le recv bloccanti
Ma io le ho fatte bloccanti, le ho fatte cosi':
Codice:
int receiveData(int socketfd, char *msg)
{
	int nread, n;

	/* lettura */
	nread=0;
	
	while (1)
	{
		if ((n=read(socketfd, &(msg[nread]), MAXSIZE))<0)
		{
			if (errno!=EINTR)
			{
				char msgerror[1024];
				sprintf(msgerror,"read() failed [err %d]",errno);
				perror(msgerror);
				fflush(stderr);
				return(1);
			}
		}
		else
		{
			if (n>0)
			{
				nread+=n;
			
				if ((msg[nread-1]=='/') || (nread>=MAXSIZE))
					break;
			}
		}
	}

	return(0);
};
Cimmo è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2002, 11:18   #140
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
Appunto NON le devi fare bloccanti !!!

La select serve per vedere se succede qualcosa su uno dei socket che si inseriscono con FD_SET...
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile iPhone 17 Pro: più di uno smartphone. &Eg...
Intel Panther Lake: i processori per i notebook del 2026 Intel Panther Lake: i processori per i notebook ...
Intel Xeon 6+: è tempo di Clearwater Forest Intel Xeon 6+: è tempo di Clearwater Fore...
4K a 160Hz o Full HD a 320Hz? Titan Army P2712V, a un prezzo molto basso 4K a 160Hz o Full HD a 320Hz? Titan Army P2712V,...
Recensione Google Pixel Watch 4: basta sollevarlo e si ha Gemini sempre al polso Recensione Google Pixel Watch 4: basta sollevarl...
Apple Smart Glass: display integrato e d...
Mortal Kombat 3 si farà: la confe...
iPhone 18 Pro: prime indiscrezioni sulle...
Vai all'università? Hai un anno d...
Rubrik accelera su IA e sicurezza: tra c...
Nuovo Nothing Phone (3) in offerta su Am...
Roborock Qrevo Edge in offerta su Amazon...
Polizia statunitense mette in guardia: s...
EUREKA J15 Ultra ed Evo Ultra in offerta...
L'Olanda 'nazionalizza' il produttore di...
Robot Lefant M2 Pro in offerta su Amazon...
Ultimi 2 giorni di sconti sui dispositiv...
TP-Link è già proiettata a...
Colpo grosso di Zuckerberg: Meta assume ...
Addio ai matrimoni con l'intelligenza ar...
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:26.


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