Nema Leke da se javi, a meni žao da propadne ovakva prilika za "flejmovanje" :) pa da opet dodam nešto.
Danas sam "kopao" po nekim knjigama o Unix/Linux network programiranju, pa sam našao jednu stvarno dobru: "Unix Network Programming" Richard Stevens. Evo link na stranicu sa podacima o toj knjizi, a može se naći i source za primere
http://www.kohala.com/start/unpv12e.html
U poglavlju 27 su dati razni pristupi projektovanju klijent-server aplikacija. Autor tvrdi da je fork-ovanje za svakog klijenta bilo prihvatljivo 80-ih, ali danas teško dolazi u obzir. Moderne Unix server aplikacije koriste "pool" - ove procesa, ili još bolje niti, koji se formiraju kod startovanja aplikacije, tako da nema potrebe da se forkuju procesi ili startuju nove niti za svakog klijenta. Jednostavno, to je preskupo, čak i na Unix-ima.
Nažalost, mnogi Unix programeri se tvrdoglavo drže fork-ovanja, neopravdano smatrajući da je to "jeftin" način da se opslužuju klijenti. Jeste jeftin u poređenju sa NT-om, ali je i dalje preterano skup.
Najzad, da ponovo pomenem IO Completion Ports, koji služe kao "psi čuvari" za niti kod NT server aplikacija i omogućuju optimalno korišćenje procesorske snage kod opsluživanja velikog broja klijenata. Priznajem da mi nije jasno zašto Unix-i nemaju tako nešto, tim pre što IOCP nije "izmišljotina" Microsoft-a. I drugi OS-ovi ga imaju (OS/400, VMS, na primer). Znam da je bio neki "patch" na Linux-u za IOCP, ali sam prilično siguran da nije uključen u kernel.