Professional Documents
Culture Documents
2.1.1
2.1.2
2.1.3
Representao Binria.................................................................................. 11
2.1.4
2.2
2.2.1
2.2.2
2.2.3
2.2.4
2.3
ARITMTICA EM BINRIO.......................................................................................20
2.3.1
Soma ............................................................................................................. 20
2.3.2
Subtrao...................................................................................................... 21
2.3.3
Complemento a Base.....................................................................................22
2.3.4
2.3.5
2.3.5.1
2.3.5.2
3.1.2
3.1.2.1
E (ou AND)............................................................................................... 27
3.1.2.2
3.1.2.3
3.1.3
Tabela Verdade............................................................................................. 27
3.1.3.1
3.1.3.2
OR - Funo OU .......................................................................................28
3.1.3.3
3.1.4
3.1.5
3.2
3.2.1
3.2.2
3.2.3
Porta OR (OU)..............................................................................................33
3.2.4
3.2.5
3.2.6
3.3
3.3.1
3.3.2
3.3.3
3.3.4
3.4
3.4.1
Circuito Inversor........................................................................................... 38
3.4.2
3.4.3
Circuito OR...................................................................................................38
3.5
3.5.1
3.5.2
3.5.3
3.6
3.6.1
3.6.2
Circuito Meio-Somador................................................................................. 45
3.6.3
4.2
4.3
4.3.1
4.3.2
Hierrquia da memria................................................................................. 52
4.3.3
4.3.4
Registradores ................................................................................................53
4.3.5
Memria Cache............................................................................................. 53
4.3.6
4.3.7
4.3.8
4.3.9
Terminologia................................................................................................. 58
4.4
4.4.1
4.4.2
4.4.3
4.4.4
Instrues .....................................................................................................60
4.4.4.1
4.4.5
Conjunto de Instrues.................................................................................. 62
4.4.6
Ciclo de Instruo.........................................................................................63
4.5
PROCESSAMENTO ..............................................................................................................64
4.5.1
Barramentos ................................................................................................. 64
4.5.2
4.6
4.7
4.8
TEMPO DE ACESSO................................................................................................. 67
4.9
4.9.1
4.10
4.9.1.1
4.9.1.2
4.10.1
4.10.2
4.10.3
leitura) 70
Apostila de Introduo aos Sistemas de Computao - Prof. Bruno
4.10.4
4.11.1
Clock............................................................................................................. 72
4.11.2
4.11.3
TIPOS DE DISPOSITIVOS.......................................................................................... 77
5.2
5.2.1
5.2.2
5.2.3
Tabela Comparativa...................................................................................... 81
5.2.4
5.2.4.1
Transmisso Sncrona................................................................................81
5.2.4.2
Transmisso Assncrona............................................................................82
5.2.5
5.3
5.2.5.1
5.2.5.2
Transmisso Half-Duplex..........................................................................83
5.2.5.3
5.3.1
Teclado .........................................................................................................84
5.3.2
5.3.2.1
5.3.3
5.3.3.1
5.3.3.2
5.3.3.3
5.3.3.4
5.3.3.5
5.3.3.6
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
5.3.5.2
5.3.5.3
Tempo de Seek.......................................................................................... 92
5.3.5.4
5.3.5.5
5.3.6
5.3.7
5.3.7.1
6
Impressoras Laser...................................................................................... 89
6.2
6.3
LINGUAGEM DE PROGRAMAO............................................................................. 98
6.4
TRADUO ............................................................................................................99
6.5
MONTAGEM........................................................................................................... 99
6.6
COMPILAO....................................................................................................... 100
6.7
6.8
6.9
6.10
6.10.1
6.10.2
6.10.3
6.10.4
6.11
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
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
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.
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
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
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
15
Vamos analisar agora as regras gerais para converter nmeros entre duas bases
quaisquer.
16
17
dos algarismos 0 a 7 e portanto o algarismo 8 no existe nessa base. A representao 38,3 no existe na base 8.
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
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
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
22
mantm o minuendo
inverte o subtraendo
-->
-->
soma minuendo e
---
subtraendo
>
soma 1
ignora o "vai-um"
-->
-->
1101
0011
10000
10001
0001
23
24
Ex.2
FFFF
- 297
- 3A7E
C581
25
Decimal
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
26
27
3.1.3.2 OR - Funo OU
28
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:
30
31
Portas Lgicas
32
33
Cinto
Campainha
34
Sensor 2
Campainha
3.3
Algebra de Boole
35
1 - avalie NOT
2 - avalie AND
3 - avalie OR
Obs.: respeitando-se sempre os parnteses!
Ex.: Avalie a expresso:
36
Exerccio:
Simplifique a seguinte expresso:
3.4
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.3 Circuito OR
38
Exerccio:
Escreva a expresso do circuito abaixo e simplifique.
Soluo:
Formas Cannicas
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
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
3.6
43
NA BASE 2
110
11010
085
01101
parcela
+16
01101
parcela
101
11010
soma
011
01101
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
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
46
b. Forma cannica
c. Simplificao
d. Circuito
e. Representao esquemtica
47
4.1
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
4.2
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
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
50
51
Registrador
Bytes
muito alta
Voltil
Memria Cache
Kbytes
alta
alto
UCP/placa
Voltil
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.
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.
53
54
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:
-
O tamanho mais comum de clula era 8 bits (1 byte); hoje j so comuns clulas
contendo vrios bytes.
56
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
58
4.4
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.
59
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.
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.
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.
61
Obs: Existem instrues que no tem operando. Ex.: Instruo HALT (PARE).
operaes matemticas
1. aritmticas: +, - , , ...
2. lgicas: and, or, xor, ...
3. de complemento
4. de deslocamento
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
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
4.5
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.
64
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 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.
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
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.
69
70
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).
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.
40
33
30
40
25
50
20
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.
75
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
76
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
78
pode receber.
5.2
Formas de Comunicao
79
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).
Paralelo
Serial
Custo
maior
menor
Distncia
curta
sem limite
Throughput
alto
baixo
81
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.
83
5.3
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.
85
86
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
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
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
89
90
91
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).
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".
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!).
95
EXECUO DE PROGRAMAS
6.1
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.
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.
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
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
Bibliotecas
100
Ligao
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
102
103
104
desenvolveria para um e se rodaria em todos, parece que ainda fica para um tempo
mais frente.
7
105
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
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.
108