win95 swap a ramdrive-ban
Auth Gábor
franko at mail.rgstudio.hu
Tue Jul 15 13:58:15 CEST 2003
Halihó!
2003. július 15. 14.33 dátummal VF ezt írta:
>> Az OS MMU része azért is érdekes ebből a szemponból, mert a
> Igaz, de a proci MMU resze ugyanaz, csak ezt cacheli.
> Kulonben lehetne minden egyes memoriamuveletnel a kernellel fordittatni
> a cimet, kegyetlen lassu lenne.
A címfordítás nem kernelszintű szokott lenni, hanem egy-két szintű TLB
táblákon át. Aminek fizikai címen van helye, a processzor MMU egysége ezt
használja, ezt pedig a kernel írja-olvassa. Nincs másolat. Az MMU egy
egység, ami használja a TLB táblákat. Mind a processzorban, mint a
kernelben.
> Ehelyett az egyszer hasznalt lap bekerul a proci hardveres
> MMU-tablajaba. Termeszetesen minden context
> switchkor ki kell pucolni onnan, mint a sima data es instruction
> cache-t is.
Egyre zavarosabb, amit írsz.
>> Másrészt a címtartomány nagyon nem egyezik. Fájlrendszerben lazán
>> kezelünk jelenleg egy fájlszerveren ~2TBájt kapacitást hardveres
>> RAID5 tömbökből szoftveresen összefűzött (VVM modullal kezelt)
>> egybefüggő tárhelyet. Sem a processzor, sem az oprendszer MMU táblája
>> nem képes ekkora címtartományt kezelni 32 bites rendszeren. Így nem
>> is lenne képes visszatölteni a kilapozott programkódot a lemez
>> bármelyik részéről.
> Ez attol fugg, mert az x86 szegmenses felepitese pl tudna, csak ezer
> mas baja van.
Nem feltétlenül x86-ról van szó. Az összes 32 bites rendszerről.
> Egyebkent pedig csak processenkent kell szamolni a 4G
> limittel, a sok process memoria-hasznalata egyutt tullepheti a 4G-t
> siman. A VMS valamelyik verzioig 1G-t adott egy processnek, az ujabbak
> mar 4G-t.
De akkor sem képes megcímezni 2TBájt tárterületet fájlrendszerkezelő
alrendszer nélkül. Márpedig nem használhatja, mert fájlrendszerhiba
esetén könnyen deadlock-ba kerülhet a kernel. Ezért a swap partíció és
swap fájl egyedi fájlrendszerrel rendelkezik, nem lehet töredezett és nem
lehet olyan fájlrendszeren, amihez a lapozás során más alrendszerenek is
bele kell szólnia.
> Ha ilyen nincs benne, relokalasra nincs szukseg. Pl C64 basic, CP/M,
> DOS, VMS, talan a windows is?
CP/M esetén volt relokálás, DOS esetén .com fájloknál nem volt, .exe
fájloknál igen, VMS-t nem tudom, Windows esetén mindig van relokálás.
>> Elhiszem, hogy egy évtizedes VMS rendszer esetleg így csinálta, de
>> most a nagygépes rendszereknél az igények és a lehetőségek
>> túlhaladták ezt a módszert.
> Inkabb a lehetosegek :) Mert igeny lenne ra, sokkal hatekonyabb.
> Most adott esetben egy nagy file inditasa egy vinyorol vinyora torteno,
> logikailag felesleges masolassal kezdodik, ami agyrem.
Nem másol... betölt... mindig, aztán ha nem kell, kiteszi swap-re.
Egyszerűen az adatmozgatás annyira megnőtt, hogy a program betöltése
elhanyagolható idő lett az adatok betöltése/kiírása mellett. Például a
memóriában 5M programkódhoz tartozik átlag 512M adat, nagygépes
rendszerben SQL adatbáziskezelőnél. A lemezen ugyanez 5M / 20-30G arány
lesz. 100-150-300M/s adatátvitel mellett kit érdekel, hogy 1M
programkódot swap-ről olvas be, vagy eldobja és megkeresi a
programfájlból? Egyszerűen túl nagy rizikó az utóbbi.
10 éve nem így volt, de most ez a helyzet.
--
Frank O'Yanco -=- Mobil +36-70/312-1856 +36-30/368-7792 -=- ICQ: 49179141
FreeBSD (current stable branch) - Toshiba Satellite 1410
Key fingerprint E99D 1A55 0DF2 3AAC 2A15 FD55 0D71 B88D 35E5 C50D
More information about the Elektro
mailing list