Sistema Eletrônico de Administração de Eventos - UERGS, VI Salão Integrado de Ensino, Pesquisa e Extensão & IIa Jornada de Pós-graduação da UERGS (ISSN: 2448-0010)

Tamanho da fonte: 
Smalloc – Um Alocador Dinâmico de Memória para Sistemas Embarcados
Max Jeison PRASS, Debora MATTOS, Celso COSTA, Aleff DIMITRI

Última alteração: 2016-09-28

Resumo


Um dos principais desafios encontrados em sistemas embarcados é a escassez de memória disponível. Estes sistemas podem apresentar grandes restrições, e sendo assim, é necessário realizar uma série de levantamentos para gerenciar efetivamente os recursos disponíveis. A alocação dinâmica de memória é um mecanismo que oferece uma maior flexibilidade para o projeto de sistemas de softwares. Entretanto, desenvolvedores de sistemas de tempo real tentam evitar o uso desta técnica devido aos problemas como fragmentação de memória e longo tempo de resposta.

Este trabalho elabora o Smalloc, um algoritmo de alocação dinâmica de memória para sistemas de tempo real, capaz de oferecer excelentes tempos de respostas e o mínimo de endereços de controle utilizados para o gerenciamento dos recursos disponíveis. Além disso, o algoritmo é capaz de oferecer flexibilidade para se adequar às condições de hardware para diferentes tipos de aplicações. Esta proposta oferece liberdade para que o usuário escolha as configurações que melhor se adeque ao seu projeto, levando em conta a previsibilidade, limitações de hardware e estruturas de dados usados pela aplicação. O algoritmo utiliza uma memória global e a divide em regiões, cada região possui um tamanho configurável de blocos alocáveis. Quando uma aplicação possui apenas uma estrutura de dados e com a configuração adequada, obtém-se zero de fragmentação tanto interna quando externa. Além disso, o mínimo de endereços de memória para o controle do gerenciamento é utilizado, caracterizando uma melhor relação entre o custo e benefício no gerenciamento.

Experimentos realizados no sistema de tempo real NKE, mostraram tempos de respostas muito melhores em relação aos tempos obtidos normalmente, sem utilizar o algoritmo proposto, na escala de microssegundos, tanto na alocação quanto nas liberações de memórias. Em relação ao número de endereços usado para controle, apresentamos uma alta relação de custo e benefício no uso de toda a memória disponível do sistema. Atendendo aos requisitos de alocação dinâmica de memória dos sistemas de tempo real. Assim o algoritmo já está implementado e utilizável no sistema de tempo real NKE e qualquer outro sistema.

 


Palavras-chave


Alocação dinâmica de memória; gerenciamento de memória; sistemas de tempo real; nanokernel; sistemas embarcados.