Programacion de Sistemas Prof. Gustavo De la Cruz Tovar Sexto Semestre. Ingenieria Cibernetica y en Sistemas Computacionales. Escuela de Ingenieria. Universidad La Salle. Grupo 612. Semestre Febrero-Julio 2003 Dias de clases: Martes y Jueves 20 - 22 pm Sala I Profesor: Gustavo De la Cruz Tovar Egresado de ingeniería cibernética y Sistemas Computacionales. Generación 1990-1995 Titulado en 1996, con la tésis de "Integración de aplicaciones con objetos distribuídos", obteniendo el título en diciembre de 1996. Estudio una maestria en Métodos matemáticos en finanzas de 1999 a 2001 Con experiencia de cinco años y medio dando clases en ULSA (desde agosto de 1997) La materia de POO con experiencia de 5 veces dando clases (desde enero de 1998) Trabaja como consultor de sistemas en Algorithmics México, en el ambiente financiero, principalmente como arquitecto de sistemas de riesgo financiero, desarrollando en lenguajes como Perl, Python, Java, C++, Visual Basic. Anteriormente trabajó para Ixe Banco, Cromasoft y el LCI de ULSA Especializado en teoría de objetos y su aplicación en tecnologías distribuídas Seguidor de la filosofía de software abierto, UNIX Su lenguaje favorito es Java, aunque C es el mejor. La razón por la que da clase es para ayudar a los alumnos de La Salle a descubrir como desenvolverse en el ambito de ingeniería y aplicarla. Le pueden decir Gustavo, Gus. No es necesario decirle ingeniero o hablarle de usted Gusta de literatura de ciencia ficción, fantasía. Musica, gustos muy poco populares como música clasica. En tiempo libre gusta de oir musica, leer, ir al cine, caminar y estar con sus amigos. Total de clases: 10 en Enero y Febrero 8 en marzo 5 en abril 7 en mayo 3 en abril Dias de asueto 14 a 26 de Abril 1 a 5 de Mayo 15 de mayo Objetivo: Entender desde el punto de vista de programacion, como se explotan los recursos de un sistema operativo y aplicar dichos conocimientos para resolver problemas en los cuales los sistemas de informacion deben utilizar las capacidades del sistema operativo. Conocimientos necesarios: + Programacion Estructurada. + Lenguaje C + UNIX Basico + Teoria de sistemas operativos. Herramientas de hardware y software a utilizar: + Computadora que soporte sistema UNIX + UNIX System V Release 4 ( Solaris, Linux) + Lenguaje C y Perl. + Editor de texto. vi Temario: Nota: Cada tema se ejemplificara en laboratorio, utilizando lenguaje C y Perl. Tema 0. Repaso conocimientos base. Horas: 4 + Lenguaje C. + UNIX Basico Tema I. Introduccion a la programacion de sistemas. Horas: 6 + Definicion. + Arquitectura de un sistema operativo desde el punto de vista de programacion de sistemas. + Kernel y shell. + Llamadas al sistema. + Fundamentos de programacion en Perl. Tema II. Modelo UNIX. Horas: 6 + Arquitectura UNIX. + API y ABI. + Variables del shell y linea de comandos. + Esquemas de permisos. + Uso de llamadas basicas al sistema. + Scripts. Tema III. Procesos y Programas. Horas: 8 + Definicion y estructura. + Organizacion en UNIX. + Operaciones basicas con procesos. + Llamadas al sistema para administracion de procesos. Tema IV. Archivos Horas: 6 + Entrada y Salida. + Organizacion de sistemas de archivos UNIX. + Operaciones sobre archivos y directorios. + Redireccionamiento. + STREAMS. + Llamadas al sistema para administracion de archivos. Tema V. Comunicacion entre procesos. Mecanismos basicos. Horas: 8 + Comunicación entre procesos. + Tipos de procesamiento. + Entubamientos (PIPES y FIFOS). + Seþnales. + Llamadas al sistema para administracion de entubamientos y sennales. Tema VI. Comunicación entre procesos - Concurrencia. Horas: 8 + Concurrencia + Semáforos. + Memoria compartida. + Mensajes. + Llamadas al sistema para administracion de mecanismos de concurrencia. + Conceptos sobre monitores de transacciones. Tema VII. Comunicación entre procesos distribuídos. Horas: 10 + Procesos Distribuidos. + Protocolos de Redes. + UNIX y Redes. + Cliente/Sevidor. + Sockets. + Llamadas a procedimientos Remotos (RPC) + Tecnologias Internet. Correo. WWW. + HTML y CGI. + Seguridad en redes. Bibliografia. + UNIX Programacion Practica. Kay Robbins. Ed. Prentice Hall. (Libro de Texto) + El Entorno de Programacion UNIX. Brian Kernighan. Ed. Prentice Hall. (En biblioteca) + Advanced Programming in the UNIX Environment. Richard Stevens. Addison Wesley. 1992. (En biblioteca) + UNIX Network Programming. Richard Stevens. Prentice Hall. 1990 + El Lenguaje de Programacion C. Brian Kernighan. Ed. Prentice Hall. (En biblioteca) . Programming Perl. Larry Wall . Ed. O'Reilly. Segunda Edicion. . Learning Perl. Larry Wall . Ed. O'Reilly. Segunda Edicion. + Conceptos de Sistemas Operativos. Silberschatz. Addison Wesley. 1994. (En biblioteca) + Sistemas Operativos. Diseño e implantación. Tannenbaum. (En biblioteca) + http://www.perl.com Evaluacion Tres examenes parciales : 1er. parcial (E1). Tema I a III. Fecha Estimada aplicacion: Ultima semana marzo. 2o. parcial (E2): Tema IV,V y VI. Fecha Estimada aplicacion: Tercera semana mayo. 3er. parcial (E3): Tema VII. Fecha Estimada aplicacion: Ultima semana del semestre. Mecanismo de aplicacion: Examen escrito. Examen en computadora. Examen casa. El examan se aplica el dia que se acuerde, sin posibilidad de cambio instantaneo. Practicas: Practica 1. (P1) Tema I a III. Practica 2. (P2) Tema IV a VI. Practica 3. (P3) Tema VII. Las practicas consisten en contestar los ejercicios indicados en los apuntes. Equipos minimo de 1 persona maximo 4. NOTA: Practica con uno o mas ejercicios copiados es calificada con 0. Se deben entregar practicas en fechas acordadas. No se aceptan retrasos. Proyecto Final (PF): Programa en C o Perl con interaccion con Internet en el cual se debe utilizar procesos, comunicacion de procesos, archivos y sockets. Nota: Considerar equipo de 4 personas. Calificacion Final = [ (E1 + E2+ E3)/3 ] * 0.4 + [ (P1 + P2+ P3)/3 ] * 0.35 + [ PF ] * 0.25 Calificacion aprobatoria: 6.00000 Tareas: La entrega se hara de manera electrónica. Para todas las entregas, el alumno debe crear su página personal en algún sitio de Internet, donde subira el resultado de sus tareas Para trabajos escritos en formato ASCII o HTML, si se necesitan incluir figuras, deben estar en formato GIF, JPEG o PNG . No utilizar formatos propietarios (MS Word u otros paquetes de edicion de texto) Para trabajos de programacion se deben entregar solo el codigo fuente.Subir el codigo fuente en un archivo compreso, en formato ZIP. La cuenta de correo a donde se envia es gusdelact@yahoo.com.mx. Incluir en el campo Asunto: (Subject:) el nombre de la persona que entrega. En el cuerpo del correo indicar la direccion de WWW (o liga HTTP) donde se encuentra la tarea. Prácticas. La entrega se hara de manera electrónica. Para todas las entregas, el equipo debe crear su página personal en algún sitio de Internet, donde subira el resultado de sus prácticas Para trabajos escritos en formato ASCII o HTML, si se necesitan incluir figuras, deben estar en formato GIF, JPEG o PNG . No utilizar formatos propietarios (MS Word u otros paquetes de edicion de texto) Para trabajos de programacion se deben entregar solo el codigo fuente. Subir TODA la práctica en un archivo compreso, en formato ZIP. La cuenta de correo a donde se envia es gusdelact@yahoo.com.mx. Incluir en el campo Asunto: (subject:) el nombre de uno de los integrantes del equipo y en el cuerpo del mensaje el nombre de todos los integrantes del equipo, así como la direccion de WWW (o liga HTTP) donde se encuentra la práctica. Puntos a considerar: + Considerar que estan en Universidad y el comportamiento esperado es de gente joven con criterio. + Al profesor lo que mas le interesa es que los alumnos busquen el conocimiento, no que sea impuesto. Es valido discutir con orden y uso de la razón puntos que no se esté de acuerdo con el profesor. + Evitar la cultura del silencio en la cual no se le diga al profesor posibles fallas, actitudes subjetivas, falta de claridad al explicar o en dar instrucciones. + Mas que un profesor que manda, es un profesor que GUIA a los alumnos en una dinámica en la cual se forma un equipo de trabajo y no un ambiente de quien tiene más autoridad + La clase comienza a las 20:00 pm. Se concluira tipicamente a las 21:50 pm, dejando 10 minutos para aclarar dudas personales con el profesor. + En clase de laboratorio, favor de mantener cerrada con seguro la puerta, para evitar interrupciones de encargados de la sala. + No es necesario pedir permiso para salir del salón, pero se debe hacer con orden. Favor de salir del salón para asuntos que no distraigan del curso de la clase + La asistencia a clase es obligatoria. La asistencia se tomará al FINAL de la clase. + En caso de no poder asistir a clase, es responsabilidad del alumno estudiar de manera autonoma los puntos que no pudo tomar. No es responsabilidad del profesor dar marcha atras a la clase para regulalizar alumnos atrasados. + Las tareas y practicas deben ser entregadas con puntualidad. + Tareas, practicas, examenes que sean copiados son calificados con cero puntos. + Negocicacion de entregas de prácticas,debe ser por el jefe de grupo. Procurar avisar con anticipacion retrasos en trabajos (1 semana). No se aceptan negociaciones 24 horas antes. + Proyecto final copiado es motivo de examen extraordinario, anulando las calificaciones de todo el semestre, sin punto de discusión. + La direccion de correo para dudas, comentarios y peticiones, es gusdelact@yahoo.com.mx. Por favor poner nombre completo de la persona en el "Asunto" (Subject) del programa + La asistencia al examen es obligatoria, y en caso de no hacerlo, el examen sera calificado con 0 puntos. Se pide puntual asistentica ese dia, y prevenir cualquier contingencia en la fecha fijada. + El equipo de computo debe utilizarse para las labores de la materia.No usarlo para navegar en Internet, chat, juegos,tareas de otras materias. Si alguien no respeta este punto, se le pedira ceda su computadora a otra persona. Si la actitud de la persona es persistente a lo largo de las clases, se le penalizará con un punto menos sobre la calificación final + Por respeto a la clase, queda prohibido el uso de telefonos celulares, radiolocalizadores o pagers. Si es necesario tenerlos activos por emergencia,ponerlos en el modo de silencio para que no molesten el curso de la clase y salir discretamente del salon en caso de tener que atender la llamada. Alumno que interrumpa la clase con este tipo de dispositivos será penalizado con un punto menos en un exámen parcial.