Presentació del curs

Sistemes Operatius · 2026-27

Jordi Mateo Fornés

Presentacions

Qui soc?

  • Enginyer i Doctor en Informàtica per la UdL.

Docència

  • Professor agregat a la UdL des de 2019.
  • Sistemes Operatius (GTIDIC, GEI).
  • Administració de Sistemes (GTIDIC, GEI).
  • Desenvolupament d’Aplicacions per a dispositius mòbils (GTIDIC).
  • Cloud Computing (Master in Health Data Science).
  • High Performance Computing (Màster en Enginyeria Informàtica).

Qui soc?

Recerca

Qui sou?

Presenteu-vos breument amb

  • Nom i cognoms
  • Què espereu aprendre en aquest curs
  • Experència prèvia amb Linux/Unix i programació en C

Introducció al curs

Presentació

Benvinguts a Sistemes Operatius

char text[] = "Aquesta NO és una assignatura\n\
      centrada en la programació\n\
      PERÒ programarem MOLT!\n";
ssize_t bytes = write(1, text, sizeof(text) - 1);
  • Sessions han de ser interactives i participatives.
  • Pregunteu, interrompeu-me, plantegeu dubtes i comentaris en qualsevol moment.
text="Aquesta assignatura NO és un MONÒLEG." 
echo $text

Requisits previs

  • Estructura de computadors I.
  • Programació I.
  • Programació II.

Per què estudiar Sistemes Operatius?

Què passa realment quan executeu…?

./programa
  • ./programa és un executable
  • Es carrega a memòria
  • Se li assignen recursos
  • Es converteix en un procés.

Qui gestiona tot això?

  • El sistema operatiu

Objectius (Globals)

  1. Entendre els Sistemes Operatius: Com estan dissenyats i quins components (o mòduls) els formen.
  2. Coneixer els seus serveis: Quines funcions proporcionen a usuaris i aplicacions.
  3. Aprendre a programar amb ells: Com utilitzar els serveis del sistema operatiu per crear aplicacions de manera eficient, tant en espai d’usuari com de nucli.
  4. Avaluar críticament les seves polítiques: Analitzar com el sistema operatiu gestiona els seus recursos (CPU, memòria) i comparar diferents mètodes per fer-ho.

Objectius (Específics)

  • Conèixer els sistemes operatius Unix/Linux (en concret Debian).
  • Interioritzar les bases de programació C per millorar les vostres habilitats en altres llenguatges.
  • Desenvolupar programari a nivell de sistema en C, tant en espai d’usuari com en espai de nucli, comprenent al mateix temps com funcionen els Sistemes Operatius basats en Unix.

Metodologia

Sessions de teoria

  • Conceptes fonamentals de cada unitat, exemples pràctics i casos reals.
  • Les sessions tenen un caràcter participatiu i preparen per a les activitats pràctiques i les proves competencials.
  • 4h/setmana: dilluns 2h + dimarts 1h + dimecres 1h, tots els grups junts.

Pralabs

  • Activitats Hands-On, CodeLabs i projectes guiats.
  • Treball individual o en petits grups.
  • 2h/setmana per grup de laboratori, mateix contingut per als dos grups.

Treball autònom

  • Activitats i reptes proposats.
  • Preparació de les proves competencials.
  • Lectura de documentació tècnica.
  • Visualització dels materials proporcionats.

Temari

Bloc 1 · Desenvolupament de Programari en Espai d’Usuari

Aplicació de les tècniques de programació de sistemes en llenguatge C, construcció de programari, ús de la interfície POSIX, gestió de memòria i eines de depuració i anàlisi.

  • Arquitectura i funcionament dels sistemes operatius.
  • Espai d’usuari i espai de nucli.
  • Programació de sistemes en llenguatge C.
  • Construcció de programari i entorn de desenvolupament.
  • Interfície POSIX i crides a sistema.
  • Gestió de memòria en programes C.
  • Depuració, anàlisi i estructura dels executables Linux.

Bloc 2 · Execució i Comunicació de Processos

Desenvolupament d’aplicacions basades en processos, utilitzant els mecanismes de creació, execució, comunicació i control disponibles en sistemes Linux.

  • Model d’execució de processos.
  • Creació, gestió i control de processos.
  • Comunicació i sincronització bàsica entre processos.
  • Senyals i mecanismes de control.
  • Gestió de processos en sistemes Linux.

Bloc 3 · Planificació i Coordinació de Recursos

Implementació i anàlisi de mecanismes de planificació del processador, així com estudi experimental de situacions d’interbloqueig i de les seves estratègies de resolució.

  • Objectius i criteris de planificació.
  • Algorismes de planificació del processador.
  • Planificació en sistemes Linux.
  • Interbloqueig: prevenció, detecció i recuperació.

Bloc 4 · Gestió de Memòria i Memòria Virtual

Desenvolupament de components relacionats amb la gestió de memòria i experimentació amb els mecanismes de memòria virtual proporcionats pel sistema operatiu.

  • Organització i gestió de la memòria.
  • Tècniques d’assignació i protecció.
  • Memòria virtual i paginació sota demanda.
  • Algorismes de reemplaçament i assignació de marcs.
  • Optimització del rendiment de la memòria.

Bloc 5 · Desenvolupament de Programari del Nucli Linux

Desenvolupament i modificació de components del nucli Linux, utilitzant mecanismes bàsics d’extensió, instrumentació i anàlisi del sistema.

  • Arquitectura del nucli Linux.
  • Desenvolupament de programari en espai de nucli.
  • Mòduls i mecanismes d’extensió del nucli.
  • Instrumentació i anàlisi del nucli Linux.
  • Tendències actuals en sistemes operatius.

Avaluació

Criteris d’Avaluació

Bloc Activitat d’avaluació Acrònim Ponderació Recuperable
Teòric 1 Examen Escrit Teòric 1 T1 25% Sí
Teòric 2 Examen Escrit Teòric 2 T2 25% Sí
Pràctic 1 Examen Competencial Pràctic 1 P1 15% No
Pràctic 2 Examen Competencial Pràctic 2 P2 15% No
Pràctic 3 Examen Competencial Pràctic 3 P3 10% No
Pràctic 4 Examen Competencial Pràctic 4 P4 10% No
Bonus Contribucions als materials oberts B +0,5 punts No
  • Per superar l’assignatura cal obtenir una nota final igual o superior a 5,0.
  • No s’estableix cap nota mínima en cap activitat d’avaluació.
  • Totes les activitats d’avaluació són individuals.

Càlcul de la nota final

\[ NF = \min( 0.25T1 + 0.25T2 + 0.15P1 + 0.15P2 + 0.1P3 + 0.1P4 + B,\ 10 ) \]

on:

  • B és el bonus per contribucions als materials docents.
  • 0 ≤ B ≤ 0,5.
  • La nota final no pot superar els 10 punts.

Abans de cada activitat d’avaluació es publicaran els criteris de correcció i els aspectes objecte d’avaluació.

Exàmens teòrics

Els exàmens teòrics T1 i T2 són proves escrites que avaluen els coneixements teòrics i pràctics adquirits durant el curs. Són individuals i presencials, en les dates establertes al calendari acadèmic.

No es permet

  • telèfons mòbils,
  • ordinadors portàtils,
  • tauletes,
  • rellotges,
  • calculadores.

Es permet

  • Es permet un únic full DIN A4, escrit exclusivament a mà pel mateix estudiant, per les dues cares.

  • No s’admeten documents impresos, fotocòpies, reproduccions mecàniques ni materials elaborats per terceres persones.

  • El full d’apunts s’ha d’entregar amb l’examen.

Recuperació dels exàmens teòrics

  • T1 i T2 són recuperables.
  • La recuperació es realitza durant la setmana de recuperació.
  • Cada prova de recuperació inclou únicament els continguts de l’examen teòric corresponent.
  • La qualificació obtinguda substitueix íntegrament la nota original.
  • Es pot recuperar un o tots dos exàmens teòrics.
  • Cada examen recuperat es realitza mitjançant una prova independent.

Exàmens competencials pràctics

Els exàmens competencials pràctics P1–P4:

  • Són individuals i presencials.
  • Es realitzen durant les sessions de pralab indicades al pla docent.
  • Es duen a terme als laboratoris del centre.
  • S’utilitzen els equips de l’aula.
  • Es realitzen sense accés a Internet ni a recursos externs, excepte els que el professorat autoritzi expressament.
  • Consisteixen en la resolució de tasques pràctiques en un entorn controlat.
  • S’utilitzen les eines i la documentació disponibles als equips del laboratori.
  • No són recuperables.

Bonus — Contribucions als materials

Lliurament — Fins a 0,5 punts addicionals

Es poden fer contribucions com:

  • Creació de contingut nou.
  • Millora de la documentació existent.
  • Revisió i correcció de materials.

Condicions:

  • S’han de documentar i presentar mitjançant pull requests al repositori de l’assignatura.
  • Han de ser rellevants, significatives i aportar valor afegit.
  • Han de ser acceptades pel professorat.
  • La puntuació depèn de la qualitat i l’impacte de la contribució.

Assistència i activitats d’avaluació

Assistència

  • L’assistència a les classes de teoria i a les sessions de laboratori no és obligatòria.
  • Es recomana assistir-hi per facilitar el seguiment de l’assignatura i la preparació de les activitats d’avaluació.

Dates

Activitat d’avaluació Data G1 Data G2
Examen Competencial Pràctic 1 29/09/2026 30/09/2026
Examen Competencial Pràctic 2 20/10/2026 21/10/2026
Examen Competencial Pràctic 3 17/11/2026 18/11/2026
Examen Competencial Pràctic 4 22/12/2026 23/12/2026

Canvi de data

  • Només es podrà autoritzar un canvi de data per les causes justificades previstes a la normativa d’avaluació de la UdL.
  • La sol·licitud haurà d’estar degudament documentada i tramitar-se d’acord amb el procediment establert per la Universitat de Lleida.
  • La no assistència a una activitat d’avaluació comportarà un 0, excepte si s’ha autoritzat prèviament un canvi de data.

Normes i eines

Ús de la Intel·ligència Artificial Generativa

Les eines d’IAG poden utilitzar-se com a recurs de suport per:

  • Obtenir explicacions sobre conceptes teòrics.
  • Explorar diferents estratègies de resolució.
  • Generar exemples o fragments de codi amb finalitats d’aprenentatge.
  • Identificar errors i obtenir suggeriments de millora.
  • Donar suport a la documentació dels projectes.

En tots els casos, l’estudiant és responsable de comprendre, validar i adaptar les respostes proporcionades. Quan una activitat permeti l’ús d’IAG, cal declarar explícitament les parts afectades i els prompts utilitzats.

Ús de la IAG — No està permès

  • Presentar com a propi codi generat íntegrament per una eina d’IAG.
  • Utilitzar respostes generades automàticament sense comprendre’n el funcionament.
  • Utilitzar IAG durant una activitat d’avaluació quan el seu ús no estigui expressament autoritzat.

L’ús indegut de les eines d’IAG es considerarà una forma de frau acadèmic.

Revisió de les activitats d’avaluació

  • L’estudiant té dret a sol·licitar la revisió de qualsevol activitat d’avaluació d’acord amb la normativa de la Universitat de Lleida.

  • La qualificació podrà modificar-se a l’alça o a la baixa si es detecten errades en la correcció o en l’aplicació dels criteris d’avaluació.

  • Si es detecten indicis compatibles amb una possible situació de frau acadèmic, el professorat podrà convocar una revisió individual per verificar:

    • La comprensió dels continguts.
    • La correcta aplicació dels procediments.
    • L’autoria de les respostes.

Frau acadèmic

Es considera frau acadèmic, entre d’altres:

  • còpia,
  • plagi,
  • suplantació d’identitat,
  • manipulació o falsificació de resultats,
  • comunicació no autoritzada entre estudiants durant una prova,
  • consulta o utilització de material no autoritzat,
  • ús d’IAG o d’altres recursos tecnològics quan no estiguin expressament permesos.

Qualsevol incompliment serà tractat d’acord amb la normativa vigent de la Universitat de Lleida.

Recursos

Eines necessàries

  • Sistema operatiu base: Debian 13 i Ubuntu 24.04.
  • Virtualització: QEMU (és l’eina amb la que es faran els examens competencials).
    • VMWare i VirtualBox també són vàlids per treballar-hi a casa.

Programari necessari

Llenguatges de programació i compiladors

Eines de control de versions

Editor / IDE

  • NeoVim: Els examens competencials es fan en terminal amb editor de text.
  • Visual Studio Code: alternativa vàlida per qui prefereixi un IDE més complet.

Bones pràctiques

  • DRY (Do not repeat yourself).
  • Codi fàcil de reutilitzar.
  • Testeja aviat, testeja sovint, testeja de forma automàtica.
  • No assumeixis res, prova-ho.
  • Utilitza assertions per prevenir l’impossible.
  • Utilitza excepcions per problemes excepcionals.
  • Estima l’ordre de complexitat dels teus algorismes.
  • Utilitza patrons de disseny.
  • Utilitza eines de control de versions.

Materials i recursos

  • Apunts de l’assignatura i materials proporcionats pel professor.
  • Documentació oficial de les eines i tecnologies utilitzades.
  • Manuals de Linux.
  • Documentació tècnica oficial.
  • Exemples treballats a classe.

Bibliografia de referència

  • Andrew S. Tanenbaum. Modern Operating Systems, 5a ed., Pearson, 2023.
  • Greg Kroah-Hartman. Linux Kernel in a Nutshell, O’Reilly.

Bibliografia completa a la guia docent de l’assignatura.

Tutoria i contacte

Per qualsevol dubte, consulta o incidència relacionada amb l’assignatura, podeu contactar amb el professorat a través del correu electrònic: jordi.mateo@udl.cat. Al correu, indiqueu a l’assumpte Sistemes Operatius (SO) - [Tema/Bloc] - [Breu descripció del dubte].

Error Comú — Atenció

El professorat es reserva el dret de no respondre correus electrònics que no compleixin amb aquest format o que no siguin clars i concisos.

hola.c

Exemple de codi en C

//hola.c
#include <stdio.h>

int main()
{
    printf("Hola, món!\n");
    return 0;
}

cat hola.c
gcc hola.c -o hola
./hola

strace ./hola
Resultat d'Aprenentatge

Programa en C \(\Rightarrow\) Compilació i enllaçat \(\Rightarrow\) Executable \(\Rightarrow\) Biblioteques (libc) \(\Rightarrow\) Crides al sistema \(\Rightarrow\) Kernel Linux \(\Rightarrow\) Maquinari

Començem

uname -a
whoami
gcc --version
lsb_release -a
git --version