Un sistema operatiu és la capa de programari que gestiona els recursos del maquinari i proporciona els serveis necessaris per a l’execució de programes i aplicacions. Els sistemes operatius actuals integren un nombre creixent de funcionalitats i tenen un paper fonamental en el funcionament dels sistemes informàtics.
L’objectiu de l’assignatura és proporcionar a l’estudiant una visió global del funcionament i l’estructura d’un sistema operatiu, així com dels seus components principals. Al llarg del curs s’aprofundeix en els conceptes fonamentals relacionats amb la gestió de processos, la planificació, la concurrència, la sincronització, la comunicació entre processos i els mecanismes bàsics que ofereix el nucli del sistema operatiu. Els detalls específics d’altres subsistemes i mòduls es tracten en assignatures més especialitzades del pla d’estudis.
Des del punt de vista pràctic, l’assignatura inclou activitats i pràctiques de programació orientades a implementar i experimentar amb diferents funcionalitats, mecanismes, polítiques i tècniques pròpies dels sistemes operatius. Aquest treball es complementa amb exemples i exercicis que permeten consolidar els continguts teòrics, comprendre’n el funcionament i aplicar-los a la resolució de problemes reals.
Professors Titulars
Professors Docents
Es requereixen coneixements previs de programació, especialment d’algorísmica, estructures de dades i programació estructurada, així com coneixements bàsics sobre l’ús d’un sistema operatiu. També s’espera que l’estudiant hagi assolit uns coneixements mínims de programació en C, incloent-hi l’ús de punters i la gestió de memòria dinàmica.
Els estudiants que cursin l’assignatura de Sistemes Operatius hauran d’adquirir els coneixements i desenvolupar les habilitats següents:
- Comprendre les funcions d’un sistema operatiu, la seva estructura i la seva relació amb la resta dels components d’un sistema informàtic.
- Conèixer els conceptes, les tècniques i la terminologia associats al funcionament, el disseny i la implementació dels principals components d’un sistema operatiu.
- Saber aplicar aquests conceptes i tècniques mitjançant el disseny i el desenvolupament de programari que implementi mecanismes propis dels sistemes operatius.
- Saber comunicar-se correctament, tant oralment com per escrit, emprant la terminologia tècnica adequada.
- Saber dissenyar i desenvolupar programari modular, estructurat, mantenible i adequadament documentat.
- Saber analitzar i resoldre problemes relacionats amb els continguts de l’assignatura, tant individualment com en equip.
Durant el curs acadèmic es desenvoluparan els continguts següents:
CONTINGUTS CONCEPTUALS
Tema 1. Introducció als sistemes operatius i al nucli
- Fonaments dels sistemes informàtics
- Components bàsics d’un sistema informàtic
- Execució d’instruccions
- Interrupcions i gestió de múltiples interrupcions
- Multiprogramació
- El sistema operatiu dins del sistema informàtic
- Ubicació i paper del sistema operatiu
- Funcions i serveis dels sistemes operatius
- Evolució dels sistemes operatius
- Components principals d’un sistema operatiu
- Processos i execució
- Concepte i estats d’un procés
- Representació dels processos: PCB (Process Control Block)
- Canvi de context
- El dispatcher
Tema 2. Planificació de processos
- Introducció a la planificació de processos
- Criteris i mètriques de planificació
- Algorismes bàsics de planificació en sistemes monoprocessador
- FCFS (First Come, First Served)
- SJF/SPN (Shortest Job First / Shortest Process Next)
- SRT (Shortest Remaining Time)
- Planificació per prioritats
- Round Robin o torn rotatori
- HRRN (Highest Response Ratio Next)
- Simulació i anàlisi comparativa dels algorismes de planificació
- Configuració de processos i càrregues de treball
- Ús del simulador educatiu EPSSim
- Interpretació de les mètriques obtingudes
- Comparació del comportament dels diferents algorismes
- Anàlisi de l’efecte dels paràmetres de planificació
Tema 3. Concurrència, sincronització i exclusió mútua
- Concurrència i compartició de dades
- Execució concurrent de processos
- Condicions de carrera
- Seccions crítiques
- Exclusió mútua i sincronització
- El problema de l’exclusió mútua
- El problema dels productors i consumidors
- Conceptes associats: inanició (starvation), interbloqueig (deadlock) i equitat (fairness)
- Semàfors
- Concepte i operacions
- Utilització de semàfors
- Patrons de sincronització i exclusió mútua
- Semàfors en C
CONTINGUTS PRÀCTICS
Tema 4. Crides al sistema
- Entorn de treball
- File Descriptors
- Signals
- Threads
- Forks, Pipes, exec.
- Memòria Compartida
- Sockets
- Select
- Cues de missatges
- Semàfors
L’assignatura té un funcionament setmanal basat en dues sessions lectives:
- Primera sessió (2 h): s’introdueixen els conceptes i les eines necessàries per al desenvolupament dels continguts de l’assignatura. Les explicacions es complementen amb exemples, resolució d’exercicis i discussió de diferents aproximacions de disseny.
- Segona sessió (2 h): es realitza una sessió pràctica en què els estudiants, habitualment en grup, han de dissenyar i implementar en llenguatge C un programa que apliqui els conceptes i les eines treballats. L’activitat s’ha de lliurar al final de la sessió.
A més, al llarg del curs es desenvolupa una pràctica de programació de més abast, estructurada en diferents fases, que integra els principals continguts de l’assignatura i permet aprofundir en el disseny, la implementació, la depuració i la documentació d’una aplicació més complexa.
Els mètodes utilitzats per avaluar l’assignatura són els següents:
A. Exàmens
B. Exàmens tipus test
C. Exercicis fets fora de l’aula
D. Informes o treballs fets en grup
E. Treballs pràctics amb ordinador
F. Participació a classe
G. Altres: entrevistes individuals.
L’assignatura té una durada semestral i consta de dues parts diferenciades: Coneixements i Pràctica. Ambdues parts s’avaluen de manera independent i cal obtenir una qualificació igual o superior a 5 en cadascuna per superar l’assignatura.
La nota final es calcularà segons la fórmula:
Nota_Final = 50% · Coneixements + 50% · Pràctica
sempre que les qualificacions de Coneixements i Pràctica siguin totes dues iguals o superiors a 5.
En cas contrari:
Nota_Final = mínim(Coneixements, Pràctica)
Per tant, cal superar separadament les dues parts de l’assignatura i una qualificació igual o superior a 5 en una part no pot compensar una qualificació inferior a 5 en l’altra.
Avaluació de Coneixements
La part de Coneixements s’avalua mitjançant l’examen de mig semestre (Ex_Midterm), l’examen corresponent al Tema 3 (Ex_T3) i la nota de les sessions de laboratori (Nota_Lab).
La nota d’exàmens es calcula de la manera següent:
Nota_Ex = 25% · Ex_Midterm + 75% · Ex_T3
Convocatòria ordinària
Per aplicar aquesta ponderació, cal obtenir una qualificació igual o superior a 5 tant a l’Ex_Midterm com a l’Ex_T3. Si es compleix aquest requisit:
Coneixements = 70% · Nota_Ex + 30% · Nota_Lab
Si l’Ex_Midterm o l’Ex_T3 obté una qualificació inferior a 5:
Coneixements = mínim(Ex_Midterm, Ex_T3)
Per tant, la Nota_Lab només pondera quan els dos exàmens han obtingut individualment una qualificació igual o superior a 5 i no pot compensar una qualificació inferior a 5 en cap d’ells.
Recuperació
A la recuperació es podran recuperar l’Ex_Midterm, l’Ex_T3 o tots dos, segons correspongui. Per superar la part de Coneixements cal obtenir una qualificació igual o superior a 5 en cadascun dels dos exàmens.
Quan tots dos exàmens tinguin una qualificació igual o superior a 5:
Coneixements = Nota_Ex
Si algun dels dos exàmens obté una qualificació inferior a 5:
Coneixements = mínim(Ex_Midterm, Ex_T3)
La Nota_Lab forma part de l’avaluació contínua i només pondera durant la convocatòria ordinària. Per tant, no intervé en el càlcul de Coneixements durant la recuperació.
Sessions de laboratori
Durant el curs es realitzaran nou sessions de laboratori ordinàries, totes avaluables, i una sessió addicional opcional.
La Nota_Lab es calcularà a partir de les sessions computables. Si l’estudiant realitza la sessió opcional, la qualificació obtinguda substituirà, si escau, la qualificació més baixa de les nou sessions ordinàries.
Per considerar una sessió realitzada, el codi lliurat haurà de mostrar un treball efectiu i suficient sobre el problema plantejat. Una sessió lliurada però no treballada suficientment serà qualificada amb un 1 i no es considerarà realitzada. Les sessions no lliurades constaran com a no presentades (NP).
En cas d’absència justificada, es podran excloure del càlcul de la Nota_Lab un màxim de dues sessions no presentades durant el curs. A partir de la tercera absència, les sessions no presentades computaran amb valor 0 a efectes del càlcul de la Nota_Lab, encara que l’absència estigui justificada. Les sessions no presentades sense justificació computaran igualment amb valor 0 a efectes d’aquest càlcul.
Si l’estudiant realitza totes les sessions ordinàries computables, se li garantirà una Nota_Lab mínima de 5, encara que la mitjana aritmètica obtinguda sigui inferior. Aquesta garantia no modifica les qualificacions individuals de les sessions.
Opció d’alliberament de l’Ex_T3
L’estudiant podrà optar a quedar exempt de realitzar l’Ex_T3 de la convocatòria ordinària.
El compliment dels requisits permet optar a l’alliberament, però no en garanteix la concessió. La decisió final correspon al professorat i es basa en el treball continuat, l’assistència, la participació i els coneixements individuals demostrats durant el curs.
Per poder optar-hi cal:
- Haver presentat i aprovat la Pràctica en la primera presentació ordinària.
- Haver lliurat i treballat la sessió de laboratori opcional. No és necessari aprovar-la.
- Haver obtingut una mitjana natural igual o superior a 5 a les sessions de laboratori.
- Haver obtingut una qualificació igual o superior a 5 a l’Ex_Midterm en convocatòria ordinària.
- Haver assistit i participat adequadament en totes les sessions lectives del Tema 3.
- Haver demostrat individualment uns coneixements suficients del Tema 3 durant l’entrevista de la primera presentació ordinària de la Pràctica.
La mitjana natural és la mitjana de les sessions computables després de substituir, si escau, la qualificació més baixa per la de la sessió opcional, però abans d’aplicar la garantia de Nota_Lab mínima de 5. Una Nota_Lab de 5 obtinguda exclusivament mitjançant aquesta garantia no permet complir el requisit de mitjana natural igual o superior a 5.
L’entrevista de la primera presentació ordinària de la Pràctica inclou una valoració general de la Pràctica i una valoració individual dels coneixements del Tema 3. Un estudiant pot aprovar la Pràctica, però no obtenir l’alliberament si la valoració individual del Tema 3 no és suficient.
Per als estudiants que compleixin els requisits i siguin considerats candidats a l’alliberament, es calcularà la fórmula següent:
Nota_Alliberament = (50% · Pràctica + 30% · Nota_Lab + 20% · Ex_Midterm) · Nota_Participació
La Nota_Participació és un factor comprès entre 0,8 i 1,2, determinat a partir de l’assistència, la participació activa i el treball continuat demostrat durant totes les sessions lectives del Tema 3.
La Nota_Alliberament correspon directament a la nota final de l’assignatura i substitueix el sistema ordinari de càlcul de la Nota_Final.
L’alliberament només es concedirà si el resultat de la fórmula és igual o superior a 5. Si el resultat és inferior a 5, l’estudiant haurà de realitzar l’Ex_T3. La qualificació màxima de la Nota_Alliberament serà 10.
L’estudiant podrà renunciar a la Nota_Alliberament i presentar-se voluntàriament a l’Ex_T3 si considera que pot obtenir una qualificació superior. Presentar-se a l’examen comportarà la renúncia definitiva a la Nota_Alliberament, que no es podrà recuperar ni aplicar posteriorment.
Autoria, intel·ligència artificial i frau acadèmic
Presentar una activitat en nom propi implica assumir-ne l’autoria i conèixer i comprendre la totalitat del contingut lliurat.
Es considera frau presentar en nom propi un codi, una solució o una part substancial d’una entrega que l’estudiant no ha desenvolupat o no comprèn. L’estudiant haurà de ser capaç d’explicar-ne el funcionament, justificar les decisions de disseny, descriure les eines i els recursos utilitzats i modificar o completar el codi quan se li demani.
L’ús d’eines d’intel·ligència artificial està permès com a suport, d’acord amb el nivell 4 de l’Escala d’Avaluació de la Intel·ligència Artificial (AIAS). La IA pot assistir l’estudiant en parts específiques del treball, però no pot substituir-ne l’aprenentatge, la resolució del problema, la presa de decisions ni la comprensió del resultat.
L’estudiant és responsable de revisar, validar i comprendre qualsevol contingut generat o suggerit per aquestes eines. L’ús rellevant d’IA s’haurà d’identificar i documentar segons les indicacions de cada activitat i, en el cas de la Pràctica, a la memòria.
En el cas de la memòria de la Pràctica, no s’admetran memòries redactades en Markdown o generades mitjançant Python, encara que posteriorment s’hagin convertit a PDF.
Quan una entrega presenti indicis de còpia, manca d’autoria, ús mecànic de la IA o qualsevol altra possible forma de frau acadèmic, el professorat convocarà l’estudiant a una entrevista individual de validació.
L’Ex_Midterm, l’Ex_T3, les fases de la Pràctica, el lliurament final i les entrevistes associades són activitats d’avaluació altament significatives. Les sessions de laboratori són activitats d’avaluació moderadament significatives.
En cas que s’acrediti frau acadèmic, s’aplicaran el protocol i les conseqüències establerts per la normativa acadèmica de la Universitat.
Els criteris d’avaluació associats als objectius de l’assignatura són els següents:
Objectiu 1. Comprendre les funcions i l’estructura d’un sistema operatiu
- Identificar i explicar les funcions, els components i l’estructura bàsica d’un sistema operatiu, així com la seva relació amb el maquinari i la resta del sistema informàtic. [A, B, C, F]
- Utilitzar correctament els conceptes i la terminologia pròpia de l’assignatura. [A, B, F, G]
Objectiu 2. Conèixer els principals mecanismes i tècniques dels sistemes operatius
- Analitzar i resoldre problemes de planificació de processos, interpretant correctament els algorismes i les mètriques associades. [A, B, C, F]
- Identificar i aplicar mecanismes de concurrència, sincronització i exclusió mútua en problemes amb processos concurrents. [A, C, E, G]
- Relacionar els diferents components i mecanismes estudiats amb el funcionament global del sistema operatiu. [A, B, F]
Objectiu 3. Aplicar els coneixements mitjançant el desenvolupament de programari
- Dissenyar i implementar en llenguatge C programes que utilitzin crides al sistema i mecanismes propis dels sistemes operatius. [C, E, G]
- Seleccionar i aplicar les tècniques adequades per resoldre cada problema, justificant les decisions de disseny adoptades. [C, E, G]
Objectiu 4. Comunicar-se emprant la terminologia tècnica adequada
- Redactar informes i memòries tècniques clars, precisos i adequadament estructurats. [D]
- Explicar i defensar oralment el disseny, el funcionament i la implementació de les solucions desenvolupades. [F, G]
Objectiu 5. Desenvolupar programari modular i documentat
- Implementar programes correctament estructurats, modulars i amb una documentació interna adequada. [E]
- Elaborar una memòria que descrigui i justifiqui l’arquitectura, el disseny i el funcionament de la implementació. [D, G]
Objectiu 6. Analitzar i resoldre problemes individualment i en equip
- Analitzar problemes, proposar alternatives i justificar la solució adoptada. [A, C, E, F, G]
- Treballar de manera coordinada en equip, distribuint les tasques sense perdre el coneixement global de la solució desenvolupada. [D, E, G]
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.
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.