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: duas provas, um trabalho e atividades em laboratório.
nota = P1*0,25 + P2*0,25 + T*0,3 + A*0.2
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 24jun.
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.
Avaliação da disciplina efetuada na última semana de aulas.
Programa: Aulas nas 2as,4as, as 13:30 na sala pf06.
data fonte assunto (rev 1.1-22abr15) --------------------------------------------------------------------------------------. 23fev not01 laboratório - como computeiros trabalham no ambiente Unix, e algum contexto 25 --- laboratório - como computeiros ganham tempo com Bash 02mar --- laboratório - como computeiros gastam tempo [o trabalho nesta aula vale 5% da nota] 04 --- laboratório - como computeiros ganham mais tempo com Bash 09 --- laboratório - compilação, compilação condicional, Makefiles 11 --- laboratório - depuração com splint e DDD [o trabalho nesta aula vale 5% da nota] 16 not02 representação: inteiros, caracteres, linguagem de montagem 18 cod2.1-4 assembly do MIPS, lógica e aritmética, acesso à memória 23 cod2.6 decisões e repetição, strings em C (código ASCII) 25 cod2.7 funções na linguagem C, funções no MIPS, convenções, recursão 30 --- laboratório - programação em assembly 01abr not04 modelo de execução do processador segmentado 06 not05 compiladores, otimização de código 08 tudo primeira prova, sobre todo o conteúdo até a véspera 13 not06 revisão da prova; sistema operacional: abstrações, processos 15 not06 SO: concorrência e sincronização 20 --- recesso Tiradentes 22 not06 SO: concorrência e sincronização, segunda tentativa 27 not07 SO: tratamento de E/S 29 not07 SO: interrupções no MIPS, COP0, relógio de tempo-real 04mai --- laboratório - cMIPS 06 --- laboratório - relógio de tempo-real [o trabalho nesta aula vale 5% da nota] 11 hex7.3 interface serial, hardware especificação do trabalho 13 not08 interface serial, software 18 --- laboratório - tratador de interrupção serial 20 not09 SO: memória virtual 25 not10 SO: paginação e memória virtual 27 not12 tab. de símbolos, main(), arquivos objeto, formato ELF 01jun not12 código independente de posição, archives, relocação, carga 03 not13 bibliotecas para ligação estática; relocação; carga 08 not13 bibliotecas para ligação dinâmica; relocação, carga 10 not11-12 laboratório - dissecação de uma biblioteca [o trabalho nesta aula vale 5% da nota] 15 not07-13 reserva, exercícios 17 tudo segunda prova, sobre todo o conteúdo até a véspera 22 --- demonstração do trabalho entrega do trabalho 24 --- demonstração do trabalho prova substitutiva 06jul --- final --------------------------------------------------------------------------------------
Listas de exercícios:
SO e memória virtual,
memória virtual,
tabelas de símbolos e archives,
Provas de períodos anteriores:
2014-1,
2009-1,
2008-1,
2007-2.
Trabalho:
especificação entrega:
22jun até as 13:30.
Bibliografia:
Material auxiliar e documentação: