Programación Concurrente
|
|
|
- Ana Belén Cordero Figueroa
- hace 7 años
- Vistas:
Transcripción
1 Master en Computación Programación Concurrente Bloque II: Programación concurrente en POSIX Tema 1. Introducción al estándar POSIX Tema 2. Sistema Operativo MaRTE OS Tema 4. Gestión del Tiempo Tema 5. Planificación de s Tema 6. Sincronización Tema 7. Señales Tema 8. Temporizadores y Relojes de Tiempo de Ejecución Programación Concurrente oct Procesos y threads 3.2. s POSIX: conceptos básicos 3.3. Creación de threads 3.4. Terminación de threads 3.5. Identificación de threads 3.6. Implementación de la concurrencia a nivel de threads Programación Concurrente oct Procesos y threads 3.1 Procesos y threads El modelo de proceso proporciona protección, pero es inadecuado para sistemas que requieren alta eficiencia: Tiempos de cambio de contexto altos Tiempos de creación y destrucción altos Necesidad de hardware especial (MMU) MMU Tabla de páginas de memoria Proc 3 espacio de direcciones del proceso Proceso en ejecución Proc 1 Proc 2 Otros procesos Proc n Programación Concurrente oct-13 3
2 s 3.1 Procesos y threads (cont.) POSIX.1 define interfaces para soportar múltiples threads o flujos de control en cada proceso POSIX Los threads de un proceso comparten un Proceso único espacio de direcciones El estado asociado es pequeño Los tiempos de cambio de contexto son menores Los tiempos de creación y destrucción son menores Son similares a las tareas de un kernel de tiempo real de alta eficiencia Sistema mínimo (MaRTE OS): existe un único proceso Programación Concurrente oct s POSIX: conceptos básicos 3.2 s POSIX: conceptos básicos : un flujo de control simple perteneciente a un proceso tiene un identificador de thread (tid) el tid solo es válido para threads del mismo proceso tiene su propia política de planificación, y los recursos del sistema necesarios, tales como su propio stack, etc todos los threads de un proceso comparten un único espacio de direccionamiento Proceso en una implementación multi-thread: un espacio de direccionamiento con uno o varios threads inicialmente contiene un solo thread: el thread principal el thread principal es un thread más, salvo que cuando él termina, todos los demás también Programación Concurrente oct s POSIX: conceptos básicos s POSIX: conceptos básicos (cont.) Servicios bloqueantes: sólo se suspende el thread que invoca el servicio En MaRTE OS sobre Linux se bloquea todo el proceso Los threads tienen dos estados posibles para controlar la devolución de recursos al sistema: detached o independiente: PTHREAD_CREATE_DETACHED - cuando el thread termina, devuelve al sistema los recursos utilizados (tid, stack, etc) - no se puede esperar su terminación joinable o sincronizado: PTHREAD_CREATE_JOINABLE - cuando el thread termina, mantiene sus recursos - se liberan cuando otro thread llama a pthread_join() - por defecto un thread es "joinable" Programación Concurrente oct-13 6
3 Para crear un thread es preciso definir sus atributos en un objeto especial (pthread_attr_t) El objeto de atributos debe crearse antes de usarlo: pthread_attr_init() puede borrarse: pthread_attr_destroy() se pueden modificar o consultar atributos concretos del objeto (pero no los del thread, que se fijan al crearlo) Los atributos definidos son: tamaño de stack mínimo (opcional) dirección del stack (opcional) control de devolución de recursos ( detach state ) atributos de planificación (tema 5) Programación Concurrente oct-13 7 Atributos de creación: interfaz int pthread_attr_init (pthread_attr_t *attr); int pthread_attr_destroy (pthread_attr_t *attr); int pthread_attr_setstacksize (pthread_attr_t *attr, size_t stacksize); int pthread_attr_getstacksize (const pthread_attr_t *attr, size_t *stacksize); int pthread_attr_setstackaddr (pthread_attr_t *attr, void *stackaddr); int pthread_attr_getstackaddr (const pthread_attr_t *attr, void **stackaddr); int pthread_attr_setdetachstate (pthread_attr_t *attr, int detachstate); int pthread_attr_getdetachstate (const pthread_attr_t *attr, int *detachstate); PTHREAD_CREATE_DETACHED PTHREAD_CREATE_JOINABLE Programación Concurrente oct-13 8 Llamada para creación de threads Interfaz: int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg); Esta función: crea un nuevo thread con atributos especificados por attr devuelve el tid del nuevo thread en thread el thread se crea ejecutando start_routine(arg) si start_routine termina, es equivalente a llamar a pthread_exit (observar que esto difiere del thread main) Programación Concurrente oct-13 9
4 Ejemplo de creación de threads #include <stdio.h> #include <unistd.h> #include <misc/error_checks.h> // que pone pseudo-periódicamente un mensaje en pantalla // el periodo se le pasa como parámetro void *periodic (void *arg) int period; period = *((int *)arg); while (1) printf("en el thread con periodo %d\n",period); sleep (period); Programación Concurrente oct Ejemplo de creación de threads (cont.) // Programa principal que crea dos threads pseudo-periódicos int main () pthread_t th1,th2; pthread_attr_t attr; int period1=2 int period2=3; // Crea el objeto de atributos para crear threads independientes CHK( pthread_attr_init(&attr) ); CHK( pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED) ); // Crea los threads CHK( pthread_create(&th1, &attr, periodic, &period1) ); CHK( pthread_create(&th2, &attr, periodic, &period2) ); // Les deja ejecutar un rato y luego termina sleep(30); printf("thread main terminando \n"); exit (0); Programación Concurrente oct Función para terminación de threads: void pthread_exit (void *value_ptr); Esta función termina el thread y hace que el valor apuntado por value_ptr esté disponible para una operación join se ejecutan las rutinas de cancelación pendientes al terminar un thread es un error acceder a sus variables locales Programación Concurrente oct-13 12
5 Terminación de threads (cont.) Se puede esperar (join) a la terminación de un thread cuyo estado es sincronizado (joinable), liberándose sus recursos: int pthread_join (pthread_t thread, void **value_ptr); También se puede cambiar el estado del thread a detached, con lo que el thread, al terminar, libera sus recursos: int pthread_detach (pthread_t thread); Por defecto el estado de un thread es joinable Existen también funciones para cancelar threads, habilitar o inhibir la cancelación, etc. (ver el manual). Programación Concurrente oct Ejemplo: uso de pthread_join #include <stdio.h> #include <misc/error_checks.h> #define MAX #define MITAD (MAX/2) typedef struct int *ar; long n; subarray_t; // que incrementa n componentes de un array void * incrementer (void *arg) long i; subarray_t * subarray = ((subarray_t *)arg); for (i=0; i < subarray->n; i++) subarray->ar[i]++; return NULL; Programación Concurrente oct Ejemplo: uso de pthread_join (cont.) // programa principal que reparte entre dos threads el trabajo // de incrementar los componentes de un array int main() int ar [MAX] = 0 ; // inicializa los elementos a 0 pthread_t th1,th2; subarray_t sb1,sb2; long suma=0, i; // crea los theads sb1.ar = &ar[0]; sb1.n = MITAD; // primera mitad del array CHK( pthread_create(&th1, NULL, incrementer, &sb1) ); sb2.ar = &ar[mitad]; sb2.n = MITAD; // segunda mitad del array CHK( pthread_create(&th2, NULL, incrementer, &sb2) ); // sincronizacion de espera a la finalizacion CHK( pthread_join(th1, NULL) ); CHK( pthread_join(th2, NULL) ); printf ("Ambos threads han finalizado \n"); // muestra resultados for (i=0; i<max; i++) suma=suma+ar[i]; printf ("Suma=%d\n",suma); return 0; Programación Concurrente oct-13 15
6 3.5 Identificación de threads Identificación del propio thread: pthread_t pthread_self(void); 3.5 Identificación de threads Comparación de tids: int pthread_equal (pthread_t t1, pthread_t t2); Programación Concurrente oct Implementación de la concurrencia a nivel de threads stack de t1 (variables locales y llamadas a funciones anidadas) stacks de otros threads variables globales ESP 0xEF48 IP 0xA3B2 Flags 0x03E1... 0x24D3 : Código Reg. procesador código de t1 void *t1 (void *a) int i; i++; Programación Concurrente oct Cambio de contexto Registros variables globales ESP 0xEF48 IP 0xA3B2 Flags 0x03E1... 0x24D3 void *t2 (void *a) int j; j++; código de t1 código de t2 void *t1 (void *a) int i; i++; Programación Concurrente oct-13 18
7 Cambio de contexto (cont.) Registros variables globales ESP 0xD15A IP 0x9313 Flags 0x28C1... 0x3A17 void *t2 (void *a) int j; j++; código de t1 código de t2 void *t1 (void *a) int i; i++; Programación Concurrente oct Implementación de threads a nivel de librería pseudothread 1 1 MaRTE OS pseudothread 2 2 pseudothread 3 3 main thread Proceso Linux thread Linux Programación Concurrente oct-13 20
Bloque I: Principios de sistemas operativos
Bloque I: Principios de sistemas operativos Tema 1. Principios básicos de los sistemas operativos Tema 2. Concurrencia Tema 3. Ficheros Tema 4. Sincronización y programación dirigida por eventos Tema 5.
Programación Concurrente
Master en Computación Programación Concurrente Bloque II: Programación concurrente en POSIX Tema 1. Introducción al estándar POSIX Tema 2. Sistema Operativo MaRTE OS Tema 3. Gestión de Threads Tema 5.
SISTEMAS OPERATIVOS: PROCESOS. Hilos y Procesos
SISTEMAS OPERATIVOS: PROCESOS Hilos y Procesos ADVERTENCIA 2 Este material es un simple guión de la clase: no son los apuntes de la asignatura. El conocimiento exclusivo de este material no garantiza que
Hilos (threads) Realizado por M. Curiel
Hilos (threads) Realizado por M. Curiel Definiciones Un proceso es una entidad que posee 2 características importantes: - Recursos: un espacio de direcciones (programas, datos, pila y un PCB), archivos,
Bloque I: Principios de sistemas operativos
Bloque I: Principios de sistemas operativos Tema 1. Principios básicos de los sistemas operativos Tema 2. Concurrencia Tema 3. Ficheros Tema 4. Sincronización y programación dirigida por eventos Tema 5.
Función monitoreo descriptor archivo #include <sys/types.h> #include<unistd.h> #include<errno.h> extern void procesamiento_datos(char *, int); void pr
Introducción al concepto de threads Dr.. Roberto Gómez Cárdenas DCC del ITESM-CEM [email protected] http://homepage.cem.itesm.mx/rogomez Función monitoreo descriptor archivo #include #include
Estándares POSIX. Estándares base
Estándares POSIX Estándares base. ntaxis y semántica con diversos aspectos del sistema operativo No especifica la implementación La mayoría basados en el lenguaje C Interfaces en diferentes lenguajes Los
T5-multithreading. Indice
T5-multithreading 1.1 Indice Proceso vs. Flujos Librerías de flujos Comunicación mediante memoria compartida Condición de carrera Sección Crítica Acceso en exclusión mutua Problemas Abrazos mortales 1.2
PARTE II PROGRAMACION CON THREADS EN C
PARTE II PROGRAMACION CON THREADS EN C II.1 INTRODUCCION Una librería o paquete de threads permite escribir programas con varios puntos simultáneos de ejecución, sincronizados a través de memoria compartida.
Sincronización de Threads
Funciones POSIX III Funciones POSIX III Sincronización Sincronización Procesos Procesos Semáforos Semáforos (sem_t) (sem_t) Sincronización Sincronización Threads Threads Mutex Mutex (pthread_mutex_t) (pthread_mutex_t)
Procesos e hilos: cálculo de
Departamento de Automática 1 / 10 Índice Creación y sincronización de hilos Acceso a variables globales en exclusión mutua 2 / 10 Objetivo principal: obtener una aproximación al valor de empleando el método
Hilos de ejecución POSIX
Hilos de ejecución POSIX Ampliación de Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Hilos de ejecución Concepto Un proceso convencional se caracteriza por: Ser
Programación Concurrente
Master en Computación Programación Concurrente Bloque II: Programación concurrente en POSIX Tema 1. Introducción al estándar POSIX Tema 2. Sistema Operativo MaRTE OS Tema 3. Gestión de Threads Tema 4.
HILOS POSIX. LABORATORIO DE SISTEMAS DE OPERACIÓN I (ci 3825) Prof. Yudith Cardinale Enero marzo 2011
HILOS POSIX LABORATORIO DE SISTEMAS DE OPERACIÓN I (ci 3825) Prof. Yudith Cardinale Enero marzo 2011 Librería #include HILOS POSIX Función que se comportará como hilo: void * mihilo(void *arg)
Procesos e hilos. Pablo San Segundo (C-206)
Procesos e hilos Pablo San Segundo (C-206) [email protected] KERNEL DEL SISTEMA OPERATIVO Al arrancar el PC siempre se carga en memoria una copia del Kernel desde disco El Kernel del sistema operativo
Fundamentos de los Sistemas Operativos
Práctica 3 : hilos! Fundamentos de los Sistemas Operativos Grado en Ingeniería Informática Rubén García Rodríguez Alexis Quesada Arencibia Eduardo Rodríguez Barrera Francisco J. Santana Pérez José Miguel
Programación de Multitareas utilizando Hilos
Programación de Multitareas utilizando Hilos Enero/2012 Programación de Multitareas utilizando Hilos Origen de los hilos como elementos necesarios en la programación de multitareas Multihilos en un solo
Taller de pthreads. Sistemas Operativos. Verano de 2009
Verano de 2009 Menú del día Hoy veremos: Introducción a pthreads Creación de threads Variables mutex Variables de condición Tutoriales de HPC Lawrence Livermore National Laboratory (http://www.llnl.gov)
SISTEMAS OPERATIVOS: COMUNICACIÓN Y SINCRONIZACIÓN ENTRE PROCESOS. Desarrollo de servidores concurrentes
SISTEMAS OPERATIVOS: COMUNICACIÓN Y SINCRONIZACIÓN ENTRE PROCESOS Desarrollo de servidores concurrentes Contenido 2 Servidores de peticiones. Solución basada en procesos. Solución basada en hilos bajo
Sistemas Operativos I Manual de prácticas
Sistemas Operativos I Manual de prácticas Grupo de Sistemas Operativos (DSIC/DISCA) Práctica 4: Programación con hilos OBJETIVOS DE LA PRÁCTICA...2 ANTES DE EMPEZAR......2 PARTE 1: HOLA MUNDO CONCURRENTE...3
Informática I Threads
Informática I Threads 28 de Setiembre 2010 1 Concepto de programación paralela. 2. 3 Concurrencia => Race Conditions. 4. 5 Funciones Concepto de Programación Paralela Computación paralela Técnica de programación
Entorno de programación de nivel 1: La librería PCAP
Entorno de programación de nivel 1: La librería PCAP La librería libpcap nos permite capturar paquetes desde un programa C. En sistemas Windows, la librería se llama Winpcap. Para compilar cualquier programa
Sistemas Operativos. Procesos
Sistemas Operativos Procesos Agenda Proceso. Definición de proceso. Contador de programa. Memoria de los procesos. Estados de los procesos. Transiciones entre los estados. Bloque descriptor de proceso
1. Procesos vs Hilos 2. Cuando se ejecutan los procesos 3. Fork 4. Clone 5. Cómo se ejucuta el fork? 6. do_fork() 7. copy_process 8.
1. Procesos vs Hilos 2. Cuando se ejecutan los procesos 3. Fork 4. Clone 5. Cómo se ejucuta el fork? 6. do_fork() 7. copy_process 8. Código Proceso Manejados por el sistema operativo Memoria independiente
SISTEMAS OPERATIVOS: Lección 5: Hilos y Procesos
SISTEMAS OPERATIVOS: Lección 5: Hilos y Procesos Jesús Carretero Pérez Alejandro Calderón Mateos José Daniel García Sánchez Francisco Javier García Blas José Manuel Pérez Lobato María Gregoria Casares
Concurrencia en UNIX / LINUX. Introducción: Procesos e Hilos POSIX
Concurrencia en UNIX / LINUX Introducción: Procesos e Hilos POSIX El estándar POSIX POSIX: Interfaz de sistemas operativos portables. Basado en UNIX A pesar de que UNIX es ya de por sí estándar, había
Sistemas Operativos Práctica 3
Sistemas Operativos Práctica 3 Ing. Andrés Bustamante [email protected] Ingeniería de Sistemas Facultad de Ingeniería Universidad de la Amazonia 2009 1. Objetivo El objetivo de la práctica es que
Threads en Linux. Definición de thread. Thread implementado en Linux. Creando un thread en Linux. Ing. Marcelo Doallo Threads en Linux 1/9
Threads en Linux Definición de thread Es un mecanismo por el cual un programa puede hacer mas de una cosa al mismo tiempo. Como los procesos, los threads parecen correr simultáneamente; pero hay que tener
Biblioteca de sistema
* Para la realización del presente examen se aconseja un tiempo de 2 horas. Teoría 1. Explique en detalle cómo se pasa una llamada al sistema operativo. El sistema operativo se activa cuando debe responder
SISTEMAS OPERATIVOS:
SISTEMAS OPERATIVOS: Lección 8: Desarrollo de servidores concurrentes Jesús Carretero Pérez Alejandro Calderón Mateos José Daniel García Sánchez Francisco Javier García Blas José Manuel Pérez Lobato Introducción
Introducción general al Lenguaje C (2010/2011)
Luis Valencia Cabrera [email protected] (http://www.cs.us.es/~lvalencia) Ciencias de la Computacion e IA (http://www.cs.us.es/) Introducción general al Lenguaje C (2010/2011) Universidad de Sevilla Índice
Threads. Hilos - Lightweight process - Procesos ligeros
Threads Hilos - Lightweight process - Procesos ligeros 1 Temario Concepto y Beneficios Estructuras de implementación: Servidor- Trabajador, Equipo, Pipeline Reconocimiento: En el espacio del usuario /
Fundamentos de los Sistemas Operativos. Tema 2. Procesos José Miguel Santos Alexis Quesada Francisco Santana
Fundamentos de los Sistemas Operativos Tema 2. Procesos 1998-2015 José Miguel Santos Alexis Quesada Francisco Santana Contenidos del Tema 2 Qué es un proceso Estructuras de datos para gestionar procesos
Boletín de ejercicios 2.2 Ejercicios sobre gestión básica de hilos
Boletín de ejercicios 2.2 Ejercicios sobre gestión básica de hilos July 13, 2016 1. Implementa un programa en C que calcule el factorial de los números que se le pasan como argumentos. El programa creará
Sistemas Operativos 1
Ejercicio 1. Se desea implementar una aplicación de n procesos concurrentes, donde cada proceso ejecuta una determinada tarea en forma de pipeline. Un ejemplo de esta aplicación con n=4 sería la siguiente:
PROGRAMACIÓN MULTITHREADING
ECAR 2012 PROGRAMACIÓN MULTITHREADING 1 PROGRAMACIÓN BÁSICA PROGRAMACIÓN MULTITHREADING Sergio Nesmachnow ([email protected]) Gerardo Ares ([email protected]) Escuela de Computación de Alto Rendimiento
Prácticas de Sistemas Operativos
Prácticas de Sistemas Operativos GRUPO DE COMPUTADORES Y TIEMPO REAL J. Javier Gutiérrez 1 Práctica 1 Gestión de procesos y threads Objetivos: Practicar la gestión de procesos y threads concurrentes Desarrollar
Funciones POSIX (I): Introducción
Funciones POSIX I Funciones POSIX I Llamadas al Llamadas al Sistema Sistema Gestión Básica Gestión Básica de Procesos de Procesos Procesos Procesos fork fork Señales Señales getpid getpid Memoria Memoria
Clases 04 y 05: Repaso de programación de sistemas basados en UNIX
Clases 04 y 05: Repaso de programación de sistemas basados en UNIX Prof. Edgardo Adrián Franco Martínez http://computacion.cs.cinvestav.mx/~efranco [email protected] Estructuras de datos (Prof.
Arquitecturas cliente/servidor
Arquitecturas cliente/servidor Creación de Sockets Cliente Servidor 1 Creación de Sockets Cliente/Servidor Sockets en TCP Concepto de Hilos Definición de DAEMON Sockets en UDP 2 THREADS 3 Qué es un thread?
Procesos e Hilos en C
Procesos e Hilos en C 6 de febrero de 2012 En esta sesión vamos a escribir programas en lenguaje C que utilicen hilos y procesos para comparar el rendimiento del sistema ante la gestión de unos y otros.
Tema 2 Comunicación y sincronización entre procesos
Tema 2 Comunicación y sincronización entre procesos Grupo ARCOS Grado en Ingeniería Informática Universidad Carlos III de Madrid Contenido Repaso de los conceptos de proceso y threads Concurrencia Mecanismos
MC Hilda Castillo Zacatelco PROCESOS
MC Hilda Castillo Zacatelco [email protected] PROCESOS Definición y atributos Un proceso es la instancia de un programa en ejecución. Desde el punto de vista del SO, un proceso es la entidad más pequeña
Tareas Periódicas en POSIX
Temporizadores POSIX Uso de Señales, Temporizadores y Threads para ejecutar tareas periódicas en POSIX 1 Tareas Periódicas en POSIX POSIX no implementa un mecanismo directo para especificar tareas periódicas
Guillermo Román Díez
Concurrencia Creación de Procesos en Java Guillermo Román Díez [email protected] Universidad Politécnica de Madrid Curso 2016-2017 Guillermo Román, UPM CC: Creación de Procesos en Java 1/18 Concurrencia
Programación Concurrente Recopilación de teoría referente a la materia
UNIVERSIDAD AMERICANA Programación Concurrente Recopilación de teoría referente a la materia Ing. Luis Müller Esta es una recopilación de la teoría referente a la asignatura Programación Concurrente, a
Lenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III
República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III Lenguaje C 1 Puntos previos Los códigos fuentes generados en C requieren ser compilados
Programación I Funciones
1 Funciones Iván Cantador 2 Funciones: definición, sintaxis, ejemplos (I) Una funciónes un bloque de sentencias identificado con un nombre que se ejecutan de manera secuencial ofreciendo una funcionalidad
Introducción a Sistemas Operativos: Concurrencia
Introducción a Sistemas Operativos: Concurrencia Clips xxx Fr ancisco J Ballesteros 1. Semáforos Quizá la abstracción más conocida para sincronizar procesos en programación concurrente controlar el acceso
Concurrencia y paralelismo
Introducción a los Sistemas Operativos Concurrencia y paralelismo 1. Ejecución de programas. Procesos. 2. Multiprogramación Bibliografía Silberschatz and Galvin Sistemas Operativos. Conceptos fundamentales.
Tema 4 El paradigma cliente-servidor
Tema 4 El paradigma cliente-servidor F. García-Carballeira, Mª. Soledad Escolar, Luis Miguel Sánchez, Fco. Javier García Sistemas Distribuidos Grado en Ingeniería Informática Universidad Carlos III de
FUNCIONES. Identificador valido. Tipo-Funcion Identificador_de_la_funcion (Tipo par1,tipo par2 )
FUNCIONES Las funciones son el medio básico de que se vale C para construir programas. Un Programa es, básicamente, una colección de funciones entre las que se incluye una especial llamada main(), la función
Cena de filosofos y sincronizacion java
Programación concurrente y Distribuída Curso 2011-12 Miguel Telleria, Laura Barros, J.M. Drake telleriam AT unican.es Computadores y Tiempo Real http://www.ctr.unican.es Objetivos Presentaros la aplicación
Tema 6. Threads: programas multitarea
Tema 6. Threads: programas multitarea Procesos e hilos Creación de threads Ciclo de vida de un thread Sincronización Prioridades Grupos de threads Relación de métodos Ejemplo sincronización 1 Procesos
Fundamentos de programación
Fundamentos de programación Estructuras de Control Estructuras de control Estructuras de control Estructura secuencial Estructura alternativa Sentencias if, if else Sentencias if else anidadas El operador
Tema 2. Procesos e hilos
Tema 2. SO Índice Concepto de proceso Información del proceso Estados del proceso Formación de un proceso Cambio de contexto Servicios POSIX para gestión de procesos Concepto de hilo de ejecución Servicios
Funciones POSIX III Funciones POSIX III. No Nombrados Nombrados. sem_open sem_open. sem_close sem_close. sem_unlink sem_unlink
Funciones POSIX III Funciones POSIX III Sincronización Sincronización Procesos Procesos Semáforos Semáforos (sem_t) (sem_t) Sincronización Sincronización Threads Threads Mutex Mutex (pthread_mutex_t) (pthread_mutex_t)
Repaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE)
Repaso Lenguaje C OBJETOS Variables Constantes Variable: objeto del ambiente cuyo contenido puede cambiar. Constante: objeto cuyo contenido no puede cambiar. Variables: - un nombre que la identifica. Deben
Programación concurrente
23 de Marzo de 2017 Condiciones generales Docente: Hernán Melgrati (hmelgra@...) Horario: Teóricas: Jueves de 14 a 17 Prácticas: Martes de 14 a 17 Evaluaciones: Un parcial (mediados de mayo) Un trabajo
Procesos e hilos: el downloader
Departamento de Automática 1 / 8 Descarga de archivos con procesos en paralelo Objetivo principal: descarga de un archivo de gran tamaño de forma eficiente desde Internet Otros objetivos: Utilizar la biblioteca
Dobles: Es el caso de la instrucción if-else (punto 1.2).
1 1.Introducción Las estructuras de control son instrucciones que nos permiten controlar el flujo de ejecución del programa. Las instrucciones de control se pueden agrupar en instrucciones condicionales
Una función es un miniprograma dentro de un programa. Las funciones contienen varias
TEMA 6. FUNCIONES. Una función es un miniprograma dentro de un programa. Las funciones contienen varias sentencias bajo un solo nombre, que un programa puede utilizar una o más veces para ejecutar dichas
UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA INGENIERÍA EN INFORMÁTICA. ARQUITECTURA DE COMPUTADORES II 10 junio de 2006
UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA INGENIERÍA EN INFORMÁTICA. ARQUITECTURA DE COMPUTADORES II 10 junio de 2006 Para la realización del presente examen se dispondrá de 2 horas
1 Primitivas básicas de OpenMP
1 Primitivas básicas de OpenMP Consultar la página oficial de la plataforma OpenMP http://www.openmp.org/drupal/ Pragmas Es una directiva para el compilador que permite la definición de nuevas directivas
Funciones Definición de función
Funciones Definición de función Una función es un bloque de código que realiza una tarea específica. Una función es una porción de programa, identificable mediante un nombre, que realiza determinadas tareas
Tema 4 : señales. Sistemas Operativos: Programación de Sistemas. Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez.
Tema 4 : señales Sistemas Operativos: Programación de Sistemas Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez Curso 2006-07 Señales Las señales son un mecanismo para comunicar eventos
Funciones Tipos de funciones y Recursividad
Funciones Tipos de funciones y Recursividad SESION 4 Definición Una función es una subrutina o subprograma que forman un programa que realiza tareas bien definidas. Todo programa en C consta de una o más
Funciones y paso de parámetros
Unidad Didáctica 24 Funciones y paso de parámetros Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.0 Índice Consideraciones sobre funciones Estructura de una función
Procesamiento paralelo con hilos de Java
Procesamiento paralelo con hilos de Java Tabla de contenidos 1. Soporte para hilos en Java... 1 2. Creación y control de un hilo... 2 2.1. Métodos de creación de un hilo... 2 2.2. Control de hilos mediante
Modularización en lenguaje C. Funciones
Modularización en lenguaje C Funciones Segundo Cuatrimestre 2016 F. de la Informática- Int.a la Computación - Int.a la Programación 1 Ejercicio: Dado el siguiente algoritmo incompleto codificado en Lenguaje
Tostadores y POSIX. 1. Introducción
Tostadores y POSIX Michael González Harbour 1 ([email protected]) Departamento de Electrónica y Computadores, Universidad de Cantabria 39005 Santander, SPAIN C. Douglass Locke ([email protected]) Lockheed
Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2
Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2 Contenidos: 1. Definición de clases 2. Implementación de los métodos 3. Constructores y destructores 4. Objetos
Hilos. Módulo 4. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco. Hilos
Hilos Módulo 4 Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco Hilos Revisión Modelos Multihilados Librerías de Hilos Aspectos sobre Hilos Ejemplos
Sistemas Complejos en Máquinas Paralelas
Sistemas Complejos en Máquinas Paralelas Clase 1: OpenMP Francisco García Eijó Departamento de Computación - FCEyN UBA 15 de Mayo del 2012 Memoria compartida Las mas conocidas son las máquinas tipo Symmetric
Taller de Sistemas Operativos. Procesos 2012
Taller de Sistemas Operativos Procesos 2012 Agenda Introducción PCB (task_struct) Agrupaciones de procesos Estado de un proceso Cambio de proceso (task switch) Creación y destrucción de un proceso Threads
