Responsable: | (-) |
Altres: | (-) |
Crèdits | Dept. | Tipus | Requisits |
---|---|---|---|
7.5 (6.0 ECTS) | AC |
|
EC2
- Pre-correquisit per la EI , ETIG , ETIS PRED - Pre-correquisit per la EI , ETIG PS - Pre-correquisit per la ETIS SO - Pre-requisit per la EI , ETIS USO - Pre-requisit per la ETIG |
Responsable: | (-) |
Altres: | (-) |
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.
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 |
|
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.
Introducció als mecanismes d'entrada al sistema: excepcions, interrupcions i traps (crides al sistema). Descripció de la programació i el tractament dels diferents mecanismes d'entrada al sistema (inicialització IDT, programació handlers i rutines de servei i implementació de la llibreria de crides al sistema).
|
|
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'adreces d'un procés (espai logic vs. espai físic).
Gestió de la taula de pàgines: incidència en la creació de processos i en el canvi de context.
|
|
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 estructures de dades bàsiques per la gestió de processos: PCB, llistes.
Descripció de les rutines per la gestió de processos: creació i destrucció de processos, canvi de context entre processos, planificació de processos i obtenció d'informació estadística dels processos.
|
|
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 de l'entrada/sortida al teclat
Concepte de taula de canals. Crides a sistema per la gestió de la taula de canals.
|
|
T | P | L | Alt | L Ext. | Est | A Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
1,0 | 0 | 4,0 | 0 | 5,0 | 0 | 0 | 10,0 | |||
Descripció de les estructures de dades per a la sincronització de processos mitjançant semàfors.
Crides a sistema per la gestió de semàfors. Descripció d'altres funcionalitats que podran ser escollides pels alumnes per ser incorporades al sistema.
|
|
T | P | L | Alt | L Ext. | Est | A Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
1,0 | 0 | 4,0 | 0 | 5,0 | 0 | 0 | 10,0 | |||
Descripció dels conceptes de mòduls, dispositius i device drivers a Linux.
|
|
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 device driver. Descripció de les tècniques d'inserció de codi al kernel de Linux.
|
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 |
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
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.
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. Es obligatori assistir a aquestes classes amb suport de professor per tal de que el professor faci el seguiment del project.
Projecte 1: 70%
Projecte 2: 30%
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). Durant les classes de laboratori, el tutor farà un seguiment dels estudiants per avaluar l'evolució del projecte. 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 entrega, l'estudiant haurà de validar el codi que ha entregat. Això ho farà responent 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 una nota de seguiment del projecte (que inclou les respostes donades al seu tutor tant a les classes de laboratori com en el qüestionari final de cada entrega).
L'alumne ha de conèixer:
- Conceptes bàsics, estructures i algorismes d'un sistema operatiu: mecanismes d'entrada al sistema, gestió de processos, gestió d'entrada/sortida i gestió de memòria.
- L'ús a nivell d'usuari de les crides a sistema de Linux.
- Programació de baix nivell: Llenguatge C i ensamblador i386.
- Programació d'alt nivell: algorismes i estructures de dades.
- Eines bàsiques de desenvolupament de programes en C sobre Linux: Makefiles, compilador de C i depuradors.
Per tant, les assignatures que s'haurien de cursar abans d'aquesta són SO, EC2 i PRED.