|
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: Dijous de 9:00
a 11:00, de 14:00 a 15:00 i de 17:00 a 19:00 i Divendres de 12:00 a 13:00
Julita Corbalán (email: juli)
Despatx: C6-203
Consultes: Dilluns de 12:00 a 13:30, Dimarts
de 12:00 a 13:30 i Dimecres de 10:00 a 11:00
Juan Jose Costa (email:
jcosta )
Despatx: C6-117
Consultes: Dilluns de 15:00 a 17:00, Dimarts de
12:00 a 14:00 i de 17:00 a 19:00
Marisa Gil (email: marisa )
Despatx: C6-110
Consultes: Dilluns i Dijous de 12:00 a 14:00
Rubén González (email: gonzalez )
Despatx: D6-212
Consultes: Dimecres de 11:00 a
13:00, Divendres de 11:00 a 13:00 i de 15:00 a 17:00
Jordi Guitart (email: jguitart )
Despatx: C6-205
Consultes: Dimecres, Dijous i Divendres de 11:00 a 13: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:
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. També despré de cada entrega, 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ó. Després de cada entrega, els estudiants hauran de
validar el codi 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. Als
qüestionaris 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 2/10 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 30/10 via Racó. E1.3. La quarta part
correspon a la gestió d’Entrada/sortida. En aquesta entrega s'haurà
d'entregar també una documentació on expliqueu els aspectes de
disseny i implementació més rellevants d'aquesta part. A
més a més haureu d'entregar el codi de tot el projecte
(fitxer .tar.gz),i fer una entrevista amb el vostre tutor. Aquesta entrega es farà el
dia 27/11 via Racó. Entrega P2 E2.1 (entrega única P2) La del segon projecte es farà el dia 18/12. Test amb conceptes previs que tothom hauria de
conèixer. - Fitxers
bàsics de Zeos - Enunciat
Projecte 1
- Transparencies
del Projecte 1 - Per la
entrega final: Descripció
de la documentació a entregar amb la tercera entrega del projecte 1
-
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 -
Enunciat Projecte 2
-
Transparències
Projecte 2 -- slides for Project 2
A final de cada entrega 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: 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) 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 Última
modificació:24 abril, 2008
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
Projectes
ENUNCIATS
PROJECTE 1
PROJECTE 2
Avaluació
Normativa còpies
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%
Bibliografia i
documentació
Bibliografia bàsica
Bibliografia complementària
Links d’utilitat
Sobre bochs
http://www.labav1.org/bochs_proso/bochs_proso.htmlSobre Linux
Sobre S.O en general
Sobre arquitectura
Sobre compiladors
![]()
Aquesta obra està subjecta a una Llicència de Creative
Commons.