Trabajo

Solo disponible en BuenasTareas
  • Páginas : 74 (18348 palabras )
  • Descarga(s) : 0
  • Publicado : 18 de octubre de 2010
Leer documento completo
Vista previa del texto
Hilos

Las aplicaciones informáticas pueden ser de muchos tipos, desde procesadores de texto hasta procesadores de transacciones (bases de datos), simuladores de cálculo intensivo, etc.
Las aplicaciones están formadas de uno o más programas. Los programas constan de código para la computadora donde se ejecutarán. El código es generalmente ejecutado de forma secuencial. Normalmente, un"programa hilado" (threaded program, programa construido mediante hilos) tiene el potencial de incrementar el rendimiento total de la aplicación en cuanto a productividad y tiempo de respuesta mediante ejecución de código asíncrono y paralelo.
La ejecución de código paralelo se realiza mediante la ejecución de dos o más partes de un programa en dos o más procesadores en un instante dado. La ejecuciónasíncrona se puede realizar conmutando la ejecución del segmento de código actual que se bloquea por alguna razón, a otro segmento. Los hilos permiten al programador emplear estas características y muchas otras.
Otros beneficios de los hilos están relacionados con los recursos compartidos y el escaso tiempo empleado en su creación, terminación y cambio de contexto. Todo esto contribuye a incrementarel rendimiento de la aplicación así como conservar los recursos del sistema.
Cuando un programa se activa en el sistema, es decir está en ejecución o es candidato para la ejecución, se le conoce como un proceso. Cuando un proceso se encuentra activo, se le asignan una serie de recursos del sistema operativo para gestionarle, entre ellos una entrada en la tabla de procesos, un área de usuario, uncontexto de registros único, memoria virtual, etc. La mayoría de los sistemas operativos sólo soportan procesos. Los procesos pueden ser vistos como una entidad "hilo simple", es decir, ejecutan sólo un flujo de instrucciones de una forma secuencial.
Los procesos son planificados para ejecución una y otra vez hasta que finalizan, es decir, el programa termina su tarea. Cuando es planificado, unproceso se ejecutará en un procesador durante un intervalo de tiempo llamado quantum de tiempo. Un quantum es simplemente la cantidad de tiempo que el proceso tiene permitido para su ejecución antes de que el sistema operativo compruebe si existe un proceso de mayor prioridad listo para la ejecución. Un nuevo proceso es planificado para ejecución en lugar del proceso actual cuando:
1. El quantumde tiempo del proceso actual finaliza.
2. El proceso actual se bloquea, duerme, finaliza, o es desalojado.

Siendo un hilo simple, una aplicación puede ejecutarse sólo en un procesador en un instante dado y sólo puede ejecutarse de forma secuencial. Una forma de incrementar la velocidad de ejecución de un programa secuencial sería dividir el trabajo entre múltiples procesadores. Es aquí dondelos hilos resultan útiles.
En los sistemas operativos tradicionales, cada proceso tiene un espacio de direcciones y un único hilo de control (contador de programa). Es lo que normalmente se entiende por proceso. Sin embargo, existen ocasiones en las que sería conveniente que dos procesos trabajasen de forma concurrente pero con una serie de datos comunes. Este problema es difícil de resolvernormalmente, ya que los procesos son independientes y la comunicación de los datos debe realizarse mediante algún mecanismo de comunicación entre procesos (IPC), como pueden ser: semáforos, memoria compartida, paso de mensajes, etc. Pero parece claro que se introduce una cierta complejidad en la resolución de este tipo de problemas.
Una solución que parece razonable consistiría en que los "procesos"compartiesen el espacio de direcciones (la memoria), de esta forma no sería necesario su intercomunicación, ya que todos tendrían acceso a la misma zona de memoria. Se plantean sin embargo otros problemas, como es el acceso concurrente a una misma posición de memoria, evitando los problemas de inconsistencia de datos.
El significado exacto del término thread no está acordado. Uno de los usos...
tracking img