Titulo Estágio
Instanciação do Processador Intel ATOM no QEMU
Áreas de especialidade
Engenharia de Software
Sistemas de Informação
Local do Estágio
Coimbra
Enquadramento
No âmbito das atividades de desenvolvimento, de verificação e validação, e de integração, o termo emulação há muito que passou a fazer parte dos sectores e subsectores da indústria que operam nestas áreas. A emulação é vista como um meio de suporte da eficiência e eficácia nas mais diversas atividades de desenvolvimento, no entanto, toma especial relevo nas atividades de desenvolvimento e de V&V, uma vez que permite remover muitas das restrições impostas pela utilização de hardware real, onde se destaca a replicação de bancadas de teste complexas e muitas vezes extremamente onerosas.
Para que esta premissa seja verdadeira, é necessário que os modelos que suportam o sistema virtualizado, representem fielmente o comportamento do sistema físico em questão.
É neste contexto que a presente proposta de dissertação se enquadra, tendo como objetivo principal, o desenvolvimento de um modelo do processador Intel ATOM na plataforma QEMU. Espera-se que o modelo desenvolvido represente de forma fidedigna o comportamento do processador Itel ATOM selecionado, de forma a que quando instanciado na plataforma QEMU, permita a execução, e sem alterações significativas, de software desenvolvido para o hardware real.
Esta proposta, e o âmbito por ela definido, pressupõe uma execução ao longo de quatro eixos fundamentais:
• Estudo da plataforma QEMU e arquiteturas dos microcontroladores;
• Especificação de requisitos e suas dependências;
• Implementação do modelo em linguagem suportada pela plataforma QEMU;
• Validação do modelo implementado.
Objetivo
Atualmente as atividades de V&V e integração de sistemas em vários sectores e subsectores da indústria consiste, à data, em montar os vários equipamentos em bancadas de teste constituídas por produtos finais ou modelos de engenharia que, mesmo nas suas versões preliminares, permitem testar software.
Esta abordagem traz uma grande representatividade física (e.g. elétrica, temporal, mecânica, térmica, etc.) mas limita a capacidade de começar a testar cedo no ciclo de desenvolvimento, nomeadamente
nos casos em que os equipamentos não estão disponíveis, ou quando o tipo de teste obriga à destruição total ou parcial dos mesmos. A emulação de um qualquer sistema embebido, deve ser fidedigna ao ponto de poder executar a imagem binário do SW desenvolvido para esse sistema, sem necessidade de alterações do código fonte, ou no limite, fazendo apenas modificações pontuais e bem localizadas. A emulação de um sistema de tempo-real com fidelidade suficiente para executar o SW desenvolvido para esse sistema e, respeitando não só os aspetos funcionais, mas também os aspetos temporais é um desafio assinalável e de extrema importância para algumas das atividades da CRITICAL software. O uso de emuladores ao nível do projeto, assume uma relevância bastante elevada, uma vez que permite a replicação do sistema por cada membro da equipa, onde este terá ao seu dispor todas as ferramentas de que necessita sem ter de competir por recursos com os demais membros do projeto.
No âmbito desta proposta, a CSW candidata-se a aceitar alunos da vossa instituição em regime de estágio curricular com os seguintes objetivos gerais:
• Reforçar e solidificar os conhecimentos do aluno na plataforma QEMU e na arquitetura Intel ATOM;
• Especificação de requisitos e identificação de dependências;
• Implementação de modelo representativo do processador identificado;
• Validação da implementação via demonstradores;
• Elaboração da dissertação e apresentações anexas.
Plano de Trabalhos - Semestre 1
- T1: Estudo da plataforma QEMU e do processador selecionado. Nesta tarefa pretende-se que o aluno se familiarize com a plataforma QEMU e com a arquitetura do processador selecionado, estabelecendo as bases para a elaboração do modelo. Durante esta fase o aluno deverá produzir um relatório com o estado da arte e com as características de cada tópico analisado.
- T2: Especificação de requisitos e identificação de dependências. Nesta tarefa pretende-se que o aluno, produza um conjunto de requisitos que sejam caracterizadores das funcionalidades a implementar. Nesta fase, a caracterização da relação entre requisitos assume um papel importante, pois permitirá uma implementação incremental de sequência lógica. Ao longo desta fase, é expectável que o aluno necessite de apoio por parte de elementos da equipa da Critical Software. Durante esta fase o aluno deverá produzir um documento de requisitos complementado por uma matriz de dependências;
- T3: Elaboração do relatório intermédio;
Plano de Trabalhos - Semestre 2
- T4: Implementação de modelo representativo do processador identificado. Nesta tarefa espera-se que o aluno, com base nos requisitos e nas funcionalidades que lhes deram origem, implemente e de forma incremental aumente a complexidade do modelo.
- T5: Validação da solução via demonstrador. Nesta tarefa espera-se que o aluno defina um conjunto de cenários que permitam testar todas as funcionalidades definidas na Tarefa 2, tanto em ambiente virtual como físico. Nesta fase espera-se que um mesmo binário seja executado nos dois ambientes e com resultados iguais.
- T6: Escrita da dissertação sobre os temas acima abordados, assim como a preparação de duas apresentações anexas, uma para a avaliação académica e outra, mais técnica, para apresentação interna na Critical Software
Condições
Bolsa de dissertação
O presente projeto de dissertação prevê a atribuição de uma bolsa mensal de 450 euros (considerando tempo integral). Esta bolsa é paga mensalmente e pretende ser uma ajuda para as despesas de deslocação e alimentação do aluno durante este período.
De salientar que, em contexto de dissertação, o foco das mais-valias que o aluno poderá obter estão associadas à aquisição de conhecimentos científicos e desenvolvimento de competências inerentes à sua integração profissional.
Observações
Perfil do Estagiário
A CRITICAL Software procura um aluno com formação base de engenharia e que apresente conhecimentos técnicos na área de sistemas embebidos e de desenvolvimento de software inerentes às funções a desempenhar no contexto da dissertação proposta, não sendo exigida qualquer
experiência profissional prévia.
Adicionalmente, o gosto, interesse ou conhecimentos na área de system-on-chips (SoC), system-inpackage (SiP) e programação de baixo nível, serão valorizados.
Na escolha do candidato, a CRITICAL Software tem em conta, não só as suas competências técnicas como as competências comportamentais, sendo que as duas categorias de competências são avaliadas com uma importância semelhante. Espera-se igualmente que o candidato esteja motivado para integrar o programa formativo e de acompanhamento proposto pela Critical Software.
Note-se que é condição para a atribuição do projeto de dissertação a realização de uma entrevista com os candidatos interessados, reservando a Critical Software o direito de escolha do candidato mais adequado ao projeto em questão
Confidencialidade
A informação transmitida pela CRITICAL Software no âmbito do projeto de Dissertação, incluindo documentos técnicos ou de gestão, diagramas, código ou outra informação relevante deve ser tratada com a máxima confidencialidade. O candidato a quem for atribuído o projeto de Dissertação deve assinar um acordo de obrigação de confidencialidade(NDA, Non Disclosure Agreement).
Orientador
Jorge Manuel Simões de Almeida
jorge.almeida@criticalsoftware.com 📩