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.
Bibliografia:
Material auxiliar e documentação: