Buscar

Apostila Fundamentos Computacionais

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 71 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 71 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 71 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

FUNDAMENTOS COMPUTACIONAIS
Stéfani Valmini
2FUNDAMENTOS COMPUTACIONAIS
UM POUCO DE HISTÓRIA 4
Evolução do Computador 5
Conceitos Básicos de Sistemas 11
Microprocessadores 20
CISC x RISC 23
SISTEMAS OPERACIONAIS 27
Estrutura de um Sistema Operacional 28
Tipos de Sistemas Operacionais 29
Sistemas Numéricos e Representação de Dados 31
Aritmética Não Decimal 36
Representação em Tamanho Fixo 38
Representação Números Negativos 38
LINGUAGENS E ORGANIZAÇÃO DA INFORMAÇÃO 42
Linguagens de Programação 43
Estrutura e Organização da Informação 47
Banco de Dados 50
PLANEJAMENTO ESTRATÉGICO DA TI 54
Engenharia de Software 55
Conectividade 62
Características dos sistemas abertos 63
Softwares Clientes 63
Softwares Servidores 64
Software de Redes 64
Arquitetura dos sistemas abertos 67
SUMÁRIO
CENTRO UNIVERSITÁRIO UNIFTEC
Rua Gustavo Ramos Sehbe n.º 107. 
Caxias do Sul/ RS 
REITOR
Claudino José Meneguzzi Júnior
PRÓ-REITORA ACADÊMICA
Débora Frizzo
PRÓ-REITOR ADMINISTRATIVO
Altair Ruzzarin
DIRETORA DE EDUCAÇÃO A DISTÂNCIA (NEAD)
Lígia Futterleib
Desenvolvido pelo Núcleo de Educação a 
Distância (NEAD)
Designer Instrucional 
Sabrina Maciel
Diagramação, Ilustração e Alteração de Imagem
Igor Zattera, Sabrina Maciel 
Revisora
Carmem Maura Vaccari
3FUNDAMENTOS COMPUTACIONAIS
Introdução
A nossa disciplina de Fundamentos 
Computacionais, como o nome mesmo 
diz, é uma base, um alicerce para todas as 
demais disciplinas. Nela estudaremos des-
de os conceitos mais básicos de hardware, 
software até as linguagens de programação, 
assuntos que se referem a legislação, banco 
de dados entre outros.
Nosso conteúdo está dividido em 
quatro grandes capítulos de estudo. O pri-
meiro refere-se a “Introdução aos sistemas 
e elementos básicos”, o segundo a “Sistemas 
Numéricos e Representação de Dados”, o 
terceiro a área das “Linguagens de Progra-
mação e Planejamento da TI”, e, por último 
a “Conectividade e Aspectos Legais”.
Ao final desta disciplina vocês serão 
capazes de identificar as oportunidades 
de negócios por meio da utilização dos 
recursos computacionais básicos, propor 
melhorias no ambiente de uso de sistemas 
computacionais, além de identificar as di-
ferentes aplicações do computador dentro 
da sociedade.
4FUNDAMENTOS COMPUTACIONAIS
UM POUCO DE 
HISTÓRIA
Conhecendo a evolução dos computadores
O que você entende por computação? Como você clas-
sificaria os elementos de software, hardware e peopleware? Já 
ouviu falar nestes termos? Mas não consegue explicar? Sabe 
qual a função dos sistemas operacionais? São muitas as per-
guntas referentes a essa área. Portanto, essas, e tantas outras 
perguntas iremos responder e discutir neste primeiro capítulo.
Como ponto de partida iremos voltar no tempo para 
conhecer e entender todas as evoluções que já ocorreram na 
computação. Serão apresentados os principais inventos que 
levaram ao surgimento dos computadores que conhecemos hoje.
 Em toda a história, o principal objetivo era a automação 
do cálculo. Como já se sabe um sistema computacional, que, em 
seu aspecto mais elementar, é apenas uma máquina que realiza 
operações lógicas e aritméticas. Também serão apresentados os 
principais componentes de software, hardware e peopleware 
que formam um sistema computacional.
5FUNDAMENTOS COMPUTACIONAIS
Evolução do Computador
De acordo com a história tradicional, 
a computação evoluiu muito e em um curto 
período de tempo.
Será que, realmente, os fatos acon-
teceram de tal forma? Pensando bem, a 
verdadeira história não aconteceu tão rápido 
assim. Foram necessárias inúmeras e gradu-
ais invenções e evoluções para chegarmos 
até as atuais tecnologias. Pense um pouco 
em quais foram essas invenções para chegar 
a uma conclusão plausível. 
Para entender o nosso momento 
tecnológico atual, precisamos conhecer a 
história da computação e os fatos relevantes 
que contribuíram para que chegássemos 
até aqui.
Em um passado muito distante, se 
contavam os objetos, os animais, etc., atra-
vés de pedras ou de riscos que, conforme 
registros comprovam, eram feitos nas pare-
des das cavernas. Vejamos que desde cedo a 
matemática já se fazia parte do processo, e o 
calcular sempre foi uma atividade presente 
na humanidade.
Evolução do Computador
Fo
nt
e:
 A
ut
or
O homem sempre tentou 
desenvolver meios que facilitassem o 
processamento dos dados.
A aritmética, assim como 
ler ou escrever, era uma 
habilidade que auxiliava 
o homem a interpretar 
o mundo (mundo com 
numeração binária fazendo 
referência a esta afirmação)
6FUNDAMENTOS COMPUTACIONAIS
A ferramenta de calcular mais antiga, que se tem conhecimento é o Ábaco. Ele 
foi inventado pelos chineses por volta de 2000 a.C. e lá recebeu o nome de Suanpan, 
no Japão é conhecido como Soroban.
2000 a.C
É inventado o ábaco pelos chineses.
1617
Jhon Napier inventou a tabela de 
logaritmos.
1621 
William Oughtred inventou a 
régua de cálculo.
1642/1647
O matemático francês Blaise 
Pascal apresenta sua máquina de 
calcular mecânica.
7FUNDAMENTOS COMPUTACIONAIS
1801
Tear automatizado com o invento de 
Jacquard.
1820
Arithmometer a primeira máquina de 
calcular comercial.
1822
Calculadora analítica de Babbage.
1880
Primeira máquina de 
processamento de dados criada 
por Hollerith.
1924
Máquina de calcular produzida 
por Burroughs Company.
8FUNDAMENTOS COMPUTACIONAIS
Em 1950 John Von Neuman, Ar-
thur Burks e Herman Goldstine criam 
a lógica dos circuitos digitais, conceito de 
programação por números binários. Surge 
em 1951 o UNIVAC I, primeiro compu-
tador comercial baseado nos conceitos de 
Neumann.
John Von Neumann, matemático na-
tural da Hungria, viveu a maior parte de sua 
vida nos Estados Unidos. Suas contribui-
ções forma muito significativas e perduram 
até os dias atuais, sendo que a principal 
delas, a construção de um computador se-
quencial binário de programa armazenado. 
Podemos dizer que ele propôs os elementos 
críticos de um sistema computacional, de-
nominado de Modelo de Von Neumann. 
A arquitetura de computador proposta por 
esse modelo é composta basicamente por 
(TANENBAUM, 2007):
a. uma memória física (para armaze-
nar programas e dados – represen-
tados por 0’s e 1’s); 
b. uma Unidade Aritmética e Lógica 
(ULA), cuja função é executar ope-
rações indicadas pelas instruções 
de um programa. Seu trabalho é 
apoiado por diversos registradores 
(ex.: acumulador); 
c. uma Unidade de Controle (UC), 
cuja função é buscar um programa 
na memória, instrução por instru-
ção, e executá-lo sobre os dados de 
entrada (que também se encontram 
na memória); 
d. equipamento de entrada e saída. 
A Figura abaixo apresenta os com-
ponentes da arquitetura de Von Neumann 
descritos acima:
Na década de 50, a IBM lança o IBM 
701 e 650, tornando-se o maior sucesso de 
vendas da década. A partir de 1959 sur-
gem os transístores, em seguida, os circui-
tos integrados que popularizou o uso dos 
computadores. 
Na década de 70, a Intel lança mi-
croprocessadores com arquitetura interna 
1946
Nasce o ENIAC.
Arquitetura de Von Neumann
Fo
nt
e:
 A
da
pt
ad
a 
de
 T
an
en
ba
um
 (2
00
7)
9FUNDAMENTOS COMPUTACIONAIS
e barramento de 4 bits, 8 bits e de 16 bits. 
Em 1982 surge o microprocessador 8083 
com capacidade de endereçar a memória 
até 16 MB. 
Em 1985 a Intel lança seu proces-
sador 80386, com arquitetura interna e 
barramento de dados de 32 bits, capaz de 
endereçar até 4GB de memória. Já, em 1989 
Surge o processador i486, com arquitetura 
interna e barramento de dados de 32 bits 
e coprocessador integrado à CPU.
Nos anos 1993 Intel lança primeiro 
processador da família Pentium, cuja ca-
pacidade de processamento (MIPS) era 7 
vezes maior que o i486, e, a capacidade de 
endereçamento de memória 16 vezes maior 
que o seu antecessor.
A Intel lança a família de micro-
processadores 80686, em 1997, a qual fica 
conhecida como Pentium II, cujo poder 
de processamento era de 300 MIPS. E, em 
2000,é lançado o último processador desta 
família, conhecido como Pentium 4, com 
poder de processamento de 15000 MIPS.
No ano seguinte, nasce o Itanium, 
processador da família 80786, com barra-
mento de 64 bits e poder de processamento 
de 2.500 MIPS. E em 2007, a Intel lança 
a família de processadores 80968, em que 
o poder de processamento é de 125.000 
MIPS.
Evolução do Software
Você sabe como surgiu o conceito de 
software? Porque o software e o hardware 
não existem sem um ao outro? Conhece a 
evolução dos software?
O conceito de software surgiu em 
decorrência da necessidade de se programar 
o hardware, de colocar inteligência dentro 
das máquinas eletrônicas que estavam evo-
luindo há décadas. Mas, o que nem todos 
sabem, é que as origens dos softwares sur-
giram muito antes do conceito de compu-
tador moderno.
Vejamos na imagem a seguir, uma 
breve linha do tempo que descreve esta 
evolução do software.
Surge o conceito de 
Álgebra Booleana.1847
O matemático John 
Von Neumann introduz 
o conceito de lógica 
binária.
1945
Primeira geração de 
linguagens de máquina.1945
Segunda geração de 
linguagens de máquina: 
Linguagem Assembler 
ou de Montagem.
1955
10FUNDAMENTOS COMPUTACIONAIS
Surge o Fortran 
(FORmula TRANslation), 
3º geração de 
linguagem de 
máquina. Usada 
no meio científico, 
especialmente nas 
Ciências da Computação 
e Análise Numérica.
1958
Surge a linguagem 
ALGOL.1960
Surge o BASIC, software 
de programação 
muito utilizado nos 
microcomputadores.
1963
Nasce a linguagem 
PASCAL.1968
Ken Thompson cria a 
linguagem B, usada 
para implementar o 
sistema UNIX.
1970
Dennis Ritchie cria a 
primeira versão da 
linguagem C.
1972
Surge o sistema 
operacional CP/M 
(Control Program for 
Microcomputers) da 
Digital Research.
1975
Início das linguagens de 
quarta geração 4GL.1975
Surge a linguagem 
SmallTalk no centro 
de pesquisas da Xerox. 
Primeira linguagem 
100% orientada a 
objetos.
1975
Surge a linguagem Ada, 
jundão entre Fortran e 
Pascal.
1978
Surge o MS-DOS, 
sistema operacional 
para PC e compatíveis.
1980
Leslie Lamport cria a 
primeira linguagem 
para texto conhecida 
como Latex.
1980
Surge o MS Word, 
processador de textos 
da Microsoft.
1982
11FUNDAMENTOS COMPUTACIONAIS
Surge o Windows, como 
Sistema Operacional.1985
Unix firma-se no 
mercado como sistema 
multiusuário.
1990
Linus Torvalds 
anunciou a primeira 
versão oficial do kernel 
Linux.
1991
Nos laboratórios da Sun 
Microsystems nasce 
a linguagem Java. A 
primeira linguagem 
orientada a objetos e 
com a proposta de ser 
totalmente portável.
1991
É lançada a linguagem 
Python por Guido Van 
Rossum, linguagem de 
alto nível.
1991
Windows 3.1 e 3.11 
com características de 
integração em rede.1992
Windows NT surge e 
disputa mercado com 
sistemas da Novell.
1993
Surgem linguagens 
visuais como Visual 
Basic, Visual C++ e 
Delphi Fazer um smart 
art para ficar mais visual 
esta evolução.
1995
Conceitos Básicos de Sistemas
A definição clássica para sistema é 
uma disposição de partes ou dos elemen-
tos de um todo, coordenados entre si, e 
que funcionam como estrutura organizada 
realizando uma determinada tarefa. Todo 
o sistema necessita de uma entrada, uma 
área de processamento e gera uma saída.
Sob o ponto de vista computacional 
todo o sistema possui entradas, processa-
mento e saídas. Pode-se dividir um sistema 
computacional em três partes como descrito 
a seguir: hardware, software e peopleware.
Hardware
Hardware, todo dispositivo físico 
conectado a um sistema computacional é 
responsável por organizar e movimentar as 
informações para dentro do sistema, pro-
cessá-las e por exteriorizar os resultados. 
As entradas e saídas em um sistema com-
putacional são feitas através de hardwares 
específicos conhecidos como periféricos. 
Estes dispositivos podem ser divididos em:
12FUNDAMENTOS COMPUTACIONAIS
• Periféricos de entrada: São res-
ponsáveis por introduzir dados e/
ou comandos ao processador. Mou-
ses, scanners, câmeras, teclados e 
telas touchscreen são exemplos de 
dispositivos de entrada.
• Periféricos de saída: São os respon-
sáveis por mostrar aos usuários os 
resultados do processamento rea-
lizado pelo sistema. Exemplos: 
vídeos, placas de som, impressoras 
e monitor.
• Periféricos de entrada e saída: São 
responsáveis por facilitar o trânsito 
de informações entre diferentes par-
tes de um sistema. Placa de redes, 
memórias, discos-rígidos, drivers de 
CD’s e/ou DVD’s, pendrives, telas 
touchscreen e impressoras multifun-
cionais são exemplos de dispositi-
vos que possibilitam tanto a entrada 
quanto a saída de dados no sistema. 
Estes dispositivos podem ser dividi-
dos em duas categorias, dependendo 
do modo como são armazenados ou 
trafegam os dados por ele.
Dispositivos de bloco, são aqueles 
que armazenam as informações em blocos e 
sua principal característica é a persistência 
dos dados, ou seja, os dados continua-
ram presentes mesmo que o sistema esteja 
desligado. Discos rígidos, Drivers de CD, 
flash-memories, são dispositivos de bloco.
Dispositivos de caracteres são aque-
les cujos dados que passam por eles não são 
persistentes e transmitem ou recebem os 
dados de forma serial. Por exemplo: por-
tas seriais, placas de redes, placas de redes 
wireless.
A Unidade Central de Processamen-
to (UCP) é o principal hardware de um 
sistema computacional, o qual possui duas 
funções principais que são a de controlar 
os dispositivos de entrada e saídas, e o de 
processar as informações e mostrar os re-
sultados de seu processamento.
A UCP é o cérebro do sistema com-
putacional e consegue processar as infor-
mações em altíssima velocidade devido a 
somente operar sobre zeros e uns, ou seja, a 
UCP só é capaz de somar ou comparar estes 
13FUNDAMENTOS COMPUTACIONAIS
valores. Outros dispositivos são adiciona-
dos a UCP para garantir a performance 
do sistema tal como é mostrado na figura.
A ULA, Unidade Lógica Aritmética, 
integra a UCP e é responsável por todas 
as operações aritméticas e lógicas durante 
a execução do sistema. A ULA é uma 
calculadora que realiza operações de soma 
e operações lógicas como and, or, xor, etc... 
A ULA em conjunto com os registradores e 
acumuladores são os elementos responsáveis 
pelo processamento.
A UC, Unidade de Controle, é a parte 
da UCP responsável por enviar os sinais 
necessários aos outros elementos, a fim de 
tornar possível o envio e recebimento dos 
dados entre eles. A UC ordena a execução 
do processamento e executa o microcódigo 
pertencente aquela família de processador. 
A execução de uma instrução consiste em 
buscá-la na memória principal, decodi-
ficá-la, processá-la e colocar o resultado, 
novamente, na memória. Além disso, a 
UC controla as interrupções recebidas ou 
enviadas para os dispositivos de entrada e 
saída.
A Memória é um dispositivo de alta 
velocidade, usada para armazenar dados que 
serão processados pela UCP. O controle 
da memória é feito pela UCP. A memória 
está dividida em duas partes, a memória 
principal e a memória auxiliar.
A BIOS (Basic Input Output Sys-
tem) é uma rotina de inicialização, arma-
zenada em uma memória ROM, que per-
mite ao computador carregar seu sistema 
operacional armazenado no HD para 
a memória. Outras tarefas necessárias 
na inicialização do computador, também, 
é realizada pela BIOS, como por exemplo, 
o teste de checagem de energia ou POST 
(Power On Self Test).
Sem as memórias seria impossível 
uma UCP executar um programa. Um pro-
grama deve estar na memória principal 
para ser executado, preferencialmente em 
memórias voláteis. O armazenamento do 
programa em memórias não voláteis ser-
ve para garantir a persistência dos dados 
quando há desligamento do sistema. A 
seguir, uma breve descrição de cada tipo 
de memória que compõe um computador.
Memória Principal: Nela existem 
dois tipos de memória principal. Uma delas 
volátil, conhecida como RAM (RandomAccess Memory) e outra não volátil, co-
nhecida como ROM, que mantém os da-
dos mesmo com o computador desligado. 
Esta última é usada para fins específicos 
do sistema.
Memória Auxiliar: Também conhe-
cida como memória secundária é composta 
pelos dispositivos de entrada e saída como 
o disco rígido.
Existem diferentes tipos de memó-
rias voláteis e não voláteis. 
UCP e seus periféricos
Fonte: MONTEIRO (2001)
14FUNDAMENTOS COMPUTACIONAIS
A Hierarquia das memórias, segundo 
Tanenbaum (2007):
Á medida que descemos na hierar-
quia, três parâmetros aumentam. Primeiro, 
o tempo de acesso fica maior. Os registra-
dores da CPU podem ser acessados em um 
nanossegundo ou menos. Memórias cache 
demoram um pequeno múltiplo dos registra-
dores da CPU. Acessos a memória principal 
normalmente levam 10 nanossegundos... 
Acessos a fitas ou discos podem ser medidos 
em segundos se a mídia tiver de ser buscada 
e inserido no drive.
Nome Descrição Tipo
RAM Random Acces Memory- Memória de Acesso Randômico Volátil
DRAM Dynamic RAM - É a memória convencional Volátil
SDRAM Syncrhunous Dynamic Random Access Memory Volátil
SRAM Static RAM - Memória RAM usada para cache de alta velocidade Volátil
ROM Read Only Memory - Memória apenas para leitura Não Volátil
PROM Programmable Read Only Memory Não Volátil
EPROM Erasable Programmable Read Only Memory Não Volátil
EEPROM Electrically Erasable Programmable Read Only Memory Não Volátil
UCP e seus periféricos
Fonte: Tanem
baum
(2007)
15FUNDAMENTOS COMPUTACIONAIS
Hierarquia das memórias
16FUNDAMENTOS COMPUTACIONAIS
Software
Software é todo e qualquer programa 
processado por um computador. Serve 
para resolver algum problema ou automa-
tizar atividades repetitivas. Podemos citar 
como exemplo os sistemas integrados de 
gestão ou SIG’s, são exemplos de softwares 
desenvolvidos para automatizar atividades 
de uma empresa, softwares CAD’s (Com-
puter-Aided Design - Desenho auxiliado 
por computador ) e CAM’s (Computer-
-Aided Manufac- turing ), que automa-
tizam tarefas mais específicas, sistemas 
operacionais, editores de texto, sistemas 
de gerenciamento de banco de dados ou 
SGBD’s, dentre outros. Os softwares em 
um computador estão dispostos em cama-
das para agrupá-los por finalidades, como 
mostra na figura. Para cada tipo de software 
haverá um tipo de profissional associado 
a ele.
Se o hardware, ou mais especifica-
mente a UCP, é o cérebro de um sistema 
computacional, o software é a inteligência, 
a alma. O software é a representação da 
solução ou as regras para encontrar a so-
Exemplo de como os softwares estão organizados em um computador
17FUNDAMENTOS COMPUTACIONAIS
lução de determinados problemas. Sua implementação, em geral, segue regras claras e 
fazem uso de diferentes metodologias e ferramentas de programação, dependendo do 
problema abordado.
Dados versus Informação 
Fonte: Autor
Os softwares, em um sistema computacional, executam tarefas baseados nos 
dados de entrada do sistema. Estes dados são interpretados e resultam em alguma 
informação relevante ao usuário. Portanto, dado é um elemento na sua forma bruta, 
que se for analisado isoladamente, não fornece nenhuma compreensão sobre um fato.
Por exemplo se olhar isoladamente o número 22, ele não nos fornece nenhuma 
compreensão, porém se este número estiver num contexto por exemplo de idades das 
pessoas, ou quantidades de algo, isso já será uma informação. 
Outro exemplo da diferença entre dado e informação pode ser dado através 
da experiência que a empresa Walmart realizou cruzando informações de vendas, de 
cervejas e de fraldas descartáveis. Toda a venda é registrada no sistema da empresa e, 
olhando isoladamente as vendas de cervejas e fraldas não é possível compreender alguma 
relação entre elas. Como uma estratégia de vendas, a empresa Walmart queria verificar 
a hipótese de que o perfil dos consumidores de cerveja e de fraldas descartáveis eram 
semelhantes. Usando técnicas de Data Mining, a empresa verificou esta hipótese através 
do cruzamento dos dados de vendas de cervejas e fraldas descartáveis, concluindo que 
estes consumidores eram homens casados, entre 25 e 30 anos, que compravam cer-
vejas e fraldas às sextas-feiras, no caminho 
do trabalho para casa. Com base nesta 
informação, a Walmart decidiu organizar 
as gôndolas de fraldas próximas às de cer-
veja, obtendo um aumento de vendas nas 
sextas-feiras de 30%.
Portanto, em um banco de dados, 
como mostra a imagem, o que está 
armazenado nele são elementos brutos, sem 
nenhuma relação entre si. Ao agrupá-los 
de tal maneira que forneça algo relevante 
a quem os observa, isto torna-se uma 
INFORMAÇÃO.
Tratamento dos dados
Fonte: Autor
18FUNDAMENTOS COMPUTACIONAIS
Processar dados é o principal objetivo 
de um sistema computacional. Existem 
dois tipos de processamento em um sistema 
de computador.
Processamento em Lote: Também 
conhecido como Processamento Batch e é 
caracterizado pela execução de uma série 
de programas, um após o outro, sem a 
intervenção do usuário. Este tipo de pro-
cessamento foi muito utilizado na década 
de 50, nos centros de processamento de 
dados. Hoje em dia ele não é mais utili-
zado, mais por uma questões de ambientes 
de processamento, do que da sua aplicação 
em si. 
Processamento On-Line: É aquele 
caracterizado pela interação entre usuário 
e software durante a execução de suas tare-
fas. Pode ser chamado de processamento 
em tempo-real, pois geralmente está orga-
nizado de tal maneira a poder executar suas 
tarefas a uma velocidade igual ou superior 
à velocidade com que os eventos externos 
ocorrem. Um exemplo deste tipo de pro-
cessamento pode ser visto nos softwares 
de gestão das empresas, onde o evento de 
venda ou a produção de um determinado 
produto, automaticamente atualiza o es-
toque.
Os ambientes de processamento 
evoluíram juntamente com a evolução do 
Hardware. O software responsável por 
fornecer o tipo de ambiente adequado ao 
processamento é o Sistema Operacional. 
A medida que os processadores foram au-
mentando sua capacidade de processamen-
to, novas necessidades de usuários foram 
surgindo e isto impulsionou os cientistas 
da computação a desenvolverem novos 
sistemas operacionais para atendar essas no-
vas necessidades. Ao longo da história dos 
computadores quatro tipos de ambientes 
de processamento surgiram: Monotarefa, 
Multitarefa, Multiprogramação e Multi-
processamento.
No ambiente monotarefa, somen-
te, uma tarefa por vez pode ser executa-
da. Este ambiente é o que se aproxima do 
processamento Batch, pois ao executar um 
determinado programa, o usuário deveria 
aguardar seu término para poder executar 
outras tarefas. Um exemplo deste ambiente 
é o sistema operacional DOS. 
O ambiente multitarefa é caracteri-
zado pela concorrência entre processos, ou 
seja, ele executa mais de uma tarefa desde 
que os programas sejam escritos para esta 
atividade. Por exemplo, poder enviar dois 
arquivos, simultaneamente, à impressora 
sem que haja impressão intercalada dos 
mesmos. 
No ambiente de multiprograma-
ção, diferentes programas podem ter seu 
processamento realizado em um mesmo 
computador, compartilhando recursos do 
sistema. Desta forma, dois processos po-
dem alocar um mesmo recurso, em que 
irão utilizar conforme uma determinada 
priorização e ordem. A diferente entre o 
ambiente anterior e o multiprogramação 
é apenas teórica. Neste tipo de ambiente 
surgiu o conceito de compartilhamento 
de tempo ou timesharing, onde o sistema 
operacional organiza a execução de cada 
processo, garantindo que cada processo 
use os recursos necessários, principalmente 
a UCP, em um determinado momento e 
com determinada duração.
19FUNDAMENTOS COMPUTACIONAIS
O ambiente multiprocessador sig-
nifica mais de uma UCP disponível para 
executar os programas. Neste ambiente, 
várias UCP’s executam as solicitações dos 
programas, porém não basta adicionar mais 
processadores para garantir um maiorpoder 
computacional. É necessário que os sof-
twares estejam preparados para dividir suas 
tarefas entre os processadores disponíveis. 
Tanto os sistemas operacionais precisam 
estar preparados para dividir suas tarefas, 
quanto os softwares aplicativos, também, 
precisam ser capazes de perceber a existên-
cia de mais de um processador. Essa ideia 
também é aplicada à processadores com 
mais de um núcleo.
Peopleware
A constante evolução do hardware e 
software ocasiona um grande desconforto 
aos usuários destes ambientes. Um sistema 
computacional não sobrevive e nem mesmo 
nasce sem a intervenção das pessoas, seja 
como usuários ou como desenvolvedores e, a 
estas pessoas, denominam-se de peopleware.
20FUNDAMENTOS COMPUTACIONAIS
O ambiente peopleware é tão com-
plexo quanto os softwares e hardwares exis-
tentes atualmente. Esta complexidade deve-
-se ao fato de estarem envolvidos conceitos 
que não são totalmente explícitos tais como: 
valores culturais e organizacionais, crenças, 
políticas, aspectos comportamentais e so-
cioeconômicos, estruturas organizacionais, 
dentre outros.
Para os profissionais que desenvol-
vem ou mantém os sistemas computacio-
nais é preciso conhecer os aspectos que 
estão indiretamente envolvidos na sua 
utilização, e estar atentos as habilidades e 
competências que devem ser desenvolvidas 
para se manterem sempre atualizados.
Microprocessadores
Os microprocessadores, como vimos 
anteriormente, são os principais componen-
tes de um computador. São eles que con-
trolam os dispositivos, ordenam a execução 
das instruções, isto é, os programas. Enfim, 
tudo o que acontece em um computador é 
feito pela CPU.
A companhia Intel, em 1971, lan-
çou o seu primeiro microprocessador, o 
4004, cuja frequência de operação era de 
0, 1 MHz, barramento de endereços de 
4 bits, acomodava 2.300 transístores e era 
capaz de processar 0,06 MIPS. Uma dé-
cada depois, em 1982, a Intel lançou seu 
processador 80286, com poder de processa-
mento quinze vezes maior, barramento de 
endereços de 16 bits, capaz de processar 
0,90 MIPS. É dada, então, a largada para 
a evolução dos microprocessadores, onde 
outras companhias, como a AMD e Cyrix, 
entram no mercado.
Outras fabricantes de micropro-
cessadores, destinados a aplicações mais 
especificas também evoluíram a partir do 
surgimento do CHIP, que segmentaram 
os microprocessadores em duas famílias 
distintas: os processadores CISC e RISC, 
cujas particularidades serão vistas ao longo 
deste capítulo.
A Figura ilustra como está estrutura-
da uma CPU e seu conjunto de instruções.
Uma UCP, como visto anteriormen-
te, deve executar duas tarefas: execução do 
programa e controle dos periféricos. Para 
cada uma destas tarefas existe um compo-
nente responsável, interno à UCP. A seguir 
uma breve descrição de cada um destes 
elementos.
A UCP roda em conjunto com a me-
mória, desta forma é necessário transferir 
o conteúdo da memória para seus registra-
UCP e seus componentes
Fonte: M
O
N
TEIRO
 (2001)
21FUNDAMENTOS COMPUTACIONAIS
dores internos e o resultado da execução deve ser transferido de seus registradores para a memória. Um programa na memória do 
computador é uma combinação de instruções e dados, sendo assim o trabalho da UCP buscar a próxima instrução, decodificá-la, 
obter os dados (operandos), executar a instrução e colocar o resultado novamente na memória. Isto ocorre milhões de vezes por 
segundo após o ligamento da UCP. O fluxo, mostrado na figura exemplifica o ciclo da UCP após sua inicialização.
Ciclo da UCP após ligada
Fonte: M
O
N
TEIRO
 (2001)
De fato, a execução de um programa 
é feito pela ULA (Unidade Lógica e Arit-
mética) de uma UCP, porém, para tornar 
isso possível é necessário ordenar a sequ-
ência de eventos que buscam a instrução e 
operandos da memória principal e colocar 
nos registradores internos da UCP. Toda 
esta comunicação é feita por sinais elétricos 
enviados através do barramento de controle 
e controlado pela UC e, portanto, esta é a 
segunda função da Unidade de Controle. 
A figura mostra um diagrama de blocos 
da uma UCP e os principais elementos 
envolvidos no processamento dos progra-
mas armazenados na memória principal.
22FUNDAMENTOS COMPUTACIONAIS
Diagrama de blocos de uma UCP
Fonte: M
O
N
TEIRO
 (2001)
A UC, para pegar a próxima instrução a ser executada, deve primeiramente 
enviar o endereço da memória onde está a próxima instrução, colocando-o no REM 
(Registrador de endereço de memória), em seguida, através do barramento de controle 
habilitar a leitura da MP (Memória Principal). Este passo faz com que o valor da ins-
trução seja colocado no RI (Registrador de Instrução). Esta instrução é decodificada 
e as microinstruções são executadas pela UCP. O resultado então é colocado no RDM 
(Registrador de Dados da Memória). Todas essas são ordenadas pelo sinal do relógio.
A principal função dos registradores é armazenar temporariamente os dados 
que serão ou foram processados pela UAL, ou seja, um dado para ser transferido da 
Memória Principal para a UAL deverá ser armazenado, primeiramente, em um re-
gistrador. Também o resultado parcial de uma operação aritmética ou lógica deverá 
ser armazenado temporariamente em um 
registrador para que seja utilizado para a 
conclusão da instrução.
Todas as CPUs possuem uma quan-
tidade de registradores destinados a dife-
rentes operações. Por exemplo, em um 
microprocessador 8086, de 8 bits da Intel, 
possui registradores acumuladores (AX), 
registradores base (BX), registradores de 
segmentos (para acesso a memória), regis-
tradores de dados, dentre outros. A quanti-
dade e finalidade de cada registrador pode 
ser encontrado no datasheet de cada pro-
cessador, fornecido pelo fabricante.
Relógio é o gerador de pulsos que 
sincroniza a execução e controle das instru-
ções dentro de uma UCP. Isto quer dizer 
que a cada ciclo, um evento ocorre dentro 
da CPU. Inicialmente, os microprocessa-
dores não executavam uma instrução a cada 
pulso de clock. Em 1992 a Intel lançou o 
80846 DX2 que foi o primeiro processador 
de sua família a processar uma instrução 
por ciclo de relógio. Outras arquiteturas 
de processadores, com mais de um núcleo, 
permitem que mais de uma instrução seja 
23FUNDAMENTOS COMPUTACIONAIS
executada por ciclo de relógio.
Os registradores de endereço ser-
vem para armazenar dados provenientes 
ou a serem colocados no barramento de 
dados. Em geral, o RDM possui o mes-
mo tamanho do barramento de dados. Da 
mesma forma, o REM é um registrador de 
endereços de memória e possui um tama-
nho igual ao do barramento de endereços 
da memória.
As interrupções foram uma forma 
que os engenheiros de microprocessado-
res encontraram para lidar com eventos 
assíncronos, isto é, o uso dos dispositivos 
de entrada e saída não ocorrem de forma 
ordenada, ainda mais em sistemas inte-
rativos, como os computadores atuais. As 
interrupções fazem parte do barramento 
de controle conectado à UC. A seguir a 
alguns exemplos de controle proveniente 
deste barramento.
INT - Entrada que serve para que 
dispositivos externos possam interromper 
o microprocessador para executar uma ta-
refa que não pode esperar o fim de um 
processamento.
NMI - Sinal de interrupção especial 
para ser usado em emergências e deve ser 
executada imediatamente.
INTA - Este sinal de saída do micro-
processador serve para indicar ao dispositivo 
que recebeu sua interrupção (Interruption 
Acknowledge).
Nos microprocessadores o método 
de processamento é chamado de pipeline, 
ou seja, a execução das instruções são fei-
tas como em uma linha de montagem. A 
execução de uma instrução é dividida em 
estágios independentes, como por exemplo, 
a leitura, escrita, decodificação de instrução 
são etapas distintas e devem durar o mesmo 
tempo para serem concluídas. Portanto, ao 
iniciar a execução de um programa, cada 
etapa de execução, de um microprocessador, 
ocorre a cada pulso de clock, sendo execu-
tadas uma de cada vez,conforme imagem 
abaixo.
Execução das instruções em pipeline.
Fonte: dosponível aqui
CISC x RISC
Pode-se classificar as microproces-
sadores quanto ao tipo de instruções que 
eles possuem: CISC (Complex Instruction 
Set Computer) que possuem um conjunto 
complexo de instruções e o RISC (Reduced 
Instruction Set Computer) que possuem 
um conjunto reduzido de instruções.
Nos primórdios dos microprocessa-
dores, todos os processadores eram RISC, 
o que levava os programadores a serem 
obrigados a ter um conhecimento profun-
https://sites.google.com/site/unipliarquitetdecomputadores/_/rsrc/1392757022813/aulas/aula-7---arquitetura-pipeline/arquiteturadecomputadores2.png
24FUNDAMENTOS COMPUTACIONAIS
do sobre o processador, pois todos os pro-
gramas eram elaborados em linguagem de 
máquina pura, ou assembler. Os projetistas 
de microprocessadores, para facilitar a vida 
dos programadores, resolveram embutir 
no próprio processador, programas para 
implementar algumas instruções mais 
complexas. Esta técnica é denominada de 
microprogramação. 
Através desta técnica, novas funções 
eram adicionadas diretamente no hardware 
e, a medida que novas necessidades sur-
giam, novas instruções eram adicionadas, 
levando a uma sobrecarga do microproces-
sador e tornando-os cada vez mais com-
plexos, daí o termo CISC.
A sobrecarga no processador torna-
va-o mais lento, sendo necessário buscar 
meios para aumentar a velocidade através 
de melhorias no hardware. Estas melhorias 
logo chegariam ao limite, sendo necessá-
rio aumentar o seu tamanho. No entanto, 
com base em pesquisas, descobriu-se que 
85% dos programas utilizavam apenas três 
instruções, atribuições, comparações (if ’s e 
chamadas de procedimentos, o que torna-
va desnecessário adicionar outras funções 
aos processadores que raramente iriam ser 
utilizadas. 
Além deste fato, dois outros fatores 
levaram a indústria de microprocessadores 
a voltarem à arquitetura RISC: o aumento 
significativo da velocidade das memórias 
e melhora das técnicas de compilação que 
geravam códigos, se não melhores, com a 
mesma eficiência dos microcódigos im-
plementados no hardware. No entanto, ao 
se implementar funções complexas a nível 
de software, exige que o processador exe-
cute mais funções na unidade de tempo, 
levando a dissipar mais energia. Outra 
desvantagem das máquinas RISC é que elas 
não são boas para lidar com cálculos que 
envolvem números em ponto flutuante.
A tabela enumera as principais ca-
racterísticas que diferem um processador 
CISC de um RISC.
RISC CISC
Instruções simples que levam um ciclo de clock Instruções complexas que levam múltiplos 
ciclos de clock
Apenas instruções LOAD/STORE referenciam a 
memória.
Todas as instruções podem referenciar a 
memória.
Altamente pipeline Não possui pipeline ou é pouco usado
Instruções executadas pelo hardware Instruções executadas pelo microcódigo
Instruções com formato fixo Instruções de diferentes formatos
Poucas instruções e modos Muitas instruções e modos
A complexidade está no compilador A complexidade está no microcódigo
Múltiplos conjuntos de registradores Conjunto único de registradores
Principais diferenças entre microprocessadores RISC e CISC
25FUNDAMENTOS COMPUTACIONAIS
A grande maioria dos microprocessa-
dores do mercado usam as mesmas técnicas 
usadas desde o surgimento dos primeiros 
microprocessadores, assim podendo ganhar 
maior poder de processamento construindo 
UCP’s com várias UAL mais lentas, divi-
dindo a execução das instruções entre elas. 
Uma das principais vantagens deste tipo 
de arquitetura é diminuir a dissipação de 
calor, uma vez que estas unidades operam 
em uma velocidade menor.
As máquinas paralelas podem ser 
classificadas em três diferentes categorias, 
baseadas em como os dados e instruções 
trafegam dentro da UCP.
SISD Single Instruction, Single Data
Fo
nt
e:
 d
os
po
ní
ve
l a
qu
i
SIMD Single Instruction, Multiple Data
Fo
nt
e:
 d
os
po
ní
ve
l a
qu
i
MIMD Multiple Instruction, Multiple Data
Fo
nt
e:
 d
os
po
ní
ve
l a
qu
i
https://en.wikipedia.org/wiki/SISD
https://en.wikipedia.org/wiki/SIMD
https://commons.wikimedia.org/wiki/File:MIMD.svg
QUESTÕES DO CAPÍTULO 1
1. Computadores podem funcionar sem 
BIOS e sem Memória Principal? Por 
quê?
2. Componentes do Processador: 
Registradores, ULA, UCP, etc. 
Especifique o funcionamento de cada 
um dos componentes do computador 
relacionando-os.
3. Pesquise quais os tipos de 
Microprocessador foram usados 
nos últimos anos nos videogames e 
computadores pessoais. CISC ou Risc.
4. Quem são as peopleware? Como 
podemos identificá-las?
5. Explique a arquitetura de Von 
Neumann.
27FUNDAMENTOS COMPUTACIONAIS
SISTEMAS 
OPERACIONAIS
Representação da Informação e 
gerenciamento
O sistema operacional é uma camada de software que 
controla os recursos do sistema e estende as funcionalidades 
destes recursos para suportar diferentes tipos de programa de 
usuários, tais como compiladores, banco de dados, interfaces 
amigáveis, redes de comunicação, dentre outros aplicativos. 
Todo o sistema operacional é desenvolvido para um hardware 
específico, ou seja, um sistema operacional de um smartphone 
é diferente de um sistema operacional usado por um compu-
tador pessoal.
Todo e qualquer Sistema Operacional tem como função 
principal distanciar os programadores ou usuários dos detalhes 
de implementação dos dispositivos físicos conectados ao com-
putador, inclusive do processador, ou seja, sempre que um usu-
ário, ou melhor um programa de usuário, necessitar de alguma 
tarefa, quer do processador quer dos dispositivos de entrada e 
saída, esta solicitação deverá ser feita ao Sistema Operacional 
por meio de uma função denominada Chamada ao Sistema. 
Esta função dispara uma rotina que irá comunicar-se com o 
28FUNDAMENTOS COMPUTACIONAIS
dispositivo, executando uma série de outras 
tarefas de controle daquele dispositivo.
Estrutura de um Sistema 
Operacional
Um sistema operacional possui seis 
componentes básicos na sua estrutura, como 
mostra a figura.
Cada um destes elementos possui 
uma tarefa importante para o funcionamen-
to e performance do sistema operacional. 
Embora a complexidade destes elementos 
esteja relacionada com o tipo de processa-
mento a que o sistema operacional foi de-
senvolvido, todos os sistemas operacionais 
de uso geral terão estes elementos.
Drivers de dispositivos são progra-
mas específicos de controle dos dispositivos 
de entrada ou saída, como discos rígidos, 
vídeos, mouses, dentre outros. Estes pro-
gramas são necessários para que o sistema 
operacional interaja com os dispositivos. 
No início dos sistemas computacionais ha-
via poucas opções de hardware disponível 
e, portanto, os drivers faziam parte do có-
digo do sistema operacional. Atualmente, 
com a grande quantidade de diferentes 
dispositivos que podem ser agregados aos 
computadores, estes drivers são feitos pelos 
próprios fabricantes. Ao se instalar um novo 
dispositivo, é necessário registrar (instalar) 
o driver no sistema operacional para que 
esse seja reconhecido pelo mesmo.
O Gerenciador de Processos é res-
ponsável pela implementação da multipro-
gramação baseada no compartilhamen-
to de tempo (time-sharing) nos sistemas 
operacionais modernos, permitindo que 
diferentes programas sejam executados em 
paralelo. A implantação do gerenciador de 
processos é feita através de heurísticas que 
garantem o direito de uso dos recursos, em 
um determinado momento, a cada um dos 
processos ativos.
O Gerenciador de Memória é res-
ponsável pela alocação e remoção dos pro-
gramas que estão sendo executados pelo 
sistema operacional, sendo programas de 
usuários ou programas do próprio sistema 
operacional. Além disso, o gerenciador 
de memória controla o espaço de endere-
çamento gerado pelo sistema operacional, 
que muitas vezes é superior ao espaço físico 
disponível no computador.
Com a multiprogramação fez-se a 
necessidade de compartilharo uso, além 
do processador, dos dispositivos conecta-
dos ao computador. O Gerenciador de 
Dispositivos garante o compartilhamento 
dos recursos entre os processos ativos em 
um computador. Este compartilhamento, 
apesar de proporcionar maior desempenho 
e interatividade ao sistema operacional, 
produz efeitos indesejáveis aos sistemas 
operacionais, sendo um deles chamado de 
deadlock que ocorre quando uma deter-
minada sequência de alocação de recur-
sos, pelos processos, leva ao travamento do 
computador. A solução para este tipo de 
problema, pode consumir muitos recursos 
financeiros e de processamento e, portan-
Estrutura de um Sistema Operacional
29FUNDAMENTOS COMPUTACIONAIS
to, os sistemas operacionais de uso geral, 
normalmente não a implementam. 
Através do Gerenciador de Arqui-
vos de um sistema operacional que são 
gerenciados espaços alocados, criados e 
deletados arquivos executáveis, mapeados 
arquivos em disco e é feita a manipulação 
de arquivos e diretórios. O sistema arquivos 
de um sistema operacional é uma abstração 
para a armazenagem e recuperação dos 
dados gerados durante a execução de um 
computador. Estes dados podem ser gera-
dos ou por programas de usuários ou pelo 
próprio sistema operacional. É através do 
Gerenciador de Arquivos de um sistema 
operacional que são gerenciados os espaços 
alocados, a criação e exclusão de arquivos 
executáveis, diretórios, mapeamento de 
arquivos, etc. 
Outra tarefa importante do gerencia-
dor de arquivos é garantir a comunicação 
entre os processos ativos durante a execução 
de um computador.
O Interpretador de comandos é 
uma interface simples e amigável que os 
sistemas operacionais disponibilizam aos 
usuários para que possam interagir. O in-
terpretador de comandos é o prompt que 
aparece na inicialização do sistema ope-
racional.
Tipos de Sistemas 
Operacionais
• SO para Computadores de Grande 
Porte
São sistemas operacionais capazes 
de gerenciar grande número de entradas 
e saídas, milhares de discos rígidos e com 
milhares de terabytes de dados a serem 
manipulados, conhecidos também como 
mainframes. Estes computadores ainda 
existem em grandes corporações e são 
aqueles que, geralmente, ocupam espaços 
de salas inteiras. As aplicações destes ti-
pos de computadores vão desde grandes 
servidores Web, comércio eletrônico em 
larga escala e transações eletrônicas entre 
grandes empresas (business-to-business).
Este tipo de sistema operacional é 
feito para suportar e executar imensas quan-
tidades de jobs simultaneamente e oferece 
três tipos de processamento: 
• Processamento em lote, como por 
exemplo, o relatório de vendas de 
cadeias de lojas; 
• Processamento de transações, que 
suportam uma grande quantidade 
de pequenas requisições, por exem-
plo sistema de reserva de passagens 
aéreas; 
• Processamento por compartilha-
mento de tempo, que permite que 
inúmeros usuários realizem seus 
jobs, simultaneamente no sistema, 
como consultas a banco de dados. 
Um exemplo deste tipo de sistema 
operacional é o OS/390 da IBM.
• SO para Servidores
São sistemas operacionais que rodam 
em máquinas de médio porte e até mes-
mo em mainframes, cuja função é atender 
múltiplos usuários de uma vez, em rede, 
30FUNDAMENTOS COMPUTACIONAIS
permitindo assim o compartilhamento de 
recursos de hardware e software daquele 
sistema. São usados em servidores Web, 
sistemas gerenciadores de banco de dados, 
serviços de e-mail e compartilhamento de 
arquivos. Os sistemas típicos de uso nes-
tas aplicações são Unix, Linux e Windows 
Server.
• SO de Multiprocessadores
Um modo comum de incrementar 
o poder computacional é conectar várias 
CPUs e dividir as tarefas entre elas. Po-
dem-se dividir os sistemas multiprocessados 
em duas categorias, a primeira é aquela 
onde as várias CPUs estão conectadas sobre 
um mesmo barramento e, para estes casos, 
os sistemas operacionais devem apenas ser 
capazes de identificar a presença de mais 
de um processador e dividir as tarefas entre 
eles, compartilhando o restante dos recursos 
da máquina, como memória. Estes sistemas 
também podem ser sistemas operacionais 
de servidores ou de rede. 
A outra maneira é conectar diferen-
tes máquinas a uma rede de comunicação 
e dividir as tarefas do sistema operacional 
entre elas. No entanto, este tipo de sistema 
operacional deve levar em consideração 
as diferentes máquinas conectadas à rede. 
Um exemplo de sistema operacional mul-
tiprocessado entre diferentes máquinas é 
o Sistema Corba (Common Object Request 
Broker Architecture) de implementação de 
middlewares (programa de computador que 
faz a mediação entre software e demais 
aplicações).
• SO de Computadores Pessoais
São sistemas operacionais multi-
programados que oferecem uma interface 
amigável aos usuários e permitem que pro-
gramas aplicativos possam ser executados 
naquele ambiente. Podem estar instalados 
em uma rede de computadores, solicitando 
tarefas ou informações à servidores. A estes 
sistemas pode-se chamar de sistemas clien-
tes, que são versões reduzidas dos sistemas 
operacionais de Servidores. 
Linux, Windows, Mac e OS são exem-
plos de sistemas que operam em compu-
tadores operacionais.
• SO de Tempo Real
São sistemas operacionais que pos-
suem restrições de tempo para a execução 
de determinadas tarefas. Este tipo de sis-
tema operacional é comum no controle 
de processos industriais onde há coleta de 
dados do processo, leitura de entradas e es-
crita nas saídas, deve ocorrer em intervalos 
de tempo bastante rígidos. Estes sistemas 
são denominados sistemas operacionais de 
tempo real crítico, onde qualquer atraso no 
processamento de uma tarefa ocasiona uma 
falha no processo.
Existem outros sistema de tempo real 
não crítico, onde um atraso ocasional de 
uma tarefa é permitido. Sistemas de áudio 
de multimídia, como o VxWorks e QNX 
são exemplos conhecidos desta categoria.
• SO Embarcados
São sistemas operacionais instalados 
em dispositivos que geralmente cabem no 
bolso do usuário e permitem rodar uma 
quantidade limitada de aplicações, como 
agendas de endereços, planilhas eletrônicas 
31FUNDAMENTOS COMPUTACIONAIS
dentre outras. Os computadores de bordo 
automotivo são exemplos de equipamen-
tos que possuem um sistema operacional 
embarcado, porém não são os únicos, te-
levisores, fornos microondas, geladeiras, 
telefones celulares, videogames enfim, todos 
os equipamentos microprocessados necessi-
tam de uma espécie de sistema operacional 
para poderem rodar.
• SO de Cartões Inteligentes
Nasce uma nova categoria de siste-
mas operacionais cujas restrições de con-
sumo de energia e segurança são requisitos 
básicos. Os cartões de bancos são exemplos 
da utilização deste tipo de sistema operacio-
nal que, muitas vezes, são orientados a Java, 
gravados em ROM e implementados com 
multitarefa e inclusão de novos aplets ao 
cartão. No entanto, estes tipos de recursos 
enfraquecem a segurança do sistema.
Sistemas Numéricos e 
Representação de Dados
Os algarismos, como conhecemos 
hoje, surgiram no final do Século VI, porém, 
durante este século não existia o zero nos 
algarismos conhecidos pelo Ocidente. O 
zero já era aplicado neste mesmo século pe-
los Hindus. Foi apenas em 825 d.C. que um 
sábio de Bagdá, chamado al-Khowarizmi, 
trabalhando na tradução de todos os livros 
de matemática de seu reino, encontrou do-
cumentos hindus que apresentavam o siste-
ma numérico decimal. Al-Khowarizmi, 
maravilhado com a descoberta, escreveu um 
livro chamado Arte Hindu de Calcular, que 
popularizou mundialmente este sistema, 
conhecido como indo-arábicos. O termo 
algarismo foi utilizado em homenagem a 
este sábio.
A base do sistema numérico indo-
-arábico é 10, pois possui dez algarismos. 
Porém, outras bases surgiram em outras 
civilizações que ainda são usadas nos dias 
atuais. Exemplo disto é o sistema numérico 
inventado pelos babilônios, possuíam 60 
algarismos e ainda hoje é utilizado para 
representar ângulos e tempo.Nos sistemas 
de computadores os sistemas numéricos 
mais utilizados são o de base 2, conheci-
do como Binário, o de base 8, conhecido 
como octal e o de base 16, conhecido como 
hexadecimal.
Todo o número escrito em um de-
terminado sistema de numeração de base 
b pode ser escrito através do seguinte po-
linômio:
N = anbn + an-1 bn-1 + ... + a1 b1+ a0 b0
N = número
a = algarismo
b = base
Para a < b, onde a 0 é o algarismo 
menos significativo (à direita), an é o al-
garismo mais significativo do número (à 
esquerda) e b é a base do número. Esta 
fórmula serve para converter qualquer base, 
para a base decimal.
Sistema Decimal
Um sistema decimal usa dez algaris-
mos (0 a 9). Neste sistema, cada elemento 
a esquerda de um algarismo possui uma 
ordem de grandeza 10 vezes maior que o 
da sua direita. Portanto, considerando o 
polinômio de um sistema de numeração, 
32FUNDAMENTOS COMPUTACIONAIS
podemos decompor o número decimal 1325 
no seguinte polinômio:
1325 = 1 . 103 + 3 . 102 + 2 . 101 + 5 . 100
Exemplo: Tomando como referência 
a base 5:
(4130)5
4*53 + 1*52 + 3*51 + 0*50 =
500 + 25 + 15 + 0 = (540)10
Onde:
a3 = 4, a2 = 1, a1 = 3, a0 = 0
b = 5
Sistema Binário
O sistema binário possui apenas dois 
algarismos, zero e um. Ele simplifica e agi-
liza a maneira dos computadores realizarem 
operações. Outra vantagem deste sistema é 
usar menos espaço de memória para arma-
zenar o dado, se comparado com o sistema 
decimal. Qualquer número, representado na 
base binária, deverá ser interpretado como 
o seguinte polinômio, para transformá-lo 
em decimal:
N = bn2n + bn−1 2n−1 + ...+ b1 21 + b0 20
Exemplo:
Nos computadores, o sistema binário, 
tem a função de realizar operações lógicas, 
cujo resultado é verdadeiro ou falso, e também 
para cálculos matemáticos simples e com-
plexos. A representação de números inteiros, 
reais, complexos, etc. É feito através da com-
binação e organização dos números binários. 
Na terminologia dos computadores, 
palavra é um grupo de algarismos binário 
(bits) que podem ocupar uma localização 
na memória, e, que podem ser processados 
de uma só vez, podendo ser um número 
binário que é para ser manuseado como 
um dado, ou, uma instrução que diz ao 
computador que operação deve ser execu-
tada. Pode ser também um caractere ASCII 
representando uma letra do alfabeto, ou 
ainda, um endereço que diz ao processador 
onde se localiza um dado.
Desta forma temos os seguintes con-
juntos de representação de dados:
• Bit (menor informação tratada 
pelo computador)
• Nibble: 4 bits (16 variações); 
• Dígito: 6 bits (36 variações);
• Byte: 8 bits (256 variações); 
• Meia palavra: 16 bits (65.536 
variações); 
• Palav r a (word): 32 bits 
(4.294.967.296 variações); 
• Palavra dupla (dword): 64 bits 
(18.446.744.073.709.551.616 
variações). 
• Palavra quádrupla: 128 bits
33FUNDAMENTOS COMPUTACIONAIS
Unidades de Bytes e conversões
Em sistemas computacionais o conjunto de bytes possuem denominações espe-
cíficas conforme sua quantidade. Veja algumas delas na tabela abaixo: 
Unidades de Bytes
Por exemplo: Temos 20MB e que-
remos descobrir quantos bits contém nele 
basta fazer o seguinte cálculo:
1 MB = 1024 KB, logo, 20 MB * 1024 = 
20480 KB.
1KB = 1024 Bytes, logo 20480 KB * 1024 
= 20.971.520 Bytes.
1 Byte = 8 bits, logo 20.971.520 Bytes * 8 
= 167.772.160 Bits
Sistema Octal
Um sistema Octal possui 8 algaris-
mos, 0, 1, 2, 3, 5, 6, 7, é representado pelo 
seguinte polinômio:
N= bn8n + bn−1 8n−1 + ... + b1 81 + b0 80
Exemplo:
Fonte: dosponível aqui
http://robsoniguaba.blogspot.com.br/2015/12/unidade-de-medida-de-computador.html
34FUNDAMENTOS COMPUTACIONAIS
Sistema Hexadecimal
Um sistema Hexadecimal possui 16 
algarismos, 0, 1, 2, 3, 5, 6, 7, 8, 9, A, B, 
C, D, E, F, onde os algarismos alfabéticos 
equivalem ao A = 10, B = 11, C = 12, D = 
13, E = 14 e F = 15. Um número em um 
sistema hexadecimal é representado pelo 
seguinte polinômio:
N=bn16n+bn−116n−1+...+b1161+b0 160
Exemplo:
O sistema numérico Hexadecimal é 
utilizado também nos sistemas computado-
res, porém, apenas para visualizar de forma 
mais amigável. É bastante usado para a 
programação em linguagem assembly, pois 
cada dígito equivale a uma palavra, tor-
nando o programa um pouco mais legível.
Mudança da Base 10 para base Binária
Para mudar um número decimal 
para base binária, basta dividir o número 
sucessivamente por 2 até encontrar um 
valor menor que 2.
Resultado: 10010112 
Quanto maior a base de um sistema 
de numeração, menor o número 
de algarismos necessários para 
representar um valor.
35FUNDAMENTOS COMPUTACIONAIS
O resultado é obtido com os restos 
da divisão, e sempre da direita para a es-
querda, como indicada a seta para a leitura 
do número.
Mudança da Base 10 para a Base Octal
A mudança da base decimal para a 
base octal é feita por meio de divisões su-
cessivas até encontrar um valor menor 
que 8. De fato, esta regra serve também 
para transformar um número decimal para 
qualquer outra base. Por exemplo, para 
converter o número (75)10 basta dividir 
o número sucessivamente como mostra a 
imagem:
Resultado: (113)8
O resultado é obtido com os restos da 
divisão, e sempre da direita para a esquerda, 
como indicada a seta de leitura do número.
Mudança da Base 10 para a Base 
Hexadecimal
Para mudar um número decimal para 
hexadecimal, basta dividi-lo sucessiva-
mente por 16 até encontrar um valor me-
nor que 16. Por exemplo, para converter o 
número 7510 para a base hexadecimal faça.
Resultado: B416
O resultado é obtido com os restos da 
divisão, e sempre da direita para a esquerda, 
como indicada a seta de leitura do número. 
Nesse é importante lembrar que os números 
precisam ser convertidos para Hexadecimal, 
por exemplo o 11 que é representado pela 
letra B na base hexadecimal.
Mudança entre bases de potência 2
A base binária é sempre intermediá-
ria, portanto deve-se converter o número na 
base de origem para a base binária e desta 
para a base de destino, observando sempre 
a potência de 2 como agrupamento de bits, 
que devem ser agrupados sempre da direita 
para a esquerda.
• Da base 2 para base 8
Como 8 = 23, emprega-se agrupa-
mento de 3 em 3 bits:
(111010111)2 = (?)8
111 010 111
 7 2 7
(111010111)2 = (727)8
• Da base 2 para base 16
Como 16 = 24, emprega-se agrupa-
mento de 4 em 4 bits:
36FUNDAMENTOS COMPUTACIONAIS
(1011011011)2 = (?)16
0010 1101 1011
 2 13 11
(1011011011)2 = (2DB)16
• Da base 8 para base 16
É necessário usar a base binária como 
intermediária. Como 8 = 23, cada dígito 
octal vira 3 bits para a obtenção do valor 
binário. Após, como 16 = 24, os agrupamen-
tos de 4 bits são usados para o valor final.
 (2E7A)16 = (?)8
0010 1110 0111 1010
010 111 001 111 010
 2 7 1 7 2
(2E7A)16 = (27172)8
Aritmética Não Decimal
Adição Binária
A soma binária é igual a soma de 
números decimais, porém deve-se levar em 
conta que só existem dois algarismos neste 
sistema. A seguir todas as possibilidades 
na soma binária.
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 0, e vai 1 ou 102
1 + 1 + 1 = 1, com “vai um” ou 112
Exemplos:
Subtração Binária
Em binário, a subtração ocorre da 
mesma forma que na base decimal. Ocorre 
o “empréstimo” caso o resultado seja menor 
que 0.
Quando o minuendo for menor que 
o subtraendo, deve ocorrer o empréstimo 
(borrow) no valor da base, no caso 2, do 
primeiro algarismo diferente de zero à es-
querda.
37FUNDAMENTOS COMPUTACIONAIS
Exemplos:
Adição Octal
Procede-se da mesma maneira que 
na base binária, respeitando o limite do 
algarismo, neste caso 7. Se a soma for maior 
que 7, este fica sendo 0 e adiciona-se 1 ao 
algarismo posterior.
Subtração Octal
Procede-se da mesma maneira que 
na base binária, observando a regra do em-
préstimo da base, neste caso 8, do primeiro 
algarismo diferente de zero à esquerda.
Adição Hexadecimal
Procede-se da mesma maneira que 
na base binária, respeitando o limite do 
algarismo, neste caso F (15). Se a somafor 
maior que 15, este fica sendo 0 e adiciona-se 
1 ao algarismo posterior.
Subtração Hexadecimal
Procede-se da mesma maneira que 
na base binária, observando a regra do em-
préstimo da base, neste caso 16, do primeiro 
algarismo diferente de zero à esquerda.
0 - 0 = 0
1 - 0 = 1
1 - 1 = 0
0 - 1 = 1, com “empréstimo” de 2
38FUNDAMENTOS COMPUTACIONAIS
Representação em Tamanho 
Fixo
Consiste na definição de um núme-
ro fixo de bits a serem empregados para 
representar um número. É o que ocorre 
nos computadores digitais, dependendo 
da arquitetura do computador, tamanho 
do barramento e registradores.
Exemplos:
O número (4)10 representado em 
uma arquitetura binária de tamanho 6, é 
escrito da forma: 000100
Em arquitetura de tamanho 8: 
00000100
O Overflow ocorre quando não é 
possível armazenar um determinado valor 
na quantidade de bits definida como tama-
nho na arquitetura. Em geral, é resultado 
de operações matemáticas. Na prática pode 
corromper a memória por escrever em um 
endereço que deve fazer parte de outro 
dado.
Exemplo, para representação em 4 
bits.
Representação Números 
Negativos
Para representar números negativos, 
convencionou-se o emprego de um bit de 
sinal, o mais significativo (mais à esquerda):
0 = positivo
1= negativo
Será visto duas formas de se repre-
sentar um número, que permita a definição 
de números positivos e negativos: Sinal-
-Magnitude e Complemento de 2.
Sinal-Magnitude
Uma representação de números bi-
nários em sinal-magnitude divide a infor-
mação em duas partes. 
1 bit para o sinal (o mais significa-
tivo)
Demais bits para a magnitude (valor 
absoluto do número)
Desta forma, o valor em binário uti-
lizado para representar o número positivo 
ou negativo é o mesmo, variando apenas 
o bit de sinal.
Fonte: dosponível aqui
http://s3.amazonaws.com/magoo/ABAAAABbUAI-27.jpg
39FUNDAMENTOS COMPUTACIONAIS
Se o tamanho determinado para a 
representação de um número for “n”, então 
será possível representar os valores de
-(2n-1 - 1) até (2n-1 - 1)
2n-1 pois reserva-se um bit para o 
sinal. Subtrai-se 1 pois o primeiro valor a 
ser representado é o 0.
Exemplo: Se “n” for 8, em um byte 
podemos representar os valores: 
-(27 - 1) até (27 - 1)
-127 até 127
256 valores diferentes
Neste caso serão duas representações 
para o zero. Um inconveniente da repre-
sentação sinal-magnitude.
Complemento de 2
Em matemática, complemento de 
um número é a quantidade que falta para 
completar um valor. Por exemplo, o com-
plemento de um ângulo agudo é o número 
de graus necessários para chegar a 90.
Em operações aritméticas, comple-
mento à base de um número N é o valor 
necessário para se obter o valor máximo 
representável pela base, e se obtém da se-
guinte forma:
• Subtrai-se de cada algarismo o maior 
algarismo da base (complemento de 
base-1)
• Soma-se 1 ao resultado (complemen-
to de base).
Representação em complemento de 
base de 297
 999
-297
 702 1 = 703
A soma de um número com o seu 
complemento sempre será o número de 
valores possíveis de serem escritos na re-
presentação. 
Exemplo: 297 + 703 = 1000
No caso de números binários, para 
se chegar ao complemento de base, ou seja, 
complemento de 2, subtrai-se cada algaris-
mo de 1 e depois soma-se um ao resultado. 
Ou para simplificar basta, inverter os bits 
do número e somar 1 ao resultado obtido.
Exemplo:
Representação em complemento de 
2 de 10010: 
1101 = 01110
A representação de números po-
sitivos em complemento não é alterada, 
apenas emprega-se o bit do sinal (igual à 
representação Sinal-Magnitude).
A representação de um número ne-
gativo se obtém fazendo o complemento 
à base do número positivo.
40FUNDAMENTOS COMPUTACIONAIS
Tipo de 
representação
Representações 
para zero
Custo Velocidade
Sinal-
Magnitude
Duas Alto (componentes 
separados para soma 
e subtração)
Baixa (algoritmo de 
verificação de sinais, 
soma e subtração)
Complemento 
de 2
Uma Baixo (um componente 
único para soma)
Alta (algoritmo 
simples e único para 
soma)
Comparativo entre as duas representações
Fonte: Autor
QUESTÕES DO CAPÍTULO 2
1. Quantos bits existem em 64KB?
2. Quantas palavras existem em 1KB?
3. Quantos bits existem em 1Mb?
4. Quantos KB existem em 65536 bits?
5. Converta os valores abaixo para base 
decimal
a. (1021)3 = 
b. (14501)7 = 
c. (387)9 =
d. (624)8 = 
e. (1011101)2 =
f. (1EB)16 =
g. (23AF)16 =
h. (74D32)16 =
i. (2C3A)16 =
j. (DBAC)16 =
k. (AAA)16 =
42FUNDAMENTOS COMPUTACIONAIS
LINGUAGENS E 
ORGANIZAÇÃO 
DA INFORMAÇÃO
Você já ouviu falar de alguma linguagem de 
programação? Sabia que elas estão presentes 
em tudo que você faz no computador?
As linguagens de programação são maneiras de traduzir 
uma solução ou regras para encontrar a solução de problemas 
que possam ser solucionados através de sistemas computacionais. 
Todo e qualquer programa, desde o sistema operacional até os 
aplicativos de usuários, são desenvolvidos em uma determinada 
linguagem. A escolha da linguagem determina o sucesso ou o 
fracasso na construção de um aplicativo.
As linguagens de programação tem como função traduzir 
para uma linguagem próxima do ser humano e para uma lin-
guagem que possa ser compreendida pelo processador, isto é, 
uma linguagem de programação traduz, a prioridade, um texto, 
representando um algoritmo para resolver um determinado 
43FUNDAMENTOS COMPUTACIONAIS
problema, em um conjunto de instruções 
de máquina de um processador.
Linguagens de Programação
Surgimentos das principais linguagens de programação
44FUNDAMENTOS COMPUTACIONAIS
A figura mostra o surgimento de al-
gumas das principais linguagens de progra-
mação existentes no mercado.
As linguagens vêm evoluindo ao 
longo dos anos com o objetivo de aproxi-
mar a maneira de programar à linguagem 
humana, isto é, torná-las cada vez mais 
compreensíveis e menos complexas. Toda 
a linguagem irá converter um arquivo texto 
que contém expressões lógicas, aritméticas, 
palavras reservadas à linguagem, dentre 
outros objetos, em uma sequência de ins-
truções de máquinas pertencentes a um 
determinado processador. Estas linguagens 
podem ser compiladas ou interpretadas, ou 
seja, podem gerar um arquivo que conterá 
todo o código executável de uma única vez 
ou podem traduzir à medida que o pro-
grama é executado, respectivamente. Esta 
tarefa é feita pelos compiladores de uma 
determinada linguagem porém, as tarefas 
executadas por um compilador são basi-
camente as mesmas, independentemente 
do tipo de linguagem. O fluxo mostra as 
etapas que os compiladores executam antes 
de gerarem o arquivo executável, um código 
entendível para o computador.
Analisador Léxico tem como função 
identificar as unidades léxicas da linguagem, 
ou seja, dividir o que são palavras-reserva-
das, variáveis, números, etc. Por exemplo, o 
analisador léxico identifica operandos como 
IF, THEN, MinhaVariável, dentre outros.
Analisador Sintático, por sua vez 
verifica se a estrutura do programa foi feita 
segundo as regras gramaticais da linguagem. 
O analisador sintático verifica a sequência 
de um comando de repetição foi digitada 
corretamente como no exemplo WHILE 
MinhaVariável == 0 DO.
Analisador Semântico verifica se 
as expressões do programa fazem sentido, 
como por exemplo verificar se os tipos de 
variáveis estão corretos com as atribuições.
O Gerador de Código Intermediário 
gera uma representação intermediária entre 
a linguagem de alto nível e a linguagem de 
máquina do processador alvo a fim de faci-
litar esta tradução. Esta não é obrigatória 
e alguns compiladores a usam e outros não.
 Otimizador de Código, algumas 
45FUNDAMENTOS COMPUTACIONAIS
linguagens avaliam as expressões a fim de 
simplificá-las e tornar o executável mais 
rápido. Um exemplo disto é verificar ex-
pressões aritméticas que envolvem multi-
plicação e divisão de números por múltiplos 
de dois e substituí-las por instruções de 
deslocamento evitando, assim, o uso do 
processador aritmético.
É na etapado Gerador de Código 
Objeto que o programa é de fato traduzido 
para o código alvo, ou seja, traduzido para 
o conjunto de instruções de um determi-
nado microprocessador. Após a geração do 
programa objeto é necessário montá-lo e 
ligá-lo a fim de gerar o arquivo executável.
As linguagens podem ser divididas 
através de sua aproximação à linguagem 
humana:
• Linguagens de Baixo Nível;
• Linguagens não estruturadas;
• Linguagens Procedurais;
• Linguagens Funcionais;
• Linguagens Orientadas a Objeto;
• Linguagens Específicas;
• Linguagens de Quarta Geração ou 
Visuais;
Linguagens de Baixo Nível
São linguagens cujas instruções estão 
mais próximas do código de máquina do 
que da linguagem humana. Pode-se di-
zer que para cada processador existe uma 
linguagem correspondente, ou seja, uma 
linguagem que é determinada pelo set de 
instruções daquele microprocessador. Estas 
linguagens são conhecidas como Lingua-
gem Assembly.
Linguagens Não Estruturadas
São linguagens que não possuem 
uma relação direta com as linguagens as-
sembly, ou seja, o conjunto de instruções 
destas linguagens não são os mesmos do 
código de máquina. É possível então de-
senvolver programas independentes do tipo 
de microprocessador que irão rodar, e é só 
na etapa de gerar o código que isto é deter-
minado. A não estrutura destas linguagens 
dá-se pelo fato de não poder dividir de 
forma coerente as diferentes tarefas de um 
programa, isto é, os programas são feitos 
em um único arquivo.
São exemplos as linguagens: Cobol, 
Basic.
Linguagens Procedurais
As linguagens procedurais são um 
subconjunto das linguagens estruturadas, 
cujos controles e organização são mais efi-
cientes tornando-as mais claras sobre o 
ponto de vista sintático. As linguagens 
procedurais ordenam a construção dos pro-
gramas através de uma estrutura de cha-
madas de procedimentos. As mais comuns 
Exemplos de Linguagens
46FUNDAMENTOS COMPUTACIONAIS
são C, Pascal, Fortran, dentre outras. Cada 
uma destas linguagens possui vantagens e 
desvantagens, porém são mais especialistas 
que outras em determinadas tarefas.
Linguagens Funcionais
As linguagens funcionais, ao con-
trário das procedurais, não estão interes-
sadas em executar comandos, mas sim em 
avaliar expressões que combinam valores 
básicos (verdadeiro ou falso). Algumas 
destas linguagens não possuem a solução 
do problema embutida no seu código, pos-
suem às regras que permitem encontrar 
a solução de um determinado problema. 
Geralmente estas linguagens são utiliza-
das em softwares especialistas como por 
exemplo, programas que jogam Xadrez, não 
precisam ter previstas todas as jogadas em 
seu código, basta ensinar os movimentos 
básicos de cada peça.
São exemplos de linguagens funcio-
nais a Prolog e Lisp.
Linguagens Orientadas a Objeto
O surgimento das linguagens Orien-
tadas a Objeto está relacionada com as 
novas técnicas de Engenharia de Software 
que surgiram para orientar e organizar pro-
cessos, minimizar o tempo de programação 
e promover a reusabilidade do código. Além 
disso, não havia na década de 90 uma lin-
guagem de programação igual ao paradigma 
de banco de dados relacional.
Uma das principais características 
deste paradigma é que todas as informações, 
dados e código, são encapsulados e trafegam 
junto com o fluxo do programa. Uma vez 
encapsulados em uma classe, esta define 
o comportamento de todas as instâncias 
daquele objeto. Outras características como 
hereditariedade são implementadas neste 
tipo de paradigma de programação.
 Smaltalk, C++ e Java são exemplos 
de linguagens orientadas a objeto.
Exemplos de Linguagens
Exemplos de Linguagens
Exemplos de Linguagens
47FUNDAMENTOS COMPUTACIONAIS
Linguagens Específicas
São linguagens desenvolvidas para 
suprirem necessidades específicas como o 
tratamento de banco de dados, formatação 
de textos, simulação dentre outros.
Por exemplo, a linguagem SQL 
(Structured Query Language) é uma lin-
guagem para consulta a bando de dados 
baseada no modelo de banco de dados re-
lacional. Esta linguagem está normatizada, 
e é incorporada pela maioria dos bancos de 
dados disponíveis no mercado. O estudo 
da linguagem SQL está relacionado com 
a aritmética e lógica relacional e possui 
relação direta para a sua conversão.
Outro exemplo é o Matlab, que ini-
cialmente foi criado para o ensino de teoria 
matricial, álgebra linear e análise numérica, 
nas Universidades de Standfor e Novo Mé-
xico, na década de 70. Atualmente este pro-
grama é fornecido pela Math Workx e está 
voltada a aplicações científicas e simulação 
de sistemas. Sua sintaxe é bastante fácil e 
possui uma grande variedade de bibliotecas 
para aplicações que vão desde a simulação 
de sistemas digitais, processamento de si-
nais e sistemas complexos como dinâmica 
de fluidos computacional. Sua principal 
vantagem é fornecer os resultados rapida-
mente ao usuário.
Além dessas, temos a HTML, LA-
TEX, Perl, entre outras.
Linguagens de Quarta Geração ou Visuais
As linguagens de quarta geração ou 
visuais surgiram em decorrência do surgi-
mento de sistemas operacionais cujas in-
terfaces são gráficas. O Windows foi um 
dos responsáveis pelo surgimento destas 
linguagens e na forma como são desenvol-
vidos os programas. Os usuários, através das 
linguagens 4GL, podem criar seus próprios 
sistemas com um mínimo de erro e tempo 
de desenvolvimento.
Linguagem Visual Basic, Simulink, 
Linguagem Delphi são exemplos de lin-
guagens visuais.
Estrutura e Organização da 
Informação
A estrutura, de como os dados são 
armazenados, é uma das partes mais impor-
tantes no projeto de um sistema computa-
cional, seja para o controle de uma empresa, 
seja dentro de um dispositivo móvel. Esta 
importância dá-se pelo fato de que todos 
os procedimentos e funções a serem desen-
volvidas dentro do sistema dependerão da 
definição destas estruturas.
Além da escolha da linguagem de 
programação certa para resolver um deter-
minado problema, é a escolha da estrutura 
de dados que garantirá uma melhor perfor-
mance do software construído. Para o caso 
de sistemas de informação para empresas, 
em geral, a estrutura de dados de um pro-
Exemplos de Linguagens
48FUNDAMENTOS COMPUTACIONAIS
grama deverá modelar os dados que repre-
sentam os processos reais daquela empresa.
As linguagens de programação forne-
cem ferramentas para fazer esta modelagem 
que vão desde tipos de dados elementares, 
como caracteres, inteiros, reais, etc., até mais 
complexos como arquivos que são estruturas 
que agrupam diferentes tipos de dados. A 
seguir serão apresentadas algumas formas 
de organizar os dados de um sistema.
Campo
O campo é a descrição de um atri-
buto, de uma determinada entidade. Os 
campos podem ser formados por qualquer 
tipo de dado elementar e está ligado a uma 
determinada área de armazenamento pos-
suindo um significado lógico para o sistema.
Registro
Registro consiste de um agrupa-
mento de campos que representam uma 
ocorrência de uma determinada entidade. 
Em geral, cada registro é representado por 
um campo de valor único dentro de uma 
determinada coleção de entidades. Isto é, 
cada registro terá um identificador, conhe-
cido como chave, que identificará uma e 
somente uma entidade. Os registros são 
comuns em arquivos de banco de dados. 
A tabela mostra alguns exemplos de 
coleção de registros e as chaves que re-
presentam um elemento único dentro da 
coleção.
Arquivos
Os arquivos além de serem impor-
tantes para a manutenção dos sistemas 
operacionais (modelagem de dispositivos, 
comunicação entre processos, etc.), pos-
suem papel importante na abstração para 
armazenamento de dados nos sistemas 
computacionais. Um arquivo que contém 
dados armazenados de forma sequencial, 
isto é, um registro após o outro.
Embora todos os arquivos conte-
nham dados, a relevância desses é dada 
sempre a um nível superior, ou seja, a nível 
de usuário. Quando um conjunto de dados 
agrupados tem significado, isto torna-se 
informação.Portanto a diferença entre 
dados e informações é que estas permitem a 
tomada de decisão ou a execução de tarefas 
de acordo com os objetivos de cada sistema 
ou programa.
Entidade Atributos
Livro
Título
Categoria
Autor
Cliente
Nome
Sobrenome
CPF
Campo Registro Chave
Registro de Carros Número do Chassi
Registro de Clientes Número do CPF
Registro de Notas 
Fiscais
Número da Nota 
Fiscal
Registro de 
Funcionários
Número da Matrícula
Registro
49FUNDAMENTOS COMPUTACIONAIS
Métodos de Acesso aos Dados
Método de acesso aos dados são os 
algoritmos de busca, inserção, atualização, 
dentre outros, utilizados pelo sistema de 
informação e a escolha de um tipo de algo-
ritmo em detrimento de outro determinará 
o grau de dificuldade daquele sistema.
• Acesso Serial
Os arquivos de acesso serial são 
aqueles cujos dados são armazenados no 
arquivo na ordem em que foram criados 
e seus registros possuem tamanhos e se-
quência de dados iguais. O acesso deste 
tipo de arquivo é feito através da procura 
sequencial do registro. 
A característica do acesso serial é que 
um registro só é alcançado após a finaliza-
ção da leitura do anterior. Esta metodolo-
gia gera tempos de acessos extremamente 
longos à medida que o arquivo cresce. A 
atualização do arquivo neste método impli-
ca na criação de um arquivo auxiliar dentro 
do sistema, duplicando a área ocupada no 
disco.
• Acesso Sequencial
A principal característica do acesso 
sequencial é que os registros são armaze-
nados por ordem de classificação de chave. 
Quando armazenados em ordem crescente 
de chaves, o acesso torna-se serial e facil-
mente calculado, uma vez que o tamanho 
de cada registro é igual.
Uma das maneiras de garantir que o 
arquivo com os dados seja mantido ordena-
do é o uso de árvores binárias para manter 
os dados em memória antes de salvá-los em 
disco, garantindo, assim, que a ordenação 
não afete a performance do sistema.
• Acesso Sequencial Indexado
Este método consiste em manter 
um arquivo de índices que aponta para 
a posição do registro dentro do arquivo. 
O arquivo de índices é gerado durante a 
criação do arquivo ou na manutenção do 
mesmo. Além disso, este arquivo de índices 
Dados, Processamento e Informação
Fonte:Tanembaum, 2007
Organização dos dados em acesso serial
Fonte:Adaptado de Link.
Organização dos dados, ordenados pela chave
Fonte:Adaptado de Link.
Organização dos dados, ordenados pela chave
Fonte:Adaptado de Link.
http://www.ufpa.br/sampaio/curso_de_estdados_2/organizacao_arquivos/organizacao_arquivos.htm
http://www.ufpa.br/sampaio/curso_de_estdados_2/organizacao_arquivos/organizacao_arquivos.htm
http://www.ufpa.br/sampaio/curso_de_estdados_2/organizacao_arquivos/organizacao_arquivos.htm
50FUNDAMENTOS COMPUTACIONAIS
poderá ser mantido ordenado ou ainda usar 
uma estrutura em árvore binária quando 
carregado na memória. A busca neste tipo 
de método é muito rápida.
• Acesso Direto
O método de acesso direto é definido 
pela correspondência direta entre a chave 
do registro e o endereço físico do registro 
no dispositivo de armazenamento. Desta 
forma, ao tentar localizar um registro, o 
software estará acessando diretamente o 
endereço onde aquele registro foi gravado. 
Este método garante grande desempenho 
no acesso aos dados.
Banco de Dados
Uma maneira simples de definir um 
banco de dados é um conjunto de arqui-
vos, contendo registros, organizados para 
garantir a melhor performance durante as 
consultas, inserções, atualizações e criação 
de dados. Ao contrário dos arquivos con-
vencionais que possuem uma diversidade 
de dados que não possuem relação entre 
si, um banco de dados possui uma relação 
entre os dados que dão ao usuário infor-
mações relevantes. Portanto um banco de 
dados possui dados elementares e também 
dados secundários, provenientes das rela-
ções entre os dados. Estes dados podem 
ser classificados como: Dados principais; 
Dados de estrutura; Dados de índice; Dados 
de controle; e Dicionário de dados.
Um Banco de Dados deve ser capaz 
de representar os dados do mundo real, 
isto é, o Banco de Dados deverá ser capaz 
de modelar os dados principais, relações 
e transações entre os mesmos. Um Banco 
de Dados possui diferentes níveis de infor-
mações, relacionados a cada etapa de sua 
construção. A Figura mostra a relação entre 
as etapas de elaboração de um Banco de 
Dados e as informações associadas a cada 
uma delas.
Um modelo de banco de dados dá-se 
através de duas fases e quatro etapas a fim 
de manter uma organização e relação en-
tre o mundo real e os dados representados 
dentro do sistema.
Organização dos dados através de índices
Fonte:Adaptado de Link.
Banco de Dados e os níveis de informação
http://www.ufpa.br/sampaio/curso_de_estdados_2/organizacao_arquivos/organizacao_arquivos.htm
51FUNDAMENTOS COMPUTACIONAIS
A primeira fase diz respeito à con-
ceituação do modelo onde são levantadas 
e analisadas as informações do mundo real, 
suas relações e transações entre os proces-
sos. A partir disto é formulado o modelo 
conceitual do banco de dados, isto é, são 
definidas as estruturas de informações e os 
métodos de manipulação.
A segunda fase é quando o banco de 
dados é implementado, ou seja, são defini-
dos o modelo lógico e físico dos dados, as 
rotinas de consulta, atualização, inserção, 
dentre outros do banco de dados.
Modelo Relacional
O modelo relacional de banco de 
dados é o mais utilizado atualmente e ofe-
rece grandes vantagens sobre os demais 
modelos de banco de dados e a base de sua 
estrutura é a matemática relacional. Um 
banco de dados relacional possui algumas 
terminologias que devem ser conhecidas 
para entender o modelo.
Terminologia Descrição
Domínio É um grupo de valores legais que correspondem a uma sequência 
de registros válidos, encontrados em um determinado conjunto de 
atributos.
Tupla É a linha de uma tabela a qual possui os valores de cada atributo.
Atributo É uma coluna da tabela onde cada coluna corresponde a um atributo.
Chave primária É um identificador único para a tabela ou para uma tupla. Este número 
não pode ser repetido dentro de cada tabela.
Relações São as regras para a formação e escolhas de tuplas dentro das tabelas. 
As relações podem combinar mais de um atributo para realizar a 
pesquisa. As relações possuem as seguintes propriedades:
• Inexistem tuplas em duplicata;
• As tuplas não seguem ordem alguma;
• Os atributos não seguem ordem alguma;
• Todos os valores dos atributos são atômicos.
Banco de Dados e os níveis de informação
52FUNDAMENTOS COMPUTACIONAIS
Modelo Não Relacional
Cada vez mais, precisamos lidar com 
enormes volumes de informações. Tem al-
guma forma eficiente de banco para resolver 
este problema de maneira eficiente? 
O SQL é o termo usado para des-
crever bancos de dados não relacionais de 
alto desempenho. Os bancos de dados não 
relacionais usam diversos modelos de dados, 
incluindo documentos, gráficos, chave-va-
lor e colunares. Com este tipo de banco é 
possível ter um desempenho escalonável, 
alta disponibilidade, resiliência, além de ter 
fácil desenvolvimento. 
Todos os bancos não relacionais, têm 
em comum, as key-value stores, ou seja, 
salvam um conjunto de entradas formadas 
por uma chave associada a um valor. O va-
lor pode ser de qualquer tipo, uma string, 
numérico ou binário que está sendo salvo 
sem normatização (schema-free).
O CouchDB é um dos mais famo-
sos no time dos key-value stores. Nele são 
usados documentos para definir uma es-
trutura no banco, armazenando uma chave 
associada ao documento. Um documento é 
apresentado como JSON. Exemplo:
{
 “Subject”: “Bancos não relacionais”
 “Author”: “Nico Stepat”
 “PostedDate”: “10/15/2009”
 “Tags”: [“database”, “nosql”, “rest”]
}
QUESTÕES DO CAPÍTULO 3
1. Pesquise as diferenças entre modelos 
de banco de dados relacional e 
não relacional e monte uma tabela 
comparativa entre os dois modelos.
2. Quais são as principais formas de 
acessar os dados no banco de dados. 
Explique

Outros materiais