Descripció
Un sistema operatiu és una capa de software que s'executa sobre un hardware per a oferir una sèrie de serveis. Cada cop les funcionalitats d’un sistema operatiu inclouen més tasques i abasten més serveis. L'objectiu de l'assignatura és veure un sistema operatiu en totes les seves parts i, d'aquesta manera, dotar a l'alumne de coneixements sobre un dels components més importants en els sistemes informàtics d'avui en dia. En aquesta assignatura s’aprofundirà en els conceptes fonamentals del sistema operatiu, deixant per altres matèries els detalls i especificacions d’altres mòduls que el composen. Des del punt de vista pràctic, es realitzen pràctiques que implementen diverses funcionalitats, polítiques o tècniques d’un sistema operatiu. A més s’introdueixen multitud d'exemples, els quals ajuden a l'estudiant a aprofundir en tots aquells aspectes que s'han tractat des del punt de vista teòric i els permeten veure la seva aplicació.
Tipus assignatura
Optativa
Semestre
Primer
Crèdits
6.00

Professors Titulars

Director d´Innovació Educativa

Professors Docents

Coneixements previs
Objectius

Els Resultats d’Aprenentatge d’aquesta assignatura són:
RA.10 Conceptes bàsics dels sistemes operatius.
RA.11 Coneixement dels diferents components o subsistemes d’un sistema operatiu i les tècniques o estratègies que s’apliquen a cadascun d’ells.
RA.12 Identificació, formulació i resolució de problemes amb processos concurrents que requereixen un sistema d’integritat de dades compartides.
RA.13 Disseny i implementació d’aplicacions multiprocés que tinguin compartició d’informació i comunicació entre processos.

Continguts

CONTINGUTS CONCEPTUALS
Tema 1. Introducció als Sistemes Operatius
Tema 2. El nucli del Sistema Operatiu
Tema 3. Planificació
Tema 4. Mecanismes de comunicació, sincronització i exclusió mútua

CONTINGUTS PRÀCTICS
Tema 5. Crides al sistema

Metodologia

L’assignatura té un funcionament setmanal amb 2 sessions lectives:
• A la primera sessió (2h) es desenvolupen els continguts dels temes mitjançant classes magistrals i de problemes. També s’expliquen les eines necessàries pel desenvolupament de les sessions de laboratori i es fan exemples i problemes d’utilització d’aquestes.
• A la segona sessió (2h) es realitza una sessió de laboratori on l’alumne ha de resoldre un problema dissenyant i implementant un programa que usa les eines explicades a la primera sessió. Aquest programa s’ha de lliurar al final de la sessió.
SESSIONS PRÀCTIQUES DE LABORATORI
Les sessions pràctiques són sessions lectives que formen part de l’assignatura i que tenen una periodicitat setmanal durant tot el desenvolupament de l’assignatura. L’objectiu és donar suport i afavorir l’aprenentatge progressiu, necessari i imprescindible per tal de poder superar amb èxit l’aplicació pràctica dels continguts de l’assignatura així com la pràctica a dissenyar i implementar.
El funcionament de les mateixes es descriu a continuació:
• Amb una setmana d’avançament es donarà a conèixer a l’alumne els continguts sobre eines de programació en C que es necessitaran per la sessió pràctica setmanal.
• Si els coneixements necessaris són recordatori de cursos anteriors o senzills d’assimilar, es facilitarà tota la bibliografia associada i material per a poder preparar-los.
• Si els coneixements necessaris són nous per l’alumne aquests s’hauran explicat a les sessions lectives anteriors de l’assignatura i, a més, també es facilitarà tota la bibliografia associada i material per a poder preparar-los.
• Seguidament es facilitarà a l’alumne un exercici pràctic que haurà de resoldre i dipositar en un pou de l’eStudy en el termini que s’estableixi (habitualment final de la sessió pràctica).
• Un cop tancat el pou es publicarà una solució correcta a l’exercici per tal que l’alumne pugui fer una autoavaluació formativa.
• Els monitors de l’assignatura qualificaran els exercicis lliurats i publicaran les notes a l’eStudy.
Detall de les sessions establertes:
Sessió 00 Recordatori + File Descriptors
Sessió 01 File Descriptors + Signals
Sessió 02 Forks
Sessió 03 Threads
Sessió 04 Sockets I
Sessió 05 Sockets II
Sessió 06 Pipes
Sessió 07 Semàfors I
Sessió 08 Semàfors II
Sessió 09 Global

Avaluació

 L’assignatura té la durada d’un semestre i consta de dues parts diferenciades: la part de coneixements i la pràctica de l’assignatura. L’avaluació dels coneixements i de la pràctica serà independent. Per tal d’aprovar l’assignatura caldrà aprovar independentment els coneixements i la pràctica.
 La nota final de l’assignatura és representada en la següent fórmula:
Nota_Final = 40% · Coneixements + 60% · Pràctica
 La nota de coneixements s’avaluarà a partir de les següents notes relacionades: la nota d’exàmens (Nota_Ex) i la nota dels exercicis de laboratori (Nota_Lab), segons el càlcul següent:
Coneixements = 60% · Nota_Ex + 40% · Nota_Lab
 Aquest càlcul només s’aplicarà si la nota d’exàmens és més gran o igual que 3.5 (Nota_Ex>=3.5).
 Per altra banda, la nota d’exàmens (Nota_Ex) es calcularà ponderant amb les notes de l’examen de mig semestre (Ex_Midterm) i la nota de l’examen final de semestre (Ex_Final), segons el següent càlcul:
Nota_Ex = 80% · Ex_Final + 20% · Ex_Midterm
- Si la nota obtinguda a l’Examen de Midterm és superior o igual a 6 (Ex_Midterm>=6), la matèria corresponent a aquest examen quedarà alliberada a l’alumne de cara a l’examen final del semestre (primera o segona convocatòria).
- A més de l’examen final a la primera convocatòria, hi haurà la possibilitat de fer un examen final de recuperació per a aquells alumnes que no l’hagin aprovat amb anterioritat (segona convocatòria).
- Com que la Nota_Lab té una funció d’Avaluació Continua, aquesta només ponderarà a Coneixements per la primera convocatòria ordinària. Per la segona convocatòria Coneixements = Nota_Ex.
- Pel que fa a l’avaluació de la pràctica en un apartat posterior es detalla aquesta juntament amb tota la normativa de pràctiques.
- Pel que fa a l’avaluació de les sessions de laboratori, la nota és calcularà fent la mitjana aritmètica de les 8 o 9 millors notes de les sessions. A més, tots els alumnes hagin presentat i lliurat el 80 % de les sessions se’ls garantirà una nota mínima de 5, independentment de la seva qualificació obtinguda. Cal destacar que una sessió es considera presentada si l’exercici que es lliura té entitat suficient i mostra treball en sí mateix. D’altra manera la sessió serà avaluada com No Presentada (NP).

- Finalment, l’estudiant te l’opció d’alliberar l’examen final de la primera convocatòria. Per això els requisits que s’han de satisfer són quatre: (1) que la pràctica estigui lliurada satisfactòriament abans de la primera convocatòria; (2) l’assistència a les sessions de laboratori i la qualificació obtinguda; (3) la nota del punt de control (Midterm) i (4) l’assistència i participació a les sessions lectives durant el curs. La nota en aquest cas es calcularà partir de la següent fórmula:
Nota = (65%*Pràctica + 25%* Nota_Lab + 10%* Ex_Midterm) * Nota_Participació
Segons la Normativa de Còpies la categorització de les activitats d’avaluació de l’assignatura és la següent:
• Pràctica: Altament significativa.
• Examen del Midterm: Altament significativa.
• Examen Final: Altament significativa.
• Exercicis de Laboratori. Moderadament significativa.
Això vol dir que si algun estudiant copia en una de les sessions de laboratori, automàticament li quedarà un 0 en tota la qualificació de la Nota de Laboratori que val el 40% de la nota de Coneixements.
NORMATIVA DE PRÀCTIQUES
La pràctica de l’assignatura de Sistemes Operatius (SO) és molt important. Els motius són diversos: l’aplicació pràctica dels conceptes teòrics explicats a les classes magistrals, la capacitat que ha de demostrar l’alumne en el disseny i implementació de programes de cert volum pel que fa a línies de codi i funcionalitats, la complementació aplicada de certs continguts conceptuals de sistemes operatius, etc. És per això que la pràctica de l’assignatura demana un esforç important pel que fa a dedicació de l’alumne i també tenen un alt nivell de control i seguiment per part dels monitors i professors implicats.
Seguidament, s’exposen les normes bàsiques que cal respectar pel que fa al desenvolupament de la pràctica pel present curs acadèmic:
1. La pràctica de l’assignatura es podrà desenvolupar individualment o formant parella amb una altra persona matriculada a l’assignatura.
2. Independentment que es realitzi la pràctica individualment o en parella, aquesta opció cal que sigui notificada als monitors i professors de l’assignatura amb temps suficient perquè en quedi constància i es pugui assignar un número de grup de pràctiques i altres recursos tècnics, en cas de ser necessari.
3. És imprescindible tenir assignat un número de grup per a poder optar a presentar la pràctica i els checkpoints que aquesta té.
4. El grup de pràctiques ha d’estar identificat 3 setmanes abans de qualsevol lliurament de pràctiques. De no ser així, no s’admetrà la presentació de la pràctica en aquella convocatòria de lliurament.
5. En cas que durant el curs hi hagi algun canvi o modificació en els grups, caldrà notificar-ho als monitors i professors de l’assignatura perquè aquesta informació quedi actualitzada. De la mateixa manera, els canvis no seran permesos en les 3 setmanes anteriors a una convocatòria de lliurament (sí ho seran les separacions però no la formació de nous grups).
6. El llenguatge de programació emprat en les pràctiques de SO serà el llenguatge C. Qualsevol pràctica presentada en qualsevol altre llenguatge o variant no serà admesa (C++, Java, etc.).
7. Per a la pràctica hi haurà 4 terminis màxims (deadlines) de lliurament. Quant més tard es lliuri una pràctica més penalització en la qualificació màxima a obtenir hi haurà. Aquesta es detallarà en el mateix enunciat de la pràctica.
8. Per a cada termini de lliurament l’alumne té 3 possibilitats com a màxim de presentar la pràctica. Aquestes han de ser suficientment espaiades en el temps per a que els monitors puguin donar feedback de la presentació.
9. La qualificació de la pràctica també es pot veure afectada pels diversos checkpoints que pugui tenir aquesta. Tota la planificació i dates de lliurament final i dels checkpoints intermedis es detalla en el propi enunciat.
10. Perquè una pràctica sigui acceptada i opti a ser qualificada cal que es satisfacin 5 requeriments:
a. Ha d’haver estat lliurada al pou de pràctiques corresponent (amb el format indicat) abans del deadline corresponent.
b. Ha d’estar degudament estructurada i tenir la corresponent documentació interna.
c. Ha de tenir una memòria correcta.
d. Ha de funcionar correctament.
e. El grup que presenta la pràctica ha de superar l’entrevista individual amb els monitors de pràctiques on han de demostrar un coneixement profund de la pràctica en la seva totalitat.
11. Si qualsevol alumne no demostra un coneixement profund de la pràctica, suposarà la no acceptació de la pràctica per aquell alumne havent de realitzar-la, a partir d’aquell moment, de forma individual i no podent aprofitar cap recurs o codi de la pràctica anterior.
12. Si es detecta una còpia de pràctiques, s’aplicaran les sancions de la normativa de l’escola en les accions fraudulentes tipificades com a greus o molt greus.
NORMATIVA PER ALUMNES REPETIDORS
Els estudiants que repeteixen l’assignatura poden acollir-se a la següent normativa en quant a l’avaluació:
• Entre cursos acadèmics es pot guardar la qualificació obtinguda en el curs anterior tant la part de coneixements com la part pràctica per separat.
• Entre cursos acadèmics es guardarà la pràctica del curs anterior si aquesta està aprovada i els objectius d’aprenentatge no han canviat entre cursos acadèmics. Si l’alumne repetidor vol convalidar la pràctica amb la qualificació del curs anterior, ho ha de notificar al responsable de l’assignatura abans del 15 d’octubre. Si no ho fa així es considerarà que l’alumne renuncia a la convalidació.
• Si l’alumne repetidor té la pràctica aprovada quedarà exempt de realitzar les sessions de laboratori, per la qual cosa aquesta nota no afectarà a l’avaluació de la part de Coneixements.
• En qualsevol altra situació que es doni, l’alumne haurà d’acollir-se a la normativa d’avaluació del present curs. Qualsevol altra cas que s’aconsella que l’alumne mantingui una entrevista particular amb el responsable de l’assignatura (sempre abans de l’inici efectiu del curs).

Criteris avaluació
Bibliografia bàsica

BIBLIOGRAFIA BÀSICA / BASIC BIBLIOGRAPHY / BIBLIOGRAFÍA BÁSICA
AGANS D.J.(2002). Debugging. The 9 indispensable rules for finding even the most elusive software and hardware problems, Amacom, 2002, ISBN 0-8144-7457-8.
CANALETA, X. (2020). “Exercicis i problemes d’examen de sistemes operatius”, Publicacions La Salle, Agost 2020.
HARBISON S.P. i STEELE G.L. (2002). C - A Reference Manual, Prentice Hall, 5a edició, 2002.
PETERSON, J.L. i SILBERSCHATZ A. (1989) Sistemas Operativos, Editorial Reverté, ISBN: 84-291-2693-7
SALVADOR, J. (2014). “Programació en C per a sistemes UNIX”, Publicacions La Salle, Setembre 2014.
SALVADOR, J. (2011). Introducció al llenguatge de programació C, Publicacions La Salle, Juliol 2011.
SILBERSCHATZ A., GALVIN P. i GAGNE, G. (2002). Sistemas Operativos, Editorial Limusa, ISBN: 968-18-6168-X.
STALLINGS, W. (2005). Sistemas Operativos, 5ª Edició, Pearson Prentice Hall, ISBN: 84-205-4462-0.
STEVENS, R., FENNER, B. i RUDOFF, A.M. (2004). UNIX Network Programming, volum 1: "The sockets Networking API", Addison-Wesley Professional, 2004, 3a edició, ISBN 0-13-141155-1.
STEVENS, R. i RAGO S.A. (2008). Advanced Programming in the UNIX Environment, Addison-Wesley Professional, 2008, 2a edició.
TANENBAUM A.S. (2009). Sistemas Operativos Modernos, 3ª Edición, PearsonPrentice Hall, PearsonEducación, ISBN: 978-607-442-046-3.

Material complementari