Hirdetés

Új hozzászólás Aktív témák

  • brd

    nagyúr

    válasz zolee001 #50290 üzenetére

    Tudom, régi hozzászólás, meg talán te már nem is olvasod, mert olyan "mindenkinélmindentjobbantudok"-figurának tűnsz, de ne maradjon már így itt ilyen súlyosan hibásan.

    A modern operációs rendszerek (az összes?, úgy 2x éve legalább) úgynevezett virtuális memóriakezelést használnak. Ez többek között azt jelenti, hogy egy felhasználói program nem fizikai címeket használ, hanem az OS-től kell kérnie memóriát a virtuális címtartományból és azt tudja felhasználni. Ami röviden/egyszerűsítve úgy működik, hogy az OS lefoglal a virtuális címtartományban az adott program számára egy részt, amit a program úgy lát, hogy az csak az övé (pontosabban lehetnek shared területek is, de a részleteket most hagyjuk), majd az OS a memóriaműveleteknél ezeket lefordítja a valós fizikai címekre. Amely fizikai címek persze nem mindig ugyanazok, mert ezt a megfeleltetést dinamikusan tudja változtatni, ezért tudja pl. lapozófile-ba is kitenni a virtuális memória egyes részeit - kiírja a file-ba az adott memóriarészt, majd a megfeleltetési táblában rögzíti, hogy az adott virtuális memória page a pagefile-ban foglal helyet. Erre a kiosztott részre (részekre, lásd később) vonatkozik a 4 GB-os korlát - alapból 2 GB a user terület és 2 GB a kernel terület (ezt lehet egy kapcsolóval 3/1-es felosztásra módosítani, de ez nem javasolt). Ez a 2GB user terület viszont processenként értendő. Ezzel a már tárgyalt PAE/4GB+ fizikai RAM kezelés nem kezd semmit. Amit azok csinálnak, az az, hogy a virtuális memóriakezelő tudja kezelni a fizikai memória terén a 4GB-nál nagyobb címmel bíró részeket is. Az OS memóriakezelője által létrehozott virtuális címtartomány egy alap XP-nél, 4GB fizikai RAM esetén is már lehet nagyobb, mint 4GB (ha a fizikai RAM+pagefile nagyobb ennél és le is van foglalva ennyi memória), ezt pl. egy AIDA-val is meg lehet nézni: Motherboard/Memory/Virtual Memory Total). Tehát minden process tud kapni a virtuális memóriából egy max. 2 GB-os saját címteret, amelyet a fizikai memóriában a virtuális memóriakezelő a saját kénye-kedve szerint tud szétosztani. Így van értelme pl. a 8GB-os fizikai RAM kezelésnek XP-ben, mert így lehet futtatni egyszerre pl. 3 db, egyenként 2 GB memóriát használó process-t (ami összesen tehát 6 GB) úgy, hogy a pagefile akár ki is lehet kapcsolva, tehát el kell férnie a fizikai RAM-ban az összes lefoglalt memóriának.

    #50293:

    (A program összeomlások stb mint emlitettem azért adódhatnak mert a 2gb+ meghaladó limitet a programnak is támogatnia kell (ene),attól,hogy az oprendszer kezeli a 32 bites cimkiosztási tartományon tul a memoriát az alkalmazás még nem feltétlenül).

    Jó lenne, ha a hivatkozott leírást te is elolvasnád, mert az ok nem ez, hanem az, hogy a driver készítőknek kellene (kellett volna annak idején - mert ma már nem sokan fognak XP drivert írni) felkészülnie a PAE/4GB+ helyzetre, mert mint lásd fent, a programokat ez teljesen hidegen hagyja, mert a műtött file-ok azon nem módosítanak, hogy egy-egy process mennyi memóriát kaphat a virtuális címtartományból, az marad 2GB és ez a saját címterületüket határolja be, nem azt, hogy ez a max. 2GB a fizikai RAM-ban éppen hol helyezkedhet el.

    The only real valuable thing is intuition.

Új hozzászólás Aktív témák