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

Distribución de horas por tipo de enseñanza
Tipo de docenciaHoras de docencia presencialHoras de actividad no presencial del alumno/a
Magistral4050
P. Laboratorio2040

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

Calendario
SemanasLunesMartesMiércolesJuevesViernes
16-30

15:30-17:00

14:00-15:30

Profesorado

16 P. Laboratorio-1 (Castellano - Tarde)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
16-30

12:00-13:30

Profesorado

16 P. Laboratorio-2 (Castellano - Tarde)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
16-30

17:00-18:30

Profesorado

16 P. Laboratorio-3 (Castellano - Tarde)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
16-30

12:00-13:30

Profesorado

31 Teórico (Euskera - Mañana)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
16-30

10:30-12:00

09:00-10:30

Profesorado

31 P. Laboratorio-3 (Euskera - Mañana)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
16-30

14:00-15:25

Profesorado

31 P. Laboratorio-1 (Euskera - Mañana)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
16-30

12:00-13:30

Profesorado

31 P. Laboratorio-2 (Euskera - Mañana)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
16-30

12:00-13:30

Profesorado