Unidad 2: Procesos e Hilos (Threads)

Slides:



Advertisements
Presentaciones similares
Construcción de Sistemas Distribuidos “Transacciones Distribuidas”
Advertisements

Capitulo 7: Procesamiento batch y el Job Entry Subsystem (JES)
Sistemas operativos Prof. Alberto Rivas.
“Fundamentos de Sistemas Distribuidos”
Tabla de Contenido Concurrencia.
Internet y tecnologías web
TEMA 1 Introducción a la Programación Concurrente
VI Unidad. Sistema Operativo
Presentación general del curso
Sistema operativo Componentes de un sistema operativo
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
PROGRAMACIÓN PARALELA Tema 5: Análisis de algoritmos paralelos
Universidad Nacional Autónoma de Honduras
Administración de procesos y del procesador.
Subsistemas De un Sistema Operativo Celeste Domínguez Romo
Modelo de procesos de dos estados
Estructuras en Sistemas Operativos
Sistemas Operativos Distribuidos
INSTALACIÓN Y MANTENIMIENTO DE SISTEMAS OPERATIVOS
Unidad 2: Comunicación entre Procesos (1ra parte)
Administración de Memoria
Administración de Memoria
Unidad 2: Comunicación entre Procesos
Sistemas Operativos I Unidad 2: Procesos.
Administración de Memoria
Unidad 2: Administración de Procesos en sistemas tipo UNIX
Índice Sesión I Bloque I (09:30 a 10:30 Horas) Configuración Inicial
AUDITORIA DE LA SEGURIDAD en Telecomunicaciones y redes de computadoras Unidad VI.
HILOS Y COMUNICACIÓN ENTRE PROCESOS
Tema 10: Gestión de Memoria
Sistemas Operativos Procesos.
Conceptos generales: Concurrencia: Existencia simultánea de varios procesos en ejecución. IMPORTANTE: EXISTENCIA SIMULTÁNEA NO IMPLICA EJECUCIÓN SIMULTÁNEA.
Hilos - Lightweight process - Procesos ligeros
OMAR SANCHEZ ROBLES HECTOR PEREZ GARCIA. “Sistemas de cómputo compuesto por un gran número de CPU´s conectados mediante una red de alta velocidad”, Tanenbaum.
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Sistemas Operativos II MC. Daniel Fajardo Delgado INSTITUTO TECNOLÓGICO DE CD. GUZMÁN 24 de Abril de 2004.
Hebras Cecilia Hernández. Qué es un proceso? Consiste Espacio de direccionamiento Código a ejecutar Datos estáticos y dinámicos Pila o stack CPU: PC,
EL SISTEMA OPERATIVO.
Hilos En La Computación. (THREADS).
Introducción a los Sistemas Operativos
Gestión de Procesos Gestión de Procesos Procesos Planificación CPU
Software, programas de computadoras. Son las instrucciones responsables de que el hardware (la máquina) realice su tarea. Como concepto general, el software.
1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para.
COMPONENTES DEL SISTEMA OPERATIVO.
Introducción a los Sistemas Operativos
Administrador de procesos
SISTEMAS OPERATIVOS 1.4 CLASIFICACIÓN DE LOS S.O
Introducción a los SOs.
Tema 8: Introducción a los SOs. Tema 8: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.), Introducción.
CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO
Clase #7 – Sistemas de Procesamiento de Datos
Estructura de los Sistemas Operativos
SISTEMAS OPERATIVOS Por Martín Arosemena.
FLOR ALBA ACEVEDO COD JENNIFFER TATIANA TORRES COD
Unidad 2 – Gestión de Procesos
Por Luis Esteban Monsalve Martínez
LIA. SUEI CHONG SOL, MCE..  1.- SOFTWARE BÁSICO O DE SISTEMA. Conjunto de programas imprescindibles para el funcionamiento del sistema.  2.- SOTWARE.
Licenciatura Tecnologías de la Información y Comunicación
Elementos y tipos de sistemas operativos
Funciones principales!
Estimación de Puntos de Función
Estructuras en Sistemas Operativos DAISY KATERINE RODRÍGUEZ.
UNIVERSIDAD LATINA SOPORTE TECNICO SISTEMAS OPERATIVOS.
TECNICO EN SISTEMAS NUMERO DE FICHA:
También es conocido como proceso ligero. Es una entidad básica de utilización de CPU y esta formado por un contador de programa, algunos registros y una.
Evelin Ramos Cabrera 1° B
PROCESADOR.- El procesador es el cerebro del sistema, encargado de procesar toda la información. Básicamente, es el "cerebro" de la computadora. Prácticamente,
Desarrollador Profesional de Juegos Programación III Unidad II Hilos de ejecución Threads.
CAPITULO III El Sistema Operativo (OS)
Estructura del sistema operativo
Transcripción de la presentación:

Unidad 2: Procesos e Hilos (Threads) Sistemas Operativos I Unidad 2: Procesos e Hilos (Threads)

Contenidos Conceptos de proceso. Estados de un proceso. Modelo de cinco estados de procesos. Control de procesos. Modos de ejecución. Creación de procesos. Administración de procesos en Unix/Linux. Procesos e hilos. Creación y ejecución de procesos. Propuesta de proyecto anual. Control 1. Comunicación entre procesos: Concurrencia. Exclusión mutua. Semáforos. Mensajes. Taller 2: Comunicación entre procesos. Control 2. Clase de recapitulación. Prueba de Cátedra 1.

Introducción En las clases anteriores, se ha presentado el concepto de proceso incluyendo las dos características 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 expedición: Un proceso es un camino de ejecución (traza) a través de uno o más programas. Esta ejecución puede ser intercalada con la de otros procesos. De este modo, un proceso tiene un estado de ejecución (Listo, Bloqueado, etc.) y una prioridad de expedición. La unidad planificada y expedida por el sistema operativo es el proceso.

Procesos e hilos En la mayoría de los sistemas operativos, estas dos características son, de hecho, la esencia de un proceso. Sin embargo, algunos argumentos pueden convencer de que estas dos características 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 características, la unidad de expedición 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 múltiples hilos

Características de los hilos En una tarea pueden haber uno o más hilos, cada uno con: Estado de ejecución del hilo: Ejecución, 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 ejecución. Almacenamiento estático 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.

Múltiples 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 núcleo. Por tanto, si hay una aplicación o una función que pueda implementarse como un conjunto de unidades de ejecución relacionadas, es más eficiente hacerlo con una colección de hilos que con una colección 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 gestión de archivos. Puesto que el servidor debe manejar muchas solicitudes, se crearán y destruirán muchos hilos en un corto periodo de tiempo. Si el servidor es un multiprocesador, se pueden ejecutar varios hilos de una misma tarea simultáneamente y en diferentes procesadores. Los hilos son también ú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 comunicación entre diferentes programas en ejecución. En la mayoría de los sistemas operativos, la comunicación entre procesos independientes requiere la intervención del núcleo para ofrecer protección y para proporcionar los mecanismos necesarios para la comunicación. Sin embargo, puesto que los hilos de una misma tarea comparten memoria y archivos, pueden comunicarse entre si sin invocar al núcleo.

Ejemplos de uso de los hilos en un sistema de multitarea Trabajo interactivo y de fondo: Esto se produce en el sentido de la interacción directa con el usuario, no en el de sesiones interactivas y de fondo. Por ejemplo, en un programa de hoja de cálculo, un hilo puede estar visualizando los menús y leyendo la entrada del usuario mientras que otro hilo ejecuta las órdenes y actualiza la hoja de cálculo. Esta medida suele aumentar la velocidad que se percibe de la aplicación, permitiendo que el programa pida la orden siguiente antes de terminar la anterior. Proceso asíncrono: Los elementos asíncronos del programa se pueden implementar como hilos. Por ejemplo, para protegerse de un corte de alimentación, se puede diseñar 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 periódicas y que se planifique directamente con el sistema operativo; no hay necesidad de ningún código superfluo en el programa principal que haga la comprobación de tiempo o que coordine la entrada y la salida. Aceleración de la ejecución: Un proceso con múltiples 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 podrán ejecutarse realmente a la vez. Organización de los programas: Los programas que suponen una variedad de actividades o varios orígenes y destinos de entrada y salida pueden hacerse más fáciles de diseñar e implementar mediante hilos.

Servidor Web con múltiples hilos (a) Hilo despachador (Dispatcher thread) (b) Hilo trabajador (Worker thread)

Estados de los hilos La suspensión 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 ejecución (Spawn) Se carga y ejecuta otro hilo. Bloqueado (Block) Desbloqueado (Unblock) Finzalizado (Finish) Se devuelve el contexto de registros y pilas.

Relación entre Hilos y Procesos

Modelos de hilos Tres procesos, cada uno con un hilo. Un proceso con tres hilos.

Modelos … (2) Elementos compartidos por todos los hilos de un proceso: Espacio de direcciones Variables globales Archivos abiertos Procesos hijos Alarmas pendientes Señales y manipuladores de señales Información 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 aplicación. El núcleo no tiene conciencia de la existencia de los hilos. Ejemplos: Norma POSIX. IEEE 1003.1c, común en sistemas UNIX, establece una interfaz del programador de aplicación (API) para creación y sincronización de hilos.

Relación entre hilos a nivel usuario y estados de los procesos

Hilos a nivel del núcleo El núcleo mantiene la información de contexto sobre los procesos y los hilos La planificación se realiza en base a hilos. Ejemplos: Windows, BeOS, Linux.

Enfoques combinados ó híbridos La creación de hilos se realiza en el espacio del usuario. El grueso de la planificación y sincronización de los hilos reside dentro de la aplicación. Solaris es ejemplo de este enfoque.

Activaciones del planificador Objetivo: Imitar la funcionalidad de los hilos del núcleo. Gana desempeño de los hilos en el espacio del usuario. Evita transiciones innecesarias entre el usuario y el núcleo. El núcleo asigna procesadores virtuales a cada proceso, lo que permite al sistema asignar hilos a procesadores durante el tiempo de ejecución. Problema: Confianza esencial en el núcleo (capa inferior) llamando a procedimientos en el espacio de usuario (capa superior)

Hilos como respuesta (pop-up) Creación del nuevo hilo cuando se recibe un mensaje: (a) antes de recibir el mensaje. (b) después de recibido el mensaje.

Conversión de código con único hilo en código con múltiples hilos Pueden generarse conflictos entre los hilos al utilizar alguna variable global.

Variables privadas del hilo Los hilos pueden tener sus variables globales privadas.

Llamada a procedimientos remotos (Remote Procedure Call – RPC) Ejemplo de RPC con un hilo Ejemplo de RPC con múltiples hilos

Fuentes de información Tanenbaum A., “Sistemas Operativos Modernos”, Prentice Hall, 1994 Tanenbaum A., “Sistemas Operativos: diseño e implementación” Prentice-Hall, 1998 Tanenbaum A., “Sistemas Operativos Distribuidos”, Prentice Hall, 2003 Carretero, J. García, F. Pérez, F. “Sistemas Operativos: Una visión aplicada” Mc Graw Hill. 2001. Stallings W., “Sistemas Operativos”, 5ta. Edición. Prentice-Hall. 2004

Textos en biblioteca de la sede Documento No. Año Título Autor 11486 2001 Sistemas operativos. Stallings, William. 9137 2003 Sistemas operativos modernos. Tanenbaum, Andrew S. 8443 1998 Sistemas operativos: Diseño e implementación. 6980 4684 1996 Sistemas operativos distribuidos. 3137 1993

Referencias en Internet David Luis la Red Martínez “SISTEMAS OPERATIVOS” Domingo Mery “Sistemas Operativos” Jorge Alfonso Briones García “Sistemas Operativos Distribuidos (material adicional)” Sistemas operativos (SIMULACIONES Y ANIMACIONES)

Textos en Internet (inglés) Andrew S. Tanenbaum “Modern Operating Systems” Andrew S. Tanenbaum “Distributed Systems: Principles and Paradigms” George Coulouris, Jean Dollimore and Tim Kindberg “Distributed Systems: Concepts and Design”, 3ra edición (4ta edición 2005) Avi Silberschatz, Peter Baer Galvin & Greg Gagne “Operating System Concepts” Minix 3 Operating System