Detalhes bibliográficos
Ano de defesa: |
2022 |
Autor(a) principal: |
Souza Filho, Reinaldo Agostinho de |
Orientador(a): |
Souza, Samuel Xavier de |
Banca de defesa: |
Não Informado pela instituição |
Tipo de documento: |
Dissertação
|
Tipo de acesso: |
Acesso aberto |
Idioma: |
por |
Instituição de defesa: |
Universidade Federal do Rio Grande do Norte
|
Programa de Pós-Graduação: |
PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA E DE COMPUTAÇÃO
|
Departamento: |
Não Informado pela instituição
|
País: |
Brasil
|
Palavras-chave em Português: |
|
Área do conhecimento CNPq: |
|
Link de acesso: |
https://repositorio.ufrn.br/handle/123456789/48990
|
Resumo: |
Programar sistemas embarcados com múltiplos núcleos de processamento não é uma tarefa trivial pois, em muitos casos, esses sistemas não têm suporte a interfaces de programação paralela que, por muitas vezes, requerem de recursos de um sistema operacional. Esse trabalho implementa uma versão da interface de programação paralela Multi processamento aberto (OpenMP do inglês Open Multi Processing) para o sistema operacional Nanvix. O OpenMP é uma interface de desenvolvimento de aplicações paralelas que permite a abstração intuitiva do paralelismo e da divisão da carga de trabalho nos processos. Na utilização de projetos com códigos embarcados, é comum haver limitações de memória nas plataformas utilizadas. Isto pode inviabilizar o uso de sistemas operacionais que implementam interfaces amigáveis para a programação. Os sistemas operacionais utilizados em plataformas de processamento embarcado costumam ser limitados em programabilidade, exigindo que o programador tenha um vasto conhecimento de processos do sistema operacional e da arquitetura de hardware utilizada. O Nanvix é um sistema operacional desenvolvido para plataformas embarcadas de múltiplos núcleos de processamento com foco em ser leve o suficiente para a utilização em ambientes com restrição de memória, mas, ao mesmo tempo, com foco na utilização de padrões que facilitam a programação. O Nanvix possui interfaces de programação paralela nativas que se inspiram no padrão Portable Operating System Interface (POSIX) utilizado para a implementação de algumas versões de OpenMP, sendo então esperado que seja possível criar uma versão para o Nanvix que resultará em uma com maior facilidade de programação em paralelo para o sistema operacional. Nesse trabalho a versão de OpenMP implementada utiliza o compilador do Nanvix para traduzir as diretivas de compilação e foi criada uma biblioteca para as rotinas de execução, sendo esta testada através de um emulador de arquitetura RISC-V. Para validação, foram utilizadas aplicações com a versão de OpenMP e versões equivalentes na biblioteca de programação paralela nativa do Nanvix. A programabilidade do Nanvix foi melhorada com OpenMP diminuindo o tempo de desenvolvimento de aplicações paralelas. Os resultados mostraram que, em alguns casos, o OpenMP possui maior eficiência paralela que a interface de programação paralela nativa do Nanvix kthreads, e em outros casos kthreads tiveram maior eficiência paralela. |