Pasar al contenido principal

Conceptos Avanzados de Sistemas Operativos

Créditos
6
Tipos
Complementaria de especialidad (Ingeniería de Computadores)
Requisitos
Departamento
AC
Web
http://docencia.ac.upc.edu/FIB/grau/CASO
En la asignatura de Conceptos Avanzados de Sistemas Operativos (CASO), el estudiante aprenderá a diseñar, implementar y analizar sistemas operativos, el entorno de ejecución que ofrecen y evaluar su calidad. Los contenidos de la asignatura cubren los temas de arquitecturas donde se ejecuta un sistema operativo, desde entornos móviles hasta servidores, soporte hardware necesario para el SO, tipo de servicios que ofrecen los sistemas operativos, requerimientos de las aplicaciones y tiempo real, control de la energía, apoyo al paralelismo, desarrollo de aplicaciones sobre el SO, técnicas de virtualización y gestión de la garantía y seguridad del sistema y las aplicaciones. La evaluación de la asignatura se hará mediante tres controles parciales a lo largo del cuatrimestre, un examen de laboratorio y un examen final.

Profesorado

Responsable

Otros

Horas semanales

Teoría
2
Problemas
0
Laboratorio
2
Aprendizaje dirigido
0
Aprendizaje autónomo
6

Competencias

Especialidad tecnologías de la información

  • CTI1 - Definir, planificar y gestionar la instalación de la infraestructura TIC de la organización.
    • CTI1.4 - Seleccionar, diseñar, desplegar, integrar, evaluar, construir, gestionar, explotar y mantener las tecnologías de hardware, software y redes, dentro de los parámetros de costo y calidad adecuados.
  • CTI3 - Diseñar soluciones que integren tecnologías de hardware, software y comunicaciones (y capacidad de desarrollar soluciones específicas de software de sistemas) para sistemas distribuidos y dispositivos de computación ubícua.
    • CTI3.4 - Diseñar software de comunicaciones.
  • Especialidad ingeniería de computadores

  • CEC2 - Analizar y evaluar arquitecturas de computadores incluyendo plataformas paralelas y distribuidas, y desarrollar y optimizar software para dichas plataformas.
    • CEC2.1 - Analizar, evaluar, seleccionar y configurar plataformas hardware para el desarrollo y la ejecución de aplicaciones y servicios informáticos.
    • CEC2.3 - Desarrollar y analizar software para sistemas basados en microprocesadores y sus interfícies con usuarios y otros dispositivos.
    • CEC2.4 - Diseñar e implementar software de sistema y de comunicaciones.
    • CEC2.5 - Diseñar e implementar sistemas operativos.
  • CEC3 - Desarrollar y analizar hardware y software para sistemas empotrados y/o de muy bajo consumo.
    • CEC3.1 - Analizar, evaluar y seleccionar las plataformas hardware y software más adecuadas para el soporte de aplicaciones empotradas y de tiempo real.
  • CEC4 - Diseñar, desplegar, administrar y gestionar redes de computadores, y gestionar la garantía y la seguridad de los sistemas informáticos.
    • CEC4.1 - Diseñar, desplegar, administrar y gestionar redes de computadores.
    • CEC4.2 - Demostrar comprensión, aplicar y gestionar la garantía y la seguridad de los sistemas informáticos.
  • Aprendizaje autónomo

  • G7 [Avaluable] - Detectar carencias en el propio conocimiento y superarlas mediante la reflexión crítica y la elección de la mejor actuación para ampliar este conocimiento. Capacidad para el aprendizaje de nuevos métodos y tecnologías y versatilidad para adaptarse a nueves situaciones.
    • G7.3 - Aprendizaje autónomo: Capacidad de planificación y organización del trabajo personal. Aplicar los conocimientos adquiridos a la realización de una tarea en función de la pertenencia y la importancia, decidiendo la manera de llevarla a cabo y el tiempo que hay que dedicarle y seleccionando las fuentes de información más adecuadas. Identificar la importancia de establecer y mantener contactos con los compañeros de estudios, con el profesorado y con profesionales (networking). Identificar fórums de información sobre ingeniería TIC, sus avances y su impacto en la sociedad (IEEE, asociaciones, etc.).
  • Objetivos

    1. Trabajar con las abstracciones del sistema operativo
      Competencias relacionadas: CEC2.3, CEC2.4, G7.3, CTI1.4,
      Subcompetences
      • Gestión de memoria
      • Gestión de procesos y flujos
      • Acceso a archivos
      • Gestión de las comunicaciones
    2. Analisis y evaluacion de las abstracciones del sistema operativo
      Competencias relacionadas: CEC2.1, CEC3.1, G7.3, CTI1.4,
    3. Usar las herramientas de desarrollo de sistemas operativos
      Competencias relacionadas: CEC2.3, G7.3,
      Subcompetences
      • Compiladores, enlazadores y otras herramientas de apoyo
    4. Saber usar en cada momento las herramientas de apoyo del hardware al sistema operativo
      Competencias relacionadas: CEC2.1, CEC2.4, CEC3.1, CTI1.4,
      Subcompetences
      • Gestión de la memoria, TLB y tablas de páginas
      • Herramientas de sincronización
    5. Utilizar las técnicas de evaluación del rendimiento de sistemas operativos
      Competencias relacionadas: CEC2.1, CEC3.1, G7.3, CTI1.4,
      Subcompetences
      • Evaluación de la sobrecarga que introducen los servicios de sistema
    6. Soporte del sistema operativo a los sistemas de ficheros
      Competencias relacionadas: CEC2.3, CEC2.5, CEC2.4, G7.3,
      Subcompetences
      • Herramientas de apoyo a la integridad de datos: journaling
    7. Conocer, saber usar e implementar gestores de dispositivos dentro del sistema operativo
      Competencias relacionadas: CTI3.4, CEC2.5, CEC2.4, G7.3,
      Subcompetences
      • Dispositivos de almacenamiento
      • Dispositivos de interacción con el usuario
      • Dispositivos de comunicaciones
    8. Implementar y evaluar soporte para tiempo real
      Competencias relacionadas: CEC2.1, CEC3.1, G7.3, CTI1.4,
    9. Implementar y evaluar soporte de virtualización
      Competencias relacionadas: CEC2.3, CEC2.5, CEC2.4, G7.3, CTI1.4,
    10. Usar el soporte del sistema operativo para dispositivos móviles
      Competencias relacionadas: CTI3.4, CEC2.1, CEC4.1, CEC3.1, G7.3, CTI1.4,
      Subcompetences
      • Soporte para comunicaciones móviles
      • Uso de los recursos en entornos móviles
    11. Gestionar instalaciones informï¿¿ticas
      Competencias relacionadas: CEC4.1, CEC4.2, CTI1.4,

    Contenidos

    1. Abstracciones del Sistema Operativo
      En este tema, se presentan las abstracccions que los sistemas operativos ofrecen al nivel usuario y las aplicaciones: procesos y flujos, regiones de memoria, almacenes de datos y entrada / salida, gestión de dispositivos. Se hacen comparaciones entre diferentes abstracciones que se ofrecen como equivalentes y se determina cuáles son más apropiadas
    2. Herramientas de desarrollo de los sistemas operativos
      Se presentan las herramientas necesarias para el desarrollo de los sistemas operativos: compilador y enlazador, gestores de protocolos, etc.
    3. Herramientas de hardware de apoyo al sistema operativo
      Herramientas básicas que ofrece el hardware para poder implementar los sistemas operativos.
    4. Herramientas de sincronizacion
      Uso de las herramientas de sincronizacion que ofrece el hardware en el sistema operativo y como se ofrecen eficientemente al nivel de las aplicaciones.
    5. Evaluación del rendimiento del sistema operativo
      Determinar la sobrecarga que introduce el uso de cada abstracción del sistema operativo y evaluación del rendimiento del sistema
    6. Sistemas de archivos
      Gestión de datos en los sistemas de ficheros y herramientas de apoyo a su integridad
    7. Gestión de dispositivos
      Representación de los dispositivos dentro de los sistemas operativos, tratamiento de los diferentes dispositivos: disco, red, interacción con el usuario.
    8. Desarrollo de gestores de dispositivos
      Introducción de nuevos gestores de dispositivos en el sistema operativo
    9. Soporte del sistema operativo para aplicaciones para tiempo real
      Herramientas y librerías de soporte a aplicaciones que den respuesta en tiempo real
    10. Soporte del sistema operativo en los entornos virtualizados
      Implementación de máquinas virtuales con / sin apoyo del hardware. Opciones de implementación de màquinas virtuales nativas y no nativas (en entornos físicamente diferentes).
    11. Soporte del sistema operativo para dispositivos móviles
      Se presentan las diferencias entre un sistema sobremesa / portátil y el sistema operativo que apoya dispositivos móviles
    12. Gestión de una instalacion informatica
      Gestionar una instalacion informatica desde su planificación y compra, instalacion, puesta en marcha, y mantenimiento

    Actividades

    Actividad Acto evaluativo


    Abstracciones del Sistema Operativo

    El estudiante participa activamente en la sesión, trabajando en grupo sobre los temas presentados, y en las comparativas de posibles implementaciones.
    • Teoría: Descripción y comparativa de las abstracciones que ofrecen los sistemas operativos
    • Laboratorio: Entrada en el entorno del laboratorio y realización de prácticas comparando varias maneras de crear procesos y flujos, gestionar memoria, etc.
    • Aprendizaje autónomo: Completar el estudio de las abstracciones del sistema operativo
    Objetivos: 1 2
    Contenidos:
    Teoría
    3h
    Problemas
    0h
    Laboratorio
    4h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    8h

    Desarrollo de Sistemas Operativos

    Estudio de las herramientas de desarrollo de sistemas operativos, participación en las discusiones en clase y realización de las prácticas de compilacion del sistema operativo
    • Teoría: Descripción de las herramientas de desarrollo
    • Laboratorio: Compilacion del sistema operativo
    • Aprendizaje autónomo: Compilacion de los procesos de sistema, init, servidores de red, etc.
    Objetivos: 3
    Contenidos:
    Teoría
    2h
    Problemas
    0h
    Laboratorio
    2h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    2h

    Herramientas de apoyo del hardware

    Participación en las discusiones sobre el uso del soporte del hardware dentro del sistema operativo para la implementación del espacio de direcciones y gestión de memoria, y de la sincronización
    • Teoría: Descripción de los mecanismos del hardware de apoyo a los espacio de direcciones y la sincronización
    • Laboratorio: Implementación de sincronización usando las técnicas que ofrece el hardware
    • Aprendizaje autónomo: Comparativa de facilidad de uso y rendimiento de las herramientas de sincronización
    Objetivos: 1 4
    Contenidos:
    Teoría
    2h
    Problemas
    0h
    Laboratorio
    4h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    2h

    Primer control

    En esta prueba se evalúa el conocimiento y la práctica adquirida en los 3 primeros temas de la asignatura. Consiste en una prueba escrita realizada en horas de clase.

    Semana: 5
    Teoría
    0h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    0h

    Evaluación del rendimiento del sistema operativo

    Participación en las discusiones sobre las técnicas de evaluación del rendimiento y las alternativas que existen para obtener medidas fiables y de bajo impacto en la ejecucion del sistema
    • Teoría: Técnicas de evaluación del rendimiento del sistema
    • Laboratorio: Medida y evaluación del rendimiento del sistema
    • Aprendizaje autónomo: Técnicas de evaluación basadas en contadores de eventos del hardware
    Objetivos: 1 2 5
    Contenidos:
    Teoría
    2h
    Problemas
    0h
    Laboratorio
    2h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    4h

    Sistemas de archivos

    Participación en las discusiones sobre las posibilidades de implementar el jounaling en los sistemas de ficheros
    • Teoría: Implementación de los sistemas de ficheros
    • Laboratorio: Uso del journaling para incrementar la integridad de los datos
    • Aprendizaje autónomo: Búsqueda de las características de varios sistemas de ficheros
    Objetivos: 1 2 6
    Contenidos:
    Teoría
    2h
    Problemas
    0h
    Laboratorio
    2h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    4h

    Desarrollo de gestores de dispositivos

    Participación en las discusiones sobre las alternativas de implementación de los controladores de dispositivo
    • Teoría: Implementación de controladores de dispositivo
    • Laboratorio: Implementación de controladores de dispositivo
    • Aprendizaje dirigido: Implementación de controladores de dispositivo USB
    • Aprendizaje autónomo: Alternativas en la implementación de controladores de dispositivo
    Objetivos: 3 4 7
    Contenidos:
    Teoría
    3h
    Problemas
    0h
    Laboratorio
    6h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    6h

    Segundo control

    En esta prueba se evalúa el conocimiento y la práctica adquiridos en las 9 primeras semanas de la asignatura, incluyendo los temas 1 a 7.
    Objetivos: 1 2 3 4 6 7
    Semana: 10
    Teoría
    0h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    0h

    Apoyo a aplicaciones de tiempo real

    Participación en las discusiones sobre las alternativas de implementación del soporte en tiempo real
    • Teoría: Soporte para tiempo real
    • Laboratorio: Instalación del soporte para tiempo real en el sistema operativo
    • Aprendizaje dirigido: Polï¿¿ticas de planificaciï¿¿n para tiempo real
    • Aprendizaje autónomo: Análisis del rendimiento de servicios por tiempo real, comparándolos con los servicios tradicionales
    Objetivos: 1 2 8
    Contenidos:
    Teoría
    2h
    Problemas
    0h
    Laboratorio
    2h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    4h

    Soporte del sistema operativo en los entornos virtualizados

    Participación en las discusiones sobre las técnicas de implementación de entornos virtualizados de forma nativa y no nativa
    • Teoría: Entornos virtualizados
    • Laboratorio: Instalaciï¿¿n y ejecuciï¿¿n de un entorno virtualizado
    • Aprendizaje autónomo: Entornos virtualizados existentes ejecutándose en un entorno nativo
    Objetivos: 1 2 9
    Contenidos:
    Teoría
    2h
    Problemas
    0h
    Laboratorio
    2h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    4h

    Soporte del sistema operativo para dispositivos móviles

    Participación en las discusiones sobre las alternativas de sistemas operativos para dispositivos móviles
    • Teoría: Soporte del sistema operativo para dispositivos mï¿¿viles
    • Laboratorio: Evaluación del rendimiento de un sistema para dispositivo móvil y comparación con el de un sistema operativo tradicional
    • Aprendizaje autónomo: Comparaciï¿¿n de los servicios que ofrecen los sistemas para dispositivos mï¿¿viles con los servicios ofrecidos por sistemas tradicionales
    Objetivos: 1 2 3 10
    Contenidos:
    Teoría
    2h
    Problemas
    0h
    Laboratorio
    4h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    6h

    Gestión de una instalacion informatica

    Participación en las discusiones sobre el dimensionamiento de una instalación informatica
    • Teoría: Gestión de una instalacion informatica
    Objetivos: 2 11
    Contenidos:
    Teoría
    1h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    0h

    Tercer control

    En esta prueba se evalúa el conocimiento y la práctica adquiridos durante todo el curso.
    Objetivos: 1 2 3 4 6 7 8 9 10 5 11
    Semana: 14
    Teoría
    0h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    0h

    Examen de laboratorio

    En esta prueba se realizan ejercicios prácticos de forma individual, relacionados con todos los temas vistos en la asignatura. Se puede disponer de libros y apuntes.
    Objetivos: 1 2 3 4 6 7 8 9 10 5 11
    Semana: 14
    Teoría
    0h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    0h

    Examen final

    Para aquellos estudiantes que necesiten superar los lí­mites de la asignatura o quieran subir la nota, este examen se realizará con posterioridad a la finalización de las clases
    Objetivos: 1 2 3 4 6 7 8 9 10 5 11
    Semana: 15 (Fuera de horario lectivo)
    Teoría
    0h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    0h

    Metodología docente

    El profesor expone los temas propuestos en las sesiones de teoría, a la vez que abre discusiones entre y con los estudiantes sobre diversos temas. Cada sesion de teoría incluye la propuesta de diversos temas relacionados con la clase, que los estudiantes trabajarán de forma autónoma por su compte.Les sesiones de laboratorio siguen los temas expuestos en la teoría y sirven para consolidar el uso y evaluación de las abstracciones y servicios del sistema operatiu.Per fin de trabajar en la competencia de aprendizaje autónomo, durante el curso se realizarán 2 actividades de trabajo personal, relacionadas con los servicios que ofrecen los sistemas operativos. Los temas de las actividades se definirán durante el curso. Serán por ejemplo, la introducción de nuevas llamadas al sistema, la interacción entre sistemas Android y Linux, añadir servicios al sistema operativo a través de librerías, evaluación del rendimiento del sistema, etc.

    Método de evaluación

    La competencia transversal de aprendizaje autónomo se evalúa a partir de los informes de seguimiento entregados durante el curso y pesa un 10% de la nota final.

    Las competencias técnicas se evalúan a partir de la nota de teoría (40%) y el examen de laboratorio (50%).

    La teoria se evalúa a partir de los controles parciales y el examen final. La nota de los 3 controles parciales se calcula a partir de la media ponderada de las 3 pruebas, con los siguientes pesos: 25, 25 y 50%. Si la nota ponderada de los 3 controles parciales es igual o superior a 6.0, la asistencia al examen final será opcional.

    En caso que un estudiante se presente al examen final, su nota de teoria será la más alta que se obtenga entre la nota obtenida en el examen final y la media ponderada de los controles parciales.

    Bibliografía

    Básico

    Capacidades previas

    - Sistemas operativos a nivel de usuario
    - Nivel básico sobre la estructura interna del sistema operativo
    - Lenguajes de programación C y C ++
    - Mecanismos de compilacion y enlace
    - Conceptos básicos de arquitectura de computadores