Newsgroup: it.comp.programmare
Titolo: [OT] Cache di Windows attiva solo su dischi/pendrive con file-system conosciuti?

Ciao,
 
Questo mio messaggio non riguarda proprio la programmazione, ma forse voi 
programmatori siete meglio a conoscenza di certi funzionamenti "nascosti" 
dei sistemi operativi. Mi riferisco a Windows XP Professional, ma sono 
interessato in generale per Windows anche più recenti.
 
Ho letto che la cache di sistema di Windows funziona a livello di file, o 
meglio a segmenti di file. Giusto?
Se ho quindi un disco che non è formattato con un file-system riconosciuto 
da Windows (NTFS, FAT, ecc.), e quindi Windows non vi legge di per sè alcun 
file, si può dire che per quel disco la cache di sistema non è attivata? 
Oppure Windows ha qualche stratagemma per usare una cache lo stesso, nel 
caso ci sia un programma installato e attivo che è in grado di leggere da 
quel disco (o pendrive, nel mio caso particolare). E nel caso che il disco 
non contenga un vero e proprio file-system, ma venga usato in modo "raw" 
(credo sia questo il termine)?
 
Passo a spiegare la mia situazione in particolare...
 
Ho un programma con una funzione ("Error Scan") per testare l'integrità 
(l'assenza di difetti/guasti) di chiavette USB e memorie flash in generale, 
si chiama Flash Memory Toolkit ed è fatto dalla stessa software house del 
più famoso (credo) HDTune. Questo F.M.T. può eseguire sia un "read test", 
sia un "write test" (scrivendo sul supporto), e può anche combinare questi 
test facendo anche una verifica dei dati scritti dal "write test" (ma la 
verifica di cui parlo non avviene immediatamente, il percorso è: write test 
completo - read test completo con verifica).
 
Ora io sono a conoscenza di problemi che riguardano alcuni software che 
eseguono una verifica dei dati da poco scritti; in pratica se questi dati 
scritti si trovano ancora in una cache (di sistema Windows, o integrata nel 
disco rigido o altro), al momento della lettura (per la verifica) c'è la 
possibilità che essi non vegano letti come sono stati scritti sul supporto, 
ma che vengano invece letti dalla cache; in questo modo c'è la possibilità 
che eventuali errori di scrittura non vengano rilevati.
 
Ecco quindi che vorrei accertarmi che questo Flash Memory Toolkit acceda in 
modo diretto alle mie chiavette USB, senza far giacere i dati in una cache. 
Queste chiavette non hanno di per sè (di solito) una cache integrata, quindi 
rimane solo la cache di Windows da valutare.
 
C'è un elemento da considerare: quando il programma F.M.T. esegue un "write 
test", non scrive sulla chiavetta usando un normale file-system noto a 
Windows -- infatti dopo aver completato il test la chiavetta risulta a 
Windows (XP Pro nel mio caso) come "non formattata", e viene richiesto di 
formattarla nel caso si tenti di accedervi. Vista la natura della funzione 
"Error Scan" di F.M.T., penso si possa anche ipotizzare che non viene 
neanche usato un vero e proprio file-system, ma che vengano semplicemente 
scritti dei dati fino a riempire il supporto, senza una struttura (cartelle, 
file, ecc.), per poi essere letti e verificati (e sicuramente F.M.T. oltre a 
questo ha anche altri sistemi per valutare la salute di una memoria flash).
 
Da quanto ho letto in giro sembrerebbe che le cose siano effettivamente (e 
fortunatamente) così: essendo la cache di Windows basata su file, se non 
vengono rilevati file da Windows (su un file-system non noto), non puo' 
funzionare la cache.
Mi rimane però ancora qualche dubbio, che spero possiate dissipare; leggevo 
che oltre alla cache "file-based", esiste anche una cache "block-based". Non 
so esattamente come funzioni, ma dovrebbe differire dalla "file-based" per 
il fatto di non tenere in considerazione i singoli file per gestirsi, e 
invece tiene in considerazione "blocchi" di dati sul supporto. Potrei però 
sbagliarmi. Comunque dove l'ho letto non si parlava nello specifico di 
Windows.
Il dubbio: è possibile che Windows entri in una specie di modalità 
"block-based", quando risulta un accesso ad un disco/pendrive da parte di un 
programma in grado di gestirlo, ma che invece non viene riconosciuto come 
formattato dal sistema Windows?
Credo di no, ma mi piacerebbe avere delle conferme da qualche esperto. Ho 
scritto al supporto tecnico del programma, ma sembrerebbe inattivo.
 
Ciao e grazie.
 
Thomas
 
 

 scritto al supporto tecnico del programma, ma sembrerebbe inattivo.
 
Io chiederei su:
it.comp.hardware.storage
it.comp.os.win.windows7
it.comp.programmare.win32
 
Ciao


Scusami eh, ma riscrivo la tua domanda in breve: uno specifico toolkit diagnostico apposito per il mio problema funziona veramente?
Ad occhio ti direi di chiedere agli sviluppatori :-/
Ciao!
 
P.S. La cache è una cosa difficile da capire a mozzichi e bocconi, lascia stare.. In una scrittura su supporto rigido hai minimo tre cache da superare (controller, VFS, processore) ognuna con le sue politiche di aggiornamento (che magari cambiano a senconda della configurazione hardware o allo stato di load. Ad occhio ti direi che un qualsiasi software specifico ha superato e risolto i vari problemi collegati in qualche modo OS-dependent.

 collegati in qualche modo OS-dependent.
 
Non capisco bene cosa significa questo. Stai forse in pratica dicendo che il 
programma dovrebbe funzionare e non c'č da preoccuparsi?
 
Grazie,
 
Thomas
 
 

 
 
Ti avrei detto di sì, ma visto che hai descritto esperienze contrastanti in effetti il dubbio verrebbe anche a me.
Se gli sviluppatori non rispondono non c'è molto da fare, purtroppo. Non vedo neppure un modo facile di metter su un test velocemente (a parte il metodo ovvio di provare una singola scrittura di una quantità minore della dimensione dei blocchi cache-ati/abili (tipo un byte, per capirci) e vedere il risultato, ma non sarebbe comunque una prova significativa).
Se hai lo scenario completo dell'ambiente finale magari però con qualche prova si risolve in fretta (in fondo basta un risultato negativo per essere certi) :-)
Ciao!