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
2023/24
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, cumpliendo las condiciones para continuar en el sistema de evaluación continua, decidiese optar por la evaluación final, deberá informar al profesorado responsable de la asignatura en los plazos y forma indicados a continuación: vía eGela, mediante el correspondiente enlace en el apartado de evaluación, como muy tarde dos días después de conocer los resultados del segundo examen parcial.



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: 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 y una entrevista sobre el mismo: 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.

Tribunal de convocatorias 5ª, 6ª y excepcionalAlternar navegación

  • ALVAREZ BALBAS, GONZALO
  • CORTIÑAS RODRIGUEZ, ROBERTO
  • LARREA ALAVA, MIKEL

GruposAlternar navegación

01 Teórico (Castellano - Mañana)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
16-30

10:30-12:00

09:00-10:30

Profesorado

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

Calendario
SemanasLunesMartesMiércolesJuevesViernes
16-30

14:00-15:30

Profesorado

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

Calendario
SemanasLunesMartesMiércolesJuevesViernes
16-30

12:00-13:30

Profesorado

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

Calendario
SemanasLunesMartesMiércolesJuevesViernes
16-30

12:00-13:30

Profesorado

46 Teórico (Euskera - Tarde)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
16-30

15:30-17:00

14:00-15:30

Profesorado

46 P. Laboratorio-1 (Euskera - Tarde)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
16-30

17:00-18:30

Profesorado

46 P. Laboratorio-2 (Euskera - Tarde)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
16-30

17:00-18:30

Profesorado

46 P. Laboratorio-3 (Euskera - Tarde)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
16-30

12:00-13:30

Profesorado