Visão Geral de
Programação Hardware vs.
Software
Componentes Básicos do Computador
• HARDWARE: Toda parte física do computador – Equipamento
propriamente dito
– Inclui: circuitos eletrônicos, gabinete, fonte de energia, cabos, teclado,
mouse, etc.
• SOFTWARE: Constituído pelos programas que permitem
atender às necessidades do usuário
– Utilizam o hardware: leitura de dados, saída de dados, execução de
cálculos, etc.
O Hardware
A memória do computador (1)
A memória do computador (2)
• A memória do computador é dividida em unidades pequenas
e de mesmo tamanho, chamadas PALAVRAS, sendo que cada
uma tem um único endereço
• Os endereços são permanentes (vêm da fábrica) e não podem
ser modificados pelo programador
A memória do computador (3)
• A PALAVRA é formada por um grupo de 2, 4, 6 e até 8 BYTES
(depende do modelo de computador)
• Exemplo: Palavra de 4 bytes
A memória do computador (4)
• BYTE (binary term) : Unidade básica da informação
– O byte é composto por 8 BITS
• BIT (binary digit) - dígitos binários
A memória do computador (5)
• Os computadores armazenam as informações e fazem todo
seu tratamento baseado em fenômenos sobre sistemas
biestáveis
• Os símbolos básicos usados para representar os dois estágios
são o 0 e o 1 (dígitos binários)
A memória do computador (6)
• Interligando todas as partes do computador, existem fios por
onde “circulam”os bits
• Computador de 16 bits => existem 16 fios para o transporte
dos dados
• Computador de 32 bits => existem 32 fios para o transporte
dos dados
• Computadores novos de 64 bits => ???
A memória do computador (7)
• Armazenamento de Informações NÃO NUMÉRICAS
– É feita através de um esquema de codificação.
– Dois métodos de codificação são os mais populares na indústria de
computadores:
• código EBCDIC (de 8 bits) - Extended Binary Coded Decimal Interchange
Code
– código ASCII ( de 7 bits) - American Standard Code for Information
Interchange
• http://pt.wikipedia.org/wiki/ASCII
A memória do computador (8)
• Código ASCII (7 bits)
– Cada byte armazena um caractere: algarismo, letra, símbolo ou
caractere de controle
A memória do computador (9)
• Código ASCII (7 bits)
• Possibilidade de 27representações diversas (128 caracteres)
– alfabeto inglês em letras minúsculas e maiúsculas (52) – caracteres
decimais numéricos (10)
– caracteres especiais e de operação (33)
– caracteres de controle (33)
A memória do computador (10)
• Armazenamento de Informações NUMÉRICAS
• A representação de grandezas numéricas está
fundamentalmente ligada à arquitetura do computador e aos
tipos de dados de cada linguagem
– Nosso caso: C
• Linguagens voltadas para a área científica caracterizam-se por
terem tipos de dados que possibilitam cálculos mais
complexos
A memória do computador (11)
• Armazenamento de Informações NUMÉRICAS – Utiliza 2 bytes
(16 bits) para armazenar um valor decimal inteiro (tipo integer).
– 1 bit é utilizado para o sinal e 15 bits para o módulo do número ( 0
positivo e 1 negativo)
– Qual o maior valor do tipo integer com 16 bits aceita?
• 215 = 32768 (vai de 0 a 32767)
A memória do computador (12)
A memória do computador (13)
• A memória é dividida em camadas:
– memória cache
– memória principal
– memória auxiliar
A memória do computador (14)
• MEMÓRIA CACHE
– Camada mais próxima do processador
– Funcionamento muito rápido
– Alto custo
– Pequena, devido ao custo
• Estratégias de barateamento: cache L1 e cache L2
– Os dados são perdidos quando o computador é desligado
A memória do computador (15)
• MEMÓRIA PRINCIPAL
– Dados que não cabem na memória cache residem na memória
principal
– Mais lenta
– Maior que a cache
– Custo inferior a cache
• Mas ainda superior às memórias auxiliares
– Os dados são perdidos quando o computador é desligado
A memória do computador (16)
• MEMÓRIA AUXILIAR (discos magnéticos)
– Armazenam os dados que não cabem na memória principal
– Podem reter grande quantidade de dados
– Os dados não são perdidos quando o computador é desligado
– Funcionamento muito lento
• Dois tipos de “disco”:
– DISCOS MAGNÉTICOS RÍGIDOS:
• HD (Hard Disk)
– DRIVE DE ESTADO SÓLIDO:
• SSD (SOLID STATE DRIVE)
• HD’s externos, pen drives, sd card, etc.
• Os dados e programas devem primeiro ser transferidos para a
memória principal antes de serem processados
A memória do computador (17)
• O PORTE do computador depende de:
– componentes (essência da memória e do processador)
– arquitetura,
– periféricos e
– software básico.
• O tamanho da memória principal é um dos indicadores do
porte do computador
– Unidade de medida: byte
A memória do computador (18)
• Unidades de medida
– Kbyte = 1024 bytes (1024 ~= 103)
– kilobyte (Kbyte ou KB) ~= 103 bytes
– megabyte (Mbyte ou MB) ~= 106 bytes
– gigabyte (Gbyte ou GB) ~= 109 bytes
– terabyte (Tbyte ou TB) ~= 1012 bytes
Unidades de entrada e saída (1)
Unidades de entrada e saída (2)
• Monitor de vídeo
• Teclado
• Impressora
• Leitora ótica
• Leitora de caracteres magnéticos
• Unidade de disco magnético flexível
• Leitora de código de barras
• Telas e teclados sensíveis ao
toque
• CD-ROM e DVD
• Mouse
• Scanner
• Dentre muitos outros
Unidade Central de Processamento (1)
Unidade Central de Processamento (2)
• Na CPU são executadas as instruções
– Instrução: comando que define integralmente uma operação a ser
executada
– Programa: instruções ordenadas logicamente
• A CPU tem possui 2 unidades:
– UNIDADE DE CONTROLE: determina a execução e interpretação dos
dados que estão sendo processados
– UNIDADE LÓGICA E ARITMÉTICA: recebe os dados da memória para
processá-los quando uma instrução aritmética ou lógica é executada •
Operadores lógicos e aritméticos de linguagens de programação (veremos em
C)
O Hardware
Componentes Básicos do Computador
• HARDWARE: Toda parte física do computador – Equipamento
propriamente dito
– Inclui: circuitos eletrônicos, gabinete, fonte de energia, cabos, teclado,
mouse, etc.
• SOFTWARE: Constituído pelos programas que permitem
atender às necessidades do usuário
– Utilizam o hardware: leitura de dados, saída de dados, execução de
cálculos, etc.
O Software
• O Software envolve um conjunto de:
– INSTRUÇÕES que quando executadas produzem a função e o
desempenho desejados
– ESTRUTURAS DE DADOS que possibilitam que os programas
manipulem adequadamente a informação
– DOCUMENTOS que descrevem a operação e o uso dos programas
Aplicações do Software (1)
• SOFTWARE BÁSICO
– Coleção de programas escritos para dar apoio a outros programas
• SOFTWARE DE TEMPO REAL
– Software que monitora, analisa e controla eventos do mundo real
• SOFTWARE COMERCIAL
– Sistemas de operações comerciais e tomadas de decisões
administrativas
Aplicações do Software (2)
• SOFTWARE CIENTÍFICO E DE ENGENHARIA
– Caracterizado por algoritmos de processamento de números
• SOFTWARE EMBUTIDO
– Usado para controlar produtos e sistemas para os mercados industriais
e de consumo
• SOFTWARE DE COMPUTADOR PESSOAL
– Envolve processamento de textos, planilhas eletrônicas, diversões, etc.
• SOFTWARE DE INTELIGÊNCIA ARTIFICIAL
– Faz uso de algoritmos não numéricos para resolver problemas que não
sejam favoráveis à computação ou à análise direta
Ciclo de vida do Software (1)
• O desenvolvimento do software compreende um conjunto de
etapas citadas como CICLOS DE VIDA DE SOFTWARE
• Essas etapas envolvem Métodos, Ferramentas e
Procedimentos para a construção e manutenção do
software
• O ciclo de vida de software contém 3 fases genéricas:
DEFINIÇÃO, DESENVOLVIMENTO e MANUTENÇÃO
Ciclo de vida do Software (2)
Ciclo de vida do Software (3)
Etapas da Construção de Programas
Programação e Níveis de Linguagem
Linguagem de Máquina
• Uma CPU somente pode compreender instruções que sejam
expressas em termos de sua LINGUAGEM DE MÁQUINA
• Um programa escrito em linguagem de máquina consiste de
uma série de números binários e é muito difícil de ser
entendido pelas pessoas
• Exemplo: Cada instrução é constituída de 2 partes:
código da operação operando
001 01010
Linguagem de Baixo Nível
• São linguagens de programação nas quais os programas são
escritos em uma notação que está próxima da linguagem de
máquina
• Um programa escrito em linguagem de máquina consiste de
uma série de números binários e é muito difícil de ser
entendido pelas pessoas
• Exemplo: Cada instrução é constituída de 2 partes:
código da operação operandos significado MOV eax,
10 move 10 para eax
ADD eax, 20 soma 20 a eax
Linguagem de Alto Nível ou de Compiladores
• São linguagens de programação nas quais se pode escrever
programas em uma notação próxima à maneira natural de
expressar o problema que se deseja resolver
• Exemplo:
RESULT = D-((A+B)/C)
• Linguagens de programação de alto nível
– PASCAL, C/C++, Java, LISP, BASIC, PROLOG, FORTRAN, COBOL, etc.
Para gerar linguagem de máquina
• COMPILADOR
– Programa utilizado pelo computador para traduzir os comandos
simbólicos de uma linguagem de alto nível, para linguagem de
máquina. Ex.: Turbo PASCAL e GCC
• MONTADOR
– Programa utilizado pelo computador para traduzir os comandos
simbólicos de uma linguagem de baixo nível , para linguagem de
máquina. Ex.: Assembler
• INTERPRETADOR
– Lê e executa uma declaração do programa por vez. Nenhuma fase
intermediária de compilação é necessária. A execução do programa
interpretado requer que o interpretador da linguagem esteja sendo
executado no computador. Ex.: JRE (Java Runtime Environment)
Execução de instruções
O Computador - Sumário
• Componentes Básicos do Computador
– O Hardware
• A Memória do Computador
• Unidades de Entrada e Saída
• A Unidade Central de Processamento
– O Software
• Aplicações do Software
• Ciclo de Vida do Software
• Programação e Níveis de Linguagem