Você está na página 1de 15

Faculdade Professor Miguel Ângelo da Silva Santos - FeMASS

Organização Estruturada de Computadores

Linguagens, níveis, máquinas reais, máquinas multiníveis


contemporâneas, evolução de máquinas multiníveis
Faculdade Professor Miguel Ângelo da Silva Santos - FeMASS

Organização Estruturada de Computadores

• Programa: uma sequência de instruções que descreve como realizar uma tarefa.
• Os circuitos lógicos de cada computador podem reconhecer e executar diretamente
um conjunto de instruções simples.

• Instruções básicas podem ser:


– Somar dois números;
– Verificar um número para ver se ele é zero;
– Copiar dados de uma parte da memória do computador para outra.

Para que um programa possa ser executado, todos, devem ser convertidos em instruções.
Faculdade Professor Miguel Ângelo da Silva Santos - FeMASS

Linguagens, níveis e máquinas reais

• Problemática: as instruções primitivas de um computador formam uma linguagem


com a qual as pessoas podem se comunicar com ele – a linguagem de
máquina.

– “as pessoas querem fazer X, mas os computadores só podem fazer Y”.

A solução é projetar um conjunto de instruções conveniente para as pessoas, e


outro conjunto de instruções para as máquinas. Logo, teremos uma linguagem
para as pessoas denominada L1 e outra linguagem para os computadores
denominadas L0.

Agora, como fazer para que os computadores entendam as pessoas?


Eu posso utilizar duas linguagens?
Faculdade Professor Miguel Ângelo da Silva Santos - FeMASS

Linguagens, níveis e máquinas reais

Método de Execução de Programas

• Tradução: é o método para executar um programa escrito em L1 onde, primeiro,


cada instrução de L1 deve ser substituída no programa por uma sequência
equivalente de instruções em L0. Então, o computador executa o novo programa
L0 em vez do antigo programa L1.

• Interpretação: é o método de escrever um programa em L0 que considera


programas em L1 como dados de entrada. A execução ocorre examinando cada
instrução de L1 por vez interpretando-a imediatamente na sequência equivalente
de instruções L0. Essa técnica não requer a geração prévia de um novo programa
em L0, sendo possível através de um programa chamado de interpretador.
Faculdade Professor Miguel Ângelo da Silva Santos - FeMASS

Linguagens, níveis e máquinas reais

Máquina Virtual ou Computador Hipotético

• Se fosse barato o suficiente a construção de máquinas reais com linguagem L1,


não seria preciso de forma alguma ter linguagens L0 ou máquinas para execução
de programas em L0. As pessoas poderiam simplesmente escrever seus programas
em L1 e fazer com que o computador os executasse diretamente.

Máquina Virtual é uma “máquina real” com linguagem própria, por exemplo
L1. Que pode ter o seu programa escrito em L1, traduzido ou interpretado, por
um programa escrito em L0 que, por si só, consegue ser executado diretamente
pelo computador real.
Faculdade Professor Miguel Ângelo da Silva Santos - FeMASS

Linguagens, níveis e máquinas reais

Máquina Virtual ou Computador hipotético


Faculdade Professor Miguel Ângelo da Silva Santos - FeMASS

Linguagens, níveis e máquinas reais

Máquina Multinível ou Multicamadas

A invenção de toda uma série de linguagens, cada uma mais conveniente que suas
antecessoras, pode prosseguir indefinidamente, até que, por fim, se chegue a
uma adequada.

Cada linguagem usa sua antecessora como base, portanto, podemos considerar um
computador que use essa técnica com uma série de camadas ou níveis.

Nível = Camada = Máquina Virtual


Faculdade Professor Miguel Ângelo da Silva Santos - FeMASS

Máquinas Multiníveis Contemporâneas


Faculdade Professor Miguel Ângelo da Silva Santos - FeMASS

Máquinas Multiníveis Contemporâneas

• Nível lógico digital (0): utiliza as “portas” ou “gates” para a construção


dos circuitos digitais, sendo estas modeladas com precisão como dispositivos
digitais. Cada porta tem uma ou mais entradas digitais e calcula como saída
alguma função simples dessas entradas, como AND (E) ou OR (OU).
Faculdade Professor Miguel Ângelo da Silva Santos - FeMASS

Máquinas Multiníveis Contemporâneas

• Nível de Microarquitetura (1): temos, em geral, uma coleção de 8 a 32


registradores que formam uma memória local e um circuito chamado ULA –
Unidade Lógica e Artimética. Os registradores estão conectados à ULA para formar
um caminho de dados.

– A operação do caminho de dados pode ser controlada por um


programa/software ou diretamente pelo hardware (circuitos lógicos).

• Em máquinas com controle do caminho de dados por software, o


microprograma é um interpretador para as instruções no nível 2. Ele
busca, examina e executa instruções uma por vez.
– Por exemplo: para uma instrução ADD, a instrução seria buscada,
seus operandos localizados e trazidos para registradores, a soma
calculada pela ULA e, por fim, o resultado retornado para o local a
que pertence.
• Em máquina com controle do caminho de dados pelo hardware, haveria
etapas semelhantes mas sem um programa armazenado explícito para
controlar a interpretação das instruções desse nível.
Faculdade Professor Miguel Ângelo da Silva Santos - FeMASS

Máquinas Multiníveis Contemporâneas

• Nível de Arquitetura do Conjunto de Instrução ou


ISA (2): os fabricantes publicam um manual para cada computador que
vendem, intitulado “Manual de Referência da Linguagem de Máquina” ou algo
semelhante. Esses manuais referem-se ao nível ISA e não aos subjacentes.

Quando explicam o conjunto de instruções de máquina, na verdade estão


descrevendo as instruções executadas de modo interpretativo pelo
microprograma ou circuitos de execução do hardware.
Faculdade Professor Miguel Ângelo da Silva Santos - FeMASS

Máquinas Multiníveis Contemporâneas

• Nível de Máquina do Sistema Operacional (3): nível


normalmente híbrido. A maior parte das instruções em sua linguagem também
está no nível ISA (2). Além disso, há um conjunto
de novas instruções,
uma organização de memória diferente, a capacidade de
executar dois ou mais programas simultaneamente e diversos
outros recursos.

• Existe mais variação neste nível do que entre aqueles no nível 1 e nível 2. As novas
facilidades do nível 3 são executadas por um interpretador rodando no
nível 2, o qual, historicamente, tem sido chamado de sistema
operacional.

Algumas instruções de nível 3 são interpretadas pelo sistema operacional e algumas o


são diretamente pelo microprograma, por isso que chamamos de nível híbrido.
Faculdade Professor Miguel Ângelo da Silva Santos - FeMASS

Máquinas Multiníveis Contemporâneas

• Nível de Linguagem Assembly (4): esse nível fornece um método para


as pessoas escreverem programas para os níveis 1, 2 e 3 em uma forma eu não
seja tão desagradável quanto às linguagens de máquina virtual em si.

Programas em linguagem de montagem são primeiro traduzidos para


linguagem de nível 1, 2 e 3, e em seguida interpretados pela máquina
virtual ou real adequada. O programa que realiza a tradução é denominado
assembler.
Faculdade Professor Miguel Ângelo da Silva Santos - FeMASS

Máquinas Multiníveis Contemporâneas

• Nível de Linguagem Orientada a Problemas (5): consiste em


linguagens projetadas para ser usadas por programadores de aplicações
que tenham um problema a resolver. Essas linguagens costumam ser
denominadas linguagens de alto nível. Por exemplo: C, C++, Java, Perl, Python e
PHP.

Programas escritos nessas linguagens, em geral, são traduzidos para o nível 3 ou nível
4 por tradutores conhecidos como compiladores, embora às vezes sejam
interpretados, em vez de traduzidos.
Faculdade Professor Miguel Ângelo da Silva Santos - FeMASS

• Exercícios de aprendizagem
• AVA da Femass

Você também pode gostar