|
Crèdits: |
Departament: |
Tipus: |
Requisits: |
||||||||
|
7.5 |
AC |
· Obligatòria per l'EI · Optativa per l'ETIG ·
Optativa per l'ETIS |
|
|
Aquesta assignatura té 7.5 crèdits assignats, això implica un total
de 150 hores de treball per curs. Recordeu que té un alt component
de treball extra pel tipus d'assignatura. No és recomanable matricular-se
conjuntament amb altres assignatures de projecte. |
Els estudiants disposeu d'un fòrum de discussió de l'assignatura al mateix
Racó.
Deixarem els avissos i notes al Raco
de
Per consultes sempre confirmeu
prèviament per e-mail. Totes les adreces d'e-mail acaben amb
@ac.upc.edu
Yolanda Becerra (coordinadora, email: yolandab)
Despatx: C6-206
Consultes: Dilluns de 11:00 a 13:00 i de
15:00 a 17:00, i Dijous de 10:00 a 12:00
Juan Jose Costa (email:
jcosta )
Despatx: C6-117
Consultes: Dimarts de 10:00 a 12:00 i de 16:00 a
17:00, i Dijous de 15:00 a 17:00 i de 18:00 a 19:00
Rubén González (email: gonzalez )
Despatx: D6-212
Consultes: Dijous de 15:00 a 18:00
i Divendres de 11:00 a 14:00
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.
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
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.

Els
estudiants han de preparar previament les classes de teoria.
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.
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.
El projecte de sistemes operatius consta de
dues parts:
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.
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
Durant el curs es faran dues entregues parcials (de seguiment) pel
projecte 1 i una entrega final per a cada projecte. Totes les
entregues puntuen, tot i que cap és imprescindible (si no es fa una
entrega determinada, es puntua amb un 0). Després de cada entrega, el
tutor farà saber a cada estudiant els aspectes del seu projecte que
són incorrectes i que s'han de corregir/millorar de cara a les
properes entregues. Al final de cada projecte, l'estudiant haurà de
validar el codi que ha entregat. Això ho farà responent per escrit al
seu tutor una sèrie de preguntes sobre els conceptes que ha hagut
d'aplicar per al seu desenvolupament. L'avaluació de cada projecte
tindrà en compte tres components: la correcció del codi entregat, una
valoració global de l'evolució de l'estudiant i les respostes donades
al seu tutor per validar el codi.
El primer projecte tindrà dues entregues de seguiment parcials i una entrega
final. El segon projecte tindrà una només una entrega final.
Cada entrega parcial es farà via racó.
Juntament amb l'última entrega de cada
projecte es farà també entrega de la documentació global del projecte. És
convenient per tant anar preparant-la durant tot el projecte.
També al final de cada projecte, els estudiants hauran de
validar el projecte que han entregat responent per escrit un conjunt de
preguntes sobre els conceptes aplicats en el desenvolupament del seu
codi.
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. Tot i que aquesta primera sessió no té nota associada és obligatori fer-la. Al qüestionari final del projecte es podran preguntar aspectes relacionats amb aquesta entrega. El fet de no saber utilitzar l'entorn de treball, per exemple el debugger o comandes com l'objdump podria suposar perdre punts a la nota del projecte.
E1.1: La segona part correspon als mecanismes d'entrada al sistema: interrupcions (rellotge i teclat), excepcions i crides a sistema. Aquesta part correspon a la primera entrega parcial que es farà el dia 27/02 que es farà via Racó.
E1.2. La tercera part correspon principalment a la gestió de processos. Aquesta part correspon a la segona entrega que es farà el dia 27/3 via Racó.
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 1/5 via Racó.
Entrega P2
E2.1 (entrega única P2) La del segon projecte es farà el dia 22/5.
Test amb conceptes previs que tothom hauria de
conèixer.
- Transparencies
de l’assignatura
- Per la entrega final: Descripció de la documentació a entregar i que s'ha de fer al projecte 1 ZEOS
- Llibreries amb tests : Aquest paquet conté unes llibreries amb uns tests que us poden ajudar a validar el vostre codi. Tingueu en compte que hi han coses que no es poden control.lar amb un joc de proves genèric per tothom (això vol dir que hi poden haver errors en el vostre codi que aquestes llibreries no detecti). Per executar els tests només heu de cridar la rutina runjp des del user.c i enllaçar l'executable d'usuari amb la llibreria corresponent (al paquet hi trobareu un fitxer README amb unes instruccions d'us més detallades).
- Apèndix programació en C: Convencions i punters
A final de curs els estudiants hauran de validar el codi que han entregat responent per escrit un conjunt de preguntes sobre els conceptes necessaris per a desenvolupar el codi dels seus projectes. El resultat d'aquest qüestionari farà mitja amb la nota treta amb les entregues de cada projecte.
El projecte 1 té tres entregues:
Nota final projecte 1: 50% entregues, 50% qüestionari
Projecte 2: 30%
Nota final projecte 2: 50% entregues, 50% qüestionari
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
The Linux Documentation
project
Pàgina web de
Willian Stallings (amb transparencies del llibre i altres links molt
interesants)
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
![]()
Aquesta obra està subjecta a una Llicència de Creative
Commons.
Última modificació:24 abril, 2008