Hilos

Páginas: 13 (3076 palabras) Publicado: 11 de agosto de 2014
Introducci´n a los Hilos en Linux
o
Horacio Goetend´ Bonilla
ıa
12 de diciembre de 2003

´
Indice
1. Conceptos
1.1. Proceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2. Hilos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2
2
2

2. Los hilos Posix
2.1. Como compilar un programa con pthreads . . . . . . . . . . .

3
5

3. Problemas deconcurrencia de los hilos
3.1. Modos de prevenir el problema de la concurrencia en los Hilos
Posix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.1. Funci´n de inicializaci´n de mutex . . . . . . . . . . .
o
o
3.1.2. Funci´n de petici´n de bloqueo . . . . . . . . . . . . .
o
o
3.1.3. Funci´n de liberaci´n de bloqueo . . . . . . . . . . . .
o
o
3.1.4. Funci´n deliberaci´n de memoria . . . . . . . . . . .
o
o

5

4. Ejemplos:

7

5
6
6
7
7

5. Algunos problemas
5.1. Posibles soluciones al problema del deadlock . . . . . . . . . .
5.1.1. Sem´foros recursivos . . . . . . . . . . . . . . . . . . .
a

9
10
10

Bibliograf´
ıa

11

1

1.
1.1.

Conceptos
Proceso

Un concepto fundamental en todos los sistemas operativos es el deproceso. Un proceso es sucintamente un programa en ejecuci´n. Que est´ conforo
a
mado de un programa ejecutable, sus datos, pila ,contador y otros registros.
En un sistema operativo multitarea todos los procesos existentes se turnan
para el uso del recurso m´s preciado en el computador; el CPU. Cada vez
a
que el tiempo de uso del CPU termina para un proceso, este debe de volverse
ainicializar en el mismo estado que se encontraba al detenerse, con lo cual
inferimos que la informaci´n restaurada para el proceso debe de almacenarse
o
en alg´n lugar.
u
En Linux la informaci´n relativa al proceso ”suspendido”distinta del cono
tenido de su propio espacio de direcci´n se almacena en una tabla; a esta
o
tabla se le denomina tabla de procesos, la cual es una lista enlazada deestructuras para lo cual cada estructura es para cada proceso existente en ese
instante.
Partes de un proceso suspendido:
Espacio de direcci´n (Imagen)
o

1.2.

Estructura en la Tabla de Procesos

Hilos

Los hilos son conocidos como procesos ligeros. aun que no son realmente
procesos. Un hilo es esencialmente un contador de programa, una pila, y
un conjunto de registros, el resto deestructuras de datos de la tabla de
procesos pertenecen al proceso. Un proceso es modelado como una tarea
con un simple hilo. Como los hilos son m´s peque˜os comparados con los
a
n
procesos, la creaci´n de un hilo es relativamente menos pesada. Por ejemplo
o
cuando un proceso sen intercala con otros para usar la CPU ese tiempo de
cargar y descargar los datos de las respectivas estructuras de latabla de
procesos(tiempo de contexto) es mucho m´s pesada para un proceso que
a
para un simple hilo. Es por eso que un hilo es considerado como un proceso
liviano por que su cambio de contexto solo consta b´sicamente en cambiar un
a
registro contador. Una manera gr´fica de este concepto lo podemos observar
a
en la Figura 1
Por lo tanto los hilos nos dan la posibilidad de escribiraplicaciones concurrentes que se pueden ejecutar tanto en sistemas monoprocesador como
multiprocesador de forma transparente, obteniendo un aumento de rendimiento considerable cuando se encuentran disponibles procesadores adicionales.
Adem´s, los hilos pueden incrementar el rendimiento en un entorno monoa
procesador cuando la aplicaci´n realiza operaciones t´
o
ıpicas de bloqueo o
produce retrasos,como E/S de ficheros o sockets.

2

Programa con dos hilos

Programa con un hilo

Un hilo que
secuencia cada
instrucción
del programa

Lineas de instrucciones del programa

2 hilos que
secuencian
instrucciónes
del programa

Lineas de instrucciones del programa

Figura 1: Los hilos en los programas.

2.

Los hilos Posix

Las llamadas al sistema para la gesti´n b´sica de...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Hilos
  • hila
  • hilos
  • Hila
  • Hilos
  • HILO
  • hila
  • Hilos

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS