Sistemas de Computação
Lic. Engª Informática, 1º ano
2009/2010
Docente responsável: A.J.Proença

 

Projecto

Objectivos | Regulamento | Tema | Tarefas | Submissão

Ultima Modificação: 12 Mai 2010

 

 departamento de informática

Notas

  1. Aviso para a defesa oral: de acordo com as regras definidas no Regulamento, o trabalho deveria ter sido executado no servidor, e todo o material submetido para avaliação deverá estar também no servidor para a defesa oral (com data não posterior à deadline de submissão); contudo, alguns alunos esqueceram-se de colocar este material na sua home (43174, 49399, 50498, 51775) e foram penalizados com classificação 0 (zero) sem direito a defesa do trabalho; dado que esta situação conduz a possíveis situações de injustiça relativamente a estudantes que irão defender posteriormente, foi decidido dar uma 2ª oportunidade a estes estudantes assim excluídos, e permitir que eles venham na sexta, 14 de Maio, fazer nova defesa (de preferência de manhã). (12-Mai-10)
  2. Defesa oral do projecto (Lab 1.04): após análise de todos os relatório entregues e respectivos complementos (código fonte e executável), constatou-se que : (i) os seguintes estudantes inscreveram-se para a defesa oral mas que não entregaram o relatório: 43177, 47088, 47091, 47394, 51216, 51742, 52613, 53064, 53796, 53988, 54713, 54732, 54735, 54754, 54756, 54763, 54771, 54779, 54798, 55849, 55865, 57776, 57823, 57839, 58754, 59742 ; (ii) de acordo com o ponto 6 do Regulamento os seguintes estudantes não foram admitidos à defesa oral por não terem entregue trabalhos que satisfaçam minimamente os critérios de qualidade: 51816, 54726, 54748 54818, 56543. (11-Mai-10)
  3. Submissão de trabalhos já disponível nesta plataforma. Atenção às consequências de não cumprimento do prazo (ver em baixo, em Submissão). (07-Mai-10)
  4. O Projecto e os métodos A e B de avaliação: relembra-se que qualquer que seja o método adoptado de avaliação, (A ou B), a prova laboratorial é obrigatória e está sujeita à classificação mínima para aprovação ou admissão a exame. A realização deste projecto e consequente defesa oral individual são parte integrante da prova laboratorial. (29-Abr-10)
  5. Sobre o texto desta página: parte da informação ainda é provisória, e quando tal acontecer o texto aparecerá a cinza claro. (23-Abr-10)

 


Objectivos de formação e resultados de aprendizagem

Este projecto tem como objectivos principais a formação genérica e específica dos estudantes inscritos em Sistemas de Computação.

Os objectivos de formação genérica incluem: (i) a pesquisa, análise e selecção de informação, (ii) o treino de trabalho de grupo na resolução de problemas, (iii) o desenvolvimento da capacidade de análise e compreensão de textos em língua inglesa, e (iv) o desenvolvimento da capacidade de comunicação escrita e oral.

Os objectivos de formação específica incluem: (i) a análise e interpretação do simulador de uma ISA de 16-bits, que se inspira no IA-32 e no trabalho desenvolvido no Guião Teatral da UC (o small86, ou s86), (ii) a construção de novas funcionalidades no simulador, (iii) a aquisição e reforço de técnicas de engenharia inversa, e (iv) a aquisição de competências práticas no controlo de baixo nível na execução de um programa.

A avaliação dos resultados esperados de aprendizagem irão verificar se as/os estudantes conseguem demonstrar ter adquirido o seguinte conjunto de competências genéricas e específicas:

Topo...


Regulamento

  1. O projecto consiste na realização de um trabalho experimental em grupo (com 2 estudantes), com entrega de um Relatório e uma defesa individual oral em laboratório.
  2. O trabalho experimental deverá ser realizado no servidor montado especificamente para esta UC, e respectivas ferramentas de compilação e de depuração da Gnu. Os ficheiros de trabalho deverão ficar colocados no servidor e não poderão ser alterados depois do prazo de entrega do Relatório.
  3. O Relatório deverá ser redigido em língua inglesa, de acordo com as regras definidas neste documento, e submetido em formato electrónico, através desta plataforma. O Relatório deverá ser acompanhado de ficheiros com o código fonte desenvolvido e o respectivo executável.
  4. Prazo para entrega do Relatório: segunda, 10-Mai-10, 9h00
  5. A defesa individual do projecto realizar-se-á durante a semana de 10-Maio-10, de terça a sexta, em períodos de 2h, num dos laboratórios do DI, sendo a duração estimada de cada defesa de 10 min. Para facilitar/acelerar o acesso com certificado ao servidor, será possível utilizar o posto de trabalho pessoal de cada estudante. A inscrição para o os períodos de 2h de avaliação far-se-á através do mesmo site que foi utilizado para a inscrição nos turnos TP, a partir das 9h00 de segunda 26-Abr-10.
  6. A classificação do Projecto tomará em consideração a avaliação do Relatório e do código apresentado, e caso este satisfaça os mínimos de qualidade, os estudantes serão aceites para a sua defesa oral. A classificação final após a defesa oral terá 4 escalões:
  7. Caso sejam detectadas situações fraudulentas (desde plágio de outro grupo ou de um outro qualquer local, a comportamento fraudulento de um dos elementos do grupo), as partes envolvidas ficarão sujeitas a acções ou procedimentos disciplinares de acordo com a gravidade demonstrada.
  8. A não aprovação no projecto conduz à classificação de "Não Admitido" na pauta final de SC. 

 

Topo...


Tema: "Um Simulador do s86 usado no Guião Teatral"

O simulador s86 é um pequeno programa em C que executa algumas das instruções do instruction set x86 de 16 bits (ISA-16). Está muito longe de ser um simulador completo, mas constitui um esqueleto de um simulador do processador que poderá ser aumentado para acrescentar instruções e funcionalidades internas como se estivessem a ser acrescentadas ao microprocessador real. No entanto, estão já definidas algumas funcionalidades inerentes à ALU, ao acesso aos registos, ao acesso à memória, à execução de instruções nos vários formatos internos do processador, à descodificação de instruções e à unidade de controlo.

O código do simulador é simples e poderá ser também analisado para perceber melhor o conjunto de operações subjacentes à execução de um programa. O componente mais complexo do código está associado à função de descodificação de instruções, o que decorre naturalmente da maior complexidade dessa operação. No entanto, as restantes funções podem ser facilmente analisadas a partir do código fonte.

Actualmente, o simulador implementa apenas as funcionalidades e instruções necessárias à execução do programa apresentado no guião teatral (TPC3 das sessões TP). Este programa a executar pelo simulador poderá ser (i) definido no código do próprio do simulador, ou (ii) carregado a partir de um ficheiro. Neste último caso, o utilizador quando mandar executar o simulador passará como parâmetro um ficheiro contendo qualquer programa (em código máquina ISA-16) que possa ser implementado pelo conjunto de instruções já disponíveis no simulador.

Ao executar o simulador poderá observar diversas tarefas que seriam executadas pelo microprocessador para executar as instruções que constituem o código máquina do programa, podendo variar o nível de detalhe da traçagem através do parâmetro '
-d' seguido de um valor entre 1 e 3.

Ficheiros disponibilizados para a realização do projecto: o código fonte do simulador em C, parcialmente corrompido (s86proj.c) e uma versão completa e correcta em assembly (s86.s), e um ficheiro de dados com a informação pertinentes à execução do programa IA-16 usado no guião teatral (teatro.s86).
Estes ficheiros encontram-se no servidor
sc.di.uminho.pt, em /opt/sc/lei, com permissão de leitura apenas. Deverá copiá-lo para a sua home e realizar o trabalho a partir de lá.

 

Topo...


Tarefas

Descrição detalhada das tarefas (lista das O obrigatórias e das V opcionais/valorativas):

  1. O Acrescentar uma nova funcionalidade ao simulador s86: a capacidade de especificar o destino do resultado de uma adição como sendo a memória. Esta função deverá (i) ser semelhante a uma existente, cujo destino do resultado é um registo, e (ii) respeitar as regras do IA-16, i.e., apenas um dos operandos poderá estar em memória.
    Designe esta nova função por
    exe_add_r2m( t_reg src, t_ptr dst, t_flags * flags )
     
  2. V O código deste simulador contém, por omissão, o conjunto de instruções do IA-16 apresentado como exemplo no Guião Teatral (TPC3). Altere no código máquina do programa do guião teatral uma das instruções desse conjunto, de modo a que o simulador passe a utilizar a funcionalidade proposta na tarefa anterior. Essa alteração poderá se feita directamente no código C do simulador, ou no ficheiro de dados que passar como parâmetro quando mandar executar o simulador. 
     
  3. V O código fonte em C do simulador foi corrompido e a função loaddefault() ficou incompleta. Aplique técnicas de reverse engineering ao programa em assembly, para recuperar o possível código fonte que foi corrompido.
     
  4. O Elaborar o Relatório do projecto de acordo com as regras definidas no documento-template.

Informação adicional:
 - a realização das tarefas obrigatórias é indispensável para admissão à defesa individual do trabalho;
 - o conjunto de documentos solicitados obrigatórios (relatório de grupo, e código fonte e executável) deverá ser entregue em formato compactado ZIP, num único ficheiro, com a seguinte designação:
<SC10_leader>, em que leader é o nº do coordenador do grupo;
 - a defesa oral individual vai incidir
essencialmente (i) na utilização de ferramentas de conversão de níveis de abstracção (da Gnu), (ii) na análise código assembly (focado na função
loaddefault() do ficheiro
s86.s) e sua ligação ao código fonte, e (iii) na execução controlada (até pontos de paragem e /ou passo-a-passo) da função acima referida, e correspondente análise de conteúdos em registos e em memória.


 

Topo...


Submissão

Deverá ser feita nesta plataforma desenvolvida para o efeito, de acordo com as regras definidas no regulamento, com registo automático da hora de submissão e do remetente.
No caso de re-submissão, será sempre considerada a última submissão.

Nota:
Prazo para entrega do Relatório: segunda, 10-Mai-10, 9h00
.
Trabalhos submetidos após esta hora e até às 11h00 serão penalizados.
Após as 11h00 a plataforma encerrará.

 

Topo...

 


Conteúdo da responsabilidade de Vítor Oliveira e Alberto Proença
Página mantida por aproenca <at> di.uminho.pt
Ultima Modificação: 12 Mai 2010