Última actualización: 05/05/2020


Curso Académico: 2019/2020

Sistemas Operativos
(13878)
Grado en Ingeniería Informática (Plan 2011) (Plan: 256 - Estudio: 218)


Coordinador/a: CARRETERO PEREZ, JESUS

Departamento asignado a la asignatura: Departamento de Informática

Tipo: Obligatoria
Créditos: 6.0 ECTS

Curso:
Cuatrimestre:




Requisitos (Asignaturas o materias cuyo conocimiento se presupone)
Programación Estructura de Computadores
El objetivo de este curso es que el estudiante conozca la función del sistema operativo como máquina ampliada, los servicios que ofrece al resto del sistema y sus principales componentes y entidades (procesos, memoria, ficheros, etc.), los conceptos de concurrencia y las relaciones del sistema operativo con el resto del software y el hardware del computador. Para lograr este objetivo el alumno adquirirá lo Program Outcomes (PO) siguientes: a, b, c, d, e, f, g, h, i, k. Relacionados con las competencias siguientes: 1 Competencias Transversales/Genéricas 1.1 Capacidad de análisis y síntesis. (PO: b, e, g) 1.2 Capacidad de organizar y planificar. (PO: b, c, h) 1.3 Resolución de problemas (PO: a, e, k) 1.4 Trabajo en equipo (PO: d) 1.5 Capacidad de aplicar los conocimientos en la práctica PO: a, b, c, e, f, i, k) 2 Competencias Específicas (Competencias específicas CECRI5, CECRI10). 2.1 Cognitivas (Saber) (PO: a, b, c, e, f, h, k) - Conocimiento de los conceptos de SS.OO - Conocimiento de las características, funcionalidades y estructura de los Sistemas Operativos. - Conocimiento del conceptos de concurrencia - Comprensión el efecto del sistema operativo sobre el resto del sistema. - Técnicas para la programación con llamadas a sistemas operativos y diseñar e implementar aplicaciones basadas en sus servicios. - Conocimiento de los métodos de gestión de recursos en un sistema operativo 2.2 Procedimentales/Instrumentales (Saber hacer) (PO: b, c, e, k) - Programar con llamadas a sistemas operativos. - Programar aplicaciones concurrentes. - Diseñar utilidades sobre el sistema operativo. - Usar herramientas de monitorización y gestión de sistemas operativos. 2.3 Actitudinales (Ser) (PO: e, g, h, i) - Capacidad para generar nuevas ideas (creatividad) - Actitud crítica respecto a los sistemas operativos actuales - Preocupación por la calidad de los sistemas operativos - Motivación de logro - Interés por investigar y buscar soluciones a nuevos problemas relacionados con sistemas operativos.
Descripción de contenidos: Programa
Los descriptores asociados con la asignatura son: Organización, estructura y servicios de los sistemas operativos; procesos y threads; conceptos de gestión de memoria; comunicación y sincronización entre procesos; conceptos de Entrada / Salida y sistemas de ficheros. El programa se divide en los temas siguientes: T1.- Introducción a los Sistemas Operativos 1.1.- Conceptos básicos.     1.2.- Principales funciones: máquina extendida, gestor de recursos e interfaz de usuario     1.3.- Historia de los sistemas operativos 1.4.- Estructura y componentes del sistema operativo. 1.5.- Activación del sistema operativo T2 Servicios de los sistemas operativos. 2.1.- Concepto de servicios del sistema operativo. Llamada al sistema. 2.2.- Servicios asociados a los distintos componentes del sistema operativo. 2.3.- Interfaz de llamadas al sistema para hacer programación de sistemas. 2.4.- Generación y ejecución de programas 2.5.- Bibliotecas estáticas y dinámicas T3.- Procesos y threads     3.1.- Definición de proceso.     3.2.- Modelo ofrecido: recursos, multiprogramación, multitarea y multiproceso 3.3.- Ciclo de vida del proceso: estado de procesos. 3.4 - Servicios para gestionar procesos que da el sistema operativo. 3.5.- Definición de thread 3.6.- Threads de biblioteca y núcleo. 3.7.- Servicios para threads en el sistema operativo.     3.8.- Estructura de datos de procesos y threads en el núcleo     3.9.- Diseño e implementación de la multiprogramación y la multitarea en el núcleo T4.- Planificación de Procesos y threads. 4.1.- Conceptos básicos de planificación de sistemas operativos. 4.2.- Planificación y activación 4.3.- Algoritmos de programación más comunes (FIFO, SJF, RR, PRIORIDAD, ¿). 4.4.- Planificación en LINUX: envejecimiento. 4.5.- Llamadas de planificación de procesos. 4.6.- Estructuras de datos de planificación en el núcleo ¿ T5 Comunicación entre procesos 5.1.- Señales y excepciones. 5.2.- Temporizadores. 5.3.- Comunicación de procesos con tuberías (pipes). 5.4.- Paso de mensajes local. T6 Procesos concurrentes y sincronización 6.1.- Procesos concurrentes. 6.2.- Exclusión mutua y sección crítica. 6.3.- Semáforos. 6.4.- Llamadas al sistema para semáforos. 6.5.- Mecanismos sincronización de threads. 6.6.- Mutex y variables condición. 6.7.- Llamadas al sistema para mutex. 6.8.- Problemas clásicos de concurrencia. 6.9.- Caso estudio: desarrollo de servidores concurrentes T7 Ficheros y directorios 7.1.- Conocer los conceptos de fichero y directorio así como sus características. 7.2.- Estudiar los ficheros, sus atributos y operaciones, la visión lógica. 7.3.- Representación desde el punto de vista de los usuarios. 7.4.- Servicios del ssoo para ficheros. 7.5.- Interpretación de nombres. 7.6.- Servicios del ssoo para directorios. 7.7.- Volúmenes, particiones y sistemas de ficheros. 7.8.- Security and protection T8. Gestión de Memoria 8.1.- Mecanismos básicos de gestión de memoria 8.2.- Gestión de memoria basada en particiones. 8.3._ Memoria virtual.
Actividades formativas, metodología a utilizar y régimen de tutorías
- Clases Teóricas y ejercicios: 1.5 ECTS. (PO: a, b, e, f, g, h, i, k) Tienen por objetivo alcanzar las competencias específicas cognitivas de la asignatura. Los alumnos recibirán las notas de clase y tendrán textos básicos de referencia. Actividades: * Conceptos teóricos de sistemas operativos indicados en el programa, importancia de la materia, visión crítica de los sistemas operativos e importancia de los aspectos de calidad en los mismos. Conciencia de la necesidad de aprender nuevos conceptos a lo largo de la vida profesional. * Formulación y resolución de problemas de Sistemas Operativos. Análisis y síntesis y aplicación de conceptos técnicos para resolver problemas de Sistemas Operativos. * Ejemplos durante las clases que hagan consciente al alumno de las posibles responsabilidades profesionales y legales debidas a fallos del sistema operativo y las repercusiones económicas de los mismos. Así como el impacto en la empresa de el de elegir una solución en SO. * Mejora de las habilidades de comunicación mediante la lectura de materiales y la realización de exámenes escritos. - Clases Prácticas: 1.5 ECTS. (PO: a, b, c, d, e, g, k) Desarrollan las competencias específicas instrumentales y la mayor parte de las transversales, como son la de trabajo en equipo, capacidad de aplicar los conocimientos a la práctica, de planificar y organizar y de análisis y síntesis. También tienen por objetivo desarrollar las capacidades específicas actitudinales. Para ello se: * Desarrollan en grupo varias prácticas a lo largo del curso aplicando principios de sistemas de computación al campo de la ingeniería de computadores y con apoyo parcial del profesor. * Se realizan diseño de problemas a partir de especificaciones iniciales, los estudiantes deben estudiar las especificaciones y proponer e implementar una solución. * Los estudiantes deben usar herramientas profesionales de SO Linux y Windows para solucionar problemas del mundo real. * Se desarrollan en grupos de trabajo de forma colaborativa, ampliando así la capacidad para ampliar conceptos teórico y debe demostrar que el grupo es capaz de desarrollar un experimento cumpliendo requisitos y restricciones de tiempo. * Mejoran las capacidades de comunicación a través de las memorias escritas de las prácticas. - Realización de Actividades Académicas Dirigidas con presencia del profesor: 1 ECTS. (PO: b, d, e, g, k) * Resolución de ejercicios, casos prácticos y experimentos de forma participativa en la clase (monitorización, instalación, etc.). Los alumnos deben estudiar datos y extraer conclusiones de los mismos usando herramientas profesionales, tanto de forma individual como colaborativa. - Trabajo personal. 1.5 ECTS. (PO: a, b, c, d, e, f, g, h, i, k) * Autoestudio de conceptos y su aplicación. Trabajo en grupo para acabar prácticas. Adquisición de información extra, importancia de SO en la profesión y necesidad de aprendizaje. - Examenes. 0.5 ECTS. (PO: a, b, c,
Sistema de evaluación
  • Peso porcentual del Examen Final 35
  • Peso porcentual del resto de la evaluación 65

Bibliografía básica
  • J. Carretero, F. García, P. De Miguel, F. Pérez. Sistemas Operativos: una visión aplicada. Segunda Edicion. McGraw-Hill, 2º Edición, 2007..
Bibliografía complementaria
  • A.Silberschatz, P.B. Galvin, G. Gagner. Operating Systems Concepts, Seventh Edition. John Wiley & Sons, Inc..
  • 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..
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 podría sufrir alguna variación por causa de fuerza mayor debidamente justificada o por eventos académicos comunicados con antelación.


Dirección web para más información: http://arcos.inf.uc3m.es/~ii_ssoo/dokuwiki/doku.php