Fundamentos de Informática Aula 3 Hardware e Software Prof. Cleanderson Lobo cleandersonlobo@gmail.com 2015.2
Hardware
Introdução Todos os computadores requerem pelo menos os seguintes componentes para funcionar Unidade Central de Processamento (UCP): é o processador, o chip que efetua cálculos matemáticos e funções lógicas - o cérebro do computador Memória: área na qual o sistema computacional armazena dados temporariamente para serem processados Armazenamento: diferentemente da memória, que armazena dados apenas temporariamente, o armazenamento grava os dados de forma persistente
Introdução Dispositivos de entrada de dados permitem que dados e instruções sejam inseridos no computador Exemplo: teclado, mouse e scanner Dispositivos de saída de dados permitem que dados sejam apresentados para o usuário Exemplo: monitor e impressora
Computador Pessoal O computador pessoal, ou PC, é um dos tipos mais comuns de computador, por sua versatilidade e baixo custo É composto de: Gabinete, fonte de energia, placa mãe, placas de expansão, dispositivos de armazenamento e dispositivos de entrada e saída Computador pessoal
Computador Pessoal Gabinete É uma caixa de metal ou plástico que abriga a maioria dos componentes Alguns são geralmente pequenos e cabem sob a mesa Nos últimos anos, modelos mais compactos têm aparecido, como os all-in-one All-in-one Interior de um gabinete de desktop
Computador Pessoal Fonte de energia Converte a energia em corrente alternada (AC) para energia de baixa tensão em corrente contínua (DC) para os componentes internos do computador Laptops funcionam com uma bateria, normalmente por horas Fonte de energia
Computador Pessoal Placa mãe O principal componente do computador Contém circuitos que integram partes do computador, como a CPU, a memória RAM, os drives de disco (CD, DVD, disco rígido), assim como quaisquer periféricos conectados nas portas ou slots de expansão
Computador Pessoal Placa mãe
Placa Mãe Componentes acoplados ou que são parte da placa mãe CPU Executa a maioria dos cálculos que permitem que um computador funcione Muitas CPUs mais recentes incluem uma GPU (Graphics Processing Unit) integrada Chipset Inclui o northbridge, um microchip em algumas placasmãe conectado diretamente à CPU, responsável por tarefas que requerem alta performance
Placa Mãe Random-Access Memory (RAM) Armazena o código e dados que estão sendo ativamente acessados pela CPU Read-Only Memory (ROM) Guarda a BIOS Barramentos Conectam a CPU a componentes internos e a placas de expansão para gráficos e som
CPU Parte responsável por executar as instruções dadas em um programa, como um reprodutor de vídeo ou processador de texto. Executa o código, manipulando dados, enquanto os outros componentes (memória e armazenamento) possuem o papel de armazenar os dados. Algumas CPUs executam instruções mais rápido que outras Um computador possui um relógio que emite pulsos para estabelecer o tempo no qual a CPU executa instruções O tempo para completar um ciclo de execução de instrução é medido em hertz (Hz) ou ciclos por segundo
CPU Os principais componentes de uma CPU incluem Unidade Lógica e Aritmética (ULA), que executa operações lógicas e aritméticas Registradores que fornecem operandos para a ULA e armazenam resultados de operações da ULA Unidade de Controle que busca instruções da memória e as executa, dirigindo as operações coordenadas da ULA, registradores e outros componentes
Registradores Unidades de memória capazes de armazenar n bits Estando no topo da hierarquia de memória, são o meio mais rápido e caro de se armazenar um dado Armazena os dados trazidos da memória principal a fim de serem utilizados pela CPU São medidos pelo número de bits que conseguem armazenar, dependendo do tipo de processador
CPU Intel Core i7
Chipset Conjunto de componentes eletrônicos em um circuito integrado que gerencia o fluxo de dados entre o processador, memória e periféricos Projetado para funcionar com uma família específica de microprocessadores Tem um papel crucial na performance do sistema, por controlar a comunicação entre o processador e dispositivos externos
Chipset Chipset na placa-mãe de um laptop IBM T42
Random-Access Memory (RAM) Permite que dados sejam lidos e escritos na mesma quantidade de tempo, aproximadamente É um tipo de memória volátil, no qual os dados são perdidos se o fornecimento de energia cessar Pentes de memória RAM
Read-Only Memory (ROM) Em contraste com a memória RAM, a memória somenteleitura (ROM) armazena dados permanentemente Variantes de memória ROM que podem ser reescritas compartilham características também das memórias RAM EEPROM Memória Flash Chip de memória EEPROM Pendrive (memória flash)
Memória Secundaria A memória auxiliar, ou persistente, do computador é uma memória de logo prazo para dados, como arquivos e diretórios (pastas) Persistente significa que os dados são mantidos na memória mesmo quando o dispositivo não está ligado à energia Exemplos de dispositivos de armazenamento considerados como memória persistente são o disco rígido ou SSD (Solid State Disk)
Memória Secundaria Interior de um disco rígido Interior de um SSD
BIOS A BIOS (em inglês: Basic Input/Output System) é um componente essencial ao funcionamento de um computador A BIOS é, na verdade, um software armazenado na memória ROM É o primeiro software executado quando o computador é ligado É responsável por checar os componentes do computador e iniciar o sistema operacional Um chip de BIOS
BIOS Além de iniciar e testar os dispositivos do sistema, o BIOS carrega um boot loader ou um sistema operacional da memória secundária provê uma forma consistente para que programas e SOs interajam com o hardware BIOS da American Megatrends mostrando um erro
Software
Introdução Software é um programa que executa no hardware Esse programa é executado em um computador para cumprir uma tarefa específica Podemos classificar software em três grupos Software básico (do fabricante) Software utilitário (de apoio) Software aplicativo (do usuário)
Software Básico Conjunto de programas que define o padrão de comportamento do equipamento, tornando-o utilizável Destinam-se a realizar tarefas básicas do computador, como: acionar periféricos, gerenciar buffers, mapear memória, manter o relógio e a data, entre outros Exemplo: Sistema Operacional
Software Utilitário São programas desenvolvidos com aplicações definidas, que facilitam a operação do computador por parte do usuário Exemplo: Quando usamos um programa descompactador de arquivos para poder acessar imagens que estão dentro dele. Ou então usamos um programa para montar uma imagem em um disco virtual para executar um jogo.
Software Aplicativo Programas voltados para a solução de problemas do usuário, ou seja, executa uma série de instruções comandadas pelo usuário Utilizado na automação das rotinas comerciais, industriais e científicas
Programas em Execução Um computador pode executar vários programas ao mesmo tempo, mantendo os seus recursos separados, para que um não interfira com o outro
Programas em Execução
Introdução A CPU entende somente uma linguagem de código de baixo nível, também conhecida como "código de máquina" ou "código nativo" Esta linguagem do código de máquina está acoplada ao projeto da CPU e não é algo que pode ser modificado Cada família de CPUs compatíveis, como a família Intel x86, possui seu próprio código de máquina que não é compatível com o código de outras famílias de CPUs
Código da Maquina O código de máquina define um conjunto de instruções individuais Cada uma dessas instruções é extremamente primitiva, como adicionar dois números ou testar se um número é igual a zero
Código de Maquina Código escrito em C int main(void) { } int i = 2 + 2; return i; Equivalente em Assembly.file "example.c".section.text.startup,"ax",@progbits.p2align 4,,15.globl main.type main, @function main:.lfb0:.cfi_startproc movl $4, %eax ret.cfi_endproc.lfe0:.size main,.-main.ident "GCC: (Ubuntu 4.8.2-19ubuntu1) 4.8.2".section.note.GNUstack,"",@progbits
Linguagens de Programação Para facilitar a construção de programas complexos, existem as linguagens de alto nível, em contraste com o código de máquina mencionado antes Várias linguagens de programação de alto nível foram desenvolvidas desde o aparecimento do primeiro computador, incluindo BASIC, Fortran, Pascal, C++, Java, C#, Python, entre outras Cada linguagem possui um conjunto único de palavras e uma sintaxe especial para organizar as instruções do programa Explicando de maneira bem simples, o código escrito em uma linguagem de alto nível, de uma forma ou de outra, é transformado em linguagem de máquina
Compilador
Execução A CPU executa instruções em ciclo Busca a primeira instrução na sequência, executa-a, então busca a próxima instrução e a executa, e assim por diante Por exemplo, quando o usuário clica duas vezes em um programa no Windows para que seja executado O bloco de instruções que compõem o programa é copiado para a memória RAM A CPU é apontada para a primeira instrução na área onde encontra-se o bloco na memória RAM A execução inicia
Tipos de Distribuição Freeware Software que pode ser grátis ou distribuído por um custo mínimo São disponibilizados livremente na Internet e seu uso não representa quebra de direitos autorais Tipicamente, são pequenos utilitários ou programas incompletos Os autores Geralmente não esperam que paguem pelo freeware ou pode cobrar taxas por seu uso ou distribuição Não possuem obrigação de prover suporte Podem reter os direitos (copyright) sobre o conteúdo do freeware e estipular que outros não o modifiquem Exemplos: Internet Explorer, Google Chrome
Tipos de Distribuição Shareware Distribuído a um baixo (ou nenhum) custo, mas geralmente requer pagamento e registro para o uso legal completo Cópias são distribuídas para serem utilizadas por um período de testes Não é grátis, mas possui a vantagem sobre software comercial padrão, pois o usuário pode testá-lo antes de decidir adquiri-lo Exemplo: WinRAR
Tipos de Distribuição Software Livre É gratuito e disponibilizado livremente Diferentemente do freeware, o código fonte do software é aberto Por esse motivo, o usuário pode alterar seu código, adaptálo e até mesmo acrescentar novas linhas de código ao programa Exemplos: Linux, Suíte Open Office, Mozilla Firefox
Tipos de Distribuição Software Livre É gratuito e disponibilizado livremente Diferentemente do freeware, o código fonte do software é aberto Por esse motivo, o usuário pode alterar seu código, adaptálo e até mesmo acrescentar novas linhas de código ao programa Exemplos: Linux, Suíte Open Office, Mozilla Firefox
Tipos de Distribuição Demo Demonstração do programa, geralmente com alguns comandos desabilitados Outro tipo de distribuição semelhante é a trial Ferramentas e recursos não são desabilitados O uso do software é limitado por tempo ou quantidade de execuções
Dúvidas?
Bibliografia Básica ALBERTIN, Alberto Luiz. Administração de Informática Funções e fatores críticos de sucesso. 6ª ed. São Paulo: Atlas, 2008. ALVES, William Pereira. Informática Fundamental Introdução ao Processamento de Dados. São Paulo: Érica, 2010. CRUZ, Tadeu. Sistemas de informações gerenciais: tecnologias da informação e a empresa do século XXI. 3. ed. São Paulo: Atlas, 2011.