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 da disciplina efetuada na última semana de aulas.
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.
A pior nota dentre P1 e P2 poderá ser substituída
pela nota de uma prova sobre toda a matéria no dia 22jun.
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 2a 13:30 pg03, 4a 13:30 pc05.
data fonte assunto (rev 1.0-07fev16) --------------------------------------------------------------------------------------. 29fev hex01 laboratório - como computeiros trabalham no ambiente Unix, e nosso contexto 02mar --- laboratório - como computeiros ganham tempo com Bash 07 --- laboratório - como computeiros gastam tempo [o trabalho nesta aula vale 5% da nota] 09 --- laboratório - como computeiros ganham mais tempo com Bash 14 --- laboratório - compilação, compilação condicional, Makefiles 16 --- laboratório - depuração com splint e DDD [o trabalho nesta aula vale 5% da nota] 21 hex2 representação: inteiros, ponto flutuante ponto flutuante utf-8 23 hex3.1 assembly do MIPS, lógica e aritmética, acesso à memória 28 hex3.1 decisões e repetição, caracteres, strings em C 30 hex3.2 funções na linguagem C, funções no MIPS, convenções, recursão -- hex4 atividade extra-classe - programação em assembly (i) e (ii) 04abr hex4 modelo de execução do processador segmentado 11 * primeira prova, sobre todo o conteúdo até a véspera 13 hex5 revisão da prova; compilação, otimização de código fonte e de assembly 18 hex6.1-4 organização de um computadorsistema operacional: abstrações, processos 20 hex6.5-6 sistema operacional: escalonamento, concorrência e sincronização 25 hex7 SO: tratamento de E/S, polling, interrupções 27 hex5 laboratório - cMIPS 02mai hex7.3 SO: interrupções no MIPS, COP0, interrupção pelo relógio especificação do trabalho 04 hex7 laboratório - relógio de tempo-real [o trabalho nesta aula vale 5% da nota] 09 sdm7.3 interface serial, hardware (sdm7.3) 11 hex9 interface serial, software (hex9) 16 hex9 laboratório - tratador de interrupção serial (lab 1) 18 hex10 SO: memória virtual e paginação 23 hex10 SO: mais memória virtual e paginação [lista de exercícios vale 5% da nota] 25 hex11,12 main(), arquivos objeto, formato ELF 30 hex12,13 tab. de símbolos, código independente de posição, relocação, carga 01jun hex15,16 bibliotecas para ligação estática e dinâmica 06 hex14-16 laboratório - dissecação de uma biblioteca [o trabalho nesta aula vale 5% da nota] 08 * balancete semestral, ou até onde chegamos 15 * segunda prova, sobre todo o conteúdo até a véspera 20 --- demonstração do trabalho entrega do trabalho 22 --- demonstração do trabalho prova substitutiva 11jul * final --------------------------------------------------------------------------------------
Listas de exercícios:
programação em assembly,
SO e interrupções no MIPS,
ligadores e ligação.
Provas de períodos anteriores:
2016-1,
2015-1,
2014-1,
2009-1,
2008-1,
2007-2.
Trabalho:
especificação entrega:
20jun até as 13:30.
Bibliografia:
Material auxiliar e documentação: