Académique Documents
Professionnel Documents
Culture Documents
Roteiro da Aula
Mquina Multinveis
Mas, o computador s pode executar programas que estejam em uma linguagem que ele entenda. Qual a linguagem que o computador entende ? Linguagem de Mquina ( 010101010111... )
Lembrete: Linguagem de Mquina != Linguagem Assembler
3
A Ling. de Mquina ( binria, de baixo nvel), muito diferente da Ling. Natural (humana, de alto nvel).
4
48 65 6C 6C 6F 2C 20 77 6F 72 6C 64 21 H e l l o , W o r l d !
; nm. de chamadas de sistema, ou (sys_exit) exit ; chamada do kernel ; string a ser impressa ; comprimento da string "Hello, world!"
Compilao
Todo o cdigo-fonte traduzido para ling. de mquina, uma nica vez. Durante a traduo, o cdigo-fonte excessivamente analisado.
Busca por erros no cdigo. Otimizao de cdigo. Leva em considerao todo o cdigo.
[nvel 0]
01010011101110111 ...
compilador
programa (.exe)
sada
8
Interpretao Pura
O cdigo-fonte traduzido durante a execuo do programa.
Cada instruo do cdigo traduzida para ling. de mquina no momento em que chamada. Perda de eficincia e maior consumo de memria.
O interpretador precisa traduzir o cdigo e identificar erros no momento da execuo.
Hbrida
Busca unir o melhor dos dois mundos: da compilao e da interpretao.
A eficincia da compilao, e a portabilidade e flexibilidade da interpretao pura.
Maior portabilidade, flexibilidade, prototipao, e facilidade de depurao. Raramente usada. Ex. de LPs: JavaScript, PHP, Matlab, ...
vrias vezes cdigo-fonte dados de entrada
Linguagens & Nveis de Abstrao
compilador
interpretador
dados de entrada
Linguagens & Nveis de Abstrao
mq. virtual
sada
10
Traduo de Programas
Existem 3 abordagens para traduzir programas para Ling. de Mquina 1. Compilao: o programa completo traduzido antes de sua execuo.
A traduo ocorre uma nica vez. Gerao do executvel (.exe). Vantagem: melhor desempenho, as instrues do programa podem ser executadas diretamente, j esto em LM. Desvantagem: baixa portabilidade, a LM vria de plataforma para plataforma. Plataforma diferente implica em .exe diferente.
Traduo de Programas
Existem 3 abordagens para traduzir programas para Ling. de Mquina 1. Compilao: o programa completo traduzido antes de sua execuo. 2. Interpretao: o programa traduzido em tempo de execuo, cada instruo traduzida antes de ser executada. 3. Hbrida: meio-compilada e meio-interpretada.
Consegue: (1) melhorar o desempenho; (2) mantendo a portabilidade. Abordagem adotada pelo Java e C#.
2. Interpretao: o programa traduzido em tempo de execuo, cada instruo traduzida antes de ser executada.
A traduo ocorre inmeras vezes, uma traduo sempre que o programa executado. O programa executado a partir do prprio cdigo-fonte. Vantagem: portabilidade, porque a instruo traduzida para a LM no momento de sua execuo. Desvantagem: perda significativa de desempenho, a traduo das instrues consome recursos computacionais.
Linguagens & Nveis de Abstrao
11
12
Mquinas Multinveis
Qual o problema de escrever & traduzir programas pensando na Ling. de Mquina (LM) do computador que ir executa-las? Cada computador possui uma LM especfica para ele. Dessa forma, o programa executvel s pode rodar em um computador (hardware) especfico. Soluo: para dar um pouco mais de portabilidade aos programas, ao invs deles serem escritos & traduzidos diretamente para a LM do Computador Real, eles so escritos & traduzidos para LM de um Computador Virtual.
O programa escrito pensando na Mquina Virtual. O programa tambm traduzido pensando na Mquina Virtual.
Mquinas Multinveis
Soluo: para dar um pouco mais de portabilidade aos programas, ao invs deles serem escritos & traduzidos diretamente para a LM do Computador Real, eles so escritos & traduzidos para LM de um Computador Virtual.
[nvel 2]
[nvel 1]
[nvel 0]
Alm desses nveis de abstrao, podem existir muitos outros, onde cada nvel (linguagem/mquina) representa uma abstrao a mais em relao ao nvel inferior.
13
14
Mquinas Multinveis
Pensando mltiplos nveis de abstrao
Mquinas Multinveis
Computador visto como uma Mquina Multinvel de 6 nveis.
15
Abaixo do Nvel 0, ainda existe um outro nvel, onde os projetistas de hardware trabalham com os elementos mais bsico do projeto (transistores), mas isso deixe para os fsicos.
16
Mquinas Multinveis
Nvel 5: Nvel das Ling. Orientadas para a Soluo de Problemas
Esto as (1) Ling. de Alto Nvel: Pascal Java (2) Ling. de Mdio Nvel: C C++ C# Lisp ...
Mquinas Multinveis
Nvel 4: Nvel da Ling. Assembler
Ling. Assembler == Ling. de Montagem, forma simblica para representar a ling. de nvel mais baixo. Programas so inicialmente traduzidos para as ling. de nveis 1 2 e 3, e depois interpretadas pela mquina virtual apropriada ou pela prpria mquina real.
Os programas (cdigo-fonte): So +legveis; +confiveis; +portveis; e +redigveis (fceis de modificar). Quando no so 100% portveis, em geral, algumas modificaes j so suficientes para se encaixarem na nova plataforma. Os compiladores, traduzem os programas para os nveis: 3 (nvel do Sist. Operacionais) ou 4 (nvel da Ling. de Assembler). Algumas ling. so interpretadas. P.ex. Java, interpretada pela Mquina Virtual Java (ou JVM).
17
18
Mquinas Multinveis
Nvel 3: Nvel do Sistema Operacional
As instrues neste nvel tb podem conter instrues ISA. Oferece uma interface de acesso a memria, geralmente, implementa o conceito de memria virtual, que permite alocar mais memria do que realmente h, atravs da paginao. Permite executar 2 ou mais programas simultaneamente, conceito de pseudo-paralelismo. Suporta aplicaes com interface grfica. Programas deste nvel para baixo, so conhecidas como programas do sistema. Os programas dos nveis acima deste, so conhecidos como programas de aplicao (Word Excel Notepad).
Mquinas Multinveis
Nvel 2: Nvel da Arquitetura do Conjunto de Instrues
Nvel ISA: Instruction Set Architecture Arquitetura do Conjunto de Instrues Definida pelo fabricante, que disponibilizam estas informaes atravs de um Manual de Referncia da Linguagem de Mquina. O Manual de Referncia define como so executadas: (1) interpretadas por microprogramas, arquitetura CISC; (2) executadas diretamente pelo hardware, arquitetura RISC. O conjunto de instrues tb definido pelo fabricante, e dependente da arquitetura da mquina.
19
20
Mquinas Multinveis
Nvel 1: Nvel de Microarquitetura
Disponibiliza uma memria local, de 8 a 32 registradores, para ser manipulada pela UAL (Unidade Aritmtica e Lgica), que realiza as operaes aritmticas mais simples. As operaes podem ser controladas por um microprograma (arquitetura CISC), ou executadas diretamente por hardware (arquitetura RISC). Microprograma: um interpretador para as instrues do Nvel 2 ISA. (1) busca; (2) decofica; e (3) executa as instrues, uma a uma, usando para isso os registradores.
Mquinas Multinveis
Nvel 0: Nvel da Lgica Digital
Nvel mais baixo da estrutura. Os objetos de interesse so as portas lgicas. Cada porta lgica possui 1 ou mais entradas digitais (aceitam 0 ou 1) e calculam funes lgicas simples sobre essas entradas. Ex.: AND OR XOR ... Portas lgicas so combinadas para formar memrias de 1 bit > registradores > e at processadores.
21
22
23
24
Os Circuitos Digitais esto divididos em 3 blocos bsicos, de acordo com sua funo: Logic (lgico) para processamento de dados; State (estado) para armazenar dados; Interconnect (interconexo) para transmitir dados.
25 26
Mquinas Multinveis
Concluso sobre as Mquinas Multinveis
Computadores so projetados como uma srie de nveis de abstrao, onde cada nvel construdo em cima de seus precursores. Cada nvel representa uma abstrao distinta, com diferentes objetos e operaes. A abstrao oferecida por cada nvel permite ignorar detalhes irrelevantes dos nveis mais baixos, reduzindo uma questo complexa a algo muito mais fcil de ser entendido.
A Arquitetura de Computadores, em geral, est relacionada a 3 componentes bsicos: Processor (lgico) para computador dados (processamento); Networks (barramentos) para transferir dados; Memria (memria) para armazenar dados.
27
Nos primeiros computadores havia uma distino clara entre hardware e software. Atualmente, muito difcil fazer est distino. O que hoje est implementado em software, amanh pode estar em hardware, e vice-versa. Mas as aplicaes no sentem estas mudanas, porque as camadas abstraem (escondem) essas mudanas.
28
Mquinas Multinveis
Concluso sobre as Mquinas Multinveis
As camadas abstraem um pouco mais a heterogeneidade do hardware, proporcionando programas mais portteis. Do ponto de vista do programador, no tem muita importncia a maneira como a instruo realmente processada. A instruo existe realmente no hardware, ou uma abstrao oferecida pela mquina virtual. Os programadores de um nvel, em geral, no devem se preocupar com a implementao das instrues nos nveis inferiores.
29