Escolar Documentos
Profissional Documentos
Cultura Documentos
da Computação/ LEI-ISEP
Sistema Computacional
• Software
• Sistema Operativo: controla e coordena a utilização do hardware
durante a execução das várias aplicações
aplicações
Interface linguagens
do bibliotecas
sistema
Sistema operativo
Arquitectura
do computador
computador Hardware
Sistema Computacional
• Aplicações
• Linguagens de programação e utensílios de apoio ao
desenvolvimento de programas
• Abstrações das linguagens e bibliotecas
• Sistema operativo
• Abstrações do sistema e suas funcionalidades
• Arquitetura do computador
• Componentes e sua interações
(suporta todos os níveis anteriores)
Sistema Computacional
• Cada um deste níveis define uma “máquina virtual” Este
conceito envolve duas ideias principais:
• Interpretação de programas
Tradução vs interpretação de programas
Interpretação de programas
Transformação de programas
n Tradução/compilação do Programa P3, escrito na linguagem L3 para um
novo Programa P2, escrito numa outra linguagem, L2
q Os dois programas P2 e P3 têm um comportamento equivalente, quando
executados por um computador
q No entanto, deixa em aberto que máquina executa P2, escrito em L2. Pode
implicar uma nova tradução de P2, para um novo Programa P1, escrito em L1.
Finalmente, acaba por se chegar a um nível em que a linguagem L0 para a
qual se transforma o novo Programa P0 é a linguagem diretamente suportada
pela máquina hardware
Interpretação de programas
Este mecanismo, para cada instrução do Programa P1, iterativamente,
executa diretamente as ações equivalentes, conforme definidas pela
linguagem L1
Aplicação
Assembly
Sistema Operativo
software
Instruction Set Architecture hardware
Microarquitectura
Lógica Digital
Níveis de abstracção
Compiladores – convertem um
programa para um nível inferior
Interpretadores – executam
instrução a instrução um
programa de um nível superior
Assemblers – convertem um
programa de assembly para o
nível máquina
Compilador Outros
módulos
Assembly Bibliotecas
de funções
Assembler
Executável
Desenvolvimento
Execução
Loader
Memória
Compilação
Módulo 1 Módulo 2
int total=0; extern int total;
main ()
{ int i; void soma (int p)
{
i = 10; total += p;
soma (i); }
}
Compilação
.data .text
total: .word 0 soma:
.text lw $t0, total
main: add $t0, $t0, $a0
addi $s0, $0, 10 sw $t0, total
add $a0, $s0, $0 jr $ra
jal soma
jr $ra