ELO 330 Programación de Sistemas

2º Semestre 2019, .... sesiones

Horario de clases: Miércoles 15:40-17:10 en P-202 y Viernes 11:30-13:00 en Lab. P011 en Edificio P2

Profesor y ayudante

Profesor: Agustín J. González, oficina: B-301, correo: agustin p u n t o gonzalez arroba u s m dot c l
Horario oficina profesor. Puede escribirme un correo si desea verme fuera de este horario.

Ayudante:  Jesús Márquez, cuenta gmail elo330 punto utfsm

Lista de correo: elo330 @ listas punto usm punto c l

Textos

Otros en línea: http://linuxcommand.org/ o The Linux® Command Line de William E. Shotts, Jr.

Contenidos

Programa del curso.


Fecha Contenidos Conceptuales, Procedimentales y Actitudinales Material de apoyo y observaciones
1 25/09 Presentación del Ramo: Programa, Introducción a Linux http://linuxcommand.org/ Tiobe index  Otro estudio sobre uso de lenguajes Ofertas de trabajo  
2 27/09
Programación shell
Actividad en clases 1: Comandos Unix
Actividad en clases 2: Shell
Shell Programming Practical UnixAdvanced Bash-Scripting Guide Tarea sin evaluación:instalar máquina virtual y ubuntu si usted no lo tiene ya.
Ejemplo de Script para ejecutar aplicación
3 02/10
Terminar Programación shell
Ver problemas de certámenes de años pasados
Tarea: ¿Qué significa la t en acceso a /tmp? Hint: sticky bit.
Para revisar todas las secciones man -a, para conocer uso de secciones ver man man
4 04/10
Control de procesos
Actividad en clases : Fork


09/10 ¡Esta case se adelanta para el martes 9 a las 11:30 en P011!Esta clase se recuperará en día y hora por anunciar.
5 11/10
Señales
Actividad en clases: Señales
Comunicación entre procesos

6 15/10
Clase recuperativa en P011
Actividad en clases: Señales
Comunicación entre procesos

7 16/10
Comunicación entre procesos
Ejercicios de Comunicación entre procesos

8 18/10
Actividad en clases: Comunicación entre procesos
Memoria Compartida


19/10 al 03/12 Receso por Movilización Nacional

04/12 Pospuesta por Sesión extraordinaria del Consejo Académico
9 06/12
Memoria compartida (mencionar Tarea 2) videos: part1, part2, part3
 
10 10/12
Actividad en clase: Memoria Compartida  (recupera sesión del 4/12) (video) ¿Se ocupa memoria compartida profesionalmente?

11/12 Pospuesta por Sesión ordinaria del Consejo Académico
11 13/12
Concurrencia usando hilos (threads) (video)
Informar sobre sitio para inscribir proyectos
12 17/12
Actividad en clase: Concurrencia sin sincronización   (Recupera sesión del 11/12) (video) Tutorial sobre Hilos
13 18/12
Sincronización de hilos (video)
13 20/12
Actividad en clases: Concurrencia sincronizada
Variables de condición
(video)

14 27/12
Informar fechas de certámenes
Manejo de señales en programación de hebras
Comunicación entre procesos no concentrados (sockets) (video)

15
03/01
Actividad en clase: Aspectos básicos de comunicación con sockets
Modelo Cliente-Servidor y multiplexación de I/O usando select  (video)

select manual page
Puertos tarea 47200 al 47204, sólo para pruebas finales, antes correr los procesos en computador personal.
socket(7) describe las opciones posibles para configurar un socket con setsockopt()
16 07/01
Clase adelantada por Reunión del consejo académico el 8/01(fue corrida para el 15/01)
Actividad en clase: Servidor concurrente con hebras
Multicast
Stream Control Transmission Protocol (SCTP)(video)
Comunicación vía canal encriptado SSL
Uso de SCTP (código, readme)  
17 08/01
Ejecución de procesos nativos desde Java
Invocación de Métodos Nativos
(Java Native Interface, JNI) (video)

18 10/01
Handson con JNI
Hilos y Sincronización de Hebras en Java (video)

Versión de PandC que no funciona al usar estrategia usada con dos semáforos full y empty.
A cambio se puede usar una implementación de semáforos basada en el mecanismo de exclusión ofrecido por Java.
El problema productor/consumidor presentado en manejo de semáforos, ¿Se puede implementar la misma idea usando wait() y notify()?

15/01 La clase fue adelanta para liberar día por consejo académico
19
17/01
1er Certamen
Contenidos a evaluar hasta Concurrencia, clase del 20 inclusive


Receso Vacaciones Profesor
20 05/02
Programación TCP/IP en Java (video) Java Networking tutorials
Comunicación Java vía canal encriptado Paquete javax.net.ssl ejemplo: echo
21 07/02
Aplicaciones Java con acceso a Bases de Datos (Videos: Conceptos de bases de datos, 18/02 PM, acceso a bases de datos desde Java, 19/02 AM) Sobre diseño de bases de datosOracle JDBC Tutorial
22 19/02
Remote Method Invocation (RMI)(video) Documentación, Ejemplo de uso de RMI
Hasta esta clase inclusive se evaluará en certamen final
23
21/02
Presentación de proyectos  Se cambia por sesión única 29/02 (orden de presentaciones)  
24 26/02
Certamen final
25
28/02
Presentación de proyectos
Plazo envío de informes

29/02 Presentación única de proyectos (a petición del cuso) (video) 20 hrs. Plazo envío de informes
26

Certamen recuperativo (todos los contenidos)

Tareas

Instrucciones para Tarea 1 y otras tareas

Tarea: Grupos de 2 alumnos. Plazo Notas Mejores soluciones
Tarea 1: Análisis de archivos comprimidos con soluciones de tareas
29 de octubre 10 de Enero 2020, 20 hrs. a través de AULA preferiblemente o git ELO


Tarea 2: Formulación y Selección de Preguntas en Foro
17 de Enero 2020, 20 hrs solo a través de git ELO


Tarea 3: Formulación y Selección de Preguntas en Foro Distribuido
03 de Febrero 2020, 20 hrs a través de GIT ELO


Tarea 4: Formulación y Selección de Preguntas en Foro Distribuido en Java. Se trata de la misma descripción de T3, pero con implementación en Java para los tres programas. 17 de febrero 2020, 20 hrs a través de GIT ELO


Evaluación  Finales al: 16.03.2020

Si la nota promedio de certámenes es inferior a 50, su nota será: 90% promedio de certámenes 6% Tareas y 4% su proyecto. Usted debe aspirar a obtener 50 ó superior en sus certámenes.

Certámenes

Soluciones Notas Histograma Alumnos Destacados (80 ó superior)
C1.Solución()
C1.Notas()
C1.Histo()

C2.Solución()
C2.Notas()
C2.Histo()

Certámenes de años anteriores

Proyectos

Sugerencias de temas: Comunicación entre procesos y llamados remotos con D-Bus, XML-RPC, SOAP,  The Adaptive Communication Environment (ACE), Java Message Service.

Alumnos Proyecto Fecha: Tema/ Presentación/ Informe
Ariel Gamboa - Rodrigo Jimenez
Acceso general sincronizado a un inventario
OK / OK / OK
Luis Bahamondes, José Pablo Fuenzalida Ultimate Chess Aragorn 3.0 OK / OK / OK
José Catalán Fuentes Administrador remoto de escaners y mapeos de sitios OK / !OK / OK
Francisco Pereira y Sebastián Ubiergo Algoritmos genéticos para el desarrollo de filtro pasivos OK / OK / OK
Matías Contreras - Stefano Aguilera Sensado Remoto de Recipientes Hídricos Artesanales OK / OK / OK
Steev Gonzalez
Solución integrada de monitoreo industrial
OK / !OK / !OK

Misceláneos

Utilidades GNU

C y Unix

Java

Por si hemos olvidado el sentido a lo que hacemos: Clase magistral de Don Federico Mayor Zaragoza y última clase del profesor Randy Pausch

Comentario de ex-alumnos después de ceremonia de entrega de becas: "Claro que en retrospectiva queridos profes nos apretaron bastante cuando estuvimos en la U, pero siempre fueron cercanos, ahora con una mirada de futuro a estos nuevos estudiantes apretenlos más, se necesitan buenos ingenieros, y mucho más importante excelentes individuos..."