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

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

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

Introdução à Computação

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

Aula 3 Máquina Multinível

Arquitetura e Organização de computadores

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

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

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

Puca Huachi Vaz Penna

Infraestrutura de Hardware. Funcionamento de um Computador

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

ORGANIZAÇÃO DE COMPUTADORES

Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES. Introdução. Geovane Griesang

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

Linguagens de Programação Classificação

Arquitetura e Organização de computadores

Aula 2 - Programação de Computadores - CI208 1/21

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

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

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

Sistemas Operacionais

ARQUITETURA DE COMPUTADORES

Sistema Computacional

Linguagens de Programação

Linguagens de Programação

Lic. Engenharia de Sistemas e Informática

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

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

AJProença, Sistemas de Computação, UMinho, 2017/18 1

PROGRAMAÇÃO I. Introdução

Memória. Arquitetura de Von Neumann. Universidade do Vale do Rio dos Sinos Laboratório I Prof.ª Vera Alves 1 CPU. Unidade de controle ULA

Unidade de Controle. UC - Introdução

Introdução à Computação: Arquitetura von Neumann

Programação de Computadores IV. Introdução a Linguagens de Programação Simone Martins SLIDES CEDIDOS POR BRUNO MARQUES 1

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

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

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

Conjunto de Instruções e Modelos de Arquiteturas

Introdução à Organização de Computadores. Aula 8

Desenvolvimento de Aplicações Desktop

Programação de Computadores:

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

GFM015 Introdução à Computação

Programação Básica. Introdução à programação de computadores

Aula 23: Noções de Compilação, Montagem, Link-edição, e Interpretação

Introdução à Computação

Introdução à Computação

Sistemas Operacionais João Bosco T. Junior. Sistemas Operacionais João Bosco Junior - V1.3

Nível da Linguagem de Montagem

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

Computadores podem ser úteis em problemas que envolvem: Grande número de dados. Grande número de cálculos. Complexidade. Precisão.

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

Introdução. Nível da Linguagem de Montagem. Linguagem de Montagem (2) Linguagem de Montagem (1) Linguagem de Montagem

Arquitetura e Organização de Computadores

Algoritmos e Programação

Introdução à Computação: Sistemas de Computação

Métodos de implementação de linguagens. Kellen Pinagé

Algoritmos Computacionais

Conjunto de Instruções e Modelos de Arquiteturas

Introdução ao Python. Programa Computacional

Compiladores. Introdução à Compiladores

9. Software de Sistema - Montadores (capítulo 9 do livro texto)

Aula teórica 7. Preparado por eng.tatiana Kovalenko

Conceitos de Linguagens de Programação

Organização e Arquitetura de Computadores I

SSC510 Arquitetura de Computadores 1ª AULA

II.1 Conceitos Fundamentais. Uma delas é programar o =>

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

Olá pessoal, Hoje vamos entender os conceitos sobre linguagem de programação. Definição, tipos de linguagens e as linguagens mais utilizadas

Programação de Computadores

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

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

Sistemas Operacionais. Conceitos de Hardware e Arquitetura de computadores

Montador (assembler)

Compiladores. Geração de Código Objeto

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

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

Universidade de Brasília Histórico e Introdução

Histórico e Introdução

Informática I. Aula 9. Aula 9-17/05/2006 1

Algoritmo de Programação. Aula1

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

Arquitectura e Organização de Computadores

EA876 - Introdução a Software de Sistema

Programação Estruturada Aula - Introdução a Linguagem C

Ferramentas Programação. UDESC - Prof. Juliano Maia 1

Introdução à Programação Aula 02. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

Organização Básica de computadores e linguagem de montagem

Programação Estruturada

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

Arquitectura e Organização de Computadores

Organização Estruturada de Computadores

Curso Profissional de Gestão e Programação de Sistemas Informáticos. Programação e Sistemas de Informação. Módulo 1. 1ª Parte Prof. Sandra Pais Soares

ARQUITETURACONCEITUAL DE UM COMPUTADOR Os primeiros passos para que a arquitetura dos computadores fosse similar à que conhecemos hoje foram dados

Computador Cleópatra

Microprocessadores CPU. Unidade de Controle. Prof. Henrique

Algoritmos. Prof. Jonatas Bastos Site:

Transcrição:

Introdução à Computação: Máquinas Multiníveis Beatriz F. M. Souza (bfmartins@inf.ufes.br) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória, ES Brazil 1

Máquinas Multiníveis Revisão Aula Passada Máquinas Multiníveis Parte 2: Nível de Componentes; Nível 0; Nível 1; Nível 2. 2

Máquinas Multiníveis Nível 3 Nível do Sistema Operacional: Esse nível suporta um conjunto de novas instruções, uma organização diferente da memória, a capacidade de rodar dois ou mais programas de forma simultânea, e outros; Fornece serviços básicos para os níveis acima: Interface (gráfica ou linha de comando) com o usuário;; Gerenciamento de memória; Escalonamento de processos; Acionamento de dispositivos de entrada e saída de dados, etc.; Geralmente é desenvolvido de forma híbrida, ou seja, parte em uma linguagem de alto nível (como C ou C++, por exemplo), e parte em linguagem de montagem. 3

Máquinas Multiníveis Nível 3 Nível do Sistema Operacional: Níveis abaixo: Dirigidos aos programadores de sistema; Níveis projetados para rodar interpretadores e tradutores (compiladores); Os programadores de sistema são especialistas em projetar e implementar novas máquinas virtuais e/ou interpretadores e/ou tradutores; Predominância de Interpretação; Linguagens frequentemente numéricas, bom para as máquinas, mas ruim para as pessoas. 4

Máquinas Multiníveis Nível 3 Nível do Sistema Operacional: Níveis acima: Dirigidos aos programadores de aplicação; Programadores com problemas a serem solucionados; Predominância de tradução (mas nem sempre); Linguagens contendo palavras e abreviações (significativas para as pessoas). 5

Máquinas Multiníveis Nível 3 Nível do Sistema Operacional: Evolução de 1969 a 2013: 6

Máquinas Multiníveis Nível 3 Nível do Sistema Operacional: Evolução de 1969 a 2013: 7

Máquinas Multiníveis Nível 3 Nível do Sistema Operacional: Evolução de 1969 a 2013: 8

Máquinas Multiníveis Nível 3 Nível do Sistema Operacional: Evolução de 1969 a 2013: 9

Máquinas Multiníveis Nível 3 Nível do Sistema Operacional: Evolução de 1969 a 2013: 10

Máquinas Multiníveis Nível 4 Nível de Linguagem de Montagem: Uma forma simbólica de representação das linguagens dos níveis mais baixos; Provê um método para as pessoas escreverem programas para os níveis 1, 2, e 3 de uma maneira não tão desconfortável; Mnemônicos para as instruções de máquina (Linguagem de Montagem ou Assembly); Os programas escritos em linguagem de montagem são primeiramente traduzidos para a linguagem dos níveis 1, 2 ou 3, e depois interpretados. 11

Máquinas Multiníveis Nível 4 Nível de Linguagem de Montagem: Montador (Assembler): Programa que executa a tradução dos programas em linguagem de montagem para uma linguagem do nível 1, 2 ou 3; Processo de montagem: 12

Máquinas Multiníveis Nível 4 Nível de Linguagem de Montagem: Razões para uso da linguagem de montagem: Melhorar o desempenho; Algumas máquinas podem não ter um compilador disponível; Cada comando em linguagem resulta em um comando em linguagem de máquina: Uma linha de programa fonte = uma linha de programa objeto; Representação simbólica da linguagem de máquina: Códigos de operação e operandos (números) substituídos por mnemônicos e rótulos. 13

Máquinas Multiníveis Nível 4 Nível de Linguagem de Montagem: Razões para uso da linguagem de montagem: Ao contrário da programação em alto nível, o programador de linguagem de montagem dispõe de todos os recursos do nível ISA; Programa não portável (válido apenas para uma mesma família de processadores). Ex: 1: Somando dois números ;Soma 2 números - ASM MOV EAX,39 ;39 = 57 ADD EAX,0FA ;0FA = 250 Ex. 2: família x86 64bits OP Codes ;Resultado: EAX = 133 ;133 = 307 14

Máquinas Multiníveis Nível 5 Nível de Linguagem de Alto Nível: Linguagens projetadas para serem utilizadas por programadores de aplicação com problemas a serem resolvidos; Exemplos de linguagens de alto nível: C, C++, Python, Java, etc. Os programas escritos nessas linguagens são geralmente traduzidos para o nível 3 ou nível 4 por tradutores conhecidos como compiladores, embora às vezes sejam interpretados (como no caso de Java e Python). 15

Máquinas Multiníveis Mais Níveis Mais Níveis? Acima do nível 5 encontram-se coleções de programas projetados para criar máquinas especialmente adequadas para certas aplicações (ou domínios), contendo grandes quantidades de informação acerca da aplicação ou características específicas; Máquinas virtuais voltadas às aplicações: Administração, educação, projeto de computadores, realidade virtual, etc.; Dependendo do projeto da arquitetura, os níveis podem variar. 16

Máquinas Multiníveis Observações Pontos fundamentais: Computadores são projetados como uma série de níveis; Cada nível é construído em cima de seus antecessores; Cada nível representa uma abstração distinta, com diferentes objetos e operações presentes; A abstração permite ignorar, "abstrair", temporariamente detalhes irrelevantes, de níveis mais baixos, reduzindo uma questão complexa a algo muito mais fácil de ser entendido: Arquitetura do Nível representa o conjunto de tipos de dados, instruções e características do nível. 17

Máquinas Multiníveis Observações Pontos fundamentais: Arquitetura de Computadores: É o estudo de como projetar as partes de um sistema de computador visíveis aos programadores. 18

Máquinas Multiníveis Arquitetura Hardware, Software e Firmware: 19

Máquinas Multiníveis Execução Execução de um Programa: 20

Máquinas Multiníveis Execução Tradutores: Compiladores: São programas que recebem como entrada arquivos texto contendo módulos escritos em linguagem de alto nível e geram como saída programa em linguagem de montagem (ou diretamente arquivos objeto) correspondentes a cada módulo; Se todas as bibliotecas ou módulos são apresentados como entrada, geram um programa executável diretamente. Montadores (Assemblers): Montam um programa em linguagem de máquina a partir de sua versão em linguagem de montagem; Geram um arquivo objeto e que em geral, não pode ser executado diretamente pela máquina, por conter referências a sub-rotinas e dados especificados em outros arquivos (bibliotecas). 21

Máquinas Multiníveis Tradução Execução de um Programa: Ligadores (Linkers): São programas especiais que recebem como entrada arquivos objetos e geram como saída o programa final em linguagem de máquina; Geram um programa executável a partir de um ou mais arquivos objeto. Carregadores (Loaders): Para executar um programa, um loader deve ser utilizado; O carregador é, em geral, parte do sistema operacional. 22

Máquinas Multiníveis Simulação Vamos simular? 23

Máquinas Multiníveis Próxima Aula Máquinas Multiníveis: Para a próxima aula: Arquitetura Von Neumann. Novidades na próxima aula! Até breve. 24

http://nemo.inf.ufes.br/ 25