Arquitetura e Organização de computadores

Documentos relacionados
Aula 3 Máquina Multinível

Introdução à Computação

Arquitetura e Organização de computadores

Introdução à Computação: Máquinas Multiníveis

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

Introdução à Organização e Arquitetura de Computadores (Parte I)

Introdução à Programação de Computadores Fabricação Mecânica

Introdução. (Aula 2) Organização Estruturada de Computadores

Introdução à Computação: Máquinas Multiníveis

Introdução (Aula 2) Introdução Arquitetura de Hardware. Organização Estruturada de Computadores. Introdução Conceitos (2) Introdução Conceitos (1)

ORGANIZAÇÃO DE COMPUTADORES

Existem três categorias principais de linguagem de programação: linguagem de máquina, linguagens assembly e linguagens de alto nível.

Sistema Computacional

Infraestrutura de Hardware. Funcionamento de um Computador

Linguagens de Programação

Organização Estruturada de Computadores

4) Defina o que vem a ser um algoritmo, e porque, o mesmo depende do processo.

Sâmia Rodrigues Gorayeb. Arquitetura de Computadores Linguagem de Máquina

Arquiteturas RISC e CISC. Adão de Melo Neto

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 06

Conceitos básicos sobre computadores (continuação)

Aula 06 - Máquina Multinível e Von Neumann

Sistemas Operacionais

COMPUTADORES COM UM CONJUNTO REDUZIDO DE INSTRUÇÕES. Adão de Melo Neto

Linguagens de Programação Classificação

Informática I. Aula 14. Aula 14-10/10/2007 1

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM INTRODUÇÃO A SISTEMAS DIGITAIS. Lista de Exercícios 01

OFICINA DA PESQUISA PROGRAMAÇÃO APLICADA À CIÊNCIA DA COMPUTAÇÃO

ORGANIZAÇÃO DE COMPUTADORES

Introdução a Algoritmos

Compiladores. Introdução à Compiladores

Resolução de Problemas com Computador. Resolução de Problemas com Computador. Resolução de Problemas com Computador

Introdução à Computação Parte 2

Introdução à Computação para Engenharia MAC2166 Prof. Dr. Paulo Miranda IME-USP. Aula 1 Introdução à Computação

Fundamentos de TI 11/01/2018. Aula 01 Introdução à Disciplina. Prof. Piva. Prof. Dr. Dilermando Piva Jr.

ARQUITETURA DE COMPUTADORES

MC-102 Aula 01. Instituto de Computação Unicamp

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

Introdução à Ciência da Computação ICC0001 Prof. Diego Buchinger

Programação de Computadores:

PROGRAMAÇÃO I. Introdução

Construção de Compiladores. Capítulo 1. Introdução. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2014.

Aplicação. Programa Linguagem de Alto Nível. Programa em Linguagem Assembly. Programa em Linguagem Máquina

Organização e Arquitetura de Computadores. Hugo Barros

Sistemas de Computação

1) Considere a situação atual da memória do sistema computacional abaixo discriminada.

Algoritmos e Programação

TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I

Sistemas de Computação. Bibliogra a. Hardware e Software. Notas. Introdução. Haroldo Gambini Santos. 26 de abril de Notas

Programação de Computadores

Introdução à Computação MAC0110

Aula de hoje. Programação. Comunicação com computadores. Comunicação com computadores. Comunicação com computadores. Comunicação com computadores

Tecnólogo em Análise e Desenvolvimento de Sistemas. Sistemas Operacionais (SOP A2)

Estrutura e funcionamento básico de um computador

Programação de Computadores

Unidade de Controle. UC - Introdução

Sistemas Operacionais

18/10/2010. Unidade de Controle Controle. UC Microprogramada

DECivil Departamento de Engenharia Civil, Arquitectura e Georrecursos. Apresentação. Computação e Programação (CP) 2013/2014.

Algoritmo de Programação. Aula1

Linguagens de Programação

Projeto Lógico de Computadores. Profa. MSc. Carolina Melo Santana

Introdução à Computação: Máquinas Multiníveis

Unidade I. Organização de Computadores. Prof. Renato Lellis

Computadores e Programação (DCC/UFRJ)

Microprocessadores CPU. Unidade de Controle. Prof. Henrique

INTRODUÇÃO À PROGRAMAÇÃO. Introdução. Sérgio Carlos Portari Júnior

UNIDADE DE CONTROLE (IMPLEMENTAÇÃO POR HARDWARE) Adão de Melo Neto

Introdução à Programação

Capítulo 6: Linguagens de Programação

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ORGANIZAÇÃO COMPUTACIONAL

Organização e Arquitetura de Computadores I. de Computadores

a) Computador b) Estrutura do sistema i. Hardware ii.software c) Linguagens de Programação i. Paradigmas e Programação 1.

INTRODUÇÃO. Prof. Msc. Luis Filipe Alves Pereira 2015

Conversões de Linguagens: Tradução, Montagem, Compilação, Ligação e Interpretação

Introdução à Programação de Computadores Parte I

Desenvolvimento de Aplicações Desktop

Programação Estruturada

Introdução a Programação

Organização e Arquitetura de Computadores INTRODUÇÃO

Organização e Arquitetura de Computadores I

1.1 Linguagens de Programação

PARTE I - FUNDAMENTOS DE PROJETOS DE COMPUTADORES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

Introdução à Programação. Conceitos Básicos de Programação

Puca Huachi Vaz Penna

Linguagens de máquina, linguagens simbólicas e linguagens de alto nível

INFORMÁTICA: Informação automática

Compiladores. Motivação. Tradutores. Motivação. Tipos de Tradutores. Tipos de Tradutores

Sistemas Operacionais. Conceitos de Hardware e Arquitetura de computadores

Fundamentos de Programação 1

COMPILAÇÃO. Ricardo José Cabeça de Souza

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 02

Programação de Computadores

Aula 2 POO 1 Introdução. Profa. Elaine Faria UFU

3. Linguagem de Programação C

Conceitos de Linguagens de Programação

Programação: Compiladores x Interpretadores PROF. CARLOS SARMANHO JR

Introdução. Introdução. Introdução. Organização Estruturada de Computadores. Introdução. Máquinas Multiníveis

Transcrição:

Arquitetura e Organização de computadores Aula 1: Organização e evolução de computador, parte 1 Prof. MSc. Pedro Brandão Neto pedroobn@gmail.com Sistemas de Informação - UNDB

Introdução Computador Digital Máquina que pode resolver problemas através de instruções que lhe são dadas Um conjunto de instruções que descreve como realizar certa tarefa é denominado programa Por exemplo Some dois números Verifique se um número é zero 2

Introdução Circuitos eletrônicos de cada computador Reconhecem e executam diretamente um conjunto limitado de instruções simples Um programa para ser executado precisa ser convertido em instruções simples Tais instruções, que são primitivas, formam uma linguagem de máquina através da qual pessoas podem de certa forma utilizar Linguagens de máquinas são difíceis e entediantes 3

Introdução A linguagem de máquina deve ser o mais simples possível Reduz complexidade e custo de produção Computadores são estruturados utilizando uma série de abstrações, cada uma acumulando-se à aquela que lhe precede. Assim, sistemas de computação podem ser projetados de modo estruturado, sistemático. Organização estruturada de computadores 4

Máquinas Multiníveis Instruções da linguagem de máquina (decidida pelos projetistas de computadores) devem: ser simples ser compatíveis com o uso da máquina ser compatíveis com o desempenho requerido ter custo e complexidade da eletrônica reduzidos (aplicação) A linguagem de máquina (binária-baixo nível) está muito distante de uma linguagem natural (humana-alto nível) 5

Máquinas Multiníveis Problema Complexidade do que as pessoas precisam fazer versus simplicidade do conjunto de instruções do computador 6

Máquinas Multiníveis Solução Criar uma hierarquia de abstrações de níveis mais altos baseados nos níveis mais baixos R Criar uma organização estruturada de computadores para facilitar a comunicação homem-máquina 7

Máquinas Multiníveis As pessoas querem fazer X, mas os computadores só podem fazer Y 8

Linguagens, níveis e máquinas reais Projetar um novo conjunto de instruções que seja mais conveniente para as pessoas usarem do que o conjunto de instruções que já vem embutido na máquina Essas novas instruções formam uma linguagem denominada de L1. Já as instruções de máquina formam a linguagem L0 Um computador só pode executar programas escritos em sua linguagem de máquina, L0 Como compatibilizar L1 com L0? Existem 2 soluções (tradução e interpretação) usar um tradutor usar um interpretador 9

Linguagens, níveis e máquinas reais Técnica de Tradução Cada instrução, na linguagem L1, é substituída por uma sequência equivalente de instruções em L0 O programa resultante consiste inteiramente em instruções L0 Então, o computador executa o novo programa L0 Programa pode ser traduzido uma única vez e executado várias vezes 10

Linguagens, níveis e máquinas reais Técnica de Interpretação Um programa em L0 recebe como entrada instruções em L1 e as executam examinando cada instrução por vez e executando diretamente a sequência equivalente de instruções L0 Essa técnica não requer a geração prévia de um novo programa em L0, e O programa que executa esta técnica é chamada de interpretador 11

Linguagens, níveis e máquinas reais Tradução e Interpretação São semelhantes Na tradução, todo o programa em L1 é antes convertido para um programa L0, o qual é carregado na memória Na interpretação, após o exame e a decodificação de cada instrução em L1, ela é executada imediatamente Nenhum programa traduzido é gerado 12

Linguagens, níveis e máquinas reais Ao invés de pensar em termos de tradução ou interpretação, é mais fácial imaginar a existência de um computador hipotético M1, com a linguagem de máquina L1, ou de uma máquina real M0, com a linguagem L0) Se não fosse custoso contruir uma máquina M1 não haveria a necessidade de ter linguagem L0 ou uma máquina que executasse programas em L0 13

Linguagens, níveis e máquinas reais Existe também um conjunto de instruções mais dirigido a pessoas e menos a máquinas do que L1, a linguagem L2 (com a máquina real M2) As pessoas podem escrever programas em L2 exatamente como se de fato existisse uma máquina real com linguagem de máquina L2 Esses programas podem ser traduzidos para L1 executados por um interpretador escrito em L1 ou 14

Linguagens, níveis e máquinas reais A invenção de toda uma série de linguagens, cada uma mais conveniente do que suas antecessoras, pode continuar até que se chegue a uma adeguada Cada linguagem usa a antecessora como base. Essa técnica pode ser visualizada como uma série de camadas ou níveis, um sobre o outro A linguagem ou nível que fica mais embaixo é a mais simples e a que fica mais em cima é a mais sofisticada 15

Máquina multinível 16

Linguagens, níveis e máquinas reais Cada máquina tem uma linguagem de máquina, que consiste em todas instruções que a máquina pode executar Uma pessoa que escreve programas para a máquina real de nível n não precisa estar ciente dos interpretadores e tradures subjacentes A maioria dos programadores que usam uma máquina de nível n está interessada apenas no nível superior, aquele que menos se assemelha à linguagem de máquina que está no mais inferior Todavia, que se interessa em entender como um computador realmente funciona deve estudar todos os níveis 17

Máquinas Multiníveis Contemporâneas Nível 5 Nível de Linguagem Orientada a Problemas Tradução (compilador) Nível 4 Nível de Linguagem de Montagem (Assembly) Tradução (montador ou assembler) Nível 3 Nível de Máquina de Sistema Operacional Interpretação parcial (sistema operacional) Nível 2 Nível de Arquitetura de Conjunto de Instruções Interpretação (microprograma) ou execução direta Nível 1 Nível de Microarquitetura Nível 0 Hardware Nível de Lógica Digital 18

Atividade 1 1. Discorra sobre Hardware X Software 19

Fim!