Baixe o app para aproveitar ainda mais
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
Compartilhar