Guillermo Román Díez
|
|
|
- Alejandro Navarrete Domínguez
- hace 8 años
- Vistas:
Transcripción
1 Concurrencia Creación de Procesos en Java Guillermo Román Díez Universidad Politécnica de Madrid Curso Guillermo Román, UPM CC: Creación de Procesos en Java 1/18
2 Concurrencia Pregunta qué es la concurrencia? Guillermo Román, UPM CC: Creación de Procesos en Java 2/18
3 Concurrencia Pregunta qué es la concurrencia? Concurrencia (RAE) Acción de concurrir distintas personas, sucesos o cosas en un mismo lugar o tiempo Guillermo Román, UPM CC: Creación de Procesos en Java 2/18
4 Concurrencia Pregunta qué es la concurrencia? Concurrencia (RAE) Acción de concurrir distintas personas, sucesos o cosas en un mismo lugar o tiempo Pregunta y la concurrencia en el software? Guillermo Román, UPM CC: Creación de Procesos en Java 2/18
5 Concurrencia Pregunta qué es la concurrencia? Concurrencia (RAE) Acción de concurrir distintas personas, sucesos o cosas en un mismo lugar o tiempo Pregunta y la concurrencia en el software? qué es un proceso? Guillermo Román, UPM CC: Creación de Procesos en Java 2/18
6 Concurrencia Pregunta qué es la concurrencia? Concurrencia (RAE) Acción de concurrir distintas personas, sucesos o cosas en un mismo lugar o tiempo Pregunta y la concurrencia en el software? qué es un proceso? es lo mismo un proceso que un programa? Guillermo Román, UPM CC: Creación de Procesos en Java 2/18
7 Programa Secuencial Vs. Programa Concurrente Programa Secuencial: Define la ejecución secuencial de una lista de instrucciones Llamamos proceso a la ejecución de un programa secuencial Programa Concurrente: Define dos o más programas secuenciales que pueden ejecutar concurrentemente en forma de procesos paralelos Guillermo Román, UPM CC: Creación de Procesos en Java 3/18
8 Programa Secuencial Vs. Programa Concurrente Pregunta Programa Secuencial: Define la ejecución secuencial de una lista de instrucciones Llamamos proceso a la ejecución de un programa secuencial Programa Concurrente: Define dos o más programas secuenciales que pueden ejecutar concurrentemente en forma de procesos paralelos es lo mismo concurrencia que paralelismo? Guillermo Román, UPM CC: Creación de Procesos en Java 3/18
9 Programa Secuencial Vs. Programa Concurrente Pregunta Programa Secuencial: Define la ejecución secuencial de una lista de instrucciones Llamamos proceso a la ejecución de un programa secuencial Programa Concurrente: Define dos o más programas secuenciales que pueden ejecutar concurrentemente en forma de procesos paralelos es lo mismo concurrencia que paralelismo? Si únicamente disponemos de un procesador puede haber concurrencia pero no paralelismo Se intercalará la ejecución de los diferentes procesos Guillermo Román, UPM CC: Creación de Procesos en Java 3/18
10 Concurrencia Concurrencia Ejecución Simultánea Ejecución Simultánea: la existencia de varios procesos interactuando a la vez multiplica las posibles ejecuciones del programa Guillermo Román, UPM CC: Creación de Procesos en Java 4/18
11 Concurrencia Concurrencia Ejecución Simultánea + Indeterminismo Ejecución Simultánea: la existencia de varios procesos interactuando a la vez multiplica las posibles ejecuciones del programa Indeterminismo: dependiendo de cada posible ejecución se podrán obtener resultados diferentes Guillermo Román, UPM CC: Creación de Procesos en Java 4/18
12 Concurrencia Concurrencia Ejecución Simultánea + Indeterminismo + Interacción Ejecución Simultánea: la existencia de varios procesos interactuando a la vez multiplica las posibles ejecuciones del programa Indeterminismo: dependiendo de cada posible ejecución se podrán obtener resultados diferentes Interacción: los procesos pueden interactuar entre sí Guillermo Román, UPM CC: Creación de Procesos en Java 4/18
13 Interacción entre procesos Interacción Comunicación + Sincronización Comunicación: Permite a la ejecución de un proceso influenciar en la ejecución del otro Variables Compartidas Paso de mensajes Sincronización: Permite establecer cierto orden de ejecución de diferentes partes del programa Exclusión mutua Sincronización por condición Guillermo Román, UPM CC: Creación de Procesos en Java 5/18
14 Dificultades de la Concurrencia La velocidad ejecución de un programa depende de muchos factores No se puede garantizar que programas concurrentes idénticos y ejecutados en el mismo procesador ejecuten exactamente igual Lo único que podemos asumir es que el programa progresa No asumimos nada sobre los posibles ritmos de ejecución Guillermo Román, UPM CC: Creación de Procesos en Java 6/18
15 Dificultades de la Concurrencia La velocidad ejecución de un programa depende de muchos factores No se puede garantizar que programas concurrentes idénticos y ejecutados en el mismo procesador ejecuten exactamente igual Lo único que podemos asumir es que el programa progresa No asumimos nada sobre los posibles ritmos de ejecución Incluso los programas más sencillos se componen de instrucciones más pequeñas Programa Java: y = x + 1; x = y; Instrucciones Bytecode: 0: load x 1: const 1 2: add 3: store y 4: load y 5: store x Guillermo Román, UPM CC: Creación de Procesos en Java 6/18
16 Dificultades que presenta la concurrencia Cuál será el valor final de x si ejecutamos el programa en dos procesadores con un valor inicial x = 0? Proceso 1: (x = x + 1) i 0: load x i 1: const 1 i 2: add i 3: store x % Proceso 2: (x = x + 2) i 0: load x i 1: const 2 i 2: add i 3: store x Guillermo Román, UPM CC: Creación de Procesos en Java 7/18
17 Dificultades que presenta la concurrencia Cuál será el valor final de x si ejecutamos el programa en dos procesadores con un valor inicial x = 0? Proceso 1: (x = x + 1) i 0: load x i 1: const 1 i 2: add i 3: store x % Proceso 2: (x = x + 2) i 0: load x i 1: const 2 i 2: add i 3: store x i 0 i 1 i 2 i 3 i 0 i 1 i 2 i 3 Guillermo Román, UPM CC: Creación de Procesos en Java 7/18
18 Dificultades que presenta la concurrencia Cuál será el valor final de x si ejecutamos el programa en dos procesadores con un valor inicial x = 0? Proceso 1: (x = x + 1) i 0: load x i 1: const 1 i 2: add i 3: store x % Proceso 2: (x = x + 2) i 0: load x i 1: const 2 i 2: add i 3: store x i 0 i 1 i 2 i 3 i 0 i 1 i 2 i 3 x = 3 Guillermo Román, UPM CC: Creación de Procesos en Java 7/18
19 Dificultades que presenta la concurrencia Cuál será el valor final de x si ejecutamos el programa en dos procesadores con un valor inicial x = 0? Proceso 1: (x = x + 1) i 0: load x i 1: const 1 i 2: add i 3: store x % Proceso 2: (x = x + 2) i 0: load x i 1: const 2 i 2: add i 3: store x i 0 i 1 i 2 i 3 i 0 i 1 i 2 i 3 x = 3 i 0 i 0 i 1 i 2 i 3 i 1 i 2 i 3 Guillermo Román, UPM CC: Creación de Procesos en Java 7/18
20 Dificultades que presenta la concurrencia Cuál será el valor final de x si ejecutamos el programa en dos procesadores con un valor inicial x = 0? Proceso 1: (x = x + 1) i 0: load x i 1: const 1 i 2: add i 3: store x % Proceso 2: (x = x + 2) i 0: load x i 1: const 2 i 2: add i 3: store x i 0 i 1 i 2 i 3 i 0 i 1 i 2 i 3 x = 3 i 0 i 0 i 1 i 2 i 3 i 1 i 2 i 3 x = 1 Guillermo Román, UPM CC: Creación de Procesos en Java 7/18
21 Dificultades que presenta la concurrencia Cuál será el valor final de x si ejecutamos el programa en dos procesadores con un valor inicial x = 0? Proceso 1: (x = x + 1) i 0: load x i 1: const 1 i 2: add i 3: store x % Proceso 2: (x = x + 2) i 0: load x i 1: const 2 i 2: add i 3: store x i 0 i 1 i 2 i 3 i 0 i 1 i 2 i 3 x = 3 i 0 i 0 i 1 i 2 i 3 i 1 i 2 i 3 x = 1 i 0 i 0 i 1 i 1 i 2 i 2 i 3 i 3 Guillermo Román, UPM CC: Creación de Procesos en Java 7/18
22 Dificultades que presenta la concurrencia Cuál será el valor final de x si ejecutamos el programa en dos procesadores con un valor inicial x = 0? Proceso 1: (x = x + 1) i 0: load x i 1: const 1 i 2: add i 3: store x % Proceso 2: (x = x + 2) i 0: load x i 1: const 2 i 2: add i 3: store x i 0 i 1 i 2 i 3 i 0 i 1 i 2 i 3 x = 3 i 0 i 0 i 1 i 2 i 3 i 1 i 2 i 3 x = 1 i 0 i 0 i 1 i 1 i 2 i 2 i 3 i 3 x = 2 Guillermo Román, UPM CC: Creación de Procesos en Java 7/18
23 Dificultades que presenta la concurrencia Cuál será el valor final de x si ejecutamos el programa en dos procesadores con un valor inicial x = 0? Proceso 1: (x = x + 1) i 0: load x i 1: const 1 i 2: add i 3: store x % Proceso 2: (x = x + 2) i 0: load x i 1: const 2 i 2: add i 3: store x i 0 i 1 i 2 i 3 i 0 i 1 i 2 i 3 x = 3 i 0 i 0 i 1 i 2 i 3 i 1 i 2 i 3 x = 1 i 0 i 0 i 1 i 1 i 2 i 2 i 3 i 3 x = 2 i 0 i 1 i 2 i 3 i 0 i 1 i 2 i 3 x = 3. Guillermo Román, UPM CC: Creación de Procesos en Java 7/18
24 Operaciones atómicas Operaciones Atómicas Son operaciones indivisibles, es decir, deben realizarse de manera completa (o poder deshacerse de manera completa en caso de fallar o ser interrumpidas) Puede estar formada por una o varias instrucciones Ningún proceso puede acceder a la información modificada hasta que no se haya completado la operación atómica Guillermo Román, UPM CC: Creación de Procesos en Java 8/18
25 Multiprocessing Vs. Multiprogramming Multiprocessing varios procesos comparten uno o más procesadores Multiprogramming cada uno de los procesos tiene su propio procesador y se comunican mediante memoria compartida Distributed processing cada uno de los procesos tiene su propio procesador, pero se comunican mediante una red de comunicaciones Guillermo Román, UPM CC: Creación de Procesos en Java 9/18
26 Aspectos claves de la concurrencia Cómo indicamos la ejecución concurrente? Qué tipo de comunicación entre procesos utilizar? Qué mecanismo de sincronización utilizamos? Objetivos de la asignatura Los objetivos de la asignatura tratan de dar respuesta a estas preguntas Guillermo Román, UPM CC: Creación de Procesos en Java 10/18
27 Objetivos de la Asignatura Diseño y especificación de Programas Concurrentes Definir las interacciones entre los procesos que componen el sistema Usar técnicas formales para especificar un programa concurrente Detectas las partes del programa que necesitan control de acceso Estudiar modelos de programación concurrente Programas con concurrencia expĺıcita (comunicación y sincronización) Programación a través de paso de mensajes Guillermo Román, UPM CC: Creación de Procesos en Java 11/18
28 Procesos en Java Guillermo Román, UPM CC: Creación de Procesos en Java 12/18
29 Procesos Vs. Threads Proceso Dispone de su propio entorno de ejecución con sus propios recursos y espacio de memoria Se suelen identificar con programas o aplicaciones El cambio entre procesos es lento El SSOO es el encargado de su gestión Se conocen como procesos pesados (heavy) Thread (hilo o hebra) Los threads creados en el mismo proceso comparten recursos (memoria incluida) El cambio de contexto es rápido Pueden no estar soportados en el sistema operativo Muchas veces lo incluye el lenguaje de programación También conocidos como procesos ligeros (lightweight) Guillermo Román, UPM CC: Creación de Procesos en Java 13/18
30 cómo implementar Threads en Java? Para crear un thread en Java es necesario implementar una clase donde se implemente el código que ejecutará el thread Esto se puede hacer de dos formas: Guillermo Román, UPM CC: Creación de Procesos en Java 14/18
31 cómo implementar Threads en Java? Para crear un thread en Java es necesario implementar una clase donde se implemente el código que ejecutará el thread Esto se puede hacer de dos formas: (1) Extender la clase Thread y sobreescribir el método run public class MiPrimerThread extends Thread { public void run () { /* CODIGO AQUI */ } } Guillermo Román, UPM CC: Creación de Procesos en Java 14/18
32 cómo implementar Threads en Java? Para crear un thread en Java es necesario implementar una clase donde se implemente el código que ejecutará el thread Esto se puede hacer de dos formas: (1) Extender la clase Thread y sobreescribir el método run public class MiPrimerThread extends Thread { public void run () { /* CODIGO AQUI */ } } (2) Implementar el interfaz Runnable, que requiere implementar el método run public class MiPrimerRunnable implements Runnable { public void run () { /* CODIGO AQUI */ } } Guillermo Román, UPM CC: Creación de Procesos en Java 14/18
33 cómo lanzar Threads en Java? 1. Primero se crea el objeto de tipo Thread Ojo!! Esto no arranca el nuevo thread, simplemente instancia el objeto 2. Ejecutar el método start() start lanza el nuevo thread y ejecuta el método run Extendiendo de Thread MiPrimerThread t = new MiPrimerThread (); t. start (); Implementando Runnable Runnable runnable = new MiPrimerRunnable (); Thread t = new Thread ( runnable ); t. start (); Guillermo Román, UPM CC: Creación de Procesos en Java 15/18
34 cómo lanzar Threads en Java? 1. Primero se crea el objeto de tipo Thread Ojo!! Esto no arranca el nuevo thread, simplemente instancia el objeto 2. Ejecutar el método start() start lanza el nuevo thread y ejecuta el método run NOTA!! Extendiendo de Thread MiPrimerThread t = new MiPrimerThread (); t. start (); Implementando Runnable Runnable runnable = new MiPrimerRunnable (); Thread t = new Thread ( runnable ); t. start (); No es lo mismo llamar a start() que a run()!!!! Guillermo Román, UPM CC: Creación de Procesos en Java 15/18
35 Thread.sleep El método estático Thread.sleep(tiempo) suspende la ejecución del thread que está ejecutando un tiempo determinado El tiempo se expresa en ms El método sleep puede lanzar InterruptedException class ThreadDormido extends Thread { public void run () { try { Thread. sleep (5000) ; // A dormir 5 segundos } catch ( InterruptedException e) { System. out. println ( Me han i n t e r r u m p i d o! ); } } } Guillermo Román, UPM CC: Creación de Procesos en Java 16/18
36 Interrupciones Las interrupciones son una indicación de que un hilo debe detener lo que está haciendo para hacer otra cosa Llamando al método t.interrupt() se puede intentar interrumpir lo que está haciendo thread t Las interrupciones sólo interrumpen el thread cuando se está ejecutando un método que lanza la excepción InterruptedExecption El programador del thread interrumpido es quien decide qué hacer para tratar las interrupciones capturando InterruptedException Si estamos ejecutando, siempre podemos comprobar si nos han interrumpido a través de isinterruted() Guillermo Román, UPM CC: Creación de Procesos en Java 17/18
37 join: Esperar la terminación de un thread El método join() hace que el thread en ejecución espere a que el thread t, termine su ejecución También se puede especificar un tiempo máximo de espera Lanza InterruptedException Thread t1 = new Thread (); Thread t2 = new Thread (); t1. start (); t2. start (); try { t2. join (); t1. join (); } catch ( InterruptedException e){... } t2 main t1 t1.start t2.start t2.join t1.join Guillermo Román, UPM CC: Creación de Procesos en Java 18/18
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
Programación Concurrente en Java: Threads. Ejemplos de programación concurrente. Luis Fernando Llana Díaz. 24 de abril de 2008
Departamento de Sistemas Informáticos y Computación Universidad Complutense de Madrid de abril de 00 Ejemplos de programación concurrente En un sistema operativo, diversos programas compiten por los recursos
Aplicaciones Concurrentes
PROGRAMACIÓN CONCURRENTE TEMA 6 Aplicaciones Concurrentes ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN PROGRAMACIÓN CONCURRENTE Aplicaciones Concurrentes
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
de Gran Canaria Centro de Tecnología Médica Programación Concurrente
Universidad de Las Palmas de Gran Canaria Centro de Tecnología Médica http://www.ctm.ulpgc.es Tema 1: Introducción a la Escuela Técnica Superior de Ingenieros de Telecomunicación Conceptos Fundamentales
Concurrencia en Android LSUB, GYSC, URJC
Concurrencia en Android LSUB, GYSC, URJC Repaso de concurrencia en Java Crear un thread Instanciar un Thread, con el método run sobreescrito Intanciar un objeto que cumpla el interfaz Runnable y pasárselo
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.
75-62 Técnicas de Programación Concurrente II 2004 java Threads
75-62 Técnicas de Programación Concurrente II 2004 java Threads FIUBA Ing. Osvaldo Clúa Bibliografía: tutorial de Java en http://java.sun.com Un buen libro (algo teórico) es Garg: Concurrent and Distributed
Multitarea en Java. Rafa Caballero - UCM
Multitarea en Java Rafa Caballero - UCM Programa Monoproceso (monotarea) En cada momento hay una única instrucción ejecutándose Se dice que el programa es monotarea, o monoproceso o monohebra (o single
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
Introducción a Java LSUB. 30 de enero de 2013 GSYC
Introducción a Java LSUB GSYC 30 de enero de 2013 (cc) 2013 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial
Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos
Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad
Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria
1.2. Jerarquía de niveles de un computador Qué es un computador? Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria Es un sistema tan complejo
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
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:
Modulo 11. Clases y Objetos en Java
El siguiente texto es una traducción no oficial del documento publicado por el grupo JEDI, Introduction to Programming 1, no pretende en ningún momento reemplazar los contenidos generados por este grupo.
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
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
Threads, SMP y Microkernels. Proceso
Threads, SMP y Microkernels Proceso Propiedad de los recursos a un proceso se le asigna un espacio de dirección virtual para guardar su imagen Calendarización/ejecución sigue una ruta de ejecución la cual
Tecnología de software para sistemas de tiempo real
1 dit UPM Tecnología de software para sistemas de tiempo real Juan Antonio de la Puente DIT/UPM Motivación Las herramientas y la tecnología de software que se usan para construir otros tipos de sistemas
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
Java Avanzado Facultad de Ingeniería. Escuela de computación.
2 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 5 3 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo de sus prácticas
Qué es un programa informático?
Qué es un programa informático? Un programa informático es una serie de comandos ejecutados por el equipo. Sin embargo, el equipo sólo es capaz de procesar elementos binarios, es decir, una serie de 0s
Sistemas Distribuidos: Migración de Procesos
Sistemas Distribuidos: Migración de Procesos Yudith Cardinale Universidad Central de Venezuela Facultad de Ciencias Postgrado en Computación Octubre 2013 Febrero 2014 Objetivos Entender la importancia
INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA
Objetivo: Identificar los concentos principales en java POO, que es una clase, un objeto así como sus características principales abstracción, modularidad, encapsulamiento, herencia, polimorfismo. INTRODUCCIÓN
Concurrencia en Java
Concurrencia en Java Concurrencia en Java Con un único procesador, solamente puede ejecutarse una instrucción en un instante de tiempo. La frase anterior parece una perogrullada, pero no lo es. Posiblemente
Parte I:Teoría. Tema 3:Introducción a los Sistemas operativos. Instalación
Tema 3:Introducción a los Sistemas operativos. Instalación Parte I:Teoría Introducción a los SO Componentes Llamadas al sistema Estructura del Kernel Drivers Esta obra está bajo una licencia Reconocimiento-No
Tema 4: Corrección y Robustez en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle
Tema 4: Corrección y Robustez en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Contenido Asertos en C++ Mecanismo de excepciones: Declaración de excepciones Lanzar excepciones
Diseño arquitectónico 1ª edición (2002)
Unidades temáticas de Ingeniería del Software Diseño arquitectónico 1ª edición (2002) Facultad de Informática objetivo Los sistemas grandes se descomponen en subsistemas que suministran un conjunto relacionado
Lusitania. Pensando en Paralelo. César Gómez Martín
Lusitania Pensando en Paralelo César Gómez Martín [email protected] www.cenits.es Esquema Introducción a la programación paralela Por qué paralelizar? Tipos de computadoras paralelas Paradigmas de
Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.
SISTEMAS INFORMÁTICOS I Junio 2003 INGENIERÍA EN INFORMÁTICA - Código Carrera 55 - Código Asignatura 077 Tipo de Examen: A NO SE PERMITE EL USO DE NINGÚN MATERIAL Tiempo: 2 horas Apellidos: Nombre: DNI:
Lenguaje de programación con JAVA
Pág. N. 1 Lenguaje de programación con JAVA Familia: Editorial: Autor: Tecnología de la información y computación Macro Eric Gustavo Coronel Castillo ISBN: 978-612-304-288-2 N. de páginas: 360 Edición:
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()
Sistemas Operativos. Introducción. Tema 6
Sistemas Operativos Introducción Qué es un sistema operativo? Ubicación de un sistema operativo en un computador Descripción de un sistema operativo: Funcional Estructural Realización Funciones de los
Sistemas operativos. Hasta ahora hemos visto. Relación programa-sistema operativo Gestión de memoria
Sistemas operativos UPCO ICAI Departamento de Electrónica y Automática 1 Hasta ahora hemos visto Relación programa-sistema operativo Gestión de memoria Reserva para la ejecución Pilas, heap, memoria de
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
4. DIAGRAMAS DE INTERACCIÓN INTRODUCCIÓN DIAGRAMAS DE SECUENCIA Objetos Mensajes
4. DIAGRAMAS DE INTERACCIÓN...37 4.1. INTRODUCCIÓN... 37 4.2. DIAGRAMAS DE SECUENCIA... 37 4.2.1. Objetos...37 4.2.2. Mensajes...38 4.2.3. Creación y destrucción de un objeto...39 4.3. DIAGRAMAS DE COLABORACIÓN...
Programación Orientada a Objetos (POO)
Programación Orientada a Objetos (POO) Introducción La programación orientada a objetos es una técnica de programación en la cual expresamos el código en términos relacionados a como vemos las cosas en
Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones
Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice
Sistemas Distribuidos. Soporte de Sistemas Operativos
Soporte de Sistemas Operativos Soporte de Sistemas Operativos Soporte de Sistemas Operativos Soporte de Sistemas Operativos Tareas principales de un SO: Administrar recursos Proveer abstracciones de los
INTERFACE COMPARATOR. DIFERENCIAS ENTRE COMPARATOR Y COMPARABLE. CLASE COLLECTIONS. EJERCICIOS RESUELTOS. (CU00918C)
APRENDERAPROGRAMAR.COM INTERFACE COMPARATOR. DIFERENCIAS ENTRE COMPARATOR Y COMPARABLE. CLASE COLLECTIONS. EJERCICIOS RESUELTOS. (CU00918C) Sección: Cursos Categoría: Lenguaje de programación Java nivel
ANX-PR/CL/ GUÍA DE APRENDIZAJE. ASIGNATURA Concurrencia. CURSO ACADÉMICO - SEMESTRE Segundo semestre
ANX-PR/CL/001-02 GUÍA DE APRENDIZAJE ASIGNATURA Concurrencia CURSO ACADÉMICO - SEMESTRE 2015-16 - Segundo semestre GA_10II_105000018_2S_2015-16 Datos Descriptivos Nombre de la Asignatura Titulación Centro
Una Clase: define un grupo de objetos que tienen propiedades similares y se comportan de manera similar.
Clases La programación orientada a objetos utiliza clases para encapsular (envolver, esconder) datos (atributos) y métodos (comportamientos). Por ejemplo, el estéreo de un auto encapsula todos los atributos
La última versión disponible cuando se redactó este manual era la 5 Beta (versión ), y sobre ella versa este manual.
Manual de Dev-C++ 4.9.9.2 Página 1 de 11 Introducción Dev-C++ es un IDE (entorno de desarrollo integrado) que facilita herramientas para la creación y depuración de programas en C y en C++. Además, la
TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O
TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO Definición y objetivos de un S.O Definición y objetivos del sistema operativo Estructura, componentes y servicios de un S.O Llamadas al sistema
I. Introducción a la programación orientada a objetos y al lenguaje JAVA Colegio Reuven Feuerstein --Javier Navarro
I. Introducción a la programación orientada a objetos y al lenguaje JAVA Colegio Reuven Feuerstein --Javier Navarro Lectura de Datos Dentro de un applet es sencillo tomar algún dato del usuario para realizar
Diseño de sistemas concurrentes
Diseño de sistemas concurrentes Manuel Carro Universidad Politécnica de Madrid Necesidad de diseño Hasta ahora, problemas ya cerrados: Número de procesos, recursos Código de procesos Especificación de
Tema 4. Excepciones en Java
Programación en Java Tema 4. Excepciones en Java Luis Rodríguez Baena Facultad de Informática Excepciones (I) Permiten la captura de errores en tiempo de ejecución. El control de excepciones permite extraer
Patrones de Diseño. Patrón estructural Composite. Técnicas de Programación - Curso 2007/08
Patrones de Diseño Patrón estructural Composite Técnicas de Programación - Curso 2007/08 Propósito Componer objetos en estructuras arbóreas para representar jerarquías todo-parte. Manipular todos los objetos
INTRODUCCION A LA PROGRAMACION EN JAVA
Departament d Arquitectura de Computadors INTRODUCCION A LA PROGRAMACION EN JAVA Índice Paso de parámetros en tiempo de ejecución Métodos static Atributos static Try-catch-finally Throws/throw 2 Paso de
Anexo. Control de errores
Anexo. Control de errores Tipos de errores Los errores en un programa o algoritmo se pueden clasificar de la siguiente manera Errores de compilación Los errores de compilación no permiten la ejecución
Tema: Herramientas UML, Análisis y diseño UML
Programación II. Guía No.3 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Herramientas UML, Análisis y diseño UML Objetivos Conocer una herramienta de modelado para la solución
dit Real-Time Java Sistemas de Tiempo Real José F. Ruiz DIT/UPM UPM
Sistemas de Tiempo Real Real-Time Java José F. Ruiz DIT/ Índice Introducción Objetivos Áreas mejoradas en la especificación de tiempo real Manejo del tiempo Conclusiones Referencias 10/01/2002 2001-2002
Tema: Herramientas UML, Análisis y diseño UML
Programación II. Guía 2 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Herramientas UML, Análisis y diseño UML Objetivo Conocer una herramienta de modelado para la solución
RESUMEN DE LAS DIAPOSITIVAS DE BASE DE DATOS 1
RESUMEN DE LAS DIAPOSITIVAS DE BASE DE DATOS 1 ANTES QUE NADA DEFINIR QUE ES UNA BASE DE DATOS: Una base de datos es una colección estructurada de datos, Un sistema de base de datos es una colección de
GRADO EN INGENIERÍA INFORMÁTICA
Facultad de Informática Universidad Complutense de Madrid GRADO EN INGENIERÍA INFORMÁTICA El Grado en Ingeniería Informática incluye dos itinerarios. Itinerario de computación Itinerario de tecnología
Programación Orientada a Objetos en Java
Programación Orientada a Objetos en Java Curso 2006-2007 Tema 1 Introducción a Java Gonzalo Méndez Pozo Dpto. de Ingeniería de Software e Inteligencia Artificial Universidad Complutense de Madrid Historia
Cristian Blanco
UNIDAD DIDÁCTICA 8. ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS. DIAGRAMAS DE COMPORTAMIENTO En el siguiente enlace tienes una descripción y algunos ejemplos de todos los diagramas UML.: http://jms32.eresmas.net/tacticos/uml/umlindex.html
Interfaces y Clases Internas. ELO329: Diseño y Programación Orientados a Objetos
Interfaces y Clases Internas ELO329: Diseño y Programación Orientados a Objetos Qué queremos decir con interfaces y clases internas? NOTA: El término interfaz aquí NO se refiere a las interfaces gráficas
Paradigma de paso de mensajes
Paradigma de paso de mensajes Curso 2011-2012 Índice Visión lógica del paradigma de paso de mensajes. Operaciones básicas en paso de mensajes. Operaciones bloqueantes. Operaciones no bloqueantes. MPI:
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
Computadora y Sistema Operativo
Computadora y Sistema Operativo Según la RAE (Real Academia de la lengua española), una computadora es una máquina electrónica, analógica o digital, dotada de una memoria de gran capacidad y de métodos
QUÉ ES UNA CLASE JAVA? ATRIBUTOS (PROPIEDADES O CAMPOS), CONSTRUCTOR Y MÉTODOS. (CU00623B)
APRENDERAPROGRAMAR.COM QUÉ ES UNA CLASE JAVA? ATRIBUTOS (PROPIEDADES O CAMPOS), CONSTRUCTOR Y MÉTODOS. (CU00623B) Sección: Cursos Categoría: Curso Aprender programación Java desde cero Fecha revisión:
Tema 2 Introducción a la Programación en C.
Tema 2 Introducción a la Programación en C. Contenidos 1. Conceptos Básicos 1.1 Definiciones. 1.2 El Proceso de Desarrollo de Software. 2. Lenguajes de Programación. 2.1 Definición y Tipos de Lenguajes
Software de control y adquisición de datos SCM4000
Software de control y adquisición de datos SCM4000 El programa SCM4000, es un sistema diseñado para el control y adquisición de datos para ensayos de fatiga en equipos dinámicos. El software esta diseñado
Fundamentos de Ingeniería de Software [Etapas II]
Fundamentos de Ingeniería de Software [Etapas II] M. en C. Sergio Luis Pérez Pérez UAM CUAJIMALPA, MÉXICO, D. F. Trimestre 13-I Sergio Luis Pérez (UAM CUAJIMALPA) Curso de fundamentos de ing. de software
ARQUITECTURAS PARA PROCESAMIENTO PARALELO
1 de 6 27/11/11 13:08 ARQUITECTURAS PARA PROCESAMIENTO PARALELO Facultad de Ingeniería de Sistemas Información para el Proyecto REYCYT RESUMEN Se presenta información general relativa a las diferentes
Principios Generales de la Concurrencia
Principios Generales de la Concurrencia CONTENIDO: Concepto de Concurrencia Por qué utilizar la Concurrencia Exclusión Mutua y Sincronización Corrección en Sistemas Concurrentes Consideraciones sobre el
FUNCIONAMIENTO DEL ORDENADOR
FUNCIONAMIENTO DEL ORDENADOR COMPUTACIÓN E INFORMÁTICA Datos de entrada Dispositivos de Entrada ORDENADOR PROGRAMA Datos de salida Dispositivos de Salida LOS ORDENADORES FUNCIONAN CON PROGRAMAS Los ordenadores
UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INGENIERÍA TELEMÁTICA. Daniel Díaz Sánchez
UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INGENIERÍA TELEMÁTICA Sockets para servidor Daniel Díaz Sánchez Florina Almenárez Andrés Marín Departamento de Ingeniería Telemática Universidad Carlos
DIAGRAMAS DE ACTIVIDAD SESION 9. Cap. 9 Kendall & Kendall Cap 5 Jacobson
DIAGRAMAS DE ACTIVIDAD Cap. 9 Kendall & Kendall Cap 5 Jacobson SESION 9 Ana Mercedes Cáceres [email protected] Instructora: Carmen Morales Año 2006. OBJETIVOS Representar gráficamente los problemas
Fundamentos de las TIC
Fundamentos de las TIC Sistemas Informáticos Conceptos básicos El término Informática proviene de la unión de dos palabras: INFORmación y automática. La Informática es, por tanto, la ciencia que estudia
Plataforma de video bajo demanda (VOD)
Plataforma de video bajo demanda (VOD) Miguel Ángel Muñoz Bañón (G14) 74365649W Esquema para el proyecto de prácticas. 1. Descripción del proyecto Qué es lo que queremos hacer? Objetivos Se desea implementar
Sockets. Los sockets son un mecanismo de comunicación entre procesos que se utiliza en Internet.
Sockets La biblioteca estándar de clases de Java nos proporciona todo lo que necesitamos para utilizar sockets en nuestras aplicaciones en el paquete java.net, por lo que tendremos que añadir la siguiente
Unidad I Introducción a la programación de Sistemas. M.C. Juan Carlos Olivares Rojas
Unidad I Introducción a la programación de Sistemas M.C. Juan Carlos Olivares Rojas Agenda 1.1 Qué es y que estudia la programación de sistemas? 1.2 Herramientas desarrolladas con la teoría de programación
Office 365 Pro Plus ACTVACIÓN EN EQUIPOS COMPARTIDOS
Office 365 Pro Plus ACTVACIÓN EN EQUIPOS COMPARTIDOS La activación en equipos compartidos permite implementar Office 365 ProPlus en un equipo de la organización a los que varios usuarios tienen acceso.
Diseño de algoritmos paralelos
PROGRAMACIÓN CONCURRENTE TEMA 7 Diseño de algoritmos paralelos ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN DISEÑO DE ALGORITMOS PARALELOS - TEMA 7.2 Algoritmos
JAVA 7 Los fundamentos del lenguaje Java
Presentación 1. Historia 9 1.1 Por qué Java? 9 1.2 Objetivos del diseño de Java 10 1.3 Auge de Java 11 2. Características de Java 12 2.1 El lenguaje de programación Java 12 2.1.1 Sencillo 13 2.1.2 Orientado
Diagramas de interacción
Tema 6: Diagramas de Interacción Diagramas de interacción Los diagramas de interacción son diagramas que describen cómo grupos de objetos colaboran para conseguir algún fin. Estos diagramas muestran objetos,
Estructura de Computadores. Contenido. Sistema de E/S. 7.- E/S y dispositivos periféricos
Estructura de Computadores 7.- E/S y dispositivos periféricos Contenido Clasificación y tipos de periféricos Módulos de E/S. Instrucciones de E/S. Técnicas de E/S. E/S programada. E/S mediante interrupciones.
3. PROGRAMACION CONCURRENTE
3. PROGRAMACION CONCURRENTE INTRODUCCION Actualmente observamos que el paradigma orientado a objetos, solo podemos ejecutar un equipo a la vez como máximo en cambio con la introducción de las hebras concurrentes(programación
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
INF 473 Desarrollo de Aplicaciones en Java
INF 473 Desarrollo de Aplicaciones en Java Sección V Otras características de Java Prof. José Miguel Rubio [email protected] [email protected] PUCV Marzo 2008 1 Paquetes Conjunto de clases definidas
Herramientas Informáticas I Software: Sistemas Operativos
Herramientas Informáticas I Software: Sistemas Operativos Facultad de Ciencias Económicas y Jurídicas Universidad Nacional de La Pampa Sistemas Operativos. Es el software base que permite trabajar como
La Herencia: Teoría (1)
Introducción a la Herencia Presentación basada en: 1. Construcción de Software Orientado a Objetos. Bertrand Meyer.1998. 2. Java 2., Curso de programación. Fco. Javier Ceballos. Ed. Alfoomega&RA-MA, 2003.
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
Programación concurrente
Programación concurrente Master de Computación I Conceptos y recursos para la programación concurrente: I.1 Motivación de la programación concurrente. J.M. Drake M. Aldea Motivación de la programación
Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.
Variables Una variable no es más que un nombre simbólico que identifica una dirección de memoria: Suma el contenido de la posición 3001 y la 3002 y lo almacenas en la posición 3003 vs. total = cantidad1
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
Sistemas Operativos. Clase 2: Administración de procesos.
Sistemas Operativos Clase 2: Administración de procesos. Administración de procesos Un concepto muy importante en el ambiente de diseño de todo sistema operativo, es el de proceso o tarea. De manera general,
INGENIERÍA DEL SOFTWARE I Práctica 5 Modelado de Diseño
INGENIERÍA DEL SOFTWARE I Práctica 5 Modelado de Diseño Univ. Cantabria Fac. de Ciencias Patricia López Introducción al Diseño Modelamos la estructura software del sistema (incluida la arquitectura) para
Introducción a Java LSUB. 15 de enero de 2015 GSYC
Introducción a LSUB GSYC 15 de enero de 2015 (cc) 2014 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial - SinObraDerivada
Gestión de Entrada-salida
Gestión de Entrada-salida E. Campo M. Knoblauch Ó. López J. Clemente Departamento de Automática Universidad de Alcalá Sistemas Operativos Avanzados Gestión de Entrada-salida 1 / 18 Índice Introducción
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,
COMUNICACIÓN ENTRE EL CLIENTE Y SERVIDOR SIN PHP Y CON PHP. INTÉRPRETE PHP Y GESTOR DE BASES DE DATOS (CU00804B)
APRENDERAPROGRAMAR.COM COMUNICACIÓN ENTRE EL CLIENTE Y SERVIDOR SIN PHP Y CON PHP. INTÉRPRETE PHP Y GESTOR DE BASES DE DATOS (CU00804B) Sección: Cursos Categoría: Tutorial básico del programador web: PHP
Cliente/Servidor en Java
Cliente/Servidor en Java Grupo ARCOS Desarrollo de Aplicaciones Distribuidas Ingeniería Informática Universidad Carlos III de Madrid Contenidos 1. Introducción: 1. Paradigma cliente/servidor 2. Entorno
CURSO: APACHE SPARK CAPÍTULO 3: SPARK CONCEPTOS BÁSICOS.
CURSO: APACHE SPARK CAPÍTULO 3: SPARK CONCEPTOS BÁSICOS www.formacionhadoop.com Índice 1 Introducción a Spark 2 3 Spark Shell 2.1 SparkContext Introducción a RDDs (Resilient Distributed Datasets) 3.1 Creación
