Materia
Introducción a los sistemas operativos y a la programación concurrente
Datos generales de la materia
- Modalidad
- Presencial
- Idioma
- Castellano
Descripción y contextualización de la asignatura
Introducción a los Sistemas Operativos y la Programación Concurrente (SOPC) es una asignatura optativa del Máster en Ingeniería de Sistemas Empotrados (MISE). Está orientada a complementar la formación de graduados de ingeniería y de ciencias que carecen de competencias en sistemas operativos y técnicas de programación concurrente. Los conceptos, métodos, técnicas y herramientas de SOPC son de aplicación en ámbitos como la robótica, la monitorización, el control y en general todo tipo de sistema empotrado, donde sistemas de propósito general como Linux son cada vez más habituales.SOPC comparte competencias específicas con la asignatura de Microcontroladores y diseño con microprocesadores del MISE y es una base para la de Tiempo real en sistemas empotrados. Además, introduce conocimientos básicos necesarios para otras asignaturas.
Terminado el curso, no podrás considerarte un(a) experto/a en programación concurrente ni en Linux. Ten en cuenta que la plataforma y sus herramientas, tras décadas de ampliaciones, es demasiado compleja como para pretender abarcarla en su totalidad en este curso. Lo que se pretende, en cambio, es que el curso te proporcione las claves para que, con el tiempo, puedas convertirte en experto/a.
Profesorado
Nombre | Institución | Categoría | Doctor/a | Perfil docente | Área | |
---|---|---|---|---|---|---|
PASCUAL SAIZ, JOSE ANTONIO | Universidad del País Vasco/Euskal Herriko Unibertsitatea | Profesorado Agregado | Doctor | Bilingüe | Arquitectura y Tecnología de Computadores | joseantonio.pascual@ehu.eus |
SORALUZE IRURETA, ANDER | Universidad del País Vasco/Euskal Herriko Unibertsitatea | Profesorado Adjunto (Ayudante Doctor/A) | Doctor | Bilingüe | Arquitectura y Tecnología de Computadores | ander.soraluze@ehu.eus |
Competencias
Denominación | Peso |
---|---|
Diseñar, programar y evaluar sistemas de tiempo real | 100.0 % |
Tipos de docencia
Tipo | Horas presenciales | Horas no presenciales | Horas totales |
---|---|---|---|
Magistral | 24 | 25 | 49 |
Seminario | 6 | 5.5 | 11.5 |
P. de Aula | 4 | 5.5 | 9.5 |
P. Ordenador | 6 | 24 | 30 |
Actividades formativas
Denominación | Horas | Porcentaje de presencialidad |
---|---|---|
Clases magistrales | 49.0 | 49 % |
Prácticas de aula | 9.5 | 42 % |
Prácticas de ordenador | 30.0 | 20 % |
Seminarios | 11.5 | 52 % |
Sistemas de evaluación
Denominación | Ponderación mínima | Ponderación máxima |
---|---|---|
Examen tipo test | 30.0 % | 30.0 % |
Trabajos Prácticos | 70.0 % | 70.0 % |
Resultados del aprendizaje de la asignatura
Durante el curso se debería desarrollar un cierto nivel de competencia en cuanto a:- Entender la especificación funcional de una herramienta o aplicación.
- Ante un problema nuevo, encontrar en los manuales de Linux la documentación que te permitirá resolverlo de la forma más adecuada.
- Identificar y resolver los problemas derivados de la complejidad de la programación concurrente.
- Dado el código de un programa concurrente, identificar sus implicaciones en cuanto a compatibilidad, eficiencia y mantenimiento.
- Aplicar el enfoque más adecuado para la construcción de una aplicación concurrente, teniendo en cuenta criterios de compatibilidad, eficiencia y facilidad de desarrollo.
- Verificar el funcionamiento de un programa a partir de su especificación.
Temario
El curso aborda la realización de un proyecto dividido en cuatro Partes y un Anexo, siguiendo una secuencia de actividades. El proyecto consiste en el desarrollo de un módulo para un robot explorador basado en Linux con diferentes sensores. El desarrollo es incremental, culminando con la aplicación funcionando sobre cualquier plataforma Linux, incluidas las diseñadas para sistemas empotrados.La utilización de Linux como sistema soporte se justifica por su amplia difusión en el mundo de los sistemas empotrados, la claridad de los conceptos que maneja y su carácter de código abierto.
Las Partes del curso se centran respectivamente en los siguientes aspectos:
Parte 1. Toma de contacto con Linux, gestión del entorno de desarrollo y un primer acercamiento a las interfaces de programación de Linux.
Parte 2. Manejo de la entrada/salida de datos en Linux.
Parte 3. Control de programas en Linux y manejo de la concurrencia con procesos.
Parte 4. Comunicación entre procesos, programación multihilo y coordinación en el acceso a recursos compartidos.
Anexo. Instalación en un sistema Linux empotrado.
Bibliografía
Bibliografía básica
F.M. Márquez: UNIX. Programación Avanzada 3ª Edición. Rama, 2004.Silberschatz, P.B. Galvin, G. Gagne: Operating System Concepts (Eight edition), John Wiley & Sons, 2008.
W. Stallings: Sistemas Operativos (Quinta edición). Prentice-Hall, 2005.
A.S. Tanenbaum: Modern Operating Systems (3rd Edition), Prentice-Hall, 2008.