Memorijska ograničenja na 32 bitnim sistemima

Discussion in 'Operativni sistemi, aplikacije i programiranje' started by GW, Oct 27, 2008.

  1. GW

    GW Moderator

    Vidim da dosta ljudi ne razumije problem 32-bitnih sistema i limita sa memorijom, pa reko da malo pojasnim i ujedno smanjim broj pitanja na ovu temu i pogrešnih odgovora. Da ne bih previše zakomplikovao i pretvorio post u knjigu, generalno ću samo pisati o windows-u (Linux-aši ovo vjerovatno znaju :) )Idemo laganim tempom...

    32 bitni sistem - koristi podatke u 32 bitnom formatu (memorijske adrese, registre, instrukcije)

    64 bitni sistem - koristi podatke u 64 bitnom formatu (memorijske adrese, registre, instrukcije)

    PAE (Physical Address Extension) - funkcija x86 procesora koja omogućava korištenje više od 4 GB memorije, postoji u procesorima od Pentium Pro arhitekture (36 i 40 bitna). Podržana je u 32 bitnim Windows-ima.

    4GT (4-Gigabyte Tuning) - funkcija Windows-a koja mijenja omjer korištenja memorije u korist aplikacija (3 GB) nauštrb operativnog sistema ( 1GB)

    Swap file (page file) - fajl koji Windows koristi da bi aplikacijama dao iluziju da se izvršavaju u RAM-u iako zapravo tamo ne mogu stati zbog nedostatka istog. Swap file je dobar zato što omogućava praktično bilo kojoj aplikaciji da se koristi na bilo kojem računaru. Negativna strana je što je hard disk ili flash memorija na kojoj se nalazi swap file nekoliko redova veličine sporiji od RAM-a pa dolazi do značajnog usporenja rada (npr. tipičan HDD čita podatke brzinom 60 MB/s, a tipičan RAM 6000 MB/s, to znači da je RAM 100 puta brži!)

    AWE - funkcija Windows-a koja omogućava aplikacijama da koriste više od 4 GB memorije, moguća je korištenje samo za aplikacije koje su napravljene da iskoriste ovu funkciju

    Glavna razlika između 32 i 64 bitnih Windows operativnih sistema je u maksimalnoj količini memorije koju mogu adresirati/koristiti.
    32 bitni Windows-i (bez obzira na verziju) mogu teoretski koristiti maksimalno 4 GB memorije. Izuzetak su specijalne verzije koje mogu koristiti manje (npr. Vista Starter može koristiti samo 1 GB , XP Starter samo 512 MB).
    64 bitni Windows-i se razlikuju od verzije do verzije i mogu koristiti:
    -Windows XP - 128 GB
    -Vista Ultimate - 128 GB
    -Server 2008 Enterprise - 2 TB
    ... puna lista je ovdje.
    Limiti za 64 bitne Windows-e su prilično visoki ali su vještački ograničeni. 64 bitni sistem teoretki može koristiti 16 EB (exabyte) memorije (otprilike 17.2 milijarde gigabajta).

    Kako vidite zasad u 64 bitnim verzijama Windows-a praktično nema ograničenja jer su limiti postavljeni visoko. Problem je naravno u 32 bitnim verzijama jer je 4 GB memorije odavno postalo malo u serverskom svijetu, a nedavno i na desktopu. Dalje, tih 4 GB memorije Windows dijeli na 2 dijela. Pola (2 GB) može program koristiti, a pola (2 GB) koristi Windows. Treba spomenuti da u slučaju kada nije dostupno 4 GB RAM-a, Windows koristi swap file degradirajući performanse ali omogućavajući izvršavanje zahtjevnih aplikacija. 32 bitni Windows-i omogućavaju korištenje više od 4 GB memorije ali to zahtjeva podršku u procesoru (PAE), podršku u Windows-u (AWE), podršku u aplikaciji. Ova funkcija nije 100 % iskoristiva zbog nekompatibilnosti sa raznim softverom (primarno driverima).

    I ovdje polako dolazimo do problema "Windows mi prepoznaje samo 3.2 GB RAM-a". Zašto se to događa? Zato što kada imamo 4 GB RAM-a, taj prostor efektivno postane sva memorija koju je sistem u stanju adresirati (koristiti). Kako u računaru imamo uređaja koji imaju svoju memoriju ili im treba memorija ( grafičke kartice, BIOS, chipset, PCI sabirnica, APIC...), ta memorija se mora mapirati u glavnih 4 GB da bi uređaji mogli funkcionisati ( da bi procesor mogao sa njima komunicirati). Onda se redom sabira sva memorija tih komponenti i oduzima od RAM-a. Koliko ostane zavisi od konkretne konfiguracije i komponenti u računaru. Tipično varira od 2.5 GB do 3.5 GB. Upravo zato nema smisla stavljati 4 GB RAM-a u 32 bitni sistem jer on ne može iskoristiti sav RAM. Zapravo može i koristi sav RAM ali ne za ono što hoće korisnik (aplikacije, igre...). :D
    Preporučljivo je koristiti 3 GB u obliku 4 pločice memorije po 1 GB ili 2x1GB i 2x512 MB da bi se iskoristila dual channell mogućnost chipset-a ( brži rad RAM-a). Može i 2x2GB. :)

    Razlika između 32 bitnih Windows XP-a i Viste je u tome što XP prijavljuje samo RAM koji se može koristiti, a Vista RAM koji je instaliran bez obzira što ga ne može koristiti za ono što hoće korisnik.

    Što se tiče 64 bitnih sistema, trenutno ograničenje nije kako smo vidjeli ni u Windows-u, ni u procesorima (40 ili 48 bitno adresiranje) nego u chipset-u i matičnoj ploči. Zašto? Jednostavno zato što je jeftinije proizvesti ploču/chipset/procesor koji ima manje žica koje vode do memorije.
    Trenutni chipset-i mogu koristiti do 64 GB RAM-a (za konkretnu količinu pogledajte uputstvo od ploče), ali treba znati da proizvođači ploča ne daju uvijek podršku za sav RAM koji je chipset u stanju koristiti (opet pogledati u uputstvo od ploče).

    I to bi bilo to. Ako neko ima pitanja, neka pita, je li. :D


    Informacije sa (i ujedno štivo za one koje ova tema zanima):
    http://blogs.technet.com/markrussinovic ... 92070.aspx
    http://support.microsoft.com/kb/929605/en-us
    http://msdn.microsoft.com/en-us/library/aa366778.aspx
    http://en.wikipedia.org/wiki/32-bit
    http://en.wikipedia.org/wiki/64-bit
     
  2. ReNNo

    ReNNo Overclocker

    Dosta se ljudi zbunjuje oko ovoga ili pogrešno nešto shvati.
    Mislim da će ovo mnogima pomoć.

    Dobro urađeno GW.
     
  3. Vedo

    Vedo Moderator


    Kako ovo mislis?

    Super clanak, sve pohvale :smt006
     
  4. Dog_Father

    Dog_Father Moderator

    Tako sto ces imati dvije ploce sa istim chipsetom, a opet koji ce imati razlicite cifre pod kolicinom maksimalno podrzane memorije.
     
  5. Vedo

    Vedo Moderator

    Ahaaa, thx DoŽe :D
     
  6. Qler

    Qler Veteran foruma

    ja imam 2x2GB zbog dual chanella. bilo bi bezveze uzeti manje kad je vec ovkao jeftin ram. a i bio sam jedno vrijeme na xp-u 64bit.

    mene zanima jedna stvar, ako windows ne moze vise adresirati od 4GB sto pravi problem kada mu ugasim page file. nisam nikada ja licno gasio ali sam cesto nailazio na neke textove gdje to ljudima pravi problem. ako ja imam navise sto on moze vidjeti, sto ce mu PF?
     
  7. GW

    GW Moderator

    Ovo moje objašnjenje je prilično ograničeno, realna situacija koja se odvija u računaru je puno komplikovanija. Ukratko, page file je virtualna memorija koja se koristi kad nema više RAM-a. Kad imaš nekoliko aplikacija koje mogu koristiti po 2 GB memorije, jasno ti je koliko takvih može stati u RAM. U toj situaciji Windows prebaci komade nekorištene aplikacije na disk u virtualnu memoriju da bi se neka druga aplikacija mogla izvršiti. Kada se prva aplikacija počne ponovo izvršavati, mora se vratiti u RAM... druga ide u page file itd. Nadam se da ti je sada jasno.
     
  8. Qler

    Qler Veteran foruma

    sad je jasnije, nisam nesto puno ni razmisljao o tome, jednostavno me zanimalo. znaci on moze vise aplikacija po 2GB uzeti...
     
  9. HamziBeg

    HamziBeg Komšija

    Nadam se da kolega GW neće zamjeriti na par sitnih dopuna:
    4GT (4-Gigabyte Tuning) nisam čuo za ovaj termin, ali jesam za objašnjenje. U normalnim okolnostima Win uzima (uvijek) do 2GB dostupne memorije za potrebe uređaja i njihovih drajvera. Ali ako dodamo /3G switch (Desni klik na My Computer -> Advanced -> Startup & Recovery -> Settings -> Edit na kraju imena vašeg sistema i već postoječih switch-eva dodajte /3G) stjerat će potrebe kernela na 1GB a ostatak memorije prepustiti korisniku i aplikacijama.
    PAE - isto switch dodaje se na isti način kao /3G. PAE i 3G ne bi smjeli zajedno biti uključeni, jer sistem može biti nestabilan.
    PAE - dozvoljava samo adresiranje 4GB memorije odjednom, a druge tehnike su potrebne (kod Windows-a) da 32bit-ne aplikacije pristupe večim količinama memorije (http://en.wikipedia.org/wiki/Address_Wi ... Extensions)

    Iskorištavanje memorije preko 4GB postoji i prije pojave 64bit sistema (Win Server 2003 Ent. R2 može 64GB a 64bit verzija do 2TB) samo je ta opcija (kao i mnoge druge) izostavljena iz XP-a.

    No sada imamo 64bit hardware i 64bit OS, ali je Softwerska podrška jadna. Memorija je praaavo jeftina pa se 8GB može uzeti ispod 200 KM. Ali je jadno npr. da jedan Adobe ne može napraviti 64bit verziju Flash playera, pa sa 64bit Firefox-om mogu zaboraviti YouTube i slične servise gdje je Flash neophodan, i slično...)

    Vjerujem da je sa današnjim hardwerom lopta bačena na stranu programera, da to adekvatno i što oblje iskoriste, nemaju više povoda da išta prebacuju HW-u :D

    EDIT: Nema ispravki, samo sam se nadovezao ;), Good work GW
     
  10. GW

    GW Moderator

    Ne znam šta si me ispravio. Više mi se čini da si proširio moje informacije. Objasni mi malo šta se ne slaže između mojeg i tvojeg posta da uskladimo informacije (meni previše mrsko čitati svoj post ponovo).
     
  11. frenki_23

    frenki_23 Aktivista

    mislim da je logicno da xp 32bitni je namjesten da moze koristiti max 2 Gb rama po aplikaciji. jer je namjenjen za kucne korisnike. a evo npr. poceo sam prije nekolio dana da koristim xp x64 i nisam se susteo ni sa jednim problemom u radu. drajveri svi rade i programi izuzev toga sto sam morao nabaviti autocad za x64 software. sve u svemu ja sam zadovoljan. a znajuci kolika je cijena server 2008 mislim da i nije za nas. :D
    i GW super tekst. svaka cast.
     
  12. tarankula

    tarankula Aktivista

    ahhh ja ovo nerazumijem,nea veze,3.2gb mi ostaje onda :(
     
  13. GW

    GW Moderator

    I da razumiješ, ne bi mogao povećati tu brojku.
    Jedini način je 64-bitni OS.
     
  14. tarankula

    tarankula Aktivista

  15. Vedo

    Vedo Moderator

    to je vjerovatno 3GB switch, svejedno, 32bitni OS vidi te 4 GB al opet ima limit od 2 GB po aplikaciji. Predji na 64bit, ne gubis nista.
     
  16. dino73n

    dino73n Veteran foruma

    Što Vedo kaže 32bit OS ima limit od 2GB po aplikaciji i džaba mu da ima 32gb memorije ne moze je upotrebiti,vidim lagano izumiranje 32bitnog sistema.Kako vrijeme odmiče ako niko drugi igre će biti te koje će tražiti više rama i polako natjerati korisnike da pređu na 64bit OS-ove.
     
  17. GW

    GW Moderator

    Naravno da sam siguran.
    Tekst na tom linku je pun gluposti. Čovjek nema pojma o čemu priča.
    Ti si još smješniji. Prvo kažeš da ne razumiš šta sam napisao, pa mi onda daš nekakav članak koji nema veze s vezom kao neku kontru.
     
  18. tarankula

    tarankula Aktivista

    ma stavio bih ja 64 bit,al kad sam vidio da kod jarana nemoze da pokrene pola igri sa 64OS e onda sam vidio da je to njesra
     
  19. Vedo

    Vedo Moderator

    jaran ti je njesra. Nema te igre u zadnjih 10 god da je izasla a da ne radi na 64bit OSu. Ovo iz licnog iskustva tvrdim.
     
  20. tarankula

    tarankula Aktivista

    e steta je sad moja sto se prija nisam raspito,sad bih ga ja odma stavio,ali nesmim i nemogu,jedva me buraz pustio da stavim w7,i plus sad sam stavio oko 30-40 igri na hdd,ma ono baš nea šanse :(