Professorat
Responsable
- Marisa Gil Gomez ( marisa.gil@upc.edu )
Hores setmanals
Teoria
1
Problemes
2
Laboratori
1
Aprenentatge dirigit
0.4
Aprenentatge autònom
5.6
Competències
Competències tècniques comunes
- CT2.4 - Demostrar coneixement i capacitat per a aplicar les eines necessàries a l'emmagatzematge, el processament i l'accés als sistemes d'informació, fins i tot els que es basen en la web.
- 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.
- CT6.4 - Demostrar coneixement i capacitat d'aplicació de les característiques, de les funcionalitats i de l'estructura dels Sistemes Distribuïts i de les Xarxes de Computadors i d'Internet que en garanteixi l'ús i l'administració, així com el disseny i la implementació d'aplicacions basades en elles.
- CT7.1 - Demostrar coneixement de les mètriques de qualitat i saber-les utilitzar.
- CT7.2 - Avaluar sistemes hardware/software en funció d'un criteri de qualitat determinat.
- CT7.3 - Determinar els factors que incideixen negativament en la seguretat i la fiabilitat d'un sistema hardware/software, i minimitzar-ne els efectes.
- CT8.1 - Identificar tecnologies actuals i emergents i avaluar si són aplicables, i en quina mesura, per a satisfer les necessitats dels usuaris.
- CT8.4 - Elaborar el plec de condicions tècniques d'una instal·lació informàtica que compleixi els estàndards i la normativa vigent.
Especialitat enginyeria del software
- CES1.4 - Desenvolupar, mantenir i avaluar serveis i aplicacions distribuïdes amb suport de xarxa.
- CES1.8 - Desenvolupar, mantenir i avaluar sistemes de control i de temps real.
- CES2.2 - Dissenyar solucions apropiades en un o més dominis d'aplicació, utilitzant mètodes d'enginyeria del software que integrin aspectes ètics, socials, legals i econòmics.
- CES3.1 - Desenvolupar serveis i aplicacions multimèdia.
Sostenibilitat i compromís social
- G2.3 - Tenir en compte les dimensions social, econòmica i ambiental, i el dret a la privacitat a aplicar solucions i dur a terme projectes coherents amb el desenvolupament humà i la sostenibilitat.
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: CES1.4, CES3.1, CT6.3, CES1.8, -
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ó d'E/S, codi de gestió dels processos i codi de gestió de xarxa.
Competències relacionades: CES1.4, CES3.1, CT8.1, CT6.3, CT6.4, CT7.2, CES1.8, CT2.4, -
Comprendre la programació multifil, les restriccions associades al funcionament correcte de l'acces a memòria compartida i els mecanismes d'exclusió mutua.
Competències relacionades: CES1.4, CES3.1, CT7.1, CT7.2, CT7.3, G2.3, CT2.4,
Subcompetences- Identificar limitacions d'escalabilitat en la gestió d'informació del sistema.
-
Ser capaç d'entendre l'impacte en la potencia i el consum energètic de l'execució de funcions i/o aplicacions tenint en compte components emprats com: les estructures de dades, els algorismes, les polítiques i mecanismes i les tècniques de comunicació i sincronització basades en bloqueig i esperes.
Competències relacionades: CES2.2, CT8.1, CT7.1, CT7.2, CT8.4, G2.3, CES1.8, -
Conèixer la legislació bàsica existent en quant a la protecció de dades i propietat intel·lectual.
Competències relacionades: CT8.1, CT7.3, CT8.4, G2.3,
Subcompetences- Conèixer les possibilitats de combinació de hardware i software propietari i lliure i les conseqüències legals de desenvolupament i modificació de codi a partir de material ja existent.
- Entendre els problemes de responsabilitat legal relacionats amb el manteniment de les dades i robustesa del sistema.
-
Entendre l'impacte en quant eficiència i rendiment que pot causar el tenir diferents nivells de gestió de recursos.
Competències relacionades: CES1.4, CES3.1, CT8.1, CT7.3, CES1.8, CT2.4,
Subcompetences- Conèixer els mecanismes mes populars de comunicació entre nivells.
-
Conèixer diferents polítiques de planificació de sistemes de propòsit general, com ara Linux, i entendre les implicacions que pot tenir per l'aplicació l'ús d'una política determinada.
Competències relacionades: CES1.4, CES2.2, CES3.1, CT8.1, CT6.3, CT7.3, G2.3, CES1.8,
Subcompetences- Detectar limitacions d'escalabilitat.
- Detectar colls d'ampolla i problemes de rendiment en l'us de recursos distribuïts, com ara fitxers de BBDD o cerques d'informació.
-
Entendre els aspectes tecnològics que impacten en els fenòmens econòmics, socials i ambientals.
Competències relacionades: CES2.2, CT7.3, CT8.4, G2.3,
Subcompetences- Comprendre l'impacte energètic associat a diferents plataformes, depenent del rendiment
-
Ser capaç de dividir la gestió de recursos en capes, quan es treballa amb middlewares, llibreries o màquines virtuals.
Competències relacionades: CES2.2, CT8.1, CT6.4, CT7.2, CT7.3, G2.3, CT2.4,
Subcompetences- Seleccionar els paràmetres del SO mes adequats en funció de la plataforma a utilitzar.
-
Entendre l'assignació bàsica de recursos que fa el SO per que un programa o aplicació es pugui executar i les repercussions que pot tenir en quant a rendiment i us eficient de l'energia.
Competències relacionades: CES1.4, CES3.1, CT8.1, CT6.3, CT6.4, CT7.2, G2.3, CT2.4,
Continguts
-
Introducció
Definició de SO i conceptes bàsics. Estructura d'un sistema operatiu. Interficie d'usuari i gestió de recursos. Funcionalitats actuals bàsiques d'un SO. Altres softwares de gestió de recursos: servidors i middlewares. Gestió de recursos d'aplicacions distribuides: serveis remots, concurrència de serveis i dades. Sistemes heterogenis i hibrids. -
Arrencada i interficies de comunicació
Boot del sistema i definició de procés: estructures bàsiques del SO. Modes d'execució. Interrupcions.Crides al sistema i pas de missatges. -
Processos
Definició de procés i contexte: estructures bàsiques per mantenir el contexte d'un procés. Canvi de contexte. Planificació de processos: concurrència i sincronització. Polítiques de planificació: nivells de planificació. Contextes de diferent pes: procés, thread. Gestió de concurrència i parale.lisme en middlewares i servidors. -
Memòria
Processos i espais d'adreces: protecció i compartició d'espais. Support del hardware: Memòria virtual, TLB i caches. Modes d'acces: dades i codi, nivells de privilegi. Objectes de memoria i gestió des de diferents nivells (pools d'objectes, garbage collector). Llibreries estàtiques i llibreries dinàmiques. -
E/S
Principi d'indepèndencia d'E/S. Crides a sistema i llibreries. Drivers, descriptors i estructures relacionades. Dispositius virtuals i fisics. E/S síncrona i asíncrona. Compartició i modes d'acces: coherencia i distribució de dades. E/S multimedia. -
Sistema de Fitxers
Directori i gestió d'espai de noms. Operacions amb fitxers. Gestió concurrent de dades. Sistemes de fitxers virtuals. Gestió i migració de dades i binaris. Execució remota i bytecodes. -
Protecció i securetat
Definició de Protecció. Mecanismes de protecció. Autorització, control d'acces i integritat del sistema. Capabilities. Virus, worms i malware.
Activitats
Activitat Acte avaluatiu
Introducció al codi del SO: estructures de dades i accés als serveis
A partir de la introducció de l'assignatura, hi haurà una interacció entre els estudiants per a recordar conceptes ja treballats en assignatures prèvies i completar entre tots les nomenclatures bàsiques. Inclou la cerca d'informació i proposta de pautes per avaluar la competencia de sostenibilitat a partir de la definicio de competencies i del contingut del curs.Objectius: 1 2 8 5 4
Continguts:
Teoria
2h
Problemes
4h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
10h
Lab 1: mecanismes de comunicació amb el SO i objectes de primera classe: processos
A partir d'un SO reduit (ZeOS), l'estudiant treballara i completara el codi de gestio d'excepcions i interrupcions, fara una senzilla crida a sistema i completara informació bàsica que el SO necessita dels programes que s'estan executant.Objectius: 2 9 4
Teoria
0h
Problemes
0h
Laboratori
4h
Aprenentatge dirigit
0h
Aprenentatge autònom
10h
Informació i gestió de recursos de les entitats d'execució (processos, threads...)
Veure com afecte des de les estructures de dades i assignació de recursos, el treballar amb processos, threads o altres tipus d'objecte representant el programa en execució i els recursos i politiques assignades pel SO.Objectius: 6 3 9 4 7
Teoria
2h
Problemes
6h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
7h
Lab 2: mecanismes i polítiques de planificació de processos
A partir d'un mecanisme de cues i un política RR, s'implementaran diferents polítiques amb preempció i prioritats. L'estudiant haurà d'avaluar quines son les més apropiades depenen del tipus de treball (interactiu, calcul, sincronització...).Objectius: 2 6 3 9
Teoria
0h
Problemes
0h
Laboratori
4h
Aprenentatge dirigit
0h
Aprenentatge autònom
10h
Interacció de gestio de memoria amb differents nivells: Middlewares i màquines virtuals
A partir dels coneixements de l'us i assignació de memòria que fa el sistema als programes en execució, veure les alternatives i diferents estratègies d'assignació, reserva i mapeig, estàtica i dinàmicament, també implícita o explícitament, amb crides a sistema. Es treballarà l'avaluació de rendiment i les conseqüències de fer servir diferents polítiques d'assignació de recursos. A més es veuran les implicacions que té la gestió de recursos del propi middleware.Objectius: 1 2 6 9 5
Continguts:
Teoria
2h
Problemes
4h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
9h
Lab 3: Utilització d'eines per extreure informació sobre l'ús del recursos del sistema
Conèixer i utilitzar les eines de sistema bàsiques i les estructures de dades relacionades amb informació que s'obté del sistema per tal de millorar l'us que es fa des de les aplicacions del recursos bàsics: memòria, cpu, disk,... S'inclouen eines d'avaluació energètica com ara PowerTOPObjectius: 2 6 10
Continguts:
Teoria
0h
Problemes
0h
Laboratori
2h
Aprenentatge dirigit
0h
Aprenentatge autònom
4h
E/S
A partir de independència i uniformitat de les operacions d'E/S, aprofundir en la virtualització de dispositius (canals i ports), nivell d'abstracció, gestió de diferents característiques de compartició i distribució,... Resolució i discussió de casos basats en accessos a BBDD distribuïdes, patrons de cerques, replicació i distribució de dades, etc en quant al rendiment, eficiència i despesa energètica .Objectius: 1 2 9 4
Continguts:
Teoria
2h
Problemes
4h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
7h
Sistema de Fitxers
A partir dels coneixements ja adquirits a altres assignatures i el reforç de les classes de teoria, aprofundir en les operacions bàsiques de fitxers i els temes de compartició, replicació, etc de dades en situacions actuals com ara treball amb BBDD i/o cerques distribuïdes. Resolució i discussió de casos basats en accessos a BBDD distribuïdes, patrons de cerques, replicació i distribució de dades, etc en quant al rendiment, eficiència i despesa energètica .Objectius: 2 10 9 4
Continguts:
Teoria
2h
Problemes
6h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
5h
Lab 4: Gestio de E/S en aplicacions distribuides: Pas de missatges
Caracteritzar diferents modes d'accessos a dades depenent del tipus d'apliccació. Coneixer eines basiques per avaluar i caracteritzar el comportament i rendiment dels programes. A partir de petits benchmarks sobre diferents tamanys de dades i resultats, veure el comportament de diferents aplicacions distribuides (basades en web, cerques, BBDD,...).Objectius: 2 6 9 5 4
Continguts:
Teoria
0h
Problemes
2h
Laboratori
4h
Aprenentatge dirigit
0h
Aprenentatge autònom
0h
Protecció i seguretat
A partir de la informació facilitada es resoldran casos de privacitat i es proposaran eines i estructures que garanteixin la seguretat del sistema i la privacitat dels objectes d'usuari. S'extrauran conclusions i es farà un replantejament (si escau) sobre les pautes i consells de sostenibilitat en aquest àmbit.Objectius: 8 10 5
Teoria
1h
Problemes
4h
Laboratori
1h
Aprenentatge dirigit
0h
Aprenentatge autònom
10h
Sessió de resum sobre el paral·lelisme de les aplicacions
Un article o una xerrada tècnica en vídeo serviran per compartir allò après durant el curs en matèria de paral·lelisme i la seva aplicació a casos concrets en aplicacions o entorns distribuïts.
Teoria
0h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
6h
Aprenentatge autònom
0h
Metodologia docent
L'assignatura està concebuda sobre el treball pràctic que l'alumne ha de desenvolupar a les classes de problemes, recolzada sobre una base teòrica i per les proves realitzades al laboratori.La base teòrica es desenvoluparà a classes organitzades i dirigides pel professor i amb la participació activa de l'alumne. A partir de referències bibliogràfiques i documentació que el professor els facilitarà, els estudiants aniran aprofundint en lús i la gestió de recursos del sistema que les aplicacions distribuïdes i/o basades en distribució de dades necessiten per treballar eficientment. Per això triaran un projecte a l'inici de curs que aniran desenvolupant les setmanes successives.
Els exercicis al laboratori serviran com a base de proves per confirmar o modificar les estratègies i propostes dels projectes a classe. Es basaran en un guió que l'estudiant pot utilitzar com a suport.
Al final del curs i en grups de 4-6 estudiants presentaran el cas pràctic desenvolupat.
Mètode d'avaluació
Per avaluar l'assignatura es tenen en compte les següents qualificacions:a. Teoria (NT), que s'obtindrà d'un cas pràctic presentat individualment a mig curs (Midterm) com a acte avaluatiu.
b. Laboratori (NL), que és l'avaluació continuada del treball de les pràctiques de laboratori. El laboratori serveix com a suport a les propostes de la classe de problemes, per entendre millor el funcionament i justificar costos d'eficiència.
c. Presentació (Final). En grups de 4-6 estudiants presentaran a final de curs un treball en format pòster, article o presentació oral, on es mostri lexperiència adquirida durant el curs.
d. Avaluació de la competència transversal: Per a cada tema de l'assignatura hi haurà una pregunta basada en criteris de sostenibilitat i compromís social. El pes total serà un 10% de la nota final: un 5% s'avaluarà en teoria i un 5% al laboratori.
Només en cas de no assistir a cap dels actes avaluadors la nota final de l'assignatura serà "No Presentat".
La nota final s'obtindrà a partir de les fórmules següents:
NT = Midterm
NL = 1/num.pract * [(NotaPr 1) + ... + (NotaPr n)]
NACTA = (0,20 * NL + 0,40 * NT + 0,40 * Final)
Bibliografia
Bàsic
-
Operating system concepts essentials
- Silberschatz, A.; Galvin, P.B.; Gagne, G,
John Wiley & Sons,
2011.
ISBN: 978-0-470-88920-6
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003836629706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Operating systems in depth
- Doeppner, T.W,
John Wiley & Sons,
2010.
ISBN: 978-0-471-68723-8
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003850919706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Database System Concepts
- Silberschatz, A.; Korth, H.F; Sudarshan, H.F.K,
McGraw-Hill,
2011.
ISBN: 9780073523323
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003836059706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Capacitats prèvies
L'estudiant ha de tenir les capacitats tècniques que li atorguen les assignatures cursades prèviament a més de un nivell d'anglès tècnic fluït per llegir i entendre una documentació, així com per a poder comunicar oralment .En quant a capacitats tècniques les podríem resumir en:
-Sistemes operatius: Coneixement dels conceptes bàsics d'un sistema operatiu junt amb programació d'aplicacions fent servir la interfície genèrica de crides al sistema tot impartit a Sistemes Operatius.
-Estructura de computadors: Coneixement dels elements principals d'un ordenador, relació d'aquests elements entre si, representació interna de dades i coneixements de llenguatge màquina.
-Programació: Capacitat de fer programes complexos i modulars des de cero que incloguin definició de tipus de dades, referències amb punters i codi en assemblador. Compilació i muntatge d'executables.
-Paral·lelisme: entendre la distribució de tasques per aconseguir un objectiu. Treballar concurrentment i sincronitzant-se en punts concrets. Protegir les dades i la fiabilitat de resultats quan s'hi accedeix des de diferents tasques.