Conceptos Avanzados de Sistemas Operativos

Usted está aquí

Créditos
6
Tipos
Complementaria de especialidad (Tecnologías de la información)
Requisitos
  • Orrequisito: SO2
  • Orrequisito: SOA
Departamento
AC
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

  • Xavier Martorell Bofill ( )

Otros

  • Jordi Fornes de Juan ( )

Horas semanales

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

Competencias

Competencias Técnicas de cada especialidad

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.

Competencias Transversales

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
Tipo: examen de teoría
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
10h

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
Tipo: examen de teoría
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
10h

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
Tipo: examen de teoría
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
10h

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
Tipo: examen de laboratorio
Teoría
0h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
8h

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)
Tipo: examen de teoría
Teoría
3h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
12h

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ásica:

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