Materia

Contenido de XSL

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

NombreInstituciónCategoríaDoctor/aPerfil docenteÁreaEmail
PASCUAL SAIZ, JOSE ANTONIOUniversidad del País Vasco/Euskal Herriko UnibertsitateaDoctorBilingüeArquitectura y Tecnología de Computadoresjoseantonio.pascual@ehu.eus
SORALUZE IRURETA, ANDERUniversidad del País Vasco/Euskal Herriko UnibertsitateaProfesorado Adjunto (Ayudante Doctor/A)DoctorBilingüeArquitectura y Tecnología de Computadoresander.soraluze@ehu.eus

Competencias

DenominaciónPeso
Diseñar, programar y evaluar sistemas de tiempo real100.0 %

Tipos de docencia

TipoHoras presencialesHoras no presencialesHoras totales
Magistral242549
Seminario65.511.5
P. de Aula45.59.5
P. Ordenador62430

Actividades formativas

DenominaciónHorasPorcentaje de presencialidad
Clases magistrales49.049 %
Prácticas de aula9.542 %
Prácticas de ordenador30.020 %
Seminarios11.552 %

Sistemas de evaluación

DenominaciónPonderación mínimaPonderación máxima
Examen tipo test30.0 % 30.0 %
Trabajos Prácticos70.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.

Contenido de XSL

Sugerencias y solicitudes