Software Básico - CI064 (2016-1, turma A)

pipeline Ementa: Linguagem de máquina. Técnicas de endereçamento. Representação digital de dados. Codificação simbólica e montadores. Definição e geração de macros. Segmentação e ligação de programas. Projetos ilustrativos da estrutura básica das máquinas e técnicas de programação.

Objetivo: Fornecer ao aluno conhecimentos sobre sistemas de suporte à execução de programas. Isso se dá através do estudo, projeto e programação de programas controladores de dispositivos, sistemas de interrupções, e sistemas operacionais para microprocessadores e sistemas embarcados. O estudo montadores e de seus sistemas auxiliares, como ligadores e carregadores, cobre os níveis que provêem as abstrações para a execução de programas nos sistemas operacionais de uso geral.

Pré-requisito: CI056.
O conteúdo desta disciplina pressupõe a capacidade de programar em C (CI067) e conhecimento básico sobre estruturas de dados (CI056).

Avaliação da disciplina efetuada na última semana de aulas.

Avaliação: duas provas, um trabalho e atividades em laboratório.
nota = P1*0,25 + P2*0,25 + T*0,25 + A*0.25
Não há segunda chamada, exceto nos casos previstos na Resolução 37-97.
A pior nota dentre P1 e P2 poderá ser substituída pela nota de uma prova sobre toda a matéria no dia 22jun.
O material a ser visto nas aulas em laboratório é uma parte importante do conteúdo desta disciplina; os exercícios propostos devem ser tentados em aula para que o professor possa ajudar em caso de dúvidas.

Programa: Aulas nas 2a 13:30 pg03, 4a 13:30 pc05.

data  fonte    assunto                                               (rev 1.0-07fev16)
--------------------------------------------------------------------------------------.
29fev hex01    laboratório - como computeiros trabalham no ambiente Unix, e nosso contexto
02mar ---      laboratório - como computeiros ganham tempo com Bash
07    ---      laboratório - como computeiros gastam tempo   [o trabalho nesta aula vale 5% da nota]
09    ---      laboratório - como computeiros ganham mais tempo com Bash
14    ---      laboratório - compilação, compilação condicional, Makefiles
16    ---      laboratório - depuração com splint e DDD      [o trabalho nesta aula vale 5% da nota]

21    hex2     representação: inteiros, ponto flutuante ponto flutuante utf-8
23    hex3.1   assembly do MIPS, lógica e aritmética, acesso à memória
28    hex3.1   decisões e repetição, caracteres, strings em C
30    hex3.2   funções na linguagem C, funções no MIPS, convenções, recursão
--    hex4     atividade extra-classe - programação em assembly (i) e (ii)

04abr hex4     modelo de execução do processador segmentado

11    *        primeira prova, sobre todo o conteúdo até a véspera

13    hex5     revisão da prova; compilação, otimização de código fonte e de assembly
18    hex6.1-4 organização de um computadorsistema operacional: abstrações, processos
20    hex6.5-6 sistema operacional: escalonamento, concorrência e sincronização
25    hex7     SO: tratamento de E/S, polling, interrupções
27    hex5     laboratório - cMIPS

02mai hex7.3   SO: interrupções no MIPS, COP0, interrupção pelo relógio     especificação do trabalho
04    hex7     laboratório - relógio de tempo-real          [o trabalho nesta aula vale 5% da nota]
09    sdm7.3   interface serial, hardware (sdm7.3)
11    hex9     interface serial, software (hex9)
16    hex9     laboratório - tratador de interrupção serial (lab 1)

18    hex10    SO: memória virtual e paginação
23    hex10    SO: mais memória virtual e paginação           [lista de exercícios vale 5% da nota]

25    hex11,12 main(), arquivos objeto, formato ELF
30    hex12,13 tab. de símbolos, código independente de posição, relocação, carga
01jun hex15,16 bibliotecas para ligação estática e dinâmica
06    hex14-16 laboratório - dissecação de uma biblioteca   [o trabalho nesta aula vale 5% da nota] 
08    *        balancete semestral, ou até onde chegamos

15    *        segunda prova, sobre todo o conteúdo até a véspera

20    ---      demonstração do trabalho              entrega do trabalho
22    ---      demonstração do trabalho              prova substitutiva

11jul *        final
--------------------------------------------------------------------------------------

Listas de exercícios: programação em assembly, SO e interrupções no MIPS, ligadores e ligação.
Provas de períodos anteriores: 2016-1, 2015-1, 2014-1, 2009-1, 2008-1, 2007-2.

Trabalho: especificação entrega: 20jun até as 13:30. compiling http://xkcd.com/303/

Bibliografia:

Material auxiliar e documentação:


Última revisão: 29jun2016
volta para: encargos |página