Grado en International Computer Engineering La Salle Campus Barcelona

Grado en International Computer Engineering

El Grado en Ingeniería Informática de La Salle es el único programa de grado en Barcelona que te proporcionará las habilidades y el conocimiento para dar respuesta a las necesidades internacionales del sector de la informática y de los negocios.

Sistemas operativos

Descripción: 

Un sistema operativo es la capa de software que gestiona los recursos del hardware y proporciona los servicios necesarios para la ejecución de programas y aplicaciones. Los sistemas operativos actuales integran un número creciente de funcionalidades y desempeñan un papel fundamental en el funcionamiento de los sistemas informáticos.

El objetivo de la asignatura es proporcionar al estudiante una visión global del funcionamiento y la estructura de un sistema operativo, así como de sus principales componentes. A lo largo del curso se profundiza en los conceptos fundamentales relacionados con la gestión de procesos, la planificación, la concurrencia, la sincronización, la comunicación entre procesos y los mecanismos básicos que ofrece el núcleo del sistema operativo. Los detalles específicos de otros subsistemas y módulos se tratan en asignaturas más especializadas del plan de estudios.

Desde el punto de vista práctico, la asignatura incluye actividades y prácticas de programación orientadas a implementar y experimentar con diferentes funcionalidades, mecanismos, políticas y técnicas propias de los sistemas operativos. Este trabajo se complementa con ejemplos y ejercicios que permiten consolidar los contenidos teóricos, comprender su funcionamiento y aplicarlos a la resolución de problemas reales.

Tipo asignatura
Obligatoria no de Primer
Semestre
Primero
Curso
3
Créditos
5.00

Profesores Titulares

Conocimientos previos: 

Se requieren conocimientos previos de programación, especialmente de algorítmica, estructuras de datos y programación estructurada, así como conocimientos básicos sobre el uso de un sistema operativo. También se espera que el estudiante haya adquirido unos conocimientos mínimos de programación en C, incluidos el uso de punteros y la gestión de memoria dinámica.

Objetivos: 

Los estudiantes que cursen la asignatura de Sistemas Operativos deberán adquirir los siguientes conocimientos y desarrollar las siguientes habilidades:

  1. Comprender las funciones de un sistema operativo, su estructura y su relación con el resto de los componentes de un sistema informático.
  2. Conocer los conceptos, las técnicas y la terminología asociados al funcionamiento, el diseño y la implementación de los principales componentes de un sistema operativo.
  3. Saber aplicar estos conceptos y técnicas mediante el diseño y el desarrollo de software que implemente mecanismos propios de los sistemas operativos.
  4. Saber comunicarse correctamente, tanto oralmente como por escrito, utilizando la terminología técnica adecuada.
  5. Saber diseñar y desarrollar software modular, estructurado, mantenible y adecuadamente documentado.
  6. Saber analizar y resolver problemas relacionados con los contenidos de la asignatura, tanto individualmente como en equipo.

Contenidos: 

Durante el curso académico se desarrollarán los siguientes contenidos:

CONTENIDOS CONCEPTUALES

Tema 1. Introducción a los sistemas operativos y al núcleo

1. Fundamentos de los sistemas informáticos

  • Componentes básicos de un sistema informático
  • Ejecución de instrucciones
  • Interrupciones y gestión de múltiples interrupciones
  • Multiprogramación

2. El sistema operativo dentro del sistema informático

  • Ubicación y función del sistema operativo
  • Funciones y servicios de los sistemas operativos
  • Evolución de los sistemas operativos
  • Principales componentes de un sistema operativo

3. Procesos y ejecución

  • Concepto y estados de un proceso
  • Representación de los procesos: PCB (Process Control Block)
  • Cambio de contexto
  • El dispatcher

Tema 2. Planificación de procesos

1. Introducción a la planificación de procesos

2. Criterios y métricas de planificación

3. Algoritmos básicos de planificación en sistemas monoprocesador

  • FCFS (First Come, First Served)
  • SJF/SPN (Shortest Job First / Shortest Process Next)
  • SRT (Shortest Remaining Time)
  • Planificación por prioridades
  • Round Robin o turno rotatorio
  • HRRN (Highest Response Ratio Next)

4. Simulación y análisis comparativo de los algoritmos de planificación

  • Configuración de procesos y cargas de trabajo
  • Uso del simulador educativo EPSSim
  • Interpretación de las métricas obtenidas
  • Comparación del comportamiento de los diferentes algoritmos
  • Análisis del efecto de los parámetros de planificación

Tema 3. Concurrencia, sincronización y exclusión mutua

1. Concurrencia y compartición de datos

  • Ejecución concurrente de procesos
  • Condiciones de carrera
  • Secciones críticas

2. Exclusión mutua y sincronización

  • El problema de la exclusión mutua
  • El problema de los productores y consumidores
  • Conceptos asociados: inanición (starvation), interbloqueo (deadlock) y equidad (fairness)

3. Semáforos

  • Concepto y operaciones
  • Utilización de semáforos
  • Patrones de sincronización y exclusión mutua
  • Semáforos en C

CONTENIDOS PRÁCTICOS

Tema 4. Llamadas al sistema

  1. Entorno de trabajo
  2. File descriptors
  3. Signals
  4. Threads
  5. fork, pipes y exec
  6. Memoria compartida
  7. Sockets
  8. select
  9. Colas de mensajes
  10. Semáforos

Metodología: 

La asignatura tiene un funcionamiento semanal basado en dos sesiones lectivas:

  • Primera sesión (2 h): se introducen los conceptos y las herramientas necesarias para desarrollar los contenidos de la asignatura. Las explicaciones se complementan con ejemplos, resolución de ejercicios y discusión de diferentes enfoques de diseño.
  • Segunda sesión (2 h): se realiza una sesión práctica en la que los estudiantes, habitualmente en grupo, deben diseñar e implementar en lenguaje C un programa que aplique los conceptos y las herramientas trabajados. La actividad debe entregarse al final de la sesión.

Además, a lo largo del curso se desarrolla una práctica de programación de mayor alcance, estructurada en diferentes fases, que integra los principales contenidos de la asignatura y permite profundizar en el diseño, la implementación, la depuración y la documentación de una aplicación más compleja.

Evaluación: 

Los métodos utilizados para evaluar la asignatura son los siguientes:










A. Exámenes
B. Exámenes tipo test
C. Ejercicios realizados fuera del aula
D. Informes o trabajos realizados en grupo
E. Trabajos prácticos con ordenador
F. Participación en clase
G. Otros: entrevistas individuales.

La asignatura tiene una duración semestral y consta de dos partes diferenciadas: Conocimientos y Práctica. Ambas partes se evalúan de manera independiente y es necesario obtener una calificación igual o superior a 5 en cada una de ellas para superar la asignatura.

La nota final se calculará según la fórmula:

Nota_Final = 50% · Conocimientos + 50% · Práctica

siempre que las calificaciones de Conocimientos y Práctica sean ambas iguales o superiores a 5.

En caso contrario:

Nota_Final = mínimo(Conocimientos, Práctica)

Por lo tanto, es necesario superar por separado las dos partes de la asignatura y una calificación igual o superior a 5 en una parte no puede compensar una calificación inferior a 5 en la otra.

Evaluación de Conocimientos

La parte de Conocimientos se evalúa mediante el examen de mitad de semestre (Ex_Midterm), el examen correspondiente al Tema 3 (Ex_T3) y la nota de las sesiones de laboratorio (Nota_Lab).

La nota de exámenes se calcula de la siguiente manera:

Nota_Ex = 25% · Ex_Midterm + 75% · Ex_T3

Convocatoria ordinaria

Para aplicar esta ponderación, es necesario obtener una calificación igual o superior a 5 tanto en el Ex_Midterm como en el Ex_T3. Si se cumple este requisito:

Conocimientos = 70% · Nota_Ex + 30% · Nota_Lab

Si el Ex_Midterm o el Ex_T3 obtiene una calificación inferior a 5:

Conocimientos = mínimo(Ex_Midterm, Ex_T3)

Por lo tanto, la Nota_Lab solo pondera cuando ambos exámenes han obtenido individualmente una calificación igual o superior a 5 y no puede compensar una calificación inferior a 5 en ninguno de ellos.

Recuperación

En la recuperación se podrán recuperar el Ex_Midterm, el Ex_T3 o ambos, según corresponda. Para superar la parte de Conocimientos es necesario obtener una calificación igual o superior a 5 en cada uno de los dos exámenes.

Cuando ambos exámenes tengan una calificación igual o superior a 5:

Conocimientos = Nota_Ex

Si alguno de los dos exámenes obtiene una calificación inferior a 5:

Conocimientos = mínimo(Ex_Midterm, Ex_T3)

La Nota_Lab forma parte de la evaluación continua y solo pondera durante la convocatoria ordinaria. Por lo tanto, no interviene en el cálculo de Conocimientos durante la recuperación.

Sesiones de laboratorio

Durante el curso se realizarán nueve sesiones de laboratorio ordinarias, todas evaluables, y una sesión adicional opcional.

La Nota_Lab se calculará a partir de las sesiones computables. Si el estudiante realiza la sesión opcional, la calificación obtenida sustituirá, si procede, a la calificación más baja de las nueve sesiones ordinarias.

Para considerar una sesión realizada, el código entregado deberá mostrar un trabajo efectivo y suficiente sobre el problema planteado. Una sesión entregada pero no trabajada suficientemente será calificada con un 1 y no se considerará realizada. Las sesiones no entregadas constarán como no presentadas (NP).

En caso de ausencia justificada, se podrán excluir del cálculo de la Nota_Lab un máximo de dos sesiones no presentadas durante el curso. A partir de la tercera ausencia, las sesiones no presentadas computarán con valor 0 a efectos del cálculo de la Nota_Lab, aunque la ausencia esté justificada. Las sesiones no presentadas sin justificación computarán igualmente con valor 0 a efectos de este cálculo.

Si el estudiante realiza todas las sesiones ordinarias computables, se le garantizará una Nota_Lab mínima de 5, aunque la media aritmética obtenida sea inferior. Esta garantía no modifica las calificaciones individuales de las sesiones.

Opción de exención del Ex_T3

El estudiante podrá optar a quedar exento de realizar el Ex_T3 de la convocatoria ordinaria.

El cumplimiento de los requisitos permite optar a la exención, pero no garantiza su concesión. La decisión final corresponde al profesorado y se basa en el trabajo continuado, la asistencia, la participación y los conocimientos individuales demostrados durante el curso.

Para poder optar a ella es necesario:

  1. Haber presentado y aprobado la Práctica en la primera presentación ordinaria.
  2. Haber entregado y trabajado la sesión de laboratorio opcional. No es necesario aprobarla.
  3. Haber obtenido una media natural igual o superior a 5 en las sesiones de laboratorio.
  4. Haber obtenido una calificación igual o superior a 5 en el Ex_Midterm en convocatoria ordinaria.
  5. Haber asistido y participado adecuadamente en todas las sesiones lectivas del Tema 3.
  6. Haber demostrado individualmente unos conocimientos suficientes del Tema 3 durante la entrevista de la primera presentación ordinaria de la Práctica.

La media natural es la media de las sesiones computables después de sustituir, si procede, la calificación más baja por la de la sesión opcional, pero antes de aplicar la garantía de Nota_Lab mínima de 5. Una Nota_Lab de 5 obtenida exclusivamente mediante esta garantía no permite cumplir el requisito de media natural igual o superior a 5.

La entrevista de la primera presentación ordinaria de la Práctica incluye una valoración general de la Práctica y una valoración individual de los conocimientos del Tema 3. Un estudiante puede aprobar la Práctica, pero no obtener la exención si la valoración individual del Tema 3 no es suficiente.

Para los estudiantes que cumplan los requisitos y sean considerados candidatos a la exención, se calculará la siguiente fórmula:

Nota_Exención = (50% · Práctica + 30% · Nota_Lab + 20% · Ex_Midterm) · Nota_Participación

La Nota_Participación es un factor comprendido entre 0,8 y 1,2, determinado a partir de la asistencia, la participación activa y el trabajo continuado demostrado durante todas las sesiones lectivas del Tema 3.

La Nota_Exención corresponde directamente a la nota final de la asignatura y sustituye al sistema ordinario de cálculo de la Nota_Final.

La exención solo se concederá si el resultado de la fórmula es igual o superior a 5. Si el resultado es inferior a 5, el estudiante deberá realizar el Ex_T3. La calificación máxima de la Nota_Exención será 10.

El estudiante podrá renunciar a la Nota_Exención y presentarse voluntariamente al Ex_T3 si considera que puede obtener una calificación superior. Presentarse al examen comportará la renuncia definitiva a la Nota_Exención, que no podrá recuperarse ni aplicarse posteriormente.

Autoría, inteligencia artificial y fraude académico

Presentar una actividad en nombre propio implica asumir su autoría y conocer y comprender la totalidad del contenido entregado.

Se considera fraude presentar en nombre propio un código, una solución o una parte sustancial de una entrega que el estudiante no ha desarrollado o no comprende. El estudiante deberá ser capaz de explicar su funcionamiento, justificar las decisiones de diseño, describir las herramientas y los recursos utilizados y modificar o completar el código cuando se le solicite.

El uso de herramientas de inteligencia artificial está permitido como apoyo, de acuerdo con el nivel 4 de la Escala de Evaluación de la Inteligencia Artificial (AIAS). La IA puede asistir al estudiante en partes específicas del trabajo, pero no puede sustituir su aprendizaje, la resolución del problema, la toma de decisiones ni la comprensión del resultado.

El estudiante es responsable de revisar, validar y comprender cualquier contenido generado o sugerido por estas herramientas. El uso relevante de IA deberá identificarse y documentarse según las indicaciones de cada actividad y, en el caso de la Práctica, en la memoria.

En el caso de la memoria de la Práctica, no se admitirán memorias redactadas en Markdown o generadas mediante Python, aunque posteriormente se hayan convertido a PDF.

Cuando una entrega presente indicios de copia, falta de autoría, uso mecánico de la IA o cualquier otra posible forma de fraude académico, el profesorado convocará al estudiante a una entrevista individual de validación.

El Ex_Midterm, el Ex_T3, las fases de la Práctica, la entrega final y las entrevistas asociadas son actividades de evaluación altamente significativas. Las sesiones de laboratorio son actividades de evaluación moderadamente significativas.

En caso de que se acredite fraude académico, se aplicarán el protocolo y las consecuencias establecidos por la normativa académica de la Universidad.





 

 


 




Criterios evaluación: 

Los criterios de evaluación asociados a los objetivos de la asignatura son los siguientes:

Objetivo 1. Comprender las funciones y la estructura de un sistema operativo

  • Identificar y explicar las funciones, los componentes y la estructura básica de un sistema operativo, así como su relación con el hardware y con el resto del sistema informático. [A, B, C, F]
  • Utilizar correctamente los conceptos y la terminología propios de la asignatura. [A, B, F, G]

Objetivo 2. Conocer los principales mecanismos y técnicas de los sistemas operativos

  • Analizar y resolver problemas de planificación de procesos, interpretando correctamente los algoritmos y las métricas asociadas. [A, B, C, F]
  • Identificar y aplicar mecanismos de concurrencia, sincronización y exclusión mutua en problemas con procesos concurrentes. [A, C, E, G]
  • Relacionar los diferentes componentes y mecanismos estudiados con el funcionamiento global del sistema operativo. [A, B, F]

Objetivo 3. Aplicar los conocimientos mediante el desarrollo de software

  • Diseñar e implementar en lenguaje C programas que utilicen llamadas al sistema y mecanismos propios de los sistemas operativos. [C, E, G]
  • Seleccionar y aplicar las técnicas adecuadas para resolver cada problema, justificando las decisiones de diseño adoptadas. [C, E, G]

Objetivo 4. Comunicarse utilizando la terminología técnica adecuada

  • Redactar informes y memorias técnicas claros, precisos y adecuadamente estructurados. [D]
  • Explicar y defender oralmente el diseño, el funcionamiento y la implementación de las soluciones desarrolladas. [F, G]

Objetivo 5. Desarrollar software modular y documentado

  • Implementar programas correctamente estructurados, modulares y con una documentación interna adecuada. [E]
  • Elaborar una memoria que describa y justifique la arquitectura, el diseño y el funcionamiento de la implementación. [D, G]

Objetivo 6. Analizar y resolver problemas individualmente y en equipo

  • Analizar problemas, proponer alternativas y justificar la solución adoptada. [A, C, E, F, G]
  • Trabajar de manera coordinada en equipo, distribuyendo las tareas sin perder el conocimiento global de la solución desarrollada. [D, E, G]

Bibliografía básica: 

CANALETA, X. (2020). Exercicis i problemes d’examen de sistemes operatius. Publicacions La Salle.

HARBISON, S. P., i STEELE, G. L. (2002). C: A Reference Manual (5a ed.). Prentice Hall.

PETERSON, J. L., i SILBERSCHATZ, A. (1989). Sistemas operativos. Editorial Reverté. ISBN 84-291-2693-7.

SALVADOR, J. (2011). Introducció al llenguatge de programació C. Publicacions La Salle.

SALVADOR, J. (2014). Programació en C per a sistemes UNIX. Publicacions La Salle.

SILBERSCHATZ, A., GALVIN, P. B., i GAGNE, G. (2002). Sistemas operativos. Editorial Limusa. ISBN 968-18-6168-X.

STALLINGS, W. (2005). Sistemas operativos (5a ed.). Pearson Prentice Hall. ISBN 84-205-4462-0.

PERKINS, M., FURZE, L., ROE, J., i MACVAUGH, J. (2024). “The Artificial Intelligence Assessment Scale (AIAS): A Framework for Ethical Integration of Generative AI in Educational Assessment”. Journal of University Teaching and Learning Practice, 21(6). doi:10.53761/q3azde36.

Material complementario: 

STEVENS, W. R., FENNER, B., i RUDOFF, A. M. (2004). UNIX Network Programming. Volume 1: The Sockets Networking API (3a ed.). Addison-Wesley Professional. ISBN 0-13-141155-1.

STEVENS, W. R., i RAGO, S. A. (2008). Advanced Programming in the UNIX Environment (2a ed.). Addison-Wesley Professional.

TANENBAUM, A. S. (2009). Sistemas operativos modernos (3a ed.). Pearson Educación. ISBN 978-607-442-046-3.