Más Sobre Hilos

HILOS

–          En una tarea multihilo, mientras un hilo servidor está bloqueado y esperando, un segundo hilo en la misma tarea puede estar corriendo.

  • La cooperación de múltiples hilos en el mismo trabajo le proporciona un alto rendimiento y mejora la eficiencia.
  • Las aplicaciones que requieren compartir un buffer común, por ejemplo productor-consumidor, se benefician de la utilización de hilos.

–          Los hilos proporcionan un mecanismo que permiten a los procesos secuenciales hacer llamadas al sistema bloqueadoras y al mismo tiempo lograr paralelismo.

–          El núcleo puede apoyar los hilos como en Mach y OS/2.

–          Los hilos a nivel de usuario; soportado s arriba por el kernel, a través de una serie de llamadas de biblioteca en el nivel de usuario (como en el proyecto CMU de Andrew).

–          Un enfoque hibrido implementa tanto los hilos a nivel de usuario como hilos apoyados por el kernel (como Solaris 2).

 

RELACIÓN ENTRE HILOS Y PROCESOS

HILOS: PROCESOS DESCRIPCIÓN EJEMPLO
1 : 1 Cada hilo es un único proceso con su propio espacio de direcciones y sus recursos. Implementaciones Tradicionales de UNIX.
M : 1 Un proceso define un espacio de direcciones y la propiedad sobre los recursos es dinámica. Dentro del mismo proceso se pueden crear y ejecutar múltiples hilos. Windows NT, Solaris, OS/2, OS/390, MACH.
1 : M Un hilo puede migrar desde un ambiente de proceso a otro. Esto permite que un hilo se pueda mover fácilmente entre sistemas distintos. Ra(Clouds), Emerald
M : M Combina los atributos de M : 1 y 1: M TRIX

 

 

HILOS EN WINDOWS 2000, ESTRUCTURA DE UN PROCESO EN WINDOWS 2000

–          Implementa mapeo uno a uno.

–          Contenido de un proceso:

  • Código.
  • Datos.
  • Recursos (ficheros…)
  • Entorno del proceso.
  • Thread (hilo) 1, Thread 2, …, Thread N.

 

–          Cada hilo contiene:

  • Una identificación de hilo.
  • Un conjunto  de registros.
  • Pilas de usuario y kernel separadas.

–          Área de almacenamiento de datos privados.

OBJETO DE PROCESO DE WINDOWS

TIPO DE OBJETO PROCESO HILO
ATRIBUTOS DEL CUERPO DEL OBJETO ID proceso. ID hilo
  Descriptor de seguridad. Contexto del hilo
  Prioridad base. Prioridad dinámica
  Afinidad de procesador por defecto. Prioridad de base
  Limites de cuota. Afinidad de procesador de hilo
  Contadores de E/S. Tiempo de ejecución del hilo
  Contadores de operaciones de MV. Estado de alerta
  Puertos de excepciones y de depurado. Contador de suspensiones
  Estado de salida. Testigo de personificación.
    Puerto de finalización.
    Estado de salida del hilo
SERVICIOS Crear proceso Crear hilo
  Abrir proceso Abrir hilo
  Solicitar información del proceso Solicitar Información del hilo
  Establecer información del proceso Establecer información del hilo
  Proceso actual Hilo actual.
  Terminar proceso Terminar hilo
    Obtener contexto
    Establecer contexto
    Suspender
    Reanudar
    Alertar hilo
    Chequear estado de alerta
    Registrar puerto finalización.

 

 

 

 

ESTADOS DE UN HILO DE WINDOWS

ACTIVIDAD ESTADO OPCIONES DE CAMBIO DESCRIPCIÓN
Ejecutable Listo. Stanby. Escogido para ejecutar.
  Stanby. Ejecutado. Cambiar.
  Ejecutando. Listo.

Esperando.

Expropiado.

Bloquear/ Suspender.

No Ejecutable Transición. Listo. Recurso disponible.
  Esperando. Transición.

Listo.

Desbloquear recurso no disponible.

Desbloquear/Reanudar recurso disponible.

  Finalizado   Finalizar.

 

 

ESTADOS DE  UN HILO DE JAVA

–          Los hilos de JAVA pueden ser creados por:

  • Extensión de la clase hilos.
  • Implementado una interface que los corra.

–          los hilos de JAVA son administrados por la JVM.

–          Suspend() – suspende la ejecución del hilo que se está ejecutando.

–          Sleep() – coloca el hilo que actualmente está corriendo a dormir un determinado tiempo.

–          Resume() – reasume la ejecución de hilos suspendidos.

–          Stop() – para la ejecución de un hilo.

 

ESTADO OPCIONES DE CAMBIO MÉTODO
Nuevo Ejecutable. Start()
Ejecutable Bloqueado.

Muerto.

Sleep(), Suspend().

Stop().

Bloqueado Ejecutable. Resume().
Muerto    

 

Anuncios

Un pensamiento en “Más Sobre Hilos

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s