Erdeklodtem, hogy mitol tetu lassu a linuxom. Azt hittem a swap. Felvilago-
sultam, hogy nem. Kerdem, akkor mitol ?
>Megmondom. A swapping :) De nem a kernel logika a szuk keresztmetszet, hanem
>a diszk. Amikor a linker elkezd garazdalkodni, gyakorlatilag allandoan a
>diszket szekirozza, meghozza a legkulonbozobb teruleteit. Emiatt a fej
>allandoan ide-oda rohangal, mint az orult es ha a modemes programod (amit
>szepen kiswappelt) lapot ker, meg kell varnia az eppen fuggo seeket es utana
>a sajatjat is (1.5 seek ~ 30 ms.) Ezalatt egy 38K-s modemen tobb mint szaz
>karakter atcsurog.
Egyreszt, apro pontositas, hogy 38k az kb 4000 karakter/s, 30ms alatt ez
mintegy 15 karakter. Mindenesetre, a problemam a kovetkezo.
A gepben csak 12M RAM van (most meg :-) ). Namost, a swap ugyeben irtam egy
programot, ami igy szol: main() {for(;;);}. Remek, ez a program fut es ahogy
elvarjuk, a CPU-t lenyulja 100%-ig. Tovabba, 1 lapon elfer. Ezek utan irtam egy
masiat is:
char x[ 20*MEGABYTE ]; main() { for(;;) x[ random % (20*MEGABYTE) ]= random();}
Ez is lenyulna a CPU-t, de nem birja, mert swappol mint az orult. Igen am,
de az 1. program tovabbra is birja enni a CPU-t, amit a 100% kihasznaltsag
is mutat. Ha ezek utan a 2. program helyett jol elinditom a linkert, ami
egy 6MB-os object filet kell generaljon, akkor az 1. program akarhogy is
igyekszik, nem kap CPU-t. Sot, senki nem kap CPU-t. Az 1-es program nem igenyel
semmit, a nyomurult 1 text lapjan kivul, ami (amennyire tudom, a linux LRU
page szelekciot hasznal) soha nem kerulhet ki a diszkre, hiszen egyfolytaban
hozzanyul a program. De meg ha ki is kerul, ez az egy lap ha bent van eppen,
100% terkelest tud okozni a rendszeren. A terheles lemegy 15%-ra, vagyis
ez azt jelentene, hogy a legsurubben hasznalt lap az ido 85%-ban kint ul a
diszken. Ezt en nem hiszem. A kommunikacio pediglen nem modem, hanem a GDB
a target keszulekkel osszekotve. Az adatforgalom minimalis, a target idon-
kent felkuld egy csomagot, ami garantaltan nem tobb, mint kb. 200 byte.
Nem tudok pontos szamot, de azert a soros port interrupt buffere van vagy
2K (soha nem swappolva, kernel terulet) tehat ha ennel kisebb csomagban
karakter vesztes van, az az IT keslelteteset mutatja. Erre utal az is, hogy
a nem FIFO-s SIO-val a dolog sokkal rosszabb. A FIFO-s SIOban ugyebar 4 byte
a buffer, vagyis 38kbaud-on ez mintegy 1ms interrupt latenciat jelent.
Azert ez mar elegge sulyos dolog, meg ha nem real-time rendszerrol van is szo.
>Ez tevedes.
>Az applikaciod a resolv konyvtar-beli szubrutinokat hivja meg
>a gethostbyname() utan, mint res_mkquery() es tarsai.
>Ezek a fuggvenyek aztan elkuldenek egypar UDP csomagot kulonbozo name
>servereknek (melyek peldaul a named nevu implementaciot futtatjak).
>Esetleg eppen annak a gepnek is, amelyiken vagy. De ez erdektelen.
>A resolver es a name server ket total fuggetlen dolog.
>(Csak kenyelmi okokbol ugyanaz az ember fejleszti.)
>
>>aki az adott name lookup-ot csinalja mielott az en named-m cachelne, az most
>>minek a resze, az applikacionak, a standard konyvtarnak vagy a kernelnek ?
>
>Egy szep peldat latunk kliens-szerver alkalmazasra.
>A named nem konyvtar, kerem szepen.
Na jo. Legyen egy program ami igy nez ki:
MYDATATYPE a, b;
main()
{
read_input( &a );
process_a_to_b( &a, &b );
output_result( &b );
}
process_a_to_b( const MYDATATYPE *a, MYDATATYPE *b ) { <code> }
Ez ugyebar egy fuggvenyhivas, vagyis minden az applikacio resze.
Ezek utan tegyuk fel, hogy modositjuk a programot, egy fork()-ot
beleteve, a-t es b-t shared memoriba rakjuk es egy jopofa szemaforral
szinkronizalunk. Meg mindig egy applikacio. Rajovunk, hogy a shared
memoria helyett lehet pl. named pipe-okat alkalmazni, read() es write()
vonalon. Meg mindig 1 applikacio. Akkor viszont lehet kozottuk TCP is,
meg mindig ugyanaz az applikacio. Akkor viszont a process_a_to_b
legyen csak sima RPC, es akkor akar mar mas gepen is futhat. Ha meg reent-
ransnak is meg tudjuk csinalni, es elnevezzuk named-nek, akkor is csak egy
applikacio. Egy fuggveny, amit az RPC mechanizmussal erek el. Az, hogy a
parameteratadas regiszterben, stack-en, shared memoriaban, pipe-ban, vagy
az RPC mechanizmus alatt 20 masik szamitogepen keresztul, ketiranyu csomag-
adasvetel utjan tortenik, csak 'implementation detail'.
>Ezen az alapon a telnetd-t is nevezhetned konyvtari fuggvenynek,
>amit a tavoli gepen hivogat a tied.
Miert, ez az en szemszogembol nem igy van ? Ha NFS-en keresztul egy
file-ra kiadok egy read()-et, ez szamomra 1 darab fuggvenyhivas. Az, hogy
ez most hogy oldja meg az adat disk-rol az en memoriamba juttatasat, resz-
letkerdes. Ha azon a gepen futtatom, ahol a file-t tartalmazo disk van,
nem kell vegigmennem az egesz UDP dolgon, hanem helyileg tortenik minden.
Ha egy remote file-t olvasok, akkor annyi gepen megy at, amennyin akar,
mindenfele kliensekkel meg szerverekkel meg daemonokkal.
Ettol nekem ez az egesz, addig amig vissza nem tert hozzam csak egy
fuggvenyhivas volt. Nem erdekel, hogy a fuggveny milyen algoritmussal oldja
meg a problemat.
Teljesen bizonyos vagyok benne, hogy lehet erveket talalni arra is, hogy az
applikacio a kernel resze, esetleg pont forditva.
A', zavaros ez, draga Szilagyi ur ! :-)
Zoltan
|
>=======================================================
>Felado : [Hungary]
>Temakor: OS/2 install ( 29 sor )
>Idopont: Sat Apr 6 10:15:23 EST 1996 GURU #436
>- - - - - - - - - - - - - - - - - - - - - - - - - - - -
>
>Sziasztok GurUrak!
>
>Az OS/2 -t szeretnem installalni a gepemre, de a 2. (Disk 1) lemez
>olvasasa kozben a kovetkezo uzenet jelenik meg a monitoron:
>
>"OS/2 is unable to operate your hard disk or diskette drive.
>The system is stopped. Correct the preceding error and restart
>the system."
>
>A konfiguracio:
>
> 486 DX4 120 MHz (Ali chipset)
> Integralt EIDE
> 256 Kb cache, 8 Mb RAM
> S3 Trio 32 PCI 1Mb VGA vezerlo
> WD Caviar 850 Mb winchester
> Sony CDU-77E CD-ROM drive
> 1.2 es 1.44 floppy drive
>
>A gepen DOS 6.22 es WIN95 mukodik (ugy ahogy)
>A winchesteren egy pri. DOS es egy ext. particio ket log. drive-val.
>Mi lehet a gond? A CD meghajtora gondoltam, ugyanis nem szerepel a
>tamogatott hardverlistan. Ha szerzek hozza vezerlot menni fog?
>Vagy mashol keressem a hibat?
>Elore is koszi a valaszokat.
>
>Nagyhazi Csaba
Az EIDE-vel van a gond, de nem tudom, hogy mi. A kovetkezo modszernek
mukodnie kene. A Disk 1-en talalhato CONFIG.SYS-ben keresd meg a
BASEDEV=IBM1S506.ADD sort. Ird ele, hogy REM. Irj be egy uj sort (ha nincs
ilyen): BASEDEV=IBMINT13.I13. Ha igy is az elozo uzenetet kapod akkor az en
tudomanyom megallt. Ha tovabb megy, akkor ugyanezt a meg kell ismetelni a
HD-re felrakott CONFIG.SYS-en mielott az installacio masodik fazisa kezdodik
(amikor azt modndja, hogy inditsd ujra a gepet), valamint az installacio
legvegen is. Ezt lehet peldaul ugy, hogy amikor a Disk 1 vegen lehetove
teszi, hogy folytasd az installaciot, akkor mond, hogy nem akarod. Ekkor egy
OS/2-es command promptban leszel. A Warp Disk 1-en talalsz egy TEDIT nevu
egyszeru szerkesztot, amivel a CONFIG.SYS-t megszerkesztheted.
Ha igy mukodik a rendszer, akkor erdemes kideriteni, hogy mi a gond az
EIDE-vel, mert az IBMINT13.I13 meghajtoval a HD hozzaferes eleg lassu lesz.
Peter
|
>> We were using Samba to backup W95 PC's. All was well until we
>>started to install the patches supplied in ?service pack #1?.
>> On the computers that have these patches, I can not use the
>>smbclient application at all. The documentation of the patches talks
>>about blocking some of the functions that only Samba uses. In am
>>clueless as to what the really means.
>
>Ez azert elegge szep! Ugy latszik az M$ ugy erzi, hogy egy free software
>zavarja a vizeit, akkor jol bekavar neki. Mar volt par alkalom, hogy azen a
>listan ugykodok hivtak fel az M$ figyelmet, hogy itt-ott van bilgec a
>halozati programokban. Erre az M$ tobbnyire azt valaszolta, hogy szarul van
>megirva a samba. A leg szebb az volt, hogy megmutattak, hogy a samba
>klienssel hogyan lehet barmit leolvasni egy wfw 3.1x, vagy WinTavaly geprol,
>ha azon egyetlen share is van. Ugy latszik az M$-nel nem a server-nek kell a
>lehetseges tamadasokat kivedenie, hanem a kliensnek. Persze ez nezopont
>kerdese. Most meg ez is. Eddig sem csiptem az M$-t, no de ezutan ...
Egyetertek.
Marad a regi kliensek hasznalata. Lanmanager for dos,Wfwg,OS/2
--
Linux
Rulez!! Palko Zoltan
|