Deim Seminar
Title
Jornada de docencia en Computadores y Sistemas Operativos sobre plataformas NDS y Arduino Zero
Conferenciant
Santiago Romaní, Xavier del Toro, María José Santofimia
Professor/a organitzador/a
Santiago Romaní
Institution
URV-UCLM
Date
09-05-2022 09:00
Summary
Los alumnos de un grado de ingeniería informática deben aprender cómo se programan los computadores a bajo nivel, para saber utilizar correctamente el hardware que permiten la ejecución de los programas (procesador), el almacenamiento de instrucciones y datos (memoria), y el acceso a los periféricos mediante los controladores de entrada/salida, además de los mecanismos de sincronización (encuesta/interrupciones) y transferencia de bloques de datos (DMA). Por otro lado, dichos conocimientos resultan imprescindibles para entender cómo los sistemas operativos gestionan los recursos hardware para ofrecer los servicios correspondientes a los procesos de usuario. Tradicionalmente, los ejemplos y prácticas de las asignaturas que cubren estas materias utilizan PCs convencionales y sistemas operativos como el Linux o el Minix. Sin embargo, con la llegada de plataformas empotradas como la Nintendo DS o Arduino Zero, se abre otra posibilidad de ejemplificación, donde el alumno puede aprender a programar un conjunto de recursos hardware no demasiado complejo. En este seminario se expondrán diversos enfoques de la docencia sobre este tipo de plataformas, mostrando ejemplos de acceso a bajo nivel y diseño de sistemas operativos “desde cero”.
Organización:
09:00 Encuentro
PRIMERA PARTE
09:15 Presentación de la asignatura de Computadores::URV (Santiago Romaní)
10:00 Preguntas
10:25 Práctica de Estructura de Computadores::UCLM (Xavier del Toro)
11:10 Preguntas
11:35 Descanso
SEGUNDA PARTE
12:00 Práctica de Estructura de Sistemas Operativos::URV (Santiago Romaní)
12:30 Preguntas
12:55 Práctica de Sistemas Operativos::UCLM (María José Santofimia)
13:25 Preguntas
13:50 Fin
========================================
Título: Presentación de la asignatura de Computadores sobre la Nintendo DS
Descripción: Se presenta una asignatura donde se cubren los aspectos de la programación a bajo nivel, en lenguaje máquina y sobre una plataforma que permite un acceso directo al mapa de memoria y los controladores de entrada/salida. Esta plataforma es la Nintendo DS, que ofrece dos procesadores ARM, diversos módulos de memoria y un amplio conjunto de periféricos (dos pantallas, dos controladoras gráficas 2D, botones, sonido, reloj de tiempo real, timers, controlador de interrupciones, controlador de DMA, etc.), todo ello con un nivel de complejidad asequible para ser introducido en segundo curso de un grado de ingeniería informática.
Ponente: Santiago Romaní
Hora: 9:15
==========
Título: Práctica de Estructura de Computadores sobre Arduino Zero
Descripción: El proyecto Arduino surge en el año 2005, como plataforma educativa y para la creación de proyectos interactivos, con el propósito de ofrecer una placa electrónica de prototipado de bajo coste y open source. En el ámbito universitario es cada vez más común encontrar prácticas de laboratorio relacionadas con la electrónica o la programación que utilizan Arduino como plataforma de experimentación. En este seminario se expondrán las prácticas de la asignatura de Estructura de Computadores del Grado de Ingeniería Informática de la Universidad de Castilla-La Mancha, que utiliza el Arduino Zero para implementar diversos programas a bajo nivel, hasta llegar a programar el control de un robot móvil. Esta plataforma de prácticas ofrece un hardware lo suficientemente complejo a la par que sencillo para que los estudiantes puedan conocer y familiarizarse con los distintos elementos que componen un computador.
Ponente: Xavier del Toro
Hora: 10:25
==========
Título: Práctica de Estructura de Sistemas Operativos sobre la Nintendo DS
Descripción: Se presenta una práctica que consiste en la implementación de un micro-kernel “desde cero” sobre el hardware de la Nintendo DS, es cual los alumnos ya conocen de la asignatura Computadores. El diseño del sistema está dividido en cuatro partes: gestión de procesos, gestión de memoria, gestión de salida de mensajes de texto, gestión de entrada de mensajes de texto. La gestión de procesos deber multiplexar hasta 16 procesos con una estrategia simple (Round-robin). La gestión de memoria debe cargar ficheros ejecutables .ELF y reubicar los punteros convenientemente. La gestión de salida debe distribuir los mensajes emitidos por cada proceso en una ventana separada. La gestión de entrada debe permitir al usuario introducir un string y enviarlo a uno de los procesos que esté esperando información. Los alumnos se agrupan en grupos de prácticas, y cada uno debe elegir una de estas partes. Además, cada alumno debe presentar un programa de usuario que acceda al API del sistema operativo. La programación de la parte elegida del sistema operativo requiere un dominio notable en la gestión del hardware implicado, mientras que la programación del programa de usuario requiere una independencia absoluta de dicho hardware.
Ponente: Santiago Romaní
Hora: 12:00
==========
Título: Práctica de Sistemas Operativos sobre Arduino Zero
Descripción: La complejidad que entraña desarrollar un sistema operativo excede lo planificado para una asignatura de fundamentos de sistemas operativos. Por este motivo, las prácticas de Sistemas Operativos han abordado tradicionalmente problemas aislados de un sistema operativo como la programación con hilos, intérprete de comandos, concurrencia, etc. En el Grado de Ingeniería Informática de la Universidad de Castilla-La Mancha, surge la idea de desarrollar otro laboratorio de prácticas para la asignatura Sistemas Operativos, utilizando la misma placa Arduino Zero que se introduce en la asignatura de Estructura de Computadores. Esta placa, basada en un Cortex-M0+, ARM de 32 bits, con 32 MB de memoria RAM, ofrece un equilibrio perfecto entre recursos y complejidad para abordar el reto de diseñar un sistema operativo para ella. Además, el chip de depuración integrado nos ofrece infinitas posibilidades a la hora de explorar el comportamiento del sistema operativo: cómo se lleva a cabo el intercambio de contexto, el proceso de stacking y unstaking, planificación, interrupciones, etc.
Ponente: María José Santofimia
Hora: 12:55
Place
Híbrid: Laboratori 231 / https://teams.microsoft.com/l/meetup-join/19%3ameeting_YWMzMWU5YmMtMjBkNS00
Language
Castellà