Software Básico - CI064 (2018-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: Apresentar ao discente os 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 uma introdução aos sistemas operacionais. O estudo de montadores e seus sistemas auxiliares -- ligadores e carregadores -- expõe as interfaces e abstrações associadas à execução de programas em sistemas operacionais de uso geral da classe Unix.

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).

Taxa de aprovação em semestres anteriores. Avaliação da disciplina efetuada na última semana de aulas de 2018-1.

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.
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 PA-5, 4as PA-2, 13:30.

data  fonte    assunto                                               (rev 1.0-21fev18)
--------------------------------------------------------------------------------------.
19fev hex01    laboratório - como computeiros trabalham no ambiente Unix, e nosso contexto
21    ---      laboratório - como computeiros ganham tempo com Bash
26    ---      laboratório - como computeiros gastam tempo   [o trabalho nesta aula vale 5% da nota]
28    ---      laboratório - como computeiros ganham mais tempo com Bash
05    ---      laboratório - compilação, compilação condicional, Makefiles
07    ---      laboratório - depuração com splint e DDD      [o trabalho nesta aula vale 5% da nota]

12    hex2     representação: inteiros, ponto flutuante

14    hex3.1   assembly do MIPS, lógica e aritmética, acesso à memória
19    hex3.1   decisões e repetição, caracteres, strings em C
21    hex3.2   funções na linguagem C, funções no MIPS, convenções, recursão
--    hex3     atividade extra-classe - programação em assembly (i) e (ii)

26    hex4     modelo de execução do processador segmentado
28    hex4     mais sobre o modelo de execução do processador segmentado
02abr hex5     laboratório - cMIPS (lab-4)

04    hex5     compilação, otimização de código fonte e de assembly

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

18    hex6.1-3 revisão da prova; organização de um computador e de um sistema operacional
25    hex6.4-6 SO: escalonamento, concorrência e sincronização
02mai hex7.1-2 SO: tratamento de E/S, polling, interrupções          especificação do trabalho
07    hex7.3   SO: interrupções no MIPS, CP0, interrupção pelo relógio
07    hex7     laboratório - relógio de tempo-real (lab-3)  [o trabalho nesta aula vale 5% da nota]

09    sdm7.3   interface serial, hardware (sdm7.3)
14    hex8     interface serial, software (hex9)
14    hex8     laboratório - tratador de interrupção serial (lab 3)
16    hex8     laboratório - clínica do trabalho (lab 4)
21    hex8     laboratório - clínica do trabalho (lab 4)
23    hex8     laboratório - clínica do trabalho (lab 4)

04jun hex9     SO: memória virtual e paginação
06    hex9     SO: mais memória virtual e paginação      [lista de exercícios vale 5% da nota]

11    hex10,11 main(), formato ELF, compilação, ligação, carga, tab. de símbolos
13    hex15    bibliotecas para ligação estática e para ligação dinâmica

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

20    hex10-15 laboratório - bibliotecas dinâmicas           [o trabalho nesta aula vale 5% da nota]

02jul *        final
--------------------------------------------------------------------------------------

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

Trabalho: especificação entrega: 21mai até as 13:00.

recepção e transmissão simultâneas

Bibliografia:

compiling http://xkcd.com/303/ Material auxiliar e documentação:


Última revisão: 07fev2018
volta para: encargos |página