Escolar Documentos
Profissional Documentos
Cultura Documentos
OPERACIONAIS
Introdução
Os computadores estão presentes em quase todas as atividades humanas
e são utilizados para resolver problemas e facilitar a execução de tarefas
que, sem eles, poderiam consumir várias horas. No entanto, nem sempre
esses computadores estão visíveis para os seus usuários, mesmo que suas
vidas sejam afetadas diretamente por sua presença.
Para os profissionais da área de TI, é necessário entender como esses
computadores funcionam, mesmo que em alto nível. É importante com-
preender quais são os principais componentes de hardware e software
que fazem com que essas máquinas realizem suas tarefas e como esses
componentes interagem.
Neste capítulo, você revisará as definições de hardware e software,
compreendendo o papel de cada um deles em um computador.
O sistema operacional é um software responsável por gerenciar todo o
hardware e outros software em execução no computador e, por isso, é
necessário identificar as diferenças entre eles.
2 Revisão de hardware e software
1 Hardware e software
Computadores modernos funcionam a partir da interação entre componentes
de hardware e software. O hardware é a parte tangível do computador, ou seja,
aquela que você pode ver e tocar diretamente (O’BRIEN; MARAKAS, 2012).
São exemplos de hardware o processador, os discos rígidos (Hard Disk - HDs)
e os discos de estado sólido (solid state drive [SSD]), a placa mãe, a memória
RAM, a placa de vídeo, o mouse, o teclado, o monitor, entre outras peças.
O software, por sua vez, é composto pelas instruções e pelos dados ne-
cessários para a execução dos programas no computador (O’BRIEN; MA-
RAKAS, 2012). Software, portanto, é intangível, ou seja, não é possível tocá-lo.
O software é armazenado em hardware como discos, executado no proces-
sador, e suas instruções e seus dados, geralmente, são mantidos na memória
RAM durante a sua execução, interagindo com o mundo externo (usuários
ou outros sistemas) por meio de dispositivos de entrada e saída como mouse,
teclado ou placas de rede. O próprio sistema operacional é um software, assim
como browsers, editores de texto e outros programas. Bibliotecas usadas na
construção de outros programas (como dynamic link libraries [DLLs], gems
de Ruby, módulos de Python, entre outros) também são software.
https://qrgo.page.link/1DZNv
2 Componentes de hardware
Um computador criado a partir da arquitetura de von Neumann possuirá,
pelo menos, processador (com unidade de controle e ALU), memória RAM
e algum dispositivo de entrada e saída.
Processador
A função de um processador é interpretar as instruções de um programa e
executá-las (NULL; LOBUR, 2011). Para isso, o processador possui três princi-
pais componentes: a unidade lógico-aritmética, que efetua cálculos e operações
de lógica; a unidade de controle, que garante o fluxo dos dados e operações
dentro do processador; e os registradores, que são pequenas e rápidas memórias
dentro do processador. Um processador terá vários registradores, alguns deles
usados para funções específicas, como o registrador de instruções (instruction
register [IR]), usado para manter a instrução que está sendo executada dentro
do processador em um dado instante, e o já mencionado contador de programa.
Outros registradores do processador, no entanto, são de propósito geral, e estão
disponíveis para que programadores armazenem dados e recuperem valores. Por
meio da atribuição e leitura dos valores presentes nos registradores, os dados são
repassados para que o processador efetue seus cálculos e gere suas respostas.
Memória principal
Para que um computador com base na arquitetura de von Neumann fun-
cione, é necessária a existência de uma memória muito rápida, para que o
processador não tenha que perder muitos ciclos de processamento enquanto
aguarda a leitura ou escrita de dados essenciais para a execução do programa.
A memória principal cumpre essa função de armazenar as instruções e os
dados necessários para que um programa seja executado no computador
(NULL; LOBUR, 2011).
De modo geral, a memória RAM está relacionada à memória principal
de computadores modernos. Idealmente, os dados e instruções de todos os
programas em execução estão na memória RAM do computador. Quando
não há memória RAM suficiente para isso, o sistema operacional usa parte
da memória secundária como uma extensão da RAM, levando os dados para
a memória principal quando o processador precisa deles, o que diminui de
modo considerável a performance do sistema.
Mesmo bastante rápida, a memória RAM ainda apresenta um atraso de
alguns ciclos para responder requisições do processador. Para aumentar a
performance, é comum o uso de memórias cache, que são ainda mais rápi-
das (estão localizadas muito próximas ou mesmo dentro do processador) e,
automaticamente, mantêm os dados mais usados pelo processador (ou com
maior chance de serem usados em breve), diminuindo o tempo de resposta
(TANENBAUM; AUSTIN, 2013).
Memória secundária
Armazenar dados (e permitir sua leitura em um momento posterior) é uma
função que acompanha computadores desde o início de sua história. A memória
secundária cumpre o papel de armazenar os dados de forma durável, mesmo
quando o computador está desligado, possibilitando ao sistema efetuar a leitura
desses dados quando necessário.
A maioria dos hardware de memória secundária é muito mais lenta do que
a memória RAM. Mesmo SSDs, que são muito mais rápidos que HDs, ainda
são uma ordem de grandeza mais lentos do que a memória principal. O Quadro
1 traz valores aproximados do tempo de acesso e da capacidade aproximada
de vários tipos de memória disponíveis no computador.
Tempo de Capacidade
acesso Tipo Categoria média Preço/GB
3 Tipos de software
O hardware de computadores de uso geral é projetado para executar qualquer
tipo de operação. Para que isso aconteça, é necessário que exista software no
computador, definindo as instruções para que esse hardware faça seu trabalho
Revisão de hardware e software 11
Software de sistema
O’Brien e Marakas (2012) definem como software de sistema programas cujo
objetivo é gerenciar o próprio computador e as atividades que são necessárias
para o processamento de informações. Os principais exemplos dessa categoria
são os sistemas operacionais, cujo objetivo principal é justamente garantir
o funcionamento ordenado do computador como um todo. Logo, o Microsoft
Windows ou distribuições Linux como o Ubuntu são software de sistema.
Também fazem parte dessa categoria drivers e outros programas que auxiliam
o sistema operacional a controlar e gerenciar o funcionamento de dispositivos
do computador, como gerenciadores de redes.
É comum também incluir como software de sistema os programas que
dão suporte a programadores em atividades de desenvolvimento de software.
Compiladores, que traduzem o código-fonte produzido pelos desenvolvedores
para código executável, geralmente, em alguma linguagem de montagem, e
ambientes de desenvolvimento integrados (IDEs), os editores utilizados por
programadores para escrever, depurar e construir software, podem, portanto,
ser classificados nessa categoria.
Além disso, os software usados como suporte para a execução de outros
programas também são Software de sistema. Dessa forma, também fazem
parte dessa categoria os sistemas de gerenciamento de banco de dados
(SGBDs), como o Oracle ou Microsoft SQL Server, os servidores de aplica-
ção web, como o Apache HTTP Server ou o Microsoft IIS, e os ambientes
de execução de aplicações gerenciadas, como o .NET Framework ou a Java
Virtual Machine (JVM). Características comuns à maioria dos software de
sistema são:
Software de aplicação
Os software de sistema são essenciais para o funcionamento do computador,
pois, sem eles, não seria viável usar as máquinas para funções realmente úteis.
No entanto, com exceção de profissionais da área de TI, a maioria dos usuários
precisa de computadores para resolver problemas cotidianos, não envolvidos
com a operação do computador em si.
Software de aplicação é a categoria na qual podemos colocar a maioria dos
programas que os usuários finais necessitam (O’BRIEN; MARAKAS, 2012).
Software como editores de texto, planilhas eletrônicas, editores de imagem,
vídeo e som, browsers e jogos, por exemplo, são programas que fazem parte
dessa categoria. Em computadores portáteis, como smartphones, a maioria dos
programas com os quais os usuários têm contato (popularmente conhecidos
como apps) é software de aplicação, pois esse tipo de sistema, de modo geral,
tenta abstrair ao máximo os conceitos computacionais que fazem com que o
dispositivo funcione.
De forma proporcional, há uma quantidade maior de desenvolvedores de
software trabalhando na criação e manutenção de programas dessa categoria
em comparação com os que trabalham com software de sistema. Isso é um
reflexo da grande diversidade de problemas que podem ser resolvidos com
o uso de computadores, e os programas que resolvem esses problemas são
software de aplicação.
Os software de aplicação, geralmente, são construídos em linguagens
de alto nível, inclusive, aquelas que utilizam ambientes de execução como
a Java Virtual Machine, .NET Framework, .NET Core ou Python. Esse tipo
de linguagem combinada com um ambiente de execução é, na maioria dos
casos, mais simples de aprender e dominar, evitando, por meio de mecanismos
internos, alguns problemas de desenvolvimento comuns em linguagens de
nível mais baixo.
Revisão de hardware e software 13
INTEL. Intel 64 and IA-32 architectures optimization reference manual. [S. l.: s. n.], 2019.
Disponível em: https://software.intel.com/sites/default/files/managed/9e/bc/64-
-ia-32-architectures-optimization-manual.pdf?countrylabel=Colombia. Acesso em:
24 jan. 2020.
NULL, L.; LOBUR, J. Princípios básicos de arquitetura e organização de computadores.
2. ed. Porto Alegre: Bookman, 2011.
O’BRIEN, J. A.; MARAKAS, G. M. Administração de sistemas de informação. 15. ed. Porto
Alegre: AMGH, 2012.
RUBY. Bibliotecas. Ruby, [s. l.], [201–?]. Disponível em: https://www.ruby-lang.org/pt/
libraries/. Acesso em: 24 jan. 2020.
TANENBAUM, A. S.; AUSTIN, T. Organização estruturada de computadores. 6. ed. São
Paulo: Pearson Prentice Hall, 2013.
WEBER, R. F. Fundamentos de arquitetura de computadores. 4. ed. Porto Alegre: Book-
man, 2012.
Os links para sites da web fornecidos neste capítulo foram todos testados, e seu fun-
cionamento foi comprovado no momento da publicação do material. No entanto, a
rede é extremamente dinâmica; suas páginas estão constantemente mudando de
local e conteúdo. Assim, os editores declaram não ter qualquer responsabilidade
sobre qualidade, precisão ou integralidade das informações referidas em tais links.