Vés al contingut

Sistemes Operatius Avançats

Crèdits
6
Tipus
Obligatòria d'especialitat (Tecnologies de la informació)
Requisits
Departament
AC
Aquesta assignatura ofereix una visió interna d'un Sistema Operatiu, describint els serveis centrals que s'ofereixen al middleware amb la seva implementació.

Professorat

Responsable

  • Alex Pajuelo Gonzalez (mpajuelo@ac.upc.edu)

Altres

  • Juan José Costa Prats (jcosta@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 - Demostrar coneixement i comprensió del funcionament intern d'un computador i del funcionament de les comunicacions entre ordinadors.
    • 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.
    • 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.
  • 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.7 - Controlar versions i configuracions del projecte.
  • Especialitat tecnologies de la informació

  • CTI1 - Definir, planificar i gestionar la instal·lació de la infraestructura TIC de l'organització.
    • CTI1.4 - Seleccionar, dissenyar, desplegar, integrar, avaluar, construir, gestionar, explotar i mantenir les tecnologies de hardware, software i xarxes, dintre dels paràmetres de cost i qualitat adequats.
  • CTI3 - Dissenyar solucions que integrin tecnologies de hardware, software i comunicacions (i capacitat de desenvolupar solucions específiques de software de sistemes) per a sistemes distribuïts i dispositius de computació ubiqua.
    • CTI3.4 - Dissenyar software de comunicacions.
  • Tercera llengua

  • G3 [Avaluable] - Conèixer l'idioma anglès amb un nivell adequat de forma oral i escrita, i en consonància amb les necessitats que tindran els graduats i les graduades en Enginyeria Informàtica. Capacitat de treballar en un grup multidisciplinar i en un entorn multilingüe i de comunicar, tant per escrit com de forma oral, coneixements, procediments, resultats i idees relacionats amb la professió d'enginyer tècnic en informàtica.
    • G3.1 - Comprendre i utilitzar eficaçment manuals, especificacions de productes i altra informació de caràcter tècnic escrita en anglès.
  • Objectius

    1. Conèixer el funcionament d'un SO real, des de 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: CTI3.4, CT6.1, CT6.3, CT6.4, CTI1.4,
    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ó de l'entrada / sortida, codi de gestió dels processos i codi de càrrega de fitxers executables.
      Competències relacionades: CT6.1, CT6.3, CT7.2, CTI1.4,
    3. Descriure el funcionament del mecanisme d'inserció dinàmica de codi en un SO real
      Competències relacionades: CT6.1, CT6.3, CT8.7, CTI1.4,
    4. Detallar l'estructura interna d'un mòdul de nucli identificant els diferents components juntament amb la seva relació amb la interfície genèrica del SO i lús d'estructures en memòria per al control de l'entrada / sortida.
      Competències relacionades: CT6.1, CT6.3, CT8.7, CTI1.4,
    5. Conèixer la programació multifil, la problemàtica de l'ús compartit de memòria i la implementació de mecanismes d'exclusió mútua juntament amb el suport hardware necessari.
      Competències relacionades: CTI3.4, CT6.1, CT6.3, CT6.4, CTI1.4,
    6. 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 utilitzant llenguatge C i assemblador sobre una arquitectura intel x86.
      Competències relacionades: CTI3.4, CT6.1, G3.1, CT6.3, CT6.4, CT7.1, CT7.2, CT8.7, CTI1.4,
    7. Comparar i avaluar les diferents alternatives d'implementació de codi de gestió de recursos mitjançant mètriques de cost, eficiència i qualitat
      Competències relacionades: CT6.1, CT6.3, CT7.1, CT7.2, CT8.7,
    8. Dissenyar programari de comunicacions en aplicacions multiprocés i / o multifil.
      Competències relacionades: CTI3.4, CT6.4, CT7.2, CT8.7, CTI1.4,
    9. Saber utilitzar i entendre els documents tècnics en anglès proporcionats amb el sistema operatiu.
      Competències relacionades: G3.1, CT6.3,
    10. Utilitzar programari de control de versions.
      Competències relacionades: CT6.1, CT6.3, CT8.7,

    Continguts

    1. Introducció
      Aquest tema explica com el sistema operatiu ailla el hardware utilitzant els mecanismes de protecció que ofereix el processador. Es discutiran els mecanismes per invocar els serveis del sistema operatiu amb el seu codi associat.
    2. Gestió de memòria
      En aquest capítol es tractaran els següents temes: espai de adreces lògiques del procés. Sistemes de memòria basats en paginació i el seu suport hardware. Alternatives de disseny i implementació de sistemes de memòria en sistemes operatius actuals.
    3. Contexte d'execució
      Aquest tema analitza quina és la informació necessària que ha de tenir el sistema operatiu sobre un flux d'execució per tal de poder executar-lo, crear-lo, destruir-lo i multiplexar-lo dins del processador. Es discutirà la necessitat d'un cicle de vida en l'execució de programes, juntament amb les estructures necessàries per a implementar-lo. Es presentarà la problemàtica de la compartició de memòria a nivell de flux d'execució, així com els mecanismes d'exclusió mútua oferts tant pel processador com pel sistema operatiu.
    4. Accés a dispositiu
      Aquest tema descriurà el camí que segueix una petició d'accés des del mode usuari fins que arriba a un dispositiu en concret. Es descriuran les estructures necessàries per a gestionar l'accés a dispositius i com s'implementa un sistema operatiu que sigui independent dels dispositius físics. Es presentaran sistemes de fitxers virtuals (VFS) com a abstracció de sistemes de fitxers reals, i també sistemes de fitxers per a la virtualització d'entorns d'execució com ara els contenidors.
    5. Comunicació entre processos
      Aquest tema descriurà els mecanismes oferts pel sistema operatiu per a comunicar dos o més processos que s'estan executant en la mateixa màquina o en màquines diferents. Es descriuran les implementacions de canals (pipes), sòcols (sockets) i cues de missatges. Es presentaran i es discutiran les diferents implementacions de models de concurrència en servidors, juntament amb els mecanismes oferts pel sistema operatiu per a optimitzar-ne l'execució.

    Activitats

    Activitat Acte avaluatiu


    Introducció

    Adquisició de coneixement teòric
    Objectius: 1 2 7
    Continguts:
    Teoria
    2h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    2h

    Familiarització amb l'entorn de treball

    Adquisició del coneixement necessari per desenvolupar el laboratori.
    Objectius: 1 2 4 6 10
    Continguts:
    Teoria
    0h
    Problemes
    0h
    Laboratori
    2h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    4h

    Mode protegit

    Adquisició de coneixements sobre el mode protegit
    Objectius: 1 2 6 9
    Continguts:
    Teoria
    2h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    2h

    Implementació d'un punt d'entrada al sistema operatiu

    Implementació d'un punt d'entrada al sistema operatiu
    Objectius: 1 6 9 10
    Continguts:
    Teoria
    0h
    Problemes
    0h
    Laboratori
    4h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    6h

    Gestió de memòria

    Adquisició de coneixements
    Objectius: 1 2
    Continguts:
    Teoria
    4h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    4h

    Implementació de les taules de pàgines de sistema i usuari

    Implementació de taules de pàgines per a traduïr adreces en mode sistema i mode usuari
    Objectius: 1 2 6 9 10
    Continguts:
    Teoria
    0h
    Problemes
    0h
    Laboratori
    4h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    4h

    Contexte d'execució

    Adquisició de coneixements
    Objectius: 1 5 6 9
    Continguts:
    Teoria
    6h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    6h

    Implementació de gestió de processos

    Implementació de la creació, destrucció i planificació de processos / fils
    Objectius: 1 2 6 7 9 10
    Continguts:
    Teoria
    0h
    Problemes
    0h
    Laboratori
    8h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    10h

    Primer control de teoria


    Objectius: 1 2 5 6 7
    Setmana: 8
    Teoria
    0h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    0h

    Accés a dispositiu

    Adquisició de coneixement
    Objectius: 1 3 4 9
    Continguts:
    Teoria
    6h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    10h

    Projecte

    Extensió del nucli del sistema operatiu amb noves característiques
    Objectius: 1 2 5 6 7 10
    Continguts:
    Teoria
    0h
    Problemes
    0h
    Laboratori
    6h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    12h

    Comunicació entre processos

    Adquisició de coneixements
    Objectius: 1 5 7 8
    Continguts:
    Teoria
    4h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    2h

    Implementatició de comunicació entre processos

    Desenvolupament d'un servidor optimitzat que faci servir sockets
    Objectius: 1 2 8 9 10
    Continguts:
    Teoria
    0h
    Problemes
    0h
    Laboratori
    4h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    6h

    Segon control de teoria


    Objectius: 1 5 7 8
    Setmana: 14
    Teoria
    0h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    0h

    Exàmen final de teoria


    Objectius: 1 2 3 4 5 7
    Setmana: 15 (Fora d'horari lectiu)
    Teoria
    0h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    0h

    Examen final de laboratori


    Objectius: 1 2 5 6 7 8 9 10
    Setmana: 15 (Fora d'horari lectiu)
    Teoria
    0h
    Problemes
    0h
    Laboratori
    0h
    Aprenentatge dirigit
    0h
    Aprenentatge autònom
    0h

    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. Les primeres 7 setmanes es dissenyarà i implementarà el nucli d'un sistema operatiu didàctic anomenat Zeos. Les darreres 5 s'ampliará aquest nucli amb noves característiques. Les darreres dues setmanes, s'implementarà algun model de servidor amb sockets.

    Mètode d'avaluació

    La nota final de l'assignatura es compon de la nota de la competència tècnica (CT) i la nota de la competència transversal (CTr) mitjançant la fórmula:

    Nota Asig = (CT + CTr) * (10/11)

    On la nota màxima de la CTr és 1.

    La nota de la CT es pot obtenir per avaluació contínua (CTc) o, excepcionalment, mitjançant un examen final (CTf). Es calcula com:

    CT = max(CTc, CTf)

    La nota CTc està composta per diversos actes avaluatius: controls de teoria (T) i lliuraments de laboratori (L). La fórmula per calcular aquesta nota és la següent:

    CTc = 50\% T + 50\% L

    Per calcular T, s'utilitzen dos controls amb el mateix pes:

    T = 50% T1 + 50% T2

    Per calcular L, s'utilitza una nota de seguiment (S), un projecte (P) i un exercici de comunicació entre processos (E):

    L = 10% S + 50% P + 40% E

    La nota de seguiment (S) s'obté de l'avaluació que faci el professor sobre el progrés correcte del laboratori.La nota del projecte (P) correspon al disseny, seguiment i implementació d'un projecte.La nota de l'exercici (E) correspon al disseny, seguiment i implementació d'un programa en el qual s'utilitzin mecanismes de comunicació entre processos.

    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 ambdós exàmens. Només poden optar a aquesta nota els alumnes que no hagin aprovat l'avaluació contínua o que, havent-la aprovat, hi renunciïn. 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à els 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

    Complementari

    Web links

    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.