Torna indietro   Hardware Upgrade Forum > Software > Programmazione

NVIDIA RTX Spark: il PC Windows on ARM costruito per l'IA agentica
NVIDIA RTX Spark: il PC Windows on ARM costruito per l'IA agentica
Debuttano ufficialmente i primi sistemi notebook basati su piattaforma NVIDIA RTX Spark, abbinati a Windows on ARM e pensati per l'intelligenza artificiale agentica. Architettura integrata tra CPU e GPU che condividono la memoria di sistema, capace di gestire in locale modelli molto grandi ma al contempo anche di spiccare con la grafica e l'elaborazione
Motorola razr fold, dalla conchiglia al formato a libro. La recensione
Motorola razr fold, dalla conchiglia al formato a libro. La recensione
Abbiamo provato Motorola razr fold, il pieghevole a libro con display interno LTPO da 8,09 pollici, Snapdragon 8 Gen 5 e batteria da 6000 mAh in 243 grammi. Pennino e custodia sopno già nella confezione, per un foldable che si caratterizza per il pannello luminoso, l'autonomia ottima per la categoria e le fotocamere coerenti e ben sfruttabili. Il listino è di 1999 euro, ma in vendita si trova già a molto meno
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente
Google Pixel Watch 5 ha affinato una formula già convincente con hardware più veloce, Gemini offline e nuovi strumenti per sport e benessere. Abbiamo provato la versione LTE da 41 mm, comoda anche di notte e ben proporzionata sui polsi piccoli. Il design resta un punto di forza, ma l'autonomia premia ancora il 45 mm e alcune funzioni AI non sono disponibili in Italia: ecco che cosa cambia rispetto a Watch 4 e quale formato conviene scegliere oggi
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 16-01-2009, 16:56   #1
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
[Win32] Scritture concorrenti su file

salve a tutti, ho una domanda da fare... ho esplorato da cima a fondo nella libreria MSDN tutta la documentazione relativa all'I/O sui files, cioé questa sezione: http://msdn.microsoft.com/en-us/libr...29(VS.85).aspx

ma non sono riuscito a capire una cosa fondamentale: nel caso di I/O sincrono (quindi non overlapped) e di scritture concorrenti su uno stesso file da parte di processi diversi, o per meglio dire attraverso HANDLEs diversi, i vari blocchi scritti sono ordinati?? oppure il caching causa un potenziale disordinamento?

quello che mi interessa capire fondamentalmente é se il caching:
1) avviene per file;
2) avviene per HANDLE;
3) avviene per processo;
4) l'interfaccia Win32 non specifica questo dettaglio che viene lasciato quindi all'implementazione sottostante, ad esempio al kernel NT o all'FSD sottostante.

questa differenza é molto importante perché:
nel caso 1) i vari blocchi di dati scritti vengono automaticamente ordinati nella cache, che funziona da coda;
nei casi 2) e 3) i blocchi scritti potrebbero essere disordinati perché ciascuno viene effettivamente scritto sul file solo quando la cache da cui proviene viene flushata, e quindi i blocchi restano ordinati secondo l'ordine in cui vengono flushate le caches;
nel caso 4) é una bella rottura di scatole.

volevo saperlo giusto per sapersi regolare quando si scrive un programma che girerá su piu processi e dovrá accedere concorrentemente agli stessi files in scrittura

so bene che Vista introduce il file system transazionale che elimina questo e dozzine di altri problemi, ma spesso e volentieri di questi tempi il target é ancora XP.

grazie a tutti dei vostri pareri, specialmente mi farebbe piacere ricevere eventuali link a pagine di MSDN che mi sono sfuggite!

Ultima modifica di fero86 : 16-01-2009 alle 17:00.
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 16-01-2009, 16:58   #2
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
aggiungo un dettaglio che ho dimenticato di specificare: tutta questa questione ha senso solamente quando si parla di scritture di buffers la cui dimensione non supera quella di un settore: in caso contrario infatti la WriteFile non é atomica per contratto, e quindi i dati scritti in contemporanea vengono disordinati indipendentemente dal caching.
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 16-01-2009, 17:16   #3
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
http://msdn.microsoft.com/en-us/libr...50(VS.85).aspx
http://msdn.microsoft.com/en-us/libr...18(VS.85).aspx

Ti conviene aprire i file con FILE_FLAG_NO_BUFFERING (eventualmente, anche FILE_FLAG_WRITE_THROUGH). Attento agli accessi non bufferizzati, ci sono restrizioni sulla quantità di byte a cui puoi con una operazione (leggi il primo link).

ciao
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 16-01-2009, 17:25   #4
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
ti ringrazio, ma quei link sono stati i primi che ho letto quando mi sono posto il problema
non mi sembra che rispondano alla mia domanda sul caching; c'é giusto un'affermazione d'interesse secondo la quale il caching viene operato "per file object" e quindi questo cosa significa? esiste un file object in tutto il sistema per ciascun file, oppure uno per processo oppure uno per HANDLE?


Quote:
Ti conviene aprire i file con FILE_FLAG_NO_BUFFERING (eventualmente, anche FILE_FLAG_WRITE_THROUGH). Attento agli accessi non bufferizzati, ci sono restrizioni sulla quantità di byte a cui puoi con una operazione (leggi il primo link).
due domande:
1) e volendo aprirlo invece senza quei due flag per motivi di performance? MSDN spiega che per scritture piccole e frequenti conviene usare il caching.
2) cosa cambia aggiungendo anche FILE_FLAG_WRITE_THROUGH? non sono riuscito a capirlo.
fero86 è offline   Rispondi citando il messaggio o parte di esso
Old 16-01-2009, 17:39   #5
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Non sapevo, nel caso te li ho postati.
Be' sinceramente sono un po' in dubbio anche io su questo "file object" di cui si parla, personalmente l'avevo interpretato come un identificatore del file a cui fanno capo i vari HANDLE... ma è una mia interpretazione. In questo caso ti andrebbe bene ed avresti la risposta al punto 1). Per il punto 2), serve ad evitare che restino i metadati "appesi" e va a scrivere immediatamente tutto su disco.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2009, 10:29   #6
fero86
Senior Member
 
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
Quote:
Originariamente inviato da DanieleC88 Guarda i messaggi
Non sapevo, nel caso te li ho postati.
Be' sinceramente sono un po' in dubbio anche io su questo "file object" di cui si parla, personalmente l'avevo interpretato come un identificatore del file a cui fanno capo i vari HANDLE... ma è una mia interpretazione. In questo caso ti andrebbe bene ed avresti la risposta al punto 1). Per il punto 2), serve ad evitare che restino i metadati "appesi" e va a scrivere immediatamente tutto su disco.
riporto su questa discussione per dire che ho trovato la soluzione. si, era come dicevi tu: il file object é unico su tutto il sistema ed é quello a cui fanno capo tutti gli HANDLE aperti su uno stesso file, indipendentemente dal processo che li apre.
questa pagina esplica chiaramente la terminologia:
http://msdn.microsoft.com/en-us/libr...85(VS.85).aspx

di conseguenza il buffering avviene per file e la cache funziona da coda che ordina tutti i bytes scritti concorrentemente anche prima di qualsiasi flush; un flush da parte di un processo flusha anche i bytes scritti da altri processi.

mi resta solo da verificare se il file pointer viene tenuto per file object o per HANDLE, ma adesso non mi va e comunque sospetto decisamente la prima, che significa che un processo tra una scrittura e un'altra potrebbe ritrovarsi il file pointer magicamente spostato in una posizione che non si aspetta; d'altra parte sarebbe sempre buona pratica aprire un file senza FILE_SHARE_WRITE quando lo si apre con GENERIC_WRITE.

Ultima modifica di fero86 : 25-01-2009 alle 10:32.
fero86 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


NVIDIA RTX Spark: il PC Windows on ARM costruito per l'IA agentica NVIDIA RTX Spark: il PC Windows on ARM costruito...
Motorola razr fold, dalla conchiglia al formato a libro. La recensione Motorola razr fold, dalla conchiglia al formato ...
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente Recensione Google Pixel Watch 5: sembra lo stess...
Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo Nokia Innovation Day 2026: la sovranità e...
In sella alla Fiido Nomads Pro: e-bike con motore centrale da 100 Nm per il divertimento a 360 gradi In sella alla Fiido Nomads Pro: e-bike con motor...
Haier, TV 4K in offerta su Amazon: QLED ...
Redmagic 12 Pro+ ufficiale in Cina: raff...
Computer biologici, organoidi cerebrali ...
NVIDIA porta gli agenti AI sui PC RTX co...
Apple-1 firmato da Wozniak venduto per 1...
Microsoft rinnova Foto per Windows 11: e...
Canone Rai in diminuzione come il bollo?...
Motorola moto g77 a 249€ con auricolari ...
Sony WH-1000XM4C: il ritorno di un class...
Steam introduce gli achievement sets: gl...
GeForce RTX 5090, aumentano i segnali di...
Spendereste 5.899 dollari per un Walkman...
SEGA ritira Total War: Shogun 2 - Comple...
Switch off 3G di WINDTRE: ok dall'AGCOM ...
Claude, Accenture taglia il budget ai di...
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:04.


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