260 likes | 327 Vues
Avaliação de um processador FemtoJava multiprocesso CMP502 – Sistemas Embarcados Leomar Soares da Rosa Junior Porto Alegre, março de 2003. Outline:. Objetivos do Trabalho; Implementação; Resultados Obtidos; Trabalhos Futuros. 2. Objetivos do Trabalho:.
E N D
Avaliação de um processador FemtoJava multiprocesso CMP502 – Sistemas Embarcados Leomar Soares da Rosa Junior Porto Alegre, março de 2003
Outline: • Objetivos do Trabalho; • Implementação; • Resultados Obtidos; • Trabalhos Futuros. 2
Objetivos do Trabalho: • Investigar o impacto causado pela execução de threads ou processos simultâneos, gerenciados por software, sobre um mesmo processador femtojava; • Implementação de um escalonador dedicado à arquitetura. 3
Objetivos do Trabalho >> Contribuição: • FemtoJava não tem suporte a execução de threads ou processos simultâneos (sintetiza apenas uma aplicação); • Permitir o desenvolvimento de programas com várias threads, deixando a gerência p/ o S.O. e p/ a MVJ. 4
Implementação: • Desenvolver um escalonador de threads, o qual utilizará alguma política clássica de escalonamento*, que irá realizar a gerência da troca de contexto entre dois fluxos de execução distintos. * Inicialmente: Round-Robin 5
Implementação: • Implementação realizada diretamente em bytecodes Java; • Desenvolver instruções capazes de salvar e recuperar contexto; • Utilizar o sistema de timer do femtojava para gerar interrupções. 6
Implementação: • Memória de programa e de dados: 7
Implementação: • Possíveis variações do escalonador: 3 estratégias estudadas; Optou-se pela estratégia que apresentava menor custo em ciclos de execução e área necessária para salvamento de contexto! 10
Implementação: • Primeira estratégia: 11
Implementação: • Segunda estratégia: 12
Implementação: • Terceira estratégia: 13
Implementação: • Regras adotadas (1/2): Cada processo envolvido deveria possuir sua própria pilha de execução; Cada SP relativo ao topo da pilha de cada processo deveria ser salvo em um local de memória específico, garantindo, assim, que os valores dos registradores salvos pudessem ser realmente restaurados quando o processo fosse escalonado para tomar posse do processador; 14
Implementação: • Regras adotadas (2/2): As pilhas de execução dos processos deveriam possuir um valor razoavelmente significativo, permitindo que dados não fossem perdidos pela sobreposição de informações; O local na memória de dados onde os SPs das pilhas dos processos seriam salvos deveria ser uma posição que não fosse alcançada pelas variáveis globais e nem pelo crescimento abrupto da pilha de algum processo. 15
Implementação: • Instruções criadas: 16
Implementação: • Instruções criadas: 17
Implementação: • Instruções criadas: 18
Implementação: • Nova memória de programa: 19
Trabalhos Futuros (1/2): • Implementação do escalonador para o femtojava 8 bits; • Otimização das instruções efetivamente envolvidas no escalonador; • Adaptação do escalonador Round-Robin para um maior número de processos; 24
Trabalhos Futuros (2/2): • Análise da possibilidade de implementar o escalonador com outra estratégia mais econômica; • Implementação de outras políticas de escalonamento; • Implementação de uma ferramenta para automatizar o processo de construção dos escalonadores dadas as aplicações do usuário. 25