facebook twitter instagram linkedin
Inicio Novedades
Curso “Sistemas Operativos para Embedded Systems”
Curso “Sistemas Operativos para Embedded Systems”
09-11-2020

La Facultad de Ingeniería organiza el curso Sistemas Operativos para Embedded Systems a desarrollarse en 10 encuentros, a partir del lunes 16 de noviembre, de 16 a 19 horas. El mismo será dictado, vía Zoom, por el Mg. Marcelo Arroyo, docente de la Facultad de Ingeniería UNLPam y de la Universidad Nacional de Río Cuarto.

Se trata de un curso extracurricular, cuyos objetivos generales son:

  • Abordar desarrollos conceptuales y metodológicos relacionados con el diseño e implementación de sistemas operativos, analizando y revisando algunos de los sistemas existentes más importantes.
  • Familiarizar a los destinatarios con los desafíos impuestos por los sistemas empotrados (embedded systems) y sus principales diferencias con sistemas operativos de propósitos generales.
  • Revisar y analizar detalladamente las herramientas requeridas para el desarrollo de software a nivel de sistemas, así como su proceso de compilación y enlazado.
  • Afianzar los conceptos por medio del desarrollo de un taller de desarrollo y extensión de sistemas operativos.

DESTINATARIOS

  • Estudiantes de carreras de grado de Informática/Sistemas/Computación.
  • Docentes de la Facultad de Ingeniería.
  • Graduados de carreras de Informática/Sistemas/Computación.

REQUISITOS DE INSCRIPCIÓN:

Los estudiantes que realicen este curso deben contar con conocimientos previos en:

  • Algoritmos y programación básica en cualquier lenguaje (preferentemente tener nociones del lenguaje C, no excluyente).
  • Conocimientos básicos sobre estructuras de datos.
  • Conocimientos básicos sobre el proceso de compilación y enlazado.
  • Lecto-comprensión de textos científicos y manuales en inglés.

En caso de ser estudiantes de la Facultad de Ingeniería de la UNLPam, se sugiere que tengan aprobada la asignatura “Sistemas Operativos”, correspondiente al primer cuatrimestre de 4to año.


Las clases se llevarán a cabo los días lunes y viernes, en el horario citado. Los interesados en inscribirse a esta propuesta, deberán completar el siguiente formulario de inscripción: https://sfing.ing.unlpam.edu.ar/form_inscripciones/?pk=129 . Previo a cada clase, enviaremos los datos de acceso a la reunión correspondiente.


CONTENIDOS:

  • Unidad 1: Introducción. Sistemas de computación: hardware y software. Qué es un sistema operativo. Características de diseño y sub-sistemas. Tipos de sistemas operativos. Herramientas de desarrollo (toolchains). Programas, hilos y procesos. Hardware: CPU, memoria, buses y dispositivos. Interrupciones. Llamadas al sistema. Sistemas multitarea. Protección: Modos de ejecución, espacios de memoria, confinamiento y control de acceso. Arranque del sistema (booting).
  • Unidad 2: Hardware. Arquitecturas de hardware. Interconexión de dispositivos: buses dedicados vs mapeo en memoria. Buses, controladores de dispositivos y puertos de E/S. Interrupciones. Transferencia directa a memoria (DMA).
  • Unidad 2: Hilos de ejecución y procesos. Threads y procesos. Kernel threads vs user threads. Espacios de memoria y confinamiento. Planificación de procesos (scheduling). Llamadas al sistema para la gestión de procesos. Estados de procesos e hilos. Sistemas multiprocesadores y multiprocesamiento simétrico (SMP). Planificación de tiempo real.
  • Unidad 3: Concurrencia y comunicación entre procesos. Concurrencia. Comunicación entre procesos: memoria compartida vs pasaje de mensajes. Ejemplos: pipes y shared memory. Condiciones de carrera y deadlocks. Sincronización: spinlocks, semáforos, variables de condición, monitores y otros. Implementación de primitivas.
  • Unidad 4: Gestión de la memoria. Gestión de bloques libres (heap allocation). Código independiente de la posición (pic). Unidad de gestión de la memoria (MMU). Espacios de memoria y confinamiento. Memoria virtual: swapping, CoW, shared memory y shared libraries.
  • Unidad 5: Sistemas de archivos. Medios de almacenamiento. Volúmenes, archivos y directorios. Estructuras de sistemas de archivos: FAT, i-nodes, gestión de bloques libres, clustering. Caching. Journaling. Casos de estudio: FAT y ext2.
  • Unidad 6: Entrada/salida. Device drivers. API para entrada/salida. Tipos de dispositivos: de caracteres, bloques y de comunicaciones. Interface con el sistema de archivos. Pooling vs interrupciones. Registro de device-drivers. Caso de estudio: Un simple device driver en Linux.
  • Unidad 7: Embedded systems. Caracterización. Hardware: microcontroladores y Systems on Chip (SoC). Uso de SO de propósitos generales vs sistemas específicos o ad-hoc. Casos de estudio: GNU-Linux, FreeRTOS y otros.
Sumate a nuestra comunidad
facebook
twitter
instagram
linkedin