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: ci1056.
O conteúdo desta disciplina pressupõe a capacidade de programar
em C (ci1002) e conhecimento básico sobre estruturas de dados (ci1056).
Taxa de aprovação em semestres anteriores. Avaliação da disciplina efetuada na última semana de aulas de 2019-1.
Avaliação: duas provas, um trabalho e atividades em laboratório.
nota = P1*0,25 + P2*0,25 + T*0,30 + A*0.20
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 17:30, 3a ct-05, 5a ct-08.
data fonte assunto (rev 0.1-01nov19) --------------------------------------------------------------------------------------. 01 hex2 representação: inteiros, ponto flutuante 02 ??? funções transcendentais como Séries de Taylor, precisão 03 ??? laboratório: ponto flutuante (lab-3) [o trabalho nesta aula vale 5% da nota] 04 hex3.1 assembly do MIPS, aritmética, memória, controle de fluxo 05 hex3.1 strings em C, funções na linguagem C 06 hex3.2 funções no MIPS, convenções, recursão -- hex3 laboratório: programação em assembly (i) e (ii) 07 hex4 modelo de execução do processador segmentado 08 hex4 laboratório - cMIPS (lab-4) 09 hex5 compilação, otimização de código fonte 10 hex5 otimização de código assembly 11 hex6.1-3 organização de um computador e de um sistema operacional 12 hex6.1-3 SO: programas, processos e E/S 13 hex6.4-6 SO: escalonamento, concorrência e sincronização 14 hex7.1-2 SO: tratamento de E/S, polling, interrupções 15 hex7.3 SO: interrupções no MIPS, CP0, interrupção pelo relógio 16 hex7 laboratório: relógio de tempo-real (lab-3) [o trabalho nesta aula vale 5% da nota] -- * primeira prova, sobre todo o conteúdo até a véspera 17 hex8.1 resolução da prova, interface serial, hardware 18 hex8.2 interface serial, software especificação do trabalho 19 hex8 laboratório: tratador de interrupção serial (lab 4) 20 hex8 clínica do trabalho 21 hex8 demonstração do trabalho 22 hex8 demonstração do trabalho 23 hex9 SO: memória virtual e paginação [lista de exercícios vale 5% da nota] 24 hex9 SO: memória virtual e paginação (cont) 25 hex9 SO: memória virtual e segmentação 26 hex6-9 SO: exercícios 27 hex10-13 main(), formato ELF, compilação, ligação, carga, tab. de símbolos 28 hex14 bibliotecas para ligação estática 29 hex15 bibliotecas para ligação dinâmica 30 hex10-15 laboratório: bibliotecas (lab-3) [o trabalho nesta aula vale 5% da nota] -- * segunda prova, sobre todo o conteúdo até a véspera -- * final --------------------------------------------------------------------------------------
Listas de exercícios:
programação em assembly,
SO e interrupções no MIPS,
ligadores e ligação.
Provas de períodos anteriores:
2019-1,
2018-1,
2017-1,
2016-1,
2015-1,
2014-1.
Trabalho: especificação entrega: ????? até as 15:00.
Bibliografia:
Material auxiliar e documentação: