Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Cos'è la bolla dell'IA e perché se ne parla
Cos'è la bolla dell'IA e perché se ne parla
Si parla molto ultimamente di "bolla dell'intelligenza artificiale", ma non è sempre chiaro perché: l'IA è una tecnologia molto promettente e che ha già cambiato molte cose dentro e fuori le aziende, ma ci sono enormi aspettative che stanno gonfiando a dismisura i valori delle azioni e distorcendo il mercato. Il che, com'è facile intuire, può portare a una ripetizione della "bolla dotcom", e forse anche di quella dei mutui subprime. Vediamo perché
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-09-2004, 14:44   #1
opiu
Member
 
L'Avatar di opiu
 
Iscritto dal: Apr 2001
Messaggi: 111
[C] IPC con code di messaggi

[C] IPC con code di messaggi

Ciao, per un esercizio per l'università devo far comunicare vari processi attraverso code di messaggi, utilizzo le seguenti funzioni per inviare e ricevere un messaggio:

int msgsnd(int msqid, const void *msgp, size_t msgsz,
int msgflg);

int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp,
int msgflg);

e questa struttura dati per il messaggio

struct mymsg {
long mtype; /* message type */
char mtext[MSGSZ]; /* message text of length MSGSZ */
}

Tutto come da manuale insomma. Il mio problema è che inizialmente il messaggio è costituito da un solo carattere, poi però la dimensione cresce non linearmente praticamente moltiplicata sempre per sei. Avrò quindi con pochi cicli msg costutuiti da stringhe da 1,6,36,216,1296 ecc caratteri... e una struttura come char mtext[MSGZ] non è adatta giusto? E poi che valore dovrebbe assumere MSGZ? Nell esercizio non è specificato quante iterazioni devo compiere, credo il numero sufficiente per dimostrare una corretta comunicazione. Come fare considerando che la funzione msgrcv deve conoscere la dimensione del messaggio?

Grazie
opiu è offline   Rispondi citando il messaggio o parte di esso
Old 01-09-2004, 16:52   #2
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
MSGZ è arbitrario ed è specificato in msgsz.
Che documentazione hai letto? La mia è leggermente differente...
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 01-09-2004, 17:53   #3
opiu
Member
 
L'Avatar di opiu
 
Iscritto dal: Apr 2001
Messaggi: 111
Intanto grazie... io sto prendendo come riferimento questo sito

http://www.cs.cf.ac.uk/Dave/C/node25...00000000000000

Sì so che si può specificare ma quindi quale dimensione dovrei mettere?
opiu è offline   Rispondi citando il messaggio o parte di esso
Old 01-09-2004, 22:09   #4
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
E' la dimensione del messaggio che devi inviare, immagino. Nota che le strutture contenenti il messaggio, nel tuo caso, non hanno dimensione fissa.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2004, 00:51   #5
opiu
Member
 
L'Avatar di opiu
 
Iscritto dal: Apr 2001
Messaggi: 111
Esattamente così! Il fatto è che il ricevente deve conoscere a priori la dimensione del messaggio, e il mio msg diventa dopo 4 invii di ben 1296 caratteri! Dovrei quindi avere un vettore di 1296 spazi? È forse opportuno gestire diversamente la struttura dati per il messaggio?
opiu è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2004, 09:00   #6
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Il ricevente non deve necessariamente conoscere la dimensione del messaggio in quanto tale valore è restituito da msgrcv. Se il tuo buffer è troppo piccolo per contenere il messaggio, viene ritornato l'errore E2BIG e puoi riallocare un buffer più grande (ad es. il doppio del precedente).
Vedi man msgrcv.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2004, 11:57   #7
opiu
Member
 
L'Avatar di opiu
 
Iscritto dal: Apr 2001
Messaggi: 111
mmm comincio a capire...
quindi ci sono due problemi di spazio uno della coda stessa (viene ritornato l'errore EAGAIN e posso ridimensionare la coda con msgctl aumentando il valore oltre MSGMNB che è quello predefinito dal sistema), e l'altro del msg (viene ritornato l'errore E2BIG ma posso ridimensionare il parametro msgsz e ripetere l'operazione di ricezione)

Teoricamente credo sia corretto, ora apro vim...

Grazie mille!
opiu è offline   Rispondi citando il messaggio o parte di esso
Old 05-09-2004, 19:08   #8
opiu
Member
 
L'Avatar di opiu
 
Iscritto dal: Apr 2001
Messaggi: 111
Ciao, mi spiace ma non sono ancora giunto alla fine... sono riuscito a far funzionare lo scambio di messaggi utilizzando come struttura del msg questa:

typedef struct msgbuf {
long mtype; /* message type */
long sender; /* message sender */
char mtext[MSGSZ]; /* message text of length MSGSZ */
} message_buf


Però in questo modo il msg è fissato nella sua dimensione e vorrei dipendesse ad esempio da un parametro di ingresso da linea di comando. Penso allora di sostituire l'ulitmo campo con un puntatore a char:

char *mtext

allocando con malloc abbastanza memoria.

Lo scambio di messaggi dovrebbe avvenire perchè con ipcs vedo che la coda è vuota, ma andando a leggere nel buf di ricezione ci sono solo strani caratteri.

Grazie
opiu è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2004, 00:48   #9
opiu
Member
 
L'Avatar di opiu
 
Iscritto dal: Apr 2001
Messaggi: 111
Una precisazione... il messaggio viene ricevuto perchè nel campo sender della struct riesco a leggere il dato corretto, ma non nel campo mtext.
opiu è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2004, 09:04   #10
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Io farei così:
Codice:
typedef struct msgbuf { 
 long mtype;
 long sender;
 char mtext[0];
 } message_buf 

(...)
struct msgbuf *alloca_messaggio(int msgsz) {
  struct msgbuf *ret;
  ret = malloc(sizeof(*ret)+msgsz);
  return ret;
}
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2004, 12:48   #11
opiu
Member
 
L'Avatar di opiu
 
Iscritto dal: Apr 2001
Messaggi: 111
Grazie mille... funziona tutto alla perfezione ora
Ciao
opiu è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
FRITZ!Repeater 1700 estende la rete super-veloce Wi-Fi 7 FRITZ!Repeater 1700 estende la rete super-veloce...
Cloud sovrano: l'approccio di Broadcom c...
HONOR conferma l'arrivo in Italia di Mag...
La Cina sotto pressione impone maniglie ...
OpenAI integra le app in ChatGPT per tra...
NVIDIA sarebbe pronta a tagliare la prod...
Prezzo minimo storico per iPhone 16 Pro:...
Riot Games scopre una falla nei BIOS che...
Beats in super offerta su Amazon: aurico...
Batterie elettriche, Samsung SDI e Stell...
Clivet presenta Fullness, la pompa di ca...
SpaceX lancerà 167 razzi spaziali...
Yakuza Kiwami 3 e Dark Ties protagonisti...
Privacy a rischio: ecco la VPN che regis...
SpaceX ha annunciato che un satellite St...
ASUSTOR presenta i nuovi NAS Lockerstor ...
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: 06:43.


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