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ó.
Professors Titulars
Professors Docents
Conceptes de programació (algorísmica i estructures de dades) i conceptes bàsics d´utilització d´un sistema operatiu.
Els alumnes que cursen l´assignatura de Sistemes Operatius han d´adquirir els coneixements i desenvolupar les habilitats que s´indiquen a continuació:
- Comprendre les funcionalitats d´un sistema operatiu, la seva estructura i la seves relacions amb la resta del sistema informàtic.
- Conèixer els conceptes, tècniques i terminologia associada al desenvolupament i creació d´un sistema operatiu en cadascuna de les seves diverses capes.
- Saber aplicar aquestes tècniques desenvolupant software que les implementi.
- Saber expressar-se de manera correcta i usant la terminologia adequada tant de forma oral com escrita.
- Saber desenvolupar software de forma modular i ben documentada. 6. Saber resoldre problemes associats al camp que ens ocupa, tant individual com col·lectivament.
Durant el curs acadèmic es desenvoluparan els següents continguts:
CONTINGUTS CONCEPTUALS
Tema 1. Introducció als Sistemes Operatius
- Introducció als ordinadors
- Components bàsics
- Execució d’instruccions
- Interrupcions
- Múltiples interrupcions
- Multiprogramació
- Ubicació del Sistema Operatiu en el sistema informàtic
- Funcions dels sistemes operatius
- Evolució històrica dels sistemes operatius
- Components d’un sistema Operatiu
Tema 2. El nucli del Sistema Operatiu
- Descripció
- Esquema del nucli
- Representació dels processos PCB (Process Control Block)
- Controlador de la interrupció: FLIH (First Level Interrption Handler)
- El Dispatcher
- Mecanismes de comunicació, sincronització i exclusió mútua
- Classificació dels kernels
- Nuclis de SO contemporanis
Tema 3. Planificació
- Introducció
- Criteris de planificació
- Algorismes de planificació bàsics monoprocessador
- FCFS (First Come First Served)
- SJF (SPN,SRT)
- Per prioritats
- Round Robin (torn rotatori)
- HRRN (Highest Response Ratio Next)
- Algorismes de planificació en cues
- Planificació cues multinivell
- Planificació cues multinivell amb retroalimentació
- Planificació amb processadors múltiples
- Planificació en temps real
- Exemples d’implementació
Tema 4. Mecanismes de comunicació, sincronització i exclusió mútua
- El problema de l’exclusió mútua i el dead-lock
- Exemple Productors - Consumidors
- Postulats de Dijkstra
- Conceptes associats: starvation, deadlock, fairness
- Dead Lock
- Gràfs de precedència
- Solucions hardware
- Solucions software
- Comunicació entre processos.
- Pipes
- Pas de missatges en C
- Sockets
- Memòria Compartida
- Eines d’Exclusió Mútua i Sincronització
- Semàfors
- Implementació
- Utilització
- Semàfors en C
- Monitors
CONTINGUTS PRÀCTICS
Tema 5. Crides al sistema
- Entorn de treball
- File Descriptors
- Signals
- Forks, exec.
- Threads.
- Sockets
- Pipes
- Select
- Memòria Compartida
- Cues de missatges
- Semàfors
L’assignatura combina explicació teòrica i treball pràctic amb l’objectiu de facilitar una comprensió progressiva i aplicada dels conceptes. Setmanalment es realitzen dues sessions lectives. A la primera sessió s’introdueixen nous continguts i eines mitjançant explicacions magistrals, que es complementen amb exemples i problemes per fomentar la participació activa de l’alumnat i la connexió entre els diferents temes del temari.
A la segona sessió es duu a terme una activitat de laboratori en què l’alumne ha de dissenyar i implementar solucions pràctiques utilitzant les tècniques presentades prèviament, especialment en el context de la programació en llenguatge C en sistemes UNIX i l’ús de crides al sistema. Al llarg del curs es proposen exercicis addicionals per resoldre de manera individual o en equip fora de l’aula, que posteriorment es revisen total o parcialment en sessions posteriors.
Finalment, l’assignatura inclou una pràctica de major abast, estructurada en diverses fases, que permet integrar i aplicar de manera global els coneixements i competències adquirits.
Els mètodes utilitzats per avaluar l’assignatura són:
- A. Exàmens
- C. Exàmens tipus test
- D. Exercicis fets a casa
- F. Informes o treballs en grup
- G. Treballs pràctics amb ordinador
- J. Participació a classe
- M. Altres (entrevistes individuals de validació)
L’assignatura consta de dues parts diferenciades: coneixements i pràctica, que s’avaluen de manera independent.
Per aprovar l’assignatura cal superar ambdues parts.
La nota final es calcula segons:
Nota_Final = 50% · Coneixements + 50% · Pràctica
Avaluació de coneixements
La nota de coneixements es calcula com:
Coneixements = 70% · Nota_Ex + 30% · Nota_Lab
on:
Nota_Ex = 80% · Ex_Final + 20% · Ex_Midterm
Per aplicar aquesta fórmula cal obtenir una qualificació mínima de 5 a cada examen.
Si el Midterm no s’aprova a la convocatòria ordinària es pot recuperar a la segona convocatòria.
També existeix un examen final de recuperació.
La nota de laboratori té funció d’avaluació contínua i només pondera a la primera convocatòria.
A la segona convocatòria:
Coneixements = Nota_Ex
Alliberament de l’examen final
L’estudiant pot alliberar l’examen final si compleix:
- Pràctica lliurada satisfactòriament abans de la primera convocatòria
- Assistència i qualificació de laboratori ≥ 4
- Nota de Midterm ≥ 5
- Assistència i participació a classe
En aquest cas:
Nota_alliberament = (55%·Pràctica + 30%·Nota_Lab + 15%·Ex_Midterm) · Nota_Participació
Els criteris d’avaluació de l’assignatura es defineixen a partir dels resultats d’aprenentatge establerts i permeten verificar el grau d’assoliment dels coneixements i competències previstes.
- RA.10. Conceptes bàsics dels sistemes operatius L’estudiant ha de ser capaç de:
- identificar i descriure els conceptes fonamentals associats als sistemes operatius, la seva estructura i el seu paper dins del sistema informàtic [A, C, J]
- utilitzar correctament la terminologia pròpia de l’assignatura en contextos teòrics i pràctics [A, C, J]
- resoldre qüestions conceptuals relacionades amb els continguts bàsics de l’assignatura [A, C]
- RA.11. Coneixement dels diferents components o subsistemes d’un sistema operatiu i de les tècniques o estratègies que s’apliquen a cadascun d’ells. L’estudiant ha de ser capaç de:
- descriure l’estructura bàsica d’un sistema operatiu i el funcionament dels seus principals components [A, C]
- analitzar mecanismes relacionats amb processos, interrupcions, planificació i gestió de recursos [A, C, D]
- comparar i justificar l’ús de diferents tècniques i estratègies aplicades als subsistemes d’un sistema operatiu [A, D, J]
- interpretar problemes i casos pràctics relacionats amb el comportament i l’organització interna del sistema operatiu [A, D, G]
- RA.12. Identificació, formulació i resolució de problemes amb processos concurrents que requereixen un sistema d’integritat de dades compartides L’estudiant ha de ser capaç de:
- identificar situacions de concurrència i els problemes associats, com ara exclusió mútua, deadlock, starvation o fairness [A, C, D]
- formular i resoldre problemes de sincronització i comunicació entre processos utilitzant les tècniques adequades [A, D, G]
- seleccionar i aplicar correctament mecanismes com semàfors, memòria compartida, pipes, cues de missatges o sockets en funció del problema plantejat [A, D, G]
- justificar les decisions adoptades en la resolució de problemes concurrents [A, G, M]
- RA.13. Disseny i implementació d’aplicacions multiprocés que tinguin compartició d’informació i comunicació entre processos L’estudiant ha de ser capaç de:
- dissenyar i implementar programes en llenguatge C sobre sistemes UNIX que utilitzin crides al sistema i mecanismes de comunicació i sincronització [G, D]
- desenvolupar solucions modulars, correctament estructurades i documentades [F, G]
- elaborar memòries tècniques que descriguin adequadament el disseny, la implementació i el funcionament de les solucions desenvolupades [F]
- defensar oralment les decisions de disseny i demostrar un coneixement suficient del funcionament del programa implementat [M]
- treballar de manera individual o col·laborativa en el desenvolupament de solucions pràctiques [F, G, M]
CANALETA, X. (2020). ''Exercicis i problemes d'examen de sistemes operatius´´, Publicacions La Salle, 2020.
HARBISON S.P. & STEELE G.L. (2002). C - A Reference Manual, Prentice Hall, 5th edition, 2002.
PETERSON, J.L. & 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, September 2014.
SALVADOR, J. (2011). Introducció al llenguatge de programació C, Publicacions La Salle, July 2011.
SILBERSCHATZ A., GALVIN P. & GAGNE, G. (2002). Sistemas Operativos, Editorial Limusa, ISBN: 968-18-6168-X STALLINGS, W. (2005). Sistemas Operativos, 5th Edition, Pearson Prentice Hall, ISBN: 84-205-4462-0
STEVENS, R., FENNER, B. & RUDOFF, A.M. (2004). UNIX Network Programming, Volume 1: "The sockets Networking API", Addison-Wesley Professional, 2004, 3rd edition, ISBN 0-13-141155-1.
STEVENS, R. & RAGO S.A. (2008). Advanced Programming in the UNIX Environment, Addison-Wesley Professional, 2008, 2nd edition.
TANENBAUM A.S. (2009). Sistemas Operativos Modernos, 3rd Edition, Pearson Prentice Hall, Pearson Educación, ISBN: 978-607-442-046-3.