Atributos
Sigla: 
CI-0123
Créditos: 
4
Horas: 
5
Clasificación: 
Curso propio
Énfasis y ciclo: 
Tronco común 3.I
Descripción: 

Este curso se enfoca en la resolución de problemas de implementación de sistemas operativos y redes de comunicación. Dichos temas se encuentran estrechamente relacionados. Por un lado, el sistema operativo administra recursos y provee una interfaz a los programas que utilizan estos recursos. Por otro lado, las redes de comunicación permiten que aplicaciones que se ejecuten en diferentes dispositivos se comuniquen entre sí y operen como un solo recurso virtual. Además, los protocolos de red usualmente son ejecutados por el sistema operativo, y éste necesita de la red para ofrecer servicios como el sistema de archivos. 

A nivel del Plan de Estudios, el propósito del curso es ofrecer un espacio práctico para aplicar y profundizar los conceptos que ofrece la teoría tanto de Sistemas Operativos como de  Redes de Comunicación de datos (que se llevan simultáneamente en el tercer año de la carrera de Bachillerato en Computación e Informática) para implementar soluciones que incorporen aspectos de ambas áreas.
 

Objetivo general: 

El objetivo general del curso es que cada estudiante consolide e integre los conocimientos aprendidos en los cursos de Sistemas Operativos y Redes de Comunicación, para que sea capaz de diseñar e implementar soluciones que consideren los retos, necesidades, buenas prácticas y requerimientos de ambas áreas, a través del desarrollo de proyectos, tareas programadas y prácticas de laboratorio.

Objetivos específicos: 

Durante este curso el estudiante desarrollará habilidades para:

  1. Desarrollar aplicaciones distribuidas que utilizan sockets para comunicarse entre sí, para comprender cómo una aplicación puede hacer uso de los servicios de red disponibles en el SO, a través de la resolución de tareas programadas y prácticas de laboratorio
  2. Desarrollar aplicaciones que resuelvan problemas de red clásicos como control de flujo, control de congestión y transmisión confiable, para aplicar los conceptos teóricos aprendidos en el curso de Redes de Comunicación y entender cómo implementan estas soluciones en el sistema operativo, a través de la resolución de tareas programadas y prácticas de laboratorio.
  3. Desarrollar un prototipo de SO, que incorpore conceptos como multi-hilo, sincronización de procesos, interrupciones y llamadas al sistema, para reforzar el entendimiento de estos conceptos aprendidos en el curso teórico de Sistemas Operativos, a través de la resolución de tareas programadas y prácticas de laboratorio, cuyas soluciones pueden ser virtuales.
  4. Incorporar el soporte de aplicaciones de red al prototipo de SO desarrollado, para poder proveer una solución que integre los conceptos aprendidos en los cursos de Sistemas Operativos y Redes de Comunicación, a través del desarrollo de un proyecto programado.

Transversales:

  1. Aplicar mecanismos de seguridad, paralelismo y sistemas distribuidos en las tareas y proyectos, para reforzar el entendimiento de conceptos aprendidos en los cursos de Sistemas Operativos y Redes de Comunicación, a través del desarrollo de un proyecto programado.
Contenidos: 
Objetivos Eje temático Contenidos
Redes Sistemas Operativos
1,3,5 Estrategias de sincronización
  • Protocolos de capa de aplicación
  • Sockets
  • Procesos, Fork
  • Acceso a memoria compartida y sincronización
  • RPC
1,2 Uso de interrupciones por aplicaciones de red
  • ARP, configuración de switches (conmutadores)
  • Interrupciones
3,4,5 Infraestructura física
  • Cableado
  • Instalación de un Sistema Operativo
  • Configuración
2 Requerimientos de red para sistemas distribuidos
  • Capa de transporte
    • Congestión
    • Control de flujo
    • Confiabilidad
  • Capa de red
    • Configuración de enrutadores
  • Implementación de protocolos de enrutamiento
 
2,5 Administración de almacenamiento distribuido  
  • Almacenamiento secundario
  • Sistema de archivos
3,4 Aplicaciones en sistemas distribuidos  
  • Calendarización
  • Llamados al sistema
  • Procesos
3,4 Administración de memoria distribuida  
  • Paginación
  • Memoria contigua
  • Memoria virtual
5 Seguridad
  • Criptografía
  • Certificados digitales / firma digital
  • Protocolos de seguridad: por ejemplo S-BGP, IPsec, SSL y otros
  • Validación
  • Almacenamiento cifrado
  • Permisos
Bibliografía: 
  1.  A. Downey, “The Little Book of Semaphores”, 2da edición, Greenteapress, Massachussets, Estados Unidos, 2008.  
  2. J. Kurose y K. W. Ross, “Computer Networking: A Top-Down Approach Featuring the Internet”, 3ra edición, editorial Addison-Wesley, 2004.
  3. L. Peterson y B. Davie, “Computer Networks: A Systems Approach”, 5a edición, editorial Morgan Kaufmann, 2011.
  4. A. Silberchatz, P. Galvin y G. Gadge, “Operating Systems Concepts”, 9na edición, John Wiley and Sons, 2013.
  5. W. Stallings, “Operating Systems: Internals and Design Principles”, 8va edición, Prentice Hall, 2014.
  6.  A. Tanenbaum y D. Wetherall, “Computer Networks”, 5a edición, editorial Pearson, 2010.
  7. Tanenbaum, “Modern Operating Systems”, 3ra edición, Prentice Hall, 2007.
  8. Tanenbaum y A. Woodhull, “Operating Systems Design and Implementation”, 3ra edición, Prentice Hall, 2006.
     
LIberación de responsabilidad: 

Este no es un documento oficial. Documentos oficiales se entregan en la secretaría de la escuela.