Projecte de Sistemes Operatius (PROSO)

Curs 2007/2008 (quadrimestre primavera)

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

 

 

 

Aquesta assignatura té 7.5 crédits asignats, aixó implica un tota d'hores de treball de 150 hores per curs. Recordeu que té un alt components de treball extra pel tipus de assignatura. No és recomanable matricular-se conjuntament amb altres assignatures de projecte.

 


 

Professors

Objectius de l'assignatura

Projectes

Contingut detallat

Metodologia docent

Avaluacio

Bibliografia i documentació

Conceptes previs

Planificació

 

        Els estudiants disposeu d'un fòrum de discussió de l'assignatura al mateix Racó.   
        Deixarem els avissos i notes al Raco de la FIB


Professors

Totes les adreces d'e-mail acaben amb @ac.upc.edu

Per consultes sempre confirmeu prèviament per email:
Julita Corbalan (coordinadora, email: juli)
    Despatx:  C6-203 

    Consultes:  Dimarts 10-12.

 Marisa Gil
    email: marisa
    Despatx:  C6-110

    Consultes: , i per e-mail

 Juan Jose Costa (email: jcosta )

    Despatx:  C6-117
    Consultes:  Dimarts de 15-18 i Dijous de 10-13

Pablo Chacin (email: pchacin)

    Despatx: D6-212

    Consultes: Divendres de 10-12

Yolanda Becerra (email: yolandab)

   Despatx: C6-206

   Consultes: Dimarts de 15:00 a 18:00 i Dimecres de 10:00 a 13:00

Ruben González (email: gonzalez )

   Despatx: D6-212

   Consultes: Dijous de 15:00 a 17:00h. Dimecres de 15:00  a 19:00h

 

 

Tornar


Objectius de l'assignatura

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.

Tornar


Conceptes previs

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.

Tornar


PLANIFICACIó

 

Aquesta és la planificació del curs per setmanes. Potser modificada per cada grup. En aquest cas s’avisaria o be a classe de teoria o mitjançant una nota al raco.

 

 

Les classes de teoria s’han d’haver preparat prèviament. Això vol dir haver llegit prèviament la documentació d’aquesta part i haver repassat aquells conceptes d’assignatures anteriors que no es tinguin clars.


Projectes

Descripció

El projecte de sistemes operatius consta de dues parts:
Projecte 1: implementació del nucli d'un sistema operatiu . En aquest projecte utilitzarem l’eina Bochs.
Projecte 2: implementació d’un device driver per Linux

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. Durant les entrevistes es faran preguntes tant de la vostra pràctica com de sistemes operatius en general. La demostració del funcionament del projecte ha d'incloure (per cada entrega parcial) un joc de proves fet per vosaltres a part del que us puguem donar com a exemple.

El joc de proves ha de demostrar:

Juntament amb la última entrevista de cada projecte es farà també entrega de la documentació global del projecte.  És convenient per tant anar preparant-la durant tot el projecte.

Entregues P1

P0 : La primera es una sessió introductòria, en la qual s’introdueixen les eines que s’utilitzaran  durant el projecte i es treballa el mecanisme d’arrencada del sistema. Aquesta primera sessió no té entrevista amb el tutor però és obligatòria fer-la. Es podran preguntar aspectes relacionats amb aquesta entrega durant qualsevol de la resta de les entrevistes. El fet de no saber utilitzar l'entorn de treball, per exemple el debugger de Bochs o comandes com l'objdump podria suposar perdre punts a l'entrega corresponent.

E1.1: La segona part correspon als mecanismes d'entrada al sistema: interrupcions (rellotge i teclat), excepcions i crides a sistema, així com implementació de llistes Aquesta part correspon a la primera entrega parcial que es farà el dia 02/03 que es farà via Racó. Durant la setmana següent es faran les entrevistes amb el tutor. 

E1.2. La tercera part correspon principalment a la gestió de processos. Aquesta part correspon a la segona entrega que es farà el dia 06/04 via Racó.  Durant la setmana següent es faran les entrevistes amb el vostre tutor.

E1.3. La quarta part correspon a la gestió d’Entrada/sortida. En aquesta entrega s'haurà d'entregar la documentació i el codi de tot el projecte (fitxer .tar.gz), així com també fer una entrevista amb el vostre tutor. Aquesta entrega es farà el dia 04/05 via Racó. Les entrevistes es faran la setmana següent amb el vostre tutor.

Entrega P2

E2.1 (entrega única P2) La del segon projecte es farà el dia 25/5. Les entrevistes es faran la última setmana de curs.

INFORMES PREVIS

Per evitar aquells cassos en que arribeu a les entrevistes sense haver validat les vostres propostes amb el vostre tutor hem incorporat la obligatorietat d’entregar uns informes previs a les entregues. Haureu d'entregar un informe previ a la entrega 1.2, 1.3 i al P2. (E2.1). Aquests informes seran de com a màxim un parell de fulls perquè l’objectiu no és donar feina addicional sinó que és validar el que penseu fer. Per tant, idealment els hauríeu de validar abans de començar a picar codi. Sempre s'han de validar amb el vostre tutor i en cas que no pugueu anar al laboratori haureu de quedar en algun moment fora d’hores de laboratori. El fet de no validar amb el tutor aquest informe previ implicarà tenir un 0 en aquesta entrega.

Els informes previs es faran la primera setmana de teoria de cada entrega. Aquest document descriu que heu d'entregar en el cas dels informes previs del P1 (és una guia que heu d’aplicar segons la entrega en concret).

ENUNCIATS

Test amb conceptes previs que tothom hauria de conèixer.
Solucions al test.

PROJECTE 1

- Fitxers bàsics de Zeos

- Enunciat Projecte 1

-Transparencies de l’assignatura (versió mht)

- Per la entrega final: Descripció de la documentació a entregar i que s'ha de fer al projecte 1 ZEOS

- Fitxers del joc de proves:

- Fitxers del joc de proves de les llistes

- Apèndix assemblador i386

- Apèndix preprocessador C

- Apèndix programació en C: Convencions i punters

PROJECTE 2

- Enunciat Projecte 2

Tornar


Avaluació

Normativa copies

El codi font de les vostres pràctiques ha de ser totalment original. Si en algun cas consulteu algun codi que no és original vostre, heu d'incloure una referència indicant el seu origen. Si no apareix aquesta referència es considerarà un cas de còpia i aquella entrega tindrà una nota de 0.

Projecte 1: 70%

 

    El projecte 1 té tres entregues:

   

Projecte 2: 30%


Tornar


Contingut detallat

(Consulteu la guia docent de la FIB)

Tornar


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 professor anirà a unes hores de laboratori prèviament concertades.

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


Tornar

 


 

Bibliografia i documentació

Bibliografia bàsica

Bibliografia complementària

Links d’utilitat

Sobre bochs

En aquest link trobareu un video sobre com instalar bochs 2.3 en Ubuntu. Es cortesia d'un company vostre del curs 2006-2206Q1 (Lluis M. García)
     http://www.labav1.org/bochs_proso/bochs_proso.html

Bochs debugging

Instal.lació de Bochs

Sobre Linux

The Linux Documentation project

Linux i386 Boot Code HOWTO

Linux 2.4.x Initialization for IA-32 HOWTO

Linux kernel online book

Linux Cross-Reference

Linux source code

Linux kernel coding style

Linux Virtual File System

Sobre S.O en general

Pàgina web de Willian Stallings (amb transparencies del llibre i altres links molt interesants)

Sobre arquitectura

Transparencias de las asignatura ec2 de plan nuevo. Código ensamblador

Manuals sobre l'arquitectura del PC i manuals tècnica de Intel 80x86

Intel, Intel Architecture Software Developer's Manual, vol 3: System programming

Sobre compiladors

Manuales GCC

Manual us Makefile

 

Tornar


Creative Commons License
Aquesta obra està subjecta a una Llicència de Creative Commons.

Última modificació:24 abril, 2008