Procesos e hilos: cálculo de
|
|
|
- José Manuel Robles Gallego
- hace 7 años
- Vistas:
Transcripción
1 Departamento de Automática 1 / 10
2 Índice Creación y sincronización de hilos Acceso a variables globales en exclusión mutua 2 / 10
3 Objetivo principal: obtener una aproximación al valor de empleando el método Monte Carlo Otros objetivos: Utilizar la biblioteca POSIX para la creación de hilos Aplicar primitivas de sincronización básicas entre hilos Especificación de la práctica Implementar un programa que obtenga una aproximación del valor de empleando el método Monte Carlo. El programa deberá utilizar hilos para paralelizar el cálculo, y mecanismos de sincronización para controlar su ejecución y el acceso a las variables compartidas 3 / 10
4 Es un método basado en probabilidades estadísticas: 1. Se parte de un cuadrante circular de radio R inscrito en un cuadrado de lado R 2. A continuación se proyectan un conjunto de puntos aleatorios de forma uniforme por la superficie del cuadrado 3. Se contabilizan los puntos que caen dentro de la sección circular 4. La relación entre el número de puntos dentro de la sección (nsec) y el número de puntos totales (N) es una aproximación a la relación entre áreas: R R nsec N área de la sección circular área del cuadrado = ( * R2 ) / 4 R 2 = 4 4 / 10
5 Creación y sincronización de hilos Acceso a variables globales en exclsuión mutua El programa deberá emplear hilos para contabilizar los puntos Cada hilo tendrá asignado de antemano un número de puntos Los hilos deberán realizar las siguientes operaciones: 1. Obtener las coordenadas aleatorias de cada punto 2. Comprobar si el punto (x, y) está dentro de la sección circular de radio R = 1 x2 + y2 1. Si es así, incrementar el valor de una variable contador 3. Repetir los pasos 1 y 2 por cada uno de los puntos asignados 4. Por último, deberá sumar la variable contador local del hilo a una variable contador global El acceso a la variable global estará protegido por un semáforo 5 / 10
6 Creación y sincronización de hilos Acceso a variables globales en exclsuión mutua Creación y sincronización de hilos El hilo principal (main) deberá crear los hilos empleando la biblioteca de hilos POSIX Creación de hilos POSIX int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg) Una vez creados, deberá esperar a que estos terminen su ejecución Espera a que un hilo finalice su ejecución int pthread_join(pthread_t thread, void **retval); En la mayoría de sistemas, gcc no enlaza por defecto la biblioteca pthread. Es necesario solicitarlo de forma explícita: $ gcc -o hilos hilos.c -lpthread 6 / 10 El ejemplo de programa que se podría realizar es uno que cree directamente un conjunto de hilos. Estos hilos deberán realizar las siguientes operaciones: 1) Incrementar el valor de una variable global en una unidad 2) Realizar una espera por un número de microsegundos aleatorios empleando la función usleep() 3) Decrementar el valor de la misma variable global en una unidad 4) Realizar una segunda espera por un número de microsegundos aleatorios empleando la función usleep() 5) Terminar su ejecución empleando la función pthread_exit() La función principal deberá crear los hilos empleando la función pthread_create() y a continuación esperar a que estos terminen su ejecución con la función pthread_join(). Una vez hayan terminado de ejecutarse todos los hilos, el hilo principal deberá mostrar el contenido de la variable global. En esta primer versión, se podrá comprobar que, en la mayoría de ejecuciones, el valor final de la variable global es distinto de 0. Esto es debido a que se producen condiciones de carrera al acceder a la variable global. Es necesario proteger el acceso mediante semáforos. Los semáforos se explican en una transparencia posterior. NOTA: Es probable que si ejecutamos el programa en una máquina virtual, el valor resultante sea cero en la mayoría de los casos, incluso sin usar semáforos. Esto es
7 debido a que, dentro de la máquina virtual, la granularidad temporal que ofrece la implementación de usleep() no es lo suficientemente pequeña como para forzar que las interrupciones salten en los instantes necesarios para que se produzcan las condiciones de carrera.
8 Creación y sincronización de hilos Acceso a variables globales en exclsuión mutua Para obtener las coordenadas aleatorias se puede emplear la siguiente función: int drand48_r(struct drand48_data *buffer, double *result); La función devuelve un número pseudo-aleatorio entre 0 y 1 La función emplea una variable local para almacenar la semilla aleatoria: double aleatorio; struct drand48_data rand_buffer; srand48_r(time(null), &rand_buffer); // Guardamos la semilla... drand48_r(&rand_buffer, &aleatorio); // Obtenemos valor 7 / 10 Los números aleatorios generados por la función drand48_r() se obtienen mediante la aplicación de un algoritmo a un valor inicial llamado semilla (seed). En llamadas sucesivas a la función, se aplicará el mismo algoritmo sobre el resultado anterior obtenido (la semilla inicial solo hay que establecerla una única vez antes de obtener el primer número aleatorio). En el caso de la función drand48_r() la semilla se guarda en una variable local a la función de tipo struct drand48_data. Si la función aleatoria se inicializa siempre con la misma semilla, producirá siempre los mismos valores aleatorios. Por eso, es conveniente emplear una semilla aleatoria para inicializar el algoritmo, de tal forma que dos ejecuciones sucesivas del mismo programa empleen distintas semillas. Una forma sencilla de hacerlo es emplear como semilla el tiempo actual del sistema. Mediante la función time() podemos obtener el número de segundos transcurridos desde La Época. Suponiendo que el reloj del sistema funciona correctamente, dos llamadas sucesivas al mismo programa resultarán en valores distintos del tiempo de sistema y, por tanto, utilizarán dos semillas distintas.
9 Creación y sincronización de hilos Acceso a variables globales en exclsuión mutua Acceso a variables globales en exclusión mutua El programa deberá emplear las funciones de la biblioteca POSIX para el manejo de semáforos de exclusión mutua (mutex) Un semáforo es una variable global de tipo pthread_mutex_t Los semáforos han de ser inicializados antes de poder usarlos Inicialización de un semáforo int pthread_mutex_init(pthread_mutex_t * mutex, const pthread_mutexattr_t * attr); Un semáforo de exclusión mutua soporta dos operaciones: P y V Operación P int pthread_mutex_lock(pthread_mutex_t *mutex); Operación V int pthread_mutex_unlock(pthread_mutex_t *mutex); 8 / 10 En la función pthread_mutex_init() se pueden establecer los atributos iniciales del semáforo a través del segundo parámetro de la función. Si al realizar la llamada de inicialización el segundo parámetro es NULL, el semáforo se inicializará con los valores por defecto. Aquí se puede completar el programa propuesto en la transparencia 5, protegiendo el acceso a la variable compartida con un semáforo de exclusión mutua.
10 El programa principal recibe como argumentos el número de puntos y el número de hilos $./computepi PUNTOS HILOS El código que analiza los argumentos ya se encuentra implementado en el esqueleto de la práctica El número máximo de puntos que el programa acepta es 500,000,000 Una vez analizados los argumentos, la función main() llama a la función compute() Prototipo de la función compute() void compute(int npoints, int nthreads); La función recibe como parámetros el número de puntos (npoints) y el número de hilos (nthreads) 9 / 10
11 La función compute() deberá realizar las siguientes operaciones: 1. Inicialización del semáforo de exclusión mutua mutex 2. Creación de todos los hilos del programa El número de hilos dependerá del valor pasado como parámetro a la función compute() Los hilos deberán ejecutar la función thread_function() Cada hilo recibirá como argumento el número de puntos que deberá calcular Si la división del número de puntos entre el número de hilos no es exacta, el último hilo creado calculará el resto de puntos 3. Esperar a que todos los hilos terminen su ejecución 4. Calcular el valor estimado de e imprimirlo por pantalla 5. Destruir el semáforo con la función pthread_mutex_destroy() 10 / 10 El parámetro inicial que se le pasa a los hilos durante la inicialización es de tipo void *, esto es, un puntero genérico. Este puntero genérico contendrá la dirección donde estará el entero que contiene el número de puntos asignados. Para esperar por los hilos, el programa deberá emplear la función pthread_join().
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)
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.
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)
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
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
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.
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
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 4. Gestión del Tiempo Tema 5.
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
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
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:
8. Vectores (arrays)
8. Vectores (arrays) Fundamentos de Informática Especialidad de Electrónica 2009-2010 Ismael Etxeberria Agiriano 16/12/2009 Índice 8. Vectores (arrays) 1. Números aleatorios 2. Serie ordenada 3. Números
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,
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)
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
Acceso coordinado a recursos compartidos
Programación Concurrente en Linux Acceso coordinado a recursos compartidos Alberto Lafuente, Dep. KAT/ATC de la UPV/EHU, bajo Licencia Creative Commons 1 Contenido 1. Recursos compartidos 2. Mecanismos
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
Principios de Computadoras II
Departamento de Ingeniería Electrónica y Computadoras Ing. Ricardo Coppo [email protected] Qué es un Objeto? Un objeto es una instancia de una clase Las clases actuán como modelos que permiten la creación
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
SOLUCIONES. DURACIÓN: Dispone de dos horas para realizar el examen. Lea las instrucciones para el test en la hoja correspondiente.
1 2 3 test extra NOTA Fundamentos de los Sistemas Operativos Examen parcial 10 de abril de 2015 Nombre y apellidos SOLUCIONES DURACIÓN: Dispone de dos horas para realizar el examen. Lea las instrucciones
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
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
Cómo implementar tus propias funciones en Lenguaje C?
Cómo implementar tus propias funciones en Lenguaje C? por Iván Cruz Cuando se realiza un programa, es importante siempre manejar una buena organización del código fuente, debido a que se puede desear incrementar
Sincronización de Hilos POSIX
Sincronización de Hilos POSIX Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Problemática Ejemplo: el problema del productor/consumidor (o del buffer acotado ) Existen
SISTEMAS OPERATIVOS:
SISTEMAS OPERATIVOS: Lección 7: Hilos y mecanismos de comunicación y sincronización Jesús Carretero Pérez Alejandro Calderón Mateos José Daniel García Sánchez Francisco Javier García Blas José Manuel Pérez
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
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
Ejercicio 1. Ejercicio 2
Todos los ejercicios incluyen una parte opcional de mayor dificultad, indicada con una serie de asteriscos en función del grado de dificultad. Ejercicio 1 Este ejercicio servirá para practicar la declaración
2. Indica cuál de las siguientes afirmaciones es cierta:
Nombre:. Indica cuál de las siguientes afirmaciones es cierta: El diseño de un programa procedural está guiado por la división en tareas a realizar, mientras que el diseño orientado a objetos está dirigido
Test SITR Temas: Planificación, Sincronización, Comunicación entre Procesos, Relojes, Señales, Temporizadores (TestSITR_T4 T9)
Test SITR Temas: Planificación, Sincronización, Comunicación entre Procesos, Relojes, Señales, Temporizadores (TestSITR_T4 T9) Temas: Planificación Sincronización y Comunicación entre Procesos Funciones
ESTRUCTURAS DE REPETICIÓN AREA PROGRAMACIÓN 1
ESTRUCTURAS DE REPETICIÓN AREA PROGRAMACIÓN 1 Estructuras de repetición Repetir: Ejecutar una instrucción o conjunto de instrucciones y luego regresar y ejecutarla (s) una y otra vez hasta terminar la
Unidad V. Ya veremos qué poner en "algunas_palabras" y "algo_más", por ahora sigamos un poco más.
Implementación Orientada a Objetos. Unidad V 5.1 Estructura de una clase. Una clase consiste en: algunas_palabras class nombre_de_la_clase [algo_más] { [lista_de_atributos] [lista_de_métodos] Lo que está
Hilos Secciones Stallings:
Capítulo 4 Hilos Secciones Stallings: 4.1 4.3 Contenido Procesos e hilos. Hilos a nivel de núcleo y a nivel de usuario. Multiprocesador simétrico (SMP). Micronúcleos. 1 Proceso Unidad de propiedad de los
Examen Junio- Grupo B Lunes 17 de Junio - Programación en C++ Pág. 1
Examen Junio- Grupo B Lunes 17 de Junio - Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1.1 Ejercicio 1: Empresa Videojuegos (3.5 ptos.)... 1 1.2 Ejercicio 2: Clase Rectangulo (1.0 pto.)... 3 1.3 Ejercicio
Sistemas Operativos Ingeniería de telecomunicaciones Sesión 3: Concurrencia
Sistemas Operativos Ingeniería de telecomunicaciones Sesión 3: Concurrencia Calendario Comienzo: Lunes 2 de noviembre y miércoles 4 de noviembre. Entrega: 16 de noviembre y 18 de noviembre. 1. Requisitos
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
INFORMATICA II PRIMER PARCIAL
Grupo 1 INFORMATICA II PRIMER PARCIAL Hacer un programa en C o C++ que realice lo siguiente: a. Almacenar en un archivo binario 100 juegos de valores compuestos por un valor entero, un número real y una
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
ARRAYS (ARREGLOS O FORMACIONES) UNIDIMENSIONALES EN C. DECLARACIÓN. LÍMITES. (CU00512F)
APRENDERAPROGRAMAR.COM ARRAYS (ARREGLOS O FORMACIONES) UNIDIMENSIONALES EN C. DECLARACIÓN. LÍMITES. (CU00512F) Sección: Cursos Categoría: Curso básico de programación en lenguaje C desde cero Fecha revisión:
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.
Introducción a Java. Dr. (c) Noé Alejandro Castro Sánchez
Introducción a Java Dr. (c) Noé Alejandro Castro Sánchez Programas Java Applets Pueden correr en navegadores Web Agregan funcionalidad a páginas Web Se llega a restringir su funcionalidad (e. g., no pueden:
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
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
LENGUAJES DE PROGRAMACIÓN. Trabajo Práctico - Junio de 2015
Trabajo Práctico - Junio de 2015 INSTRUCCIONES El trabajo práctico debe realizarse de manera individual. No debe realizarse en grupo. Se penalizará cualquier uso compartido de las soluciones propuestas
Guia#9: Punteros en C#.
Guia#9: Punteros en C#. Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación I Objetivos. Conocer el concepto de punteros y su aplicación en C#. Desarrollar aplicaciones en
Interbloqueo. Concurrencia: Interbloqueo e Inanición
Interbloqueo Concurrencia: Interbloqueo e Inanición Capítulo 6 Bloqueo permanente de un conjunto de procesos que compiten por recursos del sistema o por comunicación con los otros No existe una solución
Taller de Programación Paralela
Taller de Programación Paralela Departamento de Ingeniería Informática Universidad de Santiago de Chile April 4, 2008 y sincronización Cuando dos o más tareas (procesos o hebras) comparten algún recurso
Estructuras y Uniones
1 Estructuras y Uniones Estructuras. Las estructuras ( struct ) son agrupaciones de una o más variables de tipos posiblemente diferentes, agrupadas bajo un mismo nombre. Esto permite un manejo más cómodo
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.
Clases y Objetos en C++
Informática II Clases y Objetos en C++ Introducción Las variables de los tipos fundamentales de datos no son suficientes para modelar adecuadamente objetos del mundo real. alto, ancho y longitud para representar
Concurrencia. Primitivas IPC con bloqueo
Concurrencia Primitivas IPC con bloqueo Primitivas de IPC con bloqueo La solución de Peterson es correcta, pero tiene el defecto de requerir espera ocupada: Cuando un proceso quiere entrar en su región
12. Tipos de atributos
Programación orientada a objetos con Java 135 12. Tipos de atributos Objetivos: a) Profundizar en el concepto de atributo de una clase e indicar los tipos de atributos en Java b) Interpretar el código
Ejercicio 1. Teoría [2,5 puntos]:
ATENCIÓN: Dispone de 3 horas para realizar la prueba. Ejercicio 1. Teoría [2,5 puntos]: Pregunta 1. Cuándo entra un proceso en estado zombie? A.- Cuando muere su padre y él no ha terminado todavía. B.-
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: una visión aplicada. Capítulo 5 Comunicación y sincronización de procesos
Sistemas operativos: una visión aplicada Capítulo 5 Comunicación y sincronización de procesos Sistema multiprogramado con un una CPU Proceso A Proceso B Proceso C Tiempo Sistemas operativos: una visión
Tema 6: Memoria dinámica
: Programación 2 Curso 2013-2014 Índice 1 2 3 El tamaño es fijo y se conoce al implementar el programa Declaración de variables int i=0; char c; float vf[3]={1.0, 2.0, 3.0}; i c vf[0] vf[1] vf[2] 0 1.0
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?
Tema: Clases y Objetos en C#. Parte II.
Programación II. Guía No. 5 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Clases y Objetos en C#. Parte II. Objetivos Implementar clases, objetos, propiedades, métodos y
SISTEMAS OPERATIVOS (Código: ) Septiembre 2018
SISTEMAS OPERATIVOS (Código: 71902048) Septiembre 2018 Material permitido: Solo calculadora no programable Tiempo: 2 horas N 1. Conteste razonadamente a las siguientes preguntas: Aviso 1: Todas las respuestas
Simulación (y 2) Area de Ingeniería Telemática Grado en Ingeniería en Tecnologías de Telecomunicación, 4º
Gestión y Planificación de Redes y Servicios Simulación (y 2) Area de Ingeniería Telemática http://www.tlm.unavarra.es Grado en Ingeniería en Tecnologías de Telecomunicación, 4º Gestión y Planificación
Informática Lección 5. Arreglos (vectores) Curso Pedro Álvarez y José Ángel Bañares 2/11/2010. Dpto. Informática e Ingeniería de Sistemas.
Fundamentos de Informática Lección 5. Arreglos (vectores) Curso 2010-2011 Pedro Álvarez y José Ángel Bañares 2/11/2010. Dpto. Informática e Ingeniería de Sistemas. Índice de contenidos Arreglos: Concepto
Sincronización entre procesos (aka: semáforos)
Sincronización entre procesos (aka: semáforos) DC - FCEyN - UBA Sistemas Operativos, 1c-2016 Dónde estamos? De dónde venimos? Race condition Semáforos Race condition Semáforos Primero repasemos brevemente
Solución al Examen de Fundamentos de Computadores y Lenguajes
Solución al Examen de Fundamentos de Computadores y Lenguajes Cuestiones (5 cuestiones, 5 puntos en total) Examen Final. Septiembre 2006 1) Se dispone de la siguiente clase enumerada. Escribir un método,
Tema 18: Memoria dinámica y su uso en C
Tema 18: Memoria dinámica y su uso en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1
Lecturas: Ben-Ari, secciones 4.1, 4.2, 4.3, 4.6 Andrews, intro. cap. 4 y sección 4.1. Exclusión mutua con semáforos
Lecturas: Ben-Ari, secciones 4.1, 4.2, 4.3, 4.6 Andrews, intro. cap. 4 y sección 4.1 Manuel Carro Universidad Politécnica de Madrid Este texto se distribuye bajo los términos de la Creative Commons License
Lecturas: Ben-Ari, secciones 4.1, 4.2, 4.3, 4.6 Andrews, intro. cap. 4 y sección 4.1
Semáforos Lecturas: Ben-Ari, secciones 4.1, 4.2, 4.3, 4.6 Andrews, intro. cap. 4 y sección 4.1 Manuel Carro Universidad Politécnica de Madrid Este texto se distribuye bajo los términos de la Creative Commons
LISTAS ENLAZADAS FUNDAMENTOS TEORICOS
LISTAS ENLAZADAS FUNDAMENTOS TEORICOS Una lista enlazada es una colección o secuencia de elementos dispuestos uno detrás de otro, en la que cada elemento se conecta al siguiente elemento por un «enlace»
Programación Orientada a Objetos. Resumen de Temas Unidad 3: Constructores y destructores
Programación Orientada a Objetos Resumen de Temas Unidad 3: Constructores y destructores 3.1 Conceptos de métodos constructor y destructor Java inicializa siempre con valores por defecto las variables
UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.
Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Procedimientos para asignación y liberación de memoria. Tipos de datos recursivos.
SISTEMAS OPERATIVOS: COMUNICACIÓN Y SINCRONIZACIÓN ENTRE PROCESOS. Hilos y mecanismos de comunicación y sincronización
SISTEMAS OPERATIVOS: COMUNICACIÓN Y SINCRONIZACIÓN ENTRE PROCESOS Hilos y mecanismos de comunicación y sincronización Contenido 2 Comunicación y sincronización. Semáforos. El problema de los lectores escritores.
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
LABORATORIO 2: RECURSIVIDAD
ALED - Laboratorio 2 1 Objetivos LABORATORIO 2: RECURSIVIDAD Entender el comportamiento de los algoritmos recursivos Implementación y modificación de algoritmos recursivos Probar el consumo de recursos
Teoría de Sistemas Operativos Sincronización Procesos
Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica º Semestre, 00 Gabriel Astudillo Muñoz http://www.elo.utfsm.cl/~elo1 Dos o más procesos leen o escriben ciertas zonas compartidas
Concurrencia Monitores. Guillermo Román Díez
Concurrencia Monitores Guillermo Román Díez [email protected] Universidad Politécnica de Madrid Curso 2016-2017 Guillermo Román, UPM CC: Monitores 1/25 Recursos Compartidos Pregunta La especificación de
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
Programación Orientada a Objetos en C++
Unidad I Programación Orientada a Objetos en C++ Programación Orientada a Objetos en C++ Programación I - 0416202 Contenido Esta lección abarca los siguientes temas: Estructura y declaración de una clase
