UNIVERSIDAD DE GUADALAJARA

Documentos relacionados
UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

Fecha de elaboración: Agosto de 2004 Fecha de última actualización: Julio de 2010

Programa de estudios por competencias Sistemas Operativos en red

Programa de estudios por competencias Sistemas Concurrentes y Distribuidos

Programa de estudios por competencias. Seminario de Sistemas operativos en red

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA CENTRO UNIVERSITARIO DE LOS ALTOS DIVISIÓN DE ESTUDIOS EN FORMACIONES SOCIALES

Programa de estudios por competencias Seminario de solución de problemas de Ingeniería de Software I

GUÍA DE APRENDIZAJE PROGRAMACION CONCURRENTE

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

Sistemas Distribuidos

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS (Universidad del Perú, DECANA DE AMÉRICA)

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS (Universidad del Perú, DECANA DE AMÉRICA)

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

GUÍA DE APRENDIZAJE PROGRAMACION ORIENTADA A OBJETOS Y CONCURRENTE

II22. Sistemas Operativos III

DATOS DE IDENTIFICACIÓN DEL CURSO

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

GUÍA DOCENTE CURSO FICHA TÉCNICA DE LA ASIGNATURA. Datos de la asignatura Nombre. Datos del profesorado Profesor Israel Alonso Martínez

ESCUELA DE INGENIERIA Informática Y Sistemas

FACULTAD DE INGENIERÍA ÁREA DE COMPUTACIÓN E INFORMÁTICA

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

GUÍA DE APRENDIZAJE PROGRAMACIÓN CONCURRENTE GRADUADO EN INGENIERÍA DE SOFTWARE

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

Universidad de Guadalajara Centro universitario de los Altos Licenciatura en Ingeniería en Computación

FUNDAMENTOS: OBJETIVOS: Conceptuales:

Programación Concurrente y de Tiempo Real

GUÍA DOCENTE DE LA ASIGNATURA

Programa de estudios por competencias Arquitectura de computadoras

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

Universidad de Guadalajara Centro universitario de los Altos Licenciatura en

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD DE GUADALAJARA

ANX-PR/CL/ GUÍA DE APRENDIZAJE

UNIVERSIDAD DE GUADALAJARA

Programa de estudios por competencias Ingeniería de Software I

Programa de estudios por competencias Sistemas Operativos

Programa de estudios por competencias Programación

GUÍA DOCENTE Programación Concurrente y de Tiempo Real

INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA DIRECCIÓN DE EDUCACIÓN SUPERIOR PROGRAMA SINTÉTICO

UNIVERSIDAD DE GUADALAJARA

Fecha de elaboración: 25/05/2010 Fecha de última actualización: 17/06/2010. F1182 Aplicaciones distribuidas 1/8

Programación Docente: Ingeniería de Protocolos de Comunicaciones.

UNIVERSIDAD DE GUADALAJARA

Universidad de Guadalajara Centro universitario de los Altos Licenciatura en Ingeniería en Computación

GUÍA DOCENTE Programación Concurrente y de Tiempo Real

UNIVERSIDAD DE GUADALAJARA

CARTA DESCRIPTIVA (FORMATO MODELO EDUCATIVO UACJ VISIÓN 2020)

DATOS DE IDENTIFICACIÓN DEL CURSO Departamento de Ciencias Computacionales ACADEMIA A LA QUE PERTENECE: Técnicas Modernas de Programación

UNIVERSIDAD DE GUADALAJARA

Programación Concurrente y de Tiempo Real

UNIVERSIDAD DE GUADALAJARA

PROGRAMA DE ESTUDIO Área de Formación : Fecha de elaboración: 28 de mayo de 2010 Fecha de última actualización:

Técnicas de Programac. Concurrente I PLANIFICACIONES Actualización: 2ºC/2018. Planificaciones Técnicas de Programac.

UNIVERSIDAD DE GUADALAJARA

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS (Universidad del Perú, DECANA DE AMÉRICA)

UNIVERSIDAD DE GUADALAJARA

Asignaturas antecedentes y subsecuentes

Transcripción:

UNIVERSIDAD DE GUADALAJARA CENTRO UNIVERSITARIO DE LOS ALTOS DIVISIÓN DE ESTUDIOS EN FORMACIONES SOCIALES LICENCIATURA: INGENIERÍA EN COMPUTACIÓN UNIDAD DE APRENDIZAJE POR OBJETIVOS PROGRAMACIÓN CONCURRENTE Y DISTRIBUIDA LIC. ABRAHAM ANDRADE LÓPEZ Presidente de la Academia de Sistemas Digitales y de Información DR. ROGELIO MARTÍNEZ CÁRDENAS Jefe del Departamento de Estudios Organizacionales

NOMBRE DE LA ASIGNATURA PROGRAMACIÓN CONCURRENTE Y DISTRIBUIDA CODIGO DE LA MATERIA CC413 DEPARTAMENTO ESTUDIOS ORGANIZACIONALES ÁREA DE FORMACIÓN OPTATIVA ABIERTA CENTRO UNIVERSITARIO CENTRO UNIVERSITARIO DE LOS ALTOS CARGA HORARIA 80 CARGA HORARIA PRÁCTICA 0 CARGA HORARIA TOTAL 80 CRÉDITOS 11 TIPO DE CURSO TEÓRICO NIVEL DE FORMACIÓN PROFESIONAL LICENCIATURA PARTICIPANTES LICENCIATURA EN INGENIERÍA EN COMPUTACIÓN ELABORÓ SISTEMAS DIGITALES Y DE INFORMACIÓN PRERREQUISITOS 250 CRÉDITOS FECHA DE ACTUALIZACIÓN SEPTIEMBRE DE 2011

OBJETIVO GENERAL Los estudiantes aprenderán a programar sistemas concurrentes y distribuidos, además de programas patrones de diseño con el Modelo C/S y punto a punto empleando Java como lenguaje de implementación de Middleware OBJETIVOS ESPECÍFICOS En cada módulo del contenido temático principal.

CONTENIDO TEMÁTICO Módulo 1: Introducción a los sistemas en paralelo Objetivo particular: El alumno conocerá los esquemas de procesamiento vectorial, solapado y paralelo con arquitecturas multicore. 1.1 Conceptos básicos de tubería y procesamiento solapado 1.1.1 Máquina de Von Newman 1.1.2 Concepto de tubería 1.1.3 Procesamiento encauzado 1.1.4 Paralelismo VS procesamiento encauzado 1.2 Microprogramación en sistemas multicore 1.2.1 CPU con HT 1.2.2 CPU Multicore 1.2.3 Programación del problema de ordenamiento de vectores en multicore 1.2.4 Comparación de rendimiento 1.3 CISC y RISC 1.3.1 Instrucciones complejas 1.3.2 Instrucciones reducidas 1.3.3 Comparación de rendimiento (CISC vs RISC) 1.3.4 Sistemas R-OPS 1.4 Niveles de paralelismo 1.4.1 Clasificación de Flynn 1.4.2 Esquema de erlanger (Handler) Módulo 2: Introducción a la programación Concurrente Objetivo particular: el estudiante podrá construir un sistema concurrente con los esquemas presentados en el módulo, basados en el paradigma POO apoyados por el empleo de patrones; en la plataforma java. 2.1. Programación Concurrente orientada a objetos 2.1.1. Primer lenguaje concurrente 2.1.2. Objetos y concurrencia 2.1.3. Modelos sustentables 2.1.4. Patrones de diseño 2.2. La sincronización y la exclusión mutua 2.2.1. La clase inmutable 2.2.2. La clase object 2.2.3. El cerrojo de JAVA 2.2.4. La sincronización de JAVA 2.2.5. El patrón singleton 2.2.6. El patrón visitor 2.3. El cofinamiento 2.3.1. Interbloqueo 2.3.2. Semaforo tipo Posix

2.3.3. Modelo de memoria en Java 2.3.4. Ordenamiento con métodos 2.3.5. El contenedor 2.4. Patrón adaptador 2.4.1. Interfaz, clase abstracta y adaptador 2.4.2. Adaptador de solo lectura 2.4.3. Anillos 2.4.4. Problemas de productor-consumidor 2.5. Mutex, Lock y Executor 2.5.1. El mutex 2.5.2. La interfaz Lock 2.5.3. La interfaz Executor Módulo 3: Programación de Hilos Objetivo particular: El alumno podrá construir una aplicación de Java basada en Hilos sustentando la concurrencia 3.1. Introducción a los hilos 3.3.1. El concepto de proceso 3.3.2. El hilo como proceso ligero 3.3.3. Hilos Nativos Posix y Win32 3.3.4. Hilos Java e hilos Nativos de JVM 3.3.5. Uso de un Profiler para estudiar los hilos 3.3.6. Impacto de la tecnología Multicore en sistemas basados en hilos 3.2. Creación de hilos 3.2.1. Creación y destrucción de hilos 3.2.2. Espera de hilos con Join 3.2.3. Priorización de hilos 3.2.4. Manejo de excepciones en hilos 3.2.5. Uso de la interfaz runnable 3.2.6. Uso de voltile en atributos de hilos 3.3. Comunicación entre hilos 3.3.1. El objeto tubería 3.3.2. El patrón proxy 3.3.3. Objetos auto-hilo 3.3.4. Uso de Locks y executors con la interfaz Runnable 3.3.5. Programación de un sistema de control de primer orden con hilos Módulo 4: Programación distribuida Objetivo particular: El alumno implementará un sistema distribuido en middleware que resuelve el problema de acceso a los recursos distribuidos compartidos 4.1. Computación distribuida 4.1.1 Introducción a los sistemas distribuidos

4.1.2 Elementos de redes 4.1.3 Elementos de Sistemas operativos distribuidos 4.1.4 Cluster vs paralelismo puro 4.2 Modelos de objetos distribuidos 4.2.1 Socket TCP y UDP 4.2.2 Objetos en envolturas para sockets 4.2.3 Modelo de objetos distribuidos 4.2.4 Objetos distribuidos frente a paso de mensajes 4.3 Invocación remota de métodos 4.3.1 Metodos remotos 4.3.2 La interfaz RMI 4.3.3 El patrón proxy en RMI 4.3.4 Paso de referencias RMI 4.4 Paradigma de sistemas distribuidos 4.4.1 El paradigma C/S 4.4.2 Paradigma igualitario 4.4.3 El modelo repetidor de objetos CORBA 4.4.4 El modelo de agentes 4.5 Sistemas Cooperativos 4.5.1 Trabajo desde el servidor 4.5.2 Serverlets, JSP, ISAPI 4.5.3 Trabajo en los clientes 4.5.4 Descarga de applets como RMI 4.5.5 Descarga de objetos DCOM 4.5.6 Programación de un sistema de vecindario

ESTRUCTURA CONCEPTUAL PROGRAMACION CONCURRENTE Y DISTRIBUIDA Paradigma JAVA Programación de hilos Programación concurrente Programación distribuida

BIBLIOGRAFÍA BÁSICA Froute, A. Q. (2006). Java 2, Manual de usuario y tutorial. México: Alfaomega; Ra- Ma. Wu, C. T. (2008). Programación en Java, Introducción a la programación orientada a objetos. México: McGraw Hill. BIBLIOGRAFÍA COMPLEMENTARIA Doug. Lea. (2001) Programación concurrente en JAVA: principios y patrones de diseño. Madrid: Adisson Wesley Peña Sánchez, José María. (2004). Computación distribuida: fundamentos y aplicaciones. Madrid. Pearson educación. MODALIDADES DEL PROCESO ENSEÑANZA APRENDIZAJE Los profesores orientarán a los alumnos al conocimiento de lenguaje de programación orientada a objetos para que pueda aplicar lo aprendido en la clase y ponga en práctica este paradigma para la programación de sistemas distribuidos y concurrentes. CONOCIMIENTOS, APTITUDES Y VALORES QUE EL ALUMNO DEBE ADQUIRIR CON BASE AL DESARROLLO DE LA UNIDAD Conocimiento de sistemas y tecnologías de información en la actualidad y gusto por manejar sistemas operativos vía línea de comandos. CAMPO DE APLICACIÓN PROFESIONAL El estudiante al concluir el curso tendrá, adicionalmente a los contenidos recibidos en clase, una visión más amplia acerca del paradigma de la Programación Orientada a Objetos para la aplicación en sistemas distribuidos y concurrentes MATERIAL DE APOYO ACADÉMICO Notas sobre el curso Programas educativos para computadoras Uso de plataforma Moodle Presentaciones Power Point Java JDK, NetBeans MODALIDADES DE EVALUACIÓN

CRITERIOS Examen departamental 20 % Exámenes parciales 40 % Producto de investigación, tareas y participación en moodle 20 % Elaboración de proyecto final 20 % PERFIL DOCENTE El docente de esta materia deberá ser un profesionista con formación en las áreas de la computación, comunicaciones o informática; capaz de motivar a la investigación y creación de conocimiento, con habilidades para transmitir sus conocimientos y enseñar de forma interactiva propiciando en los alumnos el autoaprendizaje.