Programación Concurrente con Java
|
|
|
- Lourdes Peña Crespo
- hace 8 años
- Vistas:
Transcripción
1 Programación Concurrente con Java Diseño de Sistemas Operativos Facultad de Informática Juan Pavón Mestras Dep. Sistemas Informáticos y Programación Universidad Complutense Madrid Concurrencia En el mundo real, muchas cosas pasan a la vez Con varias computadoras se pueden ejecutar varios programas a la vez Con una sola computadora se puede simular la ejecución paralela de varias actividades:? múltiples flujos de ejecución (multithreading) comparten el uso de un procesador Java soporta la ejecución paralela de varios threads (hilos de ejecución) Los threads en una misma máquina virtual comparten recursos por ejemplo, memoria Los threads en varias máquinas virtuales necesitan de mecanismos de comunicación para compartir información Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 2 1
2 Concurrencia Para qué: Mejorar la disponibilidad y eficiencia Modelar tareas, objetos autónomos, animación Paralelismo: múltiples procesadores, simultanear E/S Protección: aislar actividades en hilos de ejecución Ejemplos: Tareas con mucha E/S: acceso a sitios web, bases de datos Interfaces gráficas de usuario: gestión de eventos Demonios con múltiples peticiones de servicio simultáneas Simulación Con cuidado: Complejidad: seguridad, viveza, composición Sobrecarga: Mayor uso de recursos Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 3 Programación concurrente OO La concurrencia es natural en orientación a objetos Ya Simula67 soportaba concurrencia Diferencias con otros modelos de concurrencia Programación OO secuencial Tiene más importancia la seguridad y la viveza Pero también usa y extiende patrones de diseño comunes Programación orientada a eventos Permite que pueda haber múltiples eventos a la vez Pero usa y extiende estrategias de mensajería Programación multithread de sistemas Añade encapsulación y modularidad Pero usa y extiende implementaciones eficientes Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 4 2
3 Programación concurrente OO Concurrencia y reusabilidad Mayor complejidad Criterios de corrección más duros que con código secuencial El no determinismo impide la depuración y el entendimiento del código Mayor dependencia del contexto Los componentes son seguros y vivos sólo en determinados contextos: necesidad de documentación Puede ser difícil extender mediante herencia (anomalías) Puede ser difícil la composición: conflictos entre técnicas de control de la concurrencia Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 5 Programación concurrente OO Políticas de diseño Ejemplos Dependencia de estado: qué hacer cuando se recibe una petición que no se puede realizar Disponibilidad de servicio: Restricciones en el acceso concurrente a los métodos Restricciones de flujos: Establecer direccionabilidad y reglas de capas para los mensajes Combaten la complejidad Reglas de diseño de alto nivel y restricciones arquitecturales evitan decisiones caso por caso inconsistentes Mantener la apertura Acomodar componentes que obedecen políticas determinadas Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 6 3
4 Modelos de objetos 4 operaciones básicas Aceptar un mensaje Actualizar el estado local Enviar un mensaje Crear un nuevo objeto Dependiendo de las reglas para estas operaciones, hay 2 categorías de modelos: Objetos activos Objetos pasivos Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 7 Modelo de objetos pasivos En programas secuenciales, sólo un objeto Programa es activo Los objetos pasivos encapsulan datos del programa main programa E/S Objeto Objeto Objetopasivo pasivo Objeto pasivo pasivo Objeto pasivo Objeto pasivo Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 8 4
5 Modelo de objetos activos Cada objeto tiene su propio hilo de ejecución (sólo puede hacer una cosa a la vez) mensaje accion { actualiza estado envia mensaje crea objeto oneway Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 9 Sistemas = Objetos + Actividades Objetos TADs, componentes agregados, monitores, objetos de negocio (EJBs), servlets, objetos CORBA remotos Se pueden agrupar de acuerdo a estructura, role,... Se pueden usar para múltiples actividades Lo más importante es la SEGURIDAD Actividades Mensajes, cadenas de llamadas, workflows, hilos de ejecución, sesiones, escenarios, scripts, casos de uso, transacciones, flujos de datos Se pueden agrupar por origen, función,... Comprenden múltiples objetos Lo más importante es la VIVEZA Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 10 5
6 Java Soporte para ingeniería de software Empaquetado: objetos, clases, componentes, paquetes Portabilidad: bytecode, unicode, transportes varios Extensibilidad: Subclases, interfaces, class loader Seguridad: máquina virtual, verificadores de código Bibliotecas: paquetes java.* Ubicuidad: corre en casi todas partes Retos en nuevos aspectos de la programación Concurrencia: threads, locks Distribución: RMI, CORBA Persistencia: Serialización, JDBC Seguridad: gestores de seguridad, dominios Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 11 Concurrencia en Java El código que ejecuta un thread se define en clases que implementan la interfaz Runnable public interface Runnable { public void run(); Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 12 6
7 Concurrencia en Java Clase Thread Un hilo de ejecución en un programa Métodos run() actividad del thread start() activa run() y vuelve al llamante join() espera por la terminación (timeout opcional) interrupt() sale de un wait, sleepo join isinterrupted() yield() stop(), suspend(), resume() (deprecated) Métodos estáticos sleep(milisegundos) currenttread() Métodos de la clase Object que controlan la suspensión de threads wait(), wait(milisegundos), notify(), notifyall() Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 13 Concurrencia en Java Creación de Threads: class MiThread extends Thread {... => new MiThread() class MiThread implements Runnable {... => new Thread(new MiThread()) Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 14 7
8 Concurrencia en Java import importjava.lang.math ;; class classejemplothread extends extendsthread {{ int intnumero; numero; EjemploThread EjemploThread (int (intn) n) {{ numero numero = n; n; public publicvoid void run() run() {{ try try {{ while while (true) (true){{ System.out.println (numero); (numero); sleep((long)(1000*math.random())); catch catch (InterruptedException e) e) {{ return; return; // // acaba acaba este este thread thread public public static staticvoid main main (String (String args[]) args[]) {{ for for (int (inti=0; i=0; i<10; i<10; i++) i++) new newejemplothread(i).start(); SALIDA Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 15 Sincronización en Java Necesaria para evitar colisiones entre hilos de ejecución Por ejemplo, accesos a memoria o a un recurso a la vez Sincronización: synchronized método (...) {... // a nivel de objeto synchronized (objeto) {... código Métodos // a nivel de bloque de wait() y wait(timeout) El thread se queda bloqueado hasta que algún otro le mande una señal (notify) y entonces pasa a la cola de listos para ejecutar notify() y notifyall()? No es fácil la correcta programación de la concurrencia y la sincronización Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 16 8
9 Sincronización en Java public class NoSincronizada extends Thread { static int n = 1; public void run() { for (int i = 0; i < 10; i++) { System.out.println(n); n++; public static void main(string args[]) { Thread thr1 = new NoSincronizada(); Thread thr2 = new NoSincronizada(); Posible resultado de ejecución ?? thr1.start(); thr2.start(); Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 17 Ejercicio Adaptar la clase anterior para que el resultado de la ejecución de los dos threads en paralelo sea la secuencia de 1 a 20 sin repeticiones ni saltos de números. Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 18 9
10 Monitores en Java Un monitor es un objeto que implementa el acceso en exclusión mutua a sus métodos En Java se aplica a los métodos de la clase declarados como synchronized Los demás métodos pueden accederse concurrentemente independientemente de si algún thread accede a ellos o a un método synchronized //...dentro de código synchronized, ya que el hilo debe ser el propietario del monitor // del objeto. Liberará el monitor hasta que lo despierten con notify o notifyall, y // pueda retomar control del monitor try { wait(); // o wait(0); catch (InterruptedException e) { System.out.println( Interrumpido durante el wait"); //...también dentro de código synchronized notify(); // o notifyall(); Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 19 Monitores en Java Disciplinas de señalización de monitores Signal and exit: Después de hacer notify el thread debe salir del monitor y el thread que recibe la señal es el siguiente en entrar en el monitor Signal and continue: El thread que recibe la señal no tiene que ser necesariamente el siguiente en entrar en el monitor?puede haber intromisión: Antes que el thread despertado podría entrar un thread que estuviera bloqueado en la llamada a un método synchronized En Java: Los monitores siguen la disciplina signal and continue Tampoco se garantiza que el thread que más tiempo lleve esperando sea el que reciba la señal con un notify() Cuando se usa notifyall() para pasar todos los threads en wait a la cola de listos para ejecutar, el primer thread en entrar en el monitor no será necesariamente el que más tiempo lleve esperando Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 20 10
11 Monitores en Java Ejercicio Realizar un programa para determinar qué disciplina siguen los monitores Java Una posible manera de hacerlo es creando varios threads que llaman a un método de un objeto y dentro del método hacen un wait(). Otro thread será el encargado de despertarlos con notify() llamando a otro método del mismo objeto Habrá que sacar trazas en cada método de los momentos en que un thread intenta entrar en el monitor, al hacer wait(), al despertarse, etc. Para lograr un mayor entrelazado de los threads para este experimento sería conveniente una instrucción sleep() en algunos momentos, por ejemplo antes y después del wait() y del notify(). Así el planificador podrá dar entrada a otros threads. Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 21 Propiedades de los programas concurrentes En programación secuencial: Corrección parcial (Si el programa termina, realiza su función correctamente) + Terminación (el programa termina alguna vez) = Corrección total En programación concurrente: Propiedades de seguridad (Si el sistema evoluciona, lo hace correctamente) Propiedades de viveza (Si algo debe ocurrir, alguna vez ocurre) Equidad (Todo proceso que evoluciona lo hace recibiendo un trato equitativo de los recursos)? Para verificar estas propiedades en un programa Java hay que entender cómo funciona la MVJ (y también para programar mejor...) Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 22 11
12 Threads y Locks en la MVJ Conceptos para la definición del funcionamiento de la MVJ Variables son los lugares en los que un programa puede almacenar algo Variables de clases (static) y de objetos, y también componentes de arrays Las variables se guardan en una memoria principal que es compartida por todos los threads Cada thread tiene su propia memoria de trabajo El thread trabaja con copia de las variables en la memoria de trabajo La memoria principal tiene una copia maestra de cada variable La memoria principal puede contener también cerrojos (locks) Todo objeto Java tiene asociado un lock Los threads pueden competir para adquirir un lock Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 23 Threads y Locks en la MVJ Operaciones atómicas en la MVJ Ejecutables por threads: use variable) assign load principal) store (siempre que ejecute una instrucción de la MVJ que usa el valor de la (siempre que ejecute una instrucción de la MVJ de asignación a la variable) (para poner en la copia de la variable el valor transmitido desde memoria (para transmitir a memoria principal el valor de la copia de la variable) Ejecutables por la memoria principal read de write memoria (para transmitir el contenido de la copia maestra de la variable a la memoria trabajo del thread) (para poner en la copia maestra de la variable el valor transmitido desde de trabajo del thread) Ejecutables en sincronización por un thread y la memoria principal lock (para adquirir un claim en un cerrojo particular) unlock (para liberar un derecho sobre un cerrojo particular) Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 24 12
13 Acceso a variables en la MVJ Thread Memoria Principal Memoria de trabajo read x load store x copia maestra x write x assign x use Máquina de ejecución Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 25 Threads y Locks en la MVJ Reglas de orden de ejecución Las acciones realizadas por cada thread están totalmente ordenadas Las acciones realizadas por la memoria principal sobre cualquier variable están totalmente ordenadas Las acciones realizadas por la memoria principal sobre cualquier cerrojo están totalmente ordenadas No se permite que ninguna acción se siga a sí misma Relación entre las acciones de un thread y memoria principal Toda acción lock y unlock se realiza a la vez por un thread y la memoria principal Toda acción load sigue a una acción read Toda acción write sigue a una acción store Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 26 13
14 Threads y Locks en la MVJ Variables long y double (no declaradas como volatile) Se consideran en la MVJ como 2 variables de 32 bits cada una Son necesarias dos operaciones load, store, read o write para tratarlas Para soportar procesadores de 32 bits Aunque se admite que haya implementaciones de la MVJ con operaciones de 64bits atómicas (y actualmente se recomienda incluso) Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 27 Threads y Locks en la MVJ Reglas sobre cerrojos Un cerrojo sólo puede pertenecer a un thread en un momento dado El cerrojo sólo quedará libre cuando el thread haga tantos unlock como lock hubiera hecho Un thread no puede hacer unlock de un cerrojo que no poseyera Reglas sobre cerrojos y variables Antes de hacer una operación unlock un thread debe copiar en memoria principal todas las variables a las que hubiera asignado Después de hacer lock un thread debe recargar de memoria principal todas las variables que utilice Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 28 14
15 Threads y Locks en la MVJ public class Ejemplo { thread uno memoria principal read y read x thread dos int x = 1, y = 2; load y load x void uno() { x = y; use y assign x use x assign y void dos() { y = x; [store x] [write x] [write y] [store y] En este ejemplo en memoria principal puede acabar ocurriendo: que x acabe valiendo lo que y o que y acabe valiendo lo que x o que se cambien los valores de x e y Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 29 Threads y Locks en la MVJ public class EjemploSincronizado { int x = 1, y = 2; synchronized void uno() { x = y; synchronized void dos() { y = x; Al usar la operación unlock se obliga a escribir en memoria principal, y por haber utilizado lock hay menos combinaciones, así que bien: o x acaba valiendo lo que y o y acaba valiendo lo que x y no puede haber intercambio de valores Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 30 15
16 Threads y Locks en la MVJ thread uno lock EjemploSincronizado load y memoria principal read y read x thread dos lock EjemploSincronizado load x use y use x assign x assign y [store x] [write x] [write y] [store y] unlock EjemploSincronizado unlock EjemploSincronizado Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 31 Threads y Locks en la MVJ Ejercicios Escribir un programa que cree dos threads y pruebe la ejecución de las clases de los ejemplos anteriores Considerar la clase Ejercicio2 a continuación. Qué ocurre si un thread llama a uno() mientras otro llama a dos()? Qué ocurre si los métodos son synchronized? class Ejercicio2 { int a=1, b=2; void uno() { a=3; b=4; void dos() { System.out.println( a = + a +, b= + b); Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 32 16
17 Requisitos en programación concurrente OO Seguridad: requisitos de integridad Viveza: requisitos de progreso Eficiencia: requisitos de efectividad Reusabilidad: requisitos composicionales Políticas y protocolos reglas de diseño a lo largo del sistema Estructuras de objetos patrones de diseño microarquitectura Técnicas de codificación idioms trucos Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 33 Patrones de programación concurrente Patrones de diseño de seguridad Propiedades de seguridad: Nada malo ocurrirá Los patrones tratan básicamente de evitar que el estado del sistema se haga inconsistente Patrones de diseño de viveza Propiedades de seguridad: Nada malo ocurrirá Los patrones tratan básicamente de evitar que el estado del sistema se haga inconsistente Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 34 17
18 Patrones de diseño de seguridad Objetos seguros: realizar acciones sólo cuando se está en un estado consistente Conflictos lectura/escritura Fallos en invariantes Estrategias para mantener la consistencia de estado en los objetos accedidos concurrentemente: Inmutabilidad: Evitar los cambios de estado Sincronización mediante cerrojos: Asegurar dinámicamente un acceso exclusivo Contenimiento: Asegurar estructuralmente un acceso exclusivo ocultando objetos internos Dependencia de estado: qué hacer cuando no se puede hacer nada Partición: separar los aspectos independientes de objetos y cerrojos Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 35 Patrones de diseño de seguridad Inmutabilidad Los objetos no se modifican, se crean Vale para objetos que proporcionan servicios sin estado Ejemplos: clases String, Integer y Color de Java Otro ejemplo: public class Punto { private int x, y; // coordenadas fijas public Punto(int x, int y) { this.x = x; this.y = y; // otros métodos que no cambian los valores de las coordenadas public x() { return x; public y() { return y; Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 36 18
19 Patrones de diseño de seguridad Objetos sincronizados (cerrojos) Cuando el estado de los objetos puede cambiar, es necesario sincronizar el acceso a los métodos que pueden leer o modificar sus atributos Básicamente puede haber dos tipos de conflictos al acceder a una variable: Conflictos de lectura-escritura Conflictos de escritura-escritura Uso de cerrojos: Adquirir el objeto cerrojo al entrar en el método, devolverlo al regresar Garantiza la atomicidad de los métodos Riesgo de interbloqueos Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 37 Patrones de diseño de seguridad Objetos sincronizados (cerrojos) En general basta con declarar todos los métodos como synchronized Cada método debe ser corto de ejecución y asegurar que siempre acaba (para garantizar la viveza) En algunos casos no es necesario declarar el método synchronized: Métodos de acceso a valores de atributos de tipos sencillos Explotar la inmutabilidad parcial Arreglar la concurrencia para cada método Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 38 19
20 Patrones de diseño de viveza Cada actividad debe progresar cada método llamado tendrá que ejecutarse alguna vez Problemas de viveza: Contención: un thread no deja el procesador Reposo indefinido: un thread bloqueado nunca pasa a listo Tras suspend nadie hace resume Tras wait nadie hace notify Interbloqueo entre threads que se bloquean uno a otro Terminación prematura: un thread muere antes de lo debido (p.ej. con stop) Eficiencia Cada método llamada debería ejecutarse lo antes posible Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 39 Patrones de diseño de viveza Balance seguridad-viveza: estrategias de diseño Primero la seguridad: Asegurar que cada clase es segura (todos los métodos como synchronized) y entonces intentar mejorar la viveza para mejorar la eficiencia Análisis de métodos de acceso al monitor Partición de la sincronización Riesgo: Puede resultar en código lento o propenso a interbloqueos Primero la viveza: Al principio no se tienen políticas de sincronización, y se añaden después con compuestos, subclases, cerrojos, etc. Riesgo: puede resultar en código con errores de condiciones de carrera Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 40 20
21 Acciones dependientes del estado El estado de un objeto puede tener dos tipos de condiciones de activación: Internas: el objeto está en un estado apropiado para realizar una acción Externas: el objeto recibe un mensaje de otro pidiéndole que realice una acción Precondiciones acción Postcondiciones Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 41 Acciones dependientes del estado Estrategia general: Para cada condición que necesite esperarse, escribir un bucle guardado con un wait() Asegurar que todo método que cambie el estado que afecte a las condiciones guardadas invoque notifyall() para despertar cualquier thread que estuviera esperando un cambio de estado while (! condicion ) { try { wait(); catch (InterruptedException e) { //... //... condicion = true; notifyall(); Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 42 21
22 Acciones dependientes del estado public class Semaforo { private int cuenta; Ejemplo clásico: semáforo Semaforo(int cuentainicial) { cuenta = cuentainicial; public synchronized void P() { while ( cuenta <= 0 ) try { wait(); catch(interruptedexception e) { cuenta--; public synchronized void V() { cuenta++; notify(); Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 43 Acciones dependientes del estado Políticas para tratar pre- y post-condiciones Acciones ciegas: proceder en cualquier caso, sin garantías sobre el resultado Inacción: ignorar la petición si no se está en estado correcto Expulsión: Enviar una excepción si no se está en el estado correcto Guardas: suspender hasta que se esté en estado correcto Intento: proceder, ver si hubo éxito, y si no, rollback Reintento: seguir intentando hasta tener éxito Temporización: esperar o reintentar durante un tiempo, luego fallar Planificación: iniciar primero una actividad que nos lleve a un estado correcto Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 44 22
23 Práctica Realizar un juego que pueda ejecutarse como applet El applet debe implementar la interfaz Runnable Cada entidad del juego puede ser controlada por un hilo de ejecución separado: Para la interfaz con de usuario Jugadores Supervisión del juego etc. Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 45 Bibliografía Java Virtual Machine Specification, 2nd edition D. Lea, Programación concurrente en Java. Principios y Patrones de diseño (segunda edición). Addison-Wesley 2000 S. Hartley, Concurrent Programming with Java Juan Pavón Mestras, UCM 2001 Programación concurrente con Java 46 23
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()
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
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
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
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
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
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
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
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
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
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
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:
INTRODUCCIÓN...9 CAPÍTULO 1. ELEMENTOS DE UN PROGRAMA INFORMÁTICO...11
Índice INTRODUCCIÓN...9 CAPÍTULO 1. ELEMENTOS DE UN PROGRAMA INFORMÁTICO...11 1.1 PROGRAMA Y LENGUAJESDE PROGRAMACIÓN...12 1.1.1 EL LENGUAJE JAVA...13 1.1.2 EL JDK...15 1.1.3 LOS PROGRAMAS EN JAVA...16
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
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:
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:
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
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
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
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
Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas
2 - Introducción al lenguaje Java, identificadores y comentarios. Carlos Montenegro Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 1. Introducción: Java tiene como todos
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.
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
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
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
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
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
INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA
APUNTES DE JAVA FUNCIONAMIENTO DE UN PROGRAMA Assembler Ensamblador Ejecuta Programador Programa fuente BASIC Interprete Ejecuta C, C++, Pascal Compilador Compila Ejecuta Programa fuente Programa Objeto
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 Concurrente. Curso Java 2012, 2013 Juan Manuel Fernández Peña
Programación Concurrente Curso Java 2012, 2013 Juan Manuel Fernández Peña Programación secuencial Hasta ahora se ha trabajado con programas secuenciales Se ejecuta paso a paso Son deterministas: si se
Introducción a los Sistemas Operativos
Introducción a los Sistemas Operativos Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria [email protected] 1 Índice General Conceptos sobre ordenadores Concepto
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.
Manipulación de procesos
Manipulación de procesos Las primeras computadoras solo podían manipular un programa a la vez. El programa tenía control absoluto sobre todo el sistema. Con el desarrollo vertiginoso del hardware ese panorama
Derechos de Acceso: COMPOSICION
CLASES Una clase es un tipo definido por el usuario que describe los atributos y los métodos de los objetos que se crearan a partir de la misma. class nombre_clase cuerpo de la clase Derechos de Acceso:
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
Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1
Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos
La clase Integer y sus métodos. Los Operadores (concepto). Operadores Lógicos y a nivel de Bits. Operadores de desplazamiento. Concatenaciones. La Con
Fases de POO (Análisis y Diseño). Un ejemplo de Análisis y Diseño. Repaso de conceptos de Abstracción y ejemplos. Repaso y definición de Clases, estructura de una clase en Java. Declaración de atributos
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
El Modelo. Aplicación. Presentación. Sesión. Transporte. Red. Enlace. Físico
El Modelo Es una arquitectura por niveles para el diseño de sistemas de red que permiten la comunicación entre todos los dispositivos de computadoras. Esta compuesto por siete niveles separados, pero relacionados,
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
Práctica III: Streams, Readers y Writers
Práctica III: Streams, Readers y Writers Objetivos En esta práctica vamos a aprender a utilizar Streams, Readers y Writers para realizar operaciones de entrada/salida desde programas escritos en el lenguaje
INDICE Prefacio 1. Fundamentos de Java 2. Introducción a los tipos de datos y operadores
INDICE Prefacio XVII 1. Fundamentos de Java 1 Los orígenes de Java 2 Como se relaciona Java con C y C++ 4 Contribución de Java a Internet Los Apples de Java y aplicaciones 6 Seguridad Portabilidad 7 La
Sistemas Operativos. Dr. Luis Gerardo de la Fraga. Departamento de Computación Cinvestav
Sistemas Operativos Dr. Luis Gerardo de la Fraga E-mail: [email protected] http://cs.cinvestav.mx/~fraga Departamento de Computación Cinvestav 12 de junio de 2015 Dr. Luis Gerardo de la Fraga Cinvestav,
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
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
Ejemplo de GUI con Swing
Ejemplo de GUI con Swing Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad Complutense Madrid Una aplicación Swing sencilla El
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
PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA
PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA Angel García Beltrán y José María Arranz Santamaría Sección de Publicaciones Escuela Técnica Superior de Ingenieros Industriales Universidad Politécnica de Madrid
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
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 ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez
PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez Elementos de lenguaje: Identificadores Tipos de datos 2 Tipos de datos primitivos 3 Tipos de datos referenciados Clases Interfaces Arrays
3.9 Patrón Distributed callback
3.9 Patrón Distributed callback Motivación (1) Queremos que la aplicación de administración de los termostatos Monitorize la temperatura de algunos termostatos, avisándonos si ésta baja o sube por encima
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
Programación Orientada a Objetos
Programación Orientada a Objetos Sentencias Java Parte II Ing. Julio Ernesto Carreño Vargas MsC. while y do while Sentencia while Ciclo mientras que Repite una acción mientras su condición de ciclo se
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
Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Antonio Rivero Cuesta La Sintaxis de Java I... 5 Tipos de datos... 6 Tipos de datos simples... 7 Operadores... 11 Operadores Aritméticos... 12 Operadores relacionales...
CAPITULO 3 ARQUITECTURA DE COMPONENTES GIS EN INTERNET
CAPITULO 3 ARQUITECTURA DE COMPONENTES GIS EN INTERNET 3.1- ARQUITECTURA DE COMPONENTES GIS La presente tesis trata del diseño y desarrollo de una aplicación basado en el Web para servir datos geográficos
Aplicaciones de Escritorio
Aplicaciones de Escritorio Introducción n a la Programación Orientada a Objetos con Java Disertantes: Ing. Rasjido, Jose. AdeS Montenegro, Cristian. Agenda Clases y Paquetes. Clases y Paquetes. Modificadores
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 [email protected]
Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)
Objetivos de la sesión Entender el tipo de programas que se pueden realizar con aplicaciones de consola. Conocer el concepto de variable, la forma en que se declaran y su utilización. Conocer la forma
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
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
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
Tema: Manejo del Puerto Serie con LabView
Facultad: Ingeniería Escuela: Electrónica Asignatura: Interfaces y Periféricos Tema: Manejo del Puerto Serie con LabView Objetivos Específicos. Configurar la entrada y salida del puerto serie por medio
Sistemas Operativos. Curso 2016 Sistema de Archivos
Sistemas Operativos Curso 2016 Sistema de Archivos Agenda Interfaz. Archivos. Directorios. Seguridad en archivos. Implementación. Definiciones. Sistema de archivos virtual. Estructura de los directorios.
Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo
TEMA 2: CONCEPTOS BÁSICOS DE ALGORÍTMICA 1. Definición de Algoritmo 1.1. Propiedades de los Algoritmos 2. Qué es un Programa? 2.1. Cómo se construye un Programa 3. Definición y uso de herramientas para
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
PROGRAMACIÓN EN C#.NET Programación Orientada a Objetos en C# Ing. Bruno López Takeyas
PROGRAMACIÓN EN C#.NET Programación Orientada a Objetos en C# Ing. Bruno López Takeyas Instituto Tecnológico de Nuevo Laredo 1 Qué es UML? UML = Unified Modeling Language Un lenguaje de propósito general
Instrucciones de control
Instrucciones de control Instrucciones de control de flujo C# ofrece un conjunto de sentencias similar al de C, C++ o Java. A continuación se estudian muy brevemente cada una de ellas. if if se utiliza
Universidad Autónoma de Tlaxcala. M.C. José Juan Hernández Mora. Primera Sesión
Universidad Autónoma de Tlaxcala Introducción al lenguaje JAVA Primera Sesión 1. Introducción a la programación orientada a objeto 2. Introducción al lenguaje Java 3. Primer programa en Java 4. Primer
1. Cuántas sentencias hay en la secuencia principal del siguiente programa?
1. Cuántas sentencias hay en la secuencia principal del siguiente programa? public class PruebaSwitch { System.out.print ("Opcion: "); case 3: System.out.println ("miércoles "); A. 1. B. 4. C. Más de 10.
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
PROGRAMACIÓN ORIENTADA A OBJETOS
CONCEPTOS GENERALES PROGRAMACIÓN ORIENTADA A OBJETOS XAVIER CALDERÓN H. CONCEPTOS Paradigma: Palabra de origen griego que significa modelo o patrón. Paradigma de Programación: Propuesta de una comunidad
IMPLEMENTACIÓN DE REDES DE PETRI CON TIEMPO EN JAVA
DEPARTAMENTO DE INFORMÁTICA E INGENIERÍA DE SISTEMAS LÍNEA DE INVESTIGACIÓN IMPLEMENTACIÓN DE REDES DE PETRI CON TIEMPO EN JAVA TRABAJO DE INVESTIGACIÓN Director: José Luís Villarroel Salcedo Doctorando:
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
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
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
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
Programación multihebra
Programación multihebra by Scheme the API man 2000 ([email protected]) Qué es la programación multihebra? Podemos definir la programación multihebra o multihilo como un estilo de ejecucion en el que
4.6.- Integridad: Control de concurrencia.
4.6.- Integridad: Control de concurrencia. 4.6.1.- Introducción 4.6.2.- Técnicas de Bloqueo. 4.6.2.1.- Bloqueo (variable cerrojo) Tipos, protocolos Problemas. Interbloqueo Granularidad 4.6.2.2.- Marcas
Java: control de excepciones
Java: control de excepciones Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile [email protected] Introducción v Una excepción es un evento que ocurre
CAPITULO 6. Control de Concurrencia y Recuperación
CAPITULO 6 Control de Concurrencia y Recuperación 6.1 Protocolos de Bloqueo Un protocolo de bloqueo nace de la necesidad creada cuando una transacción solicita un bloqueo de un modo particular sobre un
5. Sentencias selectivas o condicionales
60 A. García-Beltrán y J.M. Arranz 5. Sentencias selectivas o condicionales Objetivos: a) Describir el funcionamiento de las sentencias selectivas o condicionales (if-else y switch) b) Interpretar el resultado
INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO IBEROTEC SEMESTRE ACADÉMICO: 2014-II SÍLABO
INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO IBEROTEC SEMESTRE ACADÉMICO: 01-II 1. DATOS GENERALES SÍLABO UNIDAD DIDÁCTICA : LENGUAJES Y HERRAMIENTAS DE DESARROLLO DE SOFTWARE MÓDULO : DESARROLLO DE SOFTWARE
Otras formas de Sincronización en Java
75-62 Técnicas de Programación Concurrentes II Lic. Ing. Osvaldo Clúa 2008 Facultad de Ingeniería Universidad de Buenos Aires Otras formas de Sincronización en Java java.util.concurrent Class Exchanger
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
Introducción a Java (II) Dr. (c) Noé Alejandro Castro Sánchez
Introducción a Java (II) Dr. (c) Noé Alejandro Castro Sánchez Sintaxis de Java Sintaxis Define las reglas que determinar el uso de palabras clave, operadores y variables para construir y evaluar expresiones.
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.
Tema 3: Programación orientada a objetos (I)
Tema 3: Programación orientada a objetos (I) Ventajas del enfoque orientado a objetos Clases y Objetos Métodos y Mensajes Algoritmos y Sentencias Construcción de software orientado a objetos Búsqueda de
Programación Orientada a Objetos con Java. Elementos Básicos del Lenguaje Java. Relación entre clases. Ejemplo de Clase: Punto !
Programación Orientada a Objetos con Java Rafael Rivera López Elementos Básicos del Lenguaje Java II Ingeniería en Sistemas Computacionales Agosto-Diciembre de 2004 Veracruz, Ver. Relación entre clases
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
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
Pontificia Universidad Católica del Ecuador
1. DATOS INFORMATIVOS: FACULTAD DE INGENIERÍA ESCUELA DE SISTEMAS MATERIA O MÓDULO: Sistemas Operativos CÓDIGO: IS603.a CARRERA: INGENIERÍA DE SISTEMAS NIVEL: TERCERO No. CRÉDITOS: 4 CRÉDITOS TEORÍA: 4
Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía
Tema 3 SUBRUTINAS ÍNDICE Definición e instrucciones básicas Soporte para el tratamiento de subrutinas (ejecución de la subrutina y gestión del bloque de activación) Interrupciones vs llamadas a procedimiento
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
FACULTAD DE INGENIERÍA
NOMBRE DEL PROFESOR: Ing. Héctor Manuel Quej Cosgaya NOMBRE DE LA PRÁCTICA: Estructuras de decisión PRÁCTICA NÚM. [ 5 ] LABORATORIO: MATERIA: UNIDAD: TIEMPO: Centro de Ingeniería Computacional Lenguaje
