Buscar

Aula 03 - Linguagem de máquina e desempenho

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

LINGUAGEM DE MONTAGEM – CCT0674-1001
Aula 03 - Linguagem de máquina e desempenho
Agenda
2LINGUAGEM DE MONTAGEM 
• Objetivos da aula
• Contexto
• Introdução
• Surgimento do Assembly
• Desempenho da CPU
• Desempenho de um Programa
Objetivo da aula
3LINGUAGEM DE MONTAGEM 
Possibilitar ao aluno:
· Compreender a ligação entre linguagem de montagem e de máquina.
· Analisar arquiteturas e desenvolver uma visão crítica do seu desempenho.
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Contexto
De uma linguagem de alto nível para a linguagem do hardware
(linguagem de máquina)
LINGUAGEM DE MONTAGEM 
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Introdução
Os primeiros programadores se comunicavam com os computadores em
números binários, e as instruções eram como a sequencia abaixo:
LINGUAGEM DE MONTAGEM 
1000110010100000
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Introdução
Ou seja, não existia uma linguagem intermediária para fazer a
interpretação da instrução a ser executada.
LINGUAGEM DE MONTAGEM 
1000110010100000
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Introdução
Isso era tão maçante que rapidamente inventaram novas notações, mais
parecidas com a maneira como os humanos pensam. No início, essas
notações eram traduzidas para binário manualmente, mas esse processo
ainda era cansativo.
LINGUAGEM DE MONTAGEM 
1000110010100000
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Surgimento do Assembly
Usando a própria máquina para ajudar a programá-la, os pioneiros
inventaram programas que traduzem da notação simbólica para binário.
O primeiro desses programas foi chamado de montador (assembler).
LINGUAGEM DE MONTAGEM 
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Surgimento do Assembly
Esse programa traduz uma versão simbólica de uma instrução para
uma versão binária. Por exemplo, o programador escreveria 
add A,B
E o montador traduziria essa notação como 1010, 1011
O nome criado para essa linguagem simbólica é linguagem assembly. 
LINGUAGEM DE MONTAGEM 
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Surgimento do Assembly
Embora seja um fantástico avanço, a linguagem assembly requer que o programador
escreva uma linha para cada instrução que a máquina seguirá, obrigando o programador a
pensar como a máquina.
LINGUAGEM DE MONTAGEM 
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Surgimento do Assembly
Os programadores atuais devem sua produtividade à criação de
linguagens de programação de alto nível e de compiladores, que traduzem
os programas escritos nessas linguagens em instruções.
LINGUAGEM DE MONTAGEM 
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Surgimento do Assembly
A Figura 1 mostra os relacionamentos entre esses programas e linguagens.
LINGUAGEM DE MONTAGEM 
Introdução à Programação
AULA 01: Introdução à Lógica de ProgramaçãoLINGUAGEM DE MONTAGEM 
Desempenho da CPU
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Desempenho da CPU
Se você estivesse rodando um programa em dois computadores desktop (A e B) diferentes,
diria que o mais rápido é o computador que termina o trabalho primeiro?
LINGUAGEM DE MONTAGEM 
Computador A Computador B
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Desempenho da CPU
Se estivesse gerenciando um centro de dados com diversos servidores
rodando tarefas submetidas por muitos usuários, você diria que o
computador mais rápido é aquele que conclui o máximo de tarefas
durante um dia.?
LINGUAGEM DE MONTAGEM 
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Desempenho da CPU
Portanto, o tempo pode ser definido de diferentes maneiras,
dependendo do que contamos. A definição mais clara de tempo é
chamada de tempo do relógio, tempo de resposta ou tempo decorrido.
Esses termos significam o tempo total para completar uma tarefa,
incluindo acessos ao disco, acessos à memória, atividades de
entrada/saída (E/S) e overhead do sistema operacional.
LINGUAGEM DE MONTAGEM 
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Desempenho da CPU
Outro fator a ser levando em consideração é o tipo de processamento
que o servidor pode executar no momento, por exemplo, uma
indexação de arquivo pode levar horas, enquanto que salvar um texto
pode ser infinitamente mais rápido.
LINGUAGEM DE MONTAGEM 
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Desempenho de um Programa 
LINGUAGEM DE MONTAGEM 
Componentes básicos do desempenho e como cada um é medido
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Desempenho de um Programa 
LINGUAGEM DE MONTAGEM CPI – Ciclo de clock por instrução 
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Bibliografia Básica
LINGUAGEM DE MONTAGEM 
GIMENEZ, Salvador Pinillos. Microcontroladores 8051: Teoria do hardware e do
Software/Aplicações em controle digital/Laboratório e simulação [BV:PE]. 1 ed. São
Paulo: Pearson Education do Brasil, 2002.
Disponível em: https://plataforma.bvirtual.com.br/Acervo/Publicacao/471
MONTEIRO, Mario A. Introdução à organização de computadores [BV:MB]. 5 ed.
Rio de Janeiro: LTC, 2017.
Disponível em: https://integrada.minhabiblioteca.com.br/#/books/978-85-216-1973-
4/recent
STALLINGS, William. Arquitetura e Organização de Computadores: projeto para o
desempenho [BV:PE]. 10 ed. São Paulo: Prentice-Hall, 2017.
Disponível em: https://plataforma.bvirtual.com.br/Acervo/Publicacao/151479
Introdução à Programação
AULA 01: Introdução à Lógica de Programação
Bibliografia Complementar
LINGUAGEM DE MONTAGEM 
ASCENCIO, A. F. G; CAMPOS, E. A. V. FUNDAMENTOS DA PROGRAMAÇÃO
DE COMPUTADORES: Algoritmos , Pascal, C/C++ e Java [BV:PE]. 2 ed. São
Paulo: Prentice-hall, 2007.
Disponível em: https://plataforma.bvirtual.com.br/Acervo/Publicacao/417
BALIEIRO. Sistemas Operacionais [BV:RE]. 1 ed. Rio de Janeiro: SESES, 2015.
Disponível em:
http://api.repositorio.savaestacio.com.br/api/objetos/efetuaDownload/80fea820-1cb5-
4982-863f-25f09adbdd0c
GUIMARÃES, Carlos Henrique. Sistemas de Numeração - Aplicação em
Computadores Digitais [BV:PE]. 1 ed. Rio de Janeiro: Interciência, 2014.
Disponível em: https://plataforma.bvirtual.com.br/Acervo/Publicacao/37688
POLLI, Marco F. Organização de Computadores [BV:RE]. 1 ed. Rio de Janeiro:
SESES, 2014.
Disponível em:
http://api.repositorio.savaestacio.com.br/api/objetos/efetuaDownload/e96bc69e-73ca-
4147-997d-14b601acb8d5
TANENBAUM, A.S.; AUSTIN, T. Organização Estruturada de Computadores
[BV:PE]. 6 ed. São Paulo: Pearson, 2013.
Disponível em: https://plataforma.bvirtual.com.br/Acervo/Publicacao/3825

Outros materiais