Hilos. Hilos. Revisión Modelos Multihilados Librerías de Hilos Aspectos sobre Hilos Ejemplos de Sistemas Operativos Hilos en Linux

Documentos relacionados
Threads, SMP y Microkernels. Proceso

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

Concurrencia y paralelismo

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

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

INSTITUTO TECNOLOGICO DE LAS AMERICAS CARRERA DE TECNOLOGO EN REDES DE LA INFORMACION SISTEMAS OPERATIVOS I

Sistemas Operativos. Programa Sintético. Objetivos del Curso de Sistemas Operativos. Bibliografía de Sistemas Operativos

UNIVERSIDAD NACIONAL DEL SUR 1 BAHIA BLANCA DEPARTAMENTO DE CIENCIAS E INGENIERÍA DE LA COMPUTACION

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

Sistemas Distribuidos. Soporte de Sistemas Operativos

UNIVERSIDAD NACIONAL DEL SUR 1 BAHIA BLANCA DEPARTAMENTO DE CIENCIAS E INGENIERÍA DE LA COMPUTACION CORRELATIVAS OBJETIVOS

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

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

ESCUELA: UNIVERSIDAD DEL ISTMO

Herramientas Informáticas I Software: Sistemas Operativos

Sistemas Operativos. Segundo Cuatrimestre de Práctica y Laboratorio : Miércoles de 17 a 21h, en el laboratorio.

SILABO DE SISTEMAS OPERATIVOS

Sistemas Operativos. Iván Bernal, PhD 4. Escuela Politécnica Nacional I.

Sistemas Operativos Ricardo Sanz

REPRESENTACIÓN INTERNA DE FICHEROS

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

SO - Sistemas Operativos

SISTEMAS OPERATIVOS. SOP ITIG Curso 2007/08

UNIVERSIDAD NACIONAL DE INGENIERÍA

Asignaturas antecedentes y subsecuentes

Procesos. Bibliografía. Threads y procesos. Definiciones

Informática Electrónica Manejadores de Dispositivos (Device Drivers)

UNIVERSIDAD DEL CARIBE UNICARIBE. Escuela de Informática. Programa de Asignatura

Pontificia Universidad Católica del Ecuador

Pontificia Universidad Católica del Ecuador

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

Programa de la asignatura Curso: 2007 / 2008 SISTEMAS OPERATIVOS (1299)

SISTEMAS OPERATIVOS ACTIVIDAD: TRABAJO COLABORATIVO

ESTUDIO DE CASOS: LINUX

CI-1310 Sistemas Operativos. Objetivos. Metodología. Universidad de Costa Rica Escuela de Ciencias de la Computación e Informática

UNIVERSIDAD DEL CARIBE UNICARIBE. Escuela de Informática. Programa de Asignatura

Tecnología de software para sistemas de tiempo real

Guía Docente 2015/2016

HP - UX. Qué es HP UX?

Sistemas Operativos. Introducción. Tema 6

SISTEMAS OPERATIVOS. Informática Básica

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

Carrera: IFM Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.

Objetos de aprendizaje: Computadora

Aplicaciones Concurrentes

PLANIFICACIÓN DE LA DOCENCIA UNIVERSITARIA GUÍA DOCENTE. Sistemas Operativos

Definición de Sistema Operativo

GUÍA DOCENTE Programación Concurrente y de Tiempo Real

Sistemas Operativos. Curso 2014 Estructura de los sistemas operativos

FUNDAMENTOS DE INFORMÁTICA. Principios Básicos de Sistemas Operativos. Definición de Sistema Operativo

CARRERA PROFESIONAL DE INGENIERÍA DE COMPUTACIÓN Y SISTEMAS

ASIGNATURA: SISTEMAS OPERATIVOS I Cód.: Régimen: Cuatrimestral Horas semanales: 4 horas Escuela: Sistemas 2011 FUNDAMENTOS:

Secretaría Nacional de la Administración Pública Subsecretaría de Tecnologías de la Información

Uso y Administración de Sistemas Operativos (TC2009)

En el primer capítulo de los dos siguientes volúmenes puede encontrarse un buen resumen de la historia y evolución de los ordenadores:

Mac OS X. Apple Inc. Historia

Nombres y Sistemas de Archivos en Sistemas Distribuidos

SiSO: Un simulador integral del Sistema Operativo

Usando el Sistema Operativo

Grado en Sistemas de información Universidad de Alcalá Curso Académico

Introducción a los Sistemas Operativos

una red de equipos no puede funcionar sin un sistema operativo de red

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

Introducción al Software Libre

PROPUESTA DE MINOR. En caso de tomar el electivo: trabajar desarrollando software en grupo planificar el desarrollo del software

ASIGNATURAS CORRELATIVAS PRECEDENTES Programación II

SISTEMAS OPERATIVOS Arquitectura de computadores

BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA FACULTAD CIENCIAS DE LA COMPUTACIÓN

UNIVERSIDAD AUTÓNOMA DE YUCATÁN FACULTAD DE MATEMÁTICAS MISIÓN

SISTEMAS OPERATIVOS. Carrera/ Plan: Licenciatura en Sistemas, Licenciatura en Informática. Planes: 2003, 2007 y 2015

UNIVERSIDAD NACIONAL FEDERICO VILLARREAL FACULTAD DE INGENIERÍA ELECTRÓNICA E INFORMÁTICA SÍLABO

FACULTAD DE INGENIERÍA DEPARTAMENTO DE INGENIERÍA INFORMÁTICA Y CIENCIAS DE LA COMPUTACIÓN CÓDIGO AÑO APLICACIÓN 2007 ELECT. COMP.

ARISO 2 - Arquitectura de Computadores y Sistemas Operativos II

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

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

Tema 1: Arquitectura de ordenadores, hardware y software

T5-multithreading. Indice

Sistemas Distribuidos: Migración de Procesos

ASIGNATURA: SISTEMAS OPERATIVOS II

GUÍA DOCENTE CURSO FICHA TÉCNICA DE LA ASIGNATURA. Datos de la asignatura Nombre Sistemas Operativos

Qué es un Sistema Operativo?

Materia: Sistemas Operativos

Lusitania. Pensando en Paralelo. César Gómez Martín

INFORMATICA III. Capítulo I: Plataformas

SISTEMAS. UNIDAD VI Parte A ADMINISTRACION DE MEMORIA ING. AGUILERA SERGIO OMAR

Sistemas Operativos INTRODUCCIÓN A LAS TECNOLOGÍAS INFORMÁTICAS

1. Definición de puerto 2. Sockets 3. Conceptos cliente/servidor 4. Definición de Stream 5. Concurrencia, multiprogramación y multitarea 6.

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

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

Introducción a los Sistemas Operativos

Servicios del Sistema Operativo (SO)

Tema 2. Arquitecturas de Sistemas Operativos

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

POSGRADO EN DESARROLLO DE APLICACIONES PARA ANDROID CON JAVA

Introducción a la Operación de Computadoras Personales

Unidad 8. Bases de Datos en el Modelo Cliente Servidor

Ejercicio 1: Windows En este primer ejercicio primero vamos a ver que es el Sistema Operativo Windows, qué es un Sistema Operativo y para que sirve.

Tema 3: Conceptos básicos de GNU/LINUX. Objetivo:

INFORMATICA III. Capítulo I: Plataformas

Gestión de Entrada-salida

Transcripción:

Hilos Hilos Revisión Modelos Multihilados Librerías de Hilos Aspectos sobre Hilos Ejemplos de Sistemas Operativos Hilos en Linux 1

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 su: Sección 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. 2

Hilos Un proceso Un thread Un proceso Múltiples threads Múltiples procesos Un thread por proceso Múltiples procesos Múltipes thread por proceso Hilos hilo hilo Proceso mono hilado Proceso multihilado 3

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 secuenciales hacer llamadas al sistema bloqueantes mientras que también logra paralelismo. Hilos Ejemplo de un procesador de texto con 3 hilos 4

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 introducen nuevos desafíos. Dividir actividades Balance Partición de datos Dependencia de los datos Verificación y depuración 5

Ejecución Concurrente y Paralela Un solo núcleo tiempo Múltiples núcleos tiempo Hilos - Clasificación A nivel de USUARIO la administración es realizada por librerías a nivel de usuario. Tres librerías primarias: POSIX Pthreads Win32 threads Java threads A nivel de KERNEL la administración es realizada por el sistema operativo Ejemplos: Windows XP/2000/Vista/7/8 Solaris (de Sun, ahora Oracle) Tru64 UNIX (de Digital, luego Compaq, finalmente HP) Mac OS X (Apple) 6

Hilos a Nivel de Usuario Relación estado Proceso e Hilo Hilos a Nivel de Usuario y de Kernel 7

Modelos de Multihilados Muchos a Uno (M:1) Uno a Uno (1:1) Muchos a Muchos (M:M) Muchos a Uno Muchos hilos a nivel de usuario mapean a un hilo a nivel de kernel. Usado en sistemas que no soportan hilos a nivel kernel. Hilo a nivel de usuario Hilo a nivel de kernel 8

Muchos a Muchos Permite que muchos hilos a nivel de usuario mapeen a muchos hilos a nivel de kernel Permite al SO crear un número suficiente de hilos a nivel de kernel Solaris antes de la versión 9 Windows NT/2000 en adelante con paquete ThreadFiber Hilo a nivel de usuario Hilo a nivel de kernel Uno a Uno Cada thread nivel usuario mapea a un thread kernel. Ejemplos Windows NT/XP/2000 y los que siguen Linux Solaris 9 y los que siguen Hilo a nivel de usuario Hilo a nivel de kernel 9

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 Librería de hilos - 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) 10

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 11

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 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) 12

Bibliografía: - Silberschatz, A., Gagne G., y Galvin, P.B.; "Operating System Concepts", 7 ma Edición. 2009, 9 na. Edición 2012. - Stallings, W. "Operating Systems: Internals and Design Principles", Prentice Hall, 4 ta Edición, 2001; 5 ta Edición, 2005. 6 ta Edición, 2009; 7 ma Edición, 2011. - Tanenbaum, A.; "Modern Operating Systems", Addison-Wesley, 3 ra. Edición 2008, 4 ta. Edición 2014. 13