Sistemes Operatius per a Aplicacions Distribuïdes

Esteu aquí

Crèdits
6
Tipus
Complementària d'especialitat (Enginyeria del Software)
Requisits
  • Prerequisit: SO
Departament
AC
Intensificació dels conceptes bàsics de SO, enfocats al rendiment i eficiència d'aplicacions distribuïdes, com ara BBDD, cercadors, etc. S'estendran les estratègies de gestió de recursos a altres nivells, com runtimes, middlewares o llibreries.

Professors

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 - 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.
    Related competences: CT6.3, CES1.4, CES3.1, 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.
    Related competences: CT6.3, CT6.4, CT7.2, CT8.1, CES1.4, CES3.1, CT2.4, CES1.8,
  3. Comprendre la programació multifil, les restriccions associades al funcionament correcte de l'acces a memòria compartida i els mecanismes d'exclusió mutua.
    Related competences: CT7.1, CT7.2, CT7.3, CES1.4, CES3.1, CT2.4, G2.3,
    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.
    Related competences: CT7.1, CT7.2, CT8.1, CES2.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.

    Related competences: CT7.3, CT8.1, 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.
    Related competences: CT7.3, CT8.1, CES1.4, CES3.1, CT2.4, CES1.8,
    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.
    Related competences: CT6.3, CT7.3, CT8.1, CES1.4, CES2.2, CES3.1, G2.3, CES1.8,
    Subcompetences:
    • Detectar colls d'ampolla i problemes de rendiment en l'us de recursos distribuïts, com ara fitxers de BBDD o cerques d'informació.
    • Detectar limitacions d'escalabilitat.
  8. Entendre els aspectes tecnològics que impacten en els fenòmens econòmics, socials i ambientals.
    Related competences: CT7.3, CES2.2, 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.
    Related competences: CT6.4, CT7.2, CT7.3, CT8.1, CES2.2, CT2.4, G2.3,
    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.
    Related competences: CT6.3, CT6.4, CT7.2, CT8.1, CES1.4, CES3.1, CT2.4, G2.3,

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
3h
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


Objectius: 1 2 6 8 10 4
Setmana: 7
Tipus: entrega
Teoria
0h
Problemes
0h
Laboratori
0h
Aprenentatge dirigit
3h
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
4h
Problemes
6h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
8h

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
2h
Problemes
4h
Laboratori
1h
Aprenentatge dirigit
0h
Aprenentatge autònom
10h

Presentació final


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

Metodologia docent

L'assignatura està concebuda sobre el treball pràctic que l'alumne ha de desenvolupar en les sessions de laboratori, recolzada sobre una base teòrica.

La base teòrica es desenvolupara en classes organitzades i dirigides pel professor i amb la participació activa de l'alumne. A partir de referencies bibliogràfiques i documentació que el professor li facilitarà , els estudiants aniran adquirint experiencia sobre la gestió de recursos d'aplicacions distribuides i/o basades en distribució de dades.

La vessant pràctica de l'assignatura es desenvoluparà als laboratoris docents, mitjançant la realització d'un seguit de pràctiques tutelades. Les pràctiques seran inicialment experiments d'abast limitat per facilitar l'assoliment dels objectius previstos i posteriorment caldrà aplicar tots els coneixements adquirits per optimitzar una determinada situació o avaluar l'impacte de diferents sol.lucions, implementacions o politiques.

Al final del curs i en grups de 3-4 estudiants es presentarà un cas practic.

Mètode d'avaluació

Per avaluar l'assignatura es tenen en compte quatre qualificacions:

a. Teoria, que es pot obtenir per avaluació continuada (Av Cont) o la presentació final (Final). La nota d'avaluació continuada s'obtindrà dels problemes recollits a classe de problemes i un cas practic treballat en grups i presentat a mitat de curs com acte avaluatiu.
b. Nota de Laboratori (NL), que es la avaluació continuada del treball de les pràctiques de laboratori.
c. Presentació (Final). En grups de 3-4 estudiants presentaran a final de curs un treball en format pòster, article o presentació oral, on es mostri l'experiència adquirida durant el curs.
b. 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. Igualment a cadascú dels laboratoris hi haurà un punt basat en la competència transversal. El pes total serà un 10% de la nota Final. un 5% s'avaluarà a la teoria i un 5% al laboratori.
Només en el cas de no assistir a cap dels actes avaluatoris la nota final de l'assignatura serà No Presentat. La nota final s'obtindrà a partir de les següents fórmules:

NT = MAX(Av Cont, Final)
NL = 1/num.pract*[(NotaPr 1) + ... + (NotaPr n)]


NActa = (0,50*NL + 0,30*NT + 0,20*Pres)

Donat que l'assignatura té un mètode de treball continuat, l'assistència a classe es un factor critic i es considera obligatoria. Les faltes d'assistencia no justificades es valoraran de la següent manera:

- 1 ó 2: NL x0.9
- 3 ó 4: NL x 0.8
- 5 a 8: NL x 0.7
- 9 ó 10:NL x 0.5
Més de 10 faltes d'assitència: NL x0

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.