Sistemas Operativos II

Usted está aquí

Créditos
6
Tipos
Obligatoria de especialidad (Ingeniería de Computadores)
Requisitos
  • Prerrequisito: SO
  • Esta asignatura no se puede matricular si has aprobado: SOA
Departamento
AC
Esta asignatura ofrece una visión interna del funcionamiento básico de un Sistema Operativo, mediante la implementación de diferentes componentes del sistema, y diferentes métricas para la evaluación de su rendimiento.

Profesorado

Responsable

  • Juan José Costa Prats ( )

Otros

  • Alex Pajuelo Gonzalez ( )
  • Yolanda Becerra Fontal ( )

Horas semanales

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

Competencias

Competencias Técnicas

Competencias técnicas comunes

  • CT6 - Demostrar conocimiento y comprensión del funcionamiento interno de un computador y del funcionamiento de las comunicaciones entre ordenadores.
    • CT6.1 - Demostrar conocimiento y tener capacidad para administrar y mantener sistemas, servicios y aplicaciones informáticas.
    • CT6.3 - Demostrar conocimiento de las características, funcionalidades y estructura de los Sistemas Operativos que permita su uso adecuado, administración y diseño, así como la implementación de aplicaciones basadas en sus servicios.
  • CT7 - Evaluar y seleccionar plataformas de producción hardware y software para la ejecución de aplicaciones y de servicios informáticos.
    • CT7.3 - Determinar los factores que inciden negativamente en la seguridad y la fiabilidad de un sistema hardware/software, y minimizar sus efectos.

Competencias Transversales

Actitud frente al trabajo

  • G8 [Avaluable] - Tener motivación para la realización profesional y para afrontar nuevos retos, así como una visión amplia de las posibilidades de la carrera profesional en el ámbito de la Ingeniería en Informática. Tener motivación por la calidad y la mejora continua, y actuar con rigor en el desarrollo profesional. Capacidad de adaptación a los cambios organizativos o tecnológicos. Capacidad de trabajar en situaciones de falta de información y/o con restricciones temporales y/o de recursos.
    • G8.3 - Tener motivación para el desarrollo profesional y para afrontar nuevos retos. Tener motivación para la mejora continua. Disponer de capacidad de trabajo en situaciones de falta de información.

Uso solvente de los recursos de información

  • G6 [Avaluable] - Gestionar la adquisición, la estructuración, el análisis y la visualización de datos e información del ámbito de la ingeniería informática y valorar de forma crítica los resultados de esta gestión.
    • G6.3 - Planificar y utilizar la información necesaria para un trabajo académico (por ejemplo, para el trabajo de final de grado) a partir de una reflexión crítica sobre los recursos de información utilizados. Gestionar la información de manera competente, independiente y autónoma. Evaluar la información encontrada e identificar las lagunas presentes.

Competencias Técnicas de cada especialidad

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.2 - Programar considerando la arquitectura hardware, tanto en ensamblador como en alto nivel.
    • 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.
    • CEC3.2 - Desarrollar procesadores específicos y sistemas empotrados; desarrollar y optimizar el software de estos sistemas. 
  • 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.

Objetivos

  1. Conocer el funcionamiento de un SO real, desde que arranca el ordenador y la inicialización del sistema, pasando por la gestión dinámica de recursos, hasta que se apaga el ordenador.
    Competencias relacionadas: CEC2.5, CEC3.2, CT6.3, CEC2.2, CEC2.4,
  2. Conocer los detalles de la implementación de algunos de los componentes básicos de un SO real: código de inicialización, código de gestión de memoria, código de gestión de la entrada/salida, código de gestión de los procesos y código de carga de ficheros ejecutables.
    Competencias relacionadas: CEC2.1, CEC2.3, CEC2.5, CT6.1, CT6.3, CT7.3, CEC2.2, CEC2.4, CEC4.2,
  3. Conocer el mecanismo de inserción dinámica de código sobre un SO real.
    Competencias relacionadas: CEC2.5, CT6.1, CT6.3, CT7.3, CEC2.4, CEC3.1, CEC4.2,
  4. Ser capaz de implementar un controlador de dispositivo e insertarlo en un SO real.
    Competencias relacionadas: CEC2.3, CEC2.5, CT6.1, CT6.3, CT7.3, CEC2.2, CEC2.4, CEC3.1,
  5. Conocer la programación multihilo, la problemática del uso compartido de memoria y los mecanismos de exclusión mutua
    Competencias relacionadas: CEC2.5, CEC3.2, CT7.3, CEC2.4, CEC4.2,
  6. Conocer algunos factores de riesgo en la la seguridad de un sistema operativo.
    Competencias relacionadas: CT7.3, CEC2.4, CEC4.2,
  7. Conocer la implementación de diversas políticas de acceso y seguridad.
    Competencias relacionadas: CEC2.5, CT6.3, CT7.3, CEC2.4, CEC4.2,
  8. Ser capaz de implementar algunos de los componentes básicos de un SO real: código de inicialización, código de gestión de memoria, código de gestión de la entrada/salida, código de gestión de los procesos y código de carga de ficheros ejecutables.
    Competencias relacionadas: CEC2.3, CEC2.5, CEC3.2, CT6.1, CT6.3, CT7.3, CEC2.2, CEC2.4,
  9. Desarrollar software de sistema para una arquitectura específica como intel x86. Usando lenguaje C y ensamblador.
    Competencias relacionadas: CEC2.1, CEC2.3, CEC2.5, CEC3.2, CT6.1, CT6.3, CEC2.2, CEC2.4,
  10. Seleccionar los parámetros del sistema operativo más adecuados en función de la plataforma a utilizar
    Competencias relacionadas: CEC3.2, CT6.1, CT7.3, CEC3.1, CEC4.2,
  11. Buscar, organizar y resumir información relevante y de calidad sobre un tema desconocido. Escribir documentos con una reflexión crítica sobre las ideas principales de ese tema.
    Competencias relacionadas: G6.3,
  12. Saber describir los conceptos más básicos sobre la visión del SO de las redes de computadores.
    Competencias relacionadas: CEC2.5, CEC4.1, CT6.3, CEC2.4,
  13. Tener una actitud proactiva por la calidad y la mejora continua
    Competencias relacionadas: G8.3,
    Subcompetences:
    • Ser capaz de producir un código de calidad que cumpla los requerimientos de los enunciados, que sea claro y bien organizado.
    • Ser capaz de valorar la calidad de un código mediante rúbricas
  14. Ser capaz de adaptarse a situaciones de restricciones temporales y / o de recursos y / o de falta de información
    Competencias relacionadas: G8.3,
    Subcompetences:
    • Ser capaz de realizar un trabajo a partir de enunciado que tiene carencias de información.

Contenidos

  1. Inicialización del sistema
    En este capítulo se explicarán todas las acciones que se llevan a cabo para arrancar todos los servicios que ofrece un sistema operativo. También se describirán y discutirán las posibles implementaciones de este proceso en sistema operativo actual.
  2. Mecanismos de entrada al sistema
    Se describirán y discutirán las posibles implementaciones de mecanismos de entrada al sistema junto con su soporte hardware. Se detallarán los aspectos importantes de los mecanismos y las dependencias entre el sistema operativo y el hardware. Se comentará las ventajas de la implementación de técnicas de virtualización actuales. Se presentarán y discutirán las diferentes implementaciones de sistemas operativos actuales.
  3. Gestión de memoria
    En este capítulo se tratarán los siguientes temas: Espacio de direcciones lógico del proceso. Sistemas de memoria basados en paginación y su soporte hardware. Diseño e implementación de la memoria virtual. Algoritmos de reemplazo de la memoria virtual. Implementación de memoria compartida. Alternativas de diseño e implementación de sistemas de memoria en sistemas operativos actuales y dependencia del hardware.
  4. Gestión de procesos
    En este capítulo se tratarán los siguientes temas: Implementación detallada del bloque de control de proceso. Implementación detallada del proceso de creación de procesos. Implementación detallada del proceso de finalización de procesos. Implementación detallada del proceso de carga de ejecutables. Implementación detallada del cambio de contexto entre procesos. Descripción detallada de las estructuras y algoritmos de planificación de procesos. Implementación detallada de las rutinas de planificación de procesos. Descripción y discusión de las diferentes implementaciones de planificación de procesos en sistemas operativos actuales.
  5. Extensión del núcleo del sistema
    En este capítulo se tratarán los siguientes temas: Concepto, diseño e implementación de módulos de núcleo del S.O. Carga de módulos de núcleo en tiempo de inicialización del sistema y en tiempo de ejecución. Descripción del acceso a funcionalidades implementadas en módulos de núcleo. Descripción de la relación entre módulos de núcleo y dispositivos físicos y lógicos.
  6. Gestión de la entrada/salida y sistema de ficheros
    En este capítulo se tratarán los siguientes temas: Descripción e implementación de la parte del S.O. independiente y dependiente del dispositivo. Implementación de un descriptor de dispositivos. Descripción, funcionamiento e implementación de las estructuras relativas a la E/S y al sistema de ficheros. Descripción e implementación de la estructura lógica del sistema de ficheros en disco. Mecanismos de comunicación entre procesos a través del sistema de ficheros. Mecanismos de comunicación entre procesos a través de la red. Descripción e implementación de diversos sistemas de ficheros actuales.
  7. Memoria compartida
    En este capítulo se tratarán los siguientes temas: Problemática de tener memoria compartida entre varios flujos de ejecución dentro de un proceso. Condiciones de carrera. Zonas de exclusión mutua. Descripción e implementación de mecanismos de exclusión mutua en el acceso a memoria compartida, en concreto, test and set, mutex y semáforos. Descripción, implementación y discusión de mecanismos de exclusión mutua en sistemas operativos actuales.

Actividades

Actividad Acto evaluativo


Familiarización con el entorno de trabajo

Adquisición del conocimiento necesario para desarrollar el laboratorio.
Objetivos: 1 2 8 9
Teoría
0h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

Rutina de atención a una interrupción

Desarrollar una rutina de atención al interupció de reloj
Objetivos: 1 2 8 9 13 14
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h

Creación de un punto de entrada al sistema

Creación de un nuevo punto de entrada al sistema para usar servicios del sistema
Objetivos: 1 2 6 8 9 13 14
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
1h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h

Gestión de memoria

Se describirán los principales algoritmos y la implementación de memoria virtual.
Objetivos: 1 2 6 7 8 9
Contenidos:
Teoría
4h
Problemas
0h
Laboratorio
3h
Aprendizaje dirigido
0h
Aprendizaje autónomo
8h

Gestión de procesos

Desarrollar las estructuras básicas de gestión de procesos, así como las funcionalidades para identificar, crear y destruir procesos
Objetivos: 1 2 6 8 9 10 13 14
Contenidos:
Teoría
6h
Problemas
0h
Laboratorio
6h
Aprendizaje dirigido
0h
Aprendizaje autónomo
8h

Primero Control

Primera parte de la asignatura
Objetivos: 1 2 6 8 9
Semana: 8
Tipo: examen de teoría
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h

Primer examen Lab

Primer examen Laboratorio
Objetivos: 1 2 6 7 8 9 12
Semana: 8
Tipo: examen de laboratorio
Teoría
0h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h

Planificación de procesos

Implementar el cambio de contexto y un planificador simple basado en quantum
Objetivos: 2 6 8 9 13 14
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
6h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h

Extensión del kernel

Se describirán los mecanismos más usados ​​de extensión del núcleo de un sistema operativo
Objetivos: 1 2 3 4 6 9 10
Contenidos:
Teoría
1h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h

Gestión Entrada / Salida y sistemas de ficheros

Desarrollar algunos de los mecanismos de entrada y salida del sistema de ficheros de un sistema operativo
Objetivos: 1 2 6 7 8 9 10 12 13 14
Contenidos:
Teoría
5h
Problemas
0h
Laboratorio
4h
Aprendizaje dirigido
0h
Aprendizaje autónomo
7h

Comunicación entre procesos

Implementación de los semáforos
Objetivos: 1 2 5 6 8 9 13 14
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
1h
Aprendizaje dirigido
0h
Aprendizaje autónomo
7h

Red

Montar una pequeña red con algún servicio especializado
Objetivos: 6 7 10 11 12
Teoría
1h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
4h

Segundo Control

Segundo control
Objetivos: 1 2 3 4 5 6 7 8 9 10 12
Semana: 14
Tipo: examen de teoría
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h

Proyecto

Entrega del código y la documentación del proyecto.
Objetivos: 1 2 3 4 5 6 7 8 9 10 12
Semana: 14
Tipo: entrega
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h

Examen Final Teoria

Examen final de la asignatura
Objetivos: 10 12 1 2 3 4 5 6 7 8 9
Semana: 15 (Fuera de horario lectivo)
Tipo: examen de teoría
Teoría
3h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h

Examen final laboratorio


Objetivos: 2 3 4 5 6 7 8 9 10
Semana: 15 (Fuera de horario lectivo)
Tipo: examen de laboratorio
Teoría
0h
Problemas
0h
Laboratorio
3h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h

Metodología docente

La asignatura tendrá principalmente dos tipos de clase: teoría y laboratorios. Las clases de teoría serán para explicar los conceptos, diseños e implementación de los diferentes componentes de un sistema operativo actual. Estas clases se harán con el apoyo de transparencias.

Las clases de laboratorio serán semanales. Durante el laboratorio se diseñará, e implementará un sistema operativo didáctico llamado Zeos. Esta práctica se realizará en grupos de 2 personas.

Método de evaluación

La nota final de la asignatura está compuesta por la nota de la competencia técnica (CT), y la nota de la competencia transversal (CTr) mediante la fórmula:

Nota Asig = (CT+CTr) * (10/11)

Donde la nota máxima de CTr es 1.

La nota de la CT se puede obtener obtener por evaluación continua (CTc) o excepcionalmente por un examen final (CTf). Se calcula como:

CT = max(CTc, CTf)

La nota CTc está compuesta de varios actos evaluativos: controles de teoría (T) y controles de laboratorio (L). La fórmula para calcular esta nota es la siguiente:

CTc=40% T + 60% L

Para calcular T se utilizan dos controles con el mismo peso:

T = 50% T1 + 50% T2

Para calcular L se usa un control de laboratorio (L), una nota de seguimiento (S) y una nota de proyecto (P):

L = 30% L1 + 20% S + 50% P

La nota de seguimiento (S) se obtiene de la evaluación que haga el profesor sobre el correcto progreso del laboratorio.

La nota de proyecto (P) corresponde al diseño, seguimiento e implementación final del proyecto.

La nota CTf se calcula mediante un examen de teoría (T) y un examen de laboratorio (L). Para obtener esta nota es obligatorio hacer ambos exámenes. Sólo pueden optar a esta nota los alumnos que no hayan aprobado la evaluación continua.La fórmula es la siguiente:

CTf = 50%T + 50%L

La nota de la competencia transversal (CTr) se obtendrá durante todo el cuatrimestre a través de diversas actividades. La calificación de esta competencia tendrá valores A, B, C, D o NA: A corresponde a un nivel excelente, B a un nivel deseado, C a un nivel suficiente, D a un nivel no superado y NA a no evaluado.

Bibliografía

Básica:

Complementaria:

Capacidades previas

El estudiante debe tener las capacidades técnicas que le otorgan las asignaturas cursadas previamente además de un nivel de inglés técnico medio como para leer y entender una documentación.

En cuanto a capacidades técnicas las podríamos resumir en:

-En cuanto a sistemas operativos: Conocimiento de los conceptos básicos de un sistema operativo junto con programación de aplicaciones utilizando la interfaz genérica de llamadas al sistema, todo impartido en Sistemas Operativos.
-En cuanto a estructura de computadoras: Conocimiento de los elementos principales de un ordenador, relacion de estos elementos entre sí, representación interna de datos y conocimientos de lenguaje máquina.
-En cuanto a programación: Capacidad de hacer programas complejos y modularitzados desde cero que incluyan definición de tipo de datos, referencias con punteros y código en ensamblador. Compilación y montaje de ejecutables.