Hilos de Procesamiento. Hilos Concepto Beneficios Hilos a nivel kérnel y a nivel usuario Modelos multihilos Hilos de Solaris 2 Hilos de Java.

Slides:



Advertisements
Presentaciones similares
TEMA 1 Introducción a la Programación Concurrente
Advertisements

Hilos Capítulo 5 Silberschatz Galvin. Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered.
HILOS Y COMUNICACIÓN ENTRE PROCESOS
Hilos - Lightweight process - Procesos ligeros
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,
SISTEMAS OPERATIVOS 1.4 CLASIFICACIÓN DE LOS S.O
FLOR ALBA ACEVEDO COD JENNIFFER TATIANA TORRES COD
Unidad 2 – Gestión de Procesos
Hilos Capítulo 5 Silberschatz Galvin. Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered.
Programación de Clientes Especialidad en Base de Datos.
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.
Desarrollador Profesional de Juegos Programación III Unidad II Hilos de ejecución Threads.
Procesos Un proceso es un programa en ejecución. Modelo de procesos secuenciales. Abstracción del SO.
SISTEMAS OPERATIVOS INTEGRANTES: ANGEL LORENZO ROMERO COD: DIANA ASTRID RAMIREZ ALBA COD:
Sistemas Operativos ➢ Que son? ➢ Que hacen? ➢ Por Juan O. Tejeda.
Microkernels - Introducción Sistemas Operativos 2 – Usac 2009.
ALUMNO: NORMA DOLORES ILLESCAS CANALIZO. GRUPO:503 CECYTEM TEPOTZOTLAN. Procesador de un servidor.
Generalidades. Introducción a los procesos
Proceso: Una instancia de un programa en ejecución
SISTEMAS OPERATIVOS Sistema de Archivos.
Programación Concurrente y Paralela (PCyP) Dr
Capítulo 5 Silberschatz Galvin
Descripcion y control de procesos
Antonio Reynoso Lobato 2002 A
Procesos Concurrentes
SISTEMAS OPERATIVOS PARALELOS Y MULTIPROCESADORES RICHARD GIOVANI MEDINA ESTEBA.
Jornadas técnicas del GUL
Conceptos Básicos de Programación
Daniela George Jiménez
ADMINISTRACíON DE LA MEMORIA EN SISTEMAS RECIENTES
Pablo Sierra Heras Sistemas operativos.
Presentamos.
Sistemas Operativos : El Alma De La Pc.
Sistemas Operativos Ing. Jhonnathan Quintero V.
DIFERENCIAR LAS FUNCIONES DEL SISTEMA OPERATIVO O S.O.
Ayudantía 3: Procesos y threads
PROCESOS COMENZAR.
DISPOSITIVOS DE E/S IU Colegio Mayor del Cauca Sistemas operativos Popayán, mayo de 2015.
SOL GUTIÉRREZ Y MARIANA HEINTZ 4°C Prof. Gustavo price
SISTEMAS OPERATIVOS APRENDICES Diana Carolina Chacón
Funciones de un Sistema Operativo (S.O.) Elementos de un S.O.
TIPOS DE SISTEMAS OPERATIVOS ● Sistemas Operativos de multiprogramación (o sistemas operativos de multitarea). ● Sistemas Operativos distribuidos. ● Sistemas.
– GESTIÓN DE PROCESOS Sistemas Operativos. AGENDA Concepto de Proceso Planificación de Procesos Operaciones entre Procesos Comunicación interprocesos.
SISTEMAS OPERATIVOS. El sistema operativo es un conjunto de programas que: ■Inicializa el hardware del ordenador. ■Suministra rutinas básicas para controlar.
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS.
Capítulo 4: hilos.
2.4.3 Procesadores Tema 2 página 35
GESTIÓN DE PROCESOS Vertical Horizontal
EJECUCION PARALELA THREADS Y FIBERS
ESTRUCTURA DE SISTEMAS OPERATIVOS Carbajal Rojas karla.
1 TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS Introducción Hardware Software Aspectos de diseño.
Núcleo Lic. Gonzalo Pastor.
SISTEMAS OPERATIVOS JOSE ANGEL MORENO B. Ingeniero de Sistemas TP # Copnia Universidad Incca de Colombia CORPORACI Ó N UNIVERSITARIA REMINGTON.
Procesos Lic. Gonzalo Pastor.
Estructura de los sistemas operativos
UNIVERSIDAD PRIVADA SAN JUAN BAUTISTA FILIAL CHINCHA ESCUELA PROFESIONAL DE INGENIERÍA DE COMPUTACIÓN Y SISTEMAS Por: Nestares Torres Luis Jesús Enrique.
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS
Axcel Sting Anchante Mosayhuate.. Qué aspecto tienen los sistemas operativos por fuera (es decir, la interfaz con el programador), ha llegado el momento.
Estructura de Sistemas Operativos
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS Magallanes Napa, Anthony Yair.
SISTEMAS OPERATIVOS En el mundo de la informática se denomina sistema operativo al programa, o conjunto de ellos, que gestiona los recursos físicos de.
Estructura de los Sistemas Operativos
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS. Estos sistemas no tienen una estructura definida, sino que son escritos como una colección de procedimientos donde.
Conjunto de programas contenidos en un núcleo o kernel que efectúan la gestión de los procesos básicos de un Sistema informático, y permite la normal.
Estructura de los Sistemas Operativos por: Omar Saravia Tasayco
SISTEMAS OPERATIVOS Estudiante: Rojas De la Cruz Jesus Manuel. Ciclo: VI. Turno: Noche.
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS By Pachas Garay Bruno.
Los sistemas operativos en el sistema informático
Transcripción de la presentación:

Hilos de Procesamiento

Hilos Concepto Beneficios Hilos a nivel kérnel y a nivel usuario Modelos multihilos Hilos de Solaris 2 Hilos de Java

Hilos Un hilo (o proceso ligero) es una unidad básica de utilización del CPU; consiste de: Contador de programa Conjunto de registros Espacio de stack

Hilos Un hilo comparte con sus hilos pares: Sección de código Sección de datos Recursos del sistema operativo En conjunto se les conoce como tarea Un proceso tradicional o pesado, es igual a una tarea con un hilo.

un proceso un hilo varios procesos un hilo por proceso varios procesos varios hilos por proceso un proceso varios hilos Hilos y procesos

Código Datos Archivos Código Datos Archivos Hilo Hilos Mono-hilo Multi-hilo Procesos con un solo hilo y con múltiples hilos

Bloque de control del hilo Stack del usuario Stack del usuario Stack del kernel Stack del Kernel Espacio de direcciones del usuario Espacio de direcciones del usuario Bloque de control del proceso Bloque de control del proceso Hilo Modelo de proceso de un solo hilo Modelo de proceso multihilos Bloque de control del hilo Stack del usuario Stack del kernel Hilo Bloque de control del hilo Stack del usuario Stack del kernel Hilo Modelos de procesos de un solo hilo y de muchos hilos

Multihilo Sistema operativo que mantiene varios hilos de ejecución dentro de un mismo proceso. MS-DOS soporta un solo hilo. UNIX soporta múltiples procesos de usuarios, pero sólo un hilo por proceso. Windows 2000, Solaris, Linux, Mac OS, OS/2 soportan múltiples hilos.

Hilos En una tarea donde hay múltiples hilos, mientras un hilo servidor está bloqueado y esperando, otro hilo en la misma tarea puede ejecutarse. Cooperación de múltiples hilos en la misma tarea aumenta la tasa de trabajos por unidad tiempo y mejora el rendimiento. Aplicaciones que requieren compartir un buffer común (productor-consumidor) sacan provecho de la utilización de hilos.

Hilos Los hilos proveen un mecanismo que permiten a procesos secuenciales hacer llamadas bloqueantes mientras otros en paralelo ejecutan otras operaciones.

Beneficios Compartición de recursos Economía Utilización de arquitecturas de múltiples procesadores

Hilos a nivel usuario El manejo de los hilos lo hace una librería de hilos a nivel usuario Ejemplos - Hilos POSIX - Mach C-threads - Hilos de Solaris

Hilos a nivel usuario (un CPU con dos núcleos) Nivel kérnel (sistema operativo) Nivel usuario Proceso de usuario gestiona y planifica los múltiples hilos Core CPU Hardware Planificador del SO

Ventajas de los hilos a nivel usuario Los hilos podían implementarse en las aplicaciones que se ejecutaban en sistemas operativos que no son capaces de planificar hilos Ejemplo: Primeras implementaciones de UNIX

Desventajas de los hilos a nivel usuario El planificador del sistema operativo solo ve un hilo por proceso  No ve los hilos a nivel usuario  Usa un solo núcleo del procesador en un procesador que tiene más de un núcleo  No puede distribuir los hilos a nivel el usuario en los dos núcleos

Hilos a nivel kérnel Soportados por el kérnel Ejemplos Windows 95/98/NT Solaris Linux Mac OS

Hilos a nivel kernel (con un CPU con un solo núcleo) Nivel kérnel (sistema operativo) Nivel usuario Core CPU Hardware Planificador del SO

Hilos a nivel kernel (con un CPU con doble núcleo) Nivel kérnel (sistema operativo) Nivel usuario Core CPU Hardware Planificador del SO

Ventajas de los hilos a nivel kérnel El proceso de usuario no se tiene que encargar de la planificación de los hilos Si tenemos un procesador con más de un núcelo, el Sistema operativo puede planificar los hilos en diferentes núcleos

Modelos multihilos Muchos a uno Uno a uno Muchos a muchos

Muchos a uno Muchos hilos a nivel usuario mapeados a un hilo a nivel kérnel. Usado en sistemas que no soportan hilos a nivel kérnel.

Modelo muchos a uno k k

Ejecución Listo Relaciones entre estados de ULTs y estados de procesos Ejecución Bloqueado Listo Ejecución Bloqueado Hilo 1 Hilo 2 Proceso B Kernel Usuario

Uno a uno Cada hilo a nivel usuario corresponde a un hilo del kérnel. Ejemplos: - Windows 95/98/NT - OS/2

Modelo uno a uno k k k k k k k k Hilo a nivel usuario Hilo a nivel kérnel

Modelo muchos a muchos k k k k k k Hilo a nivel usuario Hilo a nivel kérnel

Soporte de hilos en Solaris 2 Solaris 2 es una versión de UNIX con soporte para hilos a nivel kernel y a nivel usuario, procesamiento simétrico y planificación en tiempo real.

Soporte de hilos en Solaris 2 LWP – Nivel intermedio entre los hilos a nivel kernel y los hilos a nivel usuario.

Hilos en Solaris 2. Recursos necesarios para los tipos de hilos Hilos del kernel Estructura de datos pequeña y un stack El intercambio de hilos no requiere cambiar la información del acceso a memoria Cambios de hilos relativamente rápidos

Hilos en Solaris 2. Recursos necesarios para los tipos de hilos LWP PCB con datos de los registros Información sobre la memoria El intercambio entre LWP es relativamente lento

Hilos en Solaris 2. Recursos necesarios para los tipos de hilos Hilos a nivel usuario Solo requiere un stack y un contador de programa No involucrar al kernel significa un intercambio rápido El kernel solo ve los LWP que soporta los hilos a nivel usuario

Ejemplo de la arquitectura multihilo de Solaris

Gestión de hilos básica Un hilo tiene : Un identificador (ID) Una pila Una prioridad de ejecución Una dirección de inicio de ejecución.

Gestión de hilos básica (POSIX) Se dice que un hilo es dinámico si se puede crear en cualquier instante durante la ejecución. En POSIX : los hilos se crean dinámicamente con la función pthread_create. pthread_exit termina el hilo que la invoca.

Gestión de hilos básica (POSIX), ejemplo: Programa que crea un hilo donde muestra el mensaje “Hola Mundo” Para compilar el programa : $ cc -D_REENTRANT thread2.c -o thread2 -lpthread

int main() { pthread_create(a_thread,funcion_hilo); pthread_join(a_thread); } funcion_hilo() { … } Crea un hilo nuevo Espera a que termine el hilo creado Hilo principal Hilo creado con la llamada pthread_create

Gestión de hilos básica (POSIX) Pthread_join() Hilo que ejecuta pthread_join, espera a que termine otro hilo El hilo principal debe esperar a que terminen todos los hilos creados Si el hilo principal no espera a que terminen los hilos creados, al terminar termina el proceso con todos los hilos.

Hilos en memoria Código (compartido) Datos (compartidos) Int cont=0 (var. Global) Stack (de cada hilo) Int i (var local) Stack (de cada hilo) Int i (var local)