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
2021/22
Curso
2
Nº Créditos
6
Idiomas
Castellano
Euskera
Inglés

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 el curso, el estudiante deberá ser capaz de:

- Conocer las características de los diferentes tipos de sistemas operativos como sistemas de tiempo compartido, sistemas distribuidos, 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 usuarios o desarrolladores.

TemarioAlternar navegación

Tema 1: Introducción.

1.1 Introducción

1.2 Visión funcional de un Sistema Operativo (SO)

1.3 Funciones e Interfaces de un SO

1.4 Tipos de SOs según su funcionalidad (Evolución y Clasificación)

1.5 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.

2.1 Arquitectura soporte de los Sistemas Operativos (E/S)

2.2 Mecanismo de llamadas a rutinas de Entrada/Salida

2.3 Rutinas residentes.

2.4 Mecanismo de acceso al SO: llamadas al sistema



Tema 3: Entrada-salida y ficheros.

3.1 Introducción al concepto de Independencia del Dispositivo, redirecciones.

3.2 Llamadas al sistema de E/S y funciones de biblioteca estándar de C.

3.3 Modos de operación sobre dispositivos y ficheros

3.4 Organización del Sistema de ficheros. Espacios de nombres, directorios.

3.5 “Buffering” de E/S: En las bibliotecas de E/S y en las llamadas al sistema.

3.6 Acceso avanzado a las propiedades de los dispositivos.

3.7 Ejercicios y proyecto de E/S.



Tema 4: Gestión de usuarios y seguridad.

4.1 Sistemas multiusuario.

4.2 Mecanismos de protección.

4.3 Llamadas al sistema relacionadas con la seguridad

4.4 Prácticas: manejo de derechos de acceso desde el Shell. Proyecto de E/S + Multiusuario



Tema 5: Gestión de la memoria

5.1 Carga y ubicación de programas en sistemas con uno o varios programas en memoria.

5.2 Direccionamiento físico y virtual.

5.3 Reubicación estática y dinámica. Código reentrante.

5.4. Soporte para sistemas de memoria virtual.

5.5 Librerías de enlace dinámico.

5.6 Llamadas al sistema operativo relacionadas con la carga de programas y la gestión de la memoria.

5.7 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.

6.1 Concepto de flujo y contexto de ejecución.

6.2 Sistemas multiprogramados y sistemas multihilo.

6.3 Concepto de proceso (modelo Unix), estados y grafo de transición.

6.4 Cambio de contexto.

6.5 Planificación de procesos y políticas de planificación básicas.

6.6 Llamadas al sistema y funciones de biblioteca relacionadas con el control de procesos e hilos.

6.7 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

7.1 Conceptos de concurrencia, recurso compartido, condición de carrera y acceso exclusivo.

7.2 Secciones críticas de código. Mecanismos básicos de acceso exclusivo a secciones críticas.

7.4 Comunicación con paso de mensajes mediante buzones. Comunicación y sincronización mediante hilos

7.5 Llamadas al sistema relacionadas con la comunicación y sincronización entre procesos e hilos.

7.6 Modelo de gestión de recursos basado en el esquema cliente-servidor. Ejemplos de gestores de recursos (drivers).

7.7 Prácticas: comunicación y sincronización entre procesos (mediante pipes) e hilos.



MetodologíaAlternar navegación

La asignatura se desarrolla mediante un modelo de evaluación continua, basada en plantear una serie de problemas cuya resolución proporciona la adquisición de las competencias definidas. Como consecuencia, la división formal en horas de clase y de laboratorio no se seguirá de modo estricto.

Sistemas de evaluaciónAlternar navegación

La preinscripción en el modo de evaluación continua se realizará en las fechas establecidas. La preinscripción pasará a ser definitiva tras la confirmación de la solicitud por parte del estudiante en las fechas que se establezcan y previa verificación del rendimiento parcial por parte del profesorado.



EVALUACIÓN CONTINUA



Para la parte de la asignatura basada en 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.



NOTA: Como directriz del centro, en caso de volver al confinamiento, las pruebas de evaluación (tanto continua como final) se realizarán de forma telemática a través de cuestionarios, entrevistas y/o entregas de eGela y mediante conexión BBC.



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...)

- La realización y entrega de un trabajo práctico y una entrevista sobre el mismo.



- Cuestionarios de evaluación individual: 80%.

- Cuaderno con el código desarrollado, especificaciones, resultados de verificación del trabajo práctico y entrevista: 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.



NOTA: Como directriz del centro, en caso de volver al confinamiento, las pruebas de evaluación (tanto continua como final) se realizarán de forma telemática a través de cuestionarios, entrevistas y/o entregas de eGela y mediante conexión BBC.

Materiales de uso obligatorioAlternar navegación

Sitio 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
  • LARRAZA MENDILUZE, EDURNE

GruposAlternar navegación

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

Calendario
SemanasLunesMartesMiércolesJuevesViernes
16-30

09:00-10:30

10:45-12:15

Profesorado

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

Calendario
SemanasLunesMartesMiércolesJuevesViernes
16-30

15:00-16:30

Profesorado

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

Calendario
SemanasLunesMartesMiércolesJuevesViernes
16-30

12:30-14:00

Profesorado

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

Calendario
SemanasLunesMartesMiércolesJuevesViernes
16-30

12:30-14:00

Profesorado

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

Calendario
SemanasLunesMartesMiércolesJuevesViernes
16-30

09:00-10:30

10:45-12:15

Profesorado

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

Calendario
SemanasLunesMartesMiércolesJuevesViernes
16-30

12:30-14:00

Profesorado

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

Calendario
SemanasLunesMartesMiércolesJuevesViernes
16-30

12:30-14:00

Profesorado

61 Teórico (Inglés - Mañana)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
16-30

09:00-10:30

10:45-12:15

Profesorado

61 P. Laboratorio-2 (Inglés - Mañana)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
16-30

15:00-16:30

Profesorado

61 P. Laboratorio-1 (Inglés - Mañana)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
16-30

12:30-14:00

Profesorado