AULA 1 Alfabetização Digital - Cead - Unimontes
AULA 1 Alfabetização Digital - Cead - Unimontes
AULA 1 Alfabetização Digital - Cead - Unimontes
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
e-Tec Brasil/CEMF/<strong>Unimontes</strong><br />
Escola Técnica Aberta do Brasil<br />
Informática<br />
Arquitetura de<br />
Computadores<br />
Gilmara Aparecida de Freitas Dias<br />
Ministério da<br />
Educação
e-Tec Brasil/CEMF/<strong>Unimontes</strong><br />
Escola Técnica Aberta do Brasil<br />
Informática<br />
Arquitetura de<br />
Computadores<br />
Gilmara Aparecida de Freitas Dias<br />
Montes Claros - MG<br />
2011
Presidência da República Federativa do Brasil<br />
Ministério da Educação<br />
Secretaria de Educação a Distância<br />
Ministro da Educação<br />
Fernando Haddad<br />
Secretário de Educação a Distância<br />
Carlos Eduardo Bielschowsky<br />
Coordenadora Geral do e-Tec Brasil<br />
Iracy de Almeida Gallo Ritzmann<br />
Governador do Estado de Minas Gerais<br />
Antônio Augusto Junho Anastasia<br />
Secretário de Estado de Ciência, Tecnologia<br />
e Ensino Superior<br />
Alberto Duque Portugal<br />
Reitor<br />
João dos Reis Canela<br />
Vice-Reitora<br />
Maria Ivete Soares de Almeida<br />
Pró-Reitora de Ensino<br />
Anete Marília Pereira<br />
Diretor de Documentação e Informações<br />
Huagner Cardoso da Silva<br />
Coordenador do Ensino Profissionalizante<br />
Edson Crisóstomo dos Santos<br />
Diretor do Centro de Educação Profissonal e<br />
Tecnólogica - CEPT<br />
Juventino Ruas de Abreu Júnior<br />
Diretor do Centro de Educação à Distância<br />
- CEAD<br />
Jânio Marques Dias<br />
Coordenadora do e-Tec Brasil/<strong>Unimontes</strong><br />
Rita Tavares de Mello<br />
Coordenadora Adjunta do e-Tec Brasil/<br />
CEMF/<strong>Unimontes</strong><br />
Eliana Soares Barbosa Santos<br />
Coordenadores de Cursos:<br />
Coordenador do Curso Técnico em Agronegócio<br />
Augusto Guilherme Dias<br />
Coordenador do Curso Técnico em Comércio<br />
Carlos Alberto Meira<br />
Coordenador do Curso Técnico em Meio<br />
Ambiente<br />
Edna Helenice Almeida<br />
Coordenador do Curso Técnico em Informática<br />
Frederico Bida de Oliveira<br />
Coordenador do Curso Técnico em<br />
Vigilância em Saúde<br />
Simária de Jesus Soares<br />
Coordenador do Curso Técnico em Gestão<br />
em Saúde<br />
Zaida Ângela Marinho de Paiva Crispim<br />
ARQUITETURA DE COMPUTADORES<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong><br />
Elaboração<br />
Gilmara Aparecida de Freitas Dias<br />
Projeto Gráfico<br />
e-Tec/MEC<br />
Supervisão<br />
Wendell Brito Mineiro<br />
Diagramação<br />
Hugo Daniel Duarte Silva<br />
Marcos Aurélio de Almeda e Maia<br />
Impressão<br />
Gráfica RB <strong>Digital</strong><br />
Designer Instrucional<br />
Angélica de Souza Coimbra Franco<br />
Kátia Vanelli Leonardo Guedes Oliveira<br />
Revisão<br />
Maria Ieda Almeida Muniz<br />
Patrícia Goulart Tondineli<br />
Rita de Cássia Silva Dionísio
<strong>AULA</strong> 1<br />
Apresentação <strong>Alfabetização</strong> e-Tec <strong>Digital</strong>Brasil/CEMF/<br />
<strong>Unimontes</strong><br />
Prezado estudante,<br />
Bem-vindo ao e-Tec Brasil/<strong>Unimontes</strong>!<br />
Você faz parte de uma rede nacional pública de ensino, a Escola<br />
Técnica Aberta do Brasil, instituída pelo Decreto nº 6.301, de 12 de dezembro<br />
2007, com o objetivo de democratizar o acesso ao ensino técnico público,<br />
na modalidade a distância. O programa é resultado de uma parceria entre<br />
o Ministério da Educação, por meio das Secretarias de Educação a Distancia<br />
(SEED) e de Educação Profissional e Tecnológica (SETEC), as universidades e<br />
escola técnicas estaduais e federais.<br />
A educação a distância no nosso país, de dimensões continentais e<br />
grande diversidade regional e cultural, longe de distanciar, aproxima as pessoas<br />
ao garantir acesso à educação de qualidade, e promover o fortalecimento<br />
da formação de jovens moradores de regiões distantes, geograficamente<br />
ou economicamente, dos grandes centros.<br />
O e-Tec Brasil/<strong>Unimontes</strong> leva os cursos técnicos a locais distantes<br />
das instituições de ensino e para a periferia das grandes cidades, incentivando<br />
os jovens a concluir o ensino médio. Os cursos são ofertados pelas<br />
instituições públicas de ensino e o atendimento ao estudante é realizado em<br />
escolas-polo integrantes das redes públicas municipais e estaduais.<br />
O Ministério da Educação, as instituições públicas de ensino técnico,<br />
seus servidores técnicos e professores acreditam que uma educação<br />
profissional qualificada – integradora do ensino médio e educação técnica,<br />
– não só é capaz de promover o cidadão com capacidades para produzir, mas<br />
também com autonomia diante das diferentes dimensões da realidade: cultural,<br />
social, familiar, esportiva, política e ética.<br />
Nós acreditamos em você!<br />
Desejamos sucesso na sua formação profissional!<br />
Ministério da Educação<br />
Janeiro de 2010<br />
Arquitetura de Computadores<br />
5<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong>
<strong>AULA</strong> 1<br />
<strong>Alfabetização</strong> <strong>Digital</strong><br />
Indicação de ícones<br />
Os ícones são elementos gráficos utilizados para ampliar as formas<br />
de linguagem e facilitar a organização e a leitura hipertextual.<br />
Atenção: indica pontos de maior relevância no texto.<br />
Saiba mais: oferece novas informações que enriquecem o assunto ou<br />
“curiosidades” e notícias recentes relacionadas ao tema estudado.<br />
Glossário: indica a definição de um termo, palavra ou expressão utilizada<br />
no texto.<br />
Mídias integradas: possibilita que os estudantes desenvolvam atividades<br />
empregando diferentes mídias: vídeos, filmes, jornais, ambiente AVEA e<br />
outras.<br />
Atividades de aprendizagem: apresenta atividades em diferentes níveis<br />
de aprendizagem para que o estudante possa realizá-las e conferir o seu<br />
domínio do tema estudado.<br />
Arquitetura de Computadores<br />
7<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong>
<strong>AULA</strong> 1<br />
<strong>Alfabetização</strong> <strong>Digital</strong><br />
Sumário<br />
Palavra do professor conteudista ........................................... 11<br />
Projeto instrucional ........................................................... 13<br />
Aula 1 - O computador e os sistemas numéricos .......................... 15<br />
1.1 Sistemas numéricos e mudança de base ......................... 15<br />
1.2 Sistemas numéricos binários....................................... 16<br />
Resumo ................................................................... 18<br />
Atividades de aprendizagem ........................................... 18<br />
Aula 2 – Organização de sistemas de computação e seus subsistemas 19<br />
2.1 Sistemas de computação ........................................... 19<br />
2.2 Softwares ............................................................ 19<br />
2.3 Hardware ............................................................. 20<br />
2.4 Barramento .......................................................... 31<br />
Resumo ................................................................... 34<br />
Atividades de aprendizagem ........................................... 34<br />
Aula 3 – Computadores e linguagens de programação ................... 35<br />
3.1 Os computadores e o desenvolvimento de algoritmos e sistemas 35<br />
3.2 Algoritmos ........................................................... 36<br />
3.3 Linguagem de programação ....................................... 38<br />
Resumo ................................................................... 40<br />
Atividades de aprendizagem ........................................... 41<br />
Aula 4 – Instruções e modos de endereçamento de memória ........... 43<br />
4.1 A memória ........................................................... 43<br />
4.2 Endereçamento de memória ...................................... 43<br />
4.3 Memória virtual ..................................................... 44<br />
Resumo ................................................................... 48<br />
Atividades de aprendizagem ........................................... 49<br />
Aula 5 – Caracterização das interfaces paralelas e seriais .............. 51<br />
5.1 Interfaces de transmissão .......................................... 51<br />
5.2 Interface serial ...................................................... 51<br />
5.3 Interface paralela ................................................... 54<br />
5.4 Comparativo entre interface serial e paralela .................. 55<br />
Resumo ................................................................... 56<br />
Atividades de aprendizagem ........................................... 56<br />
Aula 6 – Caracterização de arquiteturas RISC e CISC .................... 57<br />
6.1 Arquitetura RISC .................................................... 57<br />
6.2 Arquitetura CISC .................................................... 58<br />
6.3 Comparativo entre as arquiteturas RISC e CISC ................ 59<br />
Arquitetura de Computadores<br />
9<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong>
e-Tec Brasil/CEMF/<strong>Unimontes</strong> 10<br />
Resumo ................................................................... 60<br />
Atividades de aprendizagem ........................................... 61<br />
Referências .................................................................... 62<br />
Currículo do professor conteudista ......................................... 63
<strong>AULA</strong> 1<br />
<strong>Alfabetização</strong> <strong>Digital</strong><br />
Palavra do professor conteudista<br />
Prezados alunos, sejam bem-vindos às aulas da disciplina de Arquitetura<br />
de Computadores.<br />
A arquitetura de computadores estuda sobre os componentes, as<br />
arquiteturas e os processos contidos no computador.<br />
Estuda, ainda, sobre como os computadores são programados e<br />
como uma linguagem pode ser interpretada pela máquina.<br />
Permite-nos entender os dispositivos de entrada, saída e armazenamento,<br />
e nos faz compreender como são feitos os endereçamentos de<br />
memória e a transmissão de dados pelos sistemas.<br />
Compreender os princípios da arquitetura de computadores é de<br />
grande importância para aqueles que se interessam pela Tecnologia da Informação,<br />
e principalmente para aqueles que escolheram fazer, nela, a sua<br />
carreira profissional. Não tem como entender os princípios da computação<br />
sem antes compreender os elementos da arquitetura de computadores.<br />
Você sabe quais as arquiteturas utilizadas no desenvolvimento dos<br />
processadores? Sabe como os dados são alocados na memória? O que controla<br />
os dispositivos de entrada, de saída e de armazenamento? Essas e outras respostas,<br />
encontraremos durante o nosso estudo da disciplina de Arquitetura<br />
de Computadores.<br />
Para alcançarmos os objetivos da disciplina, não nos limitaremos<br />
apenas em conceitos, mas utilizaremos também estudos de casos e situações<br />
do nosso cotidiano. Isso facilitará o entendimento e a aplicação dos pontos<br />
aqui abordados.<br />
Sinta-se convidado a participar dessas aulas de forma atuante e<br />
participativa. Desejo-lhe sucesso, pois a disciplina de Arquitetura de Computadores<br />
espera por você.<br />
Gilmara Aparecida de Freitas Dias<br />
Arquitetura de Computadores<br />
11<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong>
<strong>AULA</strong> 1<br />
<strong>Alfabetização</strong> <strong>Digital</strong><br />
Projeto instrucional<br />
Disciplina: Arquitetura de Computadores (carga horária: 60h).<br />
Ementa: Conceituação de sistemas numéricos e mudança de base.<br />
Caracterização da organização de sistemas de computação e detalhamento<br />
de subsistemas - memória, processador, dispositivos de entrada e de saída<br />
de dados e barramentos. Caracterização e análise das formas de tradução<br />
de programas de uma linguagem de alto nível para um programa executável.<br />
Estudo de um conjunto de instruções e dos modos de endereçamento utilizados<br />
por um sistema de computação. Caracterização das interfaces paralela e<br />
serial. Caracterização de arquiteturas RISC e CISC.<br />
<strong>AULA</strong> OBJETIVOS DE APRENDIZAGEM MATERIAIS<br />
1 O computador e os sistemas numéricos<br />
2<br />
3<br />
4<br />
5<br />
6<br />
Organização de sistemas de computação<br />
e seus subsistemas<br />
Computadores e linguagens de programação<br />
Instruções e modos de endereçamento<br />
de memória<br />
Caracterização das interfaces paralela<br />
e serial<br />
Caracterização de arquiteturas RISC e<br />
CISC<br />
Arquitetura de Computadores<br />
livro didático<br />
e atividades<br />
online<br />
livro didático<br />
e atividades<br />
online<br />
livro didático<br />
e atividades<br />
online<br />
livro didático<br />
e atividades<br />
online<br />
livro didático<br />
e atividades<br />
online<br />
livro didático<br />
e atividades<br />
online<br />
CARGA<br />
HORÁRIA<br />
13<br />
8 h/a<br />
12 h/a<br />
12 h/a<br />
14 h/a<br />
8 h/a<br />
6 h/a<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong>
<strong>AULA</strong> 1<br />
Aula <strong>Alfabetização</strong> 1 - O computador <strong>Digital</strong> e os sistemas nu-<br />
méricos<br />
Objetivos<br />
Olá, aluno! Seja bem-vindo à nossa primeira aula de Arquitetura de<br />
Computadores.<br />
O objetivo desta aula é apresentar os sistemas numéricos e as suas<br />
origens, familiarizá-lo com as bases matemáticas e as unidades utilizadas<br />
pelos computadores.<br />
1.1 Sistemas numéricos e mudança de base<br />
De acordo com Nordon (1991), os comutadores baseiam-se em reproduzir<br />
ou imitar funções executadas pelos seres humanos. Bem como o<br />
aparelho de som imita a música, o computador imita e cria modelos de<br />
trabalho utilizando números e aritmética. Ou seja, os computadores não<br />
têm uma linguagem clara, não utilizam um idioma específico, mas, sim, entendem<br />
números. Esses números não são definidos de forma aleatória, são<br />
definidos através de sistemas numéricos.<br />
Um dos sistemas numéricos é o binário, ou seja, sistemas escritos<br />
apenas por dois símbolos numéricos, o “0” e o “1”, também chamado de sistema<br />
de base dois. Mas os sistemas numéricos podem estar em outras bases,<br />
como três, quatro, seis, dez, entre outras. O que importa é que tenha, no<br />
mínimo, dois símbolos (0 e 1).<br />
Dois símbolos apenas não permitiriam confrontar o computador e a<br />
Matemática, uma vez que ela tem expressões complexas e envolve diversas<br />
operações. Para resolver esse problema, criou-se a aritmética binária. Ou<br />
seja, criou-se o sistema numérico decimal.<br />
O sistema numérico decimal trabalha com a simbologia de dez números,<br />
ou seja, é representado por dez símbolos numéricos de “0” a “9”.<br />
Com esse conjunto de símbolos é possível criar ou representar qualquer outro<br />
número.<br />
Para uma melhor compreensão, vamos estudar um pouco mais sobre<br />
os sistemas numéricos binários, por ser o sistema numérico de menor<br />
base utilizado pelo computador.<br />
Arquitetura de Computadores<br />
15<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong>
e-Tec Brasil/CEMF/<strong>Unimontes</strong> 16<br />
1.2 Sistemas numéricos binários<br />
Historicamente, há diversos sistemas de numeração, cada um deles<br />
trabalha com base distinta. Os sistemas binários (base 2), sistemas octais<br />
(base 8), sistemas decimais (base 10) e sistemas hexadecimais (base 16) são<br />
exemplos de sistemas de numeração.<br />
O primeiro sistema numérico foi o sistema decimal ou de base 10.<br />
Acredita-se que esse sistema foi criado baseado nos dedos das mãos, pois<br />
facilitava a representação de quantidades.<br />
Mas, por regra, qualquer número inteiro maior ou igual a um pode<br />
ser usado como base de numeração.<br />
Os computadores trabalham sempre com sistemas numéricos binários<br />
(base 2) ou hexadecimais (base 16). Nos sistemas binários, os dados são<br />
transformados nos símbolos 0 ou 1 (zero e um). Cada dígito binário ocupa<br />
um espaço de memória do computador, chamado bit. Um bit ou binary digit<br />
(digito binário) é a menor e a mais fundamental unidade de um computador;<br />
sua representação lógica é o 0 ou o 1 (zero ou um), que representam, respectivamente:<br />
desligado e ligado; falso e verdadeiro; não e sim.<br />
Já os sistemas hexadecimais ou de base 16 equivalem aos algarismos<br />
de 0 a 15 e são representados da seguinte maneira: 0, 1, 2, 3, 4, 5, 6,<br />
7, 8, 9, A, B, C, D, E e F. Os algarismos alfabéticos representam, respectivamente:<br />
10, 11, 12, 13, 14 e 15. Ou seja, A=10 e F=15. Utilizando esse sistema,<br />
os computadores trabalham com uma unidade chamada byte, que consiste<br />
no agrupamento de oito bits.<br />
Todos os caracteres são definidos por uma tabela chamada ASCII<br />
(Tabela 1); esses caracteres têm um número correspondente e são convertidos<br />
para o formato binário pelo método da divisão.<br />
Tabela 1: Modelo da tabela ASCII<br />
código caractere código caractere código caractere código caractere<br />
128 Ç 160 Á 192 + 224 Ó<br />
129 ü 161 Í 193 - 225 ß<br />
130 é 162 Ó 194 - 226 Ô<br />
131 â 163 Ú 195 + 227 Ò<br />
132 ä 164 Ñ 196 - 228 õ<br />
133 à 165 Ñ 197 + 229 Õ<br />
134 å 166 ª 198 ã 230 µ<br />
135 ç 167 º 199 Ã 231 þ<br />
136 ê 168 ¿ 200 + 232 Þ<br />
137 ë 169 ® 201 + 233 Ú<br />
138 è 170 ¬ 202 - 234 Û<br />
139 ï 171 ½ 203 - 235 Ù<br />
140 î 172 ¼ 204 ¦ 236 ý<br />
141 ì 173 ¡ 205 - 237 Ý
142 Ä 174 « 206 + 238 ¯<br />
143 Å 175 » 207 ¤ 239 ´<br />
144 É 176 _ 208 ð 240 ¬<br />
145 æ 177 _ 209 Ð 241 ±<br />
146 Æ 178 _ 210 Ê 242 _<br />
147 ô 179 ¦ 211 Ë 243 ¾<br />
148 ö 180 ¦ 212 È 244 <br />
149 ò 181 Á 213 i 245 §<br />
150 û 182 Â 214 Í 246 ÷<br />
151 ù 183 À 215 Î 247 ¸<br />
152 ÿ 184 © 216 Ï 248 °<br />
153 Ö 185 ¦ 217 + 249 ¨<br />
154 Ü 186 ¦ 218 + 250 •<br />
155 ø 187 + 219 _ 251 ¹<br />
156 £ 188 + 220 _ 252 ³<br />
157 Ø 189 ¢ 221 ¦ 253 ²<br />
158 × 190 ¥ 222 Ì 254 _<br />
159 ƒ 191 + 223 _ 255<br />
Fonte: Disponível em: . 2010.<br />
Como dito anteriormente, na conversão binária, os caracteres são<br />
transformados em caracteres binários pelo método da divisão. Como exemplo<br />
de conversão por meio de divisão binária, utilizaremos o número 59.<br />
O número 59 será dividido n vezes pelo número dois; o que será<br />
relevante nessa divisão é o resto, que deverá ser lido de baixo para cima, ou<br />
seja, de trás para frente. O que significa que 59 = 111011.<br />
Outro exemplo é a conversão binária do número 12. Observe:<br />
Deste modo, o resultado da conversão binária de 12 será 1100. Assim,<br />
observa-se que é possível converter qualquer número inteiro, maior ou<br />
igual a um, para um sistema numérico binário.<br />
Arquitetura de Computadores 17<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong>
Resumo<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong> 18<br />
Nesta aula, exploraram-se os computadores e os sistemas binários;<br />
com isso, você aprendeu que:<br />
• o primeiro sistema numérico foi o sistema decimal;<br />
• o computador trabalha com sistemas numéricos, binários e hexadecimais;<br />
• um bit ou binary digit (digito binário) é a menor e mais fundamental<br />
unidade de um computador, e sua representação lógica<br />
é 0 ou 1;<br />
• o byte consiste no agrupamento de oito bits;<br />
• os caracteres trabalhados no computador utilizam-se de uma tabela<br />
de códigos binários, chamada de tabela ASCH;<br />
• qualquer número inteiro maior ou igual a um pode ser usado<br />
como base de numeração;<br />
• é possível converter qualquer número inteiro, maior ou igual a<br />
um, para um sistema numérico binário.<br />
Atividades de aprendizagem<br />
1) O que é a tabela ASCH e qual a sua finalidade?<br />
2) Preencha a tabela a seguir com os caracteres correspondentes aos códigos<br />
da tabela ASCH.<br />
código caractere código caractere<br />
129 146<br />
159 245<br />
198 132<br />
252 161<br />
3) Sabe-se que um bit, ou seja, um dígito binário é a menor e mais fundamental<br />
unidade de um computador. Quais as possíveis representações lógicas<br />
de um bit?<br />
4) Convertam, em bases binárias, os números:<br />
a) 65<br />
b) 46<br />
c) 15<br />
d) 24<br />
e) 97<br />
f) 35<br />
5) Explique o que é o sistema hexadecimal e a sua representação.
<strong>AULA</strong> 1<br />
Aula <strong>Alfabetização</strong> 2 – Organização <strong>Digital</strong> de sistemas de<br />
computação e seus subsistemas<br />
Objetivos<br />
Prezado aluno! Seja bem-vindo à segunda aula de Arquitetura de<br />
Computadores.<br />
O objetivo desta aula é apresentar os sistemas de computação e<br />
como são vinculados os subsistemas. Veremos, ainda, sobre sistemas abertos<br />
e fechados, sobre softwares e hardwares, além de permitir o reconhecimento<br />
dos periféricos de entrada, de saída e de armazenamento.<br />
2.1 Sistemas de computação<br />
Entende-se por sistema um conjunto de elementos interconectados<br />
que trabalham independentemente, visando alcançar um objetivo comum.<br />
O computador é um conjunto de subsistemas distintos que trabalham<br />
juntos para solucionar os problemas a ele destinados. Os dois subsistemas<br />
aqui tratados são os hardwares e os softwares.<br />
Os sistemas podem ser abertos ou fechados. Sistemas abertos são<br />
aqueles que têm interação com o meio ambiente através de entradas e saídas,<br />
adaptando-se às condições desse meio ambiente. Já os sistemas fechados<br />
são aqueles que têm comportamento determinístico e que produzem<br />
saídas invariáveis.<br />
2.2 Softwares<br />
Os softwares constituem os componentes lógicos dos sistemas, ou<br />
seja, trata-se de um conjunto de instruções que permite o funcionamento do<br />
hardware. Também chamados de programas de computador, fazem com que<br />
o computador e seus periféricos funcionem adequadamente.<br />
Os softwares podem ser categorizados como softwares de sistema<br />
ou softwares aplicativos.<br />
Os softwares de sistema abrangem todos os programas relacionados<br />
com as funções operacionais do computador, incluindo os sistemas operacionais,<br />
os compiladores de linguagens de programação e vários programas utilitários.<br />
Os sistemas operacionais, também chamados de softwares de segundo<br />
plano ou ocultos, servem de intermediários entre o software aplicativo e<br />
o hardware, funcionando como um controlador de acessos entre o hardware<br />
e o software. Na verdade, o sistema operacional é composto por um conjunto<br />
de programas responsáveis por manter os recursos do computador com a CPU<br />
Arquitetura de Computadores<br />
19<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong>
e-Tec Brasil/CEMF/<strong>Unimontes</strong> 20<br />
e memórias, estabelecer interface com os usuários e possibilitar o acesso aos<br />
softwares aplicativos.<br />
Os softwares aplicativos são aqueles utilizados normalmente pelo<br />
usuário para a execução de suas tarefas. Esses softwares podem ser personalizados<br />
ou comercializados em forma de pacotes. Os mais comuns são os<br />
softwares orientados a tarefas ou softwares de produtividade; são eles: as<br />
planilhas eletrônicas, os editores de texto, os aplicativos de comunicação, as<br />
agendas eletrônicas e outros aplicativos que têm a função de facilitar a vida<br />
do usuário e tornar suas tarefas mais rápidas.<br />
Os softwares são adquiridos de formas distintas, podendo ser freeware,<br />
de domínio público, open-source, shareware ou comerciais.<br />
Software gratuito ou freeware é aquele que o autor disponibiliza a<br />
utilização gratuitamente para todos os usuários. Esses softwares são protegidos<br />
por direitos autorais, permitindo que o autor tenha propriedade legal, o<br />
que permite a ele impor restrições de uso.<br />
Os softwares de domínio público são aqueles que não são protegidos<br />
por direitos autorais e podem ser utilizados e alterados sem restrições.<br />
Geralmente, os softwares desenvolvidos por universidades e instituições de<br />
pesquisa subsidiados pelo governo são de domínio público.<br />
Open-source ou softwares de código aberto são variações do software<br />
gratuito. Porém, o software é disponibilizado como código-fonte, permitindo<br />
que qualquer pessoa possa utilizá-lo e modificá-lo. Um exemplo de<br />
software de código aberto é o sistema operacional Linux.<br />
O shareware costuma ser confundido com freeware, uma vez que<br />
também é distribuído gratuitamente. Entretanto, sua utilização tem caráter<br />
experimental. Ou seja, tem período de ativação determinado pelo fabricante; a<br />
continuidade de utilização está condicionada à compra de licença de uso.<br />
Softwares comerciais são aqueles protegidos por direitos autorais<br />
e disponibilizados aos usuários através de licenças de acesso ou aquisição<br />
completa do produto. A utilização ilegal desses tipos de softwares pode ser<br />
trazer punições penais legais aos infratores.<br />
2.3 Hardware<br />
Compõem o hardware todo e qualquer componente físico do computador,<br />
independentemente se são componentes internos ou externos.<br />
Dividem-se em quatro categorias: dispositivos de entrada, processadores,<br />
dispositivos de saída e dispositivos de armazenamento.<br />
Imagine quando estamos trabalhando com o computador, mais especificamente<br />
com a digitação de um texto. Ligamos o computador em um<br />
botão específico do gabinete, abrimos o editor de textos por meio do mouse,<br />
digitamos o texto no teclado e as informações ficam mantidas na tela<br />
enquanto as editamos. Essas informações podem ser salvas (guardadas para<br />
uso posterior) ou descartadas. Caso o computador desligue antes do salva-
mento das informações digitadas, todo o trabalho será perdido. E como é<br />
perdido, se você estava visualizando-o no monitor enquanto estava digitando?<br />
Bem, o computador consegue armazenar informações temporariamente<br />
em uma memória primária, chamada memória RAM. Caso tivesse sido salvo,<br />
utilizaria um espaço reservado que complementa a memória primária, são<br />
os discos rígidos, pendrives, CDs, DVDs. Ao digitar o texto, estamos trabalhando<br />
com os periféricos de entrada (mouse e teclado), periféricos de<br />
armazenamento (memórias), periféricos de saída (monitor) e processador.<br />
2.3.1 Dispositivos de entrada<br />
Dispositivos de entrada são aqueles que permitem ao usuário interagir<br />
com o computador, inserindo dados a serem processados. Ou seja, são<br />
dispositivos que permitem a inserção de dados externos na máquina.<br />
Ao digitar um texto no Microsoft Word, você utiliza o teclado para<br />
escrever, o mouse para formatar, talvez um scanner para inserir uma imagem<br />
ou um texto. Esses elementos são dispositivos de entrada. Você está inserindo<br />
seus dados no computador com o auxílio de um desses componentes.<br />
Como exemplos de dispositivos de entrada, podemos citar: joystick<br />
(Figura 1), microfone (Figura 2), scanner (Figura 3), leitora de código de<br />
barras (Figura 4), leitores biométricos (Figura 5), teclado (Figura 6), mouse<br />
(Figura 7) e mouse touchpad (Figura 9).<br />
Figura 1: Dispositivo de entrada - joystick.<br />
Fonte: Disponível em: .<br />
2010.<br />
Arquitetura de Computadores 21<br />
Memória RAM – Random<br />
Access Memory<br />
(Memória de Acesso<br />
Randômico)<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong>
e-Tec Brasil/CEMF/<strong>Unimontes</strong> 22<br />
Figura 2: Dispositivo de entrada - microfone.<br />
Fonte: Disponível em: . 2010.<br />
Figura 3: Dispositivo de entrada - scanner.<br />
Fonte: Disponível em: .<br />
2010.<br />
Figura 4: Dispositivo de entrada – leitora de código de barras.<br />
Fonte: Disponível em: . 2010.
Figura 5: Dispositivo de entrada – leitor biométrico.<br />
Fonte: Disponível em: .<br />
2010.<br />
Figura 6: Dispositivo de entrada – teclado.<br />
Fonte: Disponível em: .<br />
2010.<br />
Figura 7: Dispositivo de entrada – mouse.<br />
Fonte: Disponível em: . 2010.<br />
Arquitetura de Computadores 23<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong>
e-Tec Brasil/CEMF/<strong>Unimontes</strong> 24<br />
Figura 8: Dispositivo de entrada – mouse touchpad.<br />
Fonte: Disponível em: . 2010.<br />
De uma forma mais simples, podemos entender os dispositivos de<br />
entrada como sendo aqueles dispositivos que nos permitem introduzir dados<br />
e instruções diretamente na máquina.<br />
2.3.2 Dispositivos de saída<br />
Dispositivos de saída são aqueles que retornam as informações trabalhadas<br />
na máquina para o usuário. Ou seja, externalizam as informações<br />
contidas no computador.<br />
Ao digitar um texto no Microsoft Word, você utiliza o monitor para<br />
visualizar as informações contidas no documento, ou as que estão sendo<br />
inseridas naquele instante. Ou seja, você está utilizando um dispositivo que<br />
te permite interagir com a CPU, visualizando o que está sendo trabalhado.<br />
Mas podemos visualizar essas informações também de forma impressa; utilizamos,<br />
então, a impressora. Enquanto utilizamos o computador, gostamos<br />
de ouvir música; podemos ouvi-las utilizando as caixas de som do próprio<br />
computador. Assim, todas as informações externalizadas pelo computador<br />
dependem de um dispositivo de saída.<br />
São exemplos de dispositivos de saída: impressora (Figura 10), caixa<br />
de som, monitor (Figura 9) e plotter (Figura 11).
Figura 9: Dispositivo de saída - monitor.<br />
Fonte: Disponível em: .<br />
2010.<br />
Figura 10: Dispositivo de saída - impressora.<br />
Fonte: Disponível em: . 2010.<br />
Arquitetura de Computadores 25<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong>
e-Tec Brasil/CEMF/<strong>Unimontes</strong> 26<br />
Figura 11: Dispositivo de saída - plotter.<br />
Fonte: Disponível em: . 2010.<br />
Observe que, ao contrário dos dispositivos de entrada, os dispositivos<br />
de saída nos permitem visualizar os dados e as informações armazenadas<br />
e processadas internamente pela máquina, como a impressão de um texto,<br />
a visualização de uma imagem no vídeo ou uma música que pode ser ouvida<br />
por intermédio do computador.<br />
2.3.3 Dispositivos de armazenamento<br />
Assim como dependemos dos dispositivos de entrada e de saída<br />
para inserir ou visualizar informações contidas no computador, precisamos<br />
também de dispositivos que mantenham essas informações guardadas na<br />
máquina. Isso permite que os dados inseridos tenham um lugar certo para<br />
armazenagem e que possam ser manipulados e visualizados quando for necessário.<br />
Os dispositivos que guardam essas informações, como o pendrive, o<br />
disco rígido, o CD, o DVD, a fita dat, o disquete, os cartões de memória e a<br />
memória RAM são os dispositivos de armazenamento.<br />
Dispositivos de armazenamento são as memórias, que estão divididas<br />
em memória principal e secundária.<br />
Memória secundária é aquela que armazena dados ou programas de<br />
modo permanente ou até que o usuário julgue necessário, além do sistema<br />
operacional e dos programas utilizados no computador. São elas: disco rígido<br />
(Figura 13 e Figura 14), pendrive (Figura 12), disquete, CD (Figura 15), DVD,<br />
cartão de memória ou qualquer dispositivo de armazenamento, independentemente<br />
de se está ou não dentro do computador.
Figura 12: Memória secundária - pendrive.<br />
Fonte: Disponível em: .<br />
2010.<br />
Figura 13: Memória secundária – HD externo.<br />
Fonte: Disponível em: . 2010.<br />
Figura 14: Memória secundária – disco rígido.<br />
Fonte: Disponível em: . 2010.<br />
Arquitetura de Computadores 27<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong>
e-Tec Brasil/CEMF/<strong>Unimontes</strong> 28<br />
Figura 15: Memória secundária – CDs.<br />
Fonte: Disponível em: . 2010.<br />
Memória primária ou memória central pode ser RAM (Figura 16)<br />
ou ROM. A primeira, armazena os dados temporariamente, essa memória é<br />
volátil, , ou seja, o conteúdo é perdido com o desligamento do computador.<br />
Já a segunda é não volátil. Desse modo, o conteúdo é mantido mesmo após<br />
o desligamento do computador. Esse tipo de memória é definido pelo fabricante<br />
da máquina e pode ser lido ou usado pela CPU para fins específicos do<br />
equipamento.<br />
Figura 16: Memória primária – memória RAM.<br />
Fonte: Disponível em: .<br />
2010.
A memória ROM ou ROM-BIOS (Read-Only Memory Basic Input/Output<br />
System – Sistema Básico de Entrada/Saída em Memória Somente de Leitura),<br />
conforme apresentada na Figura 17, é um grupo de programas residente<br />
no computador e é responsável por realizar operações de controle e de<br />
supervisão nos processos de nível mais básico da máquina.<br />
Fundamentalmente, o ROM-BIOS é um tradutor entre o hardware e<br />
os softwares executados nos computadores. Os softwares armazenados permanentemente<br />
nos circuitos de ROM recebem o nome de firmware.<br />
Figura 17: Memória primária – memória ROM-BIOS.<br />
Fonte: Disponível em: . 2010.<br />
2.3.3.1 Capacidade de armazenamento da memória<br />
As memórias têm capacidades de armazenamento medidas em Kilobytes.<br />
Essa capacidade de armazenamento é que define a quantidade de<br />
informações que podem ser guardadas ou trabalhadas simultaneamente no<br />
computador. Isso quer dizer que, quanto mais bytes a memória tiver, mais<br />
informações poderão ser armazenadas.<br />
Um byte equivale a 8 bits. As demais medidas são múltiplas de<br />
1024, ou seja, múltiplos de 210 (dois na base 10). Observem, na Tabela 2, as<br />
unidades de medida baseadas em bytes.<br />
Tabela 2 - Unidades de medidas das memórias<br />
Unidade de medida Equivalência<br />
1 byte 8 bits<br />
1 kilobyte (KB) 1024 bytes<br />
1 megabyte (MB) 1024 kilobytes<br />
1 gigabyte (GB) 1024 megabytes<br />
1 terabytes (TB) 1024 gigabytes<br />
1 petabyte (PB)<br />
Fonte: Própria, 2010.<br />
1024 terabytes<br />
Arquitetura de Computadores 29<br />
Firmware é o conjunto<br />
de instruções<br />
operacionais<br />
programadas<br />
diretamente no<br />
hardware, ou seja,<br />
nos circuitos dos<br />
equipamentos<br />
eletrônicos.<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong>
CPU - Central<br />
Processing Unit (ou<br />
UCP - Unidade Central<br />
de Processamento)<br />
- é responsável por<br />
comandar periféricos<br />
através de comandos<br />
específicos da máquina.<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong> 30<br />
2.3.4 Processador<br />
O processador é considerado um dos principais componentes do<br />
computador, pois ele é responsável por executar todas as operações. O processador<br />
precisa do auxílio dos dispositivos de entrada, de saída e de armazenamento<br />
para receber os dados do usuário, processá-los e retornar os<br />
resultados. Todos os procedimentos realizados pelo computador são processados<br />
por ele.<br />
O processador (Figura 18) ou CPU é composto por um conjunto de<br />
circuitos eletrônicos que manipula os dados de entrada, transformando-os<br />
em informação. Na verdade, o processador é responsável por executar instruções<br />
específicas do computador para possibilitar a resolução dos problemas<br />
a ele especificados ou atribuídos.<br />
Figura 18: Processadores.<br />
Fonte: Disponível em: . 2010.<br />
Os processadores possuem relógios (clocks) de sistemas que produzem<br />
pulsos, definindo taxas fixas para a sincronização das operações executadas<br />
pelo computador. Esse relógio de sistema é um chip distinto para essa<br />
função, não tendo relação com o relógio da máquina.<br />
Cada modelo de processador trabalha com conjuntos específicos de<br />
instruções, como adicionar e mover. Essas instruções são armazenadas na<br />
memória e localizadas através do endereçamento de memória.
2.4 Barramento<br />
Para que os componentes contidos na máquina interajam, é necessário<br />
fazer uma conexão entre eles; para isso, utilizamos os barramentos.<br />
Desse modo, podemos definir os barramentos como sendo uma via interna de<br />
tráfego responsável por transmitir sinais elétricos entre os diversos componentes<br />
do computador. Esses barramentos são classificados como barramentos<br />
de sistemas e barramentos de expansão.<br />
2.4.1 Barramento de sistema<br />
Os barramentos de sistema geralmente são revestidos de cobre sobre<br />
a superfície da placa-mãe, transportando dados entre a CPU e as memórias.<br />
A quantidade de bits transmitidos simultaneamente por esses barramentos<br />
são definidos pela largura de barramento.<br />
A largura de barramento depende do projeto da CPU, que pode<br />
permitir maior quantidade de dados a serem transmitidos simultaneamente,<br />
números maiores de endereçamento de memória e maior número de instruções<br />
trabalhadas.<br />
O barramento, afeta o desempenho do sistema. Quanto maior a<br />
largura de barramento, mais rápida é a transmissão dos dados através do<br />
sistema.<br />
Placa-mãe ou placa principal de circuito impresso é composta por<br />
um conjunto de chips e conexões que centralizam as atividades do computador,<br />
vinculando componentes como o processador e as memórias.<br />
2.4.2 Barramento de expansão<br />
Barramentos de expansão ou placas de extensão, geralmente, são<br />
conectados a slots (encaixe) de expansão na placa-mãe. Também são conhecidos<br />
como cartões de interface ou cartões adaptadores, que podem ser<br />
conectados aos slots ou em conectores externos (portas). As portas podem<br />
ser seriais ou paralelas; a primeira transmite dados utilizando um bit por vez.<br />
Já a segunda transmite grupos de bits em conjunto.<br />
A Figura 19 apresenta uma placa-mãe com quatro slots de memória,<br />
sendo que apenas um está ocupado. Isso permitiria que outros três dispositivos<br />
de memória pudessem ser incorporados ao hardware.<br />
Arquitetura de Computadores 31<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong>
e-Tec Brasil/CEMF/<strong>Unimontes</strong> 32<br />
Figura 19: Slots de memória.<br />
Fonte: Disponível em: . 2010.<br />
Os mais comuns barramentos de expansão são os apresentados a seguir.<br />
1) Barramento ISA (Industry Standard Architecture), apresentado na<br />
Figura 20, é o mais antigo barramento de expansão. Utiliza 8 ou 16 bits e é<br />
utilizado para dispositivos mais lentos, como o mouse e o modem.<br />
Figura 20: Slot ISA.<br />
Fonte: Disponível em: . 2010.<br />
2) Barramento PCI (Peripheral Component Interconect), apresentado<br />
na Figura 21, é usado para conectar dispositivos de alta velocidade, como<br />
discos rígidos e placas de rede.<br />
Figura 21: Slot PCI.<br />
Fonte: Disponível em: . 2010.
3) Barramento AGP (Accelerated Graphics Port), mostrado na Figura<br />
22, possui função principal de melhorar o desempenho do vídeo, pois não<br />
interfere em outros dispositivos, apenas estabelece conexão individual entre<br />
a memória e a placa gráfica AGP.<br />
Figura 22: Barramento AGP.<br />
Fonte: Disponível em: . 2010.<br />
4) Barramento USB (universal Serial Bus), ilustrado na Figura 23,<br />
é um barramento de expansão externo. Os dispositivos que utilizam esse<br />
barramento podem estar interligados em série, eliminando a necessidade<br />
de placas de expansão. Podem ser conectados ou desconectados a qualquer<br />
instante, sem a necessidade de desligar o computador.<br />
Figura 23: Barramento USB.<br />
Fonte: Disponível em: .<br />
2010.<br />
Arquitetura de Computadores 33<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong>
Resumo<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong> 34<br />
Nesta aula, você aprendeu que:<br />
• os sistemas computacionais são divididos em subsistemas que<br />
visam trabalhar de maneira independente e interconectados<br />
para garantir o funcionamento do computador e os problemas a<br />
ele impostos;<br />
• hardwares são os elementos físicos do computador;<br />
• softwares são os arquivos lógicos, também chamados de programas;<br />
• os hardwares são divididos em dispositivos de entrada, de saída<br />
e de armazenamento;<br />
• os dispositivos de armazenamento possuem regras de endereçamento<br />
que facilitam a localização dos espaços de memória<br />
dentro do dispositivo;<br />
• o processador ou CPU é um conjunto de circuitos eletrônicos responsável<br />
por comandar periféricos através de comandos específicos<br />
da máquina, manipulando os dados e gerando informação;<br />
• barramentos transmitem sinais elétricos entre os diversos componentes<br />
do computador;<br />
• os barramentos são divididos em barramentos de sistema e barramento<br />
de expansão.<br />
Atividades de aprendizagem<br />
1) O que é um sistema computacional e por que ele se utiliza de subsistemas?<br />
2) Cite exemplos de softwares aplicativos e as suas aplicações.<br />
3) Qual a diferença entre memória primária e memória secundária? Cite<br />
exemplos.<br />
4) Qual a diferença entre software gratuito e de código aberto?<br />
5) Quais os sistemas operacionais que você conhece?<br />
6) Se considerarmos 6144 GB (gigabytes), qual será a sua equivalência em TB<br />
(terabytes)?<br />
7) Crie um esquema de endereçamento de memória para um computador<br />
que usa palavras de 16 bytes.<br />
8) O que é a ROM-BIOS e qual a sua importância?<br />
9) O que é um barramento? E como eles são classificados?<br />
10) Cite exemplos de:<br />
a) cinco dispositivos de entrada;<br />
b) quatro dispositivos de saída;<br />
c) três dispositivos de armazenamento.
<strong>AULA</strong> 1<br />
Aula <strong>Alfabetização</strong> 3 – Computadores <strong>Digital</strong> e linguagens de<br />
programação<br />
Objetivos<br />
Caro aluno! Seja bem-vindo à terceira aula de Arquitetura de Computadores.<br />
O objetivo desta aula é apresentar os princípios básicos sobre o<br />
desenvolvimento de sistemas, permitindo-o conhecer e criar algoritmos em<br />
descrição narrativa, fluxograma e pseudocódigo, além de possibilitar a diferenciação<br />
das linguagens de programação dos algoritmos, classificando-as de<br />
acordo com a sua funcionalidade.<br />
3.1 Os computadores e o desenvolvimento de<br />
algoritmos e sistemas<br />
Os computadores foram criados com o objetivo de auxiliar o usuário<br />
em seus trabalhos, diminuindo esforços e economizando tempo. O computador<br />
é capaz de executar várias tarefas, mas não tem iniciativa própria e<br />
necessita de instruções detalhadas para que possa executá-las. Essas instruções<br />
são os algoritmos.<br />
Os algoritmos são as instruções detalhadas passo a passo, mas não<br />
é uma linguagem entendida pelo computador. Para que esse entendimento<br />
seja possível, os algoritmos são convertidos em linguagens de programação e<br />
transformados em programas.<br />
Ao desenvolver um software, deve-se escrevê-lo em uma linguagem<br />
que tanto o computador quanto o desenvolvedor entendam. Essa linguagem<br />
é chamada de linguagem de programação.<br />
Para desenvolver o software, é necessário passar por três etapas<br />
básicas: análise, algoritmo e codificação.<br />
• Fase de análise: estuda o enunciado do problema para definir os<br />
dados de entrada, o processamento e os dados de saída.<br />
• Elaboração do algoritmo: utiliza ferramentas específicas para<br />
descrever o problema e as suas possíveis soluções.<br />
• Codificação: é a transformação do algoritmo em códigos pela<br />
linguagem de programação escolhida pelo desenvolvedor.<br />
Arquitetura de Computadores<br />
35<br />
Segundo ASCENCIO<br />
(2007), um programa<br />
é a codificação de um<br />
algoritmo em uma<br />
determinada linguagem<br />
de programação.<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong>
Para HOLLOWAY<br />
(2006), aprender a<br />
projetar e implementar<br />
algoritmos aperfeiçoará<br />
a sua habilidade em<br />
pensamentos lógicos;<br />
isto lhe dará uma<br />
base para avaliar os<br />
resultados e simulações<br />
realizados por<br />
computador (...).<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong> 36<br />
3.2 Algoritmos<br />
Há três tipos de algoritmos: descrição narrativa, fluxograma e pseudocódigo.<br />
Descrição narrativa é um método algorítmico baseado na análise<br />
do enunciado do problema e na sua escrita, utilizando linguagem natural<br />
(ou seja, seu próprio idioma). Aqui, são definidos os passos a serem seguidos<br />
para a resolução de um determinado problema.<br />
O fluxograma utiliza-se de símbolos gráficos pré-definidos, permitindo<br />
decidir os passos a serem seguidos para a resolução do problema.<br />
O pseudocódigo ou portugol utiliza-se de regras pré-definidas para<br />
a resolução do problema.<br />
Para exemplificar os tipos de algoritmos, temos o seguinte enunciado:<br />
crie um algoritmo que imprima a soma de dois números.<br />
Resolução em descrição narrativa:<br />
Passo 1: ler dois números.<br />
Passo 2: somar os dois números.<br />
Passo 3: imprimir a soma.<br />
Resolução em fluxograma:
Resolução em português estruturado:<br />
Início.<br />
Declare.<br />
Numérico: número1, número2, soma.<br />
Leia: número1, número2.<br />
Soma: ← número1 + número2.<br />
Imprima: soma.<br />
Fim_algoritmo.<br />
As três resoluções referem-se ao mesmo enunciado. Todas resolvem<br />
o mesmo problema utilizando estruturas algorítmicas distintas.<br />
A estrutura algorítmica mais utilizada é o português estruturado,<br />
pois a sua estrutura é muito semelhante à estrutura de algumas linguagens,<br />
como a Pascal e a C.<br />
Para criarmos um algoritmo, é necessário definir variáveis. Essas<br />
variáveis nada mais são do que a definição de um espaço de memória onde<br />
serão gravados e manipulados os dados trabalhados no algoritmo. Voltemos<br />
ao algoritmo feito em pseudocódigo ou portugol.<br />
Início<br />
Declare<br />
Numérico Numero1, Numero2, Soma;<br />
Leia Numero1, Numero2;<br />
Soma ← Numero1 + Numero2;<br />
Imprima Soma;<br />
Fim_algoritmo.<br />
Observe que temos várias instruções indicando o que deve ser feito:<br />
declare, leia e imprima. Porém, temos alguns elementos que não são instruções,<br />
que são as variáveis. São esses elementos que receberão os dados<br />
inseridos pelo usuário e guardarão os resultados da operação.<br />
O algoritmo, aqui exemplificado, imprime a soma de dois números.<br />
Imagine que o usuário digite 3 e 4, de modo que o resultado seja 7. Como<br />
o computador saberá quais números ler? E onde essa soma será calculada?<br />
Você se lembra de quando estudamos os dispositivos de entrada,<br />
saída e armazenamento? Então, o usuário digitará os dados por meio de um<br />
dispositivo de entrada. Esses dados serão guardados nos dispositivos de armazenamento<br />
para serem processados, e retornam o resultado utilizando-se<br />
dos dispositivos de saída.<br />
Então, fica fácil; se preciso armazenar esses dados, temporariamente<br />
ou de forma permanente, precisarei de memória (dispositivo de armazenamento).<br />
Sendo assim, darei nomes àqueles espaços de memória que<br />
serão utilizados pelo meu algoritmo e, sempre que precisar daquele dado,<br />
saberei onde ele está, independentemente do valor armazenado nele.<br />
Arquitetura de Computadores 37<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong>
áveis.<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong> 38<br />
Se somaremos 3 e 4 para obter 7, precisaremos declarar três vari-<br />
Declare<br />
Numérico Numero1, Numero2, Soma;<br />
Desse modo, o primeiro número digitado será armazenado na variável<br />
Numero1, o segundo será armazenado na variável Numero2 e, por fim, o<br />
cálculo da soma será armazenado na variável Soma.<br />
Se o nosso algoritmo pretendesse encontrar o resultado da expressão<br />
X=((N+K)*Y)/2, precisaríamos de quatro variáveis para armazenar N, K,<br />
Y e X.<br />
Se precisássemos calcular a média aritmética de três números, poderíamos<br />
montar a expressão Media=(Num1+Num2+Num3)/3. Então, declararíamos<br />
quatro variáveis: Media, Num1, Num2 e Num3.<br />
Essas variáveis deveriam ter um tipo, ou seja, a que esse dado se<br />
refere. É um texto? É um número? É uma condição? Por isso, antes de declarar<br />
as variáveis, informamos que elas eram do tipo numérico.<br />
3.3 Linguagem de programação<br />
Linguagem de programação nada mais é do que a codificação dos<br />
algoritmos de modo que a máquina entenda aquilo que foi especificado pelo<br />
programador. Formalmente, pode-se definir linguagem de programação<br />
como um conjunto de termos (vocabulários) e regras (sintaxe) que permite a<br />
formulação de instruções ao computador.<br />
São muitas as linguagens de programação, dentre elas, podemos<br />
citar: Pascal, C, C++, Delphi e Java.<br />
As linguagens de programação são classificadas segundo o seu modo<br />
estrutural. Essas estruturas foram surgindo a partir dos avanços tecnológicos<br />
e da necessidade de linguagens mais robustas e adequadas a determinados<br />
tipos de utilização.<br />
A classificação delas pode ser: linguagem de baixo nível, linguagem<br />
não-estruturada, linguagem estruturada, linguagem procedural, linguagem<br />
funcional, linguagem orientada a objetos, linguagem específica, linguagem<br />
visual ou de quarta geração.<br />
3.3.1 Linguagens de baixo nível<br />
São linguagens que possuem instruções muito próximas dos códigos<br />
de máquina. A quantidade e tipos de instruções correspondentes a essa linguagem<br />
variam de acordo com o processador, ou seja, a sua estruturação e<br />
a quantidade de linhas e comandos estarão diretamente vinculadas ao hardware<br />
que a executará. Um exemplo desse tipo de linguagem é o Assembly.
3.3.2 Linguagens não-estruturadas<br />
As linguagens não-estruturadas não estão vinculadas a um processador,<br />
como no caso das linguagens de baixo nível; isso garante maior flexibilidade<br />
no seu uso. A forma em que seus termos são escritos é genérica,<br />
podendo ser utilizada em diferentes plataformas sem alteração da sintaxe.<br />
São linguagens não-estruturadas o Cobol e o Basic.<br />
3.3.3 Linguagens procedurais<br />
Essas linguagens possuem estrutura de controle, organizando de<br />
forma mais eficiente e clara a sintaxe de um programa. Essa sintaxe é definida<br />
por meio de espaçamentos específicos e por outras regras particulares<br />
das linguagens, tornando o seu entendimento e a sua manipulação mais<br />
fáceis para os desenvolvedores. A exemplo dessas linguagens, pode-se citar:<br />
Pascal, C, Fortran, Ada, Modula2 e Modula3.<br />
3.3.4 Linguagens funcionais<br />
Esse tipo de programação tem, como forma funcional, não apenas<br />
a estruturação de comandos ou das regras de linguagem. Seu objetivo principal<br />
é a avaliação de expressões formadas com a utilização de funções que<br />
procuram combinar valores básicos, e não simplesmente executar comandos,<br />
como as linguagens estruturadas. Exemplos: Prolog, Lisp e Scheme.<br />
3.3.5 Linguagens orientadas a objetos<br />
A programação orientada a objetos baseia-se em princípios da programação<br />
estruturada combinados a novos conceitos, que permitem que os<br />
programas sejam decompostos em subgrupos ou subprogramas inter-relacionados;<br />
esses subgrupos são chamados de objetos. Estes podem ser implementados<br />
individualmente e incorporados ou retirados de um sistema maior<br />
sempre que necessário.<br />
3.3.6 Linguagens específicas<br />
São aquelas implementadas para atividades específicas, como a<br />
SQL (Structure Query Language), utilizada em bancos de dados, e o Matlab,<br />
para simulações matemáticas.<br />
3.3.7 Linguagens de quarta geração ou visuais<br />
São linguagens desenvolvidas especificamente para os novos sistemas<br />
operacionais dotados de interface gráfica, como o Windows Xp, Windows<br />
Arquitetura de Computadores 39<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong>
e-Tec Brasil/CEMF/<strong>Unimontes</strong> 40<br />
7 e Umbuntu. Esses sistemas operacionais são robustos e apresentam aos<br />
usuários telas amigáveis e interativas. As linguagens evoluíram junto com os<br />
sistemas operacionais para poder atender a esses recursos gráficos, interativos,<br />
e também a outras necessidades mais especificas, como as aplicações<br />
de rede e as conexões aos bancos de dados.<br />
Resumo<br />
Nesta aula, foi possível entender que:<br />
• para desenvolver o software, é necessário passar por três etapas<br />
básicas: análise, algoritmo e codificação;<br />
• o computador é capaz de executar várias tarefas, mas não tem<br />
iniciativa própria e necessita de instruções detalhadas para poder<br />
executá-las. Essas instruções são algoritmos;<br />
• há três tipos de estruturas algorítmicas: descrição narrativa, fluxograma<br />
e portugol;<br />
• linguagem de programação é o conjunto de termos e regras que<br />
permite a formulação de instruções ao computador;<br />
• as linguagens de programação podem ser classificadas como: linguagem<br />
de baixo nível, linguagem não-estruturada, linguagem<br />
estruturada, linguagem procedural, linguagem funcional, linguagem<br />
orientada a objetos, linguagem específica, linguagem visual<br />
ou de quarta geração.
Atividades de aprendizagem<br />
1) Qual a diferença entre algoritmo e linguagem de programação?<br />
2) Identifique a classificação das linguagens a seguir, segundo a sua forma<br />
estrutural.<br />
a) Cobol<br />
b) Pascal<br />
c) Assembly<br />
d) Scheme<br />
e) C<br />
f) Fortran<br />
g) SQL<br />
h) Java<br />
i) Lisp<br />
j) Delphi<br />
k) Basic<br />
l) Prolog<br />
3) Relacione a segunda coluna de acordo com a primeira:<br />
( a ) Pseudocódigo<br />
( b ) Descrição narrativa<br />
( c ) Fluxograma<br />
(__) Utiliza-se de símbolos gráficos pré-definidos,<br />
permitindo determinar os passos a serem<br />
seguidos para a resolução do problema.<br />
(__) Método algorítmico baseado na analise do<br />
enunciado do problema e na sua escrita, utilizando<br />
linguagem natural.<br />
(__) Utiliza-se de regras pré-definidas para a resolução<br />
do problema.<br />
4) O que é uma variável e qual a sua importância no algoritmo?<br />
5) Quantas variáveis serão necessárias para criar um algoritmo que resolva a<br />
seguinte expressão: SalarioNovo=(SalarioBase * 1.25)?<br />
6) Elabore um algoritmo que leia um número e imprima o dobro.<br />
7) Crie um algoritmo que imprima o cubo de um número.<br />
Arquitetura de Computadores 41<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong>
<strong>AULA</strong> 1<br />
Aula <strong>Alfabetização</strong> 4 – Instruções <strong>Digital</strong> e modos de endere-<br />
çamento de memória<br />
Objetivos<br />
Prezado aluno! Seja bem-vindo à quarta aula de Arquitetura de<br />
computadores.<br />
Nesta aula, aprenderemos sobre os tipos de memória e como os<br />
dados devem ser armazenados de forma adequada para que possam ser encontrados,<br />
trabalhados e manipulados de modo rápido e seguro, por meio do<br />
endereçamento de memória.<br />
4.1 A memória<br />
Como visto na Aula 2, o computador utiliza-se de dispositivos de<br />
armazenamento para guardar seus dados e informações. Mas não podemos<br />
guardar essas informações de forma aleatória e sem organização. Para isso,<br />
utilizamos os endereçamentos de memória.<br />
A memória fornece à CPU um espaço para o armazenamento e a<br />
manipulação de dados e programas. A característica principal da memória<br />
é que ela permite que a CPU acesse e manipule as instruções e os dados de<br />
forma rápida e eficiente. Isso se dá por meio dos endereçamentos de memória.<br />
Esse endereçamento pode ser comparado aos nossos endereços de<br />
correspondência. Servem para facilitar a localização de um determinado objeto<br />
ou imóvel. Imagine localizar uma casa, em uma cidade de 300 mil habitantes,<br />
sem ter em mãos o endereço correto? Quanto tempo você levaria<br />
para localizá-la? Por isso, é importante o endereçamento. Um dado armazenado<br />
na memória do computador também fica mais fácil de ser encontrado<br />
quando se define o endereço de armazenamento.<br />
4.2 Endereçamento de memória<br />
Cada posição da memória é constituída por um grupo de oito elementos.<br />
Cada uma delas é numerada, sempre iniciando em zero.<br />
Os endereços são permanentes e já vêm definidos de fábrica, não<br />
podendo ser modificados pelo programador. Quando o computador usa palavras<br />
de 4 bytes, os endereços serão: 0-4-8-12-16-20, e assim sucessivamente.<br />
Ou seja, cada bloco terá 4 bytes. Para melhor entendimento, observe o esquema<br />
apresentado na Figura 24.<br />
Arquitetura de Computadores<br />
43<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong>
Memória virtual é a<br />
técnica utilizada pela<br />
memória principal e<br />
auxiliar para otimizar a<br />
utilização dos sistemas.<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong> 44<br />
Figura 24: Blocos de endereçamento.<br />
Fonte: Adaptado de Velloso(2004), 2010.<br />
O endereçamento tem o objetivo de criar uma estrutura para a<br />
organização do funcionamento do computador, de modo que os dados armazenados<br />
nos blocos de memória possam ser alterados, mas o endereçamento<br />
deles não.<br />
Capron e Johnson (2004) comparam o endereçamento de memória<br />
com as caixas postais na entrada de apartamentos. Os endereços permanecem<br />
os mesmos, mas o conteúdo delas pode mudar.<br />
4.3 Memória virtual<br />
Memória virtual é a técnica que visa melhorar os recursos do sistema,<br />
especialmente da CPU e da memória principal. Velloso (2004) define<br />
memória virtual como endereços virtuais mapeados em endereços reais. Isso<br />
ocorre quando o conjunto de endereços da memória principal, disponíveis<br />
para um ou mais programas, passa a ser maior do que a capacidade real de<br />
endereçamento nessa memória.<br />
O espaço de endereço virtual é dividido em unidades chamadas<br />
páginas, e as unidades correspondentes a elas, na memória física, são camadas<br />
de memória principal. As páginas e a memória principal devem ter o<br />
mesmo tamanho. Mas, para que possamos manipular essa memória virtual, é<br />
necessário um terceiro dispositivo, o dispositivo de acesso direto ou memória<br />
auxiliar, conforme apresentado na Figura 25.<br />
Figura 25: Acesso à memória virtual.<br />
Fonte: FEDELI; Ricardo Daniel. Introdução à Ciência da Computação, 2003.
O trânsito de páginas e a conversão dos seus respectivos endereços<br />
virtuais em reais são feitas por meio da tradução dinâmica de endereços<br />
(DAT – Dynamic Addess Tranlation).<br />
Quando não é possível reconhecer o endereço virtual na memória<br />
principal, a DAT guarda o endereço virtual na memória auxiliar, até encontrar<br />
na memória principal uma página disponível para alocar esse endereço.<br />
Depois disso, o endereço real é liberado para ser preenchido pela página<br />
requisitada.<br />
A maior parte dos programas será armazenada na memória auxiliar,<br />
mesmo durante a sua execução. Na memória principal, estarão apenas as<br />
instruções e os dados que estão sendo executados naquele momento.<br />
Os programas são executados por meio de endereçamento virtual,<br />
independentemente de suas posições físicas. A DAT tem a responsabilidade<br />
de identificar esse endereço virtual e guardá-lo na memória principal. Isso é<br />
feito através de tabelas executadas pela DAT. Essa operação é chamada de<br />
paginação de demanda.<br />
Vale ressaltar que a performance do sistema de paginação está diretamente<br />
ligada aos fabricantes de computadores e aos modelos de dispositivos<br />
escolhidos.<br />
4.3.1 Paginação<br />
A técnica de paginação é um método de criação de endereços virtuais,<br />
mesmo em computadores sem memória virtual. Ao utilizar a memória<br />
virtual, utiliza-se a unidade de gerenciamento de memória (MMU – Memory<br />
Management Unit), que é composta por um chip ou por um conjunto de chips<br />
responsável por mapear os endereços virtuais para os endereços de memória<br />
físicos, como pode ser observado na Figura 26.<br />
Figura 26: Unidade de gerenciamento de memória.<br />
Fonte: Adaptado de Tanenbaum, 2000.<br />
Arquitetura de Computadores 45<br />
Vale lembrar que a<br />
memória principal<br />
sempre se reporta à<br />
CPU, e as instruções<br />
executadas pela CPU<br />
estão gravadas na<br />
memória principal. Já a<br />
memória auxiliar referese<br />
aos dispositivos de<br />
acesso direto, sendo<br />
utilizados para guardar<br />
informações que não<br />
são necessárias para<br />
o uso imediato. Os<br />
programas armazenados<br />
na memória auxiliar<br />
somente poderão<br />
ser processados se<br />
chamados para a<br />
memória principal<br />
antes de qualquer outra<br />
providência.<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong>
e-Tec Brasil/CEMF/<strong>Unimontes</strong> 46<br />
O espaço de endereço virtual é dividido em unidades chamadas<br />
páginas, e as unidades correspondentes a elas na memória física são camadas<br />
de molduras de página. As páginas e as molduras de página devem ter o<br />
mesmo tamanho.<br />
Quando não há mapeamento de página, ocorre uma interrupção<br />
(como visto na Figura 27). Essas interrupções são chamadas falhas de páginas.<br />
Caso isso ocorra, o sistema operacional seleciona uma moldura de<br />
página pouco utilizada para gravar o seu conteúdo no disco e a instrução<br />
interrompida é reiniciada.<br />
Figura 27: Mapeamento de página.<br />
Fonte: TANEMBAUM; Andrew, Sistemas Operacionais Modernos, 2003.<br />
Paginação é a movimentação de blocos de tamanhos constantes<br />
entre a memória principal e a auxiliar.<br />
4.3.2 Tabela de endereços virtuais<br />
A tabela de endereços virtuais e as tabelas de segmentos de página<br />
são mantidas pelo sistema operacional na memória principal e são usadas pelo<br />
hardware para traduzir endereços virtuais referenciados nos endereços reais.
As tabelas são criadas por um programa responsável por instituir<br />
os designadores de segmento e de página, identificando, assim, o endereço<br />
virtual. As entradas de endereçamento possuem 8 bits, sempre os primeiros,<br />
expressando símbolos que indicam a condição da página: está reservada<br />
ou não, está gravada na memória principal ou não, está sendo acessada ou<br />
transcrita, entre outras ações referentes ao endereçamento de memória.<br />
O processo de tradução é feito pelo hardware através de recursos<br />
lógicos. Esse processo requer aproximadamente quatro ciclos de memória<br />
para gerar um endereço real. A Figura 30 apresenta o processo de tradução.<br />
Figura 28: Tabelas de endereçamento.<br />
Fonte: FEDELI; Ricardo Daniel, Introdução à Ciência da Computação, 2003.<br />
Ao iniciar o processo de tradução, há uma pesquisa nas tabelas<br />
procurando obter o endereço-base na tabela de segmento. O endereço-base<br />
é inserido nos bits reservados aos segmentos virtuais, preenchendo, assim, a<br />
entrada da tabela de segmento, que contém o endereço-base na tabela de<br />
páginas.<br />
Assim que o endereço é localizado, é gerada uma interrupção, possibilitando<br />
a paginação.<br />
Arquitetura de Computadores 47<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong>
O ciclo de memória é o<br />
intervalo mínimo entre<br />
dois acessos sucessivos<br />
à memória.<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong> 48<br />
4.3.3 Memória cache<br />
A memória cache tem a função de identificar e armazenar quais<br />
posições de memória são mais solicitadas pelo processador. Ela pode ser interposta<br />
entre o processador e a memória principal ou inserida diretamente<br />
no processador.<br />
A cache contém um subconjunto de posições equivalente à memória<br />
principal; pode ser obtida através de índice de bloco, mapeamento<br />
associativo ou mapeamento de conjunto.<br />
4.3.4 Tempo de acesso e ciclo de memória<br />
Neste item, será apresentado o tempo necessário para que um<br />
sistema de computador seja capaz de localizar uma posição de memória<br />
e transferir informações para esse endereço. A fórmula para calcular esse<br />
tempo é:<br />
T ac = T loc + T tr<br />
O tempo de latência ou de localização (Tloc) deve ser utilizado<br />
apenas para as memórias secundárias, sendo desprezível para a memória<br />
principal.<br />
O tempo de transferência (Ttr) varia de acordo com a natureza da<br />
operação a ser processada, que é múltipla de um valor básico, chamado de<br />
ciclo de memória; este tem valor especifico, de acordo com o equipamento.<br />
Resumo<br />
Nesta aula, foi possível entender que:<br />
• a memória é um espaço para o armazenamento e a manipulação<br />
de dados e programas;<br />
• o endereçamento de memória permite que a CPU acesse e manipule<br />
as instruções e os dados, de forma rápida e eficiente, na<br />
memória do computador;<br />
• memória virtual é a técnica que visa melhorar os recursos do<br />
sistema, especialmente da CPU e da memória principal;<br />
• o espaço de endereço virtual é dividido em unidades chamadas<br />
páginas, e as unidades correspondentes a elas na memória física<br />
são camadas memória principal;<br />
• a maior parte dos programas será armazenada na memória auxiliar,<br />
mesmo durante a sua execução. Na memória principal,<br />
estarão apenas as instruções e os dados que estão sendo executados<br />
naquele momento;<br />
• os programas são executados por meio de endereçamento virtual,<br />
independentemente de suas posições físicas;
• a técnica de paginação é um método de criação de endereços<br />
virtuais, mesmo em computadores sem memória virtual;<br />
• a tabela de endereços virtuais e as tabelas de segmentos de página<br />
são mantidas pelo sistema operacional na memória principal;<br />
são usadas pelo hardware para traduzir endereços virtuais<br />
referenciados nos endereços reais;<br />
• a memória cache tem a função de identificar e armazenar quais<br />
posições de memória são mais solicitadas pelo processador. Ela<br />
pode ser interposta entre o processador e a memória principal<br />
ou inserida diretamente no processador;<br />
• o ciclo de memória é o intervalo mínimo entre dois acessos sucessivos<br />
à memória.<br />
Atividades de aprendizagem<br />
1) O que você entende sobre endereçamento de memória?<br />
2) Como a memória do computador pode ser dividida?<br />
3) O que é memória virtual e como é o seu funcionamento?<br />
4) Qual a diferença entre memória principal e memória auxiliar?<br />
5) Quais as vantagens de utilizar a memória virtual?<br />
6) Para que serve a memória cache?<br />
Arquitetura de Computadores 49<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong>
<strong>AULA</strong> 1<br />
Aula <strong>Alfabetização</strong> 5 – Caracterização <strong>Digital</strong> das interfaces<br />
paralelas e seriais<br />
Objetivos<br />
Caro aluno! Seja bem-vindo à quinta aula de Arquitetura de Computadores.<br />
Nesta aula, estudaremos o modo como os dispositivos de entrada,<br />
de saída e de armazenamento compartilham dados para que as tarefas desejadas<br />
sejam executadas de forma satisfatória pelo computador.<br />
5.1 Interfaces de transmissão<br />
Como visto na aula 2, o computador contém dispositivos que permitem<br />
a interação do usuário com a máquina. São os dispositivos de entrada<br />
e os dispositivos de saída. Esses dispositivos transmitem os dados por meio<br />
de interfaces distintas, paralelas ou seriais. O tipo de interface é que define<br />
como os dados serão transmitidos. Esses dados são transmitidos como bits.<br />
Observe a Figura 29; ela apresenta os modelos de portas de interface<br />
serial e paralela.<br />
Figura 29: Portas seriais e paralelas.<br />
Fonte: Disponível em: , 2011.<br />
5.2 Interface serial<br />
A interface serial transmite os dados em série, ou seja, bit por bit,<br />
um a um, isto é, um após o outro até que o dado seja completamente transmitido.<br />
A implementação dessa interface é barata, uma vez que a remontagem<br />
Arquitetura de Computadores<br />
51<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong>
e-Tec Brasil/CEMF/<strong>Unimontes</strong> 52<br />
dos dados transmitidos ocorre de forma comparativa. Observe a Figura 30;<br />
ela mostra como os bits são remontados. Eles são agrupados de 8 em 8, reconstituindo<br />
os bytes originais. Isso faz com que o controle e a remontagem<br />
serial sejam mais simples e mais baratos do que a paralela.<br />
Figura 30: Interface serial.<br />
Fonte: Disponível em: . 2011.<br />
Todos os bits são transferidos por intermédio do mesmo meio físico,<br />
fazendo com que haja uma transmissão mais lenta. Outro problema é que, se<br />
houver qualquer anomalia, todos os bits serão igualmente afetados.<br />
Figura 31: Mouse serial.<br />
Fonte: Disponível em: . 2010.<br />
A Figura 31 apresenta uma das aplicações da interface serial; por<br />
ser um processo de transmissão lento, não é indicado para dispositivos mais<br />
rápidos. Deve ser utilizado apenas em periféricos lentos, como teclados,<br />
mouses e modems.<br />
A transmissão serial possui apenas duas linhas para o envio de mensagem,<br />
sendo uma delas reservada à referência (ground) e outra reservada à<br />
linha de sinal. Isso faz com que os bits sejam transmitidos individualmente,<br />
um por vez, dependendo, assim, de um protocolo entre transmissor e receptor.<br />
Essa transmissão pode ser síncrona ou assíncrona, como visto a seguir.
5.2.1 Transmissão serial assíncrona<br />
Na transmissão serial assíncrona, enviam-se os bytes um a um, utilizando-se<br />
de caracteres especiais que marcam o início e o fim do byte, como<br />
se observa na Figura 32.<br />
Figura 32: Transmissão serial assíncrona.<br />
Fonte: Própria, 2011.<br />
O bit inicial, ou bit star”, é a referência de que os próximos bits<br />
serão os dados a serem transmitidos. Um bit final, ou bit stop, identifica o<br />
término da transmissão do byte.<br />
Essa transmissão tem como característica bits adicionais para cada<br />
byte enviado para que haja reconhecimento correto dos dados transmitidos.<br />
Nessa aplicação, utilizamos conceitos de paridade. Isso significa que, ao enviar<br />
8 bits de dados, pode-se utilizar 10 bits para a paridade desligada e 11<br />
bits para a paridade ligada. A paridade objetiva detectar erros no byte.<br />
5.2.2 Transmissão serial síncrona<br />
Na transmissão serial síncrona, os bits de dados são enviados em<br />
forma de blocos. Não há bits start nem stop. Podemos visualizar essa transmissão<br />
observando a Figura 33.<br />
Figura 33: Transmissão serial síncrona.<br />
Fonte: Própria, 2011.<br />
O bloco sincronizador é responsável por identificar que a transmissão<br />
dos dados poderá ser iniciada. O bloco de dados é o conjunto de bits a<br />
ser transmitido; esses bits têm, anexados a eles, cabeçalhos. Por fim, o BCC<br />
identifica o final da mensagem, verificando se houve ou não a ocorrência de<br />
erros durante a transmissão.<br />
Algumas das vantagens da transmissão serial síncrona: garantia de<br />
uma maior eficiência de transmissão, maior segurança na sincronização, melhores<br />
métodos de detecção de erros e maior velocidade de transmissão. Por<br />
outro lado, tem o custo alto e apresenta maior índice de erros de sincronização<br />
ou transmissão.<br />
Arquitetura de Computadores 53<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong>
e-Tec Brasil/CEMF/<strong>Unimontes</strong> 54<br />
5.3 Interface paralela<br />
A interface paralela transmite os bits em blocos, ou seja, vários<br />
bits ao mesmo tempo. A Figura 34 mostra um exemplo de cabo paralelo para<br />
impressora.<br />
Figura 34: Cabo paralelo de impressora.<br />
Fonte: Disponível em: . 2010.<br />
O processo de transferência na interface paralela é mais complexo<br />
do que na serial. Isto o torna mais caro. A propagação dos sinais no meio físico,<br />
ou seja, a conexão entre o dispositivo e a interface deve permitir que os<br />
bits correspondentes a cada byte cheguem simultaneamente à extremidade<br />
oposta do cabo, onde então serão reagrupados em bytes. Observe a Figura<br />
35; ela representa a transferência de dados por meio da interface paralela.<br />
Figura 35: Interface paralela.<br />
Fonte: Disponível em: 2010.
Esse tipo de interface pode sofrer diferenciação na velocidade de<br />
propagação de acordo com os meios físicos que transmitirão os dados. Há<br />
fios que conduzem sinais de forma rápida e outros de forma lenta. Isso pode<br />
causar problemas na transmissão, como bits fora de ordem, o que corromperia<br />
a informação. A solução para isso é limitar o tamanho do cabo. Até 1,5<br />
metros de comprimento, o tempo de perda (throughput) não comprometeria<br />
a transmissão dos dados.<br />
Geralmente, a interface paralela é utilizada em aplicações que demandam<br />
taxas altas de transferência, como os discos rígidos, as impressoras<br />
e os drives de CD e DVD.<br />
A transmissão serial utiliza uma estrutura de 10 linhas para poder<br />
executar a transmissão dos dados; oito linhas são reservadas para a transmissão<br />
dos dados, uma linha para cada bit, isto porque oito bits equivalem<br />
a um byte. Uma linha é reservada para as instruções de referência, são as<br />
grounds. Por fim, mais uma linha: strobe (STB). O strob é responsável por<br />
identificar e validar a tensão correta (1 ou 0) de todas as linhas, permitindo<br />
que o receptor leia as informações transmitidas. Por necessitar de grande<br />
quantidade de linhas, a transmissão torna-se onerosa, mas rápida, pois possibilita<br />
a transmissão do byte de uma só vez e por completo.<br />
5.4 Comparativo entre interface serial e paralela<br />
Ao comparar as interfaces paralelas e seriais, podemos observar<br />
que elas têm aplicações distintas, sendo utilizadas de acordo com a necessidade<br />
de cada dispositivo. Para comunicações de alta velocidade, com distância<br />
curta, deve-se utilizar a interface paralela. Já para distâncias longas,<br />
com velocidade menor, utiliza-se de interface serial. Observe alguns itens<br />
apresentados na Tabela 3.<br />
Tabela 3: Tabela comparativa de transmissão serial e paralela<br />
Serial Paralela<br />
Tipo de Dados Dados simples Dados complexos<br />
Comunicação Utiliza apenas um canal Utiliza mais de um canal<br />
de comunicação<br />
de comunicação<br />
Velocidade de transmis- Menor velocidade de Maior velocidade de<br />
são<br />
transmissão<br />
transmissão<br />
Fonte: Própria (2010)<br />
Esta tabela comparativa não tem o objetivo de qualificar uma transmissão<br />
como melhor do que a outra, e sim apresentar, de forma resumida,<br />
a diferença entre elas. É esse comparativo que nos permite identificar qual<br />
delas é mais adequada para cada tipo de dispositivo.<br />
Arquitetura de Computadores 55<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong>
Resumo<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong> 56<br />
Nesta aula, foi possível entender que:<br />
• interface serial transmite dados em série, ou seja, bit por bit,<br />
um a um, isto é, um após o outro até que o dado seja completamente<br />
transmitido;<br />
• interface paralela transmite bits em blocos, ou seja, vários bits<br />
ao mesmo tempo;<br />
• na interface serial, os bits são agrupados de 8 em 8 para serem<br />
remontados, reconstituindo os bytes originais. Isso faz o controle<br />
e a remontagem serial mais simples e mais barata do que a paralela;<br />
• a transmissão serial possui apenas duas linhas para o envio de<br />
mensagem, sendo uma delas reservada à referência (ground) e<br />
outra à linha de sinal;<br />
• a transmissão serial pode ser síncrona ou assíncrona;<br />
• o processo de transferência na interface paralela é mais complexo<br />
do que na serial, o que o torna mais caro;<br />
• a interface paralela geralmente é utilizada em aplicações que<br />
demandam taxas altas de transferência com distâncias curtas.<br />
Atividades de aprendizagem<br />
1) Qual a diferença da interface serial e paralela?<br />
2) A interface serial divide-se em interface serial síncrona e assíncrona. Explique<br />
cada uma delas.<br />
3) Para a comunicação de dados via linha discada, a conexão de um modem,<br />
deve-se utilizar a interface:<br />
a) SCSI.<br />
b) Serial.<br />
c) Paralela.<br />
d) Roteamento.<br />
4) Com relação às modalidades de transmissão serial e paralela, pode-se<br />
afirmar que:<br />
a) a transmissão serial é bit por bit; a paralela é por blocos de caracteres.<br />
b) a transmissão paralela é bit por bit; a serial, caractere por caractere.<br />
c) a transmissão paralela é por bit e a serial por caractere.<br />
d) a transmissão serial é bit por bit; a paralela, caractere por caractere.
<strong>AULA</strong> 1<br />
Aula <strong>Alfabetização</strong> 6 – Caracterização <strong>Digital</strong> de arquiteturas<br />
RISC e CISC<br />
Objetivos<br />
Oi, aluno! Seja bem-vindo à sexta e última aula de Arquitetura de<br />
Computadores.<br />
Nesta aula, estudaremos sobre as arquiteturas RISC (Reduced Instruction<br />
Set Computer) e CISC (Complex Instruction Set Computer), suas<br />
principais características quais as vantagens de cada uma delas. Veremos,<br />
ainda, os processadores híbridos que se utilizam dos princípios das duas arquiteturas,<br />
simultaneamente.<br />
6.1 Arquitetura RISC<br />
Inicialmente, o conceito da arquitetura RISC (Reduced Instruction<br />
Set Computer) era utilizar um conjunto reduzido de instruções de linguagem<br />
de máquina. Porém, os primeiros processadores necessitavam de programadores<br />
altamente especializados para escrever os programas, uma vez que<br />
era necessário conhecer o processador e escrever códigos em linguagem de<br />
máquina pura.<br />
Por essa razão, os projetistas de hardware desenvolveram a técnica<br />
de microprogramação, ou seja, foi possível introduzir funções específicas<br />
diretamente no hardware. Os processadores passaram a utilizar o número<br />
excessivo de funções, inviabilizando a utilização da microprogramação. Isso<br />
fez com que fosse criada a arquitetura CISC, capaz de trabalhar um conjunto<br />
de instruções complexas.<br />
Com o passar do tempo, aumentou-se a velocidade da memória e a<br />
sua capacidade de armazenamento. Isso permitiu a utilização de softwares<br />
para substituir a microprogramação. Por outro lado, apresentou desvantagens,<br />
como problemas de cálculos em ponto flutuante e em execução de<br />
multiplicações.<br />
A primeira máquina moderna a utilizar a arquitetura RISC foi o IBM<br />
801, por volta de 1975. Em 1980, foram criados processadores com arquitetura<br />
RISC, batizados como RISC I, RISC II e MIPS. Esses processadores foram<br />
testados e utilizados pela IBM e pela Sun Microsystems.<br />
A arquitetura RISC favorece a utilização de um conjunto simples e<br />
pequeno de instruções, além de alta velocidade de execução. Alguns dos processadores<br />
modernos que utilizam essa arquitetura são: DEC Alpha, SPARC,<br />
MIPS e PowerPC. São usados também em videogames.<br />
Arquitetura de Computadores<br />
57<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong>
e-Tec Brasil/CEMF/<strong>Unimontes</strong> 58<br />
A arquitetura RISC possui as seguintes características:<br />
• conjunto de instruções reduzido e simples;<br />
• instruções regulares e em formato simples;<br />
• utiliza sempre registros para a sua execução;<br />
• modo simples de endereçamento de memória;<br />
• operação elementar por cclo de via de dados; e<br />
• utiliza princípios de pipeline.<br />
A arquitetura RISC trabalha, ainda, com três princípios básicos: ciclo<br />
da via de dados, LOAD/STORE e pipeline. O ciclo da via dos dados é a utilização<br />
dos recursos e das instruções de máquina para aumentar o desempenho<br />
do processamento, fazendo bom uso dos dados. O ciclo de via dos dados<br />
depende de diversos recursos da CPU, como a memória cache, o gerenciador<br />
de memória e os coprocessadores de ponto flutuante. O LOAD/STORE é uma<br />
arquitetura responsável por referenciar a memória. O pipeline é a utilização<br />
de instruções baseada em ciclos, isto é, uma instrução só pode ser executada<br />
quando a anterior tiver sido finalizada. É a realização de tarefas por estágios.<br />
6.2 Arquitetura CISC<br />
No início da década de 1970, havia uma grande limitação nos computadores<br />
por causa dos processadores que não suportavam executar determinados<br />
softwares. O desenvolvedor tinha que ter domínio sobre as funções<br />
do processador e desenvolver seus programas baseados nele, ou seja, escrever<br />
seus programas em linguagem de máquina pura; isso limitava as funcionalidades<br />
do software.<br />
Para que as instruções escritas em linguagem de alto nível pudessem<br />
ser convertidas em Assembly, necessitar-se-ia de compiladores mais fáceis<br />
de escrever. O que pouparia tempo e esforço para os programadores,<br />
reduzindo os custos com o desenvolvimento de softwares, e tornaria o código<br />
mais compacto, economizando espaço na memória.<br />
Em razão disso, foi desenvolvida uma nova técnica pelos projetistas<br />
de hardware, a microprogramação, possibilitando que instruções sejam<br />
inseridas diretamente no hardware, permitindo, assim, que o programador<br />
do software não se preocupe com o equipamento e desenvolva aplicações<br />
independentes. Por outro lado, o excesso de microcódigos sobrecarregava<br />
os processadores, tornando-os mais lentos. Isso faz com que o processador<br />
necessite de maior velocidade de processamento, e essa velocidade fica<br />
atrelada ao meio físico, ou seja, não há como aumentar a velocidade sem<br />
aumentar o tamanho do processador.<br />
A arquitetura CISC (Complex Instruction Set Computer) tem como<br />
alguns dos seus objetivos:<br />
• simplificar a escrita dos compiladores;<br />
• reduzir os custos de desenvolvimento de software;<br />
• melhorar a semântica entre linguagens de programação e a máquina;
• melhorar a compactação do código;<br />
• facilitar a utilização de linguagem de alto nível; e<br />
• possibilitar a detecção e a correção de erros.<br />
A arquitetura RISC fez parte de algumas das gerações anteriores<br />
de processadores, como os da família M680x0, da Motorola, e os da ix86, da<br />
Intel.<br />
6.3 Comparativo entre as arquiteturas RISC e<br />
CISC<br />
Não há como afirmar qual das duas arquiteturas é a melhor. Esse é<br />
um assunto que causa polêmica entre os desenvolvedores de softwares e os<br />
projetistas de hardware. Na década de 1980, a tendência era a utilização de<br />
processadores com instruções complexas, ou seja, o CISC. Entretanto, essa<br />
ideia não agradava a todos e alguns fabricantes preferiram utilizar instruções<br />
simples, seguindo o padrão RISC .<br />
As duas arquiteturas são contrárias; a CISC utiliza estruturas complexas<br />
e a RISC executa apenas poucas instruções simples.<br />
Os processadores baseados na tecnologia RISC possuem poucos circuitos<br />
internos, podendo receber frequências mais altas. Além disso, a baixa<br />
quantidade de instruções possibilita a otimização dos processos, resultando<br />
em melhor desempenho.<br />
Os processadores baseados na arquitetura CISC são capazes de<br />
executar diversas instruções distintas, porém poucas são recorrentes. Desse<br />
modo, várias instruções não são executadas ou são executadas poucas vezes.<br />
É fato que algumas tarefas são mais bem executadas em CISC do que em<br />
RISC, pois elas contêm mais instruções, possibilitando uma maior diversidade<br />
de recursos. Com isso, foram desenvolvidos os processadores híbridos, que<br />
são criados em arquitetura CISC, mas utilizam recursos da arquitetura RISC.<br />
O inverso também pode ocorrer.<br />
Atualmente, a maior parte dos processadores é híbrida. Exemplos:<br />
MIPS R10000, HP PA-8000 e os processadores da família x86 (Pentium II, Pentium<br />
III e AMD Athlon).<br />
Uma vantagem da arquitetura CISC é que muitas instruções são<br />
armazenadas no processador, facilitando o trabalho dos programadores. Já<br />
na arquitetura RISC, o programador tem disponível somente as instruções<br />
simples, sendo necessário combinar várias instruções para executar tarefas<br />
mais complexas.<br />
Os processadores CISC costumam utilizar modos de endereçamento<br />
de memória para facilitar a tarefa dos compiladores. Isso facilita a execução<br />
dos mais diversos tipos de operação dos dados armazenados na memória.<br />
Como visto anteriormente, os processadores RISC utilizam dois tipos<br />
de instruções: LOAD/STORE, para acesso à memória, utilizando somente<br />
o modo direto, e demais operações matemáticas do processador. Essas ins-<br />
Arquitetura de Computadores 59<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong>
e-Tec Brasil/CEMF/<strong>Unimontes</strong> 60<br />
truções fazem com que o desenvolvimento do projeto e a implementação<br />
das instruções sejam simplificados, reduzindo os ciclos de via de dados. O<br />
pipelining é utilizado em larga escala na arquitetura RISC. Isso facilita a execução<br />
das instruções referentes ao ciclo de via de dados.<br />
Outra comparação entre os processadores RISC e CISC é a de que<br />
os processadores RISC possuem instruções simples e tendem a consumir mais<br />
instruções em um programa do que os processadores CISC.<br />
Resumo<br />
Nesta aula, foi possível aprender que:<br />
• a arquitetura RISC (Reduced Instruction Set Computer), utiliza<br />
um conjunto reduzido de instruções em linguagem de máquina;<br />
• microprogramação é a técnica responsável por possibilitar a introdução<br />
de funções específicas diretamente no hardware;<br />
• a primeira máquina moderna a utilizar a arquitetura RISC foi o<br />
IBM 801, por volta de 1975. Em 1980, foram criados processadores<br />
com arquitetura RISC, batizados como RISC I, RISC II e MIPS;<br />
• a arquitetura RISC favorece a utilização de conjuntos simples e<br />
pequenos de instruções, além de alta velocidade de execução;<br />
• a arquitetura RISC trabalha com três princípios: ciclo da via de<br />
dados, LOAD/STORE e pipeline;<br />
• a arquitetura CISC (Complex Instruction Set Computer) possui<br />
poucos circuitos internos, podendo receber frequências altas.<br />
Além disso, a baixa quantidade de instruções possibilita a otimização<br />
dos processos, resultando em melhor desempenho;<br />
• os processadores CISC costumam utilizar modos de endereçamento<br />
de memória para facilitar a tarefa dos compiladores. Isso<br />
facilita a execução dos mais diversos tipos de operação dos dados<br />
armazenados na memória;<br />
• uma vantagem da arquitetura CISC é que muitas instruções são<br />
armazenadas no processador, facilitando o trabalho dos programadores;<br />
• os processadores baseados na arquitetura CISC são capazes de<br />
executar diversas instruções distintas, porém, poucas são recorrentes.
Atividades de aprendizagem<br />
1) Aponte e comente as principais diferenças entre as arquiteturas RISC e<br />
CISC.<br />
2) Foi possível definir qual das duas arquiteturas é a melhor? Justifique a sua<br />
resposta.<br />
3) O que é a microprogramação e qual a sua contribuição para a criação da<br />
arquitetura CISC?<br />
4) O que são processadores híbridos e qual a sua aplicação?<br />
5) A que se refere o ciclo da via de dados, o LOAD/STORE e o pipeline?<br />
6) Identifique as principais vantagens da arquitetura CISC e da arquitetura<br />
RISC.<br />
Arquitetura de Computadores 61<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong>
Referências<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong> 62<br />
ASCENCIO, A. F. G.; Campos, E. A. V. - Fundamentos da Programação de<br />
Computadores - Algoritmos, Pascal, C/C++ e Java. São Paulo: Prentice Hall,<br />
2007.<br />
BORGES; Álvaro, LOPES; Danilo, RIBEIRO; Romildo. RISC Vs. CISC. Disponível<br />
em: Acessado<br />
em 28 de janeiro de 2011.<br />
FIDELI; Daniel Ricardo, POLLONI; Enrico G. Franco, PERES; Fernando Eduardo.<br />
Introdução à Ciência da Computação. São Paulo: Pioneira Thomson<br />
Learning, 2003.<br />
NORTON; Peter. Desenvolvendo o PC e o OS/2. Rio de Janeiro: Campus, 1991.<br />
TANENBAUM; Andrew. Sistemas Operacionais Modernos. 2. Ed. São Paulo:<br />
Prentice Hall, 2003.<br />
VELLOSO, Fernando de Castro. Informática: conceitos básicos. 4. ed. rev.<br />
atual. Rio de Janeiro: Campus, 1999.<br />
ROESLER; Valter. Características da transmissão. Disponível em <br />
Acessado em 12 de fevereiro de<br />
2011.
Currículo do professor conteudista<br />
Gilmara Aparecida de Freitas Dias<br />
Graduada em Tecnologia em Informática pela Universidade Estadual de<br />
Minas Gerais - UEMG -, Passos, em 2001. Especialista em Administração de Sistemas<br />
de Informação pela Universidade Federal de Lavras, no ano de 2005. Mestranda em<br />
Administração pela FEAD, Belo Horizonte.<br />
Atuou como analista de sistemas e gerente de TI da Fadenor (Fundação de<br />
Apoio ao Desenvolvimento de Ensino Superior do Norte de Minas), de fevereiro de<br />
2005 a julho de 2008. De julho de 2008 até o presente momento, atua como coordenadora<br />
de informática da Facomp (Faculdade de Computação de Montes Claros).<br />
Desde agosto de 2009, coordena os laboratórios de informática do Centro de Ciências<br />
Exatas e Tecnológicas da <strong>Unimontes</strong> (Universidade Estadual de Montes Claros).<br />
Professora do ensino superior desde 2005, lecionando disciplinas relacionadas<br />
à computação, como Administração de Sistemas de Informação, Gestão da<br />
Informação, Administração de Redes, Segurança de Redes, Algoritmos I, Algoritmos<br />
II, Introdução à Ciência da Computação, Sistemas Operacionais, Modelagem de Dados,<br />
Análise e Desenvolvimento de Sistemas Estruturados, Administração e Controle<br />
de Sistemas, Segurança e Auditoria de Sistemas, Informática da Educação, Tópicos<br />
Avançados em Sistemas de Informação, Lógica Matemática, Fundamentos de Sistemas<br />
de Informação, Sistemas de Apoio à Decisão, Bancos de Dados, Informática<br />
Aplicada à Contabilidade, Introdução à Informática, Informática I, Informática II.<br />
Professora na <strong>Unimontes</strong>, vinculada ao Departamento de Ciências da<br />
Computação desde outubro de 2005. Atualmente, lecionando as disciplinas de Modelagem<br />
de Dados, Fundamentos em Sistemas de Informação e Administração de<br />
Redes.<br />
Professora das Faculdades Integradas Pitágoras de Montes Claros desde<br />
agosto de 2006. Atualmente, lecionando a disciplina de Introdução à Ciência da<br />
Computação, no curso de Engenharia de Produção.<br />
Professora da Facomp, lecionando, atualmente, as disciplinas: Sistemas<br />
Operacionais II, Sistemas de Apoio à Decisão, Administração e Controle de Sistemas,<br />
Segurança e Auditoria de Sistemas e Gestão da informação, nos cursos de Análise e<br />
Desenvolvimento de Sistemas e Sistemas de Informação.<br />
De fevereiro a dezembro de 2008, foi professora na FACIT (Faculdade de<br />
Ciência e Tecnologia de Montes Claros), lecionando as disciplinas de Algoritmos e<br />
Programação de Computadores I, Algoritmos e Programação de Computadores II e<br />
Bancos de Dados.<br />
Tem experiência na área de Ciência da Computação, com ênfase em Sistemas<br />
de Informação, atuando principalmente nas áreas de: Administração e Controle<br />
de Sistemas de Informação, Engenharia de Software, Análise de Sistemas e Administração<br />
de Redes e de Sistemas.<br />
Arquitetura de Computadores 63<br />
e-Tec Brasil/CEMF/<strong>Unimontes</strong>
e-Tec Brasil/CEMF/<strong>Unimontes</strong><br />
Escola Técnica Aberta do Brasil