Sistemes Operatius Avançats (SOA)

Curs 2026/2027 (quadrimestre tardor)

Professors ↑ Tornar

Per consultes sempre confirmeu prèviament per e-mail. Totes les adreces d'e-mail acaben amb @ac.upc.edu.

Alex Pajuelo

Email: alex.pajuelo@upc.edu

Despatx: C6-E205

Consultes: Confirmar prèviament per email

Juanjo Costa

Email: juan.jose.costa@upc.edu

Despatx: C6-117

Consultes: Dilluns de 9:00 a 12:00; Dimarts de 18:00 a 21:00

Descripció de l'assignatura ↑ Tornar

Aquesta assignatura ofereix una visió interna d'un Sistema Operatiu, describint els serveis centrals que s'ofereixen al middleware amb la seva implementació. SOA està ubicada al cinqué quadrimestre del grau i és una assignatura obligatòria dins de l'especialitat de Tecnologies de la Informació. Té 6 crèdits ECTS, el que suposa una càrrega per l'alumne de 150 hores.


A més a més, en aquesta assignatura es desenvolupa la competència transversal tercera llengua i, en particular, la capacitat de comprendre i utilitzar informació de caràcter tècnic escrita en anglès.


Per a consultar una descripció completa dels objectius de l'assignatura visiteu la pàgina de SOA a la web de la FIB. Utilitzarem el Racó de la FIB per a publicar les notes i tots els avisos referents a l'assignatura. També al Racó els estudiants disposeu d'un fòrum de discussió dedicat a l'assignatura.

Capacitats prèvies ↑ Tornar

Les capacitats prèvies necessàries per a fer aquesta assignatura són:


  • Conceptes bàsics d'un sistema operatiu: mecanismes d'entrada al sistema, gestió de processos, gestió d'entrada/sortida i gestió de memòria.
  • L'ús a nivell d'usuari de les crides a sistema de Linux.
  • Programació de baix nivell: Llenguatge C i ensamblador i386.
  • Programació d'alt nivell: algorismes i estructures de dades.
  • Eines bàsiques de desenvolupament de programes en C sobre Linux: Makefiles, compilador de C i depuradors.

Avaluació ↑ Tornar

La nota final de l'assignatura està composta per la nota de la competència tècnica (CT), i la nota de la competència transversal (CTr) mitjançant la fórmula:

Nota Assig = (CT + CTr) * (10 / 11)

On la nota màxima de CTr és 1.

Nota de la competència tècnica (CT)

La nota de la CT es pot obtenir per avaluació continuada (CTc) o excepcionalment per un examen final (CTf). Es calcula com:

CT = max(CTc, CTf)

La nota CTc està composta de diversos actes avaluatius: controls de teoria (T) i controls de laboratori (L). La fórmula per calcular aquesta nota és la següent:

CTc = 50% T + 50% L

Per a calcular T s'utilitzen dos controls amb els mateixos pesos:

T = 50% T1 + 50% T2

Per a calcular L s'han de fer diversos lliuraments durant el curs:

L = 10% S + 50% P + 40% E

La nota de seguiment (S) s'obté de l'avaluació que faci el professor sobre el progrés correcte del laboratori. La nota del projecte (P) correspon al disseny, seguiment i implementació d'un projecte. La nota de l'exercici (E) correspon al disseny, seguiment i implementació d'un programa en el qual s'utilitzin mecanismes de comunicació entre processos.


La nota CTf es calcula mitjançant un examen de teoria (T) i un examen de laboratori (L). Per obtenir aquesta nota és obligatori fer tots dos exàmens. Només poden optar a aquesta nota els alumnes que no hagin aprovat l'avaluació continuada. La fórmula és la següent:

CTf = 50% T + 50% L

Nota de la competència transversal (CTr)

La nota de la competència transversal s'obtindrà durant tot el quadrimestre a través de diverses activitats. La qualificació d'aquesta competència tindrà valors A, B, C, D o NA: A correspon a un nivell excel·lent, B a un nivell desitjat, C a un nivell suficient, D a un nivell no superat i NA a no avaluat.

Ús d'intel·igència artificial i política de còpies

Queda totalment prohibit l'ús d'eines d'Intel·ligència Artificial (IA) per part dels estudiants, així com la còpia de codi o contingut de qualsevol font d'Internet. Qualsevol lliurament en què es sospiti que s'ha utilitzat IA o que ha estat copiat obtindrà directament una qualificació de 0. Així mateix, el professorat es reserva el dret de realitzar una entrevista personal a qualsevol estudiant si es detecten indicis de plagi o d'ús no autoritzat de la IA per tal de verificar l'autoria del treball.

Planificació docent ↑ Tornar

Aquesta és la planificació del curs per setmanes. Teniu marcats els dies dels controls de teoria (T1 i T2) i de l'examen final (F), així com festius i canvies de dies lectius. També apareixen les dates estimades per a fer cada entrega de laboratori (podeu consultar la descripció de cada entrega al següent apartat). Totes aquestes dates són inamovibles.

Calendari i planificació del curs SOA

Els estudiants heu de preparar prèviament les classes de laboratori. Això vol dir haver llegit prèviament la documentació associada i haver repassat aquells conceptes d’assignatures anteriors que no es tinguin clars. A més a més, per a finalitzar la feina associada a cada entrega, és necessari que dediqueu 6 hores d'esforç setmanal fora de les hores de classe.

Descripció de les pràctiques i entregues ↑ Tornar

Les pràctiques de laboratori es divideixen en tres grups. El primer grup consisteix en dissenyar, implementar i avaluar el rendiment d'un sistema operatiu didàctic anomenat ZeOS. Partireu d'un codi que implementa les inicialitzacions més bàsiques d'un sistema i en construireu un sistema amb una implementació senzilla d'algun dels components principals d'un sistema operatiu. El segon grup consisteix en implementar i avaluar una extensió del sistema operatiu. El tercer grup consisteix en implementar un exercici relativament curt utilitzant mecanismes de comunicació entre processos.


Cada part té diverses entregues per garantir el correcte assoliment del projecte. La primera part conté les entregues E1 i E2 amb el mateix pes cadascuna en l'avaluació i la segona part P està dividit en milestones. Els milestones avaluen el progrés dins el projecte i es diferencien de les entregues en que no tenen data d'entrega fixada, i cal mostrar la finalització del milestone explícitament al tutor de laboratori. El lliurament de la tercera part es presentarà durant el curs.


Totes les entregues es faran a través del Racó de la FIB. A continuació teniu detallades les entregues que fareu:


  • E1: Mecanismes d'entrada al sistema. A la primera entrega heu d'entregar el codi que gestiona la entrada al sistema a través d'interrupcions i de crides a sistema. En particular heu d'implementar la gestió de dos interrupcions (teclat i rellotge), i de dos crides a sistema (write y gettime).
  • E2: Gestió bàsica de processos. Per a fer la segona entrega heu de dissenyar e implementar les estructures de dades i els algoritmes bàsics per a fer la gestió de processos en un sistema multiprocés (creació i eliminació de processos, canvi de context, planificació de CPU, i manteniment de informació sobre l'execució de processos).
  • P: Aquest és l'últim dia per mostrar el resultat dels milestones del projecte al tutor de laboratori.
  • P1: Aquest és l'últim dia per mostrar el resultat de la tercera part del laboratori al tutor de laboratori.

Documentació i enunciats de les pràctiques ↑ Tornar

Transparències de suport a les classes de teoria:

Documentació pel laboratori:

Bibliografia ↑ Tornar

Bàsica

  • SILBERSCHATZ, A., GALVIN, P. B. and GAGNE, G., Operating System Concepts, John Wiley & Sons, INC. 2009.

Complementària

  • BOVET, D. P. and CESATI, M., Understanding the Linux Kernel, O'Reilly.
  • STALLINGS, W., Operating Systems: Internals and Design Principles (4th Edition), Pearson Education, 2000.
  • RUSSINOVIC, M. and SALOMON, D. A., Windows Internals: Including Windows Server 2008 and Windows Vista, Fifth Edition, Microsoft Press, 2009.

Enllaços

Sobre Bochs:

Sobre Linux:

SO en general:

Sobre compiladors:

Sobre programació: