You are on page 1of 38

CONCEITOS DE HARDWARE E

SOFTWARE
Lorena Sophia Campos de Oliveira
CONCEITOS DE HARDWARE
 Todos os componentes de um computador são
agrupados em três subsistemas básicos: unidade
central de processamento, memória principal e
dispositivo de entrada e saída.
UNIDADE CENTRAL DE
PROCESSAMENTO
 A Unidade Central de Processamento (UCP), ou
processador, tem como função principal unificar
todo o sistema, controlando as funções realizadas
por cada unidade funcional. A UCP também é
responsável pela execução de todos os programas
do sistema, que obrigatoriamente deverão estar
armazenados na memória principal.

 Clock
 O clock é um dispositivo, localizado na UCP, que
gera pulsos elétricos síncronos em um
determinado intervalo de tempo (sinal de clock).
REGISTRADORES
 Os registradores são dispositivos de alta velocidade,
localizados na UCP, para armazenamento temporário
de dados. Alguns registradores de uso específico:
 Contador de instrução – é o registrador responsável pelo
armazenamento do endereço da próxima instrução que a
UCP deverá executar.
 Apontador de pilha – é o registrador que contém o endereço
de memória do topo da pilha, que é a estrutura de dados
onde o sistema mantém informações sobre as tarefas que
estão sendo processadas e tiveram que ser interrompidas
por algum motivo.
 Registrador de estado – é responsável por armazenar
informações sobre a execução do programa. A cada
instrução executada, o registrador de estado é alterado
conforme o resultado gerado pela instrução.
MEMÓRIA PRINCIPAL
 A memória principal, também conhecida como
memória primária ou real, é a parte do
computador onde são armazenados instruções e
dados.
MEMÓRIA CACHE
 A memória cache é uma memória volátil de
alta velocidade. O tempo de acesso a um dado
nela contido é muito menor que se o mesmo
estivesse na memória principal.

 Toda vez que o processador faz referência a um


dado armazenado na memória principal, ele
“olha” antes na memória cache. Se o
processador encontrar o dado na cache, não há
necessidade do acesso à memória principal; do
contrário, o acesso é obrigatório.
CACHE EM NÍVEIS
 Com a evolução na velocidade dos dispositivos, em
particular nos processadores, o cache foi dividido em
níveis, já que a demanda de velocidade a memória é
tão grande que são necessários caches grandes com
velocidades altíssimas de transferencia e baixas
latências. Sendo muito difícil e caro construir
memórias caches com essas características, elas são
construídas em níveis que se diferem na relação
tamanho X desempenho.
 Cache L1
 Uma pequena porção de memória estática presente dentro
do processador. Em alguns tipos de processador, como o
Pentium 2, o L1 é dividido em dois níveis: dados e
instruções (que "dizem" o que fazer com os dados). A partir
do Intel 486, começou a se colocar a L1 no próprio chip
[processador]. Geralmente tem entre 16KB e 128KB; hoje
já encontramos processadores com até 2MB de cache.
CACHE L2
 Possuindo o Cache L1 um tamanho reduzido e não apresentando
uma solução ideal, foi desenvolvido o cache L2, que contém muito
mais memória que o cache L1. Ela é mais um caminho para que a
informação requisitada não tenha que ser procurada na lenta
memória principal. Alguns processadores colocam essa cache fora do
processador, por questões econômicas, pois uma cache grande
implica num custo grande, mas há exceções, como no Pentium II, por
exemplo, cujas caches L1 e L2 estão no mesmo cartucho que está o
processador. A memória cache L2 é, sobretudo, um dos elementos
essenciais para um bom rendimento do processador mesmo que
tenha um clock baixo. Um exemplo prático é o caso do Intel Itanium
9152M (para servidores) que tem apenas 1.6 GHz de clock interno e
ganha de longe do atual Intel Extreme, pelo fato de possuir uma
memória cache de 24Mb. Quanto mais alto é o clock do processador,
mais este aquece e mais instável se torna. Os processadores Intel
Celeron tem tão fraco desempenho por possuir menor memória cache
L2. Um Pentium M 730 de 1.6 GHz de clock interno, 533 MHz FSB e
2 MB de cache L2, tem rendimento semelhante a um Intel Pentium
4 2.4 GHz, aquece muito menos e torna-se muito mais estável e bem
mais rentável do que o Intel Celeron M 440 de 1.86 GHz de clock
interno, 533 MHz FSB e 1 MB de cache L2.
CACHE L3
 Terceiro nível de cache de memória. Inicialmente
utilizado pelo AMD K6-III (por apresentar o
cache L2 integrado ao seu núcleo) utilizava o
cache externo presente na placa-mãe como uma
memória de cache adicional. Ainda é um tipo de
cache raro devido a complexidade dos
processadores atuais, com suas áreas chegando a
milhões de transístores por micrómetros ou
picómetros de área. Ela será muito útil, é possível
a necessidade futura de níveis ainda mais
elevados de cache, como L4 e assim por diante.
MEMÓRIA SECUNDÁRIA
 A memória secundária é um meio permanente
(não volátil) de armazenamento de programas e
dados. Enquanto a memória principal precisa
estar sempre energizada para manter suas
informações, a memória secundária não precisa
de alimentação.
 O acesso à memória secundária é lento, se
comparado com o acesso à memória cache ou à
principal, porém seu custo é baixo e sua
capacidade de armazenamento é bem superior à
da memória principal.
DISPOSITIVOS DE ENTRADA E SAÍDA
 Os dispositivos de entrada e saída (E/S) são
utilizados para permitir a comunicação entre o
computador e mundo externo. Através desses
dispositivos, a UCP e a memória principal podem
se comunicar, tanto com usuários quanto com
memórias secundárias, a fim de realizar qualquer
tipo de processamento.
BARRAMENTO
 A UCP, a memória principal e os dispositivos de
E/S são interligados através de linhas de
comunicação denominadas barramentos, barras
ou vias. Um barramento (bus) é um conjunto de
fios paralelos (linhas de transmissão), onde
trafegam informações, como dados, endereços ou
sinais de controle.
PIPELINING
 O conceito de processamento pipeline se assemelha
muito a uma linha de montagem, onde uma tarefa é
dividida em subtarefas, executadas em diferentes
estágios dentro da linha de produção.
 Da mesma forma que em uma linha de montagem, a
execução de uma instrução pode ser dividida em
subtarefas, como as fases de busca da instrução e dos
operandos, execução e armazenamento dos
resultados. O processador, através de suas várias
unidades funcionais pipeline, funciona de forma a
permitir que, enquanto uma instrução se encontra na
fase de execução, uma outra instrução possa estar na
fase de busca simultaneamente.
ATIVAÇÃO E DESATIVAÇÃO DO SISTEMA
 Toda vez que um computador é ligado, é
necessário que o sistema operacional seja
carregado da memória secundária para a
memória principal. Esse processo, denominado
ativação do sistema (boot), é realizado por um
programa localizado em uma posição específica
do disco (boot block), geralmente o primeiro bloco.
 Na maioria dos sistemas, também existe o
processo de desativação (shutdown). Este
procedimento permite que as aplicações e
componentes do sistema sejam desativados de
forma ordenada, garantindo a integridade do
sistema.
ARQUITETURAS RISC E CISC
 Um processador com arquitetura RISC (Reduced
Instruction Set Computer) se caracteriza por possuir
poucas instruções de máquina, em geral bastante
simples, que são executadas diretamente pelo
hardware. Na sua maioria, estas instruções não
acessam a memória principal, trabalhando
principalmente com registradores que, neste tipo de
processador, se apresentam em grande número. Estas
características, além de ajudarem as instruções serem
executadas em alta velocidade, facilitam a
implementação do pipeline. Como exemplos de
processadores RISC podemos citar o Sparc (SUN), RS-
6000 (IBM), PA-RISC (HP), Alpha AXP (DEC) e
Rx000 (MIPS).
ARQUITETURAS RISC E CISC
 Um processador com arquitetura RISC (Reduced
Instruction Set Computer) se caracteriza por possuir
poucas instruções de máquina, em geral bastante
simples, que são executadas diretamente pelo
hardware. Na sua maioria, estas instruções não
acessam a memória principal, trabalhando
principalmente com registradores que, neste tipo de
processador, se apresentam em grande número. Estas
características, além de ajudarem as instruções serem
executadas em alta velocidade, facilitam a
implementação do pipeline. Como exemplos de
processadores RISC podemos citar o Sparc (SUN), RS-
6000 (IBM), PA-RISC (HP), Alpha AXP (DEC) e
Rx000 (MIPS).
CONCEITOS DE SOFTWARE
SOFTWARE

 São todos os programas utilizados pelos


computadores.
 Conjunto de programas que faz o hardware funcionar e
permite que se obtenha o resultado desejado de seu
processamento.
 Podemos dividir os programas em categorias:
 Sistemas Operacionais;
 Aplicativos;
 Antivírus.
SOFTWARE (SW)

Linux
Exemplos de Sistemas Debian
Operacionais: SuSE
RedHat
Ubuntu
Windows
o Windows 98
o Windows 2000 MacOS
o Windows XP Solaris
FreeBSD
Unix
É um programa que gerencia os demais
aplicativos. Atua como uma interface entre o
usuário e o hardware de um microcomputador.
SOFTWARE (SW)

 Exemplos de Antivírus:
 Avira
 Panda
 Norton
 Avast

São programas com a finalidade


de
desfazer a ação de vírus no
computador.
SOFTWARE (SW)

 Aplicativos
Principais Aplicativos
o Editor de Textos
• Microsoft Word o Navegadores de Internet
• OpenOffice Writer • Internet Explorer
o Planilha Eletrônica • Firefox
• Microsoft Excel • Opera
• OpenOffice Calc • Netscape
o Editor de Apresentações
• Microsoft PowerPoint
• OpenOffice Impress
SOFTWARE (SW)
 Freeware ⇒ Software gratuito de domínio de
uma determinada empresa ou grupo.

 Shareware ⇒ Software de demonstração de


domínio de determinada empresa ou grupo. Estes
softwares exigem a compra após o período de
demonstração.
SOFTWARE (SW)

 GNU ⇒ São softwares livres


 garante aos usuários dele e de seus derivados os
seguintes direitos:

 De copiar
 De alterar

 De conhecer o código fonte


SW
 O software gratuito (freeware), por si só, é um
software que você usa sem precisar pagar. Você não
tem acesso ao seu código-fonte, portanto não pode
alterá-lo ou simplesmente estudá-lo, somente pode
usá-lo, da forma como ele foi disponibilizado. Isso
deixa claro a diferença entre software livre e um
sofware simplesmente gratuito. O software livre
possui tanta importância que se não fosse assim o
Linux não existiria ou ficaria restrito aos muros de
uma universidade. Linus Torvalds, o "pai do Linux",
quando criou o sistema, não quis guardá-lo para si só.
Quis montar um sistema que atendesse às suas
necessidades, mas que também pudesse ser útil para
mais alguém. Fez isso sem saber que estava acabando
de "fundar" uma comunidade: a Comunidade Linux.
 Jo Soares - Software Livre - parte 1
[www.keepvid.com].mp4
 Jo Soares - Software Livre - parte 2
[www.keepvid.com].mp4
 Jo Soares - Software Livre - parte 3
[www.keepvid.com].mp4
 Jo Soares - Software Livre - parte 4
[www.keepvid.com].mp4
SOFTWARE
 O hardware, por si só, não tem a menor utilidade.
Para torná-lo útil, existe um conjunto de
programas, utilizado como interface entre as
necessidades dos usuários e as capacidades do
hardware.
 No decorrer do texto, utilizaremos o termo
utilitário, sempre que desejarmos fazer referência
a softwares relacionados mais diretamente com
serviços do sistema operacional, como
compiladores, linkers e depuradores. Os
softwares desenvolvidos pelos usuários serão
denominados softwares aplicativos, ou apenas
aplicações.
TRADUTOR
 Nos sistemas operacionais antigos, o ato de
programar era bastante complicado, já que os
programas eram desenvolvidos em linguagem de
máquina e carregados diretamente na memória
principal para execução.
 Com o surgimento das primeiras linguagens de
montagem (assembly languages) e das linguagens
de alto nível, o programador deixou de se
preocupar com muitos aspectos pertinentes ao
hardware, como em qual região da memória o
programa deveria ser carregado ou quais
endereços de memória seriam reservados para as
variáveis.
TRADUTOR
 Apesar das inúmeras vantagens proporcionadas
pelas linguagens de montagem e alto nível, os
programas escritos nessas linguagens (programas
–fonte) não estão prontos para serem
diretamente executados pela UCP. Para isso, eles
têm de passar por uma etapa de conversão, onde
toda representação simbólica dos programas é
traduzida para código de máquina. Esta
conversão é realizada por um software
denominado tradutor.
O TRADUTOR, PELO TIPO DE LINGUAGEM DE
PROGRAMAÇÃO UTILIZADA, PODE SER CHAMADO
DE MONTADOR OU COMPILADOR.

 O montador (assembler) é o utilitário


responsável por gerar, a partir de um programa
escrito em linguagem de montagem, um
programa em linguagem de máquina não
executável (módulo-objeto).
 A linguagem de montagem está diretamente
ligada às características da arquitetura do
processador. Em função disto, este tipo de
linguagem é diferente para cada computador,
pois a linguagem de máquina e,
conseqüentemente, a linguagem de montagem
são características específicas do processador.
O TRADUTOR, PELO TIPO DE LINGUAGEM DE
PROGRAMAÇÃO UTILIZADA, PODE SER CHAMADO
DE MONTADOR OU COMPILADOR.

 O compilador é o utilitário responsável por gerar, a


partir de um programa escrito em uma linguagem de
alto nível, um programa em linguagem de máquina
não executável (módulo-objeto).
 As linguagens de alto nível, como Pascal, Fortran,
Cobol, não têm nenhuma relação direta com a
máquina, ficando essa preocupação exclusivamente
com o compilador. Assim, os programas-fonte podem
ser transportados entre computadores de diversos
fabricantes, desde que existam regras de definição
para a linguagem. Isso permite o desenvolvimento de
aplicações independentes do equipamento.
INTERPRETADOR
 O interpretador é considerado um tradutor que
não gera código-objeto. A partir de um programa-
fonte, escrito em linguagem de alto nível, o
interpretador, no momento da execução do
programa, traduz cada instrução e a executa em
seguida.
LINKER
 O linker (ligador) é o utilitário responsável por
gerar, a partir de um ou mais módulos objetos,
um único programa executável. Suas funções
básicas são resolver todas as referências
simbólicas existentes entre os módulos objetos e
reservar memória para a execução do programa.
LOADER
 O loader (carregador) é o utilitário responsável
por colocar fisicamente na memória um programa
para execução.
DEPURADOR
 O depurador (debugger) é o utilitário que permite
ao usuário controlar toda a execução de um
programa a fim de detectar erros na sua
estrutura.
LINGUAGEM DE CONTROLE
 A linguagem de controle (linguagem de comando)
é a forma mais direta de um usuário se
comunicar com o sistema operacional.
 Esses comandos, quando digitados pelos
usuários, são interpretados por um programa
denominado interpretador de comandos ou shell.
O interpretador reconhece a linha de comando,
verifica sua sintaxe, envia mensagens de erro e faz
chamadas a rotinas do sistema. Dessa forma, o
usuário dispõe de uma interface interativa com o
sistema operacional, para realizar tarefas como
acessar um arquivo em disco ou consultar um
diretório.
LINGUAGEM DE MÁQUINA
 A linguagem de máquina de um computador é a
linguagem de programação que o processador
realmente pode entender. Cada processador
possui um conjunto único de instruções de
máquina, definido pelo próprio fabricante.
 Um programa em linguagem de máquina é
totalmente codificado em formato binário, o que
torna o entendimento confuso para o usuário.
MICROPROGRAMAÇÃO
 Os microprogramas definem a linguagem de
máquina de cada computador.