Keresés

Aktív témák

  • Alan

    aktív tag

    válasz Auslander #53 üzenetére

    Szia Ausländer! Köszi szépen az elismerést :)

    Hát persze, nyilvánvaló, hogy szinte semmit sem az ujjukból szopnak a fejlesztők, mindennek van előzménye. A VMS-t én annyira nem ismerem, bár azt az egyet tudtam, hogy a munkakészlet onnan ''származott át''.

    Nem vagyok biztos benne, hogy a flat modell előnyösebb lenne a szegmentáltnál. Utóbbinál pl. viszonylag egyszerűen lehetne memóriamegosztást biztosítani két process között. Ez flat modellnél nem egyszerű. (jojo, használhatom a kernel memory space-et, de ez nem szép))

    Ízlések és pofonok, szerintem kifejezetten jópofa megoldás, hogy ha kernel vagy, minden folyamat címterében ugyanott találod a cuccaidat :)

    Memóriamegosztáshoz nem is kell a kernel címtere, erre ott vannak a prototípus-laptáblabejegyzések, amikkel hatékonyan, 4K-nként lehet megosztani a memóriát.

    Én egyébként korábban Motorola processzorokat programoztam, és a szegmentálástól a mai napig kiráz a hideg... A szegmentálás és a lapozás együttes használatánál valószínűleg sokkal lassabb lenne a címleképzés TLB miss esetén, de egyéb más okát nem tudom, miért nem használja a Windows (sem). De ennek speciel örülök, sosem firtattam mélyebben a dolgot :).

    Hogy kell Non Pagable memóriát allokálni Windowsban? És lehet-e kérni, hogy ez ki legyen már nullázva? VMS alatt ez működött. Erős a gyanúm, hogy Windows alatt is mennie kell valahogyan. Jó lenne, ha nem nekem kellene ezzel foglalkozni. A rendszernek van elég ideje, hogy nullázgassa a lapokat.


    VirtualAlloc() vagy VirtualAllocEx(), majd VirtualLock(). Az egy folyamatnak biztosított non-paged pool alapértelmezésben nagyon kicsi (~30 lap), ezzel a fajta foglalással vigyázni kell, nem biztos, hogy sikerül. Mihez kell neked nem lapozható memória? Drivert írsz?

    Egyébként mindig kinullázott memóriát kapsz, bármit is csinálsz (ez C2-es biztonsági követelmény), kivéve, ha saját magad által korábban használt lapot kapsz vissza, az nem biztos, hogy ki lesz nullázva (de ez nem is biztonsági rés).

    Az Intel adottságai miatt ez lehetne akár 4MB-os page is. No jó, csak a 386-osoktól kezdődően

    Hm, élvezetes is lenne végigülni egy-két egészséges belapozást 4 megás lapoknál :D Egyébként AMD Athlonnál lehet 2MB-os lapokat is kérni, de ez a gyakorlat tudtommal nem nagyon terjedt el. Tudom, a Windowsnál lehet kérni, hogy a kernel egy részét tegye 1 db nem lapozható 4 MB-os lapra, fejből már nem emlékszem, hogyan, de a registry-ben külön kézzel kell beállítani. A SlotA Athlonok ezen a téren pont hibásak voltak és ezt nem volt szabad rajtuk bekapcsolni, különben jött a kék halál.

    Ja, és annak idején a Motorola 68030-nál 0,5 és 32 KB között lehetett állítani a lapméretet.

    Tíz másodperces néma főhajtás a Motorola 680x0 sorozat emlékére. A legjobb processzorok voltak.

    Az e-mail címemre küldhetsz kérdést, persze, de jobban örülnék, ha itt a fórumon megbeszélnénk az érdekesebbeket.

  • steveetm

    őstag

    válasz Auslander #53 üzenetére

    Ha nem gond neked és alannak se, jöhetnének ide a kérdések(+válaszok), legalább mások is tanulhatnak belőle. sztem.
    Üdv.: steveetm

Aktív témák