You are on page 1of 108

ndice

NMEROS DE PRECISO FINITA..........................................................................7

SISTEMA DE NUMERAO ....................................................................................8


2.1

2.1.1

Sistemas de Numerao Posicionais................................................................8

2.1.2

Base de um Sistema de Numerao ............................................................... 10

2.1.3

Representao Binria.................................................................................. 11

2.1.4

Representao em Octal e em Hexadecimal .................................................. 14

2.2

CONVERSES ENTRE BASES ...................................................................................15

2.2.1

Converses entre as bases 2, 8 e 16............................................................... 16

2.2.2

Converso de Nmeros em uma base b qualquer para a base 10...................16

2.2.3

Converso de Nmeros da Base 10 para uma Base b qualquer .....................18

2.2.4

Converso de Nmeros entre duas Bases quaisquer ...................................... 19

2.3

BASE DE UM SISTEMA DE NUMERAO ....................................................................8

ARITMTICA EM BINRIO.......................................................................................20

2.3.1

Soma ............................................................................................................. 20

2.3.2

Subtrao...................................................................................................... 21

2.3.3

Complemento a Base.....................................................................................22

2.3.4

Multiplicao e Diviso ................................................................................23

2.3.5

Representao de Nmeros em Complemento ............................................... 24

2.3.5.1

Representao de Nmeros Positivos em Complemento ............................24

2.3.5.2

Representao de Nmeros Negativos em Complemento A (Base - 1).......25

CIRCUITOS LGICOS ............................................................................................26


3.1.1

Conceitos de Lgica Digital ..........................................................................26

3.1.2

Operadores Lgicos ...................................................................................... 27

3.1.2.1

E (ou AND)............................................................................................... 27

3.1.2.2

OU (ou OR) ..............................................................................................27

3.1.2.3

NO (ou NOT) .........................................................................................27

3.1.3

Tabela Verdade............................................................................................. 27

3.1.3.1

AND - Funo E .......................................................................................28

3.1.3.2

OR - Funo OU .......................................................................................28

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

3.1.3.3
3.1.4

Aplicao da lgebra de Boole aos Computadores Digitais .......................... 28

3.1.5

Porta Lgica ou Gate.................................................................................... 31

3.2

PORTAS LGICAS ...................................................................................................32

3.2.1

Porta NOT (NO) .........................................................................................32

3.2.2

Porta AND (E) ..............................................................................................33

3.2.3

Porta OR (OU)..............................................................................................33

3.2.4

Porta NAND (NO E) ...................................................................................33

3.2.5

Porta NOR (NO OU) .................................................................................. 34

3.2.6

Porta XOR (OU EXCLUSIVO)...................................................................... 34

3.3

ALGEBRA DE BOOLE ..............................................................................................35

3.3.1

Avaliao de uma Expresso Booleana .........................................................35

3.3.2

Equivalncia de Funes Lgicas ................................................................. 36

3.3.3

Propriedade da lgebra de Boole ................................................................. 37

3.3.4

Propriedades da Funo XOR (EXCLUSIVE OR).........................................37

3.4

REPRESENTAO DE CIRCUITOS COM AS FUNES NAND E NOR.......................... 37

3.4.1

Circuito Inversor........................................................................................... 38

3.4.2

Circuito AND ................................................................................................38

3.4.3

Circuito OR...................................................................................................38

3.5

FORMAS CANNICAS ............................................................................................. 39

3.5.1

Representao de um Circuito atravs de uma Tabela Verdade .................... 39

3.5.2

Soma dos Minitermos .................................................................................... 41

3.5.3

Produto dos Maxitermos ............................................................................... 41

3.6

NOT - Funo NO.................................................................................. 28

CONSTRUO DE CIRCUITOS REAIS DE COMPUTADOR ............................................43

3.6.1

Circuitos Aritmticos .................................................................................... 43

3.6.2

Circuito Meio-Somador................................................................................. 45

3.6.3

Circuito Somador Completo..........................................................................46

A ARQUITETURA DOS COMPUTADORES .........................................................48


4.1

DIAGRAMA DE BLOCOS DOS COMPUTADORES .........................................................48

4.2

UNIDADE CENTRAL DE PROCESSAMENTO ............................................................... 49

4.3

MEMRIA PRINCIPAL (MP) .................................................................................... 49

4.3.1

Tecnologias das memrias ............................................................................52

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

4.3.2

Hierrquia da memria................................................................................. 52

4.3.3

Controle de Memria .................................................................................... 52

4.3.4

Registradores ................................................................................................53

4.3.5

Memria Cache............................................................................................. 53

4.3.6

Memrias Auxiliares .....................................................................................54

4.3.7

Estrutura da Memria Principal - Clulas e Endereos................................. 55

4.3.8

Capacidade da Memria Principal................................................................57

4.3.9

Terminologia................................................................................................. 58

4.4

UNIDADE CENTRAL DE PROCESSAMENTO ............................................................... 59

4.4.1

Unidade Aritmtica e Lgica.........................................................................59

4.4.2

Unidade de Controle .....................................................................................59

4.4.3

Registradores Importantes na UCP............................................................... 60

4.4.4

Instrues .....................................................................................................60

4.4.4.1

Formato Geral de uma Instruo................................................................61

4.4.5

Conjunto de Instrues.................................................................................. 62

4.4.6

Ciclo de Instruo.........................................................................................63

4.5

COMUNICAO ENTRE MEMRIA PRINCIPAL E A UNIDADE CENTRAL DE

PROCESSAMENTO ..............................................................................................................64
4.5.1

Barramentos ................................................................................................. 64

4.5.2

Registradores Utilizados ............................................................................... 65

4.6

ESQUEMA DE FUNCIONAMENTO DA COMUNICAO ENTRE MP / UCP.....................65

4.7

PALAVRA (UNIDADE DE INFORMAO) .................................................................. 66

4.8

TEMPO DE ACESSO................................................................................................. 67

4.9

ACESSO MEMRIA PRINCIPAL ............................................................................. 68

4.9.1

4.10

Acesso Tipo Ler ou Escrever .........................................................................68

4.9.1.1

Leitura: Ler da Memria............................................................................68

4.9.1.2

Escrita: Escrever na Memria.................................................................... 69

CLASSIFICAO DAS MEMRIAS ............................................................................69

4.10.1

R/W Read and Write (memria de leitura e escrita) - RAM.........................69

4.10.2

ROM Read Only Memory (memria apenas de leitura) ..............................70

4.10.3

PROM Programmable Read Only Memory (Memria programvel de

leitura) 70
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

4.10.4

EPROM - Erasable Programmable Read Only Memory (Memria

programvel apagvel de leitura)................................................................................. 71


4.10.5

EEPROM ou E2PROM Eletrically Erasable Programmable Read Only

Memory (Memria programvel apagvel eletronicamente).........................................71


4.11

LGICA TEMPORIZADA .......................................................................................... 71

4.11.1

Clock............................................................................................................. 72

4.11.2

Ciclo de Operao ........................................................................................ 72

4.11.3

Instrues por Ciclo...................................................................................... 75

DISPOSITIVOS DE ENTRADAS E SADAS .......................................................... 76


5.1

TIPOS DE DISPOSITIVOS.......................................................................................... 77

5.2

FORMAS DE COMUNICAO ...................................................................................79

5.2.1

Comunicao em Paralelo ............................................................................79

5.2.2

Comunicao Serial ...................................................................................... 80

5.2.3

Tabela Comparativa...................................................................................... 81

5.2.4

Transmisso Sncrona e Assncrona ..............................................................81

5.2.4.1

Transmisso Sncrona................................................................................81

5.2.4.2

Transmisso Assncrona............................................................................82

5.2.5

5.3

Transmisso Simplex, Half-Duplex e Full-Duplex .........................................83

5.2.5.1

Transmisso Simplex ................................................................................83

5.2.5.2

Transmisso Half-Duplex..........................................................................83

5.2.5.3

Transmisso Full-Duplex ..........................................................................84

DISPOSITIVOS DE ENTRADA E SADA ...................................................................... 84

5.3.1

Teclado .........................................................................................................84

5.3.2

Monitor de Vdeo .......................................................................................... 85

5.3.2.1
5.3.3

Tipos de Monitor e Modo de Exibio.......................................................86


Impressoras .................................................................................................. 88

5.3.3.1

Impressoras Alfanumricas .......................................................................88

5.3.3.2

Impressoras Grficas ................................................................................. 88

5.3.3.3

Impressora de Esfera e Impressora Margarida ("daisy wheel") - Caracter .. 88

5.3.3.4

Impressoras de Tambor - Linha ................................................................. 89

5.3.3.5

Impressoras Matriciais - Impacto............................................................... 89

5.3.3.6

Impressoras de Jato de Tinta...................................................................... 89

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

5.3.3.7
5.3.4
5.3.4.1
5.3.5

Fita Magntica..............................................................................................89
Tipos de Fitas............................................................................................90
Discos Magnticos ........................................................................................ 91

5.3.5.1

Organizao Fsica da Informao nos Discos ........................................... 91

5.3.5.2

Tempo de Acesso ...................................................................................... 92

5.3.5.3

Tempo de Seek.......................................................................................... 92

5.3.5.4

Tempo de Latncia .................................................................................... 92

5.3.5.5

Tempo de Transferncia ............................................................................93

5.3.6

Discos Rgidos ..............................................................................................93

5.3.7

Discos Flexveis ............................................................................................95

5.3.7.1
6

Impressoras Laser...................................................................................... 89

Clculo do Espao de Armazenamento em um Disco ................................96

EXECUO DE PROGRAMAS ..............................................................................96


6.1

PROGRAMA EM LINGUAGEM DE MQUINA ............................................................. 96

6.2

LINGUAGEM DE MONTAGEM .................................................................................. 97

6.3

LINGUAGEM DE PROGRAMAO............................................................................. 98

6.4

TRADUO ............................................................................................................99

6.5

MONTAGEM........................................................................................................... 99

6.6

COMPILAO....................................................................................................... 100

6.7

BIBLIOTECAS ....................................................................................................... 100

6.8

LIGAO ............................................................................................................. 101

6.9

INTERPRETAO .................................................................................................. 101

6.10

COMPARAO ENTRE COMPILAO E INTERPRETAO ........................................ 102

6.10.1

Tempo de Execuo..................................................................................... 102

6.10.2

Consumo de Memria ................................................................................. 102

6.10.3

Repetio de Interpretao ......................................................................... 102

6.10.4

Desenvolvimento de Programas e Depurao de Erros............................... 103

6.11

EMULADORES E MQUINAS VIRTUAIS .................................................................. 103

CONCEITOS DE INTERRUPO E TRAP ......................................................... 105

BIBLIOGRAFIA E LEITURAS AUXILIARES..................................................... 106

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

NMEROS DE PRECISO FINITA

Ao se executarem operaes aritmticas, geralmente se d pouca importncia


questo de quantos dgitos decimais so gastos para representar um nmero. Os fsicos podem calcular que existem 1078 eltrons no universo sem se preocuparem
com o fato de que so necessrios 79 dgitos decimais para escrever o nmero
completo. Ao se calcular o valor de uma funo utilizando lpis e papel, necessitando de uma resposta com seis dgitos significativos, basta manter resultados intermedirios com sete, oito dgitos ou quantos forem necessrios. Nunca acontece de o
papel no ser suficientemente grande para nmeros de sete dgitos.
Com os computadores bastante diferente. Na maioria dos computadores, a quantidade de memria disponvel para armazenar um nmero determinada no instante
em que o computador projetado. Com um certo esforo, o programador pode representar nmeros com duas, trs ou mesmo muitas vezes esta quantidade fixa,
mas isto no muda a natureza deste problema. A natureza finita do computador nos
fora a lidar apenas com nmeros que podem ser representados com um nmero fixo de dgitos. Chamamos tais nmeros de nmeros de preciso finita.
Para estudar as propriedades dos nmeros de preciso finita, vamos examinar o
conjunto dos inteiros positivos representveis por trs dgitos decimais, sem ponto
decimal e sem sinal. Este conjunto tem exatamente 1000 elementos: 000, 001, 003,
..., 999. Com esta restrio, impossvel expressar vrios conjuntos importantes de
nmeros, tais com:
1. Nmeros maiores que 999.
2. Nmeros negativos.
3. Nmeros irracionais e fracionrios.
4. Nmeros complexos.
Podemos concluir que embora os computadores sejam dispositivos de uso geral,
sua natureza finita os torna inadequados para operaes aritmticas. Esta concluso, naturalmente, no verdadeira porque ela serve para ilustrar a importncia de
entender como os computadores trabalham e quais so as suas limitaes.

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

SISTEMA DE NUMERAO

Os sistemas de numerao tem por objetivo prover smbolos e convenes para representar quantidades, de forma a registrar a informao quantitativa e poder process-la. A representao de quantidades se faz com os nmeros. Na antigidade,
duas formas de representar quantidades foram inventadas. Inicialmente, os egpcios,
criaram um sistema em que cada dezena era representada por um smbolo diferente. Usando por exemplo os smbolos # para representar uma centena, & para representar uma dezena e @ representando uma unidade (smbolos escolhidos ao acaso), teramos que ###&&@ representaria 321.
Relembremos ainda um outro sistema, o sistema de numerao romano. Eram usados smbolos (letras) que representavam as quantidades, como por exemplo: I ( valendo 1), V (valendo 5), X (valendo 10), C (valendo 100), etc. A regra de posicionamento determinava que as letras que representavam quantidades menores e precediam as que representavam quantidades maiores, seriam somadas; se o inverso ocorresse, o menor valor era subtrado do maior (e no somado). Assim, a quantidade
128 era representada por CXXVIII = 100 + 10 + 10 + 5 + 1 + 1 + 1 = 128. Por outro
lado, a quantidade 94 era representada por XCIV = (-10 + 100) + (-1 + 5) = 94.
Nesses sistemas, os smbolos tinham um valor intrnseco, independente da posio
que ocupavam na representao (sistema numrico no-posicional). Um grande
problema desse sistema a dificuldade de realizar operaes com essa representao. Experimente multiplicar CXXVIII por XCIV! Assim, posteriormente foram criados
sistemas em que a posio dos algarismos no nmero passou a alterar seu valor
(sistemas de numerao posicionais).

2.1

Base de um Sistema de Numerao

2.1.1 Sistemas de Numerao Posicionais


Nos sistemas de numerao posicionais, o valor representado pelo algarismo no
nmero depende da posio em que ele aparece na representao. O primeiro sistema desse tipo foi inventado pelos chineses. Eram usados palitos, sendo 1 a 5 paliApostila de Introduo aos Sistemas de Computao - Prof. Bruno

tos dispostos na vertical para representar os nmeros 1 a 5; de 6 a 9 eram representados por 1 a 4 palitos na vertical, mais um palito na horizontal (valendo 5) sobre os
demais. Cada nmero era ento representado por uma pilha de palitos, sendo uma
pilha de palitos para as unidades, outra para as dezenas, outra para as centenas,
etc. Esse sistema, com as pilhas de palitos dispostas em um tabuleiro, permitia a realizao das quatro operaes aritmticas. No existia representao para o zero (o
espao relativo ficava vazio). O tabuleiro aritmtico (chamado swan-pan), alm das
quatro operaes, era usado na lgebra e na soluo de equaes. Essa tcnica era
chamada de Mtodo do Elemento Celestial.
O Alfabeto e o baco
No Oriente Mdio, por esses tempos, criou-se uma das mais importantes invenes
da humanidade: o alfabeto. Na antigidade, usava-se um smbolo para representar
cada conceito ou palavra. Assim, eram necessrios milhares de smbolos para representar todos os objetos, aes, sentimentos, etc - como so ainda hoje algumas
linguagens. Como decorar todos? O grande achado foi decompor a linguagem em
alguns poucos smbolos e regras bsicas. Uma conseqncia de fundamental importncia para nossos estudos de informtica foi possibilitar a ordenao alfabtica
(essa uma tarefa tpica dos computadores). Nessa poca, foi tambm criado o baco - uma calculadora decimal manual.
Os Algarismos e o Zero
Por volta do ano de 650, os hindus inventaram um mtodo de produzir papel (que
antes j fora inventado pelos chineses) e seus matemticos criaram uma representao para os nmeros em que existiam diferentes smbolos para os as unidades,
incluindo um smbolo para representar o zero. Essa simples criao permitiu que se
processasse a aritmtica decimal e se fizesse contas - no papel! Bom, depois de milhares de anos em que todos os clculos eram feitos com calculadoras (bacos,
swan-pan, etc) finalmente era possvel calcular sem auxlio mecnico, usando um
instrumento de escrita e papel. A matemtica criada pelos hindus foi aprendida pelos
rabes (que depois foram copiados pelos europeus). Por volta de 830, um matemtico persa (chamado Al-khwarismi, que inspirou o nome algarismo) escreveu um livro
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

(Al-gebr we'l Mukabala, ou lgebra) em que apresentava os algarismos hindus. E


esse livro, levado para a Europa e traduzido, foi a base da matemtica do Renascimento.
Desde quando se comeou a registrar informaes sobre quantidades, foram criados
diversos mtodos de representar as quantidades.
O mtodo ao qual estamos acostumados usa um sistema de numerao posicional.
Isso significa que a posio ocupada por cada algarismo em um nmero altera seu
valor de uma potncia de 10 (na base 10) para cada casa esquerda.
Por exemplo, no sistema decimal (base 10), no nmero 125 o algarismo 1 representa 100 (uma centena ou 102) , o 2 representa 20 (duas dezenas ou 1x101) e o 5 representa 5 mesmo (5 unidades ou 5x100). Assim, em nossa notao,
125 = 1x102 + 2x101 + 5x100
2.1.2 Base de um Sistema de Numerao
A base de um sistema a quantidade de algarismos disponvel na representao. A
base 10 hoje a mais usualmente empregada, embora no seja a nica utilizada.
No comrcio pedimos uma dzia de rosas ou uma grosa de parafusos (base 12) e
tambm marcamos o tempo em minutos e segundos (base 60).
Os computadores utilizam a base 2 (sistema binrio) e os programadores, por facilidade, usam em geral uma base que seja uma potncia de 2, tal como 24 (base 16 ou
sistema hexadecimal) ou eventualmente ainda 23 (base 8 ou sistema octal).
Na base 10, dispomos de 10 algarismos para a representao do nmero: 0, 1, 2, 3,
4, 5, 6, 7, 8 e 9. Na base 2, seriam apenas 2 algarismos: 0 e 1. Na base 16, seriam
16: os 10 algarismos aos quais estamos acostumados, mais os smbolos A, B, C, D,
E e F, representando respectivamente 10, 11, 12, 13, 14 e 15 unidades.
A representao 125,3810 (base 10) significa 1x102+ 2x101+ 5x100 + 3x10-1+ 8x10-2.
Generalizando, representamos uma quantidade N qualquer, numa dada base b, com
um nmero tal como segue:
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

10

Nb = an.bn + .... + a2.b2 + a1.b1 + a0.b0 + a-1.b-1 + a-2.b-2 + .... + a-n.b-n sendo que
an.bn + .... + a2.b2 + a1.b1 + a0.b0 a parte inteira e
a-1.b-1 + a-2.b-2 + .... + a-n.b-n a parte fracionria.
Intuitivamente, sabemos que o maior nmero que podemos representar, com n algarismos, na base b, ser o nmero composto n vezes pelo maior algarismo disponvel
naquela base (ou seja, b-1). Por exemplo, o maior nmero que pode ser representado na base 10 usando 3 algarismos ser 999 (ou seja, 103 - 1 = 999).
Podemos ver que o maior nmero inteiro N que pode ser representado, em uma dada base b, com n algarismos (n "casas"), ser N = bn - 1. Assim, o maior nmero de
2 algarismos na base 16 ser FF16 que, na base 10, eqivale a 25510 = 162 - 1.

2.1.3 Representao Binria


Os computadores modernos utilizam apenas o sistema binrio, isto , todas as informaes armazenadas ou processadas no computador usam apenas DUAS grandezas, representadas pelos algarismos 0 e 1. Essa deciso de projeto deve-se
maior facilidade de representao interna no computador, que obtida atravs de
dois diferentes nveis de tenso (ver em Bits & Bytes). Havendo apenas dois algarismos, portanto dgitos binrios, o elemento mnimo de informao nos computadores foi apelidado de bit (uma contrao do ingls binary digit).
Bits & Bytes
Devido simplicidade de projeto e construo, acarretando na reduo de seu custo
e maior confiabilidade, os circuitos eletrnicos que formam os computadores digitais
atuais so capazes de distinguir apenas dois nveis de tenso - computadores digitais binrios. Estes sinais eltricos so tenses que assumem dois diferentes valores: um valor positivo (hoje, nos PC's, cerca de +3 V - trs volts positivos) para representar o valor binrio 1 e um valor aproximado a 0 V (zero volt) para representar
o valor binrio 0. Na realidade, estes valores no so absolutos, e sim faixas de valores, com uma margem de tolerncia (entre +2.5 e +3.5 V, representando o valor
binrio 1, e entre 0 e + 0,5 V representando o valor binrio 0).
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

11

A lgica que permite aos computadores operar baseados nestes dois valores chamada lgebra de Boole, em homenagem ao matemtico ingls George Boole (18151864).
Obs.: os primeiros computadores eram decimais (por exemplo, o ENIAC) e hoje existem tambm computadores analgicos (para determinadas aplicaes especficas).
BIT uma contrao de BInary DigiT e representa um dos valores possveis em binrio, 0 ou 1.
BYTE um grupo de 8 bits ( bom lembrar que 23 = 8). Em um byte, h 28 = 256
combinaes, portanto pode-se representar 256 diferentes valores, desde 00000000
at 11111111. O termo "byte" foi inventado pela IBM.
Em informtica, a expresso kilo (abreviada por k) eqivale a 210, ou seja 1024. Desta forma, 1 kb eqivale a 210 bits, ou seja 1024 bits e kilobyte (1 kB) eqivale a 210
bytes, ou seja 1024 bytes ou ainda 8.192 bits.
Da mesma forma, a expresso mega eqivale a 220, ou seja 210 x 210 = 1.048.576.
Desta forma, 1 megabit (1 Mb) eqivale a 220 bits, ou seja 1024 kb ou 1.048.576 bits
e 1 megabyte eqivale a 220 bytes, ou seja 1.048.576 bytes.
Seguem-se 1 giga, equivalente a 230 ou 1024 megas, 1 tera, equivalente a 240 ou
1.024 gigas, 1 peta, equivalente a 250 ou 1.024 teras. bom decorar estes termos, e
seus valores, como quem decora uma tabuada. Vamos usar muito isso daqui por diante.
Na base 2, o nmero "10" vale dois. Mas se 102 = 210, ento dez igual a dois?
No, dez no e nunca ser igual a dois!
Na realidade, "10" no significa necessariamente "dez". Ns estamos acostumados
a associar "10" a "dez" porque estamos acostumados a usar o sistema de numerao decimal.
O nmero 102 seria lido "um-zero" na base 2 e vale 210 (convertido para "dois" na
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

12

base dez), 105 seria lido "um-zero" na base 5 e vale 510 (convertido para "cinco" na
base dez), 1010 pode ser lido como "um-zero" na base 10 ou ento como "dez" na
base dez, 1016 seria lido "um-zero" na base 16 e vale 1610 (convertido para "dezesseis" na base dez), etc.
Portanto, 10 s ser igual a dez se - e somente se - o nmero estiver representado
na base dez!
Uma curiosidade: o nmero "10b" vale sempre igual base, porque em uma dada
base b os algarismos possveis vo sempre de 0 a (b - 1)! Como o maior algarismo
possvel em uma dada base b igual a (b-1), o prximo nmero ser (b - 1 + 1 = b)
e portanto ser sempre 10 e assim, numa dada base qualquer, o valor da base ser
sempre representado por "10"!
Obs.: Toda vez que um nmero for apresentado sem que seja indicado em qual sistema de numerao ele est representado, estenderemos que a base dez. Sempre
que outra base for utilizada, a base ser obrigatoriamente indicada.
Um dia pode ser que os computadores se tornem obrigatrios e sejamos todos forados por lei a estudar a aritmtica em binrio! Mas, mesmo antes disso, quem programa computadores precisa conhecer a representao em binrio!
Vamos comear entendendo as potncias de dois:
Repr.Binria Potncia

Repr.Decimal

20

10

21

100

22

1000

23

10000

24

16

100000

25

32

1000000

26

64

10000000

27

128

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

13

100000000

28

256

1000000000

29

512

10000000000 210

1.024

Depois (e s depois) de compreender bem a tabela acima, fazendo a devida correlao com a representao decimal, conveniente decorar os valores da tabela. As
converses entre base 2 e base 10 e as potncias de 2 so utilizadas a todo momento e seria perda de tempo estar toda hora convertendo. Da mesma forma que,
uma vez entendido o mecanismo da multiplicao, decoramos a tabuada, muito
mais efetivo saber de cor a tabela acima que fazer as contas de converso toda vez
que for necessrio.
A representao binria perfeitamente adequada para utilizao pelos computadores. No entanto, um nmero representado em binrio apresenta muitos bits, ficando
longo e passvel de erros quando manipulado por seres humanos normais, como por
exemplo, os programadores, analistas e engenheiros de sistemas. Para facilitar a visualizao e manipulao por programadores de grandezas processadas em computadores, so usualmente adotadas as representaes octal (base 8) e principalmente hexadecimal (base 16). Ressaltamos mais uma vez que o computador opera
apenas na base 2 e as representaes octal e hexadecimal no so usadas no
computador, elas se destinam apenas manipulao de grandezas pelos programadores.
2.1.4 Representao em Octal e em Hexadecimal
Em projetos de informtica (trabalhos realizados pelos programadores, analistas e
engenheiros de sistemas), usual representar quantidades usando sistemas em potncias do binrio (octal e principalmente hexadecimal), para reduzir o nmero de algarismos da representao e consequentemente facilitar a compreenso da grandeza e evitar erros. No sistema octal (base 8), cada trs bits so representados por apenas um algarismo octal (de 0 a 7). No sistema hexadecimal (base 16), cada quatro
bits so representados por apenas um algarismo hexadecimal (de 0 a F).
A seguir, ser apresentada uma tabela com os nmeros em decimal e sua
representao correspondente em binrio, octal e hexadecimal:
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

14

tao correspondente em binrio, octal e hexadecimal:


Base 10 Base 2 Base 8 Base 16
0

10

11

100

101

110

111

1000

10

1001

11

10

1010

12

11

1011

13

12

1100

14

13

1101

15

14

1110

16

15

1111

17

Nota: a base 16 ou sistema hexadecimal pode ser indicada tambm por um "H" ou
"h" aps o nmero; por exemplo: FFH significa que o nmero FF (ou 255 em decimal) est em hexadecimal. No confundir o "H" ou "h" com mais um dgito, mesmo
porque em hexadecimal s temos algarismos at "F" e portanto no existe um algarismo "H".
Exemplo: Como seria a representao do nmero 1610 em binrio, octal e hexadecimal?
Soluo: Seria respectivamente 100002, 208 e 1016.
2.2

Converses entre Bases

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

15

Vamos analisar agora as regras gerais para converter nmeros entre duas bases
quaisquer.

2.2.1 Converses entre as bases 2, 8 e 16


As converses mais simples so as que envolvem bases que so potncias entre si.
Vamos exemplificar com a converso entre a base 2 e a base 8. Como 23 = 8, separando os bits de um nmero binrio em grupos de trs bits (comeando sempre da
direita para a esquerda!) e convertendo cada grupo de trs bits para seu equivalente
em octal, teremos a representao do nmero em octal. Por exemplo:
101010012 = 10.101.0012 (separando em grupos de 3, sempre comeando da direita
para a esquerda). Sabemos que 0102 = 28 ; 1012 = 58 ; 0012 = 18 portanto 101010012
= 2518
Se voc ainda no sabe de cor, faa a converso utilizando a regra geral. Vamos
agora exemplificar com uma converso entre as bases 2 e 16. Como 24 = 16, basta
separarmos em grupos de 4 bits (comeando sempre da direita para a esquerda!) e
converter. Por exemplo:
110101011012 = 110.1010.11012 (separando em grupos de 4 bits, sempre comeando da direita para a esquerda). Sabemos que 1102 = 616; 10102 = A16 ; 11012 =
D16 ; portanto 110101011012 = 6AD16
Vamos agora exercitar a converso inversa. Quanto seria 3F5H (lembrar que o H est designando "hexadecimal") em octal? O mtodo mais prtico seria converter para
binrio e em seguida para octal.
3F5H=11.1111.01012 (convertendo cada dgito hexadecimal em 4 dgitos binrios) =
= 1.111.110.1012 (agrupando de trs em trs bits) =
= 17658 (convertendo cada grupo de trs bits para seu valor equivalente em octal).
2.2.2 Converso de Nmeros em uma base b qualquer para a base 10
Vamos lembrar a expresso geral j apresentada:
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

16

Nb = an.bn + .... + a2.b2 + a1.b1 + a0.b0 + a-1.b-1 + a-2.b-2 + .... + a-n.b-n


A melhor forma de fazer a converso usando essa expresso. Tomando como exemplo o nmero 1011012, vamos calcular seu valor representado na base dez. Usando a expresso acima, fazemos:
1011012 = 1x25 + 0x24 + 1x23 + 1x22 + 0x21 + 1x20 = 32 + 0 + 8 + 4 + 0 + 1 = 4510
Podemos fazer a converso de nmeros em qualquer base para a base 10 usando o
algoritmo acima.
Exemplos:
a) Converter 4F5H para a base 10 .
Soluo: Lembramos que o H significa que a representao hexadecimal (base
16). Sabemos ainda que F16=1510. Ento: 4x162 + 15x161 + 5x160 = 4x256 + 15x16 +
5 = 1024 + 240 + 5 = 126910
b) Converter 34859 para a base 10.
Soluo: 3x93 + 4x92 + 8x91 + 5x90 = 3x729 + 4x81 + 8x9 + 5 = 2187 + 324 + 72 + 5 =
258810.
c) Converter 7G16 para a base 10.
Soluo: Uma base b dispe dos algarismos entre 0 e (b-1). Assim, a base 16 dispe dos algarismos 0 a F e portanto o smbolo G no pertence representao hexadecimal.
d) Converter 1001,012 para a base 10.
Soluo: 1x23 + 0x22 + 0x21 + 1x20 + 0x2-1 + 1x2-2 = 8 + 0 + 0 + 1 + 0 + 0,25 = 9,2510
e) Converter 34,35 para a base 10.
Soluo: 3x51 + 4x50 + 3x5-1 = 15 + 4 + 0,6 = 19,610
f) Converter 38,38 para a base 10.
Soluo: Uma base b dispe dos algarismos entre 0 e (b-1). Assim, a base 8 dispe
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

17

dos algarismos 0 a 7 e portanto o algarismo 8 no existe nessa base. A representao 38,3 no existe na base 8.

2.2.3 Converso de Nmeros da Base 10 para uma Base b qualquer


A converso de nmeros da base dez para uma base qualquer emprega algoritmos
que sero o inverso dos acima apresentados. Os algoritmos sero melhor entendidos pelo exemplo que por uma descrio formal. Vamos a seguir apresentar os algoritmos para a parte inteira e para a parte fracionria:
Parte Inteira
O nmero decimal ser dividido sucessivas vezes pela base; o resto de cada diviso
ocupar sucessivamente as posies de ordem 0, 1, 2 e assim por diante at que o
resto da ltima diviso (que resulta em quociente zero) ocupe a posio de mais alta
ordem. Veja o exemplo da converso do nmero 1910 para a base 2:

Experimente fazer a converso contrria (retornar para a base 10) e ver se o resultado est correto.
Parte Fracionria
Se o nmero for fracionrio, a converso se far em duas etapas distintas: primeiro a
parte inteira e depois a parte fracionria. Os algoritmos de converso so diferentes.
O algoritmo para a parte fracionria consiste de uma srie de multiplicaes sucessivas do nmero fracionrio a ser convertido pela base; a parte inteira do resultado
da primeira multiplicao ser o valor da primeira casa fracionria e a parte fracionria ser de novo multiplicada pela base; e assim por diante, at o resultado dar zero
ou at encontrarmos o nmero de casas decimais desejado. Por exemplo, vamos
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

18

converter 15,6510 para a base 2, com 5 e com 10 algarismos fracionrios:

Obs.: Em ambos os casos, a converso foi interrompida quando encontramos o nmero de algarismos fracionrios solicitadas no enunciado. No entanto, como no encontramos resultado 0 em nenhuma das multiplicaes, poderamos continuar efetuando multiplicaes indefinidamente at encontrar (se encontrarmos) resultado zero.
No caso de interrupo por chegarmos ao nmero de dgitos especificado sem encontramos resultado zero, o resultado encontrado aproximado e essa aproximao
ser funo do nmero de algarismos que calcularmos. Fazendo a converso inversa, encontraremos:
Com 5 algarismos fracionrios:
Parte inteira: 11112 = 1510
Parte fracionria: 0,101002 = 1x2-1 + 0x2-2 + 1x2-3 + 0x2-4 + 0x2-5 = 0,5 + 0,125 =
0,62510
Com 10 algarismos fracionrios:
Parte inteira: 11112 = 1510
Parte fracionria: 0,10100110012 = 1x2-1 + 0x2-2 + 1x2-3 + 0x2-4 + 0x2-5 + 1x2-6 + 1x2-7
+ 0x2-8 + 0x2-9 + 1x2-10 = 1/2 + 1/8 + 1/64 + 1/128 + 1/1024 = 0,5 + 0,125 + 0,015625
+ 0,0078125 + 0,0009765625 = 0,649414062510
Ou seja, podemos verificar (sem nenhuma surpresa) que, quanto maior nmero de
algarismos forem considerados, melhor ser a aproximao.
2.2.4 Converso de Nmeros entre duas Bases quaisquer
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

19

Para converter nmeros de uma base b para uma outra base b' quaisquer (isso ,
que no sejam os casos particulares anteriormente estudados), o processo prtico
utilizado converter da base b dada para a base 10 e depois da base 10 para a base b' pedida.
Exemplo: Converter 435 para ( )9.
435 = (4 x 5 + 3)10 = 2310 ==> 23/9 = 2 (resto 5) logo 435 = 2310 = 259

2.3

Aritmtica em Binrio

2.3.1 Soma
A tabuada da soma aritmtica em binrio muito simples. So poucas regras:
0+0=0
0+1=1
1+0=1
1 + 1 = 0 (e "vai 1" para o dgito de ordem superior)
1 + 1 + 1 = 1 (e "vai 1" para o dgito de ordem superior)
Exemplo:
Efetuar 011100 + 011010
Obs.: 1) Lembre-se: soma-se as colunas da direita para a esquerda, tal como uma
soma em decimal.
Obs.: 2) No exemplo, so usadas, em seqncia, da direita para a esquerda, todas
as regrinhas acima.
Obs.: 3) Na primeira linha, em azul, indicado o "vai um".
Obs.: 4) Por simplicidade, no exemplo estamos considerando os dois nmeros positivos.
Soluo:
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

20

11-----> "vai um"


011100
011010+
---------110110

2.3.2 Subtrao
Vamos ver agora a tabuada da subtrao:
0-0=0
0 - 1 = 1 ("vem um do prximo")
1-0=1
1-1=0
Obs.: Como impossvel tirar 1 de zero, o artifcio "pedir emprestado" 1 da casa
de ordem superior. Ou seja, na realidade o que se faz subtrair 1 de 10 e encontramos 1 como resultado, devendo ento subtrair 1 do dgito de ordem superior (aquele 1 que se "pediu emprestado").
Exemplo:
Efetuar 111100 + 011010
Obs.: 1) Lembre-se: subtrai-se as colunas da direita para a esquerda, tal como uma
subtrao em decimal.
Obs.: 2) No exemplo, so usadas, em seqncia, da direita para a esquerda, todas
as regrinhas acima.
Obs.: 3) Na primeira linha, em vermelho, indicado o "vem um".
Obs.: 4) Por simplicidade, no exemplo estamos considerando os dois nmeros positivos.
Soluo:
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

21

---02-> "vem um"


11100
01010---------10010
2.3.3 Complemento a Base
A implementao do algoritmo da subtrao em computadores complexa, requerendo vrios testes. Assim, em computadores a subtrao em binrio feita por um
artifcio. O mtodo utilizado o "Mtodo do Complemento a Base" que consiste em
encontrar o complemento do nmero em relao base e depois somar os nmeros.
Os computadores funcionam sempre na base 2, portanto o complemento base ser complemento a dois. Computadores encontram o complemento a dois de um nmero atravs de um algoritmo que pode ser assim descrito:
se o nmero positivo, mantenha o nmero (o complemento de um nmero positivo
o prprio nmero)
- se o nmero negativo:
---inverta o nmero negativo ou o subtraendo na subtrao (todo 1 vira zero, todo zero vira um)
--- some 1 ao nmero em complemento
--- some as parcelas (na subtrao, some o minuendo ao subtraendo)
--- se a soma em complemento acarretar "vai-um" ao resultado, ignore o transporte
final)
Como exemplo, vamos usar o algoritmo acima na subtrao abaixo:
1101
1100--------0001

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

22

mantm o minuendo
inverte o subtraendo

-->
-->

soma minuendo e

---

subtraendo

>

soma 1
ignora o "vai-um"

-->
-->

1101
0011
10000
10001
0001

2.3.4 Multiplicao e Diviso


Vamos ver agora a tabuada da multiplicao:
0x0=0
0x1=0
1x0=0
1x1=1
No entanto, tambm a multiplicao em computadores feita por um artifcio: para
multiplicar um nmero A por n, basta somar A com A, n vezes. Por exemplo, 4 x 3 =
4 + 4 + 4. E a diviso tambm pode ser feita por subtraes sucessivas! O que conclumos? Que qualquer operao aritmtica pode ser realizada em computadores
apenas atravs de somas (diretas ou em complemento
Uns exerccios um pouco diferente, para desenvolver o raciocnio:
a) Durante uma explorao, a arqueloga Lar Acroft encontrou numa escavao
uma pedra gravada com os seguintes caracteres:
%@#%
###&
%&#&%

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

23

Concluindo brilhantemente (e com uma boa dose de adivinhao) que os smbolos


correspondiam a uma operao de adio entre dois nmeros positivos e que todos
os algarismos usados pela antiga civilizao esto presentes na gravao, determine a base de numerao utilizada, o algarismo arbico correspondente a cada smbolo e a representao das parcelas e do resultado da adio, convertidas para a
base 10.
b) O Sr. M. recebeu certo dia um e-mail de seu agente Jaime Bonde, que estava em
misso. O e-mail continha apenas o seguinte texto:
SEND
MORE
MONEY
Concluindo (tambm) brilhantemente (e tambm com uma boa dose de adivinhao)
que os smbolos correspondiam a uma operao de adio entre dois nmeros positivos representados em decimal (Jaime NO era forte em informtica!), o Sr. M. raciocinou e ento enviou ao agente uma determinada quantia. Quanto o Sr. M. enviou
para seu agente J. Bonde?

2.3.5 Representao de Nmeros em Complemento


Complemento a diferena entre cada algarismo do nmero e o maior algarismo
possvel na base. Uma vantagem da utilizao da representao em complemento
que a subtrao entre dois nmeros pode ser substituda pela sua soma em complemento.

2.3.5.1 Representao de Nmeros Positivos em Complemento


A representao de nmeros positivos em complemento no tem qualquer alterao,
isto , idntica representao em sinal e magnitude.

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

24

2.3.5.2 Representao de Nmeros Negativos em Complemento A (Base - 1)


A representao dos nmeros inteiros negativos obtida efetuando-se: (base - 1)
menos cada algarismo do nmero. Fica mais fcil entender atravs de exemplos:
Ex.1: Calcular o complemento a (base - 1) do nmero 29710.
Se a base 10, ento 10-1 = 9 e o complemento a (base -1) ser igual a complemento a 9
Ex.2: Calcular o complemento a (base - 1) do nmero 3A7EH.
Se a base 16, ento 10H-1 = F e o complemento a (base -1) ser igual a complemento a F.
Portanto:
Ex.1

Ex.2

(base -1) ---> 999

FFFF

- 297

- 3A7E

Complemento ---> 702

C581

Caso Particular: Nmeros na Base 2 (Complemento a 1)


Para se obter o complemento a 1 de um nmero binrio, devemos subtrair cada algarismo de 1. Uma particularidade dos nmeros binrios que, para efetuar esta
operao, basta inverter todos os bits.
Como exemplo, vamos calcular o complemento a 1 (C1) de um nmero binrio 0011
com 4 dgitos.
1111
- 0011
1100 (C1)
Portanto, bastaria inverter todos os bits!
Vamos analisar como ficaria a representao em C1 dos nmeros binrios de 4 dgitos:
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

25

Decimal

Binrio (se o nmero po-

Decimal

Binrio

(positivo)

sitivo, no h alterao)

(negativo)

(em C1)

0000

1111

0001

-1

1110

0010

-2

1101

0011

-3

1100

0100

-4

1011

0101

-5

1010

0110

-6

1001

0111

-7

1000

CIRCUITOS LGICOS

3.1.1 Conceitos de Lgica Digital


Todos as complexas operaes de um computador digital acabam sendo combinaes de simples operaes aritmticas e lgicas bsicas: somar bits, complementar
bits (para fazer subtraes), comparar bits, mover bits. Estas operaes so fisicamente realizadas por circuitos eletrnicos, chamados circuitos lgicos (ou gates "portas" lgicas).
Computadores digitais (binrios) so construdos com circuitos eletrnicos digitais as portas lgicas (circuitos lgicos).
Os sistemas lgicos so estudados pela lgebra de chaveamentos, um ramo da lgebra moderna ou lgebra de Boole, conceituada pelo matemtico ingls George
Boole (1815 - 1864). Boole construiu sua lgica a partir de smbolos, representando
as expresses por letras e ligando-as atravs de conectivos - smbolos algbricos.
A lgebra de Boole trabalha com apenas duas grandezas: falso ou verdadeiro. As
duas grandezas so representadas por 0 (falso) e 1 (verdadeiro).

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

26

Nota: nos circuitos lgicos do computador, os sinais binrios so representados por


nveis de tenso.

3.1.2 Operadores Lgicos


Os conectivos ou OPERADORES LGICOS ou FUNES LGICAS so:

3.1.2.1 E (ou AND)


Uma sentena verdadeira SE - e somente se - todos os termos forem verdadeiros.

3.1.2.2 OU (ou OR)


Uma sentena resulta verdadeira se QUALQUER UM dos termos for verdadeiro.

3.1.2.3 NO (ou NOT)


Este operador INVERTE um termo.
Os operadores lgicos so representados por:
____
NOT --> (uma barra horizontal sobre o termo a ser invertido ou negado).
E ------> . (um ponto, como se fosse uma multiplicao)
OU ----> + (o sinal de soma)

3.1.3 Tabela Verdade


So tabelas que representam todas as possveis combinaes das variveis de entrada de uma funo, e os seus respectivos valores de sada.

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

27

A seguir, apresentamos as funes bsicas, e suas representaes em tabelasverdade.


3.1.3.1 AND - Funo E

3.1.3.2 OR - Funo OU

Nota: A menos da estranha expresso 1 + 1 = 1, as demais expresses "parecem" a


aritmtica comum a que estamos acostumados, onde E substitui "vezes" e OU substitui "mais".
3.1.3.3 NOT - Funo NO

Obs.: a inverso em binrio funciona como se fizssemos 1 - A = X. Ou seja, 1 - 0 =


1 e 1 - 1 = 0.

3.1.4 Aplicao da lgebra de Boole aos Computadores Digitais


Boole desenvolveu sua lgebra a partir desses conceitos bsicos e utilizando apenas os algarismos 0 e 1.
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

28

Os primeiros computadores fabricados, como o ENIAC, trabalhavam em DECIMAL.


No entanto, a utilizao de circuitos eletrnicos que operassem com 10 diferentes
nveis de tenso (para possibilitar detectar as 10 diferentes grandezas representadas no sistema decimal) acarretavam uma grande complexidade ao projeto e construo dos computadores, tendo por conseqncia um custo muito elevado. Surgiu
ento a idia de aplicar a lgebra de Boole, simplificando extremamente o projeto e
construo dos computadores.
Mas como os conceitos da lgebra de chaveamentos (um ramo da lgebra do Boole)
so aplicados ao projeto dos computadores digitais?
A chave de tudo um circuito eletrnico chamado CHAVE AUTOMTICA.
Como funciona uma chave automtica?
Vamos imaginar um circuito chaveador com as seguintes entradas:
-

uma fonte de alimentao (fornece energia para o circuito)

um fio de controle (comanda a operao do circuito)

um fio de sada (conduz o resultado)

No desenho, a chave permanece aberta enquanto o sinal C no fio de controle for 0


(ou Falso). Enquanto no houver um sinal (sinal 1 ou Verdadeiro) no fio de controle,
que mude a posio da chave, o sinal no fio de sada S ser 0 (ou Falso). Quando
for aplicado um sinal (sinal 1 ou Verdadeiro) ao fio de controle, a chave muda de posio, tendo como resultado que o sinal na sada ser ento 1 (ou Verdadeiro). A
posio da chave se manter enquanto no ocorrer um novo sinal na entrada.

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

29

A chave automtica foi inicialmente implementada com rels eletromecnicos e depois com vlvulas eletrnicas. A partir da metade da dcada de 50, passaram a ser
utilizados dispositivos em estado slido - os TRANSISTORES, inventados em Stanford em 1947. Os modernos Circuitos Integrados - CI's e os microprocessadores so
implementados com milhes de transistores "impressos" em minsculas pastilhas.

Vamos agora analisar o que ocorreria se ns ligssemos em SRIE duas chaves automticas como as acima, e ligssemos uma lmpada ao circuito. O circuito resultante poderia ser representado assim:

A lmpada acenderia se - e somente se - as DUAS chaves estivessem na posio


LIGADO (ou verdadeiro), o que seria conseguido com as duas entradas A e B em
estado 1 (Verdadeiro). Substituindo CORRENTE (ou chave ligada) por 1 e
AUSNCIA DE CORRENTE (ou chave desligada) por 0, como ficaria nossa tabela
verdade para LMPADA LIGADA = 1 e LMPADA DESLIGADA = 0?
A

D para reconhecer a nossa j familiar FUNO E?


Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

30

O circuito acima que implementa a funo E chamado de PORTA E (AND GATE).


Vamos agora analisar o que ocorreria se ns ligssemos em PARALELO duas chaves automticas como as acima, e ligssemos uma lmpada ao circuito. O circuito
resultante poderia ser representado assim:

A lmpada acenderia SE QUALQUER UMA DAS-CHAVES estivesse na posio


LIGADO (ou verdadeiro), o que seria conseguido com uma das duas entradas A ou
B em estado 1 (Verdadeiro). Substituindo CORRENTE (ou chave ligada) por 1 e
AUSNCIA DE CORRENTE (ou chave desligada) por 0, como ficaria nossa tabela
verdade para LMPADA LIGADA = 1 e LMPADA DESLIGADA = 0?
A

E agora, d para reconhecer a nossa j familiar FUNO OU?


O circuito acima, que implementa a funo OU, chamado de PORTA OU (OR
GATE).

3.1.5 Porta Lgica ou Gate


So dispositivos ou circuitos lgicos que operam um ou mais sinais lgicos de entrada para produzir uma (e somente uma) sada, a qual dependente da funo implementada no circuito.
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

31

Um computador constitudo de uma infinidade de circuitos lgicos, que executam


as seguintes funes bsicas:
a) realizam operaes matemticas
b) controlam o fluxo dos sinais
c) armazenam dados
Existem dois tipos de circuitos lgicos:
a) COMBINACIONAL - a sada funo dos valores de entrada correntes; esses
circuitos no tem capacidade de armazenamento [casos a) e b) acima].
b) SEQUENCIAL - a sada funo dos valores de entrada correntes e dos valores
de entrada no instante anterior; usada para a construo de circuitos de memria (chamados "flip-flops").
3.2

Portas Lgicas

3.2.1 Porta NOT (NO)


A porta NOT inverte o sinal de entrada (executa a NEGAO do sinal de entrada),
ou seja, se o sinal de entrada for 0 ela produz uma sada 1, se a entrada for 1 ela
produz uma sada 0.

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

32

3.2.2 Porta AND (E)


A porta AND combina dois ou mais sinais de entrada de forma equivalente a um circuito em srie, para produzir um nico sinal de sada, ou seja, ela produz uma sada
1, se todos os sinais de entrada forem ; caso qualquer um dos sinais de entrada for
0, a porta AND produzir um sinal de sada igual a zero.

3.2.3 Porta OR (OU)


A porta OR combina dois ou mais sinais de entrada de forma equivalente a um circuito em paralelo, para produzir um nico sinal de sada, ou seja, ela produz uma sada 1, se qualquer um dos sinais de entrada for igual a 1; a porta OR produzir um
sinal de sada igual a zero apenas se todos os sinais de entrada forem 0.

3.2.4 Porta NAND (NO E)


A porta NAND eqivale a uma porta AND seguida por uma porta NOT, isto , ela
produz uma sada que o inverso da sada produzida pela porta AND.

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

33

3.2.5 Porta NOR (NO OU)


A porta NOR eqivale a uma porta OR seguida por uma porta NOT, isto , ela produz uma sada que o inverso da sada produzida pela porta OR.

3.2.6 Porta XOR (OU EXCLUSIVO)


A porta XOR compara os bits; ela produz sada 0 quando todos os bits de entrada
so iguais e sada 1 quando pelo menos um dos bits de entrada diferente dos demais.

Exemplo de circuitos utilizando portas lgicas:


A) Uma campainha que toca (sada) se o motorista der a partida no motor do carro
(entrada) sem estar com o cinto de segurana afivelado (entrada). Se a ignio
for ACIONADA (1) e o cinto estiver DESAFIVELADO (1), a campainha
ACIONADA (1). Caso contrrio, a campainha no toca
Tabela Verdade:
Ignio

Cinto

Campainha

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

34

Basta incluir uma porta AND.


B) Detector de incndio com vrios sensores (entradas) e uma campainha para alarme (sada).
Se QUALQUER UM dos sensores for acionado (significando que um dos sensores
detectou sinal de incndio), a campainha ACIONADA.
Tabela verdade:
Sensor 1

Sensor 2

Campainha

Basta incluir uma porta OR.

3.3

Algebra de Boole

As operaes bsicas da lgebra de Boole so:

3.3.1 Avaliao de uma Expresso Booleana


Uma expresso booleana uma expresso formada por sinais de entrada (chamados variveis de entrada) ligados por conectivos lgicos, produzindo como resultado
um nico sinal de sada.
Na avaliao de uma expresso Booleana, dever ser seguida uma ordem de precedncia conforme a seguir definido:
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

35

1 - avalie NOT
2 - avalie AND
3 - avalie OR
Obs.: respeitando-se sempre os parnteses!
Ex.: Avalie a expresso:

3.3.2 Equivalncia de Funes Lgicas


Duas funes Booleanas so equivalentes se - e somente se - para a mesma entrada, produzirem iguais valores de sada .
PORTANTO, DUAS FUNES LGICAS EQUIVALENTES TEM A MESMA
TABELA VERDADE.
Ex.: Verifique se as funes lgicas a seguir representam funes equivalentes:

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

36

3.3.3 Propriedade da lgebra de Boole

Exerccio:
Simplifique a seguinte expresso:

3.3.4 Propriedades da Funo XOR (EXCLUSIVE OR)

3.4

Representao de Circuitos com as Funes NAND e NOR

Usando as propriedades apresentadas, todo e qualquer circuito pode ser representado usando exclusivamente as funo NAND ou as funo NOR.
Para que serviria tal artimanha, alm da dor de cabea aos estudantes? H neste
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

37

caso uma razo maior que a comodidade ou a aparente dificuldade: a razo econmica. Por diversas razes construtivas, fica mais barato construir TODOS os circuitos de um computador usando APENAS UM NICO TIPO DE CIRCUITO. Aceitando
essa afirmao, vamos enfrentar a tarefa de representar os nossos circuitos j conhecidos usando apenas funes NAND ou os NOR.
3.4.1 Circuito Inversor

3.4.2 Circuito AND

3.4.3 Circuito OR

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

38

Exerccio:
Escreva a expresso do circuito abaixo e simplifique.

Soluo:

Este circuito implementa a funo XOR, usando apenas portas NAND!


3.5

Formas Cannicas

3.5.1 Representao de um Circuito atravs de uma Tabela Verdade


Os circuitos de um computador realizam funes de grande complexidade, cuja representao geralmente no bvia. O processo para realizao de uma funo atravs de um circuito comea na descrio verbal do circuito (descrio do comportamento de suas possveis sadas, em funo das diversas combinaes possveis
de seus sinais de entrada), a partir do que possvel montar sua tabela verdade.
Exemplos:
a) Considere um circuito eltrico composto de uma fonte de energia comercial (a alimentao da empresa de distribuio de energia, p.ex., a Light) e um interruptor
(nossas entradas ) e uma lmpada (nossa sada). A lmpada acender se - e
somente se - a) houver energia disponvel (se no estiver "faltando luz") e b) o interruptor estiver ligado. Elabore a tabela verdade que representa esse circuito lgico.
b) Considere um sistema composto de duas caixas d'gua (uma superior e uma cisApostila de Introduo aos Sistemas de Computao - Prof. Bruno

39

terna). A cisterna alimentada pela entrada de gua da "rua", via empresa distribuidora (ex.: CEDAE). A caixa superior serve para distribuir a gua, por gravidade, em todo o prdio: bicas, chuveiros, descargas sanitrias, circuitos antiincndio, etc, com a gua sendo impulsionada por uma bomba hidrulica atravs
de uma tubulao que liga a cisterna caixa superior. Considerando que a bomba queimar se for acionada sem haver gua no circuito hidrulico, projete um
circuito lgico para acionar a bomba sempre que a caixa superior estiver vazia,
desde que tenha gua na cisterna.
c) Considere um circuito eltrico composto de uma fonte de energia comercial (a alimentao da empresa de distribuio de energia, p.ex., a Light), uma alimentao auxiliar (um gerador e um no-break, com bateria de acumulao) e um interruptor (nossas entradas ) e um sistema de computadores (nossa sada). O computador poder operar se: a) houver energia disponvel (se no estiver "faltando
luz") em um dos circuitos de alimentao e b) o interruptor estiver ligado. Elabore
a tabela verdade que representa esse circuito lgico.
A partir da tabela verdade produzida conforme item anterior, possvel chegar expresso que representa o comportamento do circuito, e em seguida construir o circuito, usando as portas lgicas j estudadas. O processo de elaborao da expresso usa as chamadas formas cannicas, que consistem em regras para representar
as condies de entrada que:
a) produziro sada 1 (e portanto as demais condies produziro sada 0) ou alternativamente,
b) produziro sada 0 (e portanto as demais condies produziro sada 1).
So portanto duas as formas cannicas: uma representa as condies que produzem sada 1 (soma dos minitermos) , a outra representa as condies que produziro sada 0 (produto dos maxitermos). Essas formas so alternativas, isto , a expresso poder ser encontrada aplicando-se alternativamente uma ou outra das
formas.
MINITERMO - so termos somente com AND (termos PRODUTO)
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

40

MAXITERMO - so termos somente com OR (termos SOMA)

3.5.2 Soma dos Minitermos


produzida construindo:
um termo (uma sub-expresso) para cada linha da tabela verdade (que representa
uma combinao de valores de entrada) em que a sada 1,
cada um desses termos formado pelo PRODUTO (FUNO AND) das variveis
de entrada, sendo que:
- quando a varivel for 1, mantenha;
- quando a varivel for 0, complemente-a (funo NOT).
a funo booleana ser obtida unindo-se os termos PRODUTO (ou minitermos) por
uma porta OR (ou seja, "forando-se" a sada 1 caso qualquer minitermo resulte no
valor 1).
Dessa forma, ligando os termos-produto (tambm chamados minitermos) pela porta
OR, caso qualquer um dos minitermos seja 1 (portanto, caso qualquer uma das condies de valores de entrada que produz sada 1se verifique), a sada pela porta OR
ser tambm 1. Ou seja, basta que se verifique qualquer uma das alternativas de valores de entrada expressos em um dos minitermos, e a sada ser tambm 1, forada pelo OR. Caso nenhuma dessas alternativas se verifique, produz-se a sada 0.
Exemplo:

3.5.3 Produto dos Maxitermos


Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

41

produzida construindo:
um termo (uma sub-expresso) para cada linha da tabela verdade (que representa
uma combinao de valores de entrada) em que a sada 0,
cada um desses termos formado pela SOMA (FUNO OR) das variveis de entrada, sendo que:
- quando a varivel for 0, mantenha;
- quando a varivel for 1, complemente-a (funo NOT).
A funo booleana ser obtida unindo-se os termos SOMA (ou maxitermos) por uma
porta AND (ou seja, "forando-se" a sada 0 caso qualquer minitermo resulte no valor
0).
Dessa forma, ligando os termos-soma (tambm chamados maxitermos) pela porta
AND, caso qualquer um dos minitermos seja 0 (portanto, caso qualquer uma das
condies de valores de entrada que produz sada 0 se verifique), a sada pela porta
AND ser tambm 0. Ou seja, basta que se verifique qualquer uma das alternativas
de valores de entrada 0 expressos em um dos maxitermos, e a sada ser tambm
0, forada pelo AND. Caso nenhuma dessas alternativas se verifique, produz-se a
sada 1.
Exemplo:

Obs:. O mesmo comportamento (a mesma tabela verdade) pode ser igualmente representada por qualquer das formas cannicas.
Exemplo:
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

42

Se ambas as formas cannicas produzem expresses equivalentes, como escolher


qual a representao a utilizar? Escolha a que resultar em menor nmero de termos,
produzindo uma expresso mais simples.
Por esse mtodo, pode-se encontrar a expresso que represente qualquer tabela
verdade.
Aps se encontrar uma expresso que represente o comportamento esperado,
possvel que no seja uma expresso simples que possa ser construda com poucas
portas lgicas. Antes de projetar o circuito, til SIMPLIFICAR a expresso, de forma a possibilitar construir um circuito mais simples e portanto mais barato.
Portanto, o fluxo de nosso procedimento ser:
DESCRIO VERBAL ---> TABELA VERDADE ---> FORMA CANNICA ---> -->FUNO SIMPLIFICADA ---> CIRCUITO

3.6

Construo de Circuitos Reais de Computador

3.6.1 Circuitos Aritmticos


Vamos lembrar a aritmtica de ponto fixo, para a soma de dois bits.
0+0=0
0+1=1
1+0=1
1 + 1 = 0 e vai um
Se houver vai um na soma anterior, teremos:
vem 1 + 1 + 1 = 1 e vai um
Lembram-se do algoritmo da soma? Para somar dois nmeros (em qualquer base,
binrios ou no), soma-se os algarismos dos nmeros, coluna a coluna, transportanApostila de Introduo aos Sistemas de Computao - Prof. Bruno

43

do o "vai um" para a prxima coluna, quando for o caso.


Como fazemos para somar dois nmeros de n algarismos?
Na prtica, representamos os dois nmeros a serem somados, um sobre o outro, e
somamos coluna a coluna; quando o valor da soma de dois algarismos supera a base, somamos um prxima coluna (isto , fazemos resultado + base, sendo base
igual a 10 para qualquer base). O "VAI UM" de uma coluna (uma ordem) o "VEM
UM" da prxima coluna. Fcil? No? Se a explicao complicou, basta vermos um
exemplo prtico para concluir o quanto simples:
NA BASE 10

NA BASE 2

110

11010

"vem 1" (carry in)

085

01101

parcela

+16

01101

parcela

101

11010

soma

011

01101

"vai 1" (carry out)

Bom, difcil no pode ser, j que vimos fazemos somas desse jeito desde o curso
primrio.
E para fazer uma subtrao? Lembrando tambm o estudado anteriormente.
UMA SUBTRAO UMA SOMA EM COMPLEMENTO! Ou seja,
A - B = A + ( - B)
No computador, fazemos a subtrao atravs de uma soma em complemento.
E a multiplicao? A multiplicao obtida de duas formas: por somas sucessivas
(por exemplo, A + A = 2A) e pela movimentao de bits. Lembremo-nos que quando
queremos multiplicar um nmero decimal por 10, basta acrescentar um zero direita
do nmero. Como nesse caso a base 10, isso eqivale a MULTIPLICAR PELA
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

44

BASE. Generalizando, para multiplicar um nmero pela base, basta acrescentar um


zero direita do nmero, ou seja, movemos todos os algarismo de um nmero para
a esquerda de uma posio (uma ordem de grandeza), preenchendo a ltima ordem
direita (que ficaria vaga) com um zero. Isso, portanto, eqivale a multiplicar esse
nmero pela base.
Por exemplo, na base 10, tomando 50 e fazendo 500 (movendo 50 para a esquerda
uma posio e colocando um zero para preencher a posio mais direita) eqivale
a multiplicar 50 por 10 (a base)!
Idem na base 2:
100 x 10 = 1000
Ateno: devemos ler esse nmero como: um zero zero vezes um zero = um zero
zero zero. Para ficar ainda mais claro, vamos lembrar que, passando para decimal,
100(2) 4(10), 10(2) 2(10) e portanto teramos em decimal: 4 x 2 = 8). Lembrem-se: 10
s dez em decimal! Agora, sempre que estivermos usando uma base diferente de
10, vamos sempre ler 10 como um-zero! E como base decimal no usada em
computadores digitais, DEZ, a partir de agora, fica banido de nosso vocabulrio!
As mesmas propriedades, aplicadas no sentido contrrio, valem para a diviso!
Desta forma, podemos ver que

O COMPUTADOR PODE REALIZAR TODAS AS OPERAES ARITMTICAS USANDO APENAS SOMAS!


Com esta introduo, podemos agora estudar alguns exemplos dos circuitos aritmticos usados em computadores.

3.6.2 Circuito Meio-Somador

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

45

O circuito meio-somador SOMA DOIS BITS (sem levar em conta bit de carry).
Entrada - os dois bits a serem somados - A e B
Sada - a soma dos bits e o bit de carry out ("vai um") - S e Co
Como descrevemos anteriormente, uma funo lgica produz uma e apenas uma
sada. Portanto, sendo duas as sadas, sero necessrias duas funes diferentes,
ou um circuito composto, podendo haver interseo de portas lgicas.
a. Construir a tabela
b. Forma cannica
c. c. Simplificao (no h o que simplificar)

d. Circuito

3.6.3 Circuito Somador Completo


O circuito somador completo SOMA DOIS BITS (considerando na soma o bit de carry in que veio da soma anterior).
Entrada - os dois bits a serem somados e o bit de carry in - A, B e Ci
Sada - a soma dos bits e o bit de carry out ("vai um") - S e Co
a. Construir a tabela
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

46

b. Forma cannica
c. Simplificao

d. Circuito

e. Representao esquemtica

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

47

A ARQUITETURA DOS COMPUTADORES

A arquitetura bsica de um computador moderno segue ainda de forma geral os


conceitos estabelecidos pelo Professor da Universidade de Princeton, John Von
Neumann (1903-1957). Von Neumann props construir computadores que:
1. Codificassem instrues que pudessem ser armazenadas na memria e sugeriu
que usassem cadeias de uns e zeros (binrio) para codific-los ;
2. Armazenassem na memria as instrues e todas as informaes que fossem
necessrias para a execuo da tarefa desejada;
3. Ao processarem o programa, as instrues fossem buscadas na diretamente na
memria.
Este o conceito de PROGRAMA ARMAZENADO.

4.1

Diagrama de Blocos dos Computadores

Toda a lgica dos computadores construda a partir de chaves liga / desliga. Inicialmente foram usados chaves mecnicas, depois rels eletro-mecnicos - o Z-1
construdo por Konrad Zuse em 1941 e o MARK 1 de Howard Aiken em 1944 (capazes de executar at 5 chaveamentos por segundo). Posteriormente, foram substituApostila de Introduo aos Sistemas de Computao - Prof. Bruno

48

dos pelas vlvulas no ENIAC em 1946 (capazes de 100.000 de chaveamentos por


segundo), e finalmente pelos transistores (semicondutores) inventados em Stanford
em 1947. Os circuitos integrados (ou CI's) so encapsulamentos compactos (LSI Large Scale Integration e VLSI - Very Large Scale Integration) de circuitos constitudos de minsculos transistores.

4.2

Unidade Central de Processamento

A Unidade Central de Processamento a responsvel pelo processamento e execuo de programas armazenados na MP.
Funes:
Executar instrues - realizar aquilo que a instruo determina.
Realizar o controle das operaes no computador.
a) Unidade Lgica e Aritmtica (ULA) - responsvel pela realizao das operaes
lgicas (E, OU, etc) e aritmticas (somar, etc).
b) Unidade de Controle (UC) - envia sinais de controle para toda a mquina, de forma que todos os circuitos e dispositivos funcionem adequada e sincronizadamente.
4.3

Memria Principal (MP)

A Memria Principal tem por finalidade armazenar toda a informao que manipulada pelo computador - programas e dados. Para que um programa possa ser manipulado pela mquina, ele primeiro precisa estar armazenado na memria principal.
OBS.: os circuitos da Memria Principal no so combinatrias, eles tem capacidade
de armazenar bits. Os circuitos usados so do tipo "flip-flop", que sero vistos em
sistemas operacionais.
Tem por finalidade permitir a comunicao entre o usurio e o computador. OBS.:
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

49

Para executar um programa, bastaria UCP e MP; no entanto, sem os dispositivos de


E/S no haveria a comunicao entre o usurio e o computador.
Processamento automtico de dados
O programas so armazenados na MP e a UCP capaz de executar um processamento inteiro sem a interveno do usurio, mesmo que haja vrios desvios no programa.
Passos:
-

armazenar o programa na MP;

- indicar UCP onde o programa est armazenado.

Estas operaes so realizadas pelo SISTEMA OPERACIONAL:

Sincronizao de Operao do Sistema


Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

50

Imagine um barco a remo em uma competio, em que a plena velocidade e direo


somente atingida porque todos os remadores fazem seus movimentos de forma
coordenada, regidos por um "patro" - geralmente o timoneiro que indica o ritmo das
remadas.
Imagine uma outra analogia: o final do intervalo de um espetculo sinalizado por
uma campainha, indicando que os espectadores devem dirigir-se aos seus lugares
para o prximo ato. Alguns instantes depois, tocar uma outra campainha, indicando
que terminou o intervalo e que o espetculo vai recomear, entendendo-se que os
espectadores j devem estar todos sentados em seus lugares, prontos para o prximo ato.
Nestes dois exemplos, aparece a necessidade de um elemento externo que fica responsvel pela coordenao dos tempos entre diferentes componentes de um sistema, que se comportam de acordo com suas respectivas leis prprias e com tempos
prprios, permitindo que suas atividades interrelacionadas sejam SINCRONIZADAS
de forma a poder realizar um trabalho em conjunto.
As diversas partes de um computador comportam-se aproximadamente desta forma:
instrues e dados, aps sofrerem algum processamento em um determinado componente, devem trafegar para o prximo estgio de processamento (atravs de condutores - um barramento ou um cabo), de forma a estarem l a tempo de serem processados. O computador envia a todos os seus componentes um sinal eltrico regular - o pulso de "clock" - que fornece uma referncia de tempo para todas as atividades e permite o sincronismo das operaes internas. O pulso de clock indica que um
ciclo (um "estado") terminou, significando que o processamento deste ciclo est terminado e um outro ciclo se inicia, determinando a alguns circuitos que iniciem a
transferncia dos dados nele contidos (abrindo a porta lgica para os prximos estgios) e a outros que recebam os dados e executem seu processamento.
O clock um pulso alternado de sinais de tenso alta ("high") e baixa ("low"), gerado pelos circuitos de relgio (composto de um cristal oscilador e circuitos auxiliares).

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

51

4.3.1 Tecnologias das memrias


As primeiras tecnologias utilizadas em memrias foram as memrias de ncleos
magnticos, hoje apenas uma curiosidade. As memrias modernas so compostas
por circuitos semicondutores, com novas tecnologias sendo criadas a cada ano permitindo que grandes quantidades de clulas de memria sejam encapsuladas em
pequenas pastilhas.

4.3.2 Hierrquia da memria


A MP no o nico dispositivo de armazenamento de um computador. Em funo
de caractersticas como tempo de acesso, capacidade de armazenamento, custo,
etc., podemos estabelecer uma hierarquia de dispositivos de armazenamento em
computadores.
Tipo

Capacidade Velocidade Custo

Registrador

Bytes

muito alta

muito alto UCP

Voltil

Memria Cache

Kbytes

alta

alto

UCP/placa

Voltil

Memria Principal Mbytes

mdia

mdio

Placa

Voltil

Memria Auxiliar

baixa

baixo

Externa

No Voltil

Gbytes

Localizao Volatilidade

A UCP v nesta ordem e acessa primeiro a que est mais prxima. Subindo na hierarquia, quanto mais prximo da UCP, maior velocidade, maior custo, porm menor
capacidade de armazenamento.
4.3.3 Controle de Memria
A Memria Principal a parte do computador onde programas e dados so armazenados para processamento. A informao permanece na memria principal apenas
enquanto for necessrio para seu emprego pela UCP, sendo ento a rea de MP
ocupada pela informao pode ser liberada para ser posteriormente sobregravada
por outra informao. Quem controla a utilizao da memria principal o Sistema
Operacional.

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

52

4.3.4 Registradores
Registradores so dispositivos de armazenamento temporrio, localizados na UCP,
extremamente rpidos, com capacidade para apenas um dado (uma palavra). Devido a sua tecnologia de construo e por estar localizado como parte da prpria pastilha ("chip") da UCP, muito caro. O conceito de registrador surgiu da necessidade
da UCP de armazenar temporariamente dados intermedirios durante um processamento. Por exemplo, quando um dado resultado de operao precisa ser armazenado at que o resultado de uma busca da memria esteja disponvel para com ele
realizar uma nova operao.
Mquinas RISC so geralmente construdas com um grande conjunto de registradores, de forma a trazer os dados para o mais prximo possvel da UCP, de forma a
que o programa opere sempre sobre dados que esto em registradores.
Registradores so VOLTEIS, isto , dependem de estar energizados para manter
armazenado seu contedo.

4.3.5 Memria Cache


Com o desenvolvimento da tecnologia de construo da UCP, as velocidades foram
ficando muito mais altas que as das memrias, que no tiveram a mesma evoluo
de velocidade (o aperfeioamento das memrias se deu mais no fator capacidade).
Desta forma, os tempos de acesso s memrias foram ficando insatisfatrios e a
UCP ao buscar um dado na memria precisa ficar esperando muitos ciclos at que a
memria retorne o dado buscado ("wait states"), configurando um gargalo ("bottleneck") ao desempenho do sistema.
Por esse motivo, desenvolveram-se outras arquiteturas de memria privilegiando a
velocidade de acesso. A arquitetura da memria cache muito diferente da arquitetura da memria principal e o acesso a ela muitas vezes mais rpido (p.ex: 5 ns
contra 70 ns).

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

53

No entanto, o custo de fabricao da memria cache muito maior que o da MP.


Desta forma, no econmico construir um computador somente com tecnologia de
memria cache. Criou-se ento um artifcio, incorporando-se ao computador uma
pequena poro de memria cache, localizada entre a UCP e a MP, e que funciona
como um espelho de parte da MP.
Desenvolveram-se ainda algoritmos que fazem com que, a cada momento, a memria cache armazene a poro de cdigo ou dados (por exemplo, uma sub-rotina) que
esto sendo usados pelas UCP. Esta transferncia (MP <--> Cache) feita pelo hardware: ela independe do software, que ignora se existe ou no memria cache,
portanto ignora essa transferncia; nem o programador nem o sistema operacional
tm que se preocupar com ela.
A memria cache opera em funo de um princpio estatstico comprovado: em geral, os programas tendem a referenciar vrias vezes pequenos trechos de programas, como loops, sub-rotinas, funes e s tem sentido porque programas executados linearmente, seqencialmente, so raros. Desta forma, algoritmos (chamados
algoritmos de cache) podem controlar qual parte do cdigo ficar copiado na cache,
a cada momento.
Quando a MP busca um determinado trecho de cdigo e o encontra na cache, d-se
um "cache hit" , enquanto se o dado no estiver presente na cache ser necessrio
requisitar o mesmo MP, acarretando atraso no processamento e d-se um "cache
miss" ou "cache fault". O ndice de cache hit ou taxa de acerto da cache geralmente acima de 90%.
Memrias cache tambm so VOLTEIS, isto , dependem de estar energizadas
para manter gravado seu contedo.

4.3.6 Memrias Auxiliares


Memrias auxiliares resolvem problemas de armazenamento de grandes quantidades de informaes. A capacidade da MP limitada pelo seu relativamente alto custo, enquanto as memrias auxiliares tem maior capacidade e menor custo; portanto,
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

54

o custo por bit armazenado muito menor.


Outra vantagem importante que as memrias auxiliares no so VOLTEIS, isto ,
no dependem de estar energizadas para manter gravado seu contedo.
Os principais dispositivos de memria auxiliar so: discos rgidos (ou HD), drives de
disquete, unidades de fita, CD-ROM, DVD, unidades tico-magnticas, etc.
OBS.: Cache de disco no a mesma tecnologia da memria cache. Trata-se do
emprego do mesmo conceito da memria cache, para acelerar a transferncia de
dados entre disco, MP e UCP, usando um programa (um software, por ex.: SmartDrive) para manter um espelho do contedo de parte do disco (a mais provvel de
ser requisitada a seguir pela UCP) gravado em uma parte da Memria Principal. Recentemente, as unidades de disco passaram a incorporar em sua interface chips de
memria - tipicamente 32 a 64 Kbytes - para acelerar a transferncia de dados, utilizando um algoritmo de cache.
4.3.7 Estrutura da Memria Principal - Clulas e Endereos
A memria precisa ter uma organizao que permita ao computador guardar e recuperar informaes quando necessrio. No teria nenhum sentido armazenar informaes que no fosse possvel recuperar depois. Portanto, no basta transferir informaes para a memria. preciso ter como encontrar essa informao mais tarde, quando ela for necessria, e para isso preciso haver um mecanismo que registre exatamente onde a informao foi armazenada (lembrando nossa analogia com o
computador hipottico, imagine encontrar uma informao guardada ao acaso, se
nosso escaninho tivesse 1 milho de compartimentos).
Clula a unidade de armazenamento do computador. A memria principal organizada em clulas. Clula a menor unidade da memria que pode ser endereada
(no possvel buscar uma "parte" da clula) e tem um tamanho fixo (para cada
mquina). As memrias so compostas de um determinado nmero de clulas ou
posies. Cada clula composta de um determinado nmero de bits. Todas as cApostila de Introduo aos Sistemas de Computao - Prof. Bruno

55

lulas de um dado computador tem o mesmo tamanho, isto , todas as clulas daquele computador tero o mesmo nmero de bits.
Cada clula identificada por um endereo nico, pela qual referenciada pelo sistema e pelos programas. As clulas so numeradas seqencialmente, uma a uma,
de 0 a (N-1), chamado o endereo da clula. Endereo o localizador da clula,
que permite identificar univocamente uma clula. Assim, cada clula pode ser identificada pelo seu endereo.
Unidade de transferncia a quantidade de bits que transferida da memria em
uma nica operao de leitura ou transferida para a memria em uma nica operao de escrita. O tamanho da clula poderia ser igual ao da palavra, e tambm unidade de transferncia, porm por razes tcnicas e de custo, so freqentemente
diferentes.
OBS.: Uma clula no significa o mesmo que uma palavra; uma clula no necessariamente contm uma palavra. Palavra a unidade de processamento da UCP. Uma
palavra deve representar um dado ou uma instruo, que poderia ser processada,
armazenada ou transferida em uma nica operao. No entanto, em geral no assim que acontece e os computadores comerciais no seguem um padro nico para
a organizao da UCP e MP. Computadores comerciais (tais como por exemplo os
baseados nos processadores Intel 486) podem ter o tamanho da palavra definido
como de 32 bits, porm sua estrutura de memria tem clulas de 16 bits.
A estrutura da memria principal um problema do projeto de hardware:
-

mais endereos com clulas menores ou

menos endereos com clulas maiores?

O tamanho mais comum de clula era 8 bits (1 byte); hoje j so comuns clulas
contendo vrios bytes.

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

56

Nmero de bits para representar um endereo


Expresso geral: MP com endereos de 0 a (N-1)
N = 2x logo:
x = log2 N
sendo x = n de bits para representar um endereo e N o nmero de endereos.
4.3.8 Capacidade da Memria Principal
A capacidade da MP em bits igual ao produto do n de clulas pelo total de bits por
clula.
T=NxM
T = capacidade da memria em bits
N = n de endereos ( como vimos anteriormente, N=2x sendo x = n de bits do endereo)
M = n de bits de cada clula
Para encontrar a capacidade em bytes, bastaria encontrar a capacidade em bits e
depois multiplicar por 8 (cada byte contm 8 bits) ou ento converter o tamanho da
clula para bytes e depois multiplicar pelo nmero de clulas.
O ltimo endereo na memria o endereo N-1 ( os endereos comeam em zero
e vo at N-1).

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

57

4.3.9 Terminologia
CLULA DE MEMRIA - ( Flip-flop, armazenam um nico bit)
PALAVRA DE MEMRIA - (Um grupo de clulas, normalmente 4 a 64 bits )
CAPACIDADE - 1K = 1024 , 1M = 1.048.576 - ( 2K x 8 = 2048 x 8 = 16384 bits )
ENDEREO - Identifica a posio de uma palavra na memria.
OPERAO DE LEITURA - Tambm chamada de busca na memria.
OPERAO DE ESCRITA - Tambm chamada de armazenamento.
TEMPO DE ACESSO - Quantidade de tempo necessria busca ou armazenamento.
MEMRIA VOLTIL - Necessitam de energia eltrica para reter a informao
armazenada.
MEMRIA DE ACESSO RANDMICO (RAM) - O tempo de acesso constante
para qualquer endereo da memria.
MEMRIA DE ACESSO SEQUENCIAL (SAM) - O tempo de acesso no constante, mas depende do endereo. Ex: fitas magnticas.
MEMRIA DE LEITURA/ESCRITA (RWM) - Qualquer memria que possa ser lida ou escrita com igual facilidade.
MEMRIA DE LEITURA (ROM) - Uma classe de memrias a semicondutor projetadas para aplicaes onde a taxa de operaes de leitura infinitamente mais alta do que as de escrita. So no-volteis.
DISPOSITIVOS DE MEMRIA ESTTICA - Enquanto houver energia eltrica aplicada, no h necessidade de rescrever a informao.
DISPOSITIVOS DE MEMRIA DINMICA - Necessitam de recarga ( refresh )
MEMRIA PRINCIPAL (INTERNA) - a mais rpida do sistema. ( Instrues e
dados ).
MEMRIA DE MASSA - mais lenta que a principal. Grande capacidade de armazenamento

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

58

4.4

Unidade Central de Processamento

A Unidade Central de Processamento - UCP (em ingls, Central Processing Unity CPU) a responsvel pelo processamento e execuo dos programas armazenados
na MP. As funes da UCP so: executar as instrues e controlar as operaes no
computador.
A UCP composta de duas partes: Unidade Aritmtica e Lgica e Unidade de Controle.
4.4.1 Unidade Aritmtica e Lgica
Tem por funo a efetiva execuo das instrues.

4.4.2 Unidade de Controle


Tem por funes a busca, interpretao e controle de execuo das instrues, e o
controle dos demais componentes do computador. A seguir apresentado o diagrama esquemtico de uma UCP.

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

59

4.4.3 Registradores Importantes na UCP

Na UC - CI Contador de Instrues (em ingls: PC - Program Counter) - armazena o endereo da prxima instruo a ser executada - tem sempre o
mesmo tamanho do REM.

Na UC - RI Registrador de Instruo (em ingls: IR - Instruction Register) armazena a instruo a ser executada.

Na UAL - ACC Acumulador (em ingls: ACC - Accumulator) - armazena os


dados (de entrada e resultados) para as operaes na UAL; o acumulador
um dos principais elementos que definem o tamanho da palavra do computador - o tamanho da palavra igual ao tamanho do acumulador.

4.4.4 Instrues
Para que um programa possa ser executado por um computador, ele precisa ser
constitudo de uma srie de instrues de mquina e estar armazenado em clulas
sucessivas na memria principal. A UCP responsvel pela execuo das instrues que esto na memria.
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

60

Quem executa um programa o hardware e o que ele espera encontrar um programa em linguagem de mquina (uma seqncia de instrues de mquina em cdigo binrio). A linguagem de mquina composta de cdigos binrios, representando instrues, endereos e dados e est totalmente vinculada ao conjunto ("set")
de instrues da mquina.
Um ser humano usa seu conhecimento e inteligncia para traduzir uma tarefa complexa (tal como, por exemplo, a tarefa de buscar uma pasta num arquivo) numa srie
de passos elementares (identificar o mvel e gaveta onde est a pasta, andar at o
mvel, abrir a gaveta, encontrar a pasta, retirar a pasta e fechar a gaveta). Para o
computador, uma instruo precisa ser detalhada, dividida em pequenas etapas de
operaes, que so dependentes do conjunto de instrues do computador e individualmente executveis.
Fazendo um paralelo com linguagens de alto nvel, o programa elaborado pelo programador (o cdigo-fonte, composto de instrues complexas) precisa ser "traduzido" em pequenas operaes elementares (primitivas) executveis pelo hardware.
Cada uma das instrues tem um cdigo binrio associado, que o cdigo da operao.

4.4.4.1 Formato Geral de uma Instruo

Cdigo de operao (OPCODE)

Operando (s) (OP)

Cdigo de Operao ou OPCODE - identifica a operao a ser realizada pelo processador. o campo da instruo cuja valor binrio identifica ( o cdigo binrio) da operao a ser realizada. Este cdigo a entrada no decodificador de instrues na unidade de controle. Cada instruo dever ter um
cdigo nico que a identifique.

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

61

Operando(s) - ou so o(s) campo(s) da instruo cujo valor binrio sinaliza


a localizao do dado (ou o prprio dado) que ser manipulado (processado) pela instruo durante a operao. Em geral, um operando identifica o
endereo de memria onde est contido o dado que ser manipulado, ou pode conter o endereo onde o resultado da operao ser armazenado. Finalmente, um operando pode tambm indicar um Registrador (que conter o dado propriamente dito ou um endereo de memria onde est armazenado o
dado). Os operandos fornecem os dados da instruo.

Obs: Existem instrues que no tem operando. Ex.: Instruo HALT (PARE).

4.4.5 Conjunto de Instrues


Quando se projeta um hardware, define-se o seu conjunto ("set") de instrues - o
conjunto de instrues elementares que o hardware capaz de executar. O projeto
de um processador centrado no seu conjunto ("set") de instrues. Essa uma
das mais bsicas decises a ser tomada pelo Engenheiro de projeto. Quanto menor
e mais simples for este conjunto de instrues, mais rpido pode ser o ciclo de tempo do processador.
Funcionalmente, um processador precisa possuir instrues para:

operaes matemticas

1. aritmticas: +, - , , ...
2. lgicas: and, or, xor, ...
3. de complemento
4. de deslocamento

operaes de movimentao de dados (memria <--> UCP, reg <--> reg)

operaes de entrada e sada (leitura e escrita em dispositivos de E/S)

operaes de controle (desvio de seqncia de execuo, parada)

As estratgias de implementao de processadores so:

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

62

CISC - Complex Instruction Set Computer - exemplo: PC, Macintosh; um conjunto de instrues maior e mais complexo, implicando num processador mais
complexo, com ciclo de processamento mais lento; ou

RISC - Reduced Instruction Set Computer - exemplo: Power PC, Alpha,


Sparc; um conjunto de instrues menor e mais simples, implicando num processador mais simples, com ciclo de processamento rpido.

Obs.: adotaremos o termo instruo para as instrues de mquina ou em linguagem Assembly e comando para linguagens de alto nvel.
H hoje uma crescente tendncia a se utilizar um conjunto de instrues reduzido,
de vez que os compiladores tendem a usar em geral apenas uma pequena quantidade de instrues. H tambm vantagens na implementao do hardware - maior
simplicidade, menor tempo de ciclo de instruo.
O projeto de um processador poderia ser resumido em:
a) Definir o conjunto de instrues (todas as possveis instrues que o processador
poder executar)
definir formato e tamanho das instrues
definir as operaes elementares
a) Projetar os componentes do processador (UAL, UC, registradores, barramentos)
Duas estratgias so possveis na construo do decodificador de instrues da UC:
wired logic (as instrues so todas implementadas em circuito).
microcdigo (apenas um grupo bsico de instrues so implementadas em circuitos; as demais so "montadas" atravs de microprogramas que usam as instrues
bsicas.
4.4.6 Ciclo de Instruo
As instrues so executadas seqencialmente (a no ser pela ocorrncia de um
desvio), uma a uma.
O CI indica a seqncia de execuo, isto , o CI controla o fluxo de execuo das
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

63

instrues. A seguir ilustrado o ciclo de processamento de uma instruo.

Descrio do processamento de uma instruo na UCP:


-

a UC l o endereo da prxima instruo no CI;

a UC transfere o endereo da prxima instruo, atravs do barramento interno,


para o REM.

4.5

Comunicao entre Memria Principal e a Unidade Central de Processamento

4.5.1 Barramentos
Os diversos componentes dos computadores se comunicam atravs de barramentos. Barramento um conjunto de condutores eltricos que interligam os diversos
componentes do computador e de circuitos eletrnicos que controlam o fluxo dos
bits. Para um dado ser transportado de um componente a outro, preciso emitir os
sinais de controle necessrios para o componente-origem colocar o dado no barramento e para o componente-destino ler o dado do barramento. Como um dado
composto por bits (geralmente um ou mais bytes) o barramento dever ter tantas linhas condutoras quanto forem os bits a serem transportados de cada vez.
Obs.: Em alguns computadores (usando uma abordagem que visa a reduo de custos), os dados podem ser transportados usando mais de um ciclo do barramento.

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

64

Assim, se quisermos transferir um byte - por exemplo, 01001010 - da UCP para a


Memria Principal, os circuitos de controle se encarregaro de colocar o byte
01001010 no barramento, ou seja, colocariam sinais de tenso "high" nas 2, 4 e 7
linhas do barramento (por conveno, os bits so sempre ordenados da direita para
a esquerda) e de informar memria para ler o dado no barramento. Os dados so
representados no barramento na forma de sinais de tenso, sendo que um sinal de
tenso de uns poucos volts ("high") representa o bit "1" e um sinal prximo de zero
volts ("low") representa o bit "0".

4.5.2 Registradores Utilizados


A comunicao entre MP e UCP usa dois registradores da UCP chamados de Registrador de Endereos de Memria - REM ou, em ingls, Memory Address Register
(MAR), bem o como Registrador de Dados da Memria - RDM ou, em ingls, Memory Buffer Register (MBR).
x = no de bits do barramento de endereos; em geral (mas no obrigatoriamente)
igual ao n de bits do Registrador de Endereos de Memria - REM.
M = n de bits contidos em uma clula; M em geral (mas no obrigatoriamente) igual ao n de bits do Registrador de Dados da Memria - RDM.
4.6

Esquema de Funcionamento da Comunicao entre MP / UCP

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

65

UCP / MP
Barramento de endereos unidirecional (s a UCP envia dados - write - ou l dados - read - da MP)
Barramento de dados bidirecional
Barramento de controle bidirecional
UCP ---> MP (controles ... - r/w)
MP -----> UCP (wait ... )
ELEMENTOS ENVOLVIDOS
- Barramentos
de dados bidirecional
de endereos unidirecional
de controle bidirecional
- Registradores
REM - Registrador de Endereos de Memria (MAR - Memory Address Register)
RDM - Registrador de Dados de Memria (MBR - Memory Buffer Register)
4.7

Palavra (Unidade de Informao)

Palavra a unidade de informao do sistema UCP / MP. A conceituao mais usada (IBM, Digital) define palavra como sendo a capacidade de manipulao de bits do
ncleo do computador (UCP e MP). Pressupe-se aqui que todos os elementos do
ncleo do computador (o que inclu o tamanho da UAL, do acumulador e registradores gerais da UCP e o barramento de dados) tenham a mesma largura (processem
simultaneamente o mesmo nmero de bits), o que nem sempre acontece. Muitas vezes encontram-se computadores em que o tamanho da UAL e do acumulador (e registradores gerais) no o mesmo tamanho dos barramentos. Desta forma, encontram-se especificaes de "computadores de 64 bits" mesmo quando seu barramento de dados de 32 bits, nesse caso referindo-se exclusivamente capacidade de
manipulao da UCP de 64 bits (isto , sua UAL e acumulador tem 64 bits). Esta
conceituao imprecisa (s vezes, enganosa) e pode levar a erros de avaliao da
capacidade de processamento de um computador.

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

66

Como exemplos, citamos os microprocessadores Intel 8086 (16 bits, sendo todos
seus elementos de 16 bits) e seu "irmo" mais novo 8088, usado nos primeiros
IBM/PC e XT (idntico sob quase todos os aspectos ao 8086 e tambm dito de 16
bits, sendo que UAL e registradores so de 16 bits mas o barramento de dados de
apenas 8 bits, por economia e razes de compatibilidade com toda uma gerao de
placas de 8 bits). Destaque-se que nesse caso as transferncias de dados atravs
do barramento de dados se fazem em duas etapas, um byte de cada vez, e em conseqncia no 8088 elas consomem o dobro dos ciclos de barramento que o 8086), o
que torna suas operaes de transferncia de dados mais lentas que as de seu "irmo" 8086.
Concluindo, deve-se analisar caso a caso, porque a simples meno ao tamanho da
palavra no uma terminologia que permita definir de forma conclusiva sobre a arquitetura do computador.
Em geral, o termo "clula" usada para definir a unidade de armazenamento (o tamanho de clulas de memria) e o termo "palavra" para definir a unidade de transferncia e processamento, significando na prtica quantos bits o computador movimenta e processa em cada operao.
No confundir: clula no sinnimo de palavra, embora em algumas mquinas a
palavra seja igual clula. A palavra de um computador pode ter 1 byte (p.ex, 8080),
2 bytes (p.ex. 80286), 4 bytes (p.ex. 486, o Pentium, e muitos mainframes IBM) e
mesmo 8 bytes (p.ex. o Alpha da DEC).
Clulas de memria muitas vezes tem o tamanho de 1 ou 2 bytes - de 8 a 16 bits.
4.8

Tempo de Acesso

Tempo de acesso (ou tempo de acesso para leitura) o tempo decorrido entre uma
requisio de leitura de uma posio de memria e o instante em que a informao
requerida est disponvel para utilizao pela UCP. Ou seja, o tempo que a memria
consome para colocar o contedo de uma clula no barramento de dados. O tempo
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

67

de acesso de uma memria depende da tecnologia da memria. As memrias


DRAM (Dynamic RAM - as mais comuns hoje) tem tempo de acesso na faixa de 60
ns.
Tempo de ciclo (ou ciclo de memria conceituado como o tempo decorrido entre
dois ciclos sucessivos de acesso memria. As memrias dinmicas perdem seu
contedo em alguns instantes e dependem de ser periodicamente atualizadas (ciclo
de "refresh"). No caso das SRAM (Static RAM ou memrias estticas), que no dependem de "refresh", o tempo de ciclo igual ao tempo de acesso. As memrias dinmicas, no entanto, requerem ciclos peridicos de "refresh", o que faz com que a
memria fique indisponvel para novas transferncias, a intervalos regulares necessrios para os ciclos de "refresh". Assim, as memrias DRAM tem ciclo de memria
maior que o tempo de acesso.
O tempo de acesso de qualquer memria tipo RAM (Random Access Memory ou
memria de acesso aleatrio) independente do endereo a ser acessado (a posio de memria a ser escrita ou lida), isso , o tempo de acesso o mesmo qualquer que seja o endereo acessado.
4.9

Acesso Memria Principal

O acesso MP ALEATRIO, portanto qualquer que seja o endereo (a posio)


de memria que se queira acessar, o tempo de acesso o mesmo (constante).
Obs.: Embora a MP seja endereada por clula, a UCP em geral acessa a MP por
palavra.
O endereamento por clula d maior flexibilidade de armazenamento, em compensao o nmero de acessos em geral maior.

4.9.1 Acesso Tipo Ler ou Escrever


4.9.1.1 Leitura: Ler da Memria
Significa requisitar MP o contedo de uma determinada clula (recuperar uma inApostila de Introduo aos Sistemas de Computao - Prof. Bruno

68

formao). Esta operao de recuperao da informao armazenada na MP consiste na transferncia de um conjunto de bits (cpia) da MP para a UCP e no destrutiva, isto , o contedo da clula no alterado.
SENTIDO: da MP para a UCP
Passos Executados pelo Hardware:
a.1) a UCP armazena no REM o endereo onde a informao requerida est armazenada;
a.2) a UCP comanda uma leitura;
a.3) o contedo da posio identificada pelo endereo contido no REM transferido
para o RDM e fica disponvel para a UCP.

4.9.1.2 Escrita: Escrever na Memria


Significa escrever uma informao em uma clula da MP (armazenar uma informao). Esta operao de armazenamento da informao na MP consiste na transferncia de um conjunto de bits da UCP para a MP e destrutiva (isto significa que
qualquer informao que estiver gravada naquela clula ser sobregravada).
SENTIDO: da UCP para a MP
PASSOS EXECUTADOS PELO HARDWARE:
b.1) a UCP armazena no REM o endereo de memria da informao a ser gravada
e no RDM a prpria informao;
b.2) a UCP comanda uma operao de escrita;
b.3) a informao armazenada no RDM transferida para a posio de memria cujo endereo est contido no REM.

4.10 Classificao das Memrias


Quanto leitura e escrita, as memrias podem ser classificadas como:

4.10.1 R/W Read and Write (memria de leitura e escrita) - RAM


Comumente (e impropriamente) chamada de RAM (Random Access Memory ou
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

69

memria de acesso aleatrio), embora no seja a nica RAM.


Esta memria permite operaes de escrita e leitura pelo usurio e pelos programas.
Seu tempo de acesso da ordem de 70ns e independe do endereo acessado.
construda com tecnologia de semicondutores (bipolar, CCD), pode ser esttica
(SRAM) ou dinmica (DRAM) e voltil. A MP construda com memria R/W.

4.10.2 ROM Read Only Memory (memria apenas de leitura)


Esta memria permite apenas a leitura e uma vez gravada no pode mais ser alterada. Tambm de acesso aleatrio (isto , tambm uma RAM), mas no voltil.
utilizada geralmente por fabricantes para gravar programas que no se deseja permitir que o usurio possa alterar ou apagar acidentalmente (tal como por ex. a BIOS
- Basic Input Output System e microprogramas de memrias de controle). Quando
se liga uma mquina, da ROM que vem os programas que so carregados e processados no "boot" (na inicializao o hardware aponta automaticamente para o
primeiro endereo da ROM). Desta forma, parte do espao de endereamento da
MP ocupado por ROM. A ROM mais lenta que a R/W e barata, porm o processo produtivo depende de ser programada por mscara ("mask programmed") em
fbrica e devido ao alto custo da mscara somente se torna econmica em grandes
quantidades.
Obs.: Boot (ou bootstrap loader) o processo de inicializao e carga dos programas bsicos de um computador, automtica, sem interveno externa. Este termo vem de uma analogia com um processo (impossvel) que seria uma pessoa se
levantar puxando-se pelos cordes de suas prprias botas.
4.10.3 PROM Programmable Read Only Memory (Memria programvel de leitura)
Esta memria uma ROM programvel (em condies e com mquinas adequadas,
chamadas queimadores de PROM) e geralmente comprada "virgem" (sem nada
gravado), sendo muito utilizada no processo de testar programas no lugar da ROM,
ou sempre que se queira produzir ROM em quantidades pequenas. Uma vez programada (em fbrica ou no), no pode mais ser alterada.
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

70

4.10.4 EPROM - Erasable Programmable Read Only Memory (Memria programvel


apagvel de leitura)
Esta memria uma PROM apagvel. Tem utilizao semelhante da PROM, para
testar programas no lugar da ROM, ou sempre que se queira produzir ROM em
quantidades pequenas, com a vantagem de poder ser apagada e reutilizada.

4.10.5 EEPROM ou E2PROM Eletrically Erasable Programmable Read Only Memory (Memria programvel apagvel eletronicamente)
Tambm chamada EAROM (Electrically Alterable ROM). Esta memria uma
EPROM apagvel por processo eletrnico, sob controle da UCP, com equipamento e
programas adequados. mais cara e geralmente utilizada em dispositivos aos
quais se deseja permitir a alterao, via modem, possibilitando a carga de novas
verses de programas distncia ou ento para possibilitar a reprogramao dinmica de funes especficas de um determinado programa, geralmente relativas ao
hardware (p.ex., a reconfigurao de teclado ou de modem, programao de um
terminal, etc).
4.11 Lgica Temporizada
Conforme vimos ao analisar a comunicao entre UCP e memria, as instrues, os
dados e os endereos "trafegam" no computador atravs dos barramentos (de dados, de endereos e de controle), sob a forma de bits representados por sinais eltricos: uma tenso positiva alta ("high" - geralmente no entorno de 3 volts) significando "1" e uma tenso baixa ("low" - prxima de zero) significando "0". Mas os dados
no computador no ficam estticos; pelo contrrio, a cada ciclo (cada "estado") dos
circuitos, os sinais variam, de forma a representar novas instrues, dados e endereos. Ou seja, os sinais ficam estticos apenas por um curto espao de tempo,
necessrio e suficiente para os circuitos poderem detectar os sinais presentes no
barramento naquele instante e reagir de forma apropriada. Assim, periodicamente,
uma nova configurao de bits colocada nos circuitos, e tudo isso s faz sentido se
pudermos de alguma forma organizar e sincronizar essas variaes, de forma a que,
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

71

num dado instante, os diversos circuitos do computador possam "congelar" uma configurao de bits e process-las. Para isso, preciso que exista um outro elemento,
que fornece uma base de tempo para que os circuitos e os sinais se sincronizem.
Este circuito chamado clock - o relgio interno do computador. Cada um dos estados diferentes que os circuitos assumem, limitados pelo sinal do clock, chamado
um ciclo de operao.

4.11.1 Clock
A Unidade de Controle da UCP envia a todos os componentes do computador um
sinal eltrico regular - o pulso de "clock" - que fornece uma referncia de tempo para
todas as atividades e permite o sincronismo das operaes internas. O clock um
pulso alternado de sinais de tenso, gerado pelos circuitos de relgio (composto de
um cristal oscilador e circuitos auxiliares).

4.11.2 Ciclo de Operao


Cada um destes intervalos regulares de tempo delimitado pelo incio da descida do
sinal, eqivalendo um ciclo excurso do sinal por um "low" e um "high" do pulso.
O tempo do ciclo eqivale ao perodo da oscilao. A fsica diz que perodo o inverso da freqncia. Ou seja,
P = 1 / f.
A freqncia f do clock medida em hertz. Inversamente, a durao de cada ciclo
chamada de perodo, definido por P=1/f (o perodo o inverso da freqncia).
Por exemplo, se f = 10 hz logo P = 1/10 = 0,1 s.

1 Mhz (1 megahertz) eqivale a um milho de ciclos por segundo. Sendo a freqncia de um processador medida em megahertz, o perodo ser ento medido em nanosegundos, como vemos no exemplo abaixo:
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

72

f = 10 Mhz = 10 x 106 hz
P = 10 / 106 = 100 ns (1 nanosegundo).
Sempre que se fala sobre mquinas velozes, citamos nmeros em megahertz. Para
um melhor entendimento sobre o que ocorre na mquina, em vez de falar sobre a
freqncia do clock seria mais ilustrativo discutirmos uma outra grandeza: o perodo
(isto , o tempo de durao de cada ciclo ou simplesmente tempo de ciclo).
Quando se diz que um processador de 200 Mhz, est-se definindo a freqncia de
operao de seu processador (seu clock), significando que o processador pode alternar seus estados internos 166 milhes de vezes por segundo. Isto acarreta que
cada ciclo (equivalente a um estado lgico) de operao dura
1 / 200.000.000 s = 5 x 10-9 s ou seja, 5 nanosegundos.
Como podemos ver pelo exemplo a seguir, o processador com o clock ilustrado em
(B) teria um tempo de ciclo cinco vezes menor que o (A) e portanto teria (teoricamente) condies de fazer cinco vezes mais operaes no mesmo tempo.

Quando analisamos os nmeros de clock de um processador ou barramento, pode


ficar uma impresso que esses nmeros no fazem sentido: 133 MHz, 166 MHz ...
Vejamos como ficam seus perodos, e como esses nmeros apresentam um padro
regular:
Freqncia (MHz) Perodo (ns)
25

40

33

30

40

25

50

20

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

73

66

15

100

10

133

7.5

166

200

266

3.75

Os primeiros computadores tinham um nico sinal de clock geral, vlido para UCP,
memria, barramentos de E/S (entrada / sada), etc. medida que a tecnologia foi
se aperfeioando, a freqncia de clock de operao dos processadores (e, em menor escala, tambm a das memrias) aumentou em uma escala muito maior que a
dos demais componentes. Desta forma, foi necessrio criar diferentes pulsos de
clock para acomodar as freqncias de operao dos diferentes componentes. A
placa-me de um PC utiliza uma freqncia-mestra (hoje em geral de 66 Mhz, equivalente a um perodo de 15 ns, estando em prancheta placas para 100 MHz) para
seu barramento (ciclo de barramento), a qual multiplicada ou dividida para ser utilizada pelos demais componentes:
o processador tem essa freqncia multiplicada por 2 (133 Mhz) a 4 (266 MHz),
o barramento PCI usa freqncias reduzidas pela metade (33 Mhz),
as memrias (ciclos da ordem de 60 ns) usam freqncias reduzidas a um quarto e
as cache secundrias (ciclos entre 10 e 20 ns) usam a prpria freqncia da placame.
As memrias cache primrias so hoje construdas como parte do processador e
usam o mesmo clock do processador.
O efeito prtico (econmico$$$$) do aumento da freqncia de operao que a
preciso de fabricao dos circuitos tem que ser tambm maior. O tamanho de cada
juno de transistor fica menor (hoje so construdos chips com 0,35 microns e uma
nova gerao com 0,25 microns est em gestao). Uma juno menor requer meApostila de Introduo aos Sistemas de Computao - Prof. Bruno

74

nor potncia para sua operao, menos eltrons para operar uma transio de estados, menor tempo de propagao do sinal, menor potncia dissipada.
Em conseqncia da grande preciso exigida, apenas uma pequena parcela dos
processadores fabricados (cerca de 5%) consegue operar na mxima freqncia para a qual foram projetados, e a maioria certificada para operar a freqncias mais
baixas. Isto acarreta que, embora todos os processadores de um tipo sejam fabricados pelos mesmos processos e nas mesmas mquinas, apenas alguns sero certificados para a mxima freqncia prevista, o que obriga que o preo dos processadores de clock mximo seja muito mais caro que o dos muitos outros que no obtiveram certificao para aquele elevado clock e sero vendidos com "tags" de 166 ou
133 Mhz, a preos reduzidos.

4.11.3 Instrues por Ciclo


Qual a real importncia e significado da freqncia do processador?
Quando se faz uma soma em uma calculadora, basta teclar cada um dos algarismos
do 1 nmero, teclar o sinal de mais, depois teclamos os algarismos do segundo
nmero e teclamos o sinal de igual.
comum pensar que nos computadores as coisas se passam mais ou menos do
mesmo jeito. No entanto, a soma propriamente dita a menor das tarefas que um
computador executa quando soma dois nmeros. Neste exemplo, o computador precisaria localizar a instruo de soma na memria e mov-la para a UCP. Esta instruo estaria codificada na forma de dgitos binrios e teria que ser decodificada para
determinar a operao a ser realizada (no caso, ADD), o tamanho dos dados (quantas clulas eles ocupam), determinar a localizao e buscar cada um dos nmeros
na memria, e s ento, finalmente, fazer a soma. Para o computador, a soma realmente a parte mais simples e mais rpida de toda a operao, j que decodificar a
instruo e principalmente obter os dados tomam a maior parte do tempo.
Cada nova gerao de processadores tem sido capaz de executar as operaes relativas ao processamento de uma instruo em menor nmero de ciclos do clock.
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

75

Por exemplo, na famlia Intel x86:


-

386 - mnimo de 6 ciclos por instruo de soma de 2 nmeros

486 - em geral, 2 ciclos por instruo de soma de 2 nmeros

Pentium - 1 ciclo por instruo de soma de 2 nmeros

Pentium Pro - 1 ciclo por instruo de soma de 3 nmeros; na soma de mais nmeros, quando um dos nmeros est em memria de baixa velocidade, o Pentium Pro capaz de "pular" este nmero e, enquanto busca o nmero que falta,
seguir adiante, buscando e somando os demais nmeros para finalmente incluir o
nmero que faltava na soma.

Usando uma analogia com um automvel, para andar mais rpido geralmente mais
eficaz trocar de marcha do que acelerar. Comparativamente, um processador de 66
Mhz hoje eqivaleria a uma pequena presso no acelerador e um de 300 Mhz ao
acelerador pressionado at o fundo (p na tbua!). Mas, se um 8088 fosse a 1 marcha, um Pentium II seria equivalente 5 marcha e seria certamente muito mais rpido, mesmo que fosse possvel "acelerar" o 8088 ao mesmo clock do Pentium. Se
compararmos um 486 DX4-100 (100 Mhz) com um Pentium tambm de 100 Mhz,
veremos que o Pentium 100 ser substancialmente mais rpido, o que se deve sua
arquitetura e no ao clock.
portanto um engano comparar apenas a freqncia do clock: o desempenho do
processador deve ser avaliado por um conjunto de caractersticas da arquitetura, do
qual a freqncia do clock apenas um deles - e no o mais importante .
5

Dispositivos de Entradas e Sadas

Conforme vimos no captulo relativo a componentes, o usurio se comunica com o


ncleo do computador (composto por UCP e memria principal) atravs de dispositivos de entrada e sada (dispositivos de E/S ou I/O devices). Os tpicos a seguir vo
analisar como funcionam os dispositivos de entrada e sada e como se faz a comunicao entre eles e o ncleo do computador.
Os dispositivos de entrada e sada tem como funes bsicas:

a comunicao do usurio com o computador

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

76

a comunicao do computador com o meio ambiente (dispositivos externos a


serem monitorados ou controlados)

armazenamento (gravao) de dados.

As caractersticas que regem a comunicao de cada um dos dispositivos de E/S


(entrada e sada) com o ncleo do computador (composto de UCP e memria principal) so muito diferentes entre si. Cada dispositivo de E/S se comunica com o ncleo
de forma diversa do outro. Entre outras diferenas, os dispositivos de entrada e sada so muito mais lentos que o computador, caracterstica essa que impe restries comunicao, de vez que o computador precisaria esperar muito tempo pela
resposta do dispositivo. Outra diferena fundamental diz respeito s caractersticas
das ligaes dos sinais dos dispositivos.
Os primeiros computadores, especialmente os de pequeno porte, eram muito lentos
e os problemas de diferena de velocidade eram resolvidos sem dificuldade e no
representavam problema importante. Dessa forma, a ligao dos dispositivos de E/S
era feita atravs de circuitos simples (as interfaces) que apenas resolviam os aspectos de compatibilizao de sinais eltricos entre os dispositivos de E/S e a UCP. Os
aspectos relativos a diferenas de velocidade (especialmente tempo de acesso e throughput) eram resolvidas por programa (isto , por software).
Entre esses componentes, trafegam informaes relativas a dados, endereos e
controle.

5.1

Tipos de Dispositivos

Os dispositivos de ENTRADA so: teclado, mouses, scanners, leitoras ticas, leitoras de cartes magnticos, cmeras de vdeo, microfones, sensores, transdutores.
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

77

As funes desses dispositivos so coletar informaes e introduzir as informaes


na mquina, converter informaes do homem para a mquina e vice-versa, e recuperar informaes dos dispositivos de armazenamento.
Os dispositivos de SADA so: impressoras, monitores de vdeo, plotters, atuadores,
chaves, etc.
As funes desses dispositivos so exibir ou imprimir os resultados do processamento, ou ainda controlar dispositivos externos.
A UCP no se comunica diretamente com cada dispositivo de E/S e sim com "interfaces", de forma a compatibilizar as diferentes caractersticas. O processo de comunicao ("protocolo") feito atravs de transferncia de informaes de controle, endereos e dados propriamente ditos. Inicialmente, a UCP interroga o dispositivo, enviando o endereo do dispositivo e um sinal dizendo se quer mandar ou receber dados atravs da interface. O perifrico, reconhecendo seu endereo, responde quando est pronto para receber (ou enviar) os dados. A UCP ento transfere (ou recebe)
os dados atravs da interface, e o dispositivo responde confirmando que recebeu
(ou transferiu) os dados (acknowledge ou ACK) ou que no recebeu os dados, neste
caso solicitando retransmisso (not-acknowledge ou NAK).
As interfaces de entrada e sada so conhecidas por diversos nomes, dependendo
do fabricante:
Interface de E/S = Adaptador de Perifrico, Controladora de E/S, Processador de
Perifrico, Canal de E/S
Por exemplo, os computadores de grande porte da IBM chamam de "I/O channel".
Na CDC, o nome Peripheral Processor Unit ou PPU.
A compatibilizao de velocidades feita geralmente por programa, usando memrias temporrias na interface chamadas "buffers" que armazenam as informaes
conforme vo chegando da UCP e as libera para o dispositivo medida que este as
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

78

pode receber.

5.2

Formas de Comunicao

De uma forma geral, a comunicao entre o ncleo do computador e os dispositivos


de E/S poderia ser classificada em dois grupos: comunicao paralela ou serial.

5.2.1 Comunicao em Paralelo


Na comunicao em paralelo, grupos de bits so transferidos simultaneamente (em
geral, byte a byte) atravs de diversas linhas condutoras dos sinais. Desta forma,
como vrios bits so transmitidos simultaneamente a cada ciclo, a taxa de transferncia de dados ("throughput") alta.

No entanto, o processo de transferncia em paralelo envolve um controle sofisticado


e razoavelmente complexo, o que o torna mais caro. Um dos problemas importantes diz respeito propagao dos sinais no meio fsico, isto , no cabo de conexo
entre o dispositivo e a interface. Essa propagao deve se fazer de modo que os sinais (os bits) correspondentes a cada byte cheguem simultaneamente extremidade
oposta do cabo, onde ento sero re-agrupados em bytes. Como os condutores que
compem o cabo usualmente tero pequenas diferenas fsicas, a velocidade de
propagao dos sinais digitais nos condutores poder ser ligeiramente diferente nos
diversos fios. Dependendo do comprimento do cabo, pode ocorrer que um determinado fio conduza sinais mais rpido (ou mais lento) que os demais fios e que desta
forma um determinado bit x em cada byte se propague mais rpido e chegue extremidade do cabo antes que os outros n-1 bits do byte. Este fenmeno chamado
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

79

skew, e as conseqncias so catastrficas: os bits x chegariam fora de ordem (os


bytes chegariam embaralhados) e a informao ficaria irrecupervel. Em decorrncia
desse problema, h limites para o comprimento do cabo que interliga um dispositivo
ao computador, quando se usa o modo paralelo.
As restries citadas contribuem para que a utilizao da comunicao em paralelo
se limite a aplicaes que demandem altas taxas de transferncia, normalmente associadas a dispositivos mais velozes tais como unidades de disco, ou que demandem altas taxas de transferncia, como CD-ROM, DVD, ou mesmo impressoras, e
que se situem muito prximo do ncleo do computador. Em geral, o comprimento
dos cabos paralelos limitado a at um mximo de 1,5 metro.

5.2.2 Comunicao Serial


Na comunicao serial, os bits so transferidos um a um, atravs de um nico par
condutor. Os bytes a serem transmitidos so serializados, isto , so "desmontados"
bit a bit, e so individualmente transmitidos, um a um. Na outra extremidade do condutor, os bits so contados e quando formam 8 bits, so remontados, reconstituindo
os bytes originais. Nesse modo, o controle comparativamente muito mais simples
que no modo paralelo e de implementao mais barata. Como todos os bits so
transferidos pelo mesmo meio fsico (mesmo par de fios), as eventuais irregularidades afetam todos os bits igualmente. Portanto, a transmisso serial no afetada
por irregularidades do meio de transmisso e no h skew. No entanto, a transmisso serial intrinsecamente mais lenta (de vez que apenas um bit transmitido de
cada vez).

Como os bits so transmitidos seqencialmente um a um, sua utilizao normalmente indicada apenas para perifricos mais lentos, como por exemplo teclado,
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

80

mouse, etc. ou quando o problema da distncia for mandatrio, como nas comunicaes a distncias mdias (tal como em redes locais) ou longas (comunicaes via linha telefnica usando modems).
Obs.: Comparativamente, a transmisso serial tem recebido aperfeioamentos importantes (seja de protocolo, de interface e de meio de transmisso) que vem permitindo o aumento da velocidade de transmisso por um nico par de fios, cabo coaxial ou de fibra tica. Como o aumento da velocidade de transmisso em interfaces
paralelas ocasiona mais skew, a tendncia tem sido no sentido do aperfeioamento
das interfaces seriais que hoje permitem taxas de transferncia muito altas com relativamente poucas restries de distncia. Em microcomputadores, a interface USB Universal Serial Bus permite hoje ligar at 128 dispositivos a taxas muito altas (centenas de kbps).

5.2.3 Tabela Comparativa


Caracterstica

Paralelo

Serial

Custo

maior

menor

Distncia

curta

sem limite

Throughput

alto

baixo

5.2.4 Transmisso Sncrona e Assncrona


A transmisso de caracteres atravs de uma linha de comunicao pode ser feita
por dois diferentes mtodos: transmisso sncrona e assncrona.

5.2.4.1 Transmisso Sncrona


Na transmisso sncrona, o intervalo de tempo entre dois caracteres subseqentes
fixo. Nesse mtodo, os dois dispositivos - transmissor e receptor - so sincronizados, pois existe uma relao direta entre tempo e os caracteres transferidos. Quando
no h caracteres a serem transferidos, o transmissor continua enviando caracteres
especiais de forma que o intervalo de tempo entre caracteres se mantm constante
e o receptor mantm-se sincronizado. No incio de uma transmisso sncrona, os reApostila de Introduo aos Sistemas de Computao - Prof. Bruno

81

lgios dos dispositivos transmissor e receptor so sincronizados atravs de um string


de sincronizao e ento mantm-se sincronizados por longos perodos de tempo
(dependendo da estabilidade dos relgios), podendo transmitir dezenas de milhares
de bits antes de terem necessidade de re-sincronizar.

5.2.4.2 Transmisso Assncrona


J na transmisso assncrona, o intervalo de tempo entre os caracteres no fixo.
Podemos exemplificar com um digitador operando um terminal, no havendo um fluxo homogneo de caracteres a serem transmitidos. Como o fluxo de caracteres no
homogneo, no haveria como distinguir a ausncia de bits sendo transmitidos de
um eventual fluxo de bits zero e o receptor nunca saberia quando vir o prximo caractere, e portanto no teria como identificar o que seria o primeiro bit do caractere.
Para resolver esses problemas de transmisso assncrona, foi padronizado que na
ausncia de caracteres a serem transmitidos o transmissor mantm a linha sempre
no estado 1 (isto , transmite ininterruptamente bits 1, o que distingue tambm de linha interrompida). Quando for transmitir um caractere, para permitir que o receptor
reconhea o incio do caractere, o transmissor insere um bit de partida (start bit) antes de cada caractere. Convenciona-se que esse start bit ser um bit zero, interrompendo assim a seqncia de bits 1 que caracteriza a linha livre (idle). Para maior segurana, ao final de cada caractere o transmissor insere um (ou dois, dependendo
do padro adotado) bits de parada (stop bits), convencionando-se serem bits 1 para
distingui-los dos bits de partida. Os bits de informao so transmitidos em intervalos
de tempo uniformes entre o start bit e o(s) stop bit(s). Portanto, transmissor e receptor somente estaro sincronizados durante o intervalo de tempo entre os bits de start
e stop. A transmisso assncrona tambm conhecida como "start-stop".

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

82

A taxa de eficincia de uma transmisso de dados medida como a relao de nmero de bits teis dividido pelo total de bits transmitidos. No mtodo assncrono, a
eficincia menor que a no mtodo sncrono, uma vez que h necessidade de inserir os bits de partida e parada, de forma que a cada caractere so inseridos de 2 a 3
bits que no contm informao.

5.2.5 Transmisso Simplex, Half-Duplex e Full-Duplex


5.2.5.1 Transmisso Simplex
Uma comunicao dita simplex quando permite comunicao apenas em um nico
sentido, tendo em uma extremidade um dispositivo apenas transmissor (transmitter)
e do outro um dispositivo apenas receptor (receiver). No h possibilidade do dispositivo receptor enviar dados ou mesmo sinalizar se os dados foram recebidos corretamente. Transmisses de rdio e televiso so exemplos de transmisso simplex.

5.2.5.2 Transmisso Half-Duplex


Uma comunicao dita half-duplex (tambm chamada semi-duplex) quando existem em ambas as extremidades dispositivos que podem transmitir e receber dados,
porm no simultaneamente. Durante uma transmisso half-duplex, em determinado
instante um dispositivo A ser transmissor e o outro B ser receptor, em outro instante os papis podem se inverter. Por exemplo, o dispositivo A poderia transmitir
dados que B receberia; em seguida, o sentido da transmisso seria invertido e B
transmitiria para a informao se os dados foram corretamente recebidos ou se foram detectados erros de transmisso. A operao de troca de sentido de transmisApostila de Introduo aos Sistemas de Computao - Prof. Bruno

83

so entre os dispositivos chamada de turn-around e o tempo necessrio para os


dispositivos chavearem entre as funes de transmissor e receptor chamado de
turn-around time.

5.2.5.3 Transmisso Full-Duplex


Uma transmisso dita full-duplex (tambm chamada apenas duplex) quando dados
podem ser transmitidos e recebidos simultaneamente em ambos os sentidos. Poderamos entender uma linha full-duplex como funcionalmente equivalente a duas linhas simplex, uma em cada direo. Como as transmisses podem ser simultneas
em ambos os sentidos e no existe perda de tempo com turn-around, uma linha fullduplex pode transmitir mais informaes por unidade de tempo (maior throughput)
que uma linha half-duplex, considerando-se a mesma taxa de transmisso de dados.

5.3

Dispositivos de Entrada e Sada

5.3.1 Teclado
O teclado um dispositivo de entrada de dados composto de um conjunto de teclas,
associadas aos caracteres utilizados para escrita e para controle (letras, algarismos,
sinais de pontuao, teclas de movimentao de cursor, teclas de funo, etc).
A parte visvel do teclado o conjunto de teclas. Por baixo das teclas, existe uma
matriz de condutores que, quando uma tecla pressionada, fecha contato entre dois
de seu condutores, de forma que um processador (processador de teclado) possa
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

84

identificar qual tecla foi pressionada. Uma vez identificada a tecla, esta informao
codificada e enviada para o processador principal do computador.
So utilizados mais usualmente dois cdigos: ASCII (American Standard Code for
Information Interchange), o mais utilizado, inclusive em microcomputadores, ou
EBCDIC (Extended Binary Coded Decimal Interchange Code), usado pela IBM em
mquinas de grande porte.

A codificao feita em duas fases:


- 1 fase: identificao da tecla e interpretao pelo software de controle do teclado
(parte da BIOS).
- 2 fase: converso do cdigo identificador da tecla para ASCII ou EBCDIC.

5.3.2 Monitor de Vdeo


O monitor de vdeo um dispositivo de sada que utiliza uma tela semelhante de
TV como meio de visualizao das informaes processadas pelo computador.
Tambm so utilizados monitores com tela de cristal lquido em microcomputadores
portteis (laptops, notebooks, hand-helds, etc). A informao relativa imagem que
deve ser exibida gerada no computador e transmitida (em formato digital, isto ,
bits) para a interface de vdeo, onde os sinais analgicos de vdeo que vo formar a
imagem propriamente dita so produzidos.
Os monitores em geral tem suas telas de imagem construdas a partir de um CRT Tubo de Raios Catdicos (nos microcomputadores portteis so geralmente usadas
telas de cristal lquido).Cada ponto da imagem precisa ser "impresso" na tela. Isso
conseguido iluminando individualmente todos os pontos, um de cada vez, ponto por
ponto, linha por linha, do incio ao fim da tela, ento de volta ao incio e assim sucessivamente, ininterruptamente, sem parar. Como os pontos iluminados esmaecem
aps alguns instantes, o computador ( o processador) precisa ficar constantemente
re-enviando a mesma imagem (ou imagens modificadas) para a interface que por
sua vez renova a informao de imagem ("refresca" a tela).

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

85

5.3.2.1 Tipos de Monitor e Modo de Exibio


Os monitores eram inicialmente utilizados para exibir apenas caracteres (modo caractere ou modo alfanumrico) em uma nica cor (geralmente um fsforo verde, algumas vezes branco ou ainda laranja). Dessa forma, o que trafegava na interface
entre computador e monitor eram apenas cdigos em bits (geralmente ASCII) que
representavam os caracteres que seriam exibidos. Na interface esses cdigos digitais eram decodificados e transformados em sinais analgicos (sinais de vdeo) com
os pontos que formariam cada caractere. Cada caractere possua poucos atributos,
podendo apenas destacar brilho, exibir piscante ("blink") e reverso. Cada caractere
requer apenas 7 bits no cdigo ASCII (ou 8 bits, no ASCII estendido) mais um bit para cada atributo (brilho normal x realado, normal ou piscante, normal ou reverso).
Posteriormente, foram desenvolvidos monitores grficos (pixel oriented) em cores.
Nesses monitores, a imagem passou a ser constituda, no mais por caracteres de
uma s cor que podiam ser tratados como cdigos ASCII, mas agora por pontos individualmente produzidos e transmitidos para a tela e que vistos em conjunto formam a imagem grfica. Cada um desses pontos (chamados pixels - picture elements) passou a ter diversos atributos, entre eles a cor. Cada cor exibida precisa ser
identificada por um cdigo, bem como pelos bits de atributo (um bit por atributo para
cada ponto). Considerando apenas o atributo de cor, se tivermos 16 cores, sero
necessrios 16 = 24 cdigos e portanto sero necessrios 4 bits para identific-las
individualmente. Sendo 256 cores, sero 256 = 28 portanto 8 bits e assim por diante,
at a chamada "true color" com 64 milhes = 232 cores exigindo 32 bits.
Tambm em termos de resoluo (nmero de pontos de imagem por tela) as exigncias cresceram muito. Quanto mais pixels maior resoluo, mas tambm maior
nmero de bits a serem transmitidos em cada tela. A quantidade de informaes que
passou a trafegar entre computador e monitor aumentou de forma extraordinria, exigindo novas solues de projeto para evitar que a exibio de informaes na tela
se transformasse em um "gargalo" (bottleneck) para o desempenho do sistema. A
soluo para esse problema veio com o desenvolvimento de interfaces mais elaboradas, possibilitando maior taxa de transmisso de informaes (throughput), bem
como pela utilizao de verdadeiros processadores de imagem (interfaces dotadas
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

86

de memria local e de processadores especializados para processamento grfico).


Dessa forma, o computador passou a transmitir primitivas grficas (informaes
codificadas que eram transformadas em imagem grfica definida em pixels apenas
no processador grfico da interface). O processo de refresh tambm passou a ser
atribuio somente do processador de vdeo, no havendo necessidade do
processador principal (o processador do computador) re-enviar uma imagem que
no sofresse alteraes. Mais ainda: o processo de envio das modificaes de uma
imagem passou a ser feito por diferena, isto , o processador principal transmite
apenas o que mudou e o processador de vdeo se encarrega de alterar a imagem de
acordo.
De uma forma bastante simplificada, podemos calcular aproximadamente quantos
bytes devem ser transferidos entre computador e interface para carregar uma determinada tela, pela seguinte expresso:
Modo caractere: n de colunas x n de linhas x n debytes por caractere
Modo grfico: n de colunas x n de linhas x n debytes por pixel
No clculo a seguir apresentado como exemplo, no nmero de bits por caractere ou
por pixel foi considerado (por simplicidade) apenas o atributo cor. O padro VGA
possui diversos outros atributos, entre eles diversos "modos" que definem nmero
de cores, modo alfanumrico ou grfico, etc, que no sero considerados nessa discusso.
Informaes transferidas entre computador e interface
Monitores

Modo Caractere colunas linhas caracter


monocromtico 80
colunas
monocromtico 132
colunas
Monitores
Grficos
CGA

Bytes

cores

transferidos

80

25

2.000

2 = 21

2 kbytes

132

25

3.300

2 = 21

3,2 kbytes

colunas linhas
320

200

Bytes

pixels

cores

transferidos

64 k

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

4 = 22

32 kbytes

87

EGA

640

350

218,75 k 16 = 24

110 kbytes

VGA

640

480

300 k

16 = 24

150 kbytes

SVGA

800

600

468,75 k 256 = 28

SVGA

1024

768

768 k

64 k = 216 1,5 Mbytes

SVGA

1280

1024

1,25 M

64 M = 232 5 Mbytes

468,75 kbytes

5.3.3 Impressoras
Impressoras so dispositivos de sada que tem por finalidade imprimir em papel ou
filme plstico os resultados do processamento. Da mesma forma que os monitores, a
imagem impressa resultado de muitos pontos impressos individualmente que no
conjunto formam o texto ou a imagem desejados. Tambm de forma semelhante aos
monitores, as impressoras evoluram a partir de dispositivos que imprimiam apenas
caracteres em uma nica cor para as modernas impressoras capazes de reproduzir
imagens sofisticadas, de alta resoluo grfica, em milhares de cores.
5.3.3.1 Impressoras Alfanumricas
Esses equipamentos recebem do computador cdigos que representam caracteres
alfanumricos e portanto tem capacidade de imprimir apenas esses caracteres. Geralmente possvel usar apenas uma fonte grfica, caracterstica do equipamento.
Algumas impressoras permitem trocar o dispositivo de impresso, viabilizando a utilizao de um pequeno nmero de fontes grficas.
5.3.3.2 Impressoras Grficas
Esses equipamentos recebem do computador a informao sobre os pontos a serem
impressos. Dessa forma, podem imprimir grficos. Na impresso de textos, os caracteres so impressos como pontos, que em determinada configurao formam a imagem grfica do caractere a ser impresso. Quando se utiliza uma impressora grfica
para imprimir texto, existe a possibilidade de utilizar um grande nmero de diferentes
fontes grficas, definidas por software.
5.3.3.3 Impressora de Esfera e Impressora Margarida ("daisy wheel") - Caracter
- baixa velocidade
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

88

- velocidade de impresso de 20 cps a 45 cps


- utilizam tecnologia derivada das mquinas de escrever
- tinham preo relativamente acessvel, mas hoje esto obsoletas
- usadas em sistemas de microcomputadores
5.3.3.4 Impressoras de Tambor - Linha
- maior velocidade de impresso
- imprime de 80 a 132 caracteres simultaneamente
- unidade de medida de velocidade: 1pm (linhas por minuto)
- usadas em ambientes de grande porte
5.3.3.5 Impressoras Matriciais - Impacto
- com 9 ou 24 agulhas (80 a 400 cps)
- baixa definio grfica (at 300 dpi)
- baixa velocidade
- permitem uso de papel carbonato, viabilizando mltiplas cpias
- esto obsoletas, reduzidas hoje s aplicaes que requerem mltiplas cpias
5.3.3.6 Impressoras de Jato de Tinta
- mdia resoluo grfica (at cerca de 1200 dpi)
- baixa velocidade
- permite cartuchos de tinta de vrias cores, viabilizando a utilizao de cor
- baixo custo
5.3.3.7 Impressoras Laser
- 4 a 7 ppm - impressoras de microcomputadores
- 20.000 ppm - impressoras de computadores de grande porte
- alta definio grfica (de 600 at 4800 dpi)
- hoje j esto disponveis modelos com recurso de cor.

5.3.4 Fita Magntica


Unidades de fita magntica so dispositivos de armazenamento de massa (isto ,
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

89

usados para armazenar grandes volumes de informao). As unidades de fita so


constitudas basicamente de um dispositivo de transporte (para a movimentao da
fita) e das cabeas magnticas (que executam a gravao e leitura das informaes
na fita), alm da eletrnica de controle. A fita propriamente dita uma fina superfcie
contnua feita em material plstico flexvel, revestido de material magnetizvel.
Unidades de Fita so dispositivos de acesso seqencial. Essa uma das principais
razes para que as unidades de fita sejam muito lentas. As fitas magnticas so usadas principalmente como meio de armazenamento off-line (para aplicao fora do
processamento). Atualmente, utiliza-se discos magnticos durante o processamento
e a fita para armazenamento posterior de dados, geralmente para gerar cpias de
segurana (cpias de back-up). Desta forma, elas no interagem com o processador
durante a execuo do programa, evitando o desperdcio de tempo inerente sua
lentido.
As maiores vantagens das fitas so o baixo custo e a portabilidade da mdia, proporcionando um baixo custo por byte armazenado. Em compensao, suas maiores
desvantagens so a lentido, a baixa confiabilidade da mdia e a pouca durao da
gravao. O baixo custo por byte armazenado ainda mantm um mercado para utilizao da fita hoje, embora venha sendo aceleradamente substituda por meios de
armazenamento mais modernos, especialmente meios tico-magnticos.
Os comprimentos de fita mais utilizados so: 300, 600, 1200 e 2.400 ps.
Densidade pode ser definido como "quantos caracteres podem ser armazenados
por unidade de comprimento da fita" e medida em bpi (bytes por polegada). Por ex:
800, 1.600 ou 6.250 bpi.

5.3.4.1 Tipos de Fitas


> Streamer - pequena, parecida com uma fita cassete
> DAT (Digital Audio Tape) - grande capacidade, menor que uma fita cassete
> Fitas Cartucho - grande densidade: 30.000 bpi
> Rolo ou carretel

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

90

5.3.5 Discos Magnticos


Discos magnticos so dispositivos para armazenamento de dados (que independem de alimentao de energia e portanto permanecem gravados aps ser desligado o computador, mas que podem, a critrio do usurio, ser apagados ou alterados).
Os discos magnticos englobam os discos flexveis ou disquetes ("floppy disks") e os
discos rgidos.
Um disco magntico incorpora eletrnica de controle, motor para girar o disco, cabeas de leitura / gravao e o mecanismo para o posicionamento das cabeas, que
so mveis. Os discos propriamente ditos so superfcies de formato circular, compostos de finos discos de alumnio ou vidro, revestidas de material magnetizvel em
ambas as faces.
O desenho a seguir ilustra um disco:

5.3.5.1 Organizao Fsica da Informao nos Discos


As informaes so gravadas nos discos em "setores", distribudos ao longo de "trilhas" concntricas marcadas magneticamente como setores circulares no disco, conforme ilustrao a seguir.

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

91

O processo de marcao magntica das trilhas e setores em um disco faz parte da


"formatao" do disco. Esta formatao dependente do sistema operacional que
usar o disco. O sistema operacional DOS define que cada setor armazena 512 bytes. Todas as trilhas armazenam o mesmo nmero de bytes; desta forma, os dados
na trilha mais interna estaro gravados com maior densidade, pois o espao fsico
menor.

5.3.5.2 Tempo de Acesso


O tempo de acesso aos dados de um disco definido como o perodo decorrido entre a ordem de acesso e o final da transferncia dos dados. O tempo de acesso no
constante, variando em funo da posio relativa entre o brao atuador (que posiciona as cabeas de leitura e gravao) e o setor que ser lido e portanto s tem
sentido falar em tempo mdio de acesso. Os tempos mdios de acesso dos discos
atuais so da ordem de 10 ms e so resultado das seguintes operaes:
TEMPO DE ACESSO = TEMPO DE (SEEK + LATNCIA + TRANSFERNCIA)

5.3.5.3 Tempo de Seek


Seek ou busca o tempo gasto na interpretao da localizao do dado no disco
(endereo do dado no disco) pela unidade de controle e no movimento mecnico do
brao que sustenta a cabea magntica, at alcanar a trilha desejada. Este tempo
varivel de acesso para acesso. os tempos tpicos de discos rgidos atuais podem
variar de aproximadamente 0 ms (tempo de seek mnimo, referente ao acesso a um
setor localizado na mesma trilha onde no momento est a cabea de leitura), 3 ms
(para acesso a setores em trilhas adjacentes) a at 20 ms (tempo de busca mximo,
referente ao acesso entre trilhas localizadas nas extremidades do disco). Este tempo
diretamente dependente da qualidade dos mecanismos eletromecnicos que comandam os braos atuadores. Discos de menores dimenses tambm tendem a ser
mais rpidos, pois o percurso linear dos braos atuadores menor.

5.3.5.4 Tempo de Latncia


o tempo de latncia (tambm chamada latncia rotacional) o tempo gasto entre a
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

92

chegada da cabea de leitura / gravao sobre a trilha e a passagem do setor desejado na posio da cabea. Como o disco permanece constantemente girando, a
cabea magntica s pode ler ou gravar um dado quando o setor endereado est
imediatamente abaixo dela. Portanto, h que aguardar que o disco gire at que o setor endereado fique posicionado abaixo da cabea. Esse tempo depende diretamente da velocidade com que o disco gira. Discos rgidos atuais em geral giram a
5.400 rpm (rotaes por minuto), o que significa que um giro completo se realiza em
1 (5400rpm 60s) = 11ms. Portanto, o tempo de latncia poder variar entre quase 0 ms (se o setor estiver exatamente na posio certa para ser lido) at 11 ms (se
for necessrio aguardar uma volta completa em um disco).

5.3.5.5 Tempo de Transferncia


o tempo consumido na transmisso dos bits entre computador e disco e viceversa. Este tempo depende da interface e do disco, que definem o throughput (taxa
de transferncia) do disco. Atualmente, dependendo da interface, o throughput seria
da ordem de at 33 Mbytes/s. Como um setor tem 512 bytes, em 1 ms se poderia
transferir cerca de 33 setores e o tempo de transferncia de um setor seria da ordem
de 15 ns.
Obs.: Os tempos relativos a unidades (drives) de disquetes so muito maiores que
os acima indicados para discos rgidos. Drives de disquete giram a aproximadamente 300 rpm e o throughput da ordem de 500 kbytes/s; os tempos de acesso mdios
so da ordem de 60 a 100 ms.

5.3.6 Discos Rgidos


Os primeiros discos rgidos selados para microcomputadores foram projetados e
construdos na fbrica da IBM localizada em Winchester. Alguns autores atribuem a
isso o motivo deles terem sido apelidados de Winchester drives (unidades de disco
Winchester), denominao que perdurou por muito tempo, at que a tecnologia de
construo dos discos mudou. Hoje estes discos so conhecidos na literatura apenas por "hard disks" ou HDs (em ingls, traduzindo-se literalmente por "discos rgiApostila de Introduo aos Sistemas de Computao - Prof. Bruno

93

dos").
Obs.: H tambm autores que atribuem o nome a uma analogia com os famosos rifles 30/30 Winchester. A seguir mostrado o primeiro disco rgido (RAMAC) de 5 Mb
distribudos em 50 pratos com dimetro de 24", desenvolvido pela IBM em 1956, nos
laboratrios de Almaden (CA), ao lado de um moderno HD IBM Seascape de 5 Gb
com 2.5".

A construo em forma de unidade selada, com ar filtrado eliminando as partculas


de p, permitiu que as cabeas de leitura / gravao fossem posicionadas a uma distncia nfima em relao s superfcies magnetizadas do disco, de vez que a possibilidade de impurezas que se interpusessem entre a superfcie e a cabea e pudessem riscar o disco ou danificar a cabea foi eliminada. A proximidade entre cabea e
superfcie, bem como a grande uniformidade de superfcie conseguida, possibilitaram obter uma grande densidade de gravao dos dados nos discos rgidos selados.
A utilizao de atuadores eletromecnicos de alta preciso tambm permitiu reduzir
o espao entre trilhas. Os discos rgidos so pequenos e compactos, tem custo de
armazenagem por Mbyte muito baixo e alto desempenho (alta taxa de transferncia
e pequeno tempo de acesso), oferecendo ainda segurana de armazenagem dos
dados. Tudo isso permitiu a construo de discos rpidos e com alta capacidade.
Os discos rgidos atuais so construdos com muitas superfcies de gravao, montadas em torno de um eixo comum. Os braos atuadores responsveis pelo posicionamento das cabeas de leitura / gravao so montados em uma nica estrutura,
de forma que os braos se movem solidariamente.
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

94

Devido a esta conformao fsica, podemos verificar que, conforme uma determinada cabea posicionada sobre uma trilha, as demais cabeas estaro tambm posicionadas sobre as trilhas das outras superfcies que ficam localizadas mesma distncia do eixo central e portanto todas as trilhas localizadas a uma mesma distncia
do eixo central do disco podero ser acessadas simultaneamente por todas as cabeas. Um conjunto de trilhas localizadas a uma mesma distncia do eixo central
pode ser visto espacialmente como se fora um cilindro, e assim que so chamados. Dessa forma, num disco de quatro cabeas (quatro faces) o cilindro 10 seria
composto de todos os setores localizados na trilha 10 da face 1, na trilha 10 da face
2, na trilha 10 da face 3 e na trilha 10 da face 4. Os dados gravados no mesmo cilindro (na mesma trilha porm em superfcies diferentes) podem ser acessados (lidos
ou gravados) sem que o brao atuador das cabeas de leitura / gravao tenha que
ser movido (como vimos na discusso sobre tempo de acesso, esta operao relativamente lenta!).

5.3.7 Discos Flexveis


As unidades de discos flexveis (floppy disks ou FDs) surgiram como uma soluo
para armazenamento de dados a baixo custo em microcomputadores e substituram
com grandes vantagens o armazenamento em fitas cassete que equipava os primeiros microcomputadores. Os discos flexveis so feitos de poliester flexvel e sua capacidade atual de armazenamento geralmente de 1,44 Mbytes.
Obs.: Os discos flexveis tem um orifcio de ndice que indica fisicamente o incio das
trilhas.
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

95

5.3.7.1 Clculo do Espao de Armazenamento em um Disco


O espao de armazenamento num disco pode ser calculado como segue:
n total de setores = n de superfcies (= n de cabeas) x n de setores por trilha x n
de trilhas (= n de cilindros)
Como no DOS e Windows cada setor tem 512 bytes, para obter o resultado em kbytes basta multiplicar o nmero de setores por 0,5 (512 bytes = 0,5 kbyte) e para obter em Mbytes, dividir ento por 1.024.
Por exemplo, um disquete de 5 " com 2 cabeas, 15 setores por trilha e 80 trilhas,
teria 2 x 15 x 80 = 2.400 setores de 512 bytes, portanto a capacidade seria de 1.200
kbytes ou aproximadamente 1, 2 Mbytes. Um disquete de 3 " com 2 cabeas, 18
setores por trilha e 80 trilhas, teria 2 x 18 x 80 = 2.880 setores de 512 bytes, portanto
a capacidade seria de 1.440 kbytes ou aproximadamente 1, 44 Mbytes.
6

EXECUO DE PROGRAMAS

6.1

Programa em Linguagem de Mquina

Para executar uma tarefa qualquer, um computador precisa receber instrues precisas sobre o que fazer. Uma seqncia adequada de instrues de computador, para a realizao de uma determinada tarefa, se constitui num PROGRAMA de computador. Uma linguagem de programao um conjunto de ferramentas, regras de sintaxe e smbolos ou cdigos que nos permitem escrever programas de computador,
destinados a instruir o computador para a realizao de suas tarefas.
A primeira e mais primitiva linguagem de computador a prpria linguagem de mquina, aquela que o computador entende diretamente e pode ser diretamente executada pelos circuitos do processador (pelo hardware). No incio da era da computao, os programas eram escritos em linguagem de mquina, isto , as instrues eram escritas diretamente na linguagem do computador (formada apenas com 1's e
0's). Um programa em linguagem de mquina uma longa srie de 0's e 1's, ordenados de forma que alguns representam cdigos de instrues e outros representam
os dados que sero processados (ou indicam onde esses dados esto armazenados). Em um programa escrito em linguagem de mquina, cada instruo escrita pelo programador ser individualmente executada, isto , a cada instruo do programa corresponder uma ao do computador. A relao portanto 1 para 1 - uma
instruo do programa corresponde a uma operao do computador.

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

96

Imagine ento um programa extenso escrito apenas usando 1's e 0's; imagine que
para cada diferente marca ou modelo de computador, as regras para entender esses
cdigos sero totalmente diferentes; e finalmente imagine que voce teria que escrever uma a uma as instrues e os dados adequadamente codificados e ordenados,
perfurar todos o programa em cartes e submeter toda a massa de cartes ao computador, para finalmente receber algumas horas depois o seu programa de volta com
uma mensagem de erro tipo "erro no carto X" ... e mais nada! Um programa escrito
nessa linguagem era difcil de ser escrito sem que se cometessem muitos erros, processo esse longo, difcil, entediante e principalmente caro. Um programa em linguagem de mquina era tambm extremamente difcil de ser entendido por outros programadores que futuramente viessem a trabalhar na manuteno do programa. Essa
complexidade levou necessidade de se desenvolverem tcnicas e ferramentas para tornar a escrita e manuteno de programas mais fcil, mais rpida e principalmente mais barata.
Cada famlia de computadores possui sua prpria linguagem de mquina. Um programa em linguagem de mquina dependente do computador ou seja, tendo sido
escrito para um determinado computador, somente poder ser executado em computadores da mesma famlia, que lhe sejam 100% compatveis.
Obs.: Um programa em linguagem de mquina pode ser apresentado em binrio (0's
e 1's) ou em hexadecimal (usando de 0 a F, ou seja, transformando cada 4 bits em
um dgito hexadecimal). A apresentao em hexadecimal torna mais enxuta a representao (mas no mais simples...), mas serve somente para visualizao, pois um
programa somente pode ser submetido ao computador em binrio.
6.2

Linguagem de Montagem

A primeira tentativa bem-sucedida para resolver o problema acima descrito foi a criao de uma linguagem em que os cdigos numricos foram substituidos por mnemnicos (palavras ou smbolos) como por exemplo:
LOAD = carregar e ADD = somar, que se aproximam de palavras comuns da lingua
inglesa).
As localizaes dos dados foram substitudas por referncias simblicas. Foram
tambm definidas regras de sintaxe de fcil memorizao, de forma a tornar a escrita de programas e sua posterior manuteno uma tcnica de complexidade relativamente menor.
Essa linguagem simblica recebeu o nome de Assembly Language (Linguagem de
Montagem). Assim, o programador no mais precisava decorar os cdigos numricos que representavam as diferentes instrues e os endereos reais de armazenamento, bastando decorar mnemnicos para as instrues e definir nomes para as referncias dos endereos (por exemplo, NOME para o local onde seriam armazenados os nomes e SALARIO para o local onde seriam armazenados os salrios, etc), o
que sem dvida facilita enormemente o trabalho.
importante lembrar que um computador sempre monoglota, isto , ele entende
nica e exclusivamente a sua prpria linguagem de mquina. Portanto, para escreApostila de Introduo aos Sistemas de Computao - Prof. Bruno

97

ver um programa em outra linguagem e ele ser entendido e processado no computador, preciso haver algum outro programa que leia o programa escrito nessa linguagem alternativa e o traduza para a linguagem nativa do computador (isto , a linguagem de mquina entendida pelo computador).
O processo de traduo da linguagem de montagem para a linguagem de mquina
(chamado de montagem) realizado por um programa chamado Assembler (Montador). O programa Assembler l cada instruo escrita em linguagem Assembly e a
converte em uma instruo equivalente em linguagem de mquina; e tambm converte cada uma das referncias simblicas de memria em endereos reais (resolve
as referncias de memria).
A criao de programas Montadores facilitou muito o trabalho dos programadores.
Uma outra vantagem menos bvia foi possibilitar o desenvolvimento de programas
de crtica de sintaxe (os debuggers), facilitando o processo de depurao de erros
de programao.
No entanto, o processo continuava lento e complexo, exigindo do programador uma
grande compreenso do processo e profundo conhecimento da mquina que ele estava programando. Um programa de computador ainda era difcil de ser escrito, caro,
e dependente do computador para o qual foi escrito, j que um programa escrito em
linguagem de mquina para um determinado computador s poder ser processado
em computadores 100% compatveis com ele.
6.3

Linguagem de Programao

Esses problemas levaram a uma busca por linguagens que fossem mais simples de
programar e entender, mais rpidas e eficientes (levando os programas mais enxutos, com menos instrues), menos dependente do computador-alvo, mas que processassem com boa eficincia (no acarretando processamento lento no computador).
Foram desenvolvidas diversas linguagens de programao, buscando afastar-se do
modelo centrado no computador. Essas linguagens foram estruturadas buscando refletir melhor os processos humanos de soluo de problemas. Essas linguagens orientadas a problema so tambm chamadas linguagens de alto nvel, por serem afastadas do nvel de mquina.
As primeiras linguagens foram FORTRAN (1957), usada basicamente para manipulao de frmulas; ALGOL (1958), para manipulao de algoritmos; COBOL (1959),
para processamento comercial e ainda hoje bastante usada, especialmente em
computadores de grande porte (mainframes) em bancos.
Nas dcadas de 60 e 70, podemos citar Pascal, a primeira linguagem de alto nvel
estruturada; BASIC, linguagem criada para facilitar a programao por noprofissionais; e ADA, linguagem para processamento em tempo real criada sob encomenda do DoD (Department of Defense norte-americano) e ainda hoje a nica linguagem aceita para programas escritos sob encomenda do DoD.

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

98

Na dcada de 80, surgiu o C e depois o C++ (com suporte a objetos), que esto entre as linguagens mais utilizadas hoje.
Cada nova linguagem criada visa atingir nveis de abstrao mais altos, isto , afastam cada vez mais o programador do nvel de mquina. Se por um lado essas novas
linguagens facilitam muito o trabalho do programadores (e reduzem sua necessidade
de conhecer o hardware da mquina), elas cobram um alto preo em termos de desempenho (isto , so cada vez mais lentas, ao consumir cada vez mais ciclos de
mquina e espao em memria). Esse aumento de exigncia ao poder de processamento dos computadores compensado (e desta forma se faz menos notado) pelo aumento acelerado do poder de processamento dos novos chips (exemplificado
pela chamada Lei de Moore, que afirma que o poder de processamento dos chips
dobra a cada 18 meses) e pelos avanos na arquitetura dos computadores.
Dentre as importantes tendncias atuais, citamos as linguagens de manipulao de
bancos de dados (como dBase, Clipper, FoxPro, Paradox, Access, etc) e as linguagens visuais, como o Visual Basic, Visual C e Delphi.
Tal como na linguagem humana, as linguagens de computadores proliferam e sempre h problemas que ainda persistem, continuando a busca por uma linguagem ideal - a soluo "definitiva". A linguagem Java a mais importante tendncia atual e
mais recente avano na busca pela linguagem universal - o "esperanto" dos computadores. Java eleva a abstrao ainda mais um nvel e se prope a ser independente
da mquina onde ser executado. Porm, na realidade, quando no est sendo processado em um processador Java nativo, o cdigo Java interpretado por uma camada de software chamada mquina virtual Java (JVM - Java Virtual Machine), ou
seja, um emulador.
6.4

Traduo

Um programa escrito por um programador (chamado cdigo fonte) em uma linguagem de alto nvel um conjunto de instrues que clara para programadores, mas
no para computadores. Ou seja, os computadores entendem nica e exclusivamente suas linguagens nativas, as linguagens de mquina. Programas em linguagem de
alto nvel, a exemplo dos programas escritos em linguagem de Montagem, tambm
precisam ser traduzidos para linguagem de mquina para poderem ser submetidos
ao computador e processados.
O processo de traduo do programa escrito em uma linguagem simblica pelo programador, chamado cdigo fonte (source code) para a linguagem de mquina do
computador chamada cdigo objeto (object code), chamado compilao e realizado por um programa chamado Compilador (Compiler).
6.5

Montagem

Citamos anteriormente uma forma de traduo rpida e simples: a executada pelo


programa Montador. O processo de montagem traduz um programa escrito em linguagem Assembly em um programa equivalente em linguagem de mquina, possvel
de ser executado pelo computador. A seguir, apresentado o fluxo que representa o
processo de montagem.
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

99

No processo de montagem, o cdigo fonte (programa em linguagem simblica escrito pelo programador) examinado, instruo por instruo e feita a traduo, gerando o cdigo que ser executado (cdigo objeto). Os passos executados pelo programa Montador so:
a) Verificar a correo do cdigo de instruo (se o mnemnico corresponde a uma
instruo vlida para o computador, se os campos definidos na estrutura da linguagem e a sintaxe esto corretos) e substituir os mnemnicos pelos cdigos
numricos binrios equivalentes. Qualquer erro no cdigo acarreta a interrupo
do processo e a emisso de mensagem de erro.
b) Resolver as referncias de memria: os nomes simblicos adotados pelo programador so convertidos para endereos reais de memria (valores numricos
binrios de endereos).
c) Reservar espao em memria para o armazenamento das instrues e dados.
d) Converter valores de constantes em binrio.
6.6

Compilao

Compilao o processo de traduo de um programa escrito em linguagem de alto


nvel para cdigo em linguagem de mquina. Compilao um processo anlogo ao
da montagem (verificao / anlise do cdigo fonte, resoluo das referncias de
memria, reserva de espao em memria e converso para cdigo de mquina binrio). O que diferencia a compilao do processo de montagem sua maior complexidade. No processo de montagem, h uma relao de 1:1, ou seja, cada instruo
do cdigo fonte resulta em uma instruo de mquina, enquanto na compilao a relao mltipla, cada instruo do cdigo fonte gerando vrias instrues de mquina.
Durante a compilao, o cdigo fonte analisado (anlise lxica, sinttica e semntica), gerado um cdigo intermedirio e so construdas tabelas de smbolos, alocam-se as reas de memria para variveis e atribui-se os registradores a serem utilizados, e finalmente gerado o cdigo objeto em linguagem binria de mquina.
Em alguns compiladores, gerado um cdigo intermedirio em Assembly (que pode
ser visualizado pelo programador) e que em seguida passa pelo montador para gerar finalmente o cdigo objeto em linguagem de mquina.
O cdigo objeto pode ser absoluto (os endereos constantes so endereos reais de
memria) ou relocvel (os endereos so relativos, tendo como referncia o incio do
programa, e os endereos reais de memria so definidos apenas em tempo de execuo).
6.7

Bibliotecas

O desenvolvimento de um programa certamente utilizar diversas operaes que


so comuns a muitos outros programas. Por exemplo, a execuo de uma instruo
de entrada e sada, a classificao dos dados de um arquivo, o clculo de funes
matemticas, etc. Uma linguagem de alto nvel geralmente incorpora diversas rotinas
prontas (que fazem parte da linguagem) e que compem bibliotecas (librarys) de
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

100

funes pr-programadas que podero ser utilizadas pelo programador, poupando


tempo, aumentando a eficincia e evitando erros. Dessa forma, um programa em alto nvel possivelmente conter diversas chamadas de biblioteca (library calls). Essas
funes no devem ser confundidas com as instrues da linguagem - na realidade,
so pequenos programas externos que so chamados atravs de instrues especiais de chamada de biblioteca. Para serem executadas, essas rotinas precisam ser
incorporadas ao cdigo do programador, isto , a chamada de biblioteca precisa ser
substituda pelo cdigo propriamente dito, incluindo os parmetros necessrios.
6.8

Ligao

Assim, o cdigo objeto preparado pelo compilador em geral no imediatamente


executvel, pois ainda existe cdigo (as rotinas de biblioteca) a ser incorporado ao
programa. A cada chamada de biblioteca encontrada no cdigo fonte, o compilador
precisar incluir uma chamada para a rotina e o endereo dos dados que devam ser
passados para a rotina.
A tarefa de examinar o cdigo objeto, procurar as referncias a rotinas de biblioteca
(que constituem referncias externas no resolvidas), buscar a rotina da biblioteca,
substituir a chamada pelo cdigo ("resolver as referncias externas") e obter os parmetros para inclu-los no cdigo objeto executada por um programa chamado Ligador (LinkEditor). O resultado da execuo do Ligador o cdigo final pronto para
ser executado pelo computador, chamado mdulo de carga ou cdigo executvel.
O mdulo de carga, aps testado e depurado (isto , depois de resolvidos todos os
erros, tambm chamados "bugs") armazenado em memria de massa para ser executado quando necessrio. O processo de compilao e ligao executado apenas pelo programador na fase de desenvolvimento e no mais precisar ser executado pelo usurio, quando da execuo do programa.
6.9

Interpretao

Com o processo de execuo de um programa em fases distintas (compilao / ligao / execuo) apresentado, um programa para ser executado precisa primeiro ter
sido convertido para cdigo objeto pelo compilador e depois ter passado pelo ligador. Esse processo o mais largamente utilizado, porm no o nico.
O mtodo alternativo chama-se de interpretao e, a partir do programa fonte, realiza as trs fases (compilao, ligao e execuo), comando por comando, em tempo de execuo. No existem fases distintas nem se produzem cdigos intermedirios. Todo o processo de converso efetuado em tempo de execuo e imediatamente executado. Ou seja, cada comando lido, verificado, convertido em cdigo
executvel e imediatamente executado, antes que o comando seguinte seja sequer
lido.
Linguagens como C, Pascal, COBOL, etc, so linguagens tipicamente compiladas,
enquanto o BASIC foi desenvolvido como linguagem interpretada (hoje tambm existem linguagens BASIC compiladas e o programador pode optar). As linguagens de
programao tipicamente de usurio, tais como das planilhas Excel, o Word Basic
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

101

(linguagem de construo de Macros do Word), o Access, etc, so todas linguagens


interpretadas.
6.10 Comparao entre Compilao e Interpretao
Sempre que houver duas opes, haver vantagens e desvantagens para cada uma
delas (pois se assim no fosse, a que apresentasse sempre desvantagem seria abandonada). Vamos comparar os mtodos:
6.10.1 Tempo de Execuo
No mtodo de interpretao, cada vez que o programa for executado, haver compilao, ligao e execuo de cada um dos comandos. No mtodo de Compilao, o
tempo de execuo do programa reduzido, porque todos os passos preliminares
(compilao e ligao) foram previamente cumpridos.
6.10.2 Consumo de Memria
No mtodo de interpretao, o interpretador um programa geralmente grande e
que precisa permanecer na memria durante todo o tempo que durar a execuo do
programa, pois um programa necessita do interpretador para ter traduzidos cada um
dos seus comandos, um a um, at o trmino de sua execuo (o interpretador somente descarregado depois do trmino da execuo do programa).
No mtodo de compilao, o compilador carregado e fica na memria apenas durante o tempo de compilao, depois descarregado; o ligador carregado e fica na
memria apenas durante o tempo de ligao, depois descarregado. Essas so
funes realizadas pelo programador e executadas apenas durante o desenvolvimento do programa. Quando o usurio for executar o programa, apenas o mdulo
de carga (cdigo executvel) carregado e fica na memria durante a execuo.
Desta forma, vemos que o mtodo de interpretao acarreta um consumo de memria muito mais elevado durante a execuo do programa.
6.10.3 Repetio de Interpretao
No mtodo de compilao, um programa compilado e ligado apenas uma vez, e na
hora da execuo carregado apenas o mdulo de carga, que diretamente executvel. No mtodo de interpretao, cada programa ter que ser interpretado toda vez
que for ser executado.
Outro aspecto que, em programas contendo loops, no mtodo de interpretao as
partes de cdigo pertencentes ao loop sero vrias vezes repetidas e tero que ser
interpretadas tantas vezes quantas o loop tiver que ser percorrido. No mtodo de
compilao, a traduo do cdigo do loop se faz uma nica vez, em tempo de compilao e ligao.
Estas caractersticas levam a um maior consumo de tempo no mtodo de interpretao, que portanto mais lento.
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

102

6.10.4 Desenvolvimento de Programas e Depurao de Erros


No mtodo de compilao, a identificao de erros durante a fase de execuo fica
sempre difcil, pois no h mais relao entre comandos do cdigo fonte e instrues
do executvel.
No mtodo de interpretao, cada comando interpretado e executado individualmente, a relao entre cdigo fonte e executvel mais direta e o efeito da execuo (certa ou errada) direta e imediatamente sentido. Quando a execuo de um
comando acarreta erro, quase sempre o erro pode ser encontrado no comando que
acabou de ser executado. Assim, o interpretador pode informar o erro, indicando o
comando ou varivel causador do problema.
Essa caracterstica, que a rigor a maior vantagem do mtodo de interpretao sob
o ponto de vista do usurio, faz com que esse mtodo seja escolhido sempre que se
pretende adotar uma linguagem que v ser usada por no-profissionais ou para a
programao mais expedita. Por exemplo, o mtodo de interpretao usado pela
maioria dos Basic (uma linguagem projetada para ser usada por iniciantes), e por todas as linguagens tpicas de usurio como dBase, Access, Excel, etc.
6.11 Emuladores e Mquinas Virtuais
Uma aplicao interessante dos interpretadores a gerao de cdigo universal e
mquinas virtuais. Sabemos que um computador somente capaz de executar programas que tenham sido desenvolvidos para ele. Assim, um programa desenvolvido
para rodar em PC's rodandoWindows no funciona em PC's com UNIX ou emMcintosh. Se voce concorda com essa afirmao, imagine ento uma pgina na Internet,
com textos, imagens e programas que podem ser visualizados e processados por
quase qualquer computador. Como isso pode ser feito? Como computadores de
marcas e modelos diferentes estaro lendo, interpretando e executando corretamente comandos que podem ter sido desenvolvidos usando um outro computador?
O segredo a utilizao de linguagens padronizadas (tais como HTML - para a escrita das pginas - e PERL, CGI, Java, Java Script, etc, para programas) que so
suportadas por diversas plataformas. Assim, cada uma das plataformas (atravs dos
programas visualizadores de pginas Internet, conhecidos como browsers ou mesmo atravs de seus respectivos sistemas operacionais) pode interpretar corretamente qualquer pgina feita e hospedada em qualquer computador.
Uma situao semelhante ocorre quando algum desenvolve um programa que "interpreta" o cdigo executvel produzido para um determinado computador e o converte para ser executado em outro computador incompatvel com o primeiro. Imagine
pegar um jogo desenvolvido para os consoles originais Atari (por exemplo, o Space
Invaders, Asteroids ou PacMan) e poder execut-lo num moderno PC. Ou pegar um
programa que voce tenha escrito (por exemplo, uma planilha) para um dos Apple II
originais e rod-lo num PC. Esse processo, em que um computador opera como se
fosse o outro, conhecido como emulao.

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

103

Levando esse conceito um pouco mais adiante, imagine desenvolver um programa


conversor que pegasse qualquer programa escrito para uma determinada mquina e
interpretasse seu cdigo executvel traduzindo-o em tempo de execuo para instrues de um outro computador. Esse programa criaria uma camada de emulao
em que uma mquina se comportaria como uma outra mquina. Poderamos ter um
PC "virtual" emulado em um Mcintosh, que estaria assim apto a rodar qualquer programa escrito para PC. Esse programa emulador criaria um ambiente que chamamos de mquina virtual, isto , uma mquina que se comporta como uma outra mquina diferente, no compatvel.
Algo parecido foi desenvolvido pela Sun Microsystems na linguagem Java. Java
uma linguagem que em princpio permite que programas escritos nela rodem em
qualquer mquina. Na realidade, a Sun desenvolveu uma plataforma Java (JVM Java Virtual Machine), com caractersticas de ambiente necessrias para que os
programas escritos em Java rodem adequadamente. A JVM suporta uma representao em software de uma UCP completa, com sua arquitetura perfeitamente definida incluindo seu prprio conjunto de instrues. Os programadores Java escrevem
cdigo usando o conjunto de instrues definido pela linguagem Java. Esse fonte
ser ento compilado gerando cdigo de mquina virtual Java. Como o cdigo Java
universal, os cdigos fonte Java e os cdigos objeto gerados so independentes
da mquina em que o software ser depois processado. Assim, os programadores
Java no precisam se preocupar em qual computador ou sistema operacional o programa vai ser executado: desenvolver para Java independente da mquina!
Mas como possvel que isso funcione, sem desmentir tudo o que antes dissemos
sobre o cdigo de mquina ser dependente do ambiente? Tudo bem que o cdigo
Java rode bem em um processador Java. Mas, e em outras plataformas? Bom, em
outras plataformas, programas escritos em Java rodariam em mquinas virtuais que
emulariam o ambiente Java. Isso significa que as empresas desenvolvedoras de
software contruiram uma camada de software que, em tempo de execuo, lem o
cdigo Java e o interpretam, traduzindo-o para o cdigo nativo daquele ambiente.
Esses programas interpretadores permitem que um programa Java seja traduzido,
em tempo de execuo, para o cdigo nativo e seja executado no computador do
usurio, com maior ou menor eficincia, porm sempre mais lentos que na mquina
Java ideal. Assim, a linguagem Java, que foi inicialmente recebida com grande interesse, apresenta resultados algumas vezes decepcionantes (especialmente quanto
ao desempenho) e sua aplicabilidade atualmente tem sido restrita a sistemas com
requisitos de desempenho no-crticos.
Comentrio: A Sun tem investido em melhorar o desempenho do cdigo Java. Alm
de uma srie de interessantes otimizaes de software, foi criado um chip Java, que
poderia ser adicionado aos computadores e criaria um ambiente Java ideal. Ora, se
a vantagem do Java exatamente poder ser executado em qualquer computador,
um contra-senso ser necessrio dispor de um chip Java para poder rodar Java eficientemente. Outro aspecto preocupante o esforo da Microsoft para criar extenses
ao Java (ou seja, criar um Java Microsoft, sem respeitar o padro da Sun). Essa extenses visam fazer o cdigo Java rodar com mais eficincia no ambiente PC / Windows, porm podem destruir a padronizao. O sonho (mais das empresas de software que dos programadores, verdade) de uma linguagem universal, em que se
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

104

desenvolveria para um e se rodaria em todos, parece que ainda fica para um tempo
mais frente.
7

CONCEITOS DE INTERRUPO E TRAP

Pode-se dizer que interrupes e traps so as foras que movimentam e dirigem os


sistemas operacionais, pois um sistema operacional s recebe o controle da execuo quando ocorre alguma interrupo ao trap.
Uma interrupo um sinal de hardware que faz com que o processador sinalizado
interrompa a execuo do programa que vinha executando (guardando informaes
para poder continuar, mais tarde, a execuo desse programa) e passe a executar
uma rotina especfica que trata da interrupo.
Um trap uma instruo especial que, quando executada pelo processador, origina
as mesmas aes ocasionadas por uma interrupo (salvamento de informaes para poder continuar, mais tarde, a execuo do programa e desvio para uma rotina
especfica que trata do trap). Pode-se dizer que um trap uma interrupo ocasionada por software.
Interrupes podem ser originadas pelos vrios dispositivos perifricos (terminais,
discos, impressoras, etc.), pelo operador (atravs das teclas do console de operao) ou pelo relgio do sistema. O relgio (timer) um dispositivo de hardware que
decrementa automaticamente o contedo de um registrador ou posio de memria,
com uma freqncia constante, e interrompe a UCP quando o valor decrementado
atinge zero. O sistema operacional garante que ocorrer pelo menos uma interrupo (e ele voltar a trabalhar) dentro de um intervalo de tempo t, colocando no relgio um valor que demore t unidades de tempo para ser decrementado at zero. Esta
atribuio de valor ao relgio feita imediatamente antes do sistema operacional entregar a UCP para um programa de usurio.
Uma interrupo no afeta a instruo que est sendo executada pela UCP no momento em que ela ocorre: a UCP detecta interrupes apenas aps o trmino da execuo de uma instruo (e antes do incio da execuo da instruo seguinte).
Os computadores possuem instrues para mascarar (desabilitar, inibir) o sistema
de interrupes. Enquanto as interrupes esto mascaradas elas podem ocorrer,
mas no so sentidas pelo processador. Neste caso, as interrupes ficam pendentes (enfileiradas) e s sero sentidas quando uma instruo que desmascara as
mesmas executada.
Conforme j foi dito, os traps so instrues especiais que, quando executadas, originam aes idnticas s que ocorrem por ocasio de uma interrupo. Pode-se dizer que um trap uma interrupo prevista, programada no sistema pelo prprio
programador. Uma interrupo, por outro lado, completamente imprevisvel, ocorrendo em pontos que no podem ser pr-determinados.

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

105

Os traps tm a finalidade de permitir aos programas dos usurios a passagem do


controle da execuo para o sistema operacional. Por esse motivo tambm so denominados chamadas do supervisor ou chamadas do sistema (supervisor call ou
system call). Os traps so necessrios principalmente nos computadores que possuem instrues protegidas (privilegiadas). Nesses computadores o registrador
(palavra) de estado do processador possui um bit para indicar se a UCP est em estado privilegiado (estado de sistema, estado de supervisor, estado mestre) ou no
privilegiado (estado de usurio, estado de programa, estado escravo). Sempre que
ocorre uma interrupo ou trap, o novo valor carregado no registrador do estado do
processador, indica estado privilegiado de execuo. No estado de supervisor qualquer instruo pode ser executada e no estado de usurio apenas as instrues no
protegidas podem ser executadas. Exemplos de instrues protegidas so instrues para desabilitar e habilitar interrupes e instrues para realizar operaes de
E/S. Operaes que envolvam o uso de instrues protegidas s podem ser executadas pelo sistema operacional, portanto. Quando um programa de usurio necessita executar alguma dessas operaes, o mesmo deve executar um trap, passando
como argumento o nmero que identifica a operao que est sendo requerida.
8

BIBLIOGRAFIA E LEITURAS AUXILIARES

Livro Recomendado
Introduo Organizao de Computadores (2 ou 3 edies)
Mario Monteiro - Ed. LTC
Livro de Apoio
Organizao Estruturada de Computadores (3 edio)
Andrew Tanembaum - Ed. Prentice-Hall do Brasil
Literatura Auxiliar
Computer Organization and Architecture
William Stallings - Mcmillam Publishing Company

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

106

Revistas
BYTE Brasil
PCMagazine Brasil
Windows Computing (Brasil)
Info EXAME (Brasil)
PCWorld (Brasil)
ZDNet (Brasil)
BYTE (USA)
PCMagazine (USA)
ZDNet (USA)
Todas as revistas e cadernos de jornais publicados no Brasil do nfase aos microcomputadores PC. A BYTE (tanto a edio brasileira quanto a americana) tem contedo mais tcnico. A PC Magazine apresenta muitos testes comparativos de produtos. Windows Computing apresenta muitos artigos sobre software relativo ao Windows. A PC World mais voltada para o usurio final (usurio no tcnico). A Info
EXAME tem maior nfase em gerenciamento (o pblico tpico da EXAME). Existem
ainda revistas com cobertura especfica sobre Internet, que podem ser recomendadas aos interessados. No Brasil, Internet World e .Net so as principais; nos EUA,
leiam a Wired.
O Globo - Informtica etc. - publicado s 2 feiras
Jornal do Brasil - Caderno Informtica - publicado s 2 feiras
Dicionrio
FOLDOC - The Free On-Line Dictionary Of Computing
Enciclopdia sobre computadores
PC Webopaedia
Principais Fabricantes de Processadores e Sistemas Operacionais
IBM
Intel
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

107

AMD
AMD Brasil
Cyrix
Sun
HP
Microsoft
Microsoft Brasil
Links Independentes sobre Hardware
Tom's Hardware Guide- um dos melhores sites sobre hardware do PC na Web: testes, artigos, etc
Painet - site com artigos coletados na Web sobre hardware
The PC Guide
The Hardware Group - informaes sobre hardware: benchmarking, placas-me, etc.
CPU Central
System Optimization
Intel Secrets - esse site se anuncia como "tudo aquilo que a Intel no gostaria que
voc viesse a saber... "
B. Piropo site com artigos publicados na PCWorld, no Globo, etc.
Larcio Vasconcellos - site com artigos, links, dicas, etc.

Apostila de Introduo aos Sistemas de Computao - Prof. Bruno

108

You might also like