ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Hilos Y Hebras Sistemas Operativos

cobaes6317 de Octubre de 2013

3.480 Palabras (14 Páginas)1.088 Visitas

Página 1 de 14

Definición De Proceso

Un proceso, conocido también como tarea, se define como un programa en ejecución.

Podemos decir también que es la entidad que se asigna a un procesador.

Características De Un Proceso

A un proceso se le asigna un espacio de memoria y algunos otros recursos como dispositivos de entrada/salida.

Transiciones De Estado De Un Proceso

Un proceso puede pasar por distintos estados durante su existencia. Las transiciones de tales estados son causadas por eventos en el sistema.

Procesos Ligeros: Hilos O Hebras

El concepto de proceso engloba dos conceptos separados y potencialmente independientes: uno relativo a la propiedad de recursos y otro que hace referencia a la ejecución.

Unidad que posee recursos: A un proceso se le asigna un espacio de memoria y, de tanto en tanto, se le puede asignar otros recursos como dispositivos de E/S o ficheros.

Unidad a la que se le asigna el procesador: Un proceso es un flujo de ejecución (una traza) a través de uno o más programas. Esta ejecución se entremezcla con la de otros procesos. De tal forma, que un proceso tiene un estado (en ejecución, listo, etc.) y una prioridad de expedición u origen. La unidad planificada y expedida por el sistema operativo es el proceso.

En la mayoría de los sistemas operativos, estas dos características son, de hecho, la esencia de un proceso. Sin embargo, son independientes, y pueden ser tratadas como tales por el sistema operativo. Esta distinción ha conducido en los sistemas operativos actuales a desarrollar la construcción conocida como thread, cuyas traducciones más frecuentes son hilo, hebra y proceso ligero. Si se tiene esta división de características, la unidad de asignación de la CPU se conoce como hilo, mientras que a la unidad que posee recursos se le llama proceso.

Hilos O Hebras

Son subprocesos de un proceso. Se conocen también como procesos ligeros. Dentro de un proceso se pueden identificar flujos de ejecución independientes.

Existen técnicas para hacer que estos flujos de ejecución puedan actuar como un proceso.

Podemos decir también que un hilo no es más que la habilidad de un proceso o programa para dividirse en varios hilos de ejecución simultáneos o aparentemente simultáneos.

• La memoria y los recursos son asignados a los procesos

• Todos los hilos de un proceso comparten la memoria y los recursos asignados a ese proceso

• Sin embargo, cada hilo tiene un contexto diferente.

• El procesador es el único recurso que no se comparte entre los hilos

• Cada hilo tiene una pila diferente

• Un proceso puede ser formado por uno o más hilos

Diferencia Entre Proceso E Hilo

Un proceso es una entidad relativamente independiente que dispone de su propio espacio de direcciones, su propia información de estado y que utiliza los mecanismos de comunicación entre procesos que le proporciona el sistema operativo para comunicarse con otros procesos.

Por otro lado, un hilo es una entidad más reducida capaz de convivir junto a otros hilos bajo el contexto de un único proceso, permitiendo compartir la información de estado, el área de memoria y/o los recursos asociados a ese proceso.

Dentro de un proceso puede haber uno o más hilos de control cada uno con:

• Un estado de ejecución (en ejecución, listo, bloqueado).|

• Un contexto de procesador, que se salva cuando no esté ejecutándose.

• Una pila de ejecución.

• Algún almacenamiento estático para variables locales.

• Acceso a la memoria y a los recursos de ese trabajo que comparte con los otros hilos.

Los beneficios clave de los hilos se derivan de las implicaciones del rendimiento: se tarda menos tiempo en crear un nuevo hilo de un proceso que ya existe, en terminarlo, y en hacer un cambio de contexto entre hilos de un mismo proceso. Al someter a un mismo proceso a varios flujos de ejecución se mantiene una única copia en memoria del código, y no varias.

Un ejemplo de aplicación que podría hacer uso de los hilos es un servidor de ficheros de una red de área local. Cada vez que llega una solicitud de una operación sobre un fichero, se puede generar un nuevo hilo para su gestión. El servidor gestiona multitud de solicitudes, por tanto, se pueden crear y destruir muchos hilos en poco tiempo para dar servicio a estas peticiones. Si el servidor es un multiprocesador, se pueden ejecutar varios hilos de un mismo proceso simultáneamente y en diferentes procesadores.

Tipos De Hilos

Espacio de Usuario

• Se utilizan aplicaciones o bibliotecas para gestionar los hilos

• El sistema operativo no conoce la existencia de hilos

Espacio del Sistema

• El S.O conoce la existencia de hilos

• El planificador selecciona hilos para despachar y no procesos

• El hilo seleccionado puede pertenecer al mismo proceso o a uno distinto

Estado De Los Hilos

• El estado de un proceso determinado está dado por la combinación del estado de todos sus hilos.

• Si uno de los hilos está en estado de ejecución entonces el proceso se encuentra también en estado de ejecución.

• Si ningún hilo se está ejecutando pero alguno está en estado de listo, el proceso estará en estado de listo.

• Un proceso estará bloqueado si todos sus hilos están bloqueados.

Procesos Ligeros

Un proceso ligero (thread o hebra) es un programa en ejecución que comparte la imagen de la memoria y otras informaciones con otros procesos ligeros.

Figura 1 Procesos ligeros

Los procesos ligeros son una unidad básica de utilización de la CPU consistente en un juego de registros y un espacio de pila. Comparte el código, los datos y los recursos con sus hebras pares

Una tarea (o proceso pesado) está formada ahora por una o más hebras

Una hebra sólo puede pertenecer a una tarea

Figura 2 Tareas con una y varias hebras

CARACTERISTICAS

• Se comparten recursos. La compartición de la memoria permite a las hebras pares comunicarse sin usar ningún mecanismo de comunicación inter-proceso del SO.

• La conmutación de contexto es más rápida gracias al extenso compartir de recursos

• No hay protección entre las hebras. Una hebra puede escribir en la pila de otra hebra del mismo proceso

Estado De Los Procesos Ligeros

Un proceso ligero puede estar ejecutando, listo o bloqueado.

Figura 3 Estados de los Procesos ligeros

Paralelismo

Los procesos ligeros permiten paralelizar una aplicación.

Figura 4 Paralelismo

Otro ejemplo de caso en el que son útiles los hilos es el de los navegadores de la World Wide Web, como Netscape y Mosaic. Muchas páginas Web contienen múltiples imágenes pequeñas. Para cada imagen de una página Web, el navegador debe establecer una conexión individual con el sitio de la página de casa y solicitar la imagen. Se desperdicia una gran cantidad de tiempo estableciendo y liberando todas estas conexiones. Si tenemos múltiples hilos dentro del navegador, podemos solicitar muchas imágenes al mismo tiempo, acelerando considerablemente el rendimiento en la mayor parte de los casos, ya que en el caso de imágenes pequeñas el tiempo de preparación es el factor limitante, no la rapidez de la línea de transmisión.

Entre los elementos que son distintos para cada hilo están el contador de programa, los registros y el estado. El contador de programa se necesita porque los hilos, al igual que los procesos, pueden suspenderse y reanudarse. Los registros se necesitan porque cuando los hilos se suspenden sus registros deben guardarse. Por último, los hilos, al igual que los procesos, pueden estar en los estados de ejecutándose, listo o bloqueado.

Ejemplos En Java

1-

2-

3-

4-

5-

6-

7-

8-

Concurrencia Y Secuenciabilidad

Los procesos son concurrentes si existen simultáneamente. Los procesos concurrentes pueden funcionar en forma totalmente independiente unos de otros, o pueden ser asíncronos, lo cual significa que en ocasiones requieren cierta sincronización o cooperación.

Cuando dos o más procesos llegan al mismo tiempo a ejecutarse, se dice que se ha presentado una concurrencia de procesos. Es importante mencionar que para que dos o más procesos sean concurrentes , es necesario que tengan alguna relación entre ellos como puede ser la cooperación para un determinado trabajo o el uso de información o recursos compartidos, por ejemplo: en un sistema de un procesador , la multiprogramación es una condición necesaria pero no suficiente para que exista concurrencia, ya que los procesos pueden ejecutarse de forma totalmente independiente.

Por otro lado en un sistema de varios procesos

...

Descargar como (para miembros actualizados) txt (23 Kb)
Leer 13 páginas más »
Disponible sólo en Clubensayos.com