 |
23/02/99: |
Apresenta��o. Plano do curso. Arquitetura dos microprocessadores
x86 (386/486/586) da Intel. |
 |
25/02/99: |
Bytes, words e doublewords na mem�ria do x86: o esquema "little
endian" (byte menos significativo primeiro). Mem�ria linear
versus mem�ria segmentada. Programa "hello, world" para o NASM. A
pilha do x86. Instru��es push , pop ,
call e ret . |
 |
02/03/99: |
Chamadas diretas ao Linux: outra vers�o do programa
"hello, world". Uso de equ e $ : mais uma vers�o do "hello,
world". Se��es de um programa: c�digo (.text ),
dados inicializados (.data ) e dados n�o
inicializados (.bss ). Diretivas db ,
dw , dd , resb ,
resw e resd . Acesso a vari�veis na
mem�ria: r�tulos de vari�veis, uso do operador [
] . Instru��es de compara��o (cmp ), desvio
condicional (jne , ...) e desvio incondicional
(jmp ). Programa
que soma uma seq��ncia de inteiros. |
 |
09/03/99: |
An�lise de uma listagem
gerada pelo NASM. Introdu��o � reloca��o de c�digo: acerto de
endere�os em tempo de link e em tempo de carga. Classifica��o
dos operandos de instru��es: registrador, imediato, direto,
indireto via registrador, indexado (com ou sem fator de
escala). |
 |
11/03/99: |
Passagem de par�metros na pilha: como a rotina chamada acessa
os par�metros empilhados. Exemplo: o m�dulo syscalls.asm. Vari�veis
alocadas na pilha. Recurs�o em linguagem de montagem. Exemplo:
torres de Hanoi. |
 |
16/03/99: |
Coment�rios finais sobre passagem de par�metros e aloca��o de
vari�veis na pilha. Observa��es sobre o primeiro EP. N�meros
inteiros com sinal: representa��o em complemento de
dois. Significado dos flags de "carry" (CF) e de "overflow"
(OF) do x86. |
 |
18/03/99: |
Instru��es de desvio condicional: o que elas realmente fazem
(que flags elas testam) e como us�-las ap�s compara��es de
n�meros com sinal e sem sinal. Convers�o (alargamento) de tipos
por extens�o de sinal ("sign-extension"). Deslocamentos para a
direita: shr (n�meros sem sinal) e
sar (n�meros com sinal). |
 |
23/03/99: |
Arquivos no Linux: seq��ncias de bytes. System calls para
manipula��o de arquivos: open , read ,
write , lseek , close ,
fsync . Organiza��o f�sica de um disco: cilindros,
faces, trilhas e setores. O conceito de "arquivo" como uma abstra��o
que o S.O. constr�i sobre o disco f�sico. Import�ncia dos buffers de
entrada e sa�da. Conversa inicial sobre o projeto do curso. |
 |
25/03/99: |
Gerenciamento de buffers. Discuss�o sobre a primeira etapa do
projeto do curso. |
 |
06/04/99: |
Ainda sobre manipula��o de arquivos no Linux: o file descriptor
como um �ndice para a tabela de arquivos abertos do
processo. Bufferiza��o no ambiente Unix/Linux: a bufferiza��o
feita pelo sistema operacional (para economizar acessos a disco)
e a feita pela libc (para economizar chamadas ao
sistema). N�veis de privil�gio numa CPU protegida: modo sistema
(mais privilegiado) e modo usu�rio (menos privil�gio). Custo
relativamente alto de chamadas a um S.O. protegido (como o Linux
ou o Windows NT).
|
 |
08/04/99: |
Modulariza��o de c�digo em C: arquivos-fonte compilados
separadamente, uso de static para esconder
vari�veis ou fun��es internas a um m�dulo, uso de header files
(arquivos .h ) com prot�tipos das fun��es exportadas
pelo m�dulo e (mais raramente) com declara��es de vari�veis
exportadas pelo m�dulo. Modulariza��o de c�digo em Java: a
"unidade de modulariza��o" � a classe. (Em C � o arquivo.)
Significado de static em Java: campos de inst�ncia
versus vari�veis de classe (static ), m�todos de
inst�ncia versus m�todos de classe. |
 |
13/04/99: |
Resolu��o de d�vidas sobre a primeira etapa do projeto do
curso. |
 |
15/04/99: |
Resolu��o de mais d�vidas sobre a primeira etapa do projeto do
curso. |
 |
20/04/99: |
Revis�o: m�dulos montados ou compilados separadamente; liga��o
de m�dulos (link); modulariza��o de programas em C; manipula��o
de arquivos via chamadas ao sistema e manipula��o de arquivos
via fun��es de biblioteca. |
 |
22/04/99: |
Primeira prova. |
 |
27/04/99: |
Inicia��o de vari�veis de classe em Java; blocos de
inicializa��o est�ticos. O programa
make . |
 |
29/04/99: |
Recomenda��es sobre a entrega do EP2. O programa
tar . Interfaces em Java. |
 |
04/05/99: |
A segunda etapa do projeto do curso: o gerenciador de arquivos
do JBase, API do JBase. |
 |
06/05/99: |
Conceitos sobre organiza��o de discos: formata��o f�sica e
formata��o l�gica, aloca��o de blocos a arquivos, diret�rio de
arquivos. Heapfiles orientados para registros: formato de
p�gina, diret�rio dos slots numa p�gina, implementa��o de um
heapfile como lista ligada de p�ginas ou como diret�rio de
p�ginas. Analogias na segunda etapa do projeto do curso:
DBFile <-> disco sem formata��o l�gica,
Database <-> disco formatado logicamente,
RecordSet s num Database <-> arquivos
num disco. |
 |
13/05/99: |
Heran�a de classes em Java. |
 |
18/05/99: |
Resolu��o de d�vidas sobre a segunda etapa do projeto do
curso. |
 |
20/05/99: |
Resolu��o de d�vidas sobre a segunda etapa do projeto do
curso. |
 |
25/05/99: |
Exce��es: motiva��o (compara��o com c�digos de erros) e
implementa��o (como desvios n�o locais que "abaixam" a pilha de
execu��o). Exce��es em Java. Desvios n�o locais em C
(fun��es setjmp e longjmp ). O programa
grep . |