memoria di massa

Pubblicità

gaiapuffo

Utente Attivo
Messaggi
310
Reazioni
7
Punteggio
39
studiando un pò database mi è sorto un dubbio io sapevo che vi era il braccio che per trovare il dato scorreva tutto la memora e trovava il dato....almeno mi avevano detto qualcosa del genere ma in realta ho trovato informazioni riguardo il file system metadati ecc...quindi con questa cosa il sistema operativo o il dbms sa già all incirca dove si trovano il blocco di dati e va a vedere in quella zona qualcosa del genere?
 
La questione di leggere tutti i dati in memoria è vera per le memorie sequenziali tipo i nastri, gli hdd sono anch'essi sequenziali, ma il dato è identificato da piattello, cilindro e settore.
Quando un hdd fa una ricera ci posiziona sul cilindro giusto e poi aspetta che il settore cercato passi solo la testina (dato che il piattello continua a girare sempre nello stesso verso), ma in questo modo scorre al più tutti i dati del cilindro e non tutti i dati del disco.

Un hdd è sequenziale nel senso che se legge dati contigui è più veloce, e infatti anche gli spostamenti della testina vengono ottimizzati in modo che non salti di palo in frasca sia con metodi abbastanza banali e datati sia con cose furbe tipo l'NCQ che permette ricerche a "spirale", ma comunque non si legge 2TB di dati ad ogni spostamento.

Il FS poi organizza i dati in varia maniera e fornisce altre funzioni, ma comunque sempre fornendo la posizione in cui deve andare la testina.

Ovviamente il discorso cambia per gli ssd, ma nel caso di storage penso si parli di hdd meccanici nel 99% dei casi.

Il dbms ha accesso al file system, è poi il filesystem ad indicare alla circuiteria del disco cosa andare a prendere.
 
.. io sapevo che vi era il braccio che per trovare il dato scorreva tutto la memora e trovava il dato....
In aggiunta a quanto già chiaramente esposto mi permetterei di specificare che i dati di qualsiasi tipo vengono scritti su un disco fisso registrandone poi la posizione precisa (settore, cluster, segmento) nella MFT, che altro non è che un normalissimo indirizzario di dove andare a trovare il file Pinco.

Quindi, se un programma o kernel chiede il file Pinco, il file system del disco va a "consultare" la Master File Table, legge dove deve andare, lo dice alle testine che si posizionano nel punto giusto.

Quindi il disco non cerca sequenzialmente i dati dall'inizio alla fine, ma li cerca in modo "indicizzato", e quindi va a botta sicura.

Puo' succedere che per un solo file ci siano tre o quattro indirizzamenti diversi, a causa della frammentazione del dato scritto, e in questo caso la testina deve "becchettare" su piu' parti del disco, sempre in modo indirizzato e preciso, per mettere insieme le fettine di file da trovare.
:D
 
solo per informazioni per cilicndro intendi disco della memoria so che vi sono vari dischi e quindi viene inteso uno dei dischi?
 
Il cilindro è una "fettina" del disco fisso, come fosse l'area occupata da una canzone su un cd musicale o un disco in vinile. Quindi, sempre a titolo esemplificativo, se su un cd hai 5 film, vuol dire che hai 5 cilindri belli grossi, concentrici, ciascuno dei quali contiene un film.

I cilindri di un disco fisso sono molto piu' piccoli, e quindi piu' numerosi, per cui quando la testina riceve il comando di raggiungere un certo file, vuol dire che deve andare ad un certo "cilindro" , e quindi si posiziona su una fettina precisa di disco fisso, arrivandovi sopra ad alta velocità, e trovandovi il dato richiesto grazie al fatto che il disco fisso, come ben spiegato da Happiness, gira molto velocemente.
 
Pubblicità
Pubblicità
Indietro
Top