Hilos. Módulo 4. Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur

Documentos relacionados
Hilos. Módulo 4. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco. Hilos

Hilos Secciones Stallings:

Sistemas Operativos. Procesos

Threads. Hilos - Lightweight process - Procesos ligeros

de Gran Canaria Centro de Tecnología Médica Programación Concurrente

Threads, SMP y Microkernels. Proceso

Tema 1: Programación Multiproceso. Curso

Procesos Definición y Estados

Sistemas Distribuidos. Soporte de Sistemas Operativos

Procesos. Bibliografía. Threads y procesos. Definiciones

Unidad IV: Programación concurrente (MultiHilos) 4.1. Concepto de hilo

Sistemas Operativos. Estructura de los sistemas operativos

ESCUELA DE INGENIERIA Informática Y Sistemas

Sistemas Operativos Tema 5. Procesos José Miguel Santos Alexis Quesada Francisco Santana

Taller de Sistemas Operativos. System Calls 2012

CLUSTER FING: ARQUITECTURA Y APLICACIONES

Concurrencia y paralelismo

TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O

Sistemas Operativos. Curso 2017 Estructura de los sistemas operativos

Parte I:Teoría. Tema 3:Introducción a los Sistemas operativos. Instalación

Introduccion a Sistemas Operativos. Ej: Linux

Fundamentos de Programación. Sabino Miranda-Jiménez

Herramientas Informáticas I Software: Sistemas Operativos

Universidad Autónoma de Baja California Facultad de Ciencias Administrativas Unidad Mexicali

Facultad de Ingeniería Industrial y de Sistemas v1.0 MA781U PROCESOS DISTRIBUIDOS

Sistemas operativos: una visión aplicada. Capítulo 2 Introducción a los sistemas operativos

SISTEMAS OPERATIVOS ACTIVIDAD: TRABAJO COLABORATIVO

HP - UX. Qué es HP UX?

TEMA 9. SISTEMAS OPERATIVOS DISTRIBUIDOS

Concurrencia. Concurrencia

Programación Concurrente y Paralela. Unidad 1 Introducción

Arquitectura de Computadoras. Clase 9 Procesamiento paralelo

Sistemas Operativos. Introducción. Tema 6

Sistemas Operativos. Curso Página Web: Asignaturas de programación en el plan de estudios

Conceptos de Sistemas Operativos. Sistema Operativo

Módulo 2. Estructura del Sistema Operativo. Servicios del Sistema Operativo. Objectivos. Servicios del Sistema Operativo (Cont)

Aplicaciones Concurrentes

Procesos. Módulo 3. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco.

Estructura Windows NT

Máquinas Virtuales en arquitecturas de microkernel

Introducción a los sistemas operativos. Ing Esp Pedro Alberto Arias Quintero

Sistemas Operativos. Curso 2016 Procesos

Sistemas Operativos. Curso 2014 Estructura de los sistemas operativos

Un importante problema para sistemas de la nueva generación

Sistemas operativos. Hasta ahora hemos visto. Relación programa-sistema operativo Gestión de memoria

Sistemas Operativos Ricardo Sanz

Conceptos y Estructuras de Sistemas Operativos

Mundo Azul.

Tecnología de software para sistemas de tiempo real

SISTEMAS OPERATIVOS. Informática Básica

Tema 4: Gestión de Procesos

Unidad 2: Gestión de Procesos

Capítulo 3. Procesos concurrentes 3.1. Conceptos de programación concurrente La computación concurrente es la simultaneidad en la ejecución de

Trabajo de investigación Paralelismo en el procesador

Universidad Central Del Este U C E Facultad de Ciencias y Humanidades Escuela de Pedagogía Mención Informática.

Tópicos de programación Concurrente y Paralela

Administración de procesos: Procesos e hilos

PROGRAMACIÓN CONCURRENTE

SISTEMAS OPERATIVOS: Lección 4: Planificación de Procesos

TAREA 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS.

Tema 12: El sistema operativo y los procesos

Fecha de entrega: Miércoles 4 de Septiembre. Campus: Villahermosa. Carrera : Ingeniería en Sistemas Compuacionales. Nombre del maestro: Carlos Castro

Programa de estudios por competencias. Seminario de Sistemas operativos en red

Capítulo 5. Sistemas operativos. Autor: Santiago Felici Fundamentos de Telemática (Ingeniería Telemática)

Cuando el lenguaje si importa

T5-multithreading. Indice

Introducción a los Sistemas Operativos

IFCD0111 Programación en Lenguajes Estructurados de Aplicaciones de Gestión

Pontificia Universidad Católica del Ecuador

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

Estructura del Sistema Operativo. Módulo 2. Estructuras de Sistemas Operativos

Sincronización de Threads

Aplicación Firma Electrónica de Archivos 2.0 MANUAL DE USUARIO. Versión [2.0.0] Firma Electrónica de Archivos Versión 2.0

Adaptación de la arquitectura linux lib de MaRTE OS a multiprocesadores

Sistema Operativo. Introducción a los Sistemas Operativos. El Sistema Operatico como Interfaz Usuario/Computador. Objetivos del Sistema Operativo

Alertar. Supervisor. Registrar Clientes Morosos y Cuentas. Cliente Previamente moroso? Primero trabajar con cada instancia. previamente?

POSGRADO EN DESARROLLO DE APLICACIONES PARA ANDROID CON JAVA

Introducción a los Sistemas Operativos

Instituto Schneider Electric de Formación

Ingeniería de Software II. SETEPROS Plan de pruebas. Versión 1.0

2.- Estructuras de Sistemas Operativos

Es una API (Aplication Program Interface) que se usa para paralelismo basado en hilos múltiples en entornos de memoria compartida

Descarga de Listas de Música Proyecto Examen Final

Programación Orientada a Objetos

Nombre de la asignatura : Sistemas de Computación Código : Nivel (semestre de la carrera) : 7 : Ingeniería Civil Informática Nº de créditos : 4

Fundamentos de Computación para Científicos

Fundamentos de los Sistemas Operativos. Tema 1. Conceptos generales Estructura del sistema operativo ULPGC - José Miguel Santos Espino

Usando el Sistema Operativo

TEMA 1. IMPLANTACIÓN DE SISTEMAS OPERATIVOS MODO ESCRITORIO. 2 FPB INFORMÁTICA DE OFICINA IES NUM. 3 LA VILA JOIOSA

Definición de Sistema Operativo

Respaldo y recuperacion con Bacula

Aplicaciones de Microsoft Dynamics CRM 4.0

ADMINISTRACIÓN GENERAL DE TECNOLOGÍA DE LA INFORMACIÓN ADMINISTRACIÓN CENTRAL DE DESARROLLO Y MANTENIMIENTO DE APLICACIONES

20488 Desarrollo de Microsoft SharePoint Server 2013 Core Solutions

TEMA: LOS SISTEMAS OPERATIVOS

Peer-to-Peer (Punto a Punto) Cliente-Servidor

Programación concurrente

Programación en Lenguajes Estructurados de Aplicaciones de Gestión. Certificados de profesionalidad

Organización del Sistema Operativo

Kemio - Requisitos Técnicos

Transcripción:

Hilos Módulo 4 Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur

Chapter 4: Threads Revisión Modelos Multihilados Librerías de Hilos Aspectos sobre Hilos Ejemplos de Sistemas Operativos Hilos en Windows XP Hilos en Linux

Objetivos Introducir la noción de hilo una unidad fundamental de la utilización CPU que forma la base de los sistemas de computación multihilados Discutir las APIs para librerías de hilos Pthreads, Win32 y Java Examinar aspectos relacionados a las programación multihilos

Hilos Un thread (o proceso de peso liviano) es una unidad básica de utilización de CPU, consiste de: contador de programa conjunto de registros espacio de stack Un thread comparte con sus threads compañeros (colectivamente conocidos como tarea o task) su: seccion de código sección de datos recursos del SO. Un proceso tradicional o peso pesado es igual a una tarea con un solo thread.

Hilos En una tarea con múltiple threads, mientras un thread servidor está bloqueado y esperando, un segundo thread de la misma tarea puede estar corriendo. Cooperación de múltiple threads en una misma tarea confiere alto procesamiento total y mejora el rendimiento. Aplicaciones que requieren compartir un buffer común (p.e., productor-consumidor) se benefician con la utilización de threads. Los threads proveen un mecanismo que permite a procesos sequenciales hacer llamadas al sistema bloqueantes mientras que también logra paralelismo.

Procesos Mono y Multihilos hilo hilo Proceso mono hilado Proceso multihilado

Beneficios Capacidad de Respuesta Compartir Recursos Dado que los threads dentro de un mismo proceso comparten memoria y archivos, pueden comunicarse unos con otros sin invocar al kernel Economía Toma menos tiempo crear un nuevo thread que un proceso Menos tiempo terminar un thread que un proceso Menos tiempo en conmutar entre dos threads dentro del mismo proceso Utilización de Arquitecturas Multiprocesador Escalabilidad

Programación Multicore Los sistemas multicore ponen presión sobre los programadores, estos desafios incluyen: Dividir actividades Balance Partición de datos Dependencia de los datos Verificación y depuración

Arquitectura de Servidor Multihilado cliente requerimiento servidor (2) crea un nuevo hilo para servir el requerimiento hilo (3) Reinicia la escucha por requerimiento adicional de los clientes

Ejecución Concurrente sobre un Sistema monocore tiemp o

Ejecución Paralela sobre un Sistema Multicore tiempo

Hilos a Nivel de Usuario Administración de hilos realizada por librerías a nivel de usuario Tres librerias primarias: POSIX Pthreads Win32 threads Java threads

Hilos a Nivel de Kernel Suportados por el Kernel Ejemplos Windows XP/2000/Vista/Seven Solaris Linux Tru64 UNIX Mac OS X

Modelos de Multihilados Muchos-a-Uno Uno-a-Uno Muchos-a-Muchos

Librerías de Hilos Las librerías de hilos proveen a los programadores con APIs para crear y administrar hilos Dos formas primarias de implementarlas Librerías enteramente en espacio de usuario Librería a nivel de Kernel soportada por el SO

Pthreads Pueden ser provistas sea a nivel de usuario como a nivel de kernel Es un standard POSIX (IEEE 1003.1c) API para creación y sincronización de hilos Las API especifican el comportamiento de la librería de hilos Común en SOs UNIX (Solaris, Linux, Mac OS X)

Cancelación de Hilos Terminar un hilo antes que finalice Dos propuestas generales: Cancelación asincrónica termina el hilo señalado inmediatamente Cancelación Diferida permite al hilo señalado verificar periódicamente si debería ser cancelado

Manejo de Signal Los Signals son usados en UNIX para notificar a un proceso que un particular evento ha ocurrido Un signal handler es usado para signals a procesos 1. El Signal es generado por un particular evento 2. El Signal es enviado a un proceso 3. El Signal es manejado Opciones: Enviar el signal al hilo sobre el cual el signal se aplica Enviar el signal a cada hilo en el proceso Enviar el signal a ciertos hilos en el proceso Asignar un hilo específico para recibir todos los signals al proceso

Pools de Hilos Crea un número de hilos en un pool donde esperan por trabajo Ventajas: Usualmente es ligeramente mas rápido servir un requerimiento con un hilo existente que crear uno nuevo Permite que el número de hilos de la aplicación sea liitado al tamaño del pool

Datos Específicos del Hilo Permite que cada hilo tenga su propia copia de datos Util cuando no se tiene control sobre el proceso de creación de hilos (p.e., cuando se usa un pool de hilos)

Hilos Windows Implementa un mapeo uno-a-uno con los hilos a nivel de kernel Cada hilo contiene Una identificación Un conjunto de registros Pilas separadas de usuario y kernel Area de datos privados El conjunto de registros, pilas y area privada de datos son conocidos como el contexto de los hilos La estructura de datos de un hilo incluye: ETHREAD (bloque ejecutivo del hilo ) KTHREAD (bloque de hilo en el kernel) TEB (bloque de ambiente del hilo)

Hilos en Linux Linux se refiere a ellos como tareas más que como hilos La creación de hilos es hecha por la llamada a sistema clone() clone() permite a una tarea hija compartir el espacio de direcciones de la tarea-padre (proceso)

Fin Módulo 4 Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur