Codificação da informação. Execução do programa. Codificação binária. Representação de inteiros positivos. Representação binária



Documentos relacionados
Sistemas de Numeração

Programação de Computadores

Figura 1 - O computador

Capítulo I : Noções Gerais

Introdução à Lógica de Programação

Introdução à Programação 2006/07. Computadores e Programação

SISTEMAS DIGITAIS Prof. Ricardo Rodrigues Barcelar

3 Sistemas de Numeração:

ENIAC. Introdução aos Computadores e à Programação (Noções Básicas)

Aula 3 - Sistemas de Numeração

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2)

Primeiros "computadores" digitais. Execução de um programa. Consolas. Primórdios dos computadores. Memória interna. Computadores com memória interna

Escola Secundária c/3º CEB José Macedo Fragateiro. Curso Profissional de Nível Secundário. Componente Técnica. Disciplina de

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Adriano Mauro Cansian 2

Hardware de Computadores

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

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

Fabio Bento

Unidade 1 - Objectivos das Tecnologias Informáticas

Trabalho compilado da Internet Prof. Claudio Passos. Sistemas Numéricos

Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

Circuitos Digitais. Conteúdo. Sistema de Numeração e Códigos :: Conversões de Binário para Decimal SISTEMA DE NUMERAÇÃO E CÓDIGOS

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

ARQUITETURA DE COMPUTADORES. Rogério Spindula Rosa

O modelo do computador

1.1. Organização de um Sistema Computacional

Fundamentos em Informática (Sistemas de Numeração e Representação de Dados)

Introdução à Informática

Introdução à Arquitetura de Computadores

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

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

PRONATEC FUNDAMENTOS DE HARDWARE. Prof. Kilmer Pereira

PROGRAMADOR JAVA. Aula 0 20 semanas. Instrutor : Léo Billi leo.billi@gmail.com

Representação de Dados

Sistemas de Numerações.

INTRODUÇÃO À PROGRAMAÇÃO BCC 201 TURMAS 31, 32 E AULA TEÓRICA 2 PROF. MARCELO LUIZ SILVA (R E D)

Programação de Computadores. Turma CI-180-B. Josiney de Souza.

1. NÍVEL CONVENCIONAL DE MÁQUINA

MC102 Algoritmos e Programação de Computadores 1ª Aula Introdução à Programação de Computadores

ARQUITETURA DE COMPUTADORES

Introdução à Arquitetura de Computadores IFES Campus Serra

Sistemas de Numeração

Escola Secundária de Emídio Navarro

Curso Técnico em Redes

Prof.Msc Jocênio Marquios Epaminondas.

Disciplina: Organização de computadores

Computador. Algumas definições

ARQUITETURA DE COMPUTADORES

Informática e informação 2

Faculdade de Tecnologia de Teresina-PI Tecnologia em Redes de Computadores. Arquitetura de Computadores Prof. Nathan Saraiva

Informática Aplicada à Química. Sistemas de Numeração Representação de Dados

Aula teórica 3. Tema 3.Computadores e linguagens Linguagens de Programação Compilação e linkagem LP Java. Preparado por eng.

Sistemas numéricos. Prof. Leandro Tonietto Introdução a computação e suas aplicações Curso de Segurança da Informação UNISINOS ago-09

Unidade de Controlo. Unidade Aritmética e Lógica

AULA 01 INTRODUÇÃO. Eduardo Camargo de Siqueira CIRCUITOS DIGITAIS Engenharia de Computação

Andrique Amorim INTRODUÇÃO A INFORMÁTICA

INFORMÁTICA BÁSICA. Prof. Rafael Zimmermann

3 Revisão de Software

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

Fundamentos de Microinformática. Ricardo José Cabeça de Souza 2010 Fundamentos 3

Programação de Computadores I BCC 701. Introdução

Álgebra de Boole. Sistema de Numeração e Códigos. Prof. Ubiratan Ramos

Apostila Informática Básica. 1.0 Introdução 1/14

Principais códigos utilizados. Codificação. Código binário puro. Codificação binária. Codificação Binária. Código Binário puro e suas variantes

Sistema de Computação

Estrutura de Dados. Ricardo José Cabeça de Souza Parte 1

Organização de Computadores

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

centena dezena unidade

Prof. Dr. Charlie Antoni Miquelin BÁSICO DE COMPUTAÇÃO EM TC

Apresentação... Nome: Vanderlei Cordeiro Frazão

Programação de Computadores III

Curso EFA Técnico/a de Informática - Sistemas. Óbidos

Linguagem de Programação I. Aula 05 Linguagem C

Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Disciplina de Lógica Computacional Aplicada. Prof. Dr.

LÓGICA DE PROGRAMAÇÃO

Sistemas Operacionais

ALP Algoritmos e Programação. . Linguagens para Computadores

Software Básico (INF1018)

20/09/2009 TRANSFORMANDO DADOS EM. PROCESSANDO DADOS George Gomes Cabral SISTEMAS NUMÉRICOS INFORMAÇÕES

Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM. Conceitos Básicos ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

O que é um programa? Programa é uma lista de instruções que descrevem uma tarefa a ser realizada pelo computador.

Sistemas de Numeração

História da Computação (Introdução Geral)

Computadores e Informação Digital

Unidade Central de Processamento Organização da UCP Execução de instruções em paralelo ("pipeline") Execução de programas

Parte 01. Fundamentos de Arquitetura de Computadores. Prof. Pedro Neto

Sistemas de numeração

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br

1 Fundamentos da Computação Prof. Bruno Guilhen

Identificação das variáveis de entrada; resultados/variáveis de saída e método ou solução. (procedimentos e funções)

Capítulo 1 Introdução

Introdução à Organização e Arquitetura de Computadores. Prof. Leonardo Barreto Campos 1

Introdução a Informática. Prof.: Roberto Franciscatto

Transcrição:

Execução do a calcula-se determinada solução (output) para determinado problema (input) usando um a que é executado no dados do problema (informação de entrada) a solução (informação resultante) Codificação da informação A informação manipulada pelo tem de estar representada como este é capaz de a interpretar Tecnologia actual baseia-se em circuitos electrónicos digitais binários os circuitos reconhecem e mantêm dois estados: ligado/desligado cada circuito num destes estados representa um bit de informação binary digit os circuitos podem manipular simultaneamente grupos de bits (por exemplo: 4, 8,,, etc ) ASC - /7 34 ASC - /7 35 Codificação binária Tudo no está representado por bits podemos convencionar que cada bit representa: ligado/desligado ou / ou verdade/falso ou etc quem "olha para os bits" interpreta-os como quiser! Como representar texto, imagens, sons, etc.??? Representação de inteiros positivos Começando por coisas simples Estamos habituados à representação decimal, mas podemos usar outras representações Temos de conseguir uma representação binária dois estados ou símbolos:, ASC - /7 3 ASC - /7 37 Representação de números Representação decimal: dez dígitos representados pelos símbolos:,,, 3, 4, 5,, 7, 8, 9 num número, cada algarismo representa uma potência de exemplo: 59 = x + 5 x + 9 x x + 5x + 9x centenas dezenas unidades Representação binária Representação binária: dígitos, símbolos:, cada algarismo no número representa uma potência de exemplo: em decimal: x 7 +x +x 5 +x 4 +x 3 +x +x +x = 59 ASC - /7 38 ASC - /7 39

Conversões Decompondo um número nos dígitos de determinada base decompomos no polinómio em potências da base exemplo: 59 = x + 5 x + 9 x = (( x ) + 5) x + 9 ou seja, dividimos sucessivamente pela base pretendida: 59 9 5 unidades 5 dezenas centenas ASC - /7 4 Conversões Para outras bases é idêntico binário, dividimos por : 59 79 39 9 9 4 59 = ASC - /7 4 binário bits Os números são facilmente representáveis no basta converter para a representação binária e convencionar, por exemplo, =ligado, =desligado Podemos representar qualquer informação que consigamos converter em números digitalizar Desvantagens do binário: não é natural para nós; as conversões binário decimal binário não são intuitivas a representação torna-se extensa. Outras bases Para nós pode ser mais fácil usar outras bases: representações menos extensas mais fáceis de converter para/de binário as candidatas são as bases potências de cada digito nessas bases corresponde directamente a um grupo de dígitos base (bits) ASC - /7 4 ASC - /7 43 Representação de números (cont) Representação hexadecimal: símbolos:,,, 3, 4, 5,, 7, 8, 9, A, B, C, D, E, cada algarismo no número representa uma potência de exemplo: 9 em decimal: 9 x + 5 = 59 conversão para hexadecimal: 59 5 9 9 ASC - /7 44 Relação entre representações Usando bases potências de temos uma relação directa entre os dígitos de cada base exemplo: 3 dig.bin. dig.oct. 4 dig. bin. dig.hex. 4 7 3 4 5 7 8 9 3 4 5 3 4 5 7 8 9 A B C D E 8 3 4 5 7 3 4 5 7 ASC - /7 45

Operações As operações aritméticas são independentes das bases de representação dos números Exemplos em binário: Álgebra de boole alores booleanos: verdade () e falso () Operações algébricas: e/and, ou/or, negação/not (carry) () + (3) (3) (borrow) () - (3) (7) e ou neg ASC - /7 4 ASC - /7 47 Passando a bits Para os valores booleanos podemos convencionar: verdade = e falso = Operações booleanas O pode fazer as operações boolenas sobre grupos de bits Exemplo com nibles (4 bits): e ou neg e ou neg ASC - /7 48 ASC - /7 49 Representação de texto Podemos representar as letras e outros símbolos convencionando uma codificação Numeramos todos esses caracteres! Temos de seguir a mesma convenção na introdução dos caracteres no e quando os apresentados na saída!! Exemplo: A A B B etc Codificações de caracteres Existem códigos normalizados: ASCII American Standard Code for Information Interchange (7 bits) Cada carácter tem um código de a 7 Exemplo: A = 5 % = 37 inclui códigos de controlo: TAB, RET, ISO8859 (8bits) mais 7 códigos, suportando caracteres com acentos e outros (depende da variante do código) latino, grego, hebraico, etc ISO4 ou Unicode (bits) ASC - /7 5 ASC - /7 5 3

Descodificação Exemplo: um controlador de ecrã ou de uma impressora recebem sequências de 8 bits e mostram o carácter correspondente exemplo: se receberem fazem aparecer o desenho A se receberem a sequência fazem aparecer: (muda de linha) NOTA: para escrever números temos de fazer sair os seus caracteres e não os números!! Descodificação dos bits Como interpretar o seguinte grupo de bits? o número 5? a letra A? 8 valores lógicos ()? outra?? Todas estas leituras são válidas! ASC - /7 5 ASC - /7 53 Execução de um a Como um executa um a? Mas o que é um? E um a? entrada de dados input bits a bits saída de dados output ASC - /7 54 ASC - /7 55 Definições num dicionário Computador o que faz cálculos; máquina para efectuar cálculos segundo instruções nela introduzidas; Programa projecto escrito e minucioso; conjunto de instruções numa linguagem capaz de ser interpretada por um sistema; Resolução de um problema. Dado um problema:. Descobrir/inventar um algoritmo para o resolver 3. Codificar esse algoritmo numa linguagem reconhecida pela máquina Que máquina usar? O que esta deve ser capaz de reconhecer? O que é realizável? Que linguagem usar? Mais próxima do utilizador humano? Mais próxima da máquina? ASC - /7 5 ASC - /7 57 4

Serão es? Alan Turing ábaco 35 AC? calculadora electrónica anos -7 calculadora de Pascal 5 Matemático Inglês, considerado por alguns o pai da Ciência da Computação contribuiu nos domínios da lógica, criptografia, inteligência artificial, formalização da algoritmia e da computação Máquina de Turing (define formalmente a "máquina universal") 9-954 instrumento musical controlado por papel perfurado ASC - /7 58 ASC - /7 59 John von Neumann Matemático Húngaro (nat. EUA), considerado por alguns o pai da arquitectura dos es binários modernos Contribuiu nos domínios da física quântica, economia, estatística, computação autómato celular, EDAC (Electronic Discrete ariable Automatic Computer) 93-957 Computador Equipamento com uma ou mais unidades, de processamento e periféricas, que é capaz de computar (incluindo operações aritméticas e lógicas), controlado por as internos, sem intervenção humana. ASC - /7 ASC - /7 Programas Conjunto de instruções escritas numa linguagem que alguma "máquina" é capaz de reconhecer e executar Instruções: Mais próximas do domínio de aplicação: mais complexas e específicas Mais próximas da arquitectura do : mais simples e genéricas Múltiplos níveis de linguagens Noção de interface Noção de transparência (ou opacidade) ASC - /7 Níveis nos sistemas informáticos Num sistema de computação: aplicações linguagens bibliotecas sistema de operação Podemos detalhar em mais níveis ASC - /7 3 5

Resolução de um problema Dado um problema Que algoritmo para o resolver? Que linguagens de ação? Para especificar o algoritmo Linguagens de que nível: Mais próximas do utilizador humano ou mais próximas do? Que máquinas? Para a execução do a/algoritmo Níveis nos sistemas informáticos Cada nível mais alto está mais perto das abstracções do utilizador e mais longe da máquina Cada nível faz uso das abstracções e funcionalidades oferecidas pelos níveis inferiores suporta as camadas superiores Exemplos: Aplicações Abstracções do domínio da aplicação ( ) Linguagens de ação Abstracções das linguagens e suas bibliotecas (streams, estruturas de dados, classes, ) Sistemas de operação Abstracções do sistema (ficheiros, canais, ) Arquitectura do Instruções da máquina, seus componentes e suas interacções Circuitos digitais, electrónica, ASC - /7 4 ASC - /7 5 Cada nível oferece Interface oferece um conjunto de "instruções" este define a "linguagem" e abstracções suportadas Transparência esconde do nível superior a implementação das suas instruções/abstracções oferece uma nova máquina (virtual) Resumindo Computador executa as escritos numa linguagem reconhecida: linguagem máquina Programa é um conjunto de instruções reconhecidas pelo, ou por outro a executado no ASC - /7 ASC - /7 7 Execução de as por tradução Execução de as por interpretação Programa nível N Programa nível N tradutor interpretador das instruções de nível N- Programa nível N- ASC - /7 8 o hardware do é sempre o "interpretador" final ASC - /7 9

Exemplo de execução em Java icheiro fonte Compilador a implementando a JM "java" Transformações Os as são transformados por outros as Exemplo da compilação de as em C: cc o hello hello.c icheiro "máquina-jm" Biblioteca das classes Java Interpretador Java irtual Machine executado pela máquina hello.c Source Preprocessor hello.i (cpp) Modified source Compiler (cc) hello.s Assembler hello.o (as) Assembly printf.o Relocatable object s (binary) Linker (ld) hello Executable object (binary) ASC - /7 7 ASC - /7 7 ases da compilação ase de pré-processamento: o a original é modificado de acordo com as directivas (#): exemplos: macros, inclusão de stdio.h ase de compilação: o compilador traduz o ficheiro hello.i para um ficheiro com mnemónicas em assembly ase de assembly : o assembler traduz o ficheiro hello.s para um ficheiro hello.o em que os seus bytes representam as instruções máquina correspondentes a cada mnemónica ase de ligação: o ligador inclui no ficheiro executável o código da função printf() e resolve as restantes referências printf.o hello.c Source Preprocessor hello.i (cpp) Modified source Compiler (cc) hello.s Assembler hello.o (as) Assembly Relocatable object s (binary) Linker (ld) hello Executable object (binary) Passos até termos um a em execução icheiro fonte Compilador icheiro máquina Biblioteca das funções da linguagem Compilador icheiro assembly Assembler Ligador a carregado em memória Carregador icheiro executável ASC - /7 7 ASC - /7 73 O processador lê e interpreta instruções armazenadas na memória Para executar o a hello é preciso carregá-lo para memória interagindo com uma interface e esta com SO de texto (linha de comando): prompt>./hello hello,world prompt> gráfico (interface gráfica): hello Um a em execução Instruções máquina executadas directamente pelo CPU (interpretadas pela máquina) a em memória (bibliotecas) Hardware (Processador, Memória, Discos,...) "Instruções" interpretadas pelo Sistema de Operação (por exemplo, escrita no écrã, leitura do disco...) Sistema de Operação (sempre carregado em Memória) plataforma ASC - /7 74 ASC - /7 75 7

Execução de um a O executa um a Quais os seus componentes? Como estes se organizam e interactuam? a entrada de dados processador, memória, input bits periféricos,etc bits saída de dados output ASC - /7 7 8