Creacion Y Utilizacion De Hilos

Páginas: 8 (1941 palabras) Publicado: 28 de mayo de 2012
CREACION Y UTILIZACION DE HILOS Y BUFFER CIRCULARES EN C

UNIVERSIDAD DE VALLADOLID

autor: MAYKEL GARCIA OLIVARES

Antes de todo pido disculpas por no crear un índice sobre el contenido de este documentos.
Espero que este documento sea de mucha utilidad

INTRODUCCION:
Este programa tiene como objetivo realizar el cálculo de números primos mediante el uso de
hilos. Para esto el usuario debeintroducir tres parámetros. El primer parámetro debe ser a
partir del numero que se va a realizar el cálculo, el segundo será la cantidad de números al cual
se les va a realizar el cálculo a partir del número inicial y el tercer parámetro y ultimo será la
cantidad de hilos que se crearan para su utilización en el cálculo.

Constates que hay que tener en cuenta:
#define TAMB 10: aquí se define eltamaño máximo que tendrán los buffer circulares de
recepción
#define NUMARG 4: esta constante se utiliza para validar el número de entradas del usuario
por teclado(los 3 parámetros de la función).
#define TAMMAXH 256 : Se define el numero máximo de hilos que se permiten crear.
#define VERBOSE 1 : Según su valor 0 o 1 muestra por pantalla la trayectoria en el cálculo de
los resultados o no.

Estructurasutilizadas:
RECEPTOR: Esta estructura contiene un buffer circular de recepción para ir almacenando los
datos(en este caso se almacena una estructura llamada numPrimo que tendrá aspectos
fundamentales para el cálculo como son el numero y si es primo o no), además de los
semáforos binarios y generales para la lectura y escritura del buffer circular así como para ver
si hay datos en el buffer o estese encuentra lleno. También presenta una variable que hará el
trabajo de una variable booleana que indicara si a finalizado el buffer circular o no.
TBC: Al igual que RECEPTOR esta contiene un buffer circular , para almacenar los datos y un
semáforo binario y dos generales que tendrán las mismas funcionalidades antes vistas en la
estructura RECEPTOR.

Posteriormente se creara tantas variables yasea del tipo de dato RECEPTORES como de TBC
como numero de hilos introducidos por el usuario las cuales tienen el nombre de receptores y
servidores respectivamente.

Variables definidas de suma importancia:
pthread_t tidProd : Se utiliza como identificador del hilo principal(productor).
pthread_t tid[TAMMAXH]: Se utiliza para identificar los diferentes hilos servidores(a cada hilo
se le dará unidentificador , de aquí a que se creen tantos como hilos hay)
pthread_t tidRec: Se utiliza como identificador del hilo Recepción(receptor).

Función main:
Esta función se utiliza como función principal, de aquí se va ejecutar el programa. En el inicio
tenemos unas variables inicializadas para el cálculo del tiempo que se tarda el proceso de
cálculo desde que se crean todos los hilos hasta justoantes de finalizar. Posteriormente se
validan las entradas de los datos de los usuarios, inicializa(función inicializar) todos los valores
necesarios (como los semáforos entre otros), y posteriormente crea el hilo
principal(productor) pasándole como primer parámetro el identificador , segundo parámetro
NULL ya que este se utiliza para la prioridad del hilo , el cual aquí no se usa, tercer parámetro
esla función al cual el hilo está asociado , en este caso productor, y el cuarto parámetro
tampoco se utiliza ya que a la función no se le pasan parámetros. Luego creo los hilos
servidores. Después calculo el instante inicial en donde se termino de crear los hilos(para
medir el tiempo). Posteriormente se espera a la finalización de los hilos y se muestra el tiempo
transcurrido desde el inicio demedición de tiempo hasta justo antes de su finalizacion.

Función productor:
Es la encargada de crear el hilo receptor y de proporcionar al la función que inserta el numero
en el buffer circular del servidor los datos necesarios(nuero y numero de hilo servidor).
Función insertNumBufC:
inserta el numero en el buffer circular del hilo servidor y garantiza de que antes de poner s el
dato verifique...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Creación de hilos con parámetros en C#
  • Creación de una cimentación sismo resistente mediante la utilización de Materiales Inteligentes
  • hilo
  • Hilos
  • hila
  • hilos
  • Hila
  • Hilos

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS