Publicidad
Publicidad

RSS Introducción al multiprocesamiento en C++

Introducción al multiprocesamiento en C++ IV: sincronización con Mutex

Comentar
Introducción al multiprocesamiento en C++ IV: sincronización con Mutex

addEventListener('load', function (event) { prettyPrint() }, false);

Después de un breve descanso veraniego, hoy vamos a continuar con la serie introducción al multiprocesamiento en C++. En esta cuarta parte vamos a crear un wrapper alrededor de algunos mecanismos de sincronización.

Más específicamente vamos a crear una clase alrededor de la primitiva de sincronización mutex que ya vimos en el primer artículo de la serie.

Para nuestro wrapper sencillo alrededor de los threads vamos a utilizar solo mutexes por que creo que es lo único que vamos a necesitar.

Leer más »

Introducción al multiprocesamiento en C++ III

6 Comentarios
Introducción al multiprocesamiento en C++ III

addEventListener('load', function (event) { prettyPrint() }, false);



Anteriormente hemos aprendido a levantar un thread y crear un proxy de datos alrededor del puntero a la función correcta que pasar a la función de creación en Windows y UNIX. En esta introducción al multiprocesamiento en C++ III vamos a acabar de desarrollar nuestro wrapper alrededor de la librería nativa en C.

Hasta ahora hemos visto que las dos APIs (Windows y UNIX) difieren bastante entre si, y esa es la tónica general cuando queremos utilizar theads en aplicaciones multiplataforma. Aunque existen implementaciones muy buenas (y por supuesto mucho mejores que esta) nunca está de más trastear un poco con las librerías del sistema.

Leer más »
Publicidad

Introducción al multiprocesamiento en C++ II

1 Comentario
Introducción al multiprocesamiento en C++ II

addEventListener('load', function (event) { prettyPrint() }, false);

En el post anterior hemos hablado sobre los conceptos teóricos del multiprocesamiento. En esta introducción al multiprocesamiento en C++ II vamos a empezar a meterle mano al código desarrollando una serie de clases que sirva como wrapper sobre las librerías nativas de subprocesos en C de UNIX y Windows

Como ya vimos anteriormente, la API y la implementación del sistema de subprocesos difieren en UNIX y en Windows. Si queremos desarrollar aplicaciones portables entre ambas plataformas, hemos de desarrollar algún tipo de wrapper alrededor de las librerías nativas escritas en C en ambas implementaciones para que la lógica adyacente quede oculta y encapsulada detrás de nuestras interfaces.

Leer más »

Introducción al multiprocesamiento en C++

12 Comentarios
Introducción al multiprocesamiento en C++



El multiprocesamiento es una característica de la programación de sistemas imprescindible hoy en día, y aunque existen mecanismos alternativos a la creación de hilos de ejecución para ciertas tareas como las llamadas al sistema para operaciones de Entrada/Salida que pueden ser ejecutadas de forma asíncrona con IOCP en Windows, EPOLL en Linux y KQUEUE en otros Unix, el multiprocesamiento puede ofrecernos muchas ventajas sobre todo con los procesadores multi núcleo de los que hoy disponemos.

Como no podía ser de otra manera, y para ponernos las cosas más difíciles, UNIX y Windows implementan su paquete de subprocesos y su API de forma diferente. Existen algunas diferencias a nivel de implementación entre una y otra de las que no voy a hablar en esta Introducción al mutiprocesamiento en C++ pues sobrepasa el objeto de esta entrada.

Linux, al igual que otros UNIX, implementa el paquete de subprocesos POSIX 1003.1c estandarizada por el IEEE como parte de los estándares POSIX. Los subprocesos POSIX se conocen comúnmente como pthreads y en Linux podemos referirnos a ellos como Native POSIX Threads Library (NPTL) o pthreads de forma indistinta, estamos hablando del mismo paquete.

Leer más »
Publicidad
Inicio
Inicio

Ver más artículos