Análise de Dados em Oc. Física

Documentos relacionados
IOF Técnicas de Visualização e Distribuição de Dados Oceanográficos

CURSO TÉCNICO PROFISSIONALIZANTE Disciplina: Informática Básica (Hardware)

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

INFORMÁTICA (NCINF) CONCEITOS BÁSICOS DE HARDWARE

1. Conceitos Básicos de Computação

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

LISTA DE EXERCÍCIOS 01 INTRODUÇÃO À INFORMÁTICA

Programação Estruturada

Componentes de um Computador Típico

Hardware. Informática

Informática I. Aula 2. Aula 2-04/09/2006 1

Informática I. Aula /09/2006 1

Linguagens de Programação Classificação

Informática I. Aula 2. Ementa

Fundamentos de Informática Introdução aos Conceitos Básicos

Estrutura e Funcionamento dos Computadores (Conceitos Básicos)

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

PROGRAMAÇÃO I. Introdução

Arquitetura de Computadores

GFM015 Introdução à Computação

AULA 2. Prof.: Jadiel Mestre. Introdução à Informática. Introdução à Informática Componentes de um Sistema de Informação

Montagem e Manutenção de Computadores

Arquitetura de Computadores. Infraestrutura de TI: Hardware

Introdução à Informática Engenharia Agrícola

Hardware Central de Cursos Professor Pimentel

Arquitetura de Computadores

Introdução à Computação MAC0110

Hardware: Componentes Básicos. Sistema de Computador Pessoal. Anatomia de um Teclado. Estrutura do Computador. Arquitetura e Organização

Componentes do Computador

MAC2166 Introdução à Computação Aula 1 Como Funciona um Computador

Os computadores ditigais podem ser classificados em 5 grupos distintos:

Sistemas Operacionais

TIPO DE COMPUTADORES VALE A PENA CONHECER SMARTPHONES

Hardware. Computador. Computador. Computador. Evolução dos Computadores. Laboratório de Utilização de Microcomputadores (DCA0302) Aula 01

Conceitos sobre Computadores

Profa. Leda G. F. Bueno

Programação de Computadores I

Algoritmos e Técnicas de Programação. Professora Luciana Faria

Engenharia Civil. Conceitos Básicos. Introdução à Computação

INFORMÁTICA BÁSICA AULA

INTRODUÇÃO AOS SISTEMAS LÓGICOS INTRODUÇÃO

Estrutura Básica de um Computador

INTRODUÇÃO. Introdução a Informática. Vinícius Pádua

Sistema Computacional

Componentes de Hardware. Alberto Felipe FriderichsBarros

Lista de Exercícios sobre Conceitos de Informática. Exercício 1: Correspondência

Prof. Alessandro Introdução a Computação Aula 2 Curso Técnico Módulo I. do computador. A placa-mãe é a maior placa encontrada no gabinete.

SSC304 Introdução à Programação Para Engenharias

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

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

Algoritmos e Lógica de Programação Componentes e Arquitetura

Prof. Sandro Wambier

Estrutura e Funcionamento do Computador

Softwares, Aplicativos e Sistemas Operacionais

ORGANIZAÇÃO DE COMPUTADORES

Organização de Computadores I

ORGANIZAÇÃO DE COMPUTADORES

FundamentosemInformática

Noções de Informática INSS. Novo Curso. Aula 01

Programação. Module Introduction. Cap. 1 Fundamentos de Computadores

O Sistema de Computação

UNIVERSIDADE ESTADUAL DO PARÁ UEPA LISTA DE EXERCÍCIOS DE INTRODUÇÃO A COMPUTAÇÃO. 2. O que diferencia os computadores de 1ª geração dos da 2ª.

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

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

Programação de Computadores:

INFORMÁTICA. Professor: Venicio Paulo Mourão Saldanha Site:

Introdução ao Hardware Informática Básica e Aplicada PROFESSOR: DANIEL BRANDÃO

2. Conceitos Básicos. Introdução à Ciência da Computação.

ORGANIZAÇÃO DE COMPUTADORES

Sistemas Operacionais. Adão de Melo Neto

FACULDADE PITÁGORAS PRONATEC

Tópicos da aula. Histórico e Evolução dos Computadores. Noções Básicas de Arquitetura de Computadores

Processamento de Dados aplicado à Geociências. AULA 1: Introdução à Arquitetura de Computadores

Introdução à Informática UFRPE - UAST

Linguagens de Programação

SCC-120 INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO

Infraestrutura de Hardware. Funcionamento de um Computador

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

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

Informática Aplicada. Introdução

Estrutura dos Computadores. Arquitetura de Computadores

Universidade Federal de Uberlândia Faculdade de Computação. Introdução à computação

Lista de Exercícios sobre Conceitos de Informática. Exercício 1: Correspondência

Introdução à Computação MAC0110

NOÇÕES DE INFORMÁTICA

Organização de Computadores

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

Princípios de Sistemas de Informação. Infraestrutura de TI: Hardware e Software

SEL-614 MICROPROCESSADORES E APLICAÇÕES. Adilson Gonzaga

Escola Secundária de Emídio Navarro

AGT0001 Algoritmos Aula 01 O Computador

Introdução à Arquitetura de Computadores

Introdução a Tecnologia da Informação

Introdução à Informática

Introdução aos Computadores e Programação

Programação de Computadores I - PRG1 Engenharia Elétrica

-Periféricos -Dispositivos de Entrada/Saída - Unidade de medida. Gustavo Catarino da Costa Wilson Coelho Neto Paulo Wesley Fogaça

Representação de Dados

Professor: Lau Cheuk Lung

SEL-0415 Introdução à Organização de Computadores Aula 2 Prof. Dr. Marcelo Andrade da Costa Vieira

Transcrição:

Análise de Dados em Oc. Física Aula 1 - Introdução Paulo S. Polito, Ph.D. polito@usp.br Instituto Oceanográfico da Universidade de São Paulo P. S. Polito (IOUSP) Análise de Dados em Oc. Física 1 / 26

Roteiro 1 Hardware Evolução Como Funciona 2 Software Linguagem de Máquina Linguagens de Programação Compiladores e Interpretadores Vantagens e Desvantagens P. S. Polito (IOUSP) Análise de Dados em Oc. Física 2 / 26

Roteiro Hardware 1 Hardware Evolução Como Funciona 2 Software Linguagem de Máquina Linguagens de Programação Compiladores e Interpretadores Vantagens e Desvantagens P. S. Polito (IOUSP) Análise de Dados em Oc. Física 3 / 26

Computadores Hardware Evolução Analisar dados implica em armazenar e processar informação. ENIAC, IBM 360, laptop, IBM roadrunner. P. S. Polito (IOUSP) Análise de Dados em Oc. Física 4 / 26

Tendências Hardware Evolução Moravec, H.: When will computer hardware match the human brain? Journal of Evolution and Technology. 1998. Vol. 1. P. S. Polito (IOUSP) Análise de Dados em Oc. Física 5 / 26

Hardware Como Funciona O Modelo de von Neumann (1940) CPU: Unidade Central de Processamento Unidade de Controle, Unidade de Aritmética e Lógica (ALU), Registradores, Input/Output básico. Input: rede, teclado, leitor de DVD, mouse, scanner. Output: rede, impressora, monitor, gravador de CD, DVD. Memória volátil, de trabalho: RAM, cache. Memória permanente: HD, USB drive, mídia de CD/DVD. P. S. Polito (IOUSP) Análise de Dados em Oc. Física 6 / 26

Hardware Como Funciona Um Esquema de Placa mãe CPU, memória RAM. Controle audio, vídeo, discos. Controle de interfaces serial, USB, firewire. Controle de comunicação via modem, ethernet. BIOS (boot). P. S. Polito (IOUSP) Análise de Dados em Oc. Física 7 / 26

Hardware Como Funciona Na Prática... Além da placa mãe, no gabinete vão: HD, CD, DVD. Coolers (ventiladores). Fonte de alimentação (110V 3.5, 5 e 12V). Cabos, fios, conectores e jumpers. Placas de vídeo, audio, rede etc. P. S. Polito (IOUSP) Análise de Dados em Oc. Física 8 / 26

Hardware Como Funciona Dentro da CPU Podemos dividir a CPU em três blocos: Unidade de controle: é quem organiza para onde os números são enviados e coordena o processamento, como um maestro. Unidade de aritimética e lógica: é quem efetivamente faz as contas, como os músicos. Que contas são essas? + = > <. Só isso. Memória temporária: acumuladores, guardam o resultado das contas; registradores de dados, guardam os números que serão usados nas contas; registradores de endereço, guardam endereços de memória; registradores de uso geral. memória cache, intermedia a troca de dados entre a CPU e a memória RAM. P. S. Polito (IOUSP) Análise de Dados em Oc. Física 9 / 26

Hardware Há memórias e memórias Como Funciona As memórias que nossos programas usam para guardar dados são externas à CPU: Volátil (i.e. perde se desligar): RAM Permanente (i.e. não se perde ao desligar): discos, DVD, SSD, fita Os dados ficam na CPU durante as contas. Em termos relativos: Registradores/acumuladores é extremamente reduzida (Bytes), caríssima e rápidíssima. Cache é muito limitada (MB), caríssima e rápidíssima. RAM é pequena (MB), cara e rápida. SSDs são pequenos (GB), caros e rápidos. HDs são grandes (TB), baratos e lentos. P. S. Polito (IOUSP) Análise de Dados em Oc. Física 10 / 26

Roteiro Software 1 Hardware Evolução Como Funciona 2 Software Linguagem de Máquina Linguagens de Programação Compiladores e Interpretadores Vantagens e Desvantagens P. S. Polito (IOUSP) Análise de Dados em Oc. Física 11 / 26

Software Linguagem de Máquina Porque Binários? A parte importante é a prateada, são camadas de silício. Nelas temos uns 2 milhões de transistores. Transistores e circuitos de memória tem 2 estados: ligado e desligado. ligado =1 e desligado=0, por isso o sistema binário é associado ao hardware. P. S. Polito (IOUSP) Análise de Dados em Oc. Física 12 / 26

Software Linguagem de Máquina Instruções em Código Binário Computadores operam internamente com 0s e 1s por causa do hardware. Por exemplo: Para guardar o número 97 no registrador AL (memória dentro da CPU) fazemos: 10110000 01100001 em binário. O circuito da CPU é tal que quando recebe os bits 10110000 ele conecta o que vem a seguir com uma memória chamada registrador AL. 10110000 01100001 é o mesmo que B0 61 em hexadecimal, que é o mesmo que MOV AL 61h em linguagem assembly; 61 em hexadecimal é o mesmo que 97 em decimal. Em geral imprime se o código em hexadecimal por ser mais compacto. P. S. Polito (IOUSP) Análise de Dados em Oc. Física 13 / 26

Instruções em Código Hexa Software Linguagem de Máquina 20 primeiras linhas do editor de programas Emacs: P. S. Polito (IOUSP) Análise de Dados em Oc. Física 14 / 26

Software Linguagem de Máquina Conversão Decimal Binário Hexa Geralmente opera se com 8,16,32 ou 64 bits. Vamos converter o número binário de 16 bits 0000 0101 0001 1001 em decimal: bit 10 9 8 7 6 5 4 3 2 1 0 2 bit 2 10 2 9 2 8 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 = 1024 512 256 128 64 32 16 8 4 2 1 bin 1 0 1 0 0 0 1 1 0 0 1 O resultado em decimal é 1024 + 256 + 16 + 8 + 1 = 1305. A conversão para hexadecimal fica mais fácil, basta separar o binário em blocos de 4 bits e converter cada bloco: bin 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 1 hex 0 5 1 9 Portanto 0000 0101 0001 1001 (bin) = 1305 (dec) = 519 (hex) P. S. Polito (IOUSP) Análise de Dados em Oc. Física 15 / 26

Software Linguagens de Programação Assembly Language Há várias arquiteturas de processadores (Intel 8086, AMD-V, Motorola 68020 etc.) cujo circuito eletrônico interno varia. Cada um tem um conjunto de opcodes ou operações básicas, como esse MOV em MOV AL 61h. Cada um desses opcodes depende da arquitetura e corresponde a um único número binário (e.g. 10110000). O conjunto dessas instruções forma uma assembly language. P. S. Polito (IOUSP) Análise de Dados em Oc. Física 16 / 26

Software Um Exemplo em Assembly name "add-sub" org 100h mov al, 5 mov bl, 10 add bl, al sub bl, 1 mov cx, 8 print: mov ah, 2 mov dl, 0 test bl, 10000000b... Linguagens de Programação... jz zero mov dl, 1 zero: int 21h shl bl, 1 loop print mov dl, b int 21h mov ah, 0 int 16h ret Essa é uma linguagem de baixo nível por operar quase diretamente no processador. Seria demorado, tedioso e difícil escrever um programa para processamento científico em assembly (ou assembler). P. S. Polito (IOUSP) Análise de Dados em Oc. Física 17 / 26

Software Linguagens de Programação Compiladores como Tradutores Todos os programas que são efetivamente executados pela CPU são escritos com esse conjunto de operações binárias. Todas as linguagens de programação traduzem expressões mais fáceis de se entender (programas) para o código binário executável. Por praticidade escrevemos as instruções em linguagens simplificadas e muito resumidas (e.g. C, C++, FORTRAN, COBOL, Pascal). Cada instrução é convertida pelo compilador em instruções em código binário. O conjunto dessas instruções forma um programa executável. P. S. Polito (IOUSP) Análise de Dados em Oc. Física 18 / 26

Software Compiladores, em resumo... Linguagens de Programação P. S. Polito (IOUSP) Análise de Dados em Oc. Física 19 / 26

Software Compiladores e Interpretadores Diferença entre Compilador e Interpretador Os compiladores lêem o arquivo texto com o código fonte todo. Se este estiver correto eles geram um código objeto binário. O binário pode ser executado independente da existência do compilador. Existem também os interpretadores, programas que executam as instruções uma a uma ou em pequenos blocos. Cada instrução ou bloco é convertido pelo interpretador em instruções em código binário e estas são executadas. Não é gerado um código binário em um arquivo independente. Neste caso a execução é controlada pelo interpretador que se mantém ativo na memória. E.g.: Javascript, PHP, Perl, Python, Matlab, Octave, Mathematica. P. S. Polito (IOUSP) Análise de Dados em Oc. Física 20 / 26

Software Compiladores e Interpretadores Interação com o Interpretador Os comandos ou instruções podem ser digitados na linha de comando ou salvos num arquivo texto (programa fonte) e executados de uma só vez. Note que internamente a execução é sempre feita comando a comando ou bloco a bloco. Algumas linguagens geram, ainda que internamente, pedacinhos de código intermediário compilado e otimizado. O interpretador controla a alocação de memória e o uso dos recursos do sistema. P. S. Polito (IOUSP) Análise de Dados em Oc. Física 21 / 26

Software Interpretadores, em resumo... Compiladores e Interpretadores P. S. Polito (IOUSP) Análise de Dados em Oc. Física 22 / 26

Comparando Códigos Software Vantagens e Desvantagens Mais linguagens em: www.roesler-ac.de/wolfram/hello.htm /* in C, Ansi-style */ #include <stdio.h> #include <stdlib.h> int main(void) { puts("hello World!"); return EXIT_SUCCESS; }! in Fortran 90 and 95 program Hello write(*,*) "Hello World! end program Hello % in MATLAB disp( Hello World ); # in Octave printf("hello World\n"); P. S. Polito (IOUSP) Análise de Dados em Oc. Física 23 / 26

Software Linguagens e Necessidades Vantagens e Desvantagens Em geral, programas similares em linguagens compiladas são mais longos que em linguagens interpretadas. Isto se deve a: simplicidade léxica e sintática das linguagens interpretadas, facilidade de testar comandos passo a passo no interpretador e necessidade de declarar variáveis para o compilador. Em geral, programas similares em linguagens compiladas são mais rápidos que em linguagens interpretadas. Isto acontece pois: o gerenciamento de memória por parte do interpretador demora, o interpretador disputa recursos com o programa e o compilador gera um código binário otimizado. P. S. Polito (IOUSP) Análise de Dados em Oc. Física 24 / 26

Software Vantagens e Desvantagens A Ferramenta Adequada Em geral, a escolha fica entre FORTRAN e Matlab, embora hajam iniciativas interessantes na utilização de Octave e Python. FORTRAN combina precisão, velocidade, uso eficiente de memória, paralelização do processamento e portabilidade (open source). Use o para: modelagem numérica; análise estatística (e.g. EOF) de grande volume de dados; interpolação; processamento de quantidades massivas de dados, O[100GB]+. Chega a ser 1000 vezes mais rápido que o Matlab. P. S. Polito (IOUSP) Análise de Dados em Oc. Física 25 / 26

Software Vantagens e Desvantagens A Ferramenta Adequada Em geral, a escolha fica entre FORTRAN e Matlab, embora hajam iniciativas interessantes na utilização de Octave e Python. Matlab apresenta facilidade de programação, visualização e análise estatística, além de um grande número de programas específicos para oceanografia. Use o para: Controle de qualidade; Análise estatística em geral; Processamento de séries temporais e imagens; I/O em formatos específicos; Visualização de dados. P. S. Polito (IOUSP) Análise de Dados em Oc. Física 26 / 26