HilosEnC
Páginas: 20 (4815 palabras)
Publicado: 5 de marzo de 2015
UNIVERSIDAD NACIONAL
AUTÓNOMA DE MÉXICO
FACULTAD DE INGENIERÍA
ARQUITECTURAS CLIENTE/SERVIDOR
GRUPO: 01
GARCÍA CHÁVEZ LUIS EDGAR
GARCÍA LOERA FEDERICO
MORALES VILCHIS DIANA
SANDOVAL CASTELLANOS JAIR
HILOS EN LENGUAJE C
FECHA: 08/09/2009
Introducción
En los primeros días de la computación, la programación manejaba procesos en un solo hilo de ejecución. Los programabas secreaban en base a tarjetas perforadas o cintas, por lo cual su lectura era totalmente secuencial. A este tipo de procesamiento se le llamaba por lotes, basado en el hecho de “el primero que llega es el primero en ser atendido”, y cuando era ejecutado el programa, la computadora tenía uso exclusivo para él.
Actualmente esto ha cambiado. El concepto de múltiples hilos de ejecución aparece con lossistemas de tiempo compartido, donde más de una persona podía conectarse a una computadora central a la vez. Con ello nacen los conceptos de proceso(process) e hilo (thread).
Los primeros sistemas operativos funcionaban con un único hilo de ejecución, por ejemplo DOS. Con la creciente demanda actual de aplicaciones gráficas y en red, el uso de los sistemas operativos multiproceso y multihilo sevolvieron algo común. Con ello se ha obtenido un mayor uso y rendimiento.
Definiciones
Proceso
El proceso se puede definir como un programa ejecutándose en la computadora, co-existiendo y compartiendo el microprocesador, la memoria y otros recursos del sistema, con otros programas. El proceso es invocado por un código ejecutable, así además, posee una única existencia. Es decir, cada proceso seejecuta de manera aislada a los otros. Los procesos ejecutan módulos de código, lo cuales pueden ser independientes o no. Por ejemplo, los módulos de código que competen a Word son distintos a los de Power Point, mas no por ello dejan de compartir otros módulos como los DLL’s.
Hilos de ejecución
Los hilos de ejecución o threads surgieron de la necesidad de que existieran aplicaciones que realizaranvarias acciones a la vez, así como una mayor libertad en cuanto a seguir una sola línea de ejecución y realizar varias tareas simultáneas. En situaciones donde algunas acciones podrían causar una demora considerable a un hilo de ejecución (como la espera de que un usuario haga algo), era más deseable que el programa siguiera funcionando, ejecutando otras acciones simultáneas.
Programación conthreads
Actualmente existen librerías o paquetes de threads que permiten escribir programas con varias líneas de ejecución, sincronizadas a través de memoria compartida. Sin embargo, la programación de hilos supone nuevas dificultades a comparación de la programación secuencial.
Un thread en su concepto más básico, puede ser visto como un simple flujo de control secuencial. Con un único puntode ejecución, el programador no necesita aprender nada nuevo para programar un único thread. Sin embargo, cuando se tienen múltipleas hilos significa que el programa tiene distintos puntos de ejecución. Es aquí donde el porgramador deberá decidir dónde y cuándo crear esos threads.
En un lenguaje de alto nivel, las variables globales son compartidas por los diferentes hilos de la aplicación, esdecir, los hilos leen y escriben en las mismas localidades de memoria. El programador por tanto, será el responsable de que la sincronización de hilos sea adecuada, y la memoria sea asignada de forma correcta a estos.
Las facilidades proveídas por la librería de hilos, son conocidas como primitiva ligeras, y existen varios tipos:
Creación
Mantenimiento
Sincronización
Destrucción
Característicasde un hilo
Los hilos pueden ser empleados en situaciones donde se necesitan realizar largos procesamientos, procesamientos en segundo plano o tareas de E/S.
Todos estos ejemplos de uso, tienen una cosa en común: el programa. Esto puede llevar a una sobrecarga de los recursos, que en algunas situaciones sería inaceptable. Sin embargo, hay grandes beneficios, tales como: hacer uso de sistemas...
Leer documento completo
Regístrate para leer el documento completo.