Contenido de XSL
Introducción a los Sistemas Operativos
- Centro
- Facultad de Informática
- Titulación
- Grado en Ingeniería Informática
- Curso académico
- 2024/25
- Curso
- 2
- Nº Créditos
- 6
- Idiomas
- Castellano
- Euskera
DocenciaAlternar navegación
Tipo de docencia | Horas de docencia presencial | Horas de actividad no presencial del alumno/a |
---|---|---|
Magistral | 40 | 50 |
P. Laboratorio | 20 | 40 |
Guía docenteAlternar navegación
ObjetivosAlternar navegación
Al finalizar la asignatura, el/la estudiante deberá ser capaz de:
- Conocer las características de los diferentes tipos de sistemas operativos como sistemas de tiempo compartido, sistemas distribuidos, de tiempo real, etc.
- Identificar las interfaces que proporciona un sistema operativo
- Desarrollar sobre Linux utilidades para las aplicaciones a partir de su interfaz de llamadas al sistema
- Manejar los conceptos fundamentales de los sistemas operativos (ficheros, protección de accesos, procesos, hilos, elementos de comunicación y sincronización)
- Gestionar la funcionalidad de sus componentes (subsistemas para la gestión de procesos, memoria, entrada/salida)
Otros aspectos importantes que se van a potenciar son la capacidad de encontrar la información y las herramientas necesarias para resolver los problemas que se planteen, y la capacidad de describir con precisión la funcionalidad de las utilidades desarrolladas, de forma que puedan ser utilizadas por otros u otras usuarias o desarrolladoras.
TemarioAlternar navegación
Tema 1: Introducción
- Visión funcional de un Sistema Operativo (SO)
- Funciones e Interfaces de un SO
- Tipos de SOs según su funcionalidad (evolución y clasificación)
- Mercado actual de los SOs
- Laboratorio: tareas básicas de Shell como interfaz de usuario y administración
Tema 2: Mecanismo de llamadas al sistema
- Arquitectura soporte de los Sistemas Operativos (E/S)
- Mecanismo de gestión de Entrada/Salida
- Rutinas residentes
- Mecanismo de acceso al SO: llamadas al sistema
Tema 3: Entrada/Salida y ficheros
- Introducción al concepto de Independencia del Dispositivo, redirecciones
- Modos de operación sobre dispositivos y ficheros
- Organización del sistema de ficheros. Espacios de nombres, directorios
- "Buffering" de E/S, en las bibliotecas de E/S y en las llamadas al sistema
- Acceso avanzado a las propiedades de los dispositivos
- Llamadas al sistema de E/S y funciones de biblioteca estándar de C
- Ejercicios, prácticas de laboratorio y trabajo de E/S
Tema 4: Gestión de usuarios y seguridad
- Sistemas multiusuario
- Mecanismos de protección
- Llamadas al sistema relacionadas con la seguridad
- Prácticas: manejo de derechos de acceso desde el Shell. Trabajo/ejercicios de E/S y multiusuario
Tema 5: Gestión de la memoria
- Carga y ubicación de programas en sistemas con uno o varios programas en memoria
- Soporte para sistemas de memoria virtual: direccionamiento físico y virtual
- Reubicación estática y dinámica. Código reentrante
- Librerías de enlace dinámico y estático
- Llamadas al sistema operativo relacionadas con la carga de programas y la gestión de la memoria
- Prácticas de compilación, gestión de memoria, bibliotecas de enlace estático y dinámico y carga de programas
Tema 6: Control de procesos
- Sistema multiprogramado, conceptos de flujo y contexto de ejecución. Cambio de contexto
- Sistemas multiprogramados y sistemas multihilo
- Concepto de proceso (modelo Unix), estados y grafo de transición
- Planificación de procesos y políticas de planificación básicas
- Llamadas al sistema y funciones de biblioteca relacionadas con el control de procesos e hilos
- Prácticas: lanzamiento de procesos background desde el Shell y monitorización de procesos, shell sencillo, y multiprogramado y ejemplos simples de hilos
Tema 7: Comunicación y sincronización entre procesos e hilos
- Conceptos de concurrencia, recurso compartido, condición de carrera y acceso exclusivo
- Secciones críticas de código. Mecanismos básicos de acceso exclusivo a secciones críticas
- Comunicación con paso de mensajes mediante buzones
- Comunicación y sincronización mediante hilos
- Llamadas al sistema relacionadas con la comunicación y sincronización entre procesos e hilos
- Modelo de gestión de recursos basado en el esquema cliente-servidor. Ejemplos de gestores de recursos (drivers)
- Prácticas: comunicación y sincronización entre procesos (mediante pipes) e hilos
MetodologíaAlternar navegación
Esta asignatura se basa en la visión funcional de los sistemas operativos y en la interfaz de programación de aplicaciones (API de sus siglas en inglés). Por ello, aunque siempre basándose en los conceptos teóricos que la respaldan, va a tener una gran componente práctica. Para ello se van a utilizar varias metodologías docentes, desde la clase magistral a metodologías más activas como el PBL (Project Based Learning) o pBL (problem Based Learning) y actividades de laboratorio.
Sistemas de evaluaciónAlternar navegación
EVALUACIÓN CONTINUA
Los sistemas de evaluación que se contemplan son el sistema de evaluación continua y el sistema de evaluación final. El sistema de evaluación continua es el que se utilizará de forma preferente, según se indica en la normativa actual de la UPV/EHU. El/la estudiante que decidiese optar por la evaluación final, deberá informar al profesorado responsable de la asignatura de acuerdo al modo y a los plazos establecidos en la normativa vigente.
El modo de evaluación continua se basa en las siguientes tres pruebas de evaluación:
- Cuestionarios de evaluación individual: 60%
- Trabajos Prácticos: cuaderno con el código desarrollado, especificaciones, resultados de verificación de las prácticas propuestas y entrevista posterior asociada (que deberá realizarse antes de la prueba final): 30%
- (Otros) Cuestionarios de evaluación individual específicos sobre el trabajo desarrollado: 10%
Para superar la asignatura es necesario que cada estudiante:
- Realice y entregue todas las pruebas de evaluación
- Obtenga al menos un 40% de la evaluación de cada una de las pruebas
- La nota media final con todas las pruebas sea al menos de 5 sobre 10
EVALUACIÓN FINAL
Para quienes no sigan la evaluación continua se prevé el siguiente mecanismo de evaluación:
- Una prueba final que incluye preguntas de tipo teórico y realización de ejercicios prácticos (análisis de código, diseño/programación de utilidades...): 80%
- La realización y entrega de un trabajo práctico junto con una entrevista posterior asociada (y que deberá realizarse antes de la prueba final): 20%
Para superar la asignatura es necesario que cada estudiante:
- Realice y entregue todas las pruebas de evaluación
- Obtenga al menos un 40% de la evaluación de cada una de las pruebas
- La nota media final con todas las pruebas sea al menos de 5 sobre 10
Materiales de uso obligatorioAlternar navegación
El material disponible en el aula virtual (eGela) de la asignatura, servidor Linux de la asignatura, sistema operativo Linux, manuales y herramientas y programas C que se proporcionarán.
BibliografíaAlternar navegación
Bibliografía básica
C. Rodríguez, I. Alegria, J. González, A. Lafuente: Descripción Funcional de los Sistemas Operativos. Síntesis, 1994.
F.M. Márquez: UNIX. Programación Avanzada 3ª Edición. Rama, 2004.
B.W. Kernighan, R. Pike: The Unix Programming Environment, Prentice-Hall, 1984.
M. Rochkind: Advanced Unix Programming, Addison-Wesley, 2004.
B.W. Kernighan, D.M.Ritchie, The C Programming Language, Prentice-Hall, 1988.
W. R Stevens, S. A. Rago, Advanced Programming in the UNIX® Environment Third Edition, 2013
M. Kerrisk. The Linux Programming Interface No Starch Press, 2010. http://man7.org/tlpi/
Afzal, Introducción a UNIX. Un enfoque práctico. Afzal. Prentice-Hall, 1997.
Remzi H. & Andrea C. Arpaci-Dusseau: R. Arpaci-Dusseau, A. Arpaci-Dusseau: Operating Systems: Three Easy Pieces, Arpaci-Dusseau Books, 2015, http://pages.cs.wisc.edu/~remzi/OSTEP/
Bibliografía de profundización
A. Silberschatz, P.B. Galvin, G. Gagne: Operating System Concepts (10th edition), Wiley , 2018. http://os-book.com/OS10/index.html
W. Stallings: Sistemas Operativos (Quinta edición). Prentice-Hall, 2005.
A.S. Tanenbaum: Modern Operating Systems (3rd Edition), Prentice-Hall, 2008.
GruposAlternar navegación
16 Teórico (Castellano - Tarde)Mostrar/ocultar subpáginas
Semanas | Lunes | Martes | Miércoles | Jueves | Viernes |
---|---|---|---|---|---|
16-30 | 15:30-17:00 | 14:00-15:30 |
Profesorado
16 P. Laboratorio-1 (Castellano - Tarde)Mostrar/ocultar subpáginas
Semanas | Lunes | Martes | Miércoles | Jueves | Viernes |
---|---|---|---|---|---|
16-30 | 12:00-13:30 |
Profesorado
16 P. Laboratorio-2 (Castellano - Tarde)Mostrar/ocultar subpáginas
Semanas | Lunes | Martes | Miércoles | Jueves | Viernes |
---|---|---|---|---|---|
16-30 | 17:00-18:30 |
Profesorado
16 P. Laboratorio-3 (Castellano - Tarde)Mostrar/ocultar subpáginas
Semanas | Lunes | Martes | Miércoles | Jueves | Viernes |
---|---|---|---|---|---|
16-30 | 12:00-13:30 |
Profesorado
31 Teórico (Euskera - Mañana)Mostrar/ocultar subpáginas
Semanas | Lunes | Martes | Miércoles | Jueves | Viernes |
---|---|---|---|---|---|
16-30 | 10:30-12:00 | 09:00-10:30 |
Profesorado
31 P. Laboratorio-3 (Euskera - Mañana)Mostrar/ocultar subpáginas
Semanas | Lunes | Martes | Miércoles | Jueves | Viernes |
---|---|---|---|---|---|
16-30 | 14:00-15:25 |
Profesorado
31 P. Laboratorio-1 (Euskera - Mañana)Mostrar/ocultar subpáginas
Semanas | Lunes | Martes | Miércoles | Jueves | Viernes |
---|---|---|---|---|---|
16-30 | 12:00-13:30 |
Profesorado
31 P. Laboratorio-2 (Euskera - Mañana)Mostrar/ocultar subpáginas
Semanas | Lunes | Martes | Miércoles | Jueves | Viernes |
---|---|---|---|---|---|
16-30 | 12:00-13:30 |