Software">
Nothing Special   »   [go: up one dir, main page]

Proceso e Hilos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 18

SISTEMAS OPERATIVOS II

UNIDAD II: ADM.DE MEMORIA


SECUNDARIA
Procesos e Hilos

PROF. NATALIA SALINAS


Introducción
Este capítulo analiza algunos conceptos avanzados relativos a la gestión de
procesos que se pueden encontrar en los sistemas operativos modernos. En
primer lugar, se muestra cómo el concepto de proceso es más complejo y sutil
de lo que se ha visto hasta este momento y, de hecho, contiene dos conceptos
diferentes y potencialmente independientes: uno relativo a la propiedad de
recursos y otro relativo a la ejecución. En muchos sistemas operativos esta
distinción ha llevado al desarrollo de estructuras conocidas como hilos.
Introducción
Hasta este momento se ha presentado el concepto de un proceso como
poseedor de dos características:

•Propiedad de recursos.

Un proceso incluye un espacio de direcciones virtuales para el manejo de la


imagen del proceso; De vez en cuando a un proceso se le puede asignar
control o propiedad de recursos tales como la memoria principal, canales E/S,
dispositivos E/S y archivos. El sistema operativo realiza la función de
protección para evitar interferencias no deseadas entre procesos en relación
con los recursos.
Introducción
Planificación/ejecución.

La ejecución de un proceso sigue una ruta de ejecución (traza) a través de uno o más
programas. Esta ejecución puede estar intercalada con ese u otros procesos. De esta
manera, un proceso tiene un estado de ejecución (Ejecutando, Listo, etc.) y una prioridad
de activación y ésta es la entidad que se planifica y activa por el sistema operativo.

En la mayor parte de los sistemas operativos tradicionales, estas dos características son,
realmente, la esencia de un proceso. Sin embargo, debe quedar muy claro que estas
dos características son independientes y podrían ser tratadas como tales por el sistema
operativo. Así se hace en diversos sistemas operativos, sobre todo en los desarrollados
recientemente. Para distinguir estas dos características, la unidad que se activa se suele
denominar hilo (thread), o proceso ligero, mientras que la unidad de propiedad de
recursos se suele denominar proceso o tarea.
Definición de Hilos
 Es un semi-proceso, que tiene su propia pila y que ejecuta
una pieza de código dada.

 El hilo comparte normalmente la memoria con otros hilos.

 Un grupo de hilos es un conjunto de hilos ejecutándose dentro


del mismo proceso. Todos ellos comparten la misma memoria.

 La ventaja de usar un grupo de hilos en vez de usar un


programa secuencial normal es que muchas de las operaciones
pueden ser llevadas .a cabo en paralelo.
¿Qué es un hilo de ejecución?
 También llamado hebra, proceso ligero, flujo, subproceso o “thread”.

 Es un Programa en ejecución que comparte la imagen de memoria y


otros recursos del proceso con otros hilos.

 Desde el punto de vista de programación: Función cuya ejecución se

puede lanzar en paralelo con otras.

 Un proceso puede contener uno o más hilos.


¿Qué es un hilo de ejecución?
Características

1- Todos los hilos de un proceso comparten el mismo entorno de ejecución


(variables globales, espacio de direcciones, ficheros abiertos, etc.).
2- Cada hilo tiene su propio juego de registros de CPU, pila, variables
locales, etc.
3- No existe protección entre hilos: un error en un hilo puede estropear la
pila de otro.
4- Para ordenar la forma en la que los hilos acceden a datos comunes hay
que emplear mecanismos de sincronización.
Estados de un hilo y de un proceso

Estado de un proceso con hilos:


Combinación de los estados de sus hilos:
Si hay un hilo en ejecución Proceso en ejecución
Si no hay hilos en ejecución pero sí preparados Proceso preparado
Si todos sus hilos bloqueados Proceso bloqueado
Servidor con múltiples hilos

Hilos trabajadores:
• Pueden crearse a medida que se necesitan y destruirse al finalizar la
tarea encomendada
• Pueden existir siempre y quedar libres al finalizar la tarea encomendada
- Más eficiente (evita el trabajo de crear y destruir hilos)
Concepto de multihilo
Capacidad de un SO para mantener varios hilos de ejecución dentro de un
mismo proceso.
Implementación de hilos
.
Existen dos categorías:
Hilos a nivel de usuario Hilos a nivel de núcleo

Hilos a nivel de usuario.


Características
• Gestión de hilos realizada por la aplicación a nivel de usuario mediante
una biblioteca de hilos.
• El núcleo no es consciente de la existencia de hilos.
• Es posible programar cualquier aplicación como multihilo.
Hilos de Nivel Usuario
Ventajas
. frente a hilos a nivel de núcleo:
• No necesario acceder al núcleo para intercambio de hilos.
• Algoritmos de planificación ad-hoc para cada aplicación.
• Pueden ejecutarse en cualquier SO.
Desventajas frente a hilos a nivel de núcleo:
• Una llamada al sistema realizada por un hilo bloquea a todos los hilos
del proceso.
• Una aplicación multihilo no puede aprovechar las ventajas del
multiprocesamiento.
Hilos a nivel de núcleo
Sus
. características son:
• Gestión de hilos realizada por el núcleo.
• Es posible programar cualquier aplicación como multihilo.
Hilos a nivel de núcleo
Ventajas
. frente a hilos a nivel de usuario:
El bloqueo de un hilo no supone (necesariamente) bloquear todo el
proceso.
Planificación de múltiples hilos de un proceso en múltiples
procesadores.
Las funciones del núcleo pueden ser multihilo.
Desventajas frente a hilos a nivel de usuario:
El intercambio de hilos se realiza accediendo al núcleo.
Ejemplos:
Linux, Windows 2000
Modelos Multi - Hilos
1. .Modelo Uno a Uno

Cada hilo a nivel de Usuario mapea con un hilo de Kernel

Ejemplos:
Windows 95, etc
Modelos Multi - Hilos
2. .Modelo Varios a Uno

Varios hilos a nivel de usuario mapean a un solo hilo del Kernel

Usado en sistemas operativos que no soportan hilos en el Kernel


Modelos Multi - Hilos
3. .Modelo Varios a Varios

Permite que varios hilos a nivel de usuario sean mapeados a varios


hilos a nivel de Kernel.
Permite una verdadera concurrencia ya que el sistema operativo crea
el numero necesario de hilos a nivel de usuario que creen los diseñadores.

También podría gustarte