Última actualización: 09/05/2018


Curso Académico: 2019/2020

Diseño de sistemas operativos
(13889)
Titulación: Doble Grado en Ingeniería Informática y Administración de Empresas (233)


Coordinador/a: CALDERON MATEOS, ALEJANDRO

Departamento asignado a la asignatura: Departamento de Informática

Tipo: Obligatoria
Créditos: 6.0 ECTS

Curso:
Cuatrimestre:




Materias que se recomienda haber superado
* Programación * Técnicas de expresión oral y escrita * Estructuras de Datos y Algoritmos * Principios de Desarrollo de Software * Estructura de Computadores * Arquitectura de Computadores * Sistemas Operativos
Competencias que adquiere el estudiante y resultados del aprendizaje.Más información en este enlace
El objetivo de este curso es que el estudiante conozca la organización, estructura y visión interna del sistema operativo, así como los servicios que se integran en el mismo para que sea capaz de diseñar elementos de un sistema operativo y de comprender la influencia que las decisiones de diseño tienen sobre el comportamiento del sistema. Para lograr este objetivo el alumno debe adquirir una serie de competencias genéricas, conocimientos, capacidades y actitudes. Competencias Transversales/Genéricas: - Capacidad de análisis y síntesis (PO a) - Capacidad de organizar y planificar (PO a) - Resolución de problemas (PO c) - Capacidad de aplicar los conocimientos en la práctica (PO a, c) Competencias Específicas - Cognitivas (Saber) (PO a) 1. Conocimiento de la estructura y organización de un sistema operativo. 2. Conocimiento de alternativas arquitectónicas en sistemas operativos. 3. Conocimiento de la arquitectura de los servidores en el sistema operativo. 4. Comprensión del efecto de las decisiones de diseño en el sistema operativo sobre el resto del sistema. 5. Conocimiento de las técnicas para la programación y modificación interna del sistema operativo. 6. Conocimiento de los métodos de gestión interna de recursos en un sistema operativo. 7. Conocimiento de principios fundamentales y técnicas básicas de sistemas de tiempo real y distribuidos. - Procedimentales/Instrumentales (Saber hacer) (PO b, e, j, k, g) 1. Modificar el sistema operativo, mediante programación o construcción de módulos. 2. Diseñar componentes del sistema operativo 3. Usar herramientas de monitorización, gestión y ajuste de sistemas operativos - Actitudinales (Ser) (PO c, d, i) 1. Actitud crítica respecto a la arquitectura interna de los sistemas operativos actuales 2. Preocupación por la calidad de los componentes de un sistema operativo 3. Motivación de logro de soluciones mejores 4. Capacidad de autoaprendizaje Competencias Generales y Trasversales * Utilizar de forma eficiente medios TIC para redactar informes técnicos y memorias de proyectos y trabajos sobre Informática, así como presentaciones de calidad (CG9) * Conocimientos básicos sobre el uso y programación de los ordenadores, sistemas operativos, bases de datos y programas informáticos con aplicación en ingeniería (CGB4) Competencias Comunes a la Rama de Informática * Conocimiento de las características, funcionalidades y estructura de los Sistemas Operativos y diseñar e implementar aplicaciones basadas en sus servicios (CECRI10) Competencias Específicas para la Mención de Ingeniería de Computadores * Capacidad de diseñar e implementar software de sistema y de comunicaciones (CEIC4)
Descripción de contenidos: Programa
Programa: 1.- Introducción 1.1.- Breve recordatorio: definición, principales funciones y características 1.2.- Principales objetivos de diseño 1.3.- Estructura de un sistema operativo: monolítico, subsistemas, capas y microkernel. 1.4.- Ejecución asíncrona en el sistema operativo 1.5.- Núcleo y módulos 2.- Funcionamiento interior del sistema operativo 2.1.- Contextos donde está presente el sistema operativo 2.2.- Tipos de eventos: llamadas al sistemas, excepciones, interrupciones software e interrupciones hardware 2.3.- Característica de los eventos 2.4.- Tratamiento de los eventos 2.5.- Concurrencia en los eventos 3.- Procesos, dispositivos, drivers y servicios ampliados 3.1.- Introducción a procesos y dispositivos 3.2.- Cambios de contexto voluntarios 3.3.- Temporización y cambios de contexto involuntarios 3.4.- Principales aspectos de planificación de procesos 3.5.- Organización de los drivers y servicios ampliados 3.6.- Estructura de un driver 3.7.- Diseño y desarrollo de un driver 4.- Diseño de sistema de ficheros 4.1.- Introducción: sistemas de almacenamiento 4.2.- Marco de trabajo: dispositivos, particiones/volúmenes, sistema de ficheros, directorios y ficheros 4.3.- Principales objetivos y arquitectura de un sistema de ficheros 4.4.- Entorno de trabajo: en kernel y en espacio de usuario 4.5.- Diseño y desarrollo de un sistema de ficheros 4.6.- Aspectos avanzados para el diseño y desarrollo 5.- Gestión de memoria 5.1.- Introducción: uso básico de la memoria 5.2.- Regiones de memoria de un proceso 5.3.- Memoria virtual 5.4.- Objetivos generales del gestor de memoria 5.5.- Gestores de memoria en el sistema operativo 5.6.- Principales aspectos de la gestión de memoria de los procesos 6.- Aspectos avanzados 6.1.- Tolerancia a fallos en sistemas operativos 6.2.- Sistemas operativos distribuidos 6.3.- Sistemas operativos de tiempo real
Actividades formativas, metodología a utilizar y régimen de tutorías
- Clases Teóricas (PO a) - Clases Prácticas (PO a, b, c, e, k) - Ejercicios y Exámenes (PO a, b, c, e) - Trabajo del alumno (estudio, lecturas, etc.) Relación entre resultados y actividad evaluable: * PO a, b, e, j: ejercicios y examen * PO c, k: prácticas y cuadernos de prácticas * PO d, g: prácticas * PO i: cuadernos de prácticas * CG9: práctica (memoria) * CGB4: cuadernos de prácticas * CECRI10: cuadernos de prácticas * CEIC4: cuaderno de prácticas y prácticas Soft-skills: trabajo en grupo
Sistema de evaluación
  • Peso porcentual del Examen Final 30
  • Peso porcentual del resto de la evaluación 70
Bibliografía básica
  • Abraham Silberschatz. Operating System Concepts . Wiley, ISBN-10: 1118063333 | ISBN-13: 978-1118063330. 9th Edition
  • Jesús Carretero, Félix García, Pedro de Miguel y Fernando Pérez. Sistemas Operativos, 2ª edición. McGraw-Hill, 2ª edición. 2007
Bibliografía complementaria
  • A. Silberschatz, P. Galvin, G. Gagne. Fundamentos de sistemas operativos. McGraw-Hill/Interamericana de España S.A. 7ª edición. 2006.
  • A.S. Tanenbaum, A.S. Woodhull. Sistemas Operativos. Diseño e implementación. Prentice Hall. 3ª ed. 2006 (ingles), 2ª ed. 1997 (Español).
  • Daniel P. Bovet & Marco Cesati. Understanding the Linux Kernel. O'Reilly. 2005
  • F. García, J. Carretero, A. Calderón, J. Fernández, J. M. Pérez. Problemas resueltos de programación en C. Thomson, 2003. ISBN: 84-9732-102-2.
  • Jesús Carretero, Félix García, Pedro de Miguel y Fernando Pérez. Problemas de Sistemas Operativos: de la base al diseño. McGraw-Hill. 2002
  • Jesús Carretero, Félix García, Pedro de Miguel y Fernando Pérez. . Sistemas Operativos, Una Visión Aplicada. McGraw-Hill. 2º Edición, 2007
  • Sreekrishnan Venkateswaran. Essential Linux Device Drivers. Prentice Hall. 2008
  • William Stallings. Sistemas Operativos. Aspectos internos y principios de diseño. Pearson educación. 5ª edición. 2005.
Recursos electrónicosRecursos Electrónicos *
(*) El acceso a algunos recursos electrónicos puede estar restringido a los miembros de la comunidad universitaria mediante su validación en campus global. Si esta fuera de la Universidad, establezca una VPN


El programa de la asignatura y la planificación semanal podrían sufrir alguna variación por causa de fuerza mayor debidamente justificada o por eventos académicos comunicados con antelación.