Informações Principais
     Resumo
     Abstract
     Introdução
     Conclusão
     Download
  
  
  
 
Conclusão
 
 
Acadêmico(a): Paulo Henrique da Silva
Título: Implementação de Unidades para Processos Concorrentes no Ambiente Furbol
 
Conclusão:
Os objetivos do trabalho foram alcançados. Foram implementadas unidades para processos concorrentes e um mecanismo de sincronização para controlar a ordem de execução das unidades concorrentes. Esta extensão da linguagem FURBOL foi especificada utilizando métodos formais como a gramática livre de contexto (através da BNF) e a gramática de atributos. Para a implementação do núcleo, responsável pela concorrência da linguagem, foi necessário um estudo detalhado da arquitetura de computadores baseados no microprocessador 8088. A maior dificuldade foi sem dúvida encontrar implementações de concorrência para o microprocessador, porém com o estudo da arquitetura e estudos adicionais sobre aspectos de implementação de concorrência, formou-se uma base sólida para a implementação do núcleo. Durante o desenvolvimento do núcleo foi necessário unir o que estava sendo implementado com a linguagem de programação FURBOL. O estudo sobre compiladores e sobre métodos formais para definição da sintaxe e semântica foram indispensáveis para esta união. A especificação do ambiente utilizando UML agilizou todo o processo de desenvolvimento do protótipo. Permitiu implementar de maneira mais organizada o ambiente FURBOL, separando a interface com o usuário e as partes do compilador em classes distintas que interagem entre si de forma coerente. Quando executados no sistema operacional Windows 32 bits, os programas multitarefa gerados pelo ambiente trocam de tarefas mais vagarosamente do que quando executados no MS-DOS puro. Foi notado durante o desenvolvimento do núcleo que muitas das vezes que a rotina do escalonador era executada via interrupção de hardware 8h, a pilha atual nos registradores da CPU não era nenhuma das pilhas do programa FURBOL, o que impedia o salvamento do contexto da tarefa na sua própria pilha. Então foi colocada no início da rotina do escalonador uma verificação. Se a pilha atual nos registradores da CPU for diferente da pilha do PCB atual (que é armazenado numa variável interna do núcleo) a interrupção é ignorada, caso contrário a troca de tarefas é feita normalmente. Embora o intervalo de tempo entre as execuções da rotina do escalonador seja maior, a programação multitarefa não é prejudicada. Se for necessário “acelerar” a troca das tarefas pode-se utilizar o comando repassa da linguagem FURBOL. A principal contribuição deste trabalho é o fato de que o FURBOL (um compilador desenvolvido na Universidade Regional de Blumenau) possui agora estruturas para utilização de unidades concorrentes em alto-nível, semelhantes a outras linguagens existentes.