Article View: es.comp.os.linux.programacion
Article #17491Re: Libreria de hebras para linux
From: Javier Cantero
Date: Tue, 21 Dec 1999 00:00
Date: Tue, 21 Dec 1999 00:00
73 lines
3738 bytes
3738 bytes
-----BEGIN PGP SIGNED MESSAGE-----
>>>>> El 20 Dec 1999 00:44:00 GMT, "oscar@server.enmicasa.dhs.org"
>>>>> nos contaba en es.comp.os.linux.programacion:
>> linux: pdthreads y linuxthreads. En la 2.0 no he visto que haya API de
>> threads integrado en el nucleo. En la 2.2 hay threads a nivel de nucleo,
>
>Lo he estado mirando. Las hebras en kernel de linux se hacen con la funci�n
>clone() (una variante del fork con m�s funciones).
>Esta funci�n estaba disponible ya en los kernels 2.0.
Tienes toda la raz�n. Hay que leerselo todo...
Del "Programaci�n Linux 2.0" R�my Card, Eric Dumas Franck M�vel
"3.3 Clonado"
"[...] Pero Linux ofrece una extensi�n que permite crear clones de procesos.
Un proceso clon se crea, por la primitiva clone(), por duplicaci�n de su
proceso padre. Pero, contrariamente a un proceso cl�sico, puede compartir
una o m�s partes de su contexto: [...]"
"[...] Esta posibilidad de clonado permite, entre otras cosas, implementar
servidores en los que se ejecuten varias actividades (threads). [...]"
>Eso si, la libc5 no ten�a librer�a de hebras posix compatible, que a su vez se
>apoya en esta funci�n del kernel. Para aquella libc, la librer�a estaba
>disponible como librer�a aparte (libpthread).
>A partir de la libc6, est� ya integrada si bien hay que linkar con la
>opci�n -lpthread.
>Un fallo es que las p�ginas de man de las llamadas a librer�as no incluyen
>estas funciones. Yo las he sacado del fuente de la antigua libpthread de
>una debian 1.3.1 (hamm), junto con algunos instructivos ejemplos.
Desde luego mirar directamente /usr/include/pthread.h no parece muy
instructivo (pero es the hackers' way ;-).
El n�cleo tiene unas cuantas funciones internas para manejar threads (a
un nivel muy b�sico por lo que parece).
eb2dsn:/usr/src/linux/arch/i386/kernel$ grep thread *.c
[...]
process.c:int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags)
process.c:void exit_thread(void)
process.c:void flush_thread(void)
process.c:void release_thread(struct task_struct *dead_task)
process.c:int copy_thread(int nr, unsigned long clone_flags, unsigned long esp,
process.c:void dump_thread(struct pt_regs * regs, struct user * dump)
[...]
Saludos de Javier Cantero
(mi email de verdad: jcantero at jet.es)
- --
"Tux les desea Felices Navidades"
"Felices Fiestas con Linux"
-----BEGIN PGP SIGNATURE-----
Version: 2.6.3ia
Charset: latin1
Comment: Clave publica via e-mail: envieme un mensaje con Subject: [PGPKEY]
iQEVAwUBOF9OMvcWKyXsT73ZAQEAXAf/U3Ro3bgg5ltus7M1NP/c5HV7s82VzFEE
RdlDKaJqezbh7hXv6VFbISAIP+5QMX04c0PjKeENGba0XEgNeDWn8gdqQfAqq+nu
DcRwYC05Y7W/H5TT1kSpB8F9+EQHVmWaR4jm11iY3g/b0TlTyzoI9awGhT62n+tF
eVLTLaa4/mlP5M1PgYtx8fkEbpd1I/LuD3ItYgMh6Mpvt99t5/k7aTmpI3jKkMt/
bKT3w1u3STYAWYvSTDtQx52SpFLlNUsZFw99otacTjK8h2PVfAxwJTGxr/S2zSTq
ymyNuNcuQFkUe3UAwr4t9FKPCAnx8W1D8RChFXdlu6LxhYXk6VXMwQ==
=nkRO
-----END PGP SIGNATURE-----
Technical Details
Message-ID:
<slrn85ujhc.13j.javier@eb2dsn.ampr.org>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<3858D474.DD1CCB60@uni-koblenz.de> <slrn85qnvh.va.javier@eb2dsn.ampr.org> <83ju4g$6u0$1@titan.bt.es>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,94595997a8039c20 X-Google-Attributes: gidf86c8,public From: javier@eb2dsn.ampr.org (Javier Cantero) Subject: Re: Libreria de hebras para linux Date: 1999/12/21 Message-ID: <slrn85ujhc.13j.javier@eb2dsn.ampr.org> X-Deja-AN: 563597496 Content-Transfer-Encoding: 8bit References: <3858D474.DD1CCB60@uni-koblenz.de> <slrn85qnvh.va.javier@eb2dsn.ampr.org> <83ju4g$6u0$1@titan.bt.es> Organization: Grupo de Usuarios de Linux de Alava <http://gula.jet.es/> Content-Type: text/plain; charset=iso-8859-1 User-Agent: slrn/0.9.5.3 (UNIX) Mime-Version: 1.0 Newsgroups: es.comp.os.linux.programacion