Arquiteturas multicore vêm se consolidando no mercado como um compromisso viável entre a microeletrônica a que hoje temos acesso e o desempenho que almejamos para nossas plataformas computacionais. A exploração sistemática do paralelismo de tais plataformas, tanto a nível de linguagem de programação, quanto a nível de sistema operacional, vem se mostrando efetiva quando o objetivo é uma computação de alto desempenho. Entretanto, os mecanismos de ocultação de latência presentes em tais arquiteturas, como predição de desvios, execução especulativa fora de ordem e caches, embora fundamentais para seu bom desempenho, implicam em uma plataforma com variabilidade por demais acentuada para a maioria das aplicações embarcadas. Não obstante, a ideia de substituir-se alguns dos circuítos dedicados baseados em microcontroladores, ASICs ou FPGAs, que hoje são frequentemente utilizados em sistemas embarcados com demandas estritas de determinismo e/ou desempenho, por software paralelo, é tentadora, principalmente por questões de custo de projeto e pela facilidade de atualizações em campo. Neste contexto, o sistema operacional se apresenta como um mediador com potencial para exportar às aplicações o desempenho da plataforma ao mesmo tempo em que esconde muitos de seus não-determinismos. Nesta apresentação, será apresentado alguns dos principais elementos de um sistema operacional para plataformas multiprocessadas, incluindo escalonamento de tempo real e particionamento de recursos.
