Sie sind auf Seite 1von 22

Sistemas Operativos

Procesos e Hilos
Integrantes: - Quispe Villarroel Sandra - Torres Reyes Gustavo

Contenidos
Conceptos de proceso. Estados de un proceso. Modelo de cinco

estados de procesos. Control de procesos. Modos de ejecucin. Creacin de procesos. Administracin de procesos en Unix/Linux. Procesos e hilos. Creacin y ejecucin de procesos. Propuesta de proyecto anual. Control 1. Comunicacin entre procesos:

Concurrencia. Exclusin mutua. Semforos. Mensajes. Taller 2: Comunicacin entre procesos. Control 2.

Clase de recapitulacin. Clase de recapitulacin. Prueba de Ctedra 1.

Introduccin
En

las clases anteriores, se ha presentado el concepto de proceso incluyendo las dos caractersticas siguientes:
Unidad de propiedad de los recursos: A cada proceso se le

asigna un espacio de direcciones virtuales para albergar a la imagen del proceso. Al proceso se le puede asignar memoria virtual y otros recursos, tales como canales de E/S, dispositivos de E/S y archivos. Unidad de expedicin: Un proceso es un camino de ejecucin (traza) a travs de uno o ms programas. Esta ejecucin puede ser intercalada con la de otros procesos. De este modo, un proceso tiene un estado de ejecucin (Listo, Bloqueado, etc.) y una prioridad de expedicin. La unidad planificada y expedida por el sistema operativo es el proceso.

Procesos e hilos
En la mayora de los sistemas operativos, estas

dos caractersticas son, de hecho, la esencia de un proceso. Sin embargo, algunos argumentos pueden convencer de que estas dos caractersticas son independientes y que deben ser tratadas de manera independiente por el sistema operativo. Esto se hace as en una serie de sistemas operativos, en particular en algunos sistemas operativos de desarrollo reciente. Para distinguir estas dos caractersticas, la unidad de expedicin se conoce como hilo (thread) o proceso ligero (lightweight process), mientras que a la unidad de propiedad de los recursos se le suele llamar proceso o tarea.

Procesos con uno y con mltiples hilos

Caractersticas de los hilos


En una tarea pueden haber uno o ms hilos, cada uno con: Estado de ejecucin del hilo: Ejecucin, Listo, etc. Contexto del procesador, que se salva cuando no est ejecutando; una forma de contemplar al hilo es con un contador de programa independiente operando dentro de una tarea. Pila de ejecucin. Almacenamiento esttico para las variables locales. Acceso a la memoria y a los recursos de la tarea, que se comparten con todos los otros hilos de la tarea.

Mltiples hilos en un nico procesador

Beneficios de los hilos


Se tarda mucho menos tiempo en crear un nuevo hilo en

un proceso existente que en crear una nueva tarea, Menos tiempo para terminar un hilo y Menos tiempo para cambiar entre dos hilos de un mismo proceso. Dado que los hilos dentro de un mismo proceso comparten memoria y archivos, pueden comunicarse unos con otros sin necesidad de acceder al ncleo.
Por tanto, si hay una aplicacin o una funcin que pueda

implementarse como un conjunto de unidades de ejecucin relacionadas, es ms eficiente hacerlo con una coleccin de hilos que con una coleccin de tareas separadas.

Ejemplos de uso
Un servidor de archivos de una red de rea local: Cada vez que

llega una solicitud de un nuevo archivo, se genera un nuevo hilo para el programa de gestin de archivos. Puesto que el servidor debe manejar muchas solicitudes, se crearn y destruirn muchos hilos en un corto periodo de tiempo. Si el servidor es un multiprocesador, se pueden ejecutar varios hilos de una misma tarea simultneamente y en diferentes procesadores. Los hilos son tambin tiles en los monoprocesadores para simplificar la estructura de los programas que lleven a cabo diversas funciones. Otro ejemplo de uso efectivo de los hilos est en las aplicaciones de proceso de comunicaciones y en los supervisores de transacciones. Otra forma en la que los hilos aportan eficiencia es en la comunicacin entre diferentes programas en ejecucin. En la mayora de los sistemas operativos, la comunicacin entre procesos independientes requiere la intervencin del ncleo para ofrecer proteccin y para proporcionar los mecanismos necesarios para la comunicacin. Sin embargo, puesto que los hilos de una misma tarea comparten memoria y archivos, pueden comunicarse entre si sin invocar al ncleo.

Ejemplos de uso de los hilos en un sistema de multitarea


Trabajo interactivo y de fondo: Esto se produce en el sentido de la

interaccin directa con el usuario, no en el de sesiones interactivas y de fondo. Por ejemplo, en un programa de hoja de clculo, un hilo puede estar visualizando los mens y leyendo la entrada del usuario mientras que otro hilo ejecuta las rdenes y actualiza la hoja de clculo. Esta medida suele aumentar la velocidad que se percibe de la aplicacin, permitiendo que el programa pida la orden siguiente antes de terminar la anterior. Proceso asncrono: Los elementos asncronos del programa se pueden implementar como hilos. Por ejemplo, para protegerse de un corte de alimentacin, se puede disear un procesador de textos que escriba su buffer de la RAM al disco una vez por minuto. Se puede crear un hilo cuya nica tarea sea hacer estas copias de respaldo peridicas y que se planifique directamente con el sistema operativo; no hay necesidad de ningn cdigo superfluo en el programa principal que haga la comprobacin de tiempo o que coordine la entrada y la salida. Aceleracin de la ejecucin: Un proceso con mltiples hilos puede computar un lote de datos mientras lee el lote siguiente de un dispositivo. En un sistema con multiproceso, varios hilos de un mismo proceso podrn ejecutarse realmente a la vez. Organizacin de los programas: Los programas que suponen una variedad de actividades o varios orgenes y destinos de entrada y salida pueden hacerse ms fciles de disear e implementar mediante hilos.

Servidor Web con mltiples hilos

(a) Hilo despachador (Dispatcher thread)

(b) Hilo trabajador (Worker thread)

Estados de los hilos


La suspensin de los procesos engloba suspender

todos los hilos de dicho proceso, dado que todos estos hilos comparten el mismo espacio de direcciones. Al terminar el proceso, terminan todos los hilos incluidos en l. Los estados asociados con un cambio en el estado del hilo son:
Carga y ejecucin (Spawn)
Se carga y ejecuta otro hilo.

Bloqueado (Block) Desbloqueado (Unblock)


Finzalizado (Finish)
Se devuelve el contexto de registros y pilas.

Relacin entre Hilos y Procesos

Modelos de hilos

Tres procesos, cada uno con un hilo. b) Un proceso con tres hilos.
a)

Modelos
Elementos compartidos por todos los hilos de un proceso: Espacio de direcciones Variables globales Archivos abiertos Procesos hijos Alarmas pendientes Seales y manipuladores de seales Informacin de contabilidad Elementos privados para cada hilo: Contador de programa Registros Pila Estado

Hilos a nivel usuario


Todo el manejo de los hilos lo realiza la aplicacin. El ncleo no tiene conciencia de la existencia de los hilos. Ejemplos: Norma POSIX. IEEE 1003.1c, comn en sistemas UNIX,

establece una interfaz del programador de aplicacin (API) para creacin y sincronizacin de hilos.

Relacin entre hilos a nivel usuario y estados de los procesos

Hilos a nivel del ncleo


El ncleo mantiene la informacin de contexto sobre

los procesos y los hilos La planificacin se realiza en base a hilos. Ejemplos: Windows, Linux.

Enfoques combinados hbridos


La creacin de hilos se realiza en el espacio del usuario. El grueso de la planificacin y sincronizacin de los hilos

reside dentro de la aplicacin. Solaris es ejemplo de este enfoque.

Activaciones del planificador


Objetivo: Imitar la funcionalidad de los hilos del

ncleo. Gana desempeo de los hilos en el espacio del usuario. Evita transiciones innecesarias entre el usuario y el ncleo. El ncleo asigna procesadores virtuales a cada proceso, lo que permite al sistema asignar hilos a procesadores durante el tiempo de ejecucin. Problema: Confianza esencial en el ncleo (capa inferior) llamando a procedimientos en el espacio de usuario (capa superior)

Hilos como respuesta (pop-up)

Creacin del nuevo hilo cuando se recibe un mensaje:


(a) antes de recibir el mensaje. (b) despus de recibido el mensaje.

Llamada a procedimientos remotos (Remote Procedure Call RPC)

Ejemplo de RPC con un hilo

Ejemplo de RPC con mltiples hilos

Das könnte Ihnen auch gefallen