Software Básico

Período: 1999.2

Conteúdo

Professor
Objetivos
Ementa
Conceitos Fundamentais
Programa
Plano de Aulas
Bibliografia
Material do Curso
Avaliação
Notas dos Alunos
Lista de Exercícios
Projeto
Datas Importantes
URLs Adicionais
Professor: Elmar Uwe Kurt Melcher [Volta para Conteúdo]
Horários do Professor
Monitores: Alexandre, Alisson, Gustavo [Volta para Conteúdo]

Objetivos: [Volta para Conteúdo]

Objetivos Gerais:
Objetivos Específicos:
Programa: [Volta para Conteúdo]

Contexto

  1. Introdução
  2. Arquitetura Pentium – ela será usada nos trabalhos práticos
Programar a nível de instruções de máquina
  1. Programar em código de máquina usando um depurador
  2. Entrada/Saída por acesso direto (mapeamento de dispositivos de entrada/saída)
  3. Chamadas ao sistema operacional (conceito de interrupções e pilha)
  4. Programar em linguagem de montador
  5. Usar um ligador
Suporte ao sistema operacional
  1. Interrupção – implementar uma rotina de interrupção
  2. Paginação – criar uma tabela de paginação e uma rotina para atender uma falha de página
  3. Segmentação – implementar um carregador que carrega código executável, dados, variáveis e pilha em segmentos separados
  4. Proteção (privilégios) – rodar um código com privilégio mínimo e voltar para o nível de privilégio máximo
  5. Multitarefa – carregar vários processos e chavear entre eles

Plano de Aulas: [Volta para Conteúdo]
 
Dia Assunto Planejado
29/9  Anunciar URL da disciplina;
Avisar para todos olharem as datas importantes;
Pedir para não imprimir o material disponibilizado através da pagina da disciplina nas impressoras da Universidade;
Apresentar a motivação para a disciplina;
Apresentar os objetivos da disciplina;
Apresentar o conteúdo da disciplina;
Apresentar o processo de avaliação da disciplina;
Revisão do conjunto de registros do Pentium
Usar a instrução mov para escrever um ponto na tela acessando diretamente a memória de vídeo.
4/10 Cadastramento dos grupos de trabalho.
Uso do depurador. Desenhar uma borboleta.
6/10 Usar montador e ligador. Visualizar um conjunto de Julia.
11/10  Criar uma subrotina que faz a tela piscar.
13/10 A tabela de descritores de interrupção (IDT).
18/10  Criar uma subrotina que preenche uma porta de interrupção.
20/10 Completar a rotina de atendimento a uma interrupção do mouse.
25/10 Revisão: Diretório e tabelas de paginação
27/10 Preencher um descritor de página
1/11 Rotina de atendimento de uma falha de página
3/11 Provocar uma falha de paginação
10/11  Revisão: A tabela de segmentação (GDT)
17/11 Preencher o tipo e privilégio de um descritor
22/11 Preencher a base e o limite de um segmento no descritor 
Usar o segmento no debugger
24/11 Especificação de nosso carregador – definição do formato do executável
29/11 Especificação de um carregador – plano de memória
1/12 Implementação do carregador
6/12 Proteção e privilégios
13/12 Proteção e privilégios na arquitetura Pentium
Trocar de nível de privilégio
15/12
Carregador para nível de privilégio baixo
17/1 Código conforme e não conforme
Preencher um call gate
19/1 A pilha na troca do nível de privilégio.
Usar o call gate
24/1

O segmento de estado de tarefa e o chaveamento entre tarefas

26/1
Criar segmentos de estado de tarefa
31/1 Implementação de um carregador multitarefas
1/2 Implementação de chaveamento entre tarefas
7/2 Implementação de chaveamento entre tarefas
9/2
14/2 
16/2   
21/2  
23/2

28/2 Prova final

Bibliografia: [Volta para Conteúdo]

  1. Pentium Processor Family Developer’s Manual, Volume 3: Architecture and Programming Manual, Developers’ Insight: Intel’s Web Site for Developers on CD-ROM "productos two & tools", \design\pentium\manuals\24143004.pdf

  2. (este arquivo está acessível no laboratório através do comando acrobat archprog)
  3. Intel Architecture Software Developer's Manual, Developers’ Insight: Intel’s Web Site for Developers on CD-ROM "productos two & tools", \design\pentium\manuals\24319*01.pdf
  4. Andrew S. Tanenbaum, Structured Computer Organization, quarta edição, Prentice Hall, 1998
Avaliação: [Volta para Conteúdo]

A média das notas obtidas nos tres projetos. Para valer, um projeto tem que ser entregue no dia fixado.

Datas Importantes: [Volta para Conteúdo]
 
Interrupção  15/11/1999
Paginação  22/11/1999
Carregador PL3  23/2/2000
Prova Final   28/2/2000

URLs Adicionais: [Volta para Conteúdo]