Software Básico - CI064 (2014-1)

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: CI055.
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: duas provas e um trabalho.
nota = P1*0,35 + P2*0,35 + T*0,3
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 04jun.
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 2as e 4as as 13:30, 2a,4a 13:30 na sala PC01.

data  fonte    assunto                                               (rev 1.2-28abr14)
--------------------------------------------------------------------------------------.
10fev ---      laboratório - como computeiros trabalham no ambiente Unix
12    ---      laboratório - Bash, ou como computeiros ganham tempo
17    ---      laboratório - Bash, ou como computeiros ganham mais tempo
19    ---      laboratório - depuração com splint e DDD
24    ---      laboratório - compilação condicional e sed
26    codA     representação: inteiros, PF, linguagem de montagem

10mar cod2.1-4 assembly do MIPS, lógica e aritmética, acesso à memória
12    cod2.6   decisões e repetição, strings em C (código ASCII)
17    cod2.7   funções na linguagem C, funções no MIPS, convenções, recursão
19    cod2.15  modelo de execução do processador segmentado, ponteiros, listas encadeadas
24    ---      laboratório - programação em assembly
26    ---      laboratório - programação em assembly
31    cod2     primeira prova

02abr so1      rev prova; sistema operacional: abstrações, processos
07    so1      SO: tratamento de E/S
09    codA     SO: interrupções no MIPS, COP0, inter. do relógio de tempo-real [hex7.5]
14    ---      laboratório - cMIPS
16    ---      laboratório - relógio de tempo-real
23    hex7.3   interface serial, hardware
28    hex7.3   interface serial, software     especificação do trabalho 
30    hex7.3   laboratório - tratador de interrupção serial

05mai so9.4    SO: alocação de memória e segmentação 
07    so9.5    SO: paginação e memória virtual
12    ll2,3    arquivos objeto, formato ELF, tab. de símbolos, main()
14    ll4,5    archives, relocação, carga
19    ll6      bibliotecas para ligação estática, relocação; carga
21    ll10.1-6 bibliotecas para ligação dinâmica; relocação, carga
26    ll2-10   reserva, exercícios
28    ---      segunda prova

02jun ---      demonstração do trabalho              entrega do trabalho
04    ---      demonstração do trabalho              prova substitutiva

14jul ---      final
--------------------------------------------------------------------------------------

Listas de exercícios: memória virtual, tabelas de símbolos e archives,
Provas de períodos anteriores: 2009-1, 2008-1, 2007-2.

Trabalho: especificação entrega: 02jun até as 13:30. Turma 2014-1,
foto de Rodrigo Freitas

Bibliografia:

Material auxiliar e documentação:


Última revisão: 06jan14
volta para: encargos |página