Programacion de Sistemas Prof. Gustavo De la Cruz Tovar Sexto Semestre. Ingenieria Cibernetica y en Sistemas Computacionales. Escuela de Ingenieria. Universidad La Salle. 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 ( OSF/1, Solaris, Linux) + Lenguaje C y Perl. + Editor de texto. vi o pico 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 + Reglas. + Clase empieza 8:00 pm. Tolerancia de 15 minutos. + Asistencia necesaria y con participacion en clase (no navegacion en Internet, ni interrumpcion por otras actividades (trabajos otras materias o diversion))