Anar a: Buscar
FIB > Els estudis > Pàgines de les assignatures > Departament AC > PROSO Castellano | English
ASO
PCA
EC2
USO
PIAM
XC
EDSO
PXCSO
SODX
DM
SPD
PXC
SSI
CARS
IC
MP
EC1
SO
PROSO
XCA
AC
ACA



Projecte de Sistemes Operatius ( PROSO )

Crèdits: Departament: Tipus: Requisits:
7.5 AC
  • Obligatòria per l'EI
  • Optativa per l'ETIG
  • Optativa per l'ETIS
  • EC2 - Pre-requisit per l' EI , ETIG , ETIS
    PRED - Pre-requisit per l' EI , ETIG
    PS - Pre-requisit per l' ETIS
    SO - Pre-requisit per l' EI , ETIS

    Professors

    Responsable:  Jordi García Almiñana (jordigac.upc.edu).
    Altres:Jordi Guitart Fernandez (jguitartac.upc.edu)
    Julita Corbalan Gonzalez (juliac.upc.edu)
    M. Luisa Gil Gomez (marisaac.upc.edu)
    Sergi Girona Turell (sergiac.upc.edu)
    Toni Cortés Roselló (toniac.upc.edu).

    Objectius Generals

    1. Conèixer de manera pràctica com funciona internament un SO.
    2. Ser capaç d'implementar des de zero els components bàsics del nucli d'un SO.
    3. Ser capaç de desenvolupar noves funcionalitats sobre un SO real.

    Objectius Específics

    Coneixements

    1. Conèixer el funcionament d'un SO real, des de l'arranc de l'ordinador i l'inicialització del sistema, passant per la gestió dinàmica dels recursos, fins que s'apaga l'ordinador.
    2. Conèixer els detalls d'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.
    3. Conèixer el mecanisme d'inserció dinàmica de codi sobre un SO real: mòduls a linux.
    4. Conèixer el concepte de dispositiu especial a linux i el concepte de manegador de dispositiu (device driver).

    Habilitats

    1. Ser capaç d'implementar un programa complex i de molt baix nivell des de zero.
    2. Ser capaç d'afegir codi de baix nivell que interaccioni amb un codi real complex i de molt baix nivell.
    3. Domini de les eines i metodologies de desenvolupament i depuració de codi de baix nivell.

    Competències

    1. Capacitat per treballar efectivament en grups petits de persones per a la resolució d'un problema de dificultat gran.
    2. Capacitat per dissenyar sistemes, components o processos que s'ajustin a unes necessitats, utilitzant els mètodes, tècniques i eines més adients en cada cas.
    3. Capacitat d'abstracció. Capacitat d'enfrontar-se a problemes nous recorrent conscientment a estratègies que han estat útils en problemes resolts anteriorment.
    4. Capacitat de resoldre problemes aplicant els mètodes de la ciència i l'enginyeria.
    5. Capacitat i experiència en la programació de codi complex i de molt baix nivell.

    Continguts

    Hores estimades de:

    T P L Alt L Ext. Est A Ext.
    Teoria Problemes Laboratori Altres activitats Laboratori extern Estudi Altres hores fora d'horari fixat

    1. Procés de boot i inicialització del sistema operatiu.
      T     P     L    Alt  L Ext  Est  A Ext Total
     1,0   0   4,0   0   5,0   0   0   10,0 
    Descripció del procés de boot i l'inicialització del sistema operatiu. Descripció de l'entorn de desenvolupament sobre linux i de les eines de compilació i depuració que s'utilitzaran al primer projecte.
    • Laboratori:
      Instal.lació l'entorn de desenvolupament i creació d'un disc d'arranc amb la rutina bàsica d'inicialització del sistema operatiu i el procés inicial.
    • Activitats de laboratori addicionals:
      Instal.lació de linux i de les eines de desenvolupament.
      Implementació del primer projecte.

    2. Mecanisme de crida al sistema: trap.
      T     P     L    Alt  L Ext  Est  A Ext Total
     2,0   0   8,0   0   10,0   0   0   20,0 
    Descripció de l'arquitectura del mode d'execució protegit: mode usuari i mode sistema. Mecanisme de crida al sistema: trap. Creació de la llibreria de crides al sistema i de la rutina de servei a les crides al sistema.
    • Laboratori:
      Implementació de la llibreria de crides al sistema i de la rutina de servei a les crides al sistema.
    • Activitats de laboratori addicionals:
      Implementació del primer projecte.

    3. Gestió bàsica de la memòria.
      T     P     L    Alt  L Ext  Est  A Ext Total
     1,0   0   4,0   0   5,0   0   0   10,0 
    Descripció de l'espai d'adreçament d'un procés. Inicialització de la taula de pàgines.
    • Laboratori:
      Implementació de les rutines per la gestió simple de la memòria.
    • Activitats de laboratori addicionals:
      Implementació del primer projecte.

    4. Gestió bàsica del terminal.
      T     P     L    Alt  L Ext  Est  A Ext Total
     2,0   0   8,0   0   10,0   0   0   20,0 
    Descripció de les rutines i estructures de dades per la gestió bàsica del terminal: taula de canals d'un procés i rutines de lectura i escriptura.
    • Laboratori:
      Implementació de les rutines i estructures de dades per la gestió bàsica del terminal: taula de canals d'un procés i rutines de lectura i escriptura.
    • Activitats de laboratori addicionals:
      Implementació del primer projecte.

    5. Gestió i planificació de processos.
      T     P     L    Alt  L Ext  Est  A Ext Total
     3,0   0   12,0   0   15,0   0   0   30,0 
    Descripció de les rutines i estructures de dades bàsiques per la gestió de processos: creació i destrucció de processos, planificació de processos i rutina de servei al rellotge.
    • Laboratori:
      Implementació de les rutines i estructures de dades bàsiques per la gestió de processos: creació i destrucció de processos, planificació de processos i rutina de servei al rellotge.
    • Activitats de laboratori addicionals:
      Implementació del primer projecte.

    6. Càrrega d'un fitxer executable.
      T     P     L    Alt  L Ext  Est  A Ext Total
     1,0   0   4,0   0   5,0   0   0   10,0 
    Descripció del procés de càrrega d'un fitxer executable i canvi d'imatge d'un procés.
    • Laboratori:
      Implementació de les rutines de càrrega d'un fitxer executable i canvi d'imatge d'un procés.
    • Activitats de laboratori addicionals:
      Implementació del primer projecte.

    7. Gestió dels dispositius a linux: device drivers.
      T     P     L    Alt  L Ext  Est  A Ext Total
     1,0   0   4,0   0   5,0   0   0   10,0 
    Concepte i ús dels mòduls a linux.
    Concepte i ús dels dispositius a linux.
    • Laboratori:
      Implementació d'un mòdul bàsic per la gestió d'un dispositiu lògic a linux.
    • Activitats de laboratori addicionals:
      Implementació del segon projecte.

    8. Implementació d'un manegador de dispositiu.
      T     P     L    Alt  L Ext  Est  A Ext Total
     4,0   0   16,0   0   20,0   0   0   40,0 
    Descripció del concepte d'un manegador de dispositius (device driver). Descripció de les tècniques d'inserció de codi al kernel de linux.
    • Laboratori:
      Implementació d'un device driver que gestioni informació del kernel de linux.
    • Activitats de laboratori addicionals:
      Implementació del primer projecte.


    - Total per tipus
      T     P     L    Alt  L Ext  Est  A Ext Total
     15,0   0   60,0   0   75,0   0   0   150,0 
    - Hores addicionals dedicades a l'avaluació:
    2,5
    - Total hores de treball per l'estudiant
    152,5

    Projecte

    Descripció

    El projecte de sistemes operatius consta de dues parts:
    Projecte 1: implementació del nucli d'un sistema operatiu
    Projecte 2: implementació d'un device driver per linux

    Pla de desenvolupament

    Cada projecte està organitzat en diverses parts. Per cada part, es farà un repàs dels conceptes teòrics associats i una descripció del projecte a realitzar.

    En acabar cada una de les parts, es farà una entrega/seguiment parcial consistent en una entrevista i una demostració del funcionament del projecte.

    Metodologia docent

    A les classes de teoria es repassaran els conceptes bàsics de sistemes operatius que es necessiten pel projecte i es farà una descripció de l'enunciat del projecte.

    A les classes de laboratori s'anirà implementant el projecte, generalment amb el suport del professor de laboratori. Tanmateix, l'alumne disposarà d'una quantitat d'hores de laboratori per continuar i acabar el projecte.

    El primer projecte tindrà dues entregues de seguiment parcials i una entrega final. El segon projecte tindrà una entrega de seguiment parcial i una entrega final.

    Mètode d'avaluació

    Projecte 1: 60%
    Projecte 2: 40%

    El projecte 1 tindrà dues entregues parcials (de seguiment) i una entrega final. El projecte 2 tindrà una entrega parcial (de seguiment) i una entrega final. Totes les entregues puntuen.

    Projecte 1.
    - entrega parcial 1: 10%
    - entrega parcial 2: 10%
    - entrega final: 40% (total projecte 1 es 60%)

    Projecte 2.
    - entrega parcial: 10%
    - entrega final: 30% (total projecte 2 es 40%)

    Cap entrega és obligatòria. En cas de que no s'entregui alguna part, quedara una nota de 0 a la entrega corresponent.

    Bibliografía bàsica

    • RUBINI, Alessandro Linux device drivers, 2nd ed., O'Reilly & Associates, Inc., 2001.

    Bibliografía complementària

    • KERNIGHAN, Brian W and PIKE, Rob The Practice of Programming, Addison-Wesley Professional Computing Series, 1999.

    Enllaços web

    (Informació no introduïda)

    Capacitats prèvies

    L'alumne ha de conèixer els fonaments bàsics de l'estructura d'un sistema operatiu.
    A més, es requereixen coneixements de programació a baix nivell, preferiblement en els llenguatges de programació C i assemblador de l'i386. També són útils conceptes de programació en alt nivell així com conceptes d'estructures de dades. Finalment, és convenient que tingui experiència en l'ús del sistema operatiu linux i d'eines bàsiques de programació i depuració de programes.

    Per tant, les assignatures que s'haurien de cursar abans d'aquesta són SO, EC2 i EDA.



    versió per imprimir