Concurrencia en.net David Jesús Horat Flotats

Save this PDF as:
 WORD  PNG  TXT  JPG

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Concurrencia en.net David Jesús Horat Flotats"

Transcripción

1 Concurrencia en.net David Jesús Horat Flotats

2 ÍNDICE 1. Introducción n a.net 2. Sincronización n en.net 2.1 Contextos sincronizados 2.2 Método M Synchronized 2.3 Regiones de código c sincronizado 2.4 Sincronización n manual

3 1. Introducción n a.net Es un conjunto de tecnologías Su núcleo n es el CLR Common Language Runtime Entorno Común n de Ejecución Traduce de MSIL a Lenguaje MáquinaM Microsoft Intermediate Language Lenguaje Intermedio de Microsoft Similar a los ByteCodes de Java Compilador JIT (Just( In Time)

4 1. Introducción n a.net.net Framework Jerarquía a de objetos Independientes del lenguaje escogido Los lenguajes usan el.net Framework y compilan a MSIL, por lo cual son independientes de la plataforma.net Framework en Windows Mono en Linux

5 1. Introducción n a.net Visual Basic.NET Sintaxis de VB adaptada y mejorada para usar.net Framework Es el que usaremos para los ejemplos C++ C# Nuevo lenguaje de programación C++ mejorado? Definición n abierta y compilador gratuito

6 2. Sincronización n en.net Contextos sincronizados Se puede utilizar el atributo SynchronizationAttribute para habilitar la sincronización n automática tica y simple de objetos ContextBoundObject Método Synchronized Algunas clases proporcionan una propiedad Synchronized que devuelve un contenedor seguro para subprocesos a una instancia de la clase Monitor

7 2. Sincronización n en.net Regiones de código c sincronizado Podemos usar la clase monitores para sincronizar partes concretas de códigoc Sincronización n manual Podemos utilizar varios objetos de sincronización para crear mecanismos de sincronización n propios

8 2.1 Contextos sincronizados Un contexto es un conjunto de propiedades o reglas sintácticas que definen el entorno donde reside una colección n de objetos Las reglas se aplican cuando los objetos entran o salen de un contexto Los contextos se crean durante la activación n de los objetos

9 2.1 Contextos sincronizados Para que un clase esté en un contexto, debe heredar ContextBoundObject Cuando se aplica el atributo SynchronizationAttribute a un objeto, sólo s se puede estar ejecutando un subproceso en todos los contextos que compartan una instancia de esta propiedad

10 2.1 Contextos sincronizados Visual Basic <Synchronization()> Public Class Ejemplo Inherits ContextBoundObject Public Function Cuadrado (i as integer) as integer Return i * i End Function End Class C# [Synchronization()] public class SampleSyncronized : ContextBoundObject { public int Cuadrado (int i) { return i * i; } }

11 2.1 Contextos sincronizados Sincronización n completa de la clase mediante la serialización de la entrada a dicho objeto Falta de eficiencia, ya que posiblemente estemos sincronizando partes que no hacían an falta No se recomienda está práctica para usuarios expertos

12 2.2 Método M Synchronized Algunas clases del espacio de nombres System.Collections proporcionan un método m Synchronized que devuelve un contenedor seguro para subprocesos a una instancia de la clase Monitor Hashtable Queue

13 2.2 Método M Synchronized Visual Basic Imports System Imports System.Collections Public Class SamplesHashtable Public Shared Sub Main() Dim myht As New Hashtable() ' Creamos un HashTable Creamos un envoltorio sincronizado sobre el mismo HashTable Dim mysyncdht As Hashtable = Hashtable.Synchronized(myHT) Visualizamos en pantalla If mysyncht.issynchronized Then Console.WriteLine( mysyncdht está sincronizado ) Else Console.WriteLine( mysyncdht no está sincronizado ) End If End Sub End Class

14 2.2 Método M Synchronized Si la colección n que queremos usar no implementa el método m Synchronized,, podemos derivar la clase e implementar un método m Synchronized utilizando la propiedad SyncRoot La clase Array no se pueden derivar, por lo que el único método m para sincronizarla es un usando monitores

15 2.3 Regiones de código c sincronizado System.Threading.Monitor La clase Monitor proporciona un mecanismo que sincroniza el acceso a los objetos Características principales: Está asociada a un objeto a petición Se puede llamar desde cualquier contexto No se puede crear una instancia de Monitor

16 2.3 Regiones de código c sincronizado System.Threading.Monitor void Enter (object) void Exit (object) bool TryEnter (object) bool Wait (object) void Pulse (object( object) void PulseAll (object)

17 2.3 Regiones de código c void Enter (object) sincronizado Adquiere el cerrojo del objeto void Exit (object) Libera el cerrojo del objeto bool TryEnter (object) Intenta adquirir el cerrojo del objeto y devuelve verdadero si lo consiguió y falso si no lo consiguió

18 2.3 Regiones de código c sincronizado bool TryEnter (object, int) Intenta adquirir el cerrojo del objeto durante un cierto tiempo (int( int) ) especificado en segundos y devuelve verdadero si lo consiguió y falso si no lo consiguió bool TryEnter (object, TimeSpan) Intenta adquirir el cerrojo del objeto durante un periodo de tiempo especificado en TimeSpan y devuelve verdadero si lo consiguió y falso si no lo consiguió

19 2.3 Regiones de código c bool Wait (object) sincronizado Libera el bloque del objeto y se pone a la espera Devuelve true si consigue salir del bloqueo bool Wait (object, int) Int = tiempo en segundos bool Wait (object, TimeSpan) TimeSpan = periodo de tiempo

20 2.3 Regiones de código c void Pulse (object( object) sincronizado Notifica a un proceso de la cola de espera de Object para que se despierte void PulseAll (object) Notifica a todos los procesos de la cola de espera de Object para que se despierten

21 2.3 Regiones de código c sincronizado Podemos usar palabras clave que simulan monitor.enter y monitor.exit C# VB Lock (Object)) { Bloque de código c } SyncLock (Object) Bloque de códigoc End SyncLock

22 2.4 Sincronización n manual System.Threading.Thread Constructor (ThreadStart( ThreadStart) Hay que pasarle la referencia al método m que quiere ejecutarse Start () Cambia el estado del hilo a ejecutando Abort () Finaliza el subproceso Suspend () Suspende el hilo Resume () Reanuda un proceso que ha sido suspendido

23 2.4 Sincronización n manual System.Threading.Thread Sleep (int/timespan) Suspende el hilo durante un tiempo determinado Si es 0, simplemente hace un Yield en la CPU Si es infinite que bloqueado indefinidamente Interrupt () Interrumpe un proceso que se encuentra en Wait, Sleep o Join causando una excepción Join () Bloque el subproceso que lo llama, hasta que el hilo llamado haya terminado

24 2.4 Sincronización n manual System.Threading.Mutex Semáforo binario WaitOne () Bloquea el subproceso actual Podemos usar (int( int) ) y (TimeSpan( TimeSpan) ReleaseMutex () Despierta un subproceso El subproceso que tiene la exclusión mútua puede ejecutar N veces WaitOne,, pero deberá ejecutar también n N veces ReleaseMutex para liberarla

25 2.4 Sincronización n manual System.Threading.Interlocked Proporciona operaciones atómicas para las variables compartidas por varios subprocesos int/long Increment (int/long) Incrementa el valor de una variable y devuelve el valor incrementado int/long Decrement (int/long) Decrementa el valor de una variable y devuelve su valor decrementado

26 2.4 Sincronización n manual System.Threading.Interlocked int Exchange (inta( inta, intb) inta = intb y devuelve inta También n con object y con single int CompareExchange (inta, intb, intc) Si (inta( == intc) ) entonces inta = intb Devuelve inta También n con object y con single

27 2.4 Sincronización n manual System.Threading.ReaderWriteLock Bloque que admite un escritor o varios lectores usando el recurso Evita la inanición n de ambos AcquireReaderLock (int) ReleaseReaderLock () AcquireWriterLock (int) ReleaseWriterLock ()

28 2.4 Sincronización n manual System.Threading.ReaderWriteLock LockCookie ReleaseLock () Libera el cerrojo independientemente de quien las veces que haya sido adquirido LockCookie UpgradeToWriteLock (int) Actualiza un bloque de lectura a uno de escritura DowngradeFromWriteLock (LockCookie) Restaura el estado de bloqueo que tenía a antes un escritor en LockCookie RestoreLock (LockCookie) Restaura el estado de bloqueo de LockCookie

29 2.4 Sincronización n manual System.Threading.ThreadPool Permite agrupar subprocesos System.Threading.Timer Temporizador que permite ejecutar una tarea a intervalos y especificar un tiempo para la primera ejecución

1 HILOS (THREADS) EN JAVA

1 HILOS (THREADS) EN JAVA 1 HILOS (THREADS) EN JAVA 1.1QUÉ ES UN THREAD La Máquina Virtual Java (JVM) es un sistema multihilo. Es decir, es capaz de ejecutar varios hilos de ejecución simultáneamente. La JVM gestiona todos los

Más detalles

Threads o Hilos. Marco Besteiro y Miguel Rodríguez

Threads o Hilos. Marco Besteiro y Miguel Rodríguez En.NET, cuando se lanza una aplicación se crea un proceso y dentro de este proceso un hilo de ejecución o thread para el método Main. Es posible, a la vez que se ejecuta el método Main, que la aplicación

Más detalles

Introducción al.net Framework. Introducción al.net Framework. Diseño Basado en Componentes. Curso 2008 / 09. Diseño Basado en Componentes

Introducción al.net Framework. Introducción al.net Framework. Diseño Basado en Componentes. Curso 2008 / 09. Diseño Basado en Componentes Introducción al.net Framework Diseño Basado en Componentes Introducción al.net Framework Arquitectura.NET Herramientas, lenguajes y tecnologías.net.net Framework Ingeniería Informática Universidad Carlos

Más detalles

Object 1. Threads en Java

Object 1. Threads en Java Object 1 Threads en Java Introducción En este artículo voy a explicar cómo se usan los threads en Java (también traducidos como "hilos de ejecución"). La intención no es solamente explicar cuáles son las

Más detalles

Mensajes. Interbloqueo

Mensajes. Interbloqueo CONCURRENCIA DE PROCESOS Preparado por: Angel Chata Tintaya (angelchata@hotmail.com) Resumen Los procesos comparten variables globales, comparten y compiten por recursos, se ejecutan simultáneamente intercalándose

Más detalles

1: La plataforma.net (.NET Framework)

1: La plataforma.net (.NET Framework) Programació amb C#.NET Jordi Linares i Pellicer 1: La plataforma.net (.NET Framework) Índice! Introducción! Características de.net! Componentes.NET! Plataforma.NET! Ejemplo Introducción! Microsoft.NET

Más detalles

Concurrencia en Java

Concurrencia en Java Concurrencia en Java Herramientas proporcionadas por Java La Máquina Virtual (JVM) Pedro Pablo Gómez Martín La clase Thread Clase principal con la que conseguir concurrencia. La llamada a su método start()

Más detalles

Benemérita Universidad Autónoma del Estado de Puebla

Benemérita Universidad Autónoma del Estado de Puebla Benemérita Universidad Autónoma del Estado de Puebla Facultad de Cs. De la Computación Programación Concurrente y Paralela Práctica de Laboratorio No. 5 Profr: María del Carmen Cerón Garnica Alumno: Roberto

Más detalles

CDI Exclusión mutua a nivel alto. conceptos

CDI Exclusión mutua a nivel alto. conceptos conceptos El concepto de usar estructuras de datos a nivel alto libera al programador de los detalles de su implementación. El programador puede asumir que las operaciones están implementadas correctamente

Más detalles

Herramientas Concurrentes en JAVA

Herramientas Concurrentes en JAVA Herramientas Concurrentes en JAVA David Jesús Horat Flotats ÍNDICE 1. Introducción n a Java 2. Herramientas Concurrentes en Java 3. Lectores Escritores (2º) 4. Filósofos comensales 5. Chat usando RMI 6.

Más detalles

Implementación de monitores POSIX

Implementación de monitores POSIX Implementación de monitores POSIX Ampliación de Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Programación concurrente: Problemática Presencia de condiciones de

Más detalles

Programación Orientada a Eventos

Programación Orientada a Eventos Programación Orientada a Eventos Técnicas de Programación Santiago Pavón V:2012.03.13 Programas Secuénciales El flujo de ejecución del programa sigue la secuencia de sentencias que lo forman. El estado

Más detalles

PROGRAMACIÓN CONCURRENTE. Tema 5 Monitores

PROGRAMACIÓN CONCURRENTE. Tema 5 Monitores PROGRAMACIÓN CONCURRENTE Tema 5 Monitores 1 Indice Definición de los monitores Sincronización condicional usando monitores Algunos problemas con monitores 2 Problemas de las regiones críticas condicionales

Más detalles

Concurrencia: Exclusión mutua y Sincronización

Concurrencia: Exclusión mutua y Sincronización Concurrencia: Exclusión mutua y Sincronización Prof. Carlos Figueira Basado en materiales de Yudith Cardinale (USB) Williams Stallings, Eugene Styer Concurrencia Múltiples aplicaciones Aplicaciones estructuradas

Más detalles

Concurrencia. Primitivas IPC con bloqueo

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

Más detalles

HERRAMIENTAS DE DESARROLLO

HERRAMIENTAS DE DESARROLLO CONTENIDO 3.1 Estudio de herramientas para el desarrollo de Servicios Web 3.2 Compatibilidad de Herramientas integradas a.net 3.3 Ventajas y desventajas de la integración de código.net MONICA CECILIA GALLEGOS

Más detalles

Programación Concurrente en Java

Programación Concurrente en Java Hebras y monitores Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid 21 de marzo de 2006 Threads Extendiendo la clase java.lang.thread. public class PrThread extends

Más detalles

Tema 3. Monitores Programación Concurrente

Tema 3. Monitores Programación Concurrente Tema 3. Monitores Programación Concurrente Depto. de Lenguajes y Sistemas Informáticos Universidad de Granada Contenidos 1. Concepto de Monitor 1.1. Fundamento teórico de los monitores 1.2. Sintaxis de

Más detalles

Repaso de las características más importantes de la programación Java y su adaptación a Android

Repaso de las características más importantes de la programación Java y su adaptación a Android Repaso de las características más importantes de la programación Java y su adaptación a Android 1. Entorno de programación en java 2. Variables y tipos de datos 3. Operaciones y operadores 4. Clases y

Más detalles

Hilos en Java. Crear un Hilo. Detener un hilo. Fuente: http://www.chuidiang.com/java/hilos/hilos_java.php

Hilos en Java. Crear un Hilo. Detener un hilo. Fuente: http://www.chuidiang.com/java/hilos/hilos_java.php Fuente: http://www.chuidiang.com/java/hilos/hilos_java.php Hilos en Java A veces necesitamos que nuestro programa Java realice varias cosas simultáneamente. Otras veces tiene que realizar una tarea muy

Más detalles

Manual del Modelizador. 28 de enero de 2009

Manual del Modelizador. 28 de enero de 2009 Índice de contenidos Introducción... 1 Proceso de ejecución de modelos... 1 Origen de datos... 3 Detalles técnicos... 3 Lenguaje de programación... 3 Estructura de los modelos... 3 Biblioteca de clases...

Más detalles

Java nos ofrece la clase Thread y la interfaz Runable que permiten que varios procesos estén funcionando de forma concurrente.

Java nos ofrece la clase Thread y la interfaz Runable que permiten que varios procesos estén funcionando de forma concurrente. Threads (hilos) Java nos ofrece la clase Thread y la interfaz Runable que permiten que varios procesos estén funcionando de forma concurrente. Conceptos: Proceso (thread o hilo): es un programa en ejecución

Más detalles

Generics y Visual Basic.NET

Generics y Visual Basic.NET Por Guillermo Guille Som Visual Basic MVP desde 1997 www.elguille.info Generics y Visual Basic.NET Es mucho lo que se ha escrito (y seguramente se seguirá escribiendo) sobre esta nueva característica de

Más detalles

MONITORES EN JAVA. Antonio Tomeu Control de la Concurrencia en Java: API Estándar

MONITORES EN JAVA. Antonio Tomeu Control de la Concurrencia en Java: API Estándar MONITORES EN JAVA Un monitor es un objeto que implementa acceso bajo e.m. a todos sus métodos, y provee sincronización En Java, son objetos de una clase cuyos métodos públicos son todos synchronized Un

Más detalles

TEMA 5: Control de la Concurrencia en Java (API Estándar)

TEMA 5: Control de la Concurrencia en Java (API Estándar) TEMA 5: Control de la Concurrencia en Java (API Estándar) CONTENIDO Exclusión Mutua con código synchronized. Exclusión Mutua con métodos synchronized. Protocolos de Control de la Exclusión Mutua. Interbloqueos

Más detalles

Concurrencia: deberes. Concurrencia: Exclusión Mutua y Sincronización. Concurrencia. Dificultades con la Concurrencia

Concurrencia: deberes. Concurrencia: Exclusión Mutua y Sincronización. Concurrencia. Dificultades con la Concurrencia Concurrencia: deberes Concurrencia: Exclusión Mutua y Sincronización Capítulo 5 Comunicación entre procesos Compartir recursos Sincronización de múltiples procesos Asignación del tiempo de procesador Concurrencia

Más detalles

Concurrencia en Java

Concurrencia en Java Concurrencia en Java Concurrencia y Distribución Programación Avanzada Posgrado en Ciencia e Ingeniería de la Computación, UNAM 1. El mecanismo de threads Una aplicación Java o applet puede contener secciones

Más detalles

Hebras y Sincronización en Java

Hebras y Sincronización en Java Hebras y Sincronización en Java Jonathan Makuc http://jmakuc.ublog.cl Noviembre 2008 Tópicos: 1. Introducción a hebras en Java...2 2. Hebras a través del clase Thread...3 3. Hebras a través de la interfaz

Más detalles

Receta general para resolver problemas de sincronización con semáforos

Receta general para resolver problemas de sincronización con semáforos Receta general para resolver problemas de sincronización con semáforos La primera vez que te enfrentas a la tarea de implementar una solución a un problema de sincronización entre procesos, es normal que

Más detalles

TÈCNICO EN PROGRAMACIÒN DE SOFTWARE SERVICIO NACIONAL DE APRENDIZAJE, SENA Material de Apoyo Plataforma.NET LA PLATAFORMA.NET

TÈCNICO EN PROGRAMACIÒN DE SOFTWARE SERVICIO NACIONAL DE APRENDIZAJE, SENA Material de Apoyo Plataforma.NET LA PLATAFORMA.NET LA PLATAFORMA.NET La plataforma.net de Microsoft está diseñada para que se puedan desarrollar componentes software utilizando casi cualquier lenguaje de programación, de forma que lo que escribamos en

Más detalles

Federico Peinado www.federicopeinado.es

Federico Peinado www.federicopeinado.es Federico Peinado www.federicopeinado.es Depto. de Ingeniería del Software e Inteligencia Artificial disia.fdi.ucm.es Facultad de Informática www.fdi.ucm.es Universidad Complutense de Madrid www.ucm.es

Más detalles

Concurrencia entre Procesos.

Concurrencia entre Procesos. Concurrencia entre Procesos. Sistemas Operativos Tema 3. 1 Procesamiento concurrente. Procesamiento concurrente: base de los sistemas operativos modernos (multiprogramados): Un conjunto de procesos que

Más detalles

Lenguajes de Programación Curso 04-05. Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces 1. 2. Clases abstractas 2

Lenguajes de Programación Curso 04-05. Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces 1. 2. Clases abstractas 2 Objetivos Herencia. Utilización de interfaces y clases abstractas. Índice 1. Interfaces 1 2. Clases abstractas 2 3. Collections Framework 3 3.1. Collection........................................... 3

Más detalles

Java: Programación Multithread

Java: Programación Multithread Qué es un thread? Java: Programación Multithread Hasta el momento hemos desarrollado programas secuenciales con un único thread: en cualquier instante durante la ejecución de un programa hay un único punto

Más detalles

Threads. La plataforma JAVA soporta programas multhreading a través del lenguaje, de librerías y del sistema de ejecución. Dos.

Threads. La plataforma JAVA soporta programas multhreading a través del lenguaje, de librerías y del sistema de ejecución. Dos. Threads Un thread es un flujo de control secuencial dentro de un programa. A los threads también se los conoce como procesos livianos ó contextos de ejecución. Un thread es similar a un programa secuencial:

Más detalles

PROGRAMACION CONCURRENTE Y DISTRIBUIDA. II.5 Sincronización basada en memoria compartida: Monitores

PROGRAMACION CONCURRENTE Y DISTRIBUIDA. II.5 Sincronización basada en memoria compartida: Monitores PROGRAMACION CONCURRENTE Y DISTRIBUIDA II.5 Sincronización basada en memoria compartida: Monitores J.M. Drake 1 Monitor Son módulos que encierran los recursos o variables compartidas como componentes internos

Más detalles

Unidad 1: Conceptos generales de Sistemas Operativos.

Unidad 1: Conceptos generales de Sistemas Operativos. Unidad 1: Conceptos generales de Sistemas Operativos. Tema 3: Estructura del sistema operativo. 3.1 Componentes del sistema. 3.2 Servicios del sistema operativo. 3.3 Llamadas al sistema. 3.4 Programas

Más detalles

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO INTRODUCCIÓN Objetivo del curso: El alumno desarrollará la capacidad para resolver problemas de almacenamiento, recuperación y ordenamiento de datos, utilizando las diferentes estructuras que existen para

Más detalles

Programación III. 1. Facultad: Ingeniería Escuela: Computación Asignatura:Programación III I. OBJETIVOS II. INTRODUCCIÓN TEÓRICA

Programación III. 1. Facultad: Ingeniería Escuela: Computación Asignatura:Programación III I. OBJETIVOS II. INTRODUCCIÓN TEÓRICA Programación III. 1 Facultad: Ingeniería Escuela: Computación Asignatura:Programación III GUIA1: Uso de C# modo consola. I. OBJETIVOS Qué el estudiante: Conozca el lenguaje de programación Visual C#.Net

Más detalles

Programación Concurrente y Paralela. P(S) ; sección crítica P(S);

Programación Concurrente y Paralela. P(S) ; sección crítica P(S); 2.5.2 Monitores Los semáforos, a pesar de su sencillez de uso, son el equivalente a las instrucciones goto y el manejo de apuntadores en los lenguajes de programación imperativos: son muy susceptibles

Más detalles

Programación Concurrente en Java

Programación Concurrente en Java Programación Concurrente en Java Curso 2006-2007 9/2/2007 Prog. Distribuida Bajo Internet Qué es la Programación Concurrente? Diseño basado en varias actividades independientes Conceptualmente se ejecutan

Más detalles

1 (2 5 puntos) Responda con brevedad y precisión a las siguientes preguntas:

1 (2 5 puntos) Responda con brevedad y precisión a las siguientes preguntas: Universidad de Las Palmas de Gran Canaria Escuela Universitaria de Informática Facultad de Informática Sistemas Operativos Examen parcial, 11 de mayo de 2002 SOLUCIONES Calificación 1 2 3 4 5 1 (2 5 puntos)

Más detalles

Si bien Pascal-FC no trae algunas de las características de Pascal como:

Si bien Pascal-FC no trae algunas de las características de Pascal como: PROCESOS VS. HILOS: Ciclo de vida de un proceso: es prácticamente un estándar en todos los sistemas operativos. En principio el proceso no existe, es creado, luego pasa a listo (el proceso esta en condiciones

Más detalles

Secretos de la Programación Concurrente

Secretos de la Programación Concurrente Secretos de la Programación Concurrente Stuart Perez, Luis Castro Autómatas y Compiladores, Escuela de Ciencias de la Computación e Informática, San Pedro de Montes de Oca, Costa Rica jstuartp@gmail.com

Más detalles

Arquitecturas cliente/servidor

Arquitecturas cliente/servidor Arquitecturas cliente/servidor Servidores y Clientes Sincronizados Contenido Procesos Semáforos Sincronización Lectura y Escritura de Archivos Servidores Orientados a Conexión Servidores No Orientados

Más detalles

Programación Concurrente Recopilación de teoría referente a la materia

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 2011 Esta es una recopilación de la teoría referente a la asignatura Programación Concurrente,

Más detalles

Java y JVM: programación concurrente

Java y JVM: programación concurrente Java y JVM: programación concurrente Adolfo López Díaz Escuela de Ciencias de la Computación e Informática. Universidad de Costa Rica Resumen: El lenguaje de programación Java proporciona, sin necesidad

Más detalles

PROGRAMACION CONCURRENTE

PROGRAMACION CONCURRENTE PROGRAMACION CONCURRENTE II.3 Sincronización basada en memoria compartida: Semáforos J.M. Drake 1 Procesos concurrentes y memoria compartida. Si los diferentes procesos de un programa concurrente tienen

Más detalles

Benemérita Universidad Autónoma del Estado de Puebla

Benemérita Universidad Autónoma del Estado de Puebla Benemérita Universidad Autónoma del Estado de Puebla Facultad de Cs. De la Computación Programación Concurrente y Paralela Práctica de Laboratorio No. 4 Profr: María del Carmen Cerón Garnica Alumno: Roberto

Más detalles

Tema 3: Concurrencia de procesos

Tema 3: Concurrencia de procesos Tema 3: Concurrencia de procesos Yolanda Blanco Fernández yolanda@det.uvigo.es Concurrencia, Tiempo Real y Paralelismo Concurrencia: Convivencia de un conjunto de procesos en un mismo ordenador. Sistemas

Más detalles

un programa concurrente

un programa concurrente Introducción un programa concurrente asumimos que tengamos un programa concurrente que quiere realizar acciones con recursos: si los recursos de los diferentes procesos son diferentes no hay problema,

Más detalles

Presentación y objetivos

Presentación y objetivos Presentación y objetivos Este curso consta de tres módulos a través de los cuales se conocerá como desarrollar aplicaciones basadas en tecnología.net y Java. La programación orientada a objetos es una

Más detalles

Sistemas Operativos. Características de la Multiprogramación. Interacción entre Procesos. Características de la Multiprogramación

Sistemas Operativos. Características de la Multiprogramación. Interacción entre Procesos. Características de la Multiprogramación Universidad Simón Bolívar Departamento de Electrónica y Circuitos EC3731 Arquitectura del Computador II Prof. Osberth De Castro Prof. Juan C. Regidor Sistemas Operativos Concurrencia y Sincronización de

Más detalles

Comunicación con la Computadora

Comunicación con la Computadora Comunicación con la Computadora Programación Básica Copyright CARIMOBITS Comunicación con la computadora Se logra a través de lenguajes de computadoras o lenguajes de programación. Tipos de lenguajes de

Más detalles

COLEGIO DE BACHILLERES ELABORADO POR: ING. IVETT ZARZA HIDALGO Y LIC. CLAUDIA HERNÀNDEZ ALPÍZAR PROFA. DE INFORMATICA Y DE CECAT-INFORMATICA

COLEGIO DE BACHILLERES ELABORADO POR: ING. IVETT ZARZA HIDALGO Y LIC. CLAUDIA HERNÀNDEZ ALPÍZAR PROFA. DE INFORMATICA Y DE CECAT-INFORMATICA Visual Basic.NET es la última versión del sistema de desarrollo Visual Basic. Antes de empezar a crear aplicaciones en Visual Basic.NET, le será útil conocer y entender algunos conceptos básicos de.net.

Más detalles

INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS EN VISUAL BASIC.NET

INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS EN VISUAL BASIC.NET Programación Orientada a Objetos mayo, 2003 INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS EN VISUAL BASIC.NET Tomás Montero Ripoll Raúl del Nogal Sánchez Departamento de Informática y Automática Universidad

Más detalles

www.aprendoencasa.com Curso Introducción JAVA Pág.: 1

www.aprendoencasa.com Curso Introducción JAVA Pág.: 1 www.aprendoencasa.com Curso Introducción JAVA Pág.: 1 Introducción Java es un lenguaje basado en la programación orientada a objetos (POO), este tipo de programación va más allá del tipo de programación

Más detalles

CAPÍTULO 8. Comunicación y sincronización basada en variables compartidas

CAPÍTULO 8. Comunicación y sincronización basada en variables compartidas CAPÍTULO 8. Comunicación y sincronización basada en variables compartidas 8 Comunicación y sincronización basada en variables compartidas...2 8.1 Exclusión mutua y condición de sincronización....2 8.2

Más detalles

Marco Besteiro y Miguel Rodríguez Introducción al lenguaje C#

Marco Besteiro y Miguel Rodríguez Introducción al lenguaje C# Introducción. C# es un lenguaje orientado a objetos (es más correcto decir orientado a componentes) diseñado para el CLR (Common Language Runtime) de la plataforma.net que se llamó en un principio NGWS,

Más detalles

Curso: Programación con Microsoft Visual Basic 2010.

Curso: Programación con Microsoft Visual Basic 2010. Curso: Programación con Microsoft Visual Basic 2010. Código: 1386 Familia Profesional: Programación Acreditación: Formación reconocida a través de vías no formales Modalidad: Distancia Duración: 100 horas

Más detalles

Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º

Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º 1. Ejercicio (1 punto) Dado el array A={8, 3, 7, 1, 4, 9, 5, 2, 6 Describir cual es el estado del array A después de cada paso principal del algoritmo: InsertionSort. {8, 3, 7, 1, 4, 9, 5, 2, 6 {3, 8,

Más detalles

Monitores Ing. Iván Medrano Valencia

Monitores Ing. Iván Medrano Valencia Universidad Nacional de San Antonio Abad del Cusco Departamento Académico de Informática Programación Concurrente y Distribuida Práctica 5 1. OBJETIVO. Ing. Iván Medrano Valencia En esta práctica, comprobaremos

Más detalles

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Contenido Tipos de herencia Herencia y niveles de visibilidad Herencia y creación Redefinición de métodos Conversión

Más detalles

Capítulo 4 Características generales del lenguaje (III)

Capítulo 4 Características generales del lenguaje (III) Novedades de Visual Basic 9.0 Registrado para Capítulo 4 Características generales del lenguaje (III) Introducción En este capítulo continuamos con las novedades de Visual Basic 9.0,

Más detalles

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí

Más detalles

Servicios Web con.net

Servicios Web con.net 1. Introducción a los servicios Web Servicios Web con.net Básicamente un servicio Web es un clase que se publica en un servidor Web con soporte para ASP.NET (actualmente el único disponible es el Internet

Más detalles

Excepciones. Gonzalo Méndez - Dpto. Ingeniería de Software e Inteligencia Artificial. Excepciones

Excepciones. Gonzalo Méndez - Dpto. Ingeniería de Software e Inteligencia Artificial. Excepciones Programación Orientada a Objetos en Java Curso 2006-2007 Tema 6 Excepciones Gonzalo Méndez Pozo Dpto. de Ingeniería de Software e Inteligencia Artificial Universidad Complutense de Madrid Qué son? Excepciones

Más detalles

C#.NET. Capítulo 1. Este libro está dirigido a todas aquellas. personas que desean aprender. el lenguaje de programación C# y tienen

C#.NET. Capítulo 1. Este libro está dirigido a todas aquellas. personas que desean aprender. el lenguaje de programación C# y tienen C# Capítulo 1 C#.NET Este libro está dirigido a todas aquellas personas que desean aprender el lenguaje de programación C# y tienen conocimientos básicos de programación o no tienen ninguna experiencia

Más detalles

Introducción a la programación orientada a objetos

Introducción a la programación orientada a objetos Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación

Más detalles

Ejercicios de evaluación de fundamentos de programación en Java

Ejercicios de evaluación de fundamentos de programación en Java Ejercicios de evaluación de fundamentos de programación en Java Jorge Martínez Ladrón de Guevara Editorial EME ISBN 978-84-96285-40-8 Contenido 1. Introducción a Java... 1 Test de evaluación...1 Ejercicios...4

Más detalles

8. Sentencia return y métodos

8. Sentencia return y métodos 92 A. García-Beltrán y J.M. Arranz 8. Sentencia return y métodos Objetivos: a) Describir el funcionamiento de la sentencia return b) Interpretar el resultado de una sentencia return en el código fuente

Más detalles

Solución Examen Febrero 2006

Solución Examen Febrero 2006 Solución Examen Febrero 2006 Lea detenidamente las siguientes instrucciones. No cumplir los requerimientos puede implicar la pérdida del examen. Formato Indique su nombre completo y número de cédula en

Más detalles

Técnico Superior en Programación con Microsoft Visual Basic 2010

Técnico Superior en Programación con Microsoft Visual Basic 2010 Técnico Superior en Programación con Microsoft Visual Basic 2010 Duración: 150 horas Coste Bonificable: 825 Objetivos del curso - Aprender a desarrollar aplicaciones utilizando la tecnología de programación

Más detalles

Modulo 1 El lenguaje Java

Modulo 1 El lenguaje Java Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto

Más detalles

CAPÍTULO IV BREVE DESCRIPCIÓN DE LA INFRAESTRUCTURA DE CÓMPUTO VISUAL BASIC 6.0 PARA WINDOWS

CAPÍTULO IV BREVE DESCRIPCIÓN DE LA INFRAESTRUCTURA DE CÓMPUTO VISUAL BASIC 6.0 PARA WINDOWS CAPÍTULO IV BREVE DESCRIPCIÓN DE LA INFRAESTRUCTURA DE CÓMPUTO VISUAL BASIC 6.0 PARA WINDOWS 4.1 Antecedentes históricos El lenguaje de programación BASIC (Beginner's All purpose Symbolic Instruction Code)

Más detalles

dit UPM Tema 3: Concurrencia /ejercicios Análisis y diseño de software José A. Mañas 3.4.2014 http://jungla.dit.upm.es/~pepe/doc/adsw/index.

dit UPM Tema 3: Concurrencia /ejercicios Análisis y diseño de software José A. Mañas 3.4.2014 http://jungla.dit.upm.es/~pepe/doc/adsw/index. Análisis y diseño de software dit UPM Tema 3: Concurrencia /ejercicios José A. Mañas http://jungla.dit.upm.es/~pepe/doc/adsw/index.html 3.4.2014 ejercicio 1.1 programar una cuenta bancaria compartida 1.

Más detalles

Curso: Programación con Microsoft Visual C SHARP 2010.

Curso: Programación con Microsoft Visual C SHARP 2010. Curso: Programación con Microsoft Visual C SHARP 2010. Código: 1387 Familia Profesional: Programación. Acreditación: Formación reconocida a través de vías no formales Modalidad: Distancia Duración: 100

Más detalles

Automatización Industrial

Automatización Industrial ESCUELA SUPERIOR DE INFORMÁTICA UNIVERSIDAD DE CASILLA-LA MANCHA Automatización Industrial Programación de la Interfaz FTI con C# Tercera práctica Jose Domingo López López josed.lopez1@alu.uclm.es Raúl

Más detalles

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante)

1. Ejemplo de clase : La clase Cuenta 2. Uso de la clase Cuenta. 3. Métodos y objetos receptores de mensajes (Importante) 1. : La clase Cuenta. Uso de la clase Cuenta 3. Métodos y objetos receptores de mensajes (Importante) 1 Una clase para cuentas de un banco Vamos a modelar con una clase, un nuevo tipo de datos, donde los

Más detalles

Programación: QBASIC

Programación: QBASIC 1. QBASIC Programación: QBASIC Guía del alumno Qbasic es una versión moderna del lenguaje BASIC. Se trata de un lenguaje de alto nivel. En un lenguaje de alto nivel las instrucciones tienen un formato

Más detalles

FUNDAMENTOS DE PROGRAMACION CON C#

FUNDAMENTOS DE PROGRAMACION CON C# Capítulo 1 FUNDAMENTOS DE PROGRAMACION CON C# El lenguaje C# C# (léase, en inglés C sharp, y en español C almohadilla) es un lenguaje de programación que permite el desarrollo de aplicaciones para Internet,

Más detalles

Tema 1. Introducción a JAVA

Tema 1. Introducción a JAVA Tema 1. Introducción a JAVA Historia Características Plataforma Java Entorno de desarrollo Ejemplo: Hola mundo Estructura general de un programa Java 1 Historia de Java (i) Surge en 1991: Sun Microsystems

Más detalles

CURSO DE PROGRAMACIÓN EN JAVA J2EE 7 ÍNDICE

CURSO DE PROGRAMACIÓN EN JAVA J2EE 7 ÍNDICE CURSO DE PROGRAMACIÓN EN JAVA J2EE 7 ÍNDICE PRÓLOGO... 13 APECTOS BÁSICOS DE JAVA... 15 1.1. LA MÁQUINA VIRTUAL JAVA... 15 1.2. EDICIONES JAVA... 16 1.3. ESTRUCTURA DE UN PROGRAMA JAVA... 16 1.4. EL MÉTODO

Más detalles

Curso Programación Orientada a Objectos con C# y Visual Studio 2010

Curso Programación Orientada a Objectos con C# y Visual Studio 2010 Curso Programación Orientada a Objectos con C# y Visual Studio 2010 Descripción: El lenguaje C# es uno de los lenguajes de programación más poderosos y flexibles que se emplean en la industria de software

Más detalles

Fundamentos de Sistemas Operativos

Fundamentos de Sistemas Operativos Fundamentos de Sistemas Operativos Sistemas Informáticos Fede Pérez Índice TEMA Fundamentos de Sistemas Operativos 1. - Introducción 2. - El Sistema Operativo como parte de un Sistema de Computación 2.1

Más detalles

PROGRAMACIÓN EN JAVA

PROGRAMACIÓN EN JAVA SISTEMAS INFORMÁTICOS INDUSTRIALES curso 2007-2008 PROGRAMACIÓN EN JAVA PRÁCTICA 3: Comunicación entre tareas. Modelo productor / consumidor. Objetivos Implementar una aplicación en Java en la que existan

Más detalles

Creación de controles de usuario

Creación de controles de usuario Creación de controles de usuario Índice Descripción 1 Lección: agregar controles de usuario a un formulario Web Form ASP.NET 2 Lección: crear controles de usuario 12 Creación de controles de usuario 1

Más detalles

Definición de clases: Herencia, polimorfismo, ligadura dinámica

Definición de clases: Herencia, polimorfismo, ligadura dinámica Tema 7 Definición de clases: Herencia, polimorfismo, ligadura dinámica Con alguna frecuencia es necesario definir clases de objetos entre las cuales hay elementos comunes. En una aplicación en la cual

Más detalles

Versión: 01. Fecha: 01/04/2013. Código: F004-P006-GFPI GUÍA DE APRENDIZAJE Nº 1 1. IDENTIFICACIÓN DE LA GUIA DE APRENDIZAJE

Versión: 01. Fecha: 01/04/2013. Código: F004-P006-GFPI GUÍA DE APRENDIZAJE Nº 1 1. IDENTIFICACIÓN DE LA GUIA DE APRENDIZAJE SERVICIO NACIONAL DE APRENDIZAJE SENA GUÍA DE APRENDIZAJE SISTEMA INTEGRADO DE GESTIÓN Proceso Gestión de la Formación Profesional Integral Procedimiento Ejecución de la Formación Profesional Integral

Más detalles

CONCURRENCIA EN JAVA. Diseño de Sistemas Operativos Avanzados 2000/2001. Pedro Pablo Gómez Martín

CONCURRENCIA EN JAVA. Diseño de Sistemas Operativos Avanzados 2000/2001. Pedro Pablo Gómez Martín CONCURRENCIA EN JAVA Diseño de Sistemas Operativos Avanzados 2000/2001 Pedro Pablo Gómez Martín Concurrencia en Java 1 ÍNDICE ÍNDICE... 1 INTRODUCCIÓN... 3 CREAR UNA NUEVA HEBRA... 3 FINALIZACIÓN... 5

Más detalles

Java en 2 horas. Rodrigo Santamaría

Java en 2 horas. Rodrigo Santamaría + Java en 2 horas Rodrigo Santamaría + Generalidades 2 Desarrollado por Sun en 1995 Hereda mucha de la sintaxis de C (1972) Fuertemente tipado y orientado a objetos Aplicaciones compiladas a bytecode Gestión

Más detalles

TEMA 2. Agenda. Fundamentos de JAVA

TEMA 2. Agenda. Fundamentos de JAVA TEMA 2 Fundamentos de JAVA V1.3 Manuel Pereira González Agenda Introducción Historia de Java Características Principales Hello World Tipos Operadores Control de Flujo E/S básica Atributos y Métodos Resumen

Más detalles

PROGRAMACION CONCURRENTE Y DISTRIBUIDA. III.3 Concurrencia con Java: Sincronización

PROGRAMACION CONCURRENTE Y DISTRIBUIDA. III.3 Concurrencia con Java: Sincronización PROGRAMACION CONCURRENTE Y DISTRIBUIDA III.3 Concurrencia con Java: Sincronización J.M. Drake L.Barros 1 Recursos de Java para sincronizar threads Todos los objetos tienen un bloqueo asociado, lock o cerrojo,

Más detalles

Lenguaje de Cuarta Generación de Microsoft:.NET BACHILLERATO EN CIENCIAS DE LA COMPUTACIÓN E INFORMÁTICA DE LA UNIVERSIDAD DE COSTA RICA.

Lenguaje de Cuarta Generación de Microsoft:.NET BACHILLERATO EN CIENCIAS DE LA COMPUTACIÓN E INFORMÁTICA DE LA UNIVERSIDAD DE COSTA RICA. Lenguaje de Cuarta Generación de Microsoft:.NET BACHILLERATO EN CIENCIAS DE LA COMPUTACIÓN E INFORMÁTICA DE LA UNIVERSIDAD DE COSTA RICA Carlos Gourzong Gómez A32314 E-mail: cgourzongg@yahoo.es Alonso

Más detalles

A continuación resolveremos parte de estas dudas, las no resueltas las trataremos adelante

A continuación resolveremos parte de estas dudas, las no resueltas las trataremos adelante Modulo 2. Inicio con Java Muchas veces encontramos en nuestro entorno referencias sobre Java, bien sea como lenguaje de programación o como plataforma, pero, que es en realidad Java?, cual es su historia?,

Más detalles

2. Estructura de un programa en Java

2. Estructura de un programa en Java 24 A. García-Beltrán y J.M. Arranz 2. Estructura de un programa en Java Objetivos: a) Describir la estructura del código fuente de una aplicación Java b) Presentar los conceptos de comentario y de identificador

Más detalles