18.05.2014 Views

SISTEMA EMBARCADO DE AQUISIC¸ ˜AO DE DADOS ...

SISTEMA EMBARCADO DE AQUISIC¸ ˜AO DE DADOS ...

SISTEMA EMBARCADO DE AQUISIC¸ ˜AO DE DADOS ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

de Fibonacci . Os resultados para o conjunto Dallas DSC400 com Java forma desapontadores<br />

em nossos testes, também. O conjunto Rabbit RCM3200 com C foi<br />

muito superior ao conjunto Dallas DSC400 com Java. O tempo de execução do algoritmo<br />

foi de 101 segundos para o conjunto DSC400 com Java e 13 segundos para<br />

o conjunto RCM3200 com C. Esse é o principal fator que determinou a escolha da<br />

linguagem C em nosso estudo de caso. Quanto mais rápido o programa for executado,<br />

dentro das limitações de hardware, mais placas poderão ser testadas na linha<br />

de produção, refletindo no custo das mesmas.<br />

• Java é uma grande linguagem porquê o mesmo código pode ser executado<br />

nos sistemas operacionais Windows, Solaris, UNIX, Macintosh<br />

ou sobre outra plataforma. A independência da plataforma JAVA<br />

é realmente uma maravilha. Mas esta independência não tem muito haver<br />

com a linguagem em si. Mas sim pelo fato que os bytecodes (instruções especiais<br />

ou códigos de operação) podem ser interpretados por qualquer Java<br />

Virtual Machine (JVM). A JVM é um computador abstrato construído de<br />

acordo com as especificações da Sun Microsystems (LEE, TAK, MAENG &<br />

KIM 2000). A JVM decodifica, interpreta e executa os bytecodes. A grande<br />

vantagem do JAVA é a portabilidade através dos tipos numéricos pré-definidos.<br />

Assim um tipo “int” tem sempre 32 bits. Já em C e C++ podem ser de<br />

qualquer tamanho. Se uma arquitetura não suportar implementação dos tipos<br />

numéricos Java, então os tipos devem ser implementados em software, os quais<br />

podem significativamente diminuir o desempenho do sistema;<br />

• Usar serviços de Sistemas Operacionais (SO) para programação concorrente<br />

não é tão bom como usar construtores de código concorrente.<br />

Ao contrário do Java, C e C++ não possuem programação concorrente<br />

(código que pode executar muitas tarefas “ao mesmo tempo”). Para<br />

programação concorrente, C e C++ freqüentemente utilizam serviços de SO<br />

como semáforos que são difíceis de depurar. Com o uso de semáforos há o risco<br />

de bloquear um item e esquecer de desbloqueá-lo, de modo que outras tarefas<br />

podem também ficar bloqueadas quando tentam acessar o item compartilhado,<br />

a esta situação chamamos de deadlock, ou seja, o sistema fica em conflito;<br />

187

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!