Conceitos básicos Flashcards
Qual é a organização da arquitetura de von Neumann?
Entrada - Processador - Saída
Memória principal conectada ao processador
Qual é a organização da arquitetura de Harvard?
Entrada - Processador - Saída
Memória dividida em instruções (programa) e dados. Cada uma sendo independente em termos de barramento e ligação ao processador.
Quais são as funções básicas de um computador?
Processamento de dados
Armazenamento de dados
Transferência de dados
Controle
Quais as características da arquitetura de processador CISC?
Grande quantidade de instruções, com múltiplos modos de endereçamento.
As instruções são completas, eficientes e possuem largura variável.
Instruções requerem múltiplos ciclos de relógio para completar a execução.
Criação de novas instruções quase não tem custo.
Uso de microcódigo.
Poucos registradores.
Quais as características da arquitetura RISC?
Poucas instruções e todas possuem a mesma largura.
Execução otimizada de chamada de funções.
Menor quantidade de modos de endereçamento.
Uso intenso de pipelining, pois é mais fácil implementar o paralelismo quando se tem instruções de mesmo tamanho.
Execução rápida de cada instrução (uma por ciclo de relógio).
Processadores RISC não requerem microcódigos (sobra mais espaço no chip).
Menos acesso à memória principal
Maior quantidade de registradores.
MAIS BARATOS por serem mais simples.
Para que serve um compilador?
Serve para traduzir uma linguagem de programação de alto nível (Python) para uma linguagem de baixo nível (Assembly).
Quais são as fases existentes em uma compilação?
Análise e Síntese, divididas em 3 partes cada.
Como é dividida a fase de Análise?
Analisador léxico: tem como principal função a fragmentação do programa fonte em trechos completos e com identidade
própria (tokens). Ex.: “if”, “else”, “=”, “+”.
Analisador sintático: cuida exclusivamente da forma das sentenças da linguagem.
Analisador semântico: busca captar o significado das ações a serem tomadas no código fonte. É como uma interpretação de texto que gera uma linguagem intermediária.
Como é dividida a fase de Síntese?
Gerador de código intermediário: é uma representação intermediária de um programa, que serve como ponte entre as duas fases maiores (Análise e Síntese).
Otimizador de código: otimiza tempo, espaço e consumo energético.
Gerador de código: converte as instruções de código intermediário em instruções da arquitetura. Gera o programa alvo.
Para que serve um Montador (assembler)?
Ele é o responsável pela tradução de código em linguagem Assembly para código objeto (binário).
OBS.: Dependendo da implementação, o conceito de montador pode estar integrado ao compilador, ou seja, o compilador “faz tudo”, tendo como entrada um código fonte e entregando como resultado final o código objeto.
Para que serve o ligador (linker)?
Ele combina todos os arquivos objeto em tempo de compilação, gerando o programa executável em linguagem de máquina.
Para que serve o interpretador?
Trata-se de um programa que “traduz instantaneamente” o código de programação de alto nível em código de máquina sem criar um arquivo executável do programa traduzido. Ou seja, a tradução acontece instrução a instrução, o que obviamente é mais lento, se comparado com a compilação.
OBS.: já não faz mais parte da compilação. Existe a diferença entre compilação e interpretação.
Compilação envolve:
Pré-processador
Compilador
(às vezes tratados como um só = compilador)
Assembler
Linker