Crèdits
6
Tipus
Obligatòria d'especialitat (Enginyeria de Computadors)
Requisits
- Prerequisit: SO
Departament
AC
Web
http://docencia.ac.upc.edu/FIB/grau/SO2
Professorat
Responsable
- Juan José Costa Prats ( jcosta@ac.upc.edu )
Altres
- Alex Pajuelo Gonzalez ( mpajuelo@ac.upc.edu )
- Yolanda Becerra Fontal ( yolandab@ac.upc.edu )
Hores setmanals
Teoria
2
Problemes
0
Laboratori
2
Aprenentatge dirigit
0
Aprenentatge autònom
6
Competències
Competències tècniques comunes
- CT6.1 - Demostrar coneixement i tenir capacitat per a administrar i mantenir sistemes, serveis i aplicacions informàtiques.
- CT6.3 - Demostrar coneixement de les característiques, funcionalitats i estructura dels Sistemes Operatius que en permeti un ús adequat, administració i disseny, així com la implementació d'aplicacions basades en els seus serveis.
- CT7.3 - Determinar els factors que incideixen negativament en la seguretat i la fiabilitat d'un sistema hardware/software, i minimitzar-ne els efectes.
Actitud adequada davant el treball
- G8.3 - Estar motivat pel desenvolupament professional, per a afrontar nous reptes i per la millora contínua. Tenir capacitat de treball en situacions de falta d'informació.
Ús solvent dels recursos d'informació
- G6.3 - Planificar i utilitzar la informació necessària per a un treball acadèmic (per exemple, per al treball de final de grau) a partir d'una reflexió crítica sobre els recursos d'informació utilitzats. Gestionar la informació de manera competent, independent i autònoma. Avaluar la informació trobada i identificar-ne les llacunes.
Especialitat enginyeria de computadors
- CEC2.1 - Analitzar, avaluar, seleccionar i configurar plataformes hardware per al desenvolupament i l'execució d'aplicacions i serveis informàtics.
- CEC2.2 - Programar considerant l'arquitectura hardware, tant en assemblador com en alt nivell.
- CEC2.3 - Desenvolupar i analitzar software per a sistemes basats en microprocessadors i les seves interfícies amb usuaris i altres dispositius.
- CEC2.4 - Dissenyar i implementar software de sistema i de comunicacions.
- CEC2.5 - Dissenyar i implementar sistemes operatius.
- CEC3.1 - Analitzar, avaluar i seleccionar les plataformes hardware i software més adients per al suport d'aplicacions encastades i de temps real.
- CEC3.2 - Desenvolupar processadors específics i sistemes encastats; desenvolupar i optimitzar el software d'aquests sistemes.
- CEC4.1 - Dissenyar, desplegar, administrar i gestionar xarxes de computadors.
- CEC4.2 - Demostrar comprensió, aplicar i gestionar la garantia i la seguretat dels sistemes informàtics.
Objectius
-
Conèixer el funcionament d'un SO real, des que arrenca l'ordinador i la inicialització del sistema, passant per la gestió dinàmica de recursos, fins que s'apaga l'ordinador.
Competències relacionades: CEC2.5, CEC3.2, CT6.3, CEC2.2, CEC2.4, -
Conèixer els detalls de la implementació d'alguns dels components bàsics d'un SO real: codi d'inicialització, codi de gestió de memòria, codi de gestió de l'entrada / sortida, codi de gestió dels processos i codi de càrrega de fitxers executables.
Competències relacionades: CEC2.1, CEC2.3, CEC2.5, CT6.1, CT6.3, CT7.3, CEC2.2, CEC2.4, CEC4.2, -
Conèixer el mecanisme d'inserció dinàmica de codi sobre un SO real.
Competències relacionades: CEC2.5, CT6.1, CT6.3, CT7.3, CEC2.4, CEC3.1, CEC4.2, -
Ser capaç d'implementar un controlador de dispositiu i inserir-lo en un SO real.
Competències relacionades: CEC2.3, CEC2.5, CT6.1, CT6.3, CT7.3, CEC2.2, CEC2.4, CEC3.1, -
Conèixer la programació multifil, la problemàtica de l'ús compartit de memòria i els mecanismes d'exclusió mútua
Competències relacionades: CEC2.5, CEC3.2, CT7.3, CEC2.4, CEC4.2, -
Conèixer alguns factors de risc en la la seguretat d'un sistema operatiu.
Competències relacionades: CT7.3, CEC2.4, CEC4.2, -
Conèixer la implementació de diverses polítiques d'accés i seguretat.
Competències relacionades: CEC2.5, CT6.3, CT7.3, CEC2.4, CEC4.2, -
Ser capaç d'implementar alguns dels components bàsics d'un SO real: codi d'inicialització, codi de gestió de memòria, codi de gestió de l'entrada / sortida, codi de gestió dels processos i codi de càrrega de fitxers executables.
Competències relacionades: CEC2.3, CEC2.5, CEC3.2, CT6.1, CT6.3, CT7.3, CEC2.2, CEC2.4, -
Desenvolupar programari de sistema per una arquitectura específica com intel x86. Usant llenguatge C i assemblador.
Competències relacionades: CEC2.1, CEC2.3, CEC2.5, CEC3.2, CT6.1, CT6.3, CEC2.2, CEC2.4, -
Seleccionar els paràmetres del sistema operatiu més adequats en funció de la plataforma a utilitzar
Competències relacionades: CEC3.2, CT6.1, CT7.3, CEC3.1, CEC4.2, -
Buscar, organitzar i resumir informació rellevant i de qualitat sobre un tema desconegut. Escriure documents amb una reflexió crítica sobre les idees principals d'aquest tema.
Competències relacionades: G6.3, -
Saber descriure els conceptes més bàsics sobre la visió del SO de les xarxes de computadors.
Competències relacionades: CEC2.5, CEC4.1, CT6.3, CEC2.4, -
Tenir una actitud proactiva per la qualitat i la millora contínua
Competències relacionades: G8.3,
Subcompetences- Ser capaç de produïr un codi de qualitat que compleixi els requeriments dels enunciats, que sigui clar i ben organitzat.
- Ser capaç de valorar la qualitat d'un codi mitjançant rúbriques
-
Ser capaç d'adaptar-se a situacions de restriccions temporals i/o de recursos i/o de falta d'informació
Competències relacionades: G8.3,
Subcompetences- Ser capaç de realitzar un treball a partir d'enunciat que té manques d'informació.
- Ser capaç de realitzar un treball a partir d'enunciat que té manques d'informació.
Continguts
-
Inicialització del sistema
En aquest capítol s'explicaran totes les accions que es duen a terme per arrencar tots els serveis que ofereix un sistema operatiu. També es descriuran i discutiran les possibles implementacions d'aquest procés en sistema operatiu actual. -
Mecanismes d'entrada al sistema
Es descriuran i discutiran les possibles implementacions de mecanismes d'entrada al sistema juntament amb el seu suport hardware. Es detallaran els aspectes importants dels mecanismes i les dependències entre el sistema operatiu i el hardware. Es comentarà els avantatges de la implementació de tècniques de virtualització actuals. Es presentaran i discutiran les diferents implementacions de sistemes operatius actuals. -
Gestió de memoria
En aquest capítol es tractaran els següents temes: Espai d'adreces lògic del procés. Sistemes de memòria basats en paginació i el seu suport hardware. Disseny i implementació de la memòria virtual. Algorismes de reemplaç de la memòria virtual. Implementació de memòria compartida. Alternatives de disseny i implementació de sistemes de memòria en sistemes operatius actuals i dependència del hardware. -
Gestió de processos
En aquest capítol es tractaran els següents temes: Implementació detallada del bloc de control de procés. Implementació detallada del procés de creació de processos. Implementació detallada del procés de finalització de processos. Implementació detallada del procés de càrrega d'executables. Implementació detallada del canvi de context entre processos. Descripció detallada de les estructures i algorismes de planificació de processos. Implementació detallada de les rutines de planificació de processos. Descripció i discussió de les diferents implementacions de planificació de processos en sistemes operatius actuals. -
Extensió del nucli del sistema
En aquest capítol es tractaran els següents temes: Concepte, disseny i implementació de mòduls de nucli del SO. Càrrega de mòduls de nucli en temps d'inicialització del sistema i en temps d'execució. Descripció de l'accés a funcionalitats implementades en mòduls de nucli. Descripció de la relació entre mòduls de nucli i dispositius físics i lògics. -
Gestió de l'entrada / sortida i sistema de fitxers
En aquest capítol es tractaran els següents temes: Descripció i implementació de la part del SO independent i dependent del dispositiu. Implementació d'un descriptor de dispositius. Descripció, funcionament i implementació de les estructures relatives a la E / S i al sistema de fitxers. Descripció i implementació de l'estructura lògica del sistema de fitxers en disc. Mecanismes de comunicació entre processos a través del sistema de fitxers. Mecanismes de comunicació entre processos a través de la xarxa. Descripció i implementació de diversos sistemes de fitxers actuals. -
Memòria compartida
En aquest capítol es tractaran els següents temes: Problemàtica de tenir memòria compartida entre diversos fluxos d'execució dins d'un procés. Condicions de carrera. Zones d'exclusió mútua. Descripció i implementació de mecanismes d'exclusió mútua en l'accés a memòria compartida, en concret, test and set, mutex i semàfors. Descripció, implementació i discussió de mecanismes d'exclusió mútua en sistemes operatius actuals.
Activitats
Activitat Acte avaluatiu
Metodologia docent
L'assignatura tindrà principalment dos tipus de classe: teoria i laboratoris. Les classes de teoria seran per explicar els conceptes, dissenys i implementació dels diferents components d'un sistema operatiu actual. Aquestes classes es faran amb el suport de transparencies.Les classes de laboratori seran setmanals. Durant el laboratori es dissenyarà, i implementarà un sistema operatiu didàctic anomenat Zeos. Aquesta pràctica es realitzarà en grups de 2 persones.
Mètode d'avaluació
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.
La nota de la CT es pot obtenir obtenir per avaluació continuada (CTc) o excepcionalment per un examen final (CTf). Es calcula com:
CT = max (CTc, CTf)
La nota CTc avalua les components de teoria (T) i 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'utilitza un control (L1), una nota de seguiment (S) i un projecte (P):
L = 40% L1 + 10% S + 50% P
La nota de seguiment (S) s'extreurà de l'avaluació que faci el professor sobre el correcte progrés de l'alumne al laboratori.
La nota de projecte (P) correspon al disseny, seguiment i implementació final del projecte.
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
La nota de la competència transversal (CTr) 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
Bibliografia
Bàsic
-
Operating system concepts
- Silberschatz, A.; Galvin, P.B.; Gagne, G,
John Wiley & Sons,
2019.
ISBN: 9781119454083
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004148389706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Complementari
-
Understanding the Linux kernel
- Bovet, D.P.; Cesati, M,
O'Reilly,
2005.
ISBN: 9780596005658
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003076469706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
C: programming language
- Kernighan, B.W.; Ritchie, D.M,
Prentice Hall,
1988.
ISBN: 0131103628
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991000708719706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Windows internals
- Russinovic, M.; Salomon, D.A.; Ionescu, A,
Microsoft Press,
2012.
ISBN: 9780735648739
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003934729706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Capacitats prèvies
L'estudiant ha de tenir les capacitats técniques que li otorguen les assignatures cursades previament a més de un nivell d'anglés técnic mitjà com per llegir i entendre una documentació.En quant a capacitats técniques les podriem resumir en:
-En quant a sistemes operatius: Coneixement dels conceptes bàsics d'un sistema operatiu junt amb programació d'aplicacions fent servir la interficie genèrica de crides al sistema tot impartit a Sistemes Operatius.
-En quant a estructura de computadores: Coneixement dels elements principals d'un ordenador, relacio d'aquests elements entre si, representació interna de dades i coneixements de llenguatge màquina.
-En quant a programació: Capacitat de fer programes complexos i modularitzats desde cero que incloguin definició de tipus de dades, referències amb punters i codi en ensamblador. Compilació i muntatge d'executables.