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: