RTPower- Autonomia Energética e Requisitos Tempo-Real no FreeRTOS

Enquadramento: Existe actualmente uma proliferação de pequenos sistemas embebidos portáteis. Dispositivos tais como telefones celulares, PDAs, câmaras fotográficas e de filmar, redes de sensores para monitorização e controlo, sistemas de vigilância, são exemplos dessa ubiquidade. As características particulares deste tipo de sistemas tais como: reduzidas dimensões, restrições em termos de custo, necessidade de funcionarem suportados em baterias, colocam desafios acrescidos a um suporte adequado às aplicações desejadas. Um dos aspectos a resolver consiste precisamente em tentar aumentar a autonomia deste tipo de sistemas relativamente ao consumo energético suportado em baterias, sem contudo comprometer a funcionalidade básica das aplicações, nomeadamente os seus requisitos de tempo-real.

Objectivos: Incorporar ao nível do escalonamento do núcleo multitarefa para sistemas embebidos FreeRTOS mecanismos que permitam aumentar a autonomia relativamente ao consumo energético, garantindo contudo o correcto funcionamento das aplicações, nomeadamente na sua vertente de requisitos tempo-real.

Descrição: Explorando as facilidades oferecidas pelos processadores / microcontroladores, no que respeita a modos de funcionamento com poupança de energia, incorporar ao nível do escalonamento do núcleo multitarefa FreeRTOS mecanismos que permitam um melhor controlo do consumo energético, mas que simultaneamente garantam uma determinada funcionalidade mínima (e.g. cumprimento de metas temporais). Tendo em conta a exploração da tecnologia DVFS (Dynamic Voltage and Frequency Scaling -- alteração dinâmica da tensão de alimentação e frequência do relógio do CPU), bem como diversos modos de adormecimento do CPU e/ou dispositivos utilizados, incluir/adaptar algoritmos de escalonamento que tirem partido desses mecanismos e que, de uma forma integrada, consigam conciliar os requisitos de cumprimento de metas temporais com os requisitos de poupança de energia.
As plataformas a utilizar serão, preferencialmente, o "Mbed" (que possui um processador ARM Cortex M3) e/ou o "MoteIST++" (desenvolvido no grupo GEMS do IST e que utiliza um microcontrolador da família MSP430 da Texas Instruments).

Orientação: Carlos Almeida e Rui Rocha