Sistemes Operatius per a Aplicacions Distribuïdes

Esteu aquí

Crèdits
6
Tipus
Complementària d'especialitat (Enginyeria del Software)
Requisits
  • Precorequisit: PAR
  • Prerequisit: SO
Departament
AC
Aquesta assignatura és una intensificació dels conceptes bàsics de SO. NO ES UNA ASSIGNATURA SOBRE SO DISTRIBUITS. El seu objectiu és entendre millor com la gestió de recursos per part del SO pot afectar al rendiment i eficiència d'aplicacions distribuïdes, com ara BBDD, cercadors, etc. S'estendran les polítiques i estratègies de gestió de recursos a altres nivells, com runtimes, middlewares o llibreries.

Professorat

Responsable

  • Marisa Gil Gomez ( )

Hores setmanals

Teoria
1
Problemes
2
Laboratori
1
Aprenentatge dirigit
0.4
Aprenentatge autònom
5.6

Competències

Competències Tècniques

Competències tècniques comunes

  • CT2 - Utilitzar d'una manera apropiada teories, procediments i eines en el desenvolupament professional de l'enginyeria informàtica en tots els seus àmbits (especificació, disseny, implementació, desplegament -implantació- i avaluació de productes) de manera que es demostri la comprensió dels compromisos adoptats a les decisions de disseny.
    • 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 - Demostrar coneixement i comprensió del funcionament intern d'un computador i del funcionament de les comunicacions entre ordinadors.
    • 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 - Avaluar i seleccionar plataformes de producció hardware i software per a l'execució d'aplicacions i de serveis informàtics.
    • 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 - Planificar, concebre, desplegar i dirigir projectes, serveis i sistemes informàtics en tots els àmbits, liderar-ne la posada en marxa, la millora contínua i valorar-ne l'impacte econòmic i social.
    • 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.

Competències Tècniques de cada especialitat

Especialitat enginyeria del software

  • CES1 - Desenvolupar, mantenir i avaluar serveis i sistemes software que satisfacin tots els requisits de l'usuari, que es comportin de forma fiable i eficient, que tinguin un desenvolupament i un manteniment assequible i que compleixin normes de qualitat aplicant les teories, els principis, els mètodes i les pràctiques d'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 - Valorar les necessitats del client i especificar els requisits software per a satisfer aquestes necessitats, reconciliant objectius en conflicte mitjançant la cerca de compromisos acceptables, dintre de les limitacions derivades del cost, del temps, de l'existència de sistemes ja desenvolupats i de les organitzacions.
    • 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 - Identificar i analitzar problemes; dissenyar, desenvolupar, implementar, verificar i documentar solucions software sobre la base d'un coneixement adient de les teories, dels models i de les tècniques actuals.
    • CES3.1 - Desenvolupar serveis i aplicacions multimèdia.

Competències Transversals

Sostenibilitat i compromís social

  • G2 [Avaluable] - Conèixer i comprendre la complexitat dels fenòmens econòmics i socials típics de la societat del benestar. Ser capaç d'analitzar i valorar l'impacte social i mediambiental.
    • 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

  1. 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,
  2. 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,
  3. 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.
  4. 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,
  5. 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.
  6. 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.
  7. 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ó.
  8. 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
  9. 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.
  10. 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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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

workshop on scheduling policies

Presentación de un trabajo en grupo que cubre los temas dados hasta el momento
Objectius: 1 2 6 8 10 4
Setmana: 6
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
5h

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 PowerTOP
Objectius: 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

Presentació final


Objectius: 3 10 9 5 4
Setmana: 14
Teoria
2h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
7h

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à de tres qüestionaris recollits a classe de problemes (un cada 5 setmanes de curs, aprox.) i un cas pràctic presentat 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.

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 = 0,5 (1/3 * [(Question1) + ... + (Question3)] ) + 0,5 * Midterm
NL = 1/num.pract * [(NotaPr 1) + ... + (NotaPr n)]

NACTA = (0,10 * NL + 0,45 * NT + 0,45 * Final)

Bibliografia

Bàsica:

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.