Linux Week 2008: Hilos Posix en Linux

Linux Week

    Los hilos son conocidos como procesos livianos, sin embargo; realmente no son procesos, Un hilo esta formado por un contador de programa, una pila, y un grupo de registros mientras que el resto de estructura de datos de la tabla de procesos pertenecen al proceso en sí. Los hilos son mas pequeños que los procesos (por eso se le conoce como "procesos ligeros o livianos") y su creación es mucho menos pesada.

    Un tema importante es saber que la concurrencia de los hilos genera problemas en el acceso a las variables globales que pueden ser modificados por varios hilos, por ejemplo: Suponemos que tenemos la variable global "a" como contador, a ésta variable le asignamos el valor 5 mediante el acceso de un hilo, finalizado el tiempo del hilo en el procesador queremos volver a acceder a esa misma variable "a" y sin embargo nos damos cuenta de que el valor asignado no es 5 sino ahora es 2, todo  esto porque otro hilo le asignó ese valor. Este problema de concurrencia puede ser controlado mediante la librería Pthreads, que a través de Semáforos Binarios y Semáforos Mutex nos permite gestionar el acceso a dichas variables globales para evitar problemas como el ejemplo mencionado anteriormente.