FACULTAD DE INGENIERÍA DEPARTAMENTO DE TECNOLOGÍAS DE INFORMACIÓN Y COMUNICACIONES Código-Materia: Requisitos: Programa-Semestre: Periodo académico: Intensidad Semanal: Créditos: 09627 – Sistemas Operacionales 11325 - Interfaces y Arquitectura de Hardware Ing. Telemática - Semestre 8, Ing. de Sistemas - Semestre 7 2016-2 4 Horas / Semana 3 Programa: Ingeniería de Sistemas Resultados de Aprendizaje relacionados con el Programa Fuente de Valoración • K: Herramientas de Ingeniería (T) NO Resultados de Aprendizaje Programa: Ingeniería Telemática Resultados de Aprendizaje relacionados con el Programa Fuente de Valoración • K: Herramientas de Ingeniería (T) NO Resultados de Aprendizaje Introducción Un sistema operativo es un software encargado de realizar la gestión de los recursos de una computadora, estos recursos son principalmente: el procesador, la memoria RAM, los dispositivos de almacenamiento y los dispositivos de entrada y salida. Los sistemas operativos se crean con la necesidad de abstraer al desarrollador de la forma particular en que se programa cada tipo de recurso en una computadora. El curso presenta dos ejes fundamentales, uno de ellos es el estudio de los algoritmos empleados para realizar la administración de recursos en un sistema operativo y el otro corresponde a las fundamentos y tecnologías que hacen posible la virtualización tanto de sistemas operativos como de servicios. Objetivos Objetivo General Capacitar al estudiante en la comprensión del funcionamiento de un sistema operativo, su virtualización y las implicaciones de la concurrencia entre aplicaciones. Objetivos Terminales Explicar la estructura de un sistema operativo y las estrategias de administración de sus recursos. Explicar las diferentes alternativas para realizar virtualización a nivel de sistema operativo y sus implicaciones técnicas. Instalar, configurar y administrar los sistemas operativos Windows y Linux en versión servidor. Contenido Este es el contenido propuesto para el desarrollo del curso: Unidad 1. Introducción a los sistemas operativos Temas: Conceptos de sistemas operativos, Virtualización Explicar de manera general los principales componentes de un sistema operativo. Describir los servicios que un sistema operativo proporciona a los usuarios, a los procesos y a otros sistemas. Entender las diversas formas de estructuras de un sistema operativo. Entender el concepto de máquina virtual, las razones para implementarlas y las dificultades que pueden presentarse en su utilización. Unidad 2. Procesos e hilos Temas: Procesos, Hilos Entender el concepto de proceso como la base del funcionamiento de un sistema operativo. Explicar los estados de los procesos y sus posibles transiciones. Describir los diversos mecanismos relacionados con los procesos, incluyendo los de planificación, creación, finalización y comunicación. Identificar la importancia de los hilos en la realización de las tareas de un sistema operativo. Explicar el funcionamiento de los hilos a nivel de usuario y a nivel del kernel, y la forma como se relacionan estos niveles a partir de los modelos multihilo (muchos a uno, uno a uno, muchos a muchos). Unidad 3. Condiciones de carrera y planificación Temas: Ambientes de planificación, algoritmos de planificación Entender los mecanismos de planificación de la CPU e identificar el mecanismo apropiado para una situación en particular. Seleccionar el algoritmo de planificación adecuado a partir de los criterios de evaluación aplicados a una situación particular. Identificar y entender la problemática del acceso concurrente a datos compartidos en los sistemas operativos. Explicar algunas soluciones de hardware y software para la sincronización de procesos. Implementar semáforos como una solución de programación al problema de la sección crítica. Unidad 4. Gestión de memoria Temas: Memoria de intercambio, memoria virtual Describir detalladamente las diferentes formas de organizar la memoria principal del sistema. Analizar diversas técnicas de gestión de memoria, incluyendo la paginación y segmentación. Describir las ventajas de un sistema de memoria virtual. Explicar los conceptos de paginación bajo demanda, algoritmos de sustitución de páginas y asignación de marcos de página. Entender el concepto de sobrepaginación, sus implicaciones en las actividades del sistema operativo y los mecanismos existentes para limitar sus efectos. Unidad 5. Sistema de archivos Temas: Sistema de archivos Explicar la función de los sistemas de archivos. Entender los conceptos relacionados con el sistema de archivos para ser aplicados en el trabajo cotidiano a la hora de almacenar información, cuando se trabaja con los sistemas operativos. Talleres Este es el listado de los talleres propuestos para el desarrollo del curso: 1. 2. 3. 4. 5. 6. Conceptos básicos de sistemas operativos Virtualización Sincronización de procesos Planificación de procesos Bloqueos mutuos Memoria virtual Formación Previa Los conocimientos mínimos para la comprensión del curso comprenden: Redes y Comunicaciones Programación Orientada a Objetos Metodología El curso se desarrollará de forma teórico-práctica. En las clases teóricas se abordaran los fundamentos de los módulos de administración de un sistema operativo, así como los algoritmos que puede ser empleados por cada módulo para la distribución de recursos en una computadora. En las clases prácticas se abordarán las herramientas que permiten hacer la virtualización de sistemas operativos, ejemplos prácticos para comprender la importancia de un adecuado manejo de la concurrencia y ejercicios relacionados con cada módulo de administración. Los parciales serán teóricos-prácticos. El proyecto final consistirá en la solución de un problema que requiere la implementación, ejecución y monitoreo de un servicio sobre un servidor Linux o Windows. El servicio a desarrollar deberá ser accesible a través de la red y manejar concurrencia. Evaluación La forma de evaluación del curso es la siguiente: 3 Parciales 6 Talleres 1 Proyecto final El cálculo de la nota final se realizará teniendo en cuenta el siguiente algoritmo: Nota promedio = (Promedio Parciales * 60%) + (Promedio Talleres * 40%) + Si Nota promedio >= 3.0 entonces Nota definitiva = (Nota promedio*60%)+(Nota proyecto final*40%) Sino Nota definitiva = Nota promedio Referencias [1] Operating System Concepts. Novena Edición (2012). Peter B. Galvin, Abraham Silberchatz, Greg Gagne. Editorial Wiley [2] Modern Operating Systems. Cuarta Edición (2014). Andrew Tanembaum, Herbert Bos. Editorial Prentice Hall. [3] Operating Systems: Three Easy Pieces. http://pages.cs.wisc.edu/~remzi/OSTEP/ [4] The Little Book of Semaphores. Segunda Edición. http://www.greenteapress.com/semaphores/