| Responsable: | Yolanda Becerra Fontal (yolandab |
| Otros: | Jordi Guitart Fernandez (jguitart Juan José Costa Prats (jcosta Julita Corbalan Gonzalez (juli Maria Luisa Gil Gomez (marisa Ruben Gonzalez Garcia (ruben.gonzalez-garcia |
| Créditos | Dept. |
|---|---|
| 6.0 ECTS | AC |
| Responsable: | Yolanda Becerra Fontal (yolandab |
| Otros: | Jordi Guitart Fernandez (jguitart Juan José Costa Prats (jcosta Julita Corbalan Gonzalez (juli Maria Luisa Gil Gomez (marisa Ruben Gonzalez Garcia (ruben.gonzalez-garcia |
1. Conocer de forma práctica cómo funciona internamente un sistema operativo (SO). 2. Ser capaz de implementar desde cero los componentes básicos del núcleo de un SO. 3. Ser capaz de desarrollar nuevas funcionalidades sobre un SO real.
Horas estimadas de:
| T | P | L | Alt | L Ext. | Est | O. Ext. |
| Teoria | Problemas | Laboratorio | Otras actividades | Laboratorio externo | Estudio | Otras horas fuera del horario fijado |
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
|---|---|---|---|---|---|---|---|---|---|---|
| 2,0 | 0 | 8,0 | 0 | 10,0 | 0 | 0 | 20,0 | |||
|
Descripción de la arquitectura del modo de ejecución protegido: modo usuario y modo sistema.
Introducción a los mecanismos de entrada al sistema: excepciones, interrupciones y traps (llamadas al sistema). Descripción de la programació y el tratamiento de los diferentes mecanismos de entrada al sistema (inicialización IDT, programación handlers y rutinas de servicio e implementación de la librería de llamadas al sistema).
|
||||||||||
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
|---|---|---|---|---|---|---|---|---|---|---|
| 1,0 | 0 | 4,0 | 0 | 5,0 | 0 | 0 | 10,0 | |||
|
Descripción del espacio de direcciones de un proceso (espacio lógico vs. espacio físico).
Gestión de la tabla de páginas: incidencia en la creación de procesos y en el cambio de contexto.
|
||||||||||
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
|---|---|---|---|---|---|---|---|---|---|---|
| 3,0 | 0 | 12,0 | 0 | 15,0 | 0 | 0 | 30,0 | |||
|
Descripción de las estructuras de datos básicas para la gestión de procesos: PCB, listas.
Descripción de las rutines para la gestión de procesos: creación y destrucción de procesos, cambio de contexto entre procesos, planificación de procesos y obtención de información estadística de los procesos.
|
||||||||||
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
|---|---|---|---|---|---|---|---|---|---|---|
| 2,0 | 0 | 8,0 | 0 | 10,0 | 0 | 0 | 20,0 | |||
|
Descripción de las rutines y estructuras de datos para la gestión básica de la entrada/salida en el teclado
Concepto de tabla de canales. Llamadas al sistema para la gestión de la tabla de canales.
|
||||||||||
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
|---|---|---|---|---|---|---|---|---|---|---|
| 1,0 | 0 | 4,0 | 0 | 5,0 | 0 | 0 | 10,0 | |||
|
Descripción de las estructuras de datos para la sincronización de procesos mediante semáforos.
Llamadas al sistema para la gestión de semáforos. Descripción de otras funcionalidades que podrán escogerse por los alumnos para ser incorporadas al sistema.
|
||||||||||
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
|---|---|---|---|---|---|---|---|---|---|---|
| 1,0 | 0 | 4,0 | 0 | 5,0 | 0 | 0 | 10,0 | |||
|
Descripción de los conceptos de módulos, dispositivos y device drivers en Linux.
|
||||||||||
|
T | P | L | Alt | L Ext. | Est | O. Ext. | Total | ||
|---|---|---|---|---|---|---|---|---|---|---|
| 4,0 | 0 | 16,0 | 0 | 20,0 | 0 | 0 | 40,0 | |||
|
Descripción del concepto de un device driver. Descripción de las técnicas de inserción de código en el kernel de linux.
|
||||||||||
| Total por tipo | T | P | L | Alt | L Ext. | Est | O. Ext. | Total |
| 15,0 | 0 | 60,0 | 0 | 75,0 | 0 | 0 | 150,0 | |
| Horas adicionales dedicadas a la evaluación | 2,5 | |||||||
| Total horas de trabajo para el estudiante | 152,5 | |||||||
El proyecto de sistemas operativos consta de dos partes:Proyecto 1: implementación del núcleo de un sistema operativo
Proyecto 2: implementación de un device driver para linux
Cada proyecto está organizado en varias partes. Para cada parte se hará un repaso de los conceptos teóricos asociados y una descripción del proyecto a realizar.
Al acabar cada una de las partes, se hará una entrega/seguimiento parcial consistente en una entrevista y una demostración del funcionamiento del proyecto.
En las clases de teoría se repasarán los conceptos básicos de sistemas operativos que se necesitan para el proyecto y se hará una descripción del enunciado del proyecto.
En las clases de laboratorio se irá implementando el proyecto, generalmente con el apoyo del profesor de laboratorio. Aun así, el alumno dispondrá de una cantidad de horas de laboratorio para continuar y acabar el proyecto.
El primer proyecto tendrá dos entregas de seguimiento parciales y una entrega final. El segundo proyecto tendrá una entrega de seguimiento parcial y una entrega final.
Proyecto 1: 60%Proyecto 2: 40%
El proyecto 1 tendrá dos entregas parciales (de seguimiento) y una entrega final. El proyecto 2 tendrá una entrega parcial (de seguimiento) y una entrega final. Todas las entregas puntúan.
Proyecto 1
- entrega parcial 1: 10%
- entrega parcial 2: 10%
- entrega final: 40% (total proyecto 1 es 60%)
Proyecto 2
- entrega parcial: 10%
- entrega final: 30% (total proyecto 2 es 40%)
Ninguna entrega es obligatoria. En caso de que no se entregue alguna parte, quedará una nota de 0 en la entrega correspondiente.
El alumno debe conocer los fundamentos básicos de la estructura de un sistema operativo.
Además, se requieren conocimientos de programación a bajo nivel, preferiblemente en los lenguajes de programación C y ensamblador del i386. También son útiles conceptos de programación en alto nivel así como conceptos de estructuras de datos. Finalmente, es conveniente que se tenga experiencia en el uso del sistema operativo linux y de herramientas básicas de programación y depuración de programas.
Por lo tanto, las asignaturas que se deberán cursar antes de esta son SO, EC2 y PRED.