Jornadas técnicas del GUL

Slides:



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

I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
Daniel Morillo Jorge Boscán Gregory Carrasco
Sistemas en estratos. Descripción: se organiza en una jerarquía de estratos, estando construido cada uno de ellos sobre el otro que tiene menor jerarquía.
Comunicación y sincronización entre procesos
PONNHI PONNHI Una Nueva Arquitectura Microkernel Pthreads en Espacio de Usuario José Manuel Rodríguez García Juan A. Rico Gallego Jesús M. Álvarez Llorente.
1 Concurrencia Procesos y Programas. 2 Establecer Comunicación entre procesos (memoria común)
Semáforos Cecilia Hernández
Hilos - Lightweight process - Procesos ligeros
Profesor: Rodrigo Sanhueza Figueroa
IET110 Sistemas Operativos P04: Exclusión Mutua Prof. Jonathan MakucSlide: 1.
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,
Concepto de proceso Sebastián Sánchez Prieto. Procesos 2  S2P, OGP & IGT Definición de proceso Un proceso es un programa en ejecución Componentes:
* La clonación del disco es el proceso de copiar los contenidos del disco duro de una computadora a otro disco o a un archivo “imagen”. A menudo, los.
Sincronización de Procesos
Teoría de Sistemas Operativos Departamento de Electrónica 2º Semestre, 2002 Gabriel Astudillo Muñoz
FLOR ALBA ACEVEDO COD JENNIFFER TATIANA TORRES COD
UTFSM - Sistemas Operativos
Programación de Clientes Especialidad en Base de Datos.
Desarrollador Profesional de Juegos Programación III Unidad II Hilos de ejecución Threads.
Threads Introducción Modelos Multi-Threading Problemas con Threads Pthreads Threads en Solaris 2 Threads en Windows 2000 Threads en Linux Threads en Java.
Procesos Un proceso es un programa en ejecución. Modelo de procesos secuenciales. Abstracción del SO.
Resumen de Sistemas Operativos I Msc./Ing. Antonio Mena.
Estructura_clase Ing. Eduard Antonio Lozano Córdoba.
Subsistema de Administración de Procesos en GNU/Linux.
MUTEX. QUE ES CONCURRENCIA - MUTEX  Son el mecanismo que nos ayuda en la sincronización para proteger una sección crítica en nuestro código.  Estas.
Sistemas operativos Linux
Proceso: Una instancia de un programa en ejecución
Procesos Concurrentes
Comunicación, Sincronización y Concurrencia de procesos
Paul Leger Procesos (capitulo 2) Paul Leger
Agustín J. González Programación de Sistemas: ELO-330
Concepto de proceso Rina Arauz.
Conceptos Básicos de Programación
Daniela George Jiménez
Exclusión mutua de secciones
Paul Leger Procesos Paul Leger
Comunicación de redes informáticas
Tema 8: Sincronización y Comunicación
Monitores Mecanismo sincronización de nivel más alto que semáforos Construcción a nivel de lenguaje de programación que controla el acceso a datos compartidos.
L.I. Gerardo Ortiz Rivera
Universidad Abierta Interamericana Ingeniería en Sistemas Informáticos
Creando un solo datapath
Codificación y Modulación Nombre: Fernando Jesús Uc Huchín.
El núcleo del sistema operativo
SISTEMAS OPERATIVOS CONCEPTOS ARQUITECTONCOS DE LA COMPUTADORA
El núcleo del sistema operativo
PROCESOS COMENZAR.
Salvador Arteaga Gracia
DESCRIPCION DEL GLOSARIO TIC
Sistemas Operativos Semáforos II.
Tema 2 Sistemas Operativos
Concurrencia..
– GESTIÓN DE PROCESOS Sistemas Operativos. AGENDA Concepto de Proceso Planificación de Procesos Operaciones entre Procesos Comunicación interprocesos.
Diego Felipe Morales Cerón
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS.
Capítulo 4: hilos.
REDES INFORMÁTICAS TIPOS DE REDES Gonzalo Aparicio Muñoz 4ºA.
Estructura de los sistemas Operativos 1. Componentes de un sistema operativo  Administración de procesos  Administración de memoria  Subsistema de Entrada/Salida.
EJECUCION PARALELA THREADS Y FIBERS
ESTRUCTURA DE SISTEMAS OPERATIVOS Carbajal Rojas karla.
MONITORES INTEGRANTES: Arias Marcelo Tnt. Espín Roberto Tnt. Rosero Santiago.
Núcleo Lic. Gonzalo Pastor.
SISTEMAS OPERATIVOS JOSE ANGEL MORENO B. Ingeniero de Sistemas TP # Copnia Universidad Incca de Colombia CORPORACI Ó N UNIVERSITARIA REMINGTON.
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS Magallanes Napa, Anthony Yair.
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS. Estos sistemas no tienen una estructura definida, sino que son escritos como una colección de procedimientos donde.
Estructura de los Sistemas Operativos por: Omar Saravia Tasayco
Hilos de Procesamiento. Hilos Concepto Beneficios Hilos a nivel kérnel y a nivel usuario Modelos multihilos Hilos de Solaris 2 Hilos de Java.
VARIABLE Y TIPO DE DATOS. ¡Que Es Variable? Un lugar para almacenar información en un espacio de memoria de la computadora.
Transcripción de la presentación:

Jornadas técnicas del GUL Threads et al. Jornadas técnicas del GUL

¿Qué es un thread? Definición 1: Hilo de control Definición 2: Proceso que comparte memoria Definición 3 Cooperativos versus expulsivos

¿Qué es un thread? Un hilo de control Tiene un estado, en general registros mínimo: SP y PC

¿Qué es un thread? Proceso: Tipo de datos dentro del kernel Abstracción que da el sistema operativo Programa en ejecución (Tanenbaum) Planificado de forma expulsiva

¿Qué es un thread? Thread: Puede conocerlo el kernel o no Colaborativo o expulsivo Comparten memoria Puede haber uno o más por proceso N:M one to one many to many etc. Hay threads que se implementan como procesos que comparten memoria.

Green Threads v.s. Red Threads La razón original de los threads (“los procesos son pesados”) ya no es válida en muchos casos Los threads se implementan como procesos Green Threads: N:1 espacio de usuario Red Threads: 1:1 kernel

¿Qué es un thread? espacio de usuario Un proceso en el que vivir Un hilo de ejecución: Contador de programa, función main Un contexto de ejecución: Pila, contador de programa, registros, pila, pila de señales crear/salvar/recomponer estado Problema señales y otros

¿Qué es un thread? en el kernel Como fork() pero para crear compartiendo: clone() o rfork() Se puede compartir memoria CLONE_VM RFMEM Descriptores de ficheros Grupo de threads Espacios de nombres etc.

Threads expulsivos, threads colaborativos Depende del lenguaje/uso Expulsivos, cada cierto X se les echa (da igual lo que estén haciendo), señales, el kernel Colaborativos llaman a funciones (explícitas o no) que le echan, thread_yield(), sched_yield(), send(), down()...

Condiciones de carrera Los threads comparten memoria Pueden acceder a la vez Leo/modifico/escribo entrelazado Necesito mecanismos de sincronización y comunicación de threads, semáforos, variables-condición, monitores, señales, locks, qlocks, rwlocks, rendezvouz, canales...

Muchos mecanismos En linux futex() En Plan 9 rendez() Similares, implementan variables condición. Implementan semáforos, canales... 3 cosas sincronización, comunicación, exclusión mutua

Canales Si sabes usar ls|wc sabes usarlos Síncronos, pasan mensajes, normalmente un tipo de datos, en C un puntero sencillos send() recv() alt() Con y sin buffering ¿Me bloquearé?

Semáforos Caja de fichas Coger ficha (down, wait) Soltar ficha (up, signal)

Pthreads en Linux Tiene semáforos Implementado con futex() + clone() No lo recomiendo Es una implementación 1:1 con procesos ligeros clone() La última versión se llama NPTL (native POSIX Threads Library), la versión original era LinuxThreads ¿He dicho ya que no lo recomiendo?

Thread library, p9ports Dos versiones, una con tas + setcontext/getcontext/makecontext setjmp -> sigsetjmp -> setcontext La otra tira directamente de pthreads Usa procs, threads + canales Es trivial de usar, mirar la implementación es muy instructivo Tas -> ensamblador xchg Contexto, SP, PC, sigstack