Pagina 1 di 2

Massimo quantitativo di RAM per Vista 32bit

MessaggioInviato: dom dic 23, 2007 12:44 pm
da simon73
ho vista 32bit con un pc assemblato da poco...
ho una sheda madre asus p5ke-wifi e 2gb di ram kingston da 800mhz (ddr2 a 240pin), volevo portare le ram a 4gb pero ho una scheda video 8600gts e ha mi sembra circa 1gb di memoria condivisa di sistema... quindi come ho letto in una domanda precedente, vista nn me li vedrebbe?? ma se nn li vede quindi nn vengono utilizzati?? a me mi basta che vengano utilizzati perche quando scanziono con kaspersky le ram si pienano... oh metto vista 64bi oppure nn tocco nulla?

MessaggioInviato: dom dic 23, 2007 12:46 pm
da crazy.cat
sicuramente ne vede tre giga, avrei forti dubbi che ne utilizzi 4.

Vista fa schifoooooooooo......

MessaggioInviato: dom dic 23, 2007 12:50 pm
da simon73
spiegami meglio... nn li vede intendi che nn li utilizza nemmeno??
comunque se guardi il mio pc e come lo utilizzo io le ram sono sempre minimo al 70% e quando scanziono vanno a 95% e si blocca tutto!

MessaggioInviato: dom dic 23, 2007 2:28 pm
da -DrAma-

MessaggioInviato: dom dic 23, 2007 2:46 pm
da simon73
gia usato e letto tutta quella pagina prima di scrivere!!
volevo solo dei chiarimenti perche nn ho capito bene!
leggi bene quello che ho chiesto!
poxo rileggere 20 volte quella pagina ma se nn ci capisco nn è colpa mia ok??
facevi prima a dirmi quello che ho chiesto

MessaggioInviato: dom dic 23, 2007 5:02 pm
da -DrAma-
simon73 ha scritto:gia usato e letto tutta quella pagina prima di scrivere!!
volevo solo dei chiarimenti perche nn ho capito bene!
leggi bene quello che ho chiesto!
poxo rileggere 20 volte quella pagina ma se nn ci capisco nn è colpa mia ok??
facevi prima a dirmi quello che ho chiesto

perdonami ma meglio di così non lo so spiegare
Un sistema operativo a 32 bit non può indirizzare più di 4Gb di memoria, dove con memoria s'intende RAM+Memoria grafica, più memorie del kernel. Questo in tutti i sistemi operativi a 32 bit. Possono essere "visti" da software e alcuni SO, ma non indirizzati, quindi un parte di quella memoria rimane inutilizzata. Windows non li vede neanche.

MessaggioInviato: dom dic 23, 2007 5:05 pm
da simon73
ok forse ho capito.. grazie...
quindi se li metto è come se nn ci fossero vero??
mi sa che ne lascero 2gb e in futuro passero a vista 64bit...
grazie...

MessaggioInviato: dom dic 23, 2007 6:27 pm
da -DrAma-
simon73 ha scritto:ok forse ho capito.. grazie...
quindi se li metto è come se nn ci fossero vero??
mi sa che ne lascero 2gb e in futuro passero a vista 64bit...
grazie...

Esatto..ne useresti 3Gb e qualche cosa, al momento non ne vale la pena.

MessaggioInviato: dom dic 23, 2007 6:30 pm
da simon73
ok grazie e tengo a ripetere che uso cerca e avevo gia letto tutta la pagina che hai pure inserito prima di chiedere... l'ho fatto perche nn avevo capito bene e avevo dei dubbi... ora tutto risolto... grazie! [^]

MessaggioInviato: lun dic 24, 2007 12:11 am
da ninjabionico
-DrAma- ha scritto:...
Un sistema operativo a 32 bit non può indirizzare più di 4Gb di memoria, dove con memoria s'intende RAM+Memoria grafica, più memorie del kernel. Questo in tutti i sistemi operativi a 32 bit. Possono essere "visti" da software e alcuni SO, ma non indirizzati, quindi un parte di quella memoria rimane inutilizzata. Windows non li vede neanche.


Forse potrei sbagliarmi, ma mi sembra che il kernel Linux, anche in versione 32 bit, non abbia questo problema, per superarlo è stato scritto un nuovo gestore della memoria, ancora tempo fa, quindi in fase di configurazione basta scegliere la corretta voce da attivare, opzione ormai di default su tutte le più recenti distribuzioni Gnu/Linux, che dovrebbero gestire fino a 64 GB di memoria.

Quindi direi che quando parli di sistemi a 32 bit, tu debba specificare Microsoft, non è detto che gli altri abbiano queste limitazioni.

http://xoomer.alice.it/adefacc/linux/ln ... 2.4.x.html

Notare data di creazione del documento, 04/01/2001, mentre l'ultima revisione risale al 17/03/2006.

Come si può leggere dal documento sopra, il kernel Linux aveva questa limitazione nella versione 2.2, dalla 2.4 in poi questo limite è stato superato... oggi siamo alla 2.6, la prima versione stabile è del 18-Dec-2003, oggi siamo alla 2.6.23.12 come si può notare sul sito http://www.kernel.org

Ciao.

MessaggioInviato: lun dic 24, 2007 11:10 am
da Aesir
In effetti è possibilissimo arrivare a 64GB; il bus degli indirizzi è a 36 bit (2^36 = 64GB) fin dai tempi del Pentium Pro (!), suppongo che i sistemi linux utilizzino un sistema segment-offset come quello dei vecchi processori 16 bit che potevano indirizzare 20 bit (2^20 = 1MB) o anche 24 bit (16MB).

Microsoft ha scelto di utilizzare 32 bit e così raggiunge al massimo i 4GB. [:p]

EDIT:

sono andato a documentarmi sulla bibbia del Assembly "The Art of Assembly Language" di Randall Hyde;

Segmentation had developed such a bad name over the years that Microsoft abandoned the use of segments in their 32-bit versions of Windows (95, 98, NT, 2000, ME, etc.). In a couple of respects, this was a real shame because Intel finally did segmentation right (or, at least, pretty good) in the 80386 and later processors. By not allowing the use of segmentation in Win32 programs Microsoft limited the use of this powerful feature. They also limited their users to a maximum address space of 4GB (the Pentium Pro and later processors were capable of addressing 64GB of physical memory). Considering that many applications are starting to push the 4GB barrier, this limitation on Microsoft's part was ill-considered. Nevertheless, the "flat" memory model that Microsoft employs is easier to write software for, undoubtedly a big part of their decision not to use segmentation.


per chi non mastica l'inglese dice più o meno che microsoft abbandonò l'uso della segmentazione con l'introduzione dei sistemi a 32 bit (quindi da win95),purtroppo per loro già dal 386 (1986) Intel comincia a offrire un migliore supporto per la segmentazione (prima aveva dato parecchi problemi ma era necessaria a meno che non si volesse accontentarsi di solo 64K) ma la società di Redmond persegue nella sua politica lasciando quindi la barriera a 4GB. D'altro canto la maggior semplicità dello scrivere software per windows è legata in gran parte a questa scelta e inoltre, a mio parere, han fatto bene i calcoli infatti adesso pochi hanno bisogno di più di 4GB e già stanno cominciando a diffondersi i sistemi a 64 bit quindi è una limitazione di cui quasi non ci si è accorti.

MessaggioInviato: lun dic 24, 2007 2:25 pm
da -DrAma-
Non condivido assolutamente i vostri i pareri, un kernel a 32bit limita tutto a 32bit e quindi il massimo indirizzabile sono 4Gb di memoria TOTALE indirizzabile, che poi un sistema li veda sommando le capacità presenti negli SPD delle RAM è un altro conto, ma di certo non gli indirizza.
Questo lo cpaisce chi ha programmato in linguaggio macchina, dove per indirizzare la lettura o scrittura di un dato, bisogna fornigli un indirizzo. L'istruzione agisce su dei registri che modificano il loro stato, i registri non sono nient'altro che piccole celle che variano il loro valore binario tra 0 e 1.
Anche io ho un procio a 64bit, ma il kernel è a 32bit quindi la massima interpretazione del mio hardware rimane a 32bit. Il kernel sta tra le applicazioni e hadware.
Quindi se volete, continuate a farvi prendere in giro, da negozianti o espertoni di turno, ma spero di esservi stato utile nel comprendere, che è un limite, che senza cambiare kernel e senza avere un hw a 64bit è impossibile superare.

EDIT: chiaramente da mia esperienza personale...potrei nche sbagliarmi, ma tutti i PC conlinux in università usati per simulazioni fisiche sono a 64bit e montano fino ad 16Gb di ram

MessaggioInviato: lun dic 24, 2007 3:34 pm
da ninjabionico
-DrAma- ha scritto:Non condivido assolutamente i vostri i pareri, un kernel a 32bit limita tutto a 32bit e quindi il massimo indirizzabile sono 4Gb di memoria TOTALE indirizzabile, che poi un sistema li veda sommando le capacità presenti negli SPD delle RAM è un altro conto, ma di certo non gli indirizza.
Questo lo cpaisce chi ha programmato in linguaggio macchina, dove per indirizzare la lettura o scrittura di un dato, bisogna fornigli un indirizzo. L'istruzione agisce su dei registri che modificano il loro stato, i registri non sono nient'altro che piccole celle che variano il loro valore binario tra 0 e 1.
Anche io ho un procio a 64bit, ma il kernel è a 32bit quindi la massima interpretazione del mio hardware rimane a 32bit. Il kernel sta tra le applicazioni e hadware.
Quindi se volete, continuate a farvi prendere in giro, da negozianti o espertoni di turno, ma spero di esservi stato utile nel comprendere, che è un limite, che senza cambiare kernel e senza avere un hw a 64bit è impossibile superare.

EDIT: chiaramente da mia esperienza personale...potrei nche sbagliarmi, ma tutti i PC conlinux in università usati per simulazioni fisiche sono a 64bit e montano fino ad 16Gb di ram


[?]

Anch'io quando andavo a scuola programmavo in Assembler, anzi ho addirittura interfacciato il turbopascal 5.5 della Bordland con delle routine in Assembler da me realizzate per velocizzare alcuni programmi (con un guadagno notevole, 20 volte più veloce).
Aesir ha detto giusto, confermo che già sull'8086/8088 esisteva l'indirizzamento a 20 bit, anche se il processore era un 16 (8086)/8 (8088) bit con registri degli indirizzi a 16 bit. È corretto quando afferma che c'era la possibilità di indirizzare a 20 bit gli indirizzi fisici, grazie alla gestione a segmentazione della memoria, si arrivò a 24 bit con gli 80286 che erano processori 16 bit.
Naturalmente con gli 80386, a 32 bit, venne meno in quel momento la necessità di un indirizzamento maggiore.

MessaggioInviato: lun dic 24, 2007 3:55 pm
da ninjabionico
Trovato un link interessante, con tanto di tabella Processore, Data Address Size, Dimesione Max. Memoria....

... ed è un Tutorial sull'Assembler....

http://www.giobe2000.it/Tutorial/Cap01/ ... 01-017.asp

e poi questo wiki...

http://it.wikibooks.org/wiki/Assembly/O ... System_Bus

Paragrafo: Il Bus degli indirizzi ha scritto:...I Pentium Pro e i Core Duo e Quad Core, hanno Bus Address a 36 fili, quindi 64 GB di memoria indirizzabile. Già si pensa a Bus Address a 48 fili per oltre 100mila GB di dati. Questo avverrà quando i programmatori penseranno che 64 GB di RAM sono pochi per i loro programmi esattamente come lo è ora 1 solo MB. E pensare che 30 anni fa, si pensava che 1MB di memoria, fosse sufficiente a tutto...


Buona lettura.

P.S.: Aesir, dal Pentium Pro l'indirizzamento a 36 bit, ovvero 64 GB di memoria fisica... [^]

MessaggioInviato: lun dic 24, 2007 5:35 pm
da -DrAma-
Il concetto è che il rpcio può avere un address a tutti i bit che si vuole, ma se il kernel è a 32bit, le applicazioni vedranno solo 32bit.

Buon Natale

MessaggioInviato: lun dic 24, 2007 7:32 pm
da Aesir
Drama hai ragione quando dici che con un indirizzo memorizzato in un registro a 32 bit (gli E_X dell'architettura x86) si possono indirizzare solo 4 GB, ci mancherebbe altro, infatti la segmentazione è possibile grazie a due valori a 32 bit (ergo 2 registri) che combinati assieme danno l'indirizzo fisico in memoria.

Non mi sembra il caso di spiegare qui l'esatto funzionamento teorico, ci vorrebbe un post molto lungo e magari qualche schema o esempio, comunque se ti interessa puoi trovare sicuramente molto su internet. A grandi linee in 32 bit il segmento al massimo può essere al massimo 4 GB (penso che sia meno, può essere un'altra potenza di due , ma ipotizziamo che sia così) a questo punto l'offset individua questo blocco univocamente. un numero a 36 bit quindi sarebbe così formato: le prime 32 cifre da destra = segmento = 4GB, le ultime 4 = offset = 16 (F) valori possibili e dato che 16*4 = 64 eccoti i 64 GB.

Comunque basta che cerchi le specifiche degli ultimi processori, se ciò non fosse possibile come sostieni, perché mai fare un bus di 36 bit ? Vuoi vedere che vogliono introdurre un sistema in base 9?[:D]

Ciao, Buon Natale!!!

p.s. non bollare come espertoni e venditori gente che è più esperta di tutti noi messi assieme, il tizio che ho citato nel mio post precedente insegna in un università americana programmazione a basso livello, ha sviluppato un suo linguaggio e ha scritto un manuale per l'insegnamento di 1500 pagine sull'assembly a 16 bit che poi ha aggiornato a 32 bit (in quello a 16 bit spiega bene la segmentazione in quello a 32 adduce che è inutile conoscerla visto che sia Windows che Linux non la utilizzano, va detto però che l'ultima versione della guida è precedente all'aggiornamento del kernel suddetto e questo spiega perché non ne parli).

MessaggioInviato: mar dic 25, 2007 2:05 pm
da -DrAma-
No non intedevo quelle persone...
Quando avrò tempo leggerò, il linguaccio macchina mi affascina tuttora.
Gli indirizzi a più bit, servono nelle applicazioni dedicate o di basso livello (bios etc). Anche lo Z80 avevaun address bus a 16bit pur essendo un processore a 8bit.
Il problema è il kernel, che è l'interfacciamento delle applicazioni con l'hardware che tu hai, tecniche come quelle che hai riportati sono archibugi che non danno una dimesione fisica, ma solo virtuale e con questo tutto quello che comporta a livello di cicli macchina.
comunque appena ho tempo gli darò un'occhiata [^]

MessaggioInviato: mar dic 25, 2007 8:34 pm
da Aesir
Non voglio insistere, ma se cercherai un po' in giro vedrai che si tratta proprio di memoria fisica.

Prova a cercare "Physical Address Extensions" (in sigla PAE), questi sono i primi link interessanti che ho trovato;

l'immancabile wikipedia
http://en.wikipedia.org/wiki/Physical_Address_Extension
e questa pagina di microsoft per il PAE nei sistemi server con link a pagine più dettagliate
http://www.microsoft.com/whdc/system/platform/server/pae/default.mspx
Io ho letto solo wikipedia e mi sembra abbastanza chiara a proposito.

Ciao.

MessaggioInviato: mar dic 25, 2007 11:10 pm
da -DrAma-
Aesir ha scritto:Non voglio insistere, ma se cercherai un po' in giro vedrai che si tratta proprio di memoria fisica.

Prova a cercare "Physical Address Extensions" (in sigla PAE), questi sono i primi link interessanti che ho trovato;

l'immancabile wikipedia
http://en.wikipedia.org/wiki/Physical_Address_Extension
e questa pagina di microsoft per il PAE nei sistemi server con link a pagine più dettagliate
http://www.microsoft.com/whdc/system/platform/server/pae/default.mspx
Io ho letto solo wikipedia e mi sembra abbastanza chiara a proposito.

Ciao.
ù
Fai bene perché ad una prima lettura sembra proprio che tu abbia ragione..anche se non ho ancora capito come funziona esattamente, devo leggerlo con più attenzione.
Grazie

EDIT linko questa discussione perché è interessante
http://www.hwupgrade.it/news/memorie/4- ... l#commenti

MessaggioInviato: gio dic 27, 2007 6:48 pm
da ninjabionico
Rieccomi...

... l'altro ieri stavo per postare un messaggio già scritto, quando ho perso la connessione per quasi 3 giorni.

-DrAma- mi sembrava che i documenti linkati fossero abbastanza chiari ed espliciti... ma hai continuato a fraintendere...

... come ha detto Aesir è il bus elettrico che limita fisicamente la memoria indirizzabile!!

Che poi chi realizza il Sistema Operativo decida di utilizzare un indirizzamento ridotto rispetto a quello indirizzabile per semplificare la programmazione del S.O. stesso e delle applicazioni, come ha fatto Microsoft, questo è un altro paio di maniche.

Quindi il limite dei soli 4 GB di memoria indirizzabile, come ti ho precedentemente postato, è un problema esclusivamente dei sistemi Microsoft a 32 bit (e Linux con kernel 2.2 o precedente, che ormai non usa praticamente più nessuno).

Ciao.