Programa De Sistemas Embebidos Avanzados II - UNR

Transcription

Programa deSistemas Embebidos Avanzados IICódigo: ELIdentificación y características de la Actividad CurricularCarrera/s:Ingeniería ElectrónicaPlan de Estudios:2014Carácter:Bloque/Campo:Tecnologías AplicadasÁrea:ElectivaInformáticaRégimen de cursado: CuatrimestralCuatrimestre:10º [ECA]Carga horaria:64 hs / 4 hs semanalesEscuela:Ingeniería ElectrónicaFormato Curricular:ECEDepartamento: Sistemas e InformáticaDocente responsable: Ing. José Luis SimónPrograma SintéticoEstructura de los sistemas operativos de propósito general. Caso de estudio: LinuxDiseño y construcción de sistemas de tiempo real. Caso de estudio: FreeRTOSConcurrencia y sincronizaciónTratamiento de errores y excepcionesConceptos de planificaciónModelado de aplicaciones en sistemas embebidos. UMLAsignaturas RelacionadasPrevias:Informática Aplicada, Sistemas Embebidos AvanzadosSimultáneas Recomendadas: No CompletarPosteriores:No completarVigencia desde 2020.Firma ProfesorFecha.Firma Aprob. Escuela.FechaCon el Aval del Consejo Asesor:Página 1 de 6

Características GeneralesSistemas Embebidos II es una asignatura electiva del 10º cuatrimestre de la carrera de IngenieríaElectrónica de la FCEIA dictada en el marco establecido por la Escuela de Ingeniería Electrónica para lasasignaturas electivas, cuyo propósito es ofrecer al futuro Ingeniero Electrónico un panorama de laproblemática del desarrollo de software en los sistemas embebidos, los sistemas de tiempo real y laconcurrencia en campos de aplicación críticos. Cuenta con un equipo de cuatro docentes, y se desarrolla enun conjunto de actividades de formación teórico-prácticas orientadas a la aplicación concreta de losconocimientos adquiridos.Objetivos Presentar un panorama de la problemática de diseño y construcción de software desde la óptica dela Ingeniería Electrónica, con especial énfasis en los sistemas embebidos. Comprender la estructura y el funcionamiento de sistemas operativos utilizados en los sistemas embebidos y los conceptos de concurrencia, tiempo real, tratamiento de errores y planificación.Analizar y comprender el material relevante.Conocer los modelos de diseño de aplicaciones en sistemas embebidos.Conocer las tecnologías de diseño de software concurrente y de tiempo real.Contenido TemáticoUNIDAD I: SISTEMAS OPERATIVOS DE PROPÓSITO GENERAL - LINUX1.11.21.3Conceptos iniciales. Usuarios, permisos y roles. Línea de comando, uso del shell de LinuxEstructura de Linux: núcleo, HAL, API, manejadores de dispositivosEl sistema de archivos: tipos, conceptos, montaje, permisos. chown y chmod1.41.51.6Mulltiprocesamiento en Linux: procesos y threads. fork(), ps, mpstat.Planificación en Linux: schedulerComunicación entre procesos: signal, pipes y named pipes1.7SocketsUNIDAD II: INTRODUCCIÓN A LOS SISTEMAS DE TIEMPO REAL - FREERTOS2.1Sistemas de tiempo real: conceptos y caracterización2.2Sistemas operativos de tiempo real: el caso de estudio FreeRTOS2.3Requerimientos temporales: especificación2.4Criticidad y diseño orientado a eventos2.5Concurrencia en los STR: tareas, competencia y planificación. El API de concurrencia ysincronización de FreeRTOS2.6Modos de activación de las tareas2.7Comportamiento determinístico y estocástico en los STR2.8Diseño y desarrollo de software en los STRUNIDAD III: CONCURRENCIA3.1Concepto de proceso, tarea e hilo. Propiedades y recursos3.2Comunicación entre procesos (IPC). Recursos y estrategias3.3SincronizaciónPágina 2 de 6

3.4La librería pthreads. Conceptos y ejemplos de usoUNIDAD IV: TRATAMIENTO DE ERRORES4.1Conceptos fundamentales: fiabilidad, averías, errores y fallas4.2Taxonomía de averías y fallas4.3Mejoras en la fiabilidad: prevención y tolerancia a fallas4.4Redundancia de software estática: programación de n versiones4.5Redundancia de software dinámica. Fases4.6Estrategia de bloques de recuperación4.7Redundancia dinámica y excepciones4.8Componente ideal de un sistema tolerante a fallasUNIDAD V:5.1Excepciones5.2Representación de excepciones, dominio de un manejador deexcepciones, ultimas voluntades, modelo de reanudación y deexcepciones, propagación determinación5.3Bloques de recuperación y excepciones5.4Manejo de excepciones en C : patrón RAII. Punteros inteligentesUNIDAD VI: Modelos de desarrollo de aplicaciones en sistemas embebidos6.16.26.36.46.56.66,7Caracterización de las aplicaciones. Modelo de capas. Interfaces y APIsConceptos de distribución: canales, puntos de acceso y protocolos de transporte y aplicación.Arquitectura de aplicaciones: modelos “cliente-servidor, “productor-consumidor”.Brokers y proxiesPatrones arquitecturales para el desarrollo y despliegue de aplicaciones distribuidas. Introduccióna UML.Implementación práctica de protocolos de aplicación: REST y OPC-UACaso de estudio: diseño de una aplicación DSPModalidades de enseñanza-aprendizajePágina 3 de 6

Esta asignatura está basada en los lineamientos metodológicos definidos en el plan de estudios 2014. Enparticular, se cita: “El proceso de formación del ingeniero priorizará el desarrollo de la creatividad, el diseñode innovaciones tecnológicas y la resolución de situaciones problemáticas con similitudes de realidad. Lasestrategias de aprendizaje comprenderán procesos de integración de conocimientos, para lo cual, lostrabajos por proyectos, simulación de realidad y resolución de problemas abiertos, entre otras, constituyenmetodologías adecuadas”.Mas del 50% de la carga horaria disponible para el desarrollo de los contenidos temáticos de la asignaturaestá destinado a la realización de proyectos que implican la resolución de problemas conceptuales y deaplicación en la ingeniería electrónica, en el campo específico del software.Asimismo, los contenidos teóricos básicos y conceptuales, una vez desarrollados, se ejemplificanexponiendo su impacto en la implementación tecnológica final, contribuyendo también al volumen deconocimientos de índole aplicada impartidos en la materia.De esta manera se intenta transmitir al alumno el conocimiento de las problemáticas tecnológicas medianteun enfoque orientado a la resolución y la aplicación, ya que el carácter de los contenidos implica en granparte el desarrollo de habilidades que sólo se logran mediante el hacer.Todas las actividades de índole práctico se realizan en el marco de proyectos de alcance acotado yejecución grupal, para lo cual los alumnos tienen disponibles computadoras y kits de desarrollo basados enmicrocontroladores .A los tiempos previstos para la carga horaria destinada a la materia dentro del plan, deben agregarse ladisponibilidad de no menos de 6 horas semanales de consulta que los docentes en conjunto brindan a losestudiantes fueran del horario regular de cursado y que están destinadas a la clarificación de conceptos oexplicaciones puntuales conforme la necesidad de cada alumno en particular.Actividades de Formación PrácticaDurante el cursado los alumnos desarrollarán en modalidad grupal proyectos propuestos por la cátedra conlas temáticas desarrolladas en clase. Cada proyecto debe aprobarse en una evaluación presencial.Para el desarrollo y la ejecución de los proyectos los alumnos contarán con el apoyo del equipo docente dela cátedra, tanto durante las horas de dictado como en horas de consulta.EvaluaciónLa promoción de la asignatura se obtiene cumpliendo los requerimientos enunciados a continuación:1. Ejecución de los proyectos mediante entrega y aprobación del informe escrito.2. Aprobación de un examen integradorNota:La cátedra ofrece una instancia remedial para este último examen.Distribución de la carga l de laboratoriohsExperimental de CampohsPágina 4 de 6

Resolución de Problemas y Ejercicios10hsProblemas abiertos de ingenieríahsActividades de Proyecto y Diseño24 hsPráctica Profesional SupervisadahsTotal64hsEvaluaciones6Dedicadas por el alumno fuera de clase 40Preparación Teóricahshs20hsPreparación Práctica 12hsElaboración y redacción de informes, trabajos, presentaciones, etc. 8hsBibliografía básicaRealtime embedded systems: Open-Source Operating Systems Perspective, Ivan Cibrario Bertolotti GabrieleManduchi. CRC Press 2012Sistemas de Tiempo Real y Lenguajes de Programación (3ª Edición).Alan BURNS y Andy WELLINGS.ADDISON-WESLEY Iberoamericana EspañaISBN: 8478290583Sistemas Operativos ModernosTANENBAUM, ANDREW S.Pearson VueISBN: 9702603153Programming with POSIX threadsDavid R. Butenhof.(Addison-Wesley professional computing series)ISBN 0-201-63392-2Concurrent and Real-Time Programming in Java, Andy Wellings ISBN:047084437XJohn Wiley & SonsPullum, Laura. (2001). Software Fault Tolerance Techniques and Implementation (Artech House ComputingLibrary)E. Dubrova, Fault-Tolerant Design: An Introduction, Kluwer Academic Publisher (2005)Buttazzo, Giorgio. Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications– Springer, Third Edition (2011)Buttazzo, Giorgio & Lipari, Giuseppe & Abeni, L. & Caccamo, Marco. Soft real-time systems: Predictabilityvs. efficiency, Springer (2005)Presentaciones de la cátedra:I: PlataformasII: Sistemas de Tiempo RealIII: Concurrencia, partes I, II y IIIIV: Fiabilidad y tolerancia a fallosV: ExcepcionesVI: PlanificaciónVII: Modelos de diseño de aplicacionesPágina 5 de 6

Bibliografía complementariaFundamentos de Sistemas Operativos, 7a edición, Galvin, Silverschatz y GagnePractical guide to bare-metal C , Alex Robenko, Creative CommonsIngeniería de Software, Ian SommervilleSistemas Distribuidos, 3 ed.; Colouris, Dollimore, Kindberg. , Addison-WesleyRecursos web y otros recursosPágina web de la asignatura, donde se consignan los enlaces y material relevante de la webhttp://www.dsi.fceia.unr.edu.arCronograma de n - Plataformas2IModelos de desarrolloClase de teoría/Clase práctica3IISistemas de Tiempo RealClases de teoría4IISistemas de Tiempo RealClase de teoría/Clase práctica5IIIConcurrenciaClase de teoría/Clase práctica6IIIConcurrenciaClase de teoría/Clase práctica7IIIConcurrenciaClase de teoría/Clase práctica8IVTolerancia a fallas9IV10VPlanificaciónClase de teoría/Clase práctica11VPlanificaciónClase de teoría/Clase práctica12VIAplicaciones distribuidasClases de teoría13VIAplicaciones distribuidasClases de práctica14TPPresentación de proyectosExposición de proyectos grupos15TPPresentación de proyectosExposición de proyectos gruposExamen IntegradorEvaluación16EVClases de teoríaClases de teoríaExcepcionesClase de teoría/Clase prácticaPágina 6 de 6

la Ingeniería Electrónica, con especial énfasis en los sistemas embebidos. Comprender la estructura y el funcionamiento de sistemas operativos utilizados en los sistemas embebidos y los conceptos de concurrencia, tiempo real, tratamiento de errores y planificación. Analizar y comprender el material relevante.