Escolar Documentos
Profissional Documentos
Cultura Documentos
Estas notas aqui condensadas representam a transcrição das notas de aula do curso de Informática.
São o resultado da pesquisa em alguns livros de informática existentes no mercado. Em particular
nos livros “Introdução À Organização de Computadores” de Mário A Monteiro. e também aos
textos da coluna do grande mestre B. Piropo que era publicada todas as 2ªs no caderno de
informática do jornal “O Globo”, das quais foram transcritos textos inteiros. De resto, acrescentei
alguns textos de minha autoria, completando assim a apostila.
Penso que tais textos assim sintetizados em forma de apostila, facilitarão a condução do curso
propiciando mais tempo para resolução de exercícios e esclarecimento de dúvidas.
Entretanto é preciso deixar claro que NADA SUBSTITUI O LIVRO. Esta apostila serve apenas
para ajudar o aluno em sala de aula, evitando cópias demoradas e enfadonhas do quadro-negro. O
aluno pode e deve pesquisar em livros sempre que possível.
Na apostila além da apresentação de forma sintética dos conceitos a serem ministrados encontram-
se também listas de exercícios que deverão ser resolvidos.
Esta apostila está, por assim dizer, em sua primeira versão. Assim, muito provavelmente, o aluno
poderá encontrar erros, seja na digitação, seja nas repostas dos exercícios. Caso então, o aluno
encontre erros, por favor comunique ao professor.
Penso melhorar esta apostila ao longo do tempo. Para isto espero contar com a colaboração dos
alunos, pela qual desde já agradeço.
Este capítulo introduz o leitor aos conceitos elementares da informática, isto é, ele apresenta em forma de
tópicos, as definições dos elementos mais comuns da informática. Além disto, no decorrer do capítulo o
leitor será apresentado ao microcomputador, isto é, ele ficará conhecendo os dispositivos mais
importantes do hardware, assim como alguns conceitos de software.
Conceitos Fundamentais
Hardware - Chamamos de Hardware (ainda não há uma tradução adequada para esta palavra) ao
conjunto formado pelos circuitos eletrônicas e partes eletromecânicas de um computador. É a parte física,
visível do computador.
Software - São os programas, de qualquer tipo e em qualquer linguagem, que são introduzidos na
máquina para fazê-la trabalhar, passo a passo, e produzir algum resultado. O Hardware sozinho não
funciona sem instruções (Software) que digam como, quando e o que fazer.
Os termos dado e informação podem ser tratados como sinônimos ou como termos distintos. Dado pode
ser definido como a matéria prima originalmente obtida de uma ou mais fontes (etapa de coleta).
Informação pode ser definida como o resultado do processamento, isto é, o dado processado ou acabado.
Informação subentende dados organizados (segundo uma orientação específica) para o atendimento ou
emprego de uma pessoa ou grupo que os recebe.
Programa - Qualquer processamento de dados requer a execução de uma série de etapas que podem ser
realizadas de forma manual ou automática por um computador. Tais etapas, elaboradas e executadas
passo a passo, constituem o que se chama programa. Cada um dos passos mencionados é uma diferente
construção, ou ordem de comando, dada ao hardware, objetivando a realização de uma determinada ação
(uma operação aritmética, uma transferência de informação, etc). O programa pode ser definido como um
conjunto de instruções. Ex: programas utilitários, executáveis, fontes, objetos, aplicativos (sistemas
específicos), firmwares.
Bit - A menor unidade de informação usada pelos computadores. A palavra Bit tem sua origem na junção
das partes de duas palavras BInary digiT e significa dígito binário.
Byte - Conjunto de oito bits, unidade mínima necessária para a representação de caracteres tais como
letras e números;
CPU - Central Processing Unit, ou Unidade Central de Processamento (UCP). Nos micros, CPU é
sinônimo de microprocessador, ou Chip. O coração de máquinas como os 386, 486, PENTIUM, etc;
BIOS - Um conjunto de instruções invisível para o usuário, responsável pela transferência de informações
entre os vários elementos da máquina;
SETUP - Conjunto de parâmetros usados para configurar determinado micro, sistema ou aplicativo;
HD (HARD DISK) - É o disco rígido, também conhecido como Winchester. Winchester foi o nome de
código utilizado pela IBM no projeto de desenvolvimento destes discos, que são as unidades de
armazenamento de dados, internas ou externas, que realizam, hoje, o trabalho que antigamente era feito
pelos disquetes;
Placa-mãe - É a principal placa do micro. Nesta placa estão situados os principais componentes do micro,
tais como: o microprocessador, a memória e os circuitos de apoio;
Software Básico - É o conjunto de programas básicos utilizados pelo computador. Ex: Sistema
operacional, Compiladores, etc;
Linguagem - É um conjunto finito de palavras, comandos e instruções, escrito com o objetivo de orientar
a realização de uma tarefa pelo computador. Exemplos de linguagens: Assembly
Pascal, Fortran, Visual Basic, Delphi, Java, C, C++, ASP, PHP, etc
Bug - Em inglês significa "inseto rasteiro". É utilizada quase que como gíria em informática, significando
defeito no hardware ou no software. Diz a lenda que a origem da "gíria" vem do fato de uma mariposa ter
entrado no computador eletromecânico da Universidade de Harvard, causando problemas que os técnicos,
CAPITULO 1
HISTÓRIA DA INFORMÁTICA
1.1 Origens
Era Jurássica
A origem da informática remonta a 4500 anos antes de Cristo, no antigo Egito. Os Egípcios daquela
época, premidos pela necessidade de controlar suas colheitas e construções, iniciaram o processo de
efetuar medidas e análises.
Na Mesopotâmia, os pastores precisavam comparar o número de ovelhas que saíam para o pasto com o
número das que voltavam. Para isto usavam pequenas pedras, uma para cada ovelha.
Foi na China, 3000 anos antes de Cristo que surgiu o primeiro ábaco, que era uma ferramenta para fazer
cálculos simples. Poder-se-ia considerar este ábaco como sendo a primeira calculadora construída pelo
homem. O ábaco ainda hoje é utilizado, porém em versões mais sofisticadas.
1617 - Invenção das Hastes Deslizantes que era um dispositivo semelhante ao ábaco que, no entanto,
permitia também a multiplicação;
1642 - Invenção da máquina mecânica de somar e subtrair (chamada máquina Pascalina), por Blaise
Pascal;
1694 - Gottfried Leibnitz aprimora o invento de Pascal e desenvolve a máquina que além de somar e
subtrair também multiplicava, dividia e extraia raiz quadrada;
1822/1823 - Charles Babbage cria a Máquina Diferencial, que resolvia polinômios e logaritmos;
1830/1833 - Charles Babbage, com o apoio da Condessa Ada Augusta Byron, Condessa de Lovelace
define a máquina analítica. Conceitos tais como: memória, cartão perfurado, programação e seqüência
de instruções estavam presentes no trabalho de Babbage. Em homenagem à Condessa de Lovelace, foi
criada a linguagem Ada, utilizada no Depto de Defesa Americano;
1890 - Hermann Hollerith desenvolve, nos Estados Unidos, equipamento baseado em cartões
perfurados;
1943/1944 - Surgia nos Estados Unidos, criado pelo norte americano Howard Aiken, o MARK I,
primeiro computador com tecnologia eletromecânica. Regido pelos princípios de Babbage, o MARK I
utilizava cartões para entrada de dados e máquina de escrever elétrica como saída de relatórios
contendo as informações desejadas, além de conter um gerador de funções;
1946 - Eckert e Mauchly constroem o ENIAC (Eletronic Numerical Integrator and Calculator), o
primeiro computador digital eletrônico da história. O ENIAC continha cerca de 18000 válvulas, pesava
30 toneladas e fazia 200 operações por segundo. O projeto do ENIAC foi melhorado por Vonn
Neumann que introduziu o conceito de instruções armazenadas em memória;
1948 - William Shockley, John Bardeen e Walter Brattain dos Laboratórios BELL da AT&T inventaram
o transistor, equivalente sólido da válvula. Mais resistente, rápido e barato do que a válvula. Prêmio
Nobel de 1956;
Começa a surgir o boom dos microcomputadores. Exemplos: XT, AT286, AT386, AT486, PENTIUM,
PENTIUM PRO, etc. Estes anos caracterizam-se por uma evolução brutal dos microprocessadores. A
INTEL, tradicional fabricante de microprocessadores impõe um ritmo alucinante no desenvolvimento de
novos microprocessadores.
1948 - Três engenheiros do BELL Laboratories, William Shockley, John Bardeen e Walter Brattain
inventam o transistor;
1959 - Uma equipe da TEXAS INSTRUMENTS cria o CI, ou Circuito Integrado. O primeiro CI
encapsulava apenas 6 transistores ( o PENTIUM tem mais de três milhões e cem mil transistores) que
no entanto foi uma façanha extraordinária para a época;
Prof. Guilherme Azeredo Martins 6
1970 - Ted Hoff da INTEL desenvolve o 4004;
1971 - Lançado o primeiro CI de uso genérico, capaz de receber, obedecer e executar instruções. O
primeiro microprocessador chamou-se 4004 e era um chip com registradores de 4 bits, o patriarca da
família dos microprocessadores da linha PC, tetravô do 386;
1972 - Lançado o primeiro chip de oito bits da INTEL, o 8008. Este chip equipava o projeto do primeiro
microcomputador, o ALTAIR, publicado pela revista "Popular Electronics" de janeiro de 72 e possuía
memória RAM de somente 256 bytes;
1976 - Surge afinal, o primeiro micro pessoal, o APPLE I, baseado no chip 6502 da MOTOROLA;
1979 - A INTEL lança o 8088, um chip idêntico ao 8086, porém com barramento de 8 bits ( o "8" final
refere-se ao barramento de 8 bits);
Outubro/85 - A INTEL lança o 80386, mais tarde rebatizado de i386 e finalmente chamado de i386DX,
nome pelo qual é conhecido hoje. O 386 foi a primeira CPU de 32 bits, tanto nos registradores internos
quanto no barramento de dados. Tinha então uma freqüência de 16 MHz. Mais tarde a INTEL lançou
novas verses com 20 MHz, 25 MHz e finalmente 33 MHz. O 386 carrega dentro de si nada menos do
que 275 mil transistores;
Abril/89 - A INTEL lança o i486DX. As primeiras máquinas equipadas com este chip são lançadas no
final de 89. A primeira versão operava em 25 MHz e mais tarde foram liberadas verses com 33 MHz e
50 MHz;
REPRESENTAÇÃO DE DADOS
2.1 Introdução.
Em algum momento da sua vida, em algum lugar, você já deve ter ouvido alguém dizer que em um
computador todos os números são expressos sob a forma de "zeros" e "uns" e que a máquina não conhece
nenhum outro algarismo. Você deve ter achado estranha tal afirmação, afinal, como é que justamente o
computador, uma máquina que lida com tantos números, pode conhecer somente dois algarismos quando
qualquer analfabeto conhece pelo menos dez deles?
Não se assuste! Esta aparente incapacidade do computador é, na verdade, uma forma inteligentíssima de
representar números através da utilização de circuitos eletrônicos.
Antes de tentarmos entender como os números são representados em circuitos eletrônicos, é preciso
entender como representá-los fora deles. Para isto, vamos estabelecer primeiro a distinção entre
"algarismo" e "número". Um algarismo é um "desenho", um sinal gráfico. Já um número é a quantidade
representada por um ou mais algarismos. Por exemplo: no sistema decimal, o sistema numérico a que
estamos habituados, o algarismo "6" é um sinal gráfico (um desenho) que representa o número seis, que
por sua vez representa uma quantidade de seis elementos. O número 15, que representa outra quantidade
de elementos usa dois algarismos em sua grafia, o algarismo "1" e o algarismo "5". A única exceção é o
zero, representado por um algarismo, mas que não é um número (não representa uma quantidade). Mas, já
que ele existe e já está a tanto tempo enturmado, vamos considerá-lo como tal.
Números, portanto, representam quantidades. Quantidades podem ser representadas de infinitas maneiras.
Por exemplo: Como é que os romanos representavam números (quantidades)?...Usando os algarismos
romanos... Claro!
Então? Não está fácil agora entender melhor a diferença entre "algarismos" e "números"? Por exemplo: o
mesmo número cinco pode ser representado tanto pelo algarismo arábico "5" quanto pelo algarismo
romano "V", que são algarismos (sinais gráficos) diferentes que representam a mesma quantidade de
cinco elementos. O número é o mesmo. A forma de representá-lo com algarismos é que é diferente.
Abordemos agora outro aspecto da diferença entre algarismo e número. Você já reparou como é difícil
"fazer contas" com algarismos romanos? Tente, sem converter para o sistema decimal, somar XXVIII
com XIV. Para sua informação, o resultado é XLII. Entretanto, somar 28 com 14 para obter 42 é bem
mais fácil, não é? Por quê é mais fácil? Pense um pouco...
No sistema decimal, ao contrário dos algarismos romanos, ao colocar o 28 "em cima" do 14, os
algarismos que representam as unidades, dezenas, etc, ficam uns sobre os outros, já que estão sempre na
mesma posição. É isto que facilita as coisas na hora de somar, ou seja, o valor representado pelos
algarismos depende de sua posição relativa dentro dos números. No sistema decimal, cada algarismo vale
seu próprio valor multiplicado por dez, tantas vezes quanto for sua posição, menos uma. À primeira
posição da direita correspondem as unidades, à segunda as dezenas, à terceira, as centenas e assim por
Poderia ser ... doze, por exemplo... Seria bem mais prático, já que doze pode ser dividido por dois, três
quatro e seis, enquanto dez só é divisível por dois e cinco. Como você vê, não é à toa que se vende tanta
coisa às dúzias.
Então? Já pensou porque utilizamos o sistema decimal? A verdade é que só usamos o sistema decimal (de
base dez, ou baseado em dezenas) porque a natureza nos deu dez dedos e o homem, como as crianças,
aprendeu a contar nos dedos. Se a natureza houvesse nos dado doze, ao invés de dez, seria mais
trabalhoso cortar as unhas, entretanto, teríamos um sistema numérico muito mais prático. Tal sistema teria
mais dois algarismos (para representar as quantidades 10 e 11 que no sistema decimal são representadas
com dois algarismos cada uma). Neste sistema, cada posição corresponderia à posição da direita
multiplicada por doze (a "base" do novo sistema), ao invés de dez (a "base" do sistema decimal).
Na realidade, o sistema decimal parece ter sido desenvolvido (ou pelo menos registrado) na Índia, por
volta de 600 A.C., tendo sido passado aos persas e transcrito em arábico, razão pela qual foi introduzido
na Europa, quando da invasão bárbara, sendo até hoje seus algarismos chamados de arábicos.
Assim, generalizando o conceito de bases numéricas, podemos perceber que qualquer número (ou
quantidade) pode ser usado como base de um sistema numérico posicional. Este sistema teria tantos
algarismos quanto vale a base (o sistema decimal, de base dez, tem dez algarismos, de zero a nove) e cada
vez que um algarismo "andasse" para a esquerda, seu valor seria multiplicado pelo da base (um milhar
vale dez centenas, uma centena vale dez dezenas e uma dezena vale dez unidades). A regra é universal e
pode ser usada com qualquer base.
Agora que você viu tudo isto, pense e responda: É possível criar um sistema numérico posicional de base
dois? Hein? Hein? Se for, quantos algarismos o sistema usaria? Quais seriam estes algarismos?
2.5 Bit
Claro que sim. Com dois, com cinco, com sete, etc (o Rogério Magri que era ministro do trabalho do
governo Collor não afirmou que cachorro era um ser humano como outro qualquer?). Pois a base dois
também é uma base como outra qualquer.
Este sistema usaria dois algarismos, pois não chegamos à conclusão que os sistemas numéricos usam
tantos algarismos quanto vale a base? O sistema decimal não usa dez (de zero a nove) algarismos?
Portanto, o sistema de base dois usará apenas dois algarismos (e por isso também é conhecido por sistema
binário).
Finalmente: Que algarismos seriam estes? Bem, o primeiro tem que ser o "zero". Portanto, o segundo só
pode ser o "um". Logo, o sistema numérico de base dois usa apenas dois algarismos, o "zero" e o "um".
Vamos aplicar este raciocínio ao número 101101 no sistema binário: ele vale um (o 1 da primeira
posição, a das unidades) mais zero (a segunda posição é ocupada por um zero, que multiplicado uma
única vez pela base dois é 0 X 2 = 0) mais quatro (a terceira posição é ocupada pelo 1, que nesta posição
vale 1 X 2 X 2 = 4) mais oito (1 X 2 X 2 X 2 = 8) mais zero (0 X 2 X 2 X 2 X 2 = 0) mais trinta e dois (1
X 2 X 2 X 2 X 2 X 2 = 32). Efetuando a soma, temos: 32 + 0 + 8 + 4 + 0 + 1 = 45.
1 X 2 X 2 X 2 X 2 X 2 + 0 X 2 X 2 X 2 X 2 + 1 X 2 X 2 X 2 + 1 X 2 X 2 + 0 X 2 + 1 = Quarenta e
Cinco (45).
Parece complicado, mas depois que a gente "saca", vai fácil. O importante é entender o espírito das
conversões de binário para decimal e vice-versa, o resto é muito fácil.
Sobre o sistema binário deve-se ter em mente apenas duas coisas: ele pode representar qualquer
quantidade (é claro que quantidades grandes serão representadas por números longuíssimos, de muitos
algarismos) e só usa os algarismos "0" e "1".
Mas, nesta altura do campeonato, você deve estar se perguntando: "tudo bem, mas porque representar
números no sistema binário se é tão mais fácil representá-los no sistema decimal?". Entretanto analise:
mas fácil para quem "cara pálida"? O sistema decimal só é mais fácil para você, que está acostumado com
ele. Já para computadores, fácil mesmo é o sistema binário, e a razão é de uma clareza que carece de
óculos escuros. Senão, vejamos...
As entranhas dos micros são compostas por circuitos eletrônicos, onde quase todos os componentes só
reconhecem dois "estados". Por exemplo: a corrente pode estar fluindo em um condutor ou não. Um
capacitar pode estar carregado ou descarregado. Um interruptor, aberto ou fechado. Uma lâmpada (ou
"leda", essas luzidas coloridas usadas em circuitos eletrônicos), acesa ou apagada. Um transistor
conduzindo corrente ou não. Uma carga elétrica positiva ou negativa. E, estabelecido um valor de
referência, mesmo algo que varie continuamente pode simular dois estados. Por exemplo: fixando o
limiar de um volta, uma tensão (ou "voltarem") pode ser considerada alta (acima de 1V) ou baixa (abaixo
de 1V).
Viram porque o computador utiliza o sistema binário? Para ele é tão fácil utilizar este sistema quanto o é
para nós utilizar o sistema decimal.
Assim, temos dois estados, dois algarismos, cada estado representando um algarismo. Em um conjunto de
capacitares, os carregados podem representar o "um" e os descarregados, o "zero". Então, seguindo esta
linha de raciocínio, "um" é corrente fluindo, interruptor fechado, lâmpada acesa, transistor conduzindo,
Nada impede que você represente números no sistema binário usando os dedos. Vamos lá: dedo
levantado, um. Dedo abaixado, zero. O "mindinho" fica sendo a posição das unidades.
Agora que entendemos, para comemorar vamos fazer o "V" da vitória. Vamos lá, comemore: levante a
mão direita e faça o "V". Agora diga-nos: que número é este em binário? Fácil: indicador ("pai de todos")
na terceira posição vale 1 X 2 X 2 = 4 e anular ("fura-bolos") na quarta posição vale 1 X 2 X 2 X 2 = 8.
Os demais abaixados valem zero. A soma do seu "V" da vitória vale doze.
Viu?!!! Com os dedos você acaba de criar um sistema revolucionário: o sistema digital!!
Você sabe de onde vem a palavra digital? Digital vem de dedo: dedo, dígito, digital. Entendeu agora?
Entendeu o porquê do sistema digital? Cada algarismo no sistema binário corresponde a um dedo, ou
dígito. Daí o termo digital. Note que não é um dígito qualquer: é um dígito binário.
Dígito binário?! Ora, isto em inglês é binary digit. Olha só, escrevendo de um jeito diferente... BInary
DigiT. Entendeu?...
Sua excelência, primeiro e único, o pilar, a célula mater da sociedade informática, o famoso... tchan...
tchan... tchan...
BIT !!
É claro que o fato do termo "bit", ainda em inglês, significar "pedacinho", partícula, ajudou: na verdade,
um bit é a menor porção de informação que pode ser armazenada em um computador.
Agora, tomemos como exemplo o número 367. Como esta quantidade seria representada no sistema
binário? Vejamos ...
367 = 1X28 + 0X27 + 1X26 + 1X25 + 0X24 + 1X23 + 1X22 + 1X21 + 1X20
(101101111)2 = 367
Agora que já aprendemos a representar quantidades nos sistemas decimal e binário, vejamos outro
sistema também muito importante, o sistema hexadecimal. Este sistema (bastante simples apesar do nome
complicado) utiliza uma base com dezesseis caracteres. Quais são? Bom, procuremos, para facilitar as
coisas, utilizar caracteres já conhecidos. Assim, temos os algarismos de 0 a 9, que perfazem o total de 10
caracteres. Para completar os dezesseis caracteres, nada mais simples que utilizar as seis primeiras letras
do alfabeto: "A", "B", "C", "D" , "E" e "F".
Temos então que os caracteres que compõem o sistema hexadecimal são os seguintes:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
(B)16 = 11; (C)16 = 12; (D)16 = 13; (E)16 = 14; (F)16 = 15;
É claro que a formação dos números na base hexadecimal obedece às mesmas regras já estudadas para os
sistemas decimal e binário.
Para mostrar isto, tomemos como exemplo o número 367. Utilizando as regras já conhecidas teremos:
Você já deve ter reparado que ao contrário do sistema binário que necessita de muitos "zeros" e "uns"
para representar pequenas quantidades, o sistema hexadecimal pode representar grandes quantidades com
um número menor de caracteres. É por isto que este sistema é também muito utilizado em informática.
Além dos sistemas já apresentados, existe um outro que, embora em menor escala é também utilizado em
informática. Este sistema é o octal. O sistema octal é o sistema de base oito que utiliza os algarismos de
"0" a "7" para representar números. Neste sistema, o número 367, por exemplo é representado da seguinte
forma:
(557)8 = 367
Bom, que tal agora que já aprendemos a lidar com sistemas diferentes do sistema decimal, consolidarmos
nossos conhecimentos praticando um pouco, com bases diferentes? Vamos lá, então...
Vamos começar descobrindo qual a quantidade representada pelo número 110100011 em binário. É fácil,
vamos lá...
(110100011)2 = 1X28 + 1X27 + 0X26 + 1X25 + 0X24 + 0X23 + 0X22 + 1X21 + 1X20
(110100011)2 = 419
Outro exemplo:
(10110)2 = 16 + 0 + 4 + 2 + 0
(10110)2 = 22
Agora vamos ver como é que se faz para representar quantidades na base hexadecimal.
(125A)16 = 4698
Outro exemplo:
(B8)16 = 176 + 8
(B8)16 = 184
Agora um exemplo em octal:
Ao ler estes exemplos você reparou que o que fizemos foi nada mais nada menos que transformar
números de bases 2, 16 e 8 para a base decimal? Pois bem, isto nos remete à seguinte questão: se tivermos
um número expresso na base 8, por exemplo e quisermos transformá-lo para a base 16, como fazer?
Ou seja, suponha que você tenha um determinado número, por exemplo, vinte e nove, expresso na base
binária, neste caso ele seria expresso na forma (11101) 2, e quisesse expressá-lo na base hexadecimal,
como proceder? A partir de agora começamos a estudar algumas regrinhas que tornarão esta tarefa
bastante simples.
Comecemos então pelas transformações de base mais importantes, as que envolvem a base decimal:
Creio que em matéria de mudança de bases, a primeira coisa que devemos aprender é transformar
números de bases diferentes para a base decimal. É muito fácil !! Querem ver?
Pois bem, aqui vai a receitinha de bolo: para transformar números de qualquer base para a base decimal,
basta multiplicar cada algarismo deste número pelo valor da base, tantas vezes quanto for sua posição,
menos uma. Feitas estas operações, somam-se os resultados assim obtidos.
= 32 + 0 + 8 + 4 + 0 + 1 = 45
(101101)2 = (45)10
Agora vamos ver como funciona a operação inversa. Para transformar números da base decimal para as
bases binária, hexadecimal ou octal, basta dividir sucessivamente o número expresso na base decimal
pelo valor da nova base, aproveitando o último quociente e o resto das operações, de baixo para cima (ou
de trás pra frente).
Dividimos sucessivamente por 2, aproveitando o último quociente e o resto das operações, de baixo para
cima.
Exemplo: (43)10
Pegando o último quociente (= 1) e os restos das sucessivas divisões de baixo para cima (ou do fim para o
começo), obteríamos:
Analogamente à transformação de decimal para binário, dividimos sucessivamente por 16, aproveitando o
último quociente e o resto das operações, de baixo para cima.
Exemplo: (859)10
Pegando outra vez o último quociente (= 3) e os restos das sucessivas divisões de baixo para cima (ou do
fim para o começo), obteríamos:
(859)10 = (35B)16
Exemplo: (237)10
As mudanças que envolvem as bases decimais são as mais importantes. Entretanto, aquelas que envolvem
as bases binárias e hexadecimais também são muito importantes.
Prof. Guilherme Azeredo Martins 14
2.8 Bytes
Já descobrimos que um "bit" nada mais é do que um dígito binário, ou seja, um algarismo de um número
representado no sistema numérico posicional de base dois (sistema binário). Por exemplo: a quantidade
quarenta e cinco, como vimos, é representada em binário por 101101, um número de seis algarismos,
portanto de seis bits, certo? Pois então vamos continuar e tentar descobrir mais coisas.
Como já vimos no início desta apostila, os primeiros computadores pessoais foram baseados em
microprocessadores de oito bits. O microprocessador ou CPU, como veremos, é o principal componente
do computador, o coração da máquina. Entretanto, por enquanto basta-nos saber que por causa disto, no
início trabalhou-se com conjuntos de 8 bits.
Com oito bits pode-se representar duzentos e cinqüenta e seis caracteres (por quê?), mais do que
suficiente para representar todas as letras maiúsculas e minúsculas, além dos algarismos, sinais de
pontuação, caracteres acentuados e símbolos tais como "=", "+", etc.
As CPU's evoluíram e já vai longe o tempo das de oito bits. Atualmente existem micros que operam com
64 bits, entretanto, o conjunto de oito bits permaneceu como padrão para a representação de caracteres e
códigos em geral. Pois bem: a este conjunto de oito bits dá-se o nome de BYTE.
Um byte então nada mais é que um conjunto de oito bits com o qual pode-se representar um total de 256
símbolos. Estes símbolos, dependendo do contexto em que a CPU os utiliza, podem ser caracteres,
quantidades, códigos, comandos para executar instruções, etc. Um byte é um conjunto de 8 bits cujo valor
pode variar de zero até 255. Assim, o menor grupo ordenado de bits representando uma informação útil e
inteligível para o ser humano é o caractere ou byte.
Existem diversas maneiras de agrupar os bits para formar as informações. Cada uma delas se constitui um
código.
Código EBCDIC (Extended Binary Coded Decimal Interchange Code), que significa código BCD
(Decimal codificado em binário) ampliado para a troca de informação;
O código EBCDIC é um código de oito bits. Assim, como já vimos, permite representar 256 caracteres
("A", "B", "c", "%", "#", "}", etc). Entretanto, nem todos os caracteres representados são visíveis. Alguns
são códigos de controle.
Código ASCII (American Standard Code for Information Interchange), que significa Código Padronizado
Americano para a Troca de Informações.
O código ASCII também é um código de oito bits. Entretanto neste código em certos casos somente são
representados 128 caracteres. O motivo é que o oitavo bit (bit mais representativo) é algumas vezes usado
como bit de checagem, isto é, bit de paridade.
Assim, cada caractere representado pelo computador tem um código binário que para facilitar a leitura é
representado em hexadecimal. Abaixo você encontra alguns exemplos.
Os termos M, G e K aqui referidos são letras indicativas de um valor numérico fixo utilizado para reduzir
a quantidade de algarismos representativos de um número. Nas grandezas métricas usa-se K (Kilo) para
representar valores 1000 vezes maiores e M para valores 1000000 vezes maiores.
Como os computadores são binários, todas as indicações numéricas referem-se a potências de 2, e por
esta razão, o K representa 1024 unidades (décima potência de 2 ou 2 10 = 1024 e o M representa 1048576
unidades (valor igual a 1024 X 1024 ou 210 X 210 = 220 ).
Assim, o valor 64 Kbytes (ou 64K), por exemplo, corresponde a 64 X 1024 = 65536 Bytes.
O HARDWARE
Basicamente, conforme pode ser observado no diagrama abaixo, um Microcomputador pode ser dividido
logicamente em 4 módulos. São eles as unidades de entrada, saída, a UCP (Unidade Central de
Processamento) e a memória.
ROM
|
v
DISPOSITIVO DE ====> CPU ====> DISPOSITIVO
ENTRADA DE SAÍDA
^
V
RAM
^ ^ ^ ^
V V V
3.2 Periféricos
São os dispositivos (em geral de entrada e saída) pertencentes ou associados ao microcomputador, que se
encontram instalados fora do núcleo principal UCP/MP, mas, na maioria das vezes, próximos, isto é, na
sua periferia.
São os dispositivos utilizados com o objetivo de introduzir os dados que serão processados pelo
computador. Ex: Teclados, Mouses, Canetas Ópticas, Scanners, Microfones.
São os dispositivos através dos quais o micro fornece o produto final do processamento dos dados. Ex:
Vídeo, Impressora, Caixas de Som, Plotters (impressora especial para desenho de plantas).
São os dispositivos que podem tanto executar funções de entrada quanto de saída de dados.
Ex: Modens
São os dispositivos onde os dados podem ser gravados de forma permanente e lidos quando necessário.
Ex: HD, FD, Pen Drive, Fitas.
3.8 Memória
Como o valor de um bit tem pouco significado, as MP são estruturadas e construídas, grupando-se
conjuntos ordenados de bits, chamados células, que são tratadas pelo sistema como uma unidade
individual de armazenamento. Cada célula de memória é então constituída de "m" bits (é mais simples
fabricar todas as células de tamanho igual e fixo). Cada um dos "m" bits de uma célula pode assumir, em
um determinado instante (por atuação dos impulsos já mencionados), os valores 0 ou 1.
Assim, o endereço de uma posição de memória é um símbolo permanentemente associado a esta posição
de memória que a individualiza em meio às demais (os endereços vêm de fábrica e não podem ser
alterados).
Tais endereços por serem seqüenciais, acarretam a noção de ordenação entre as células, o que facilita e
aumenta a rapidez do processamento.
O ato de designar uma posição de memória pelo seu endereço recebe o nome de endereçamento.
Uma posição ou local de memória é o lugar físico ocupado na memória de um computador pela unidade
de informação deste computador. As posições de memória de um computador podem ser representadas
por um mapa de memória.
RAM - Random Access Memory => Memória de Acesso Aleatório. Porém, melhor seria: Read And Alter
Memory => Memória [que se pode] ler e alterar. Memória volátil porque o conteúdo se perde quando o
micro é desligado.
É a memória básica de um sistema de computação. É o dispositivo onde o programa (e seus dados) que
vai ser executado é armazenado para que a UCP vá “buscando” instrução por instrução. Trata-se de um
conjunto de posições de memória cujo conteúdo pode ser alterado e que só se mantém enquanto o micro
está ligado. A capacidade da memória RAM é medida pelo nº de bytes que ela pode armazenar.
Resumindo: É o dispositivo onde estão carregados os programas que estão sendo executados.
Tem por objetivo garantir um armazenamento mais permanente de toda a estrutura de dados e programas
do usuário. Pode ser constituída por diferentes tipos de dispositivos, tais como: HD’s, FD’s, CD-ROM.
Chama-se Memória Virtual a uma região do disco para a qual são transferidos dados ou trechos do
programa em execução na RAM, caso esta não tenha espaço suficiente para abrigá-los.
Basicamente é um dispositivo fabricado com tecnologia semelhante às da UCP e da MP, cuja função é
acelerar a velocidade de transferência das informações entre UCP e MP, melhorando com isso o
desempenho do sistema de computação.
Você liga o micro e aquele monte de metal e plástico até então inerme entra em frenética atividade. Os
mostradores luminosos do gabinete se acendem, estranhos ruídos são emitidos, piscam os leds dos drives
e do teclado, em suma: até que a máquina se ponha docilmente à disposição do primeiro comando, ocorre
uma febril atividade. Mas tudo o que sabemos até agora de informática nos garante que o micro, por si
mesmo, não faz absolutamente coisa alguma: só o que a CPU sabe fazer é executar instruções lidas na
memória e é preciso que essas instruções, ou programa, sejam carregadas na memória. Mas o micro faz
tudo aquilo imediatamente após ser ligado, sem que se tenha carregado programa algum. Que diabo
estaria acontecendo?
Bem, toda aquela atividade tem o nome de “boot”. Que, traduzido do inglês, significa “bota”, ou
“botina”. O que não faz o menor sentido, a menos que se conheça o ditado “rising oneself pulling up the
bootstraps”, usado quando alguém quer fazer sozinho algo que necessariamente requer alguma ajuda,
como levantar-se no ar puxando para cima o cordão das próprias botas. Porque é mais ou menos isso que
Examinar detalhadamente o que acontece durante o boot pode ser um exercício interessante, mas
implicaria em uma digressão muito extensa e fora do programa do nosso curso. Por isso vamos sintetizá-
lo em duas ações: a máquina testa-se a si mesma (por isso aciona todos os periféricos, o que explica tanto
piscar de leds) e carrega o sistema operacional. A primeira ação é interessantíssima (chama-se POST, de
Power On Self Test, ou auto-teste de partida), mas no momento pouco nos interessa. Já a segunda, o
mistério da carga do sistema operacional a partir do nada, é justamente o objeto de nossa discussão: como
pode a máquina ler no disco os arquivos do sistema operacional para carregá-los na memória, se ainda
não carregou (evidentemente...) o próprio sistema operacional, o único ente capaz de “entender” o
conceito de arquivos?
Uma solução possível seria gravar o sistema operacional em chips de memória ROM. Para entender como
isso poderia funcionar, precisamos lembrar-nos do que vem a ser memória ROM. Pois não há mistério:
ROM vem de “Read Only Memory”, ou memória apenas para leitura. Um tipo de memória que, como a
nossa conhecida memória RAM, pode armazenar bytes (e, portanto, guardar um programa). Mas que,
diferentemente da RAM, não pode ter seu conteúdo alterado. Em contrapartida, é perene e não perde as
informações que armazena quando a máquina é desligada.
É justamente essa última propriedade que poderia resolver nosso problema: se armazenássemos em chips
de memória ROM um programa cuja instrução inicial esteja em um endereço conhecido, para o qual o
ponteiro de instruções da CPU “aponta” no momento em que ela é energizada, esse programa seria
executado automaticamente assim que a máquina fosse ligada. Uma solução perfeita para o sistema
operacional, não fosse por dois detalhes pequenos mas relevantes: a memória ROM exige longos tempos
de acesso (ler bytes sucessivos em ROM leva um tempo mais longo que em RAM, o que faz com que
programas armazenados em ROM sejam de execução muito lenta) e, como sabemos, a memória ROM
não pode ser alterada. Ora, o sistema operacional é executado o tempo todo, mesmo quando outros
programas estão “rodando”, e por isso não pode ser lento. E precisa ser freqüentemente atualizado (por
isso tantas “versões” dos sistemas operacionais mais populares). Se gravado em chips de memória ROM,
para atualizar a versão seria necessário trocar os chips. Por essas razões, embora alguns micros portáteis
usem o sistema operacional gravado em ROM, essa é a exceção, não a regra. Portanto, a memória ROM
não resolve nosso problema: o sistema operacional deve ser carregado na memória RAM (mais rápida) e
lido do disco (para permitir mudar de versão meramente atualizando arquivos).
Mas nada impede que o programa que executa o POST seja gravado em ROM: afinal, ele é executado
uma única vez a cada partida e por isso não é tão importante que seja rápido. E nem precisa ser atualizado
com tanta freqüência, pois os dispositivos que são testados não mudam a toda hora. Pois ele é, de fato,
gravado em ROM. Por isso a máquina parte tão serelepe para executar o POST assim que ligada.
Portanto, há um programa gravado em ROM que é executado automaticamente tão logo o micro é ligado.
Então, já que é assim, por que não incorporar a ele as rotinas necessárias para ler do disco os arquivos do
sistema operacional? Bem, o problema é que o programa não “sabe” o que é um arquivo. Infelizmente só
quem “sabe” dessas coisas é o sistema operacional, e o programa roda antes que ele seja carrregado.
Portanto, o programa não pode encontrar um arquivo no disco. A não ser que...
3.9 PROCESSADORES
"Velocidade" do chip. Porque entre aspas? Ora, porque a velocidade da CPU de minha máquina,
evidentemente, é zero. Já que, felizmente, ela passa todo o tempo parada em cima de minha mesa e
velocidade é uma grandeza física definida: o espaço percorrido na unidade de tempo. A grandeza usada
para medir a rapidez ou lentidão com que um chip trabalha é a freqüência, ou número de operações
elementares (ciclos) executadas na unidade de tempo. E freqüência se mede em Hertz. Um Hertz é igual a
um ciclo por segundo. Como nossas máquinas são capazes de executar milhões de operações por
segundo, para avaliar sua rapidez usa-se o MegaHertz, um múltiplo do Hertz. Um MegaHertz é igual a
um milhão de ciclos por segundo e sua abreviação é MHz. Portanto, uma CPU de 33MHz é aquela cuja
freqüência de operação é igual a trinta e três milhões de ciclos por segundo. Um negócio muito rápido.
Memória virtual.
Outro ponto de interesse é a capacidade de manejar a memória virtual. Que consiste em "fingir" que a
máquina dispõe de muito mais memória do que realmente existe. Vejamos como essa mágica é possível.
Imagine que você está executando um programa de editoração eletrônica. E está editando um livro muito
grande. Imagine ainda que a máquina tem 4Mb de memória RAM, dos quais o código executável do
programa ocupa 500K. E o texto e figuras de seu livro ocupam mais 6Mb. Impossível? Não, se a CPU
"souber" manejar memória virtual. Ela carrega na memória o programa e mais o tanto que couber dos
dados. Quando se esgota a memória RAM, a CPU copia "pedaços" de memória para o disco e enche os
trechos assim liberados com o resto dos dados, até que todo o livro seja carregado. É como se "retratos"
da memória fossem transcritos para o disco. O que é possível, já que tanto na memória quanto no disco o
que se tem é um conjunto de bytes em uma determinada ordem. A diferença essencial é que a CPU só
pode "rodar" o que está na memória: no disco, tudo fica "congelado". O programa precisa acessar um
trecho que está no disco? Sem problema: a CPU rapidamente "troca" o trecho do disco com um trecho da
memória RAM que não está sendo usado naquele momento, sem que o programa sequer tome
conhecimento. A tramóia é tão bem feita que até mesmo código executável pode ser jogado da memória
para disco e vice-versa. Evidentemente, na hora de executar a CPU precisa trazê-lo de volta para a
memória. É por isso que algumas vezes, quando se está rodando Windows, por exemplo, a luz do disco
rígido acende repentinamente mesmo quando não se espera nenhum acesso à disco: é a CPU executando
Prof. Guilherme Azeredo Martins 21
sua silenciosa faina de trocar código e dados da memória real (RAM) para a virtual (disco). E é também
por isso que em máquinas com pouca memória RAM, por vezes tudo fica muito lento: afinal, acesso à
memória RAM é muito mais rápido que a disco.
Algumas CPU são capazes de fazer isso, outras não. E, das que o fazem, umas podem usar muito mais
espaço em disco que outras. Então, no que toca à memória virtual, interessa não somente o fato da CPU
poder manejá-la, mas também que "tamanho" a memória virtual pode ocupar em disco. Quando
examinarmos as CPU, veremos ambas as características de cada uma.
E enfim chegamos ao final do começo. Agora estamos prontos a examinar a primeira geração de
microprocessadores da linha PC.
LISTA DE EXERCÍCIOS I
ESTUDO DIRIGIDO II
1. Conceitue Byte.
2. Um byte é um conjunto de 8 bits que pode representar um total de: ......... caracteres.
4. No código ASCII, para que é utilizado o oitavo bit (bit mais representativo)? Para que serve este bit?
6. Um computador tem 128 Kbytes de memória. Quantos bits tem esta memória?
7. Um computador tem 256 K de memória. Quantas letras podem ser armazenadas simultaneamente em sua
memória utilizando o código EBCDIC?
9. Supondo que em uma página cabem 64 colunas e 32 linhas de caracteres e que um volume da enciclopédia
Barsa tem 512 folhas (cada uma com duas páginas, frente e verso) e que uma enciclopédia Barsa é constituída
por 16 volumes, qual a capacidade (em Mbytes) do HD que devo adquirir para armazenar uma enciclopédia
Barsa? Quantas Barsas cabem em um Hd de 1.2 Gb?
10. Qual a capacidade de armazenamento (em KB, MB e GB) que deve possuir um disco para armazenar os
1024 livros contábeis de uma empresa, cada um com 512 folhas (frente e verso) c/ 36 linhas e 128 colunas de
caracteres por página? Dentre os discos existentes no mercado, qual escolher?
OBS: Discos existentes no mercado: 40 Mb, 80 Mb, 120 Mb, 360Mb, 560 Mb, 850 Mb, 1.2 Gb, 16 Gb
11. O almoxarifado de uma empresa possui 1024 ítens. Cada ítem é representado por um código de 8
caracteres.
No departamento pessoal desta empresa estão cadastrados 4096 funcionários. O prontuário de cada
funcionário possui 4 páginas, cada uma com 64 colunas e 64 linhas de caracteres.
O restante da documentação da empresa está no armário do gerente e é composto por 256 pacotes, cada um
com 1024 folhas ( frente e verso). Cada página da folha possui 128 colunas e 16 linhas de caracteres.
A empresa necessita de um novo disco para armazenar todos os dados acima descritos. Qual dos discos abaixo
deve ser o escolhido?
21. Conceitue (o que é?) e descreva (tal como descrito na apostila) o processo de BOOT.
25. Cite um dispositivo que pode ser definido tanto como unidade de armazenamento quanto como unidade de
E/S(Entrada e Saída).
29. Cite um dispositivo de entrada e saída que não seja também de armazenamento.