[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Los threads en linux



> -----Mensaje original-----
> De:	Antonio Castro [SMTP:acastro@ctv.es]
> Enviado el:	jueves 10 de febrero de 2000 9:49
> Para:	hcl
> Asunto:	Re: squid y reducir sus 18 hijos!!!
> 
> On Thu, 10 Feb 2000, hcl wrote:
> 
> > El Tue, Feb 08, 2000 at 02:40:21PM +0100, Antonio Castro dijo:
> > > On Mon, 7 Feb 2000, Hue-Bond wrote:
> > > 
> > > > El s=E1bado 05 de febrero de 2000 a la(s) 22:56:37 +0100, Manel
> Marin conta=
> > > > ba:
> > > > >
> > > > >Pues que estoy configurando el squid (prometo chuleta ;-)
> > > > > y me encuentro que se me come una barbaridad de RAM (tengo
> 32MBytes) con =
> > > > sus
> > > > > 18 hijos!!!
> > > > 
> > > >          Pero si son 18 hijos y ocupan  cada uno 20 Mb (en mi
> equipo) es
> > > >      evidente  que  estan compartiendo  la  memoria.  Supongo que
> algun
> > > >      programador nos podra hablar un rato de ello.
> > > > [....]
> > 
> > 
> >     Solo quiero añadir una cosa a lo que explicó Manuel  sobre  los
> procesos. 
> >  Que si los procesos se crearon como un thread y no con  fork()  los
> procesos 
> >  ademas  del  segmento  de  codigo,  comparte  completamente  el   de
> datos. 
> > 
> >     Podría ser el caso, dado el consumo  de  memoria  que  tiene  el
> programa 
> >  quizas el autor halla optado por usar threads en vez de  clonar  el
> servidor 
> >  con un fork().
> 
> Los threads generan procesos ? Estamos hablando de procesos con distinto
> PID.
> 
> Que alguien me aclare si los trheads en Linux generan procesos con PIDs 
> distintos yo jamás he programado con threads pero tenía entendido que la
> única forma de generar un nuevo proceso era mediante fork().
	Esta me la sé yo :) :
	En linux un thread es un proceso con todas las de la ley, lo que
pasa es que usa un fork especial (clone) que provoca que no se haga una
copia ni del texto (código) ni de los datos.

> Los trheads pensaba que eran hilos de ejecución distintos en paralelo
> dentro
> de un mismo proceso.
> 
	Eso es en windows, en linux los threads son procesos con
compartición de memoria automática (no mediante los mecanismos de shared
mem, sino con los que da el clone). Puede parecer que es una bestialidad
usar el método de creación de procesos para threads y que se trate a un
thread como a un proceso más, pero la cosa es que como linux tiene uno de
los métodos más ligeros de conmutación de procesos en comparación con los
Unix y con Win, parece que es bastante eficiente.

	Claro, que estoy hablando de los threads a nivel de kernel (threads
nativos), no a nivel de usuario (hay librerías que implementan threads a
nivel de usuario).

> Saludos 
> 
> Antonio
> 
> +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+-
> -+
>         /\     /\                     Ciberdroide Informatica (tienda
> linux)
>           \\W//                             http://www.ciberdroide.com 
> 	 _|0 0|_                                                    
> +-oOOO--(___o___)--OOOo--------------------------+ 
> |  . . . . U U . . . . Antonio Castro Snurmacher |  
> | http://slug.ctv.es/~acastro.    acastro@ctv.es | 
> +()()()----------()()()--------------------------+
> +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+-
> -+
> (((Donde Linux)))    http://www.ciberdroide.com/misc/donde/dondelinux.html
> +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+-
> -+
> 
> 
Antonio Tejada Lacaci		atejada@bancamarch.es
Depto. Análisis y Programación
Banca March S.A.


Reply to: