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 2017-1.
Avaliação: duas provas, um trabalho e atividades em laboratório.
nota = P1*0,30 + P2*0,25 + T*0,25 + 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 nas 2a,4a 13:30, sala pa01.
data fonte assunto (rev 1.2-22mai17) --------------------------------------------------------------------------------------. 20fev hex01 laboratório - como computeiros trabalham no ambiente Unix, e nosso contexto 22 --- laboratório - como computeiros ganham tempo com Bash 06 --- laboratório - como computeiros gastam tempo [o trabalho nesta aula vale 5% da nota] 08 --- laboratório - como computeiros ganham mais tempo com Bash 13 --- laboratório - compilação, compilação condicional, Makefiles 20 --- laboratório - depuração com splint e DDD [o trabalho nesta aula vale 5% da nota] 22 hex2 representação: inteiros, ponto flutuante (ponto flutuante, utf-8) 27 hex3.1 assembly do MIPS, lógica e aritmética, acesso à memória 29 hex3.1 decisões e repetição, caracteres, strings em C 03abr 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) 05 hex4 modelo de execução do processador segmentado 10 hex4 mais sobre o modelo de execução do processador segmentado 12 hex5 laboratório - cMIPS -- hex5 atividade extra-classe - segmentação 17 hex5 compilação, otimização de código fonte e de assembly 19 * primeira prova, sobre todo o conteúdo até a véspera 24 hex6.1-4 revisão da prova; organização de um computador e de um sistema operacional 26 hex6.5-6 SO: escalonamento, concorrência e sincronização 03mai hex7 SO: tratamento de E/S, polling, interrupções especificação do trabalho 08 hex7.3 SO: interrupções no MIPS, COP0, interrupção pelo relógio 10 hex7 laboratório - relógio de tempo-real [o trabalho nesta aula vale 5% da nota] 15 sdm7.3 interface serial, hardware (sdm7.3) 17 hex9 interface serial, software (hex9) 22 hex9 laboratório - tratador de interrupção serial (lab 4) 24 hex9 laboratório - clínica do trabalho (lab 4) 29 hex9 laboratório - clínica do trabalho (lab 4) 31 --- demonstração do trabalho (lab 4) 05jun hex10 SO: memória virtual e paginação 07 hex10 SO: mais memória virtual e paginação [lista de exercícios vale 5% da nota] 12 hex11-13 main(), formato ELF, compilação, ligação, carga, tab. de símbolos 14 hex14-15 bibliotecas para ligação estática e para ligação dinâmica 19 * segunda prova, sobre todo o conteúdo até a véspera 03jul * 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:
31mai até as 10:00.
Bibliografia:
Material auxiliar e documentação: