Está en la página 1de 9

UNIVERSIDADDEGUADALAJARA

CENTROUNIVERSITARIODELOSALTOS DIVISINDEESTUDIOSENFORMACIONESSOCIALES LICENCIATURA: INGENIERAENCOMPUTACIN

UNIDAD DE APRENDIZAJE POR OBJETIVOS

TALLER DE PROGRAMACIN CONCURRENTE Y DISTRIBUIDA

LIC. ABRAHAM ANDRADE LPEZ Presidente de la Academia de Sistemas Digitales y de Informacin

DR. ROGELIO MARTNEZ CRDENAS Jefe del Departamento de Estudios Organizacionales

NOMBRE DE LA ASIGNATURA

TALLER DE PROGRAMACIN CONCURRENTE Y DISTRIBUIDA CC414

CODIGO DE LA MATERIA

DEPARTAMENTO

ESTUDIOS ORGANIZACIONALES

REA DE FORMACIN

OPTATIVA ABIERTA

CENTRO UNIVERSITARIO

CENTRO UNIVERSITARIO DE LOS ALTOS

CARGA HORARIA TEORA

CARGA HORARIA PRCTICA

60

CARGA HORARIA TOTAL

60

CRDITOS

TIPO DE CURSO

PRCTICO

NIVEL DE FORMACIN PROFESIONAL

LICENCIATURA LICENCIATURA EN INGENIERA EN COMPUTACIN SISTEMAS DIGITALES Y DE INFORMACIN

PARTICIPANTES

ELABOR

PRERREQUISITOS

NINGUNO

FECHA DE ACTUALIZACIN

SEPTIEMBRE DE 2011

OBJETIVO GENERAL El alumno ser capaz de programar sistemas concurrentes y distribuidos. OBJETIVOS ESPECFICOS En cada mdulo del contenido temtico principal.

CONTENIDO TEMTICO Mdulo 1: Introduccin a la programacin de hilos Objetivo particular: El alumno implementar programas numricos y de prueba de rendimiento para sistemas multicore con rutinas c/c++ o cualquier otro lenguaje que soporte programacin hilos 1.1 Conceptos bsicos de hilos 1.1.1 Compilador mingw 1.1.2 Libreras posix de hilos 1.1.3 Creacin y terminacin de hilos posix 1.1.4 Programacin de serie fibonnaci con hilos posix 1.2 Programacin de hilos en Win32 1.2.1 La API Win32 para hilos 1.2.2 Creacin y terminacin de hilos en Win32 1.2.3 Seccin crtica en Win32 1.2.4 Comparacin de rendimiento 1.3 Programacin de hilos en Java 1.3.1 El ambiente NetBeans 1.3.2 El profiler de NetBeans 1.3.3 La Clase thread 1.3.4 La interfaz runnable 1.3.5 Ejecucin de instrucciones 1.4 Comparacin de rendimientos 1.4.1 Planteamiento del banco de pruebas 1.4.2 Cronometraje de hilos Mdulo 2: Programacin concurrente Objetivo particular: El alumno podr implementar soluciones locales a problemas de concurrencia con el paradigma orientado a objetos 2.1 Programacin de Mutex en Java 2.1.1 La clase Object 2.1.2 Mtodo synchronized 2.1.3 Mtodo wai y notify 2.1.4 Algoritmo paralelo para el promedio de elementos en vectores compartidos 2.2 Filtrado de seales y la clase Barrier 2.2.1 El patrn de singleton 2.2.2 La clase barrier 2.2.3 Elementos bsicos de filtros digitales 2.2.4 Programacin de filtros con Java

2.3 Aplicacin del semforo el problema de control de 1er Orden 2.3.1 Semforo de tipo posix 2.3.2 Modelo de control de llenado de cisterna 2.3.3 El productor-consumidor en control 2.3.4 Programacin del control de cisterna con semforo tipos posix en Java 2.4 Patrones factory y adaptador 2.4.1 Interfaz, clase abstracta y adaptador 2.4.2 Subclase de factory 2.4.3 Despachador de filas y columnas 2.4.4 Multiplicacin matricial con hilos Mdulo 3: Programacin distribuida Objetivo particular: El alumno podr implementar en Java una solucin distribuida 3.1 Introduccin a los sistemas distribuidos 3.1.1 El socket TCP y UDP 3.1.2 La tubera sobre el socket 3.1.3 Hilos cliente 3.1.4 Hilos servidor 3.1.5 Punto de re-entrada 3.1.6 Multiplicacin matricial distribuida 3.2 Creacin de un servicio web con RMI 3.2.1 La interfaz RMI Remote 3.2.2 El servidor RMI 3.2.3 El cliente RMI 3.2.4 El problema 3 en raya distribuido 3.2.5 La cuenta bancaria distribuida 3.2.6 Paint cooperativo distribuido 3.3 Creacin de un servicio web con JSP/Serverlets 3.3.1 El contenedor de servicio web 3.3.2 Soluciones JSP 3.3.3 Soluciones con serverlets 3.3.4 El minero distribuido 3.3.5 El vecindario Mdulo 4: Programacin distribuida con agentes Objetivo particular: El alumno implementar un sistema distribuido en midleware que resuelve el problema de acceso a recursos distribuidos compartidos.

4.1 Los replicantes 4.1.1 Introduccin a los replicantes 4.1.2 Similitudes con el objeto ORB de Corba 4.1.3 Solucin Corba 4.1.4 Solucin con agente replicante 4.2 Proyecto de red con auto organizacin 4.2.1 El acuerdo bizantino 4.2.2 Nodos core nodos espejo 4.2.3 Cmara web compartida 4.2.4 Reconocimiento de primitivos grficos distribuidos

ESTRUCTURA CONCEPTUAL

Programacin de hilos

Programacin concurrente

Programacin distribuida

Programacin distribuida

BIBLIOGRAFA BSICA Tanenbaum, A.S. (2008). Sistemas distribuidos : principios y paradigmas. Mxico. Pearson Educacin. Ceballos, F. J. (2006). Java 2, Curso de programacin. Mxico: Alfaomega, RaMa. Deitel, H. M., & Deitel, P. J. (2004). Cmo programar en Java. Mxico: Pearson Educacin. BIBLIOGRAFA COMPLEMENTARIA Garca Toms, J., Ferrando, S., & Piattini, M. (2001). Redes para procesos distribuidos. Mxico: Alfaomega Ra-Ma. Orfali, R., & Harkey, D. (1998). Client/Server Programming with Java and CORBA. USA: Wiley. MODALIDADES DEL PROCESO ENSEANZA APRENDIZAJE Para la realizacin de este curso, se recomienda que el profesor asesore y supervise personalmente el proceso de formacin de cada alumno, tomando en cuenta el orden y la profundidad con la que deben tratarse los temas del programa de estudio. CONOCIMIENTOS, APTITUDES Y VALORES QUE EL ALUMNO DEBE ADQUIRIR CON BASE AL DESARROLLO DE LA UNIDAD Conocimiento de la estructura de la computadora y compresin de su funcionalidad. As como los elementos que entorno a un equipo de cmputo pueden manejarse. CAMPO DE APLICACIN PROFESIONAL Los conceptos bsicos ayudan a tener un panorama ms amplio y a saber cundo o en qu contexto podemos emplear cada uno de ellos dando oportunidad de desempearse en diversas reas. MATERIAL DE APOYO ACADMICO Notas sobre el curso Videos sobre los principales conceptos Programas educativos para computadoras Uso de plataforma Moodle

Presentaciones PowerPoint MODALIDADES DE EVALUACIN CRITERIOS Examen departamental Exmenes parciales Producto de investigacin, tareas y participacin en moodle Proyecto de final 20 % 40 % 20 % 20 %

PERFIL DOCENTE El docente de esta materia deber ser un profesionista con formacin en las reas de la computacin, comunicaciones o informtica; capaz de motivar a la investigacin y creacin de conocimiento, con habilidades para transmitir sus conocimientos y ensear de forma interactiva propiciando en los alumnos el autoaprendizaje.

También podría gustarte