22
Objetivos Conhecer a arquitetura básica de computador es. Descrever os principais dispositivos de entrada e saída. Compreende r conceitos de sotware utilitário. 3.1 Hardware O hardware do computador é constituído por um conjunto de componentes interligados: processador es, memória principal, registrador es, terminais, im- pressoras e discos magnéticos, além de outros dispositivos ísicos. Os componentes ísicos do computador são agrupados em três subsistemas básicos: Unidade Central de Processamento (CPU); Memória; Dispositivos de Entrada e Saída. 3.1.1 Unidade Central de Processamento (CPU) A CPU tem como unção principal unicar todo o sistema, controlando as unções realizadas em cada unidade uncional. É responsável pela execução de todos os programas, que obrigatoriamente deverão estar armazenados na memória principal. A unidade central de processamento é dividida em dois componentes básicos: Unidade de controle (UC); Unidade lógica e aritmética (ULA); A UC é responsável por controlar as atividades de todos os componentes do computador, mediante a emissão de pulsos elétricos (sinais de con- trole) gerados por um dispositivo chamado clock . Esse controle pode ser exercido, por exemplo, sobre a gravação de um dado no disco ou a busca Elementos de hardware e sotware 01

Elementos de hardware e so tware · 2020-03-07 · Objetivos Conhecer a arquitetura básica de computadores. Descrever os principais dispositivos de entrada e saída. Compreender

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Elementos de hardware e so tware · 2020-03-07 · Objetivos Conhecer a arquitetura básica de computadores. Descrever os principais dispositivos de entrada e saída. Compreender

Objetivos

Conhecer a arquitetura básica de computadores.

Descrever os principais dispositivos de entrada e saída.

Compreender conceitos de sotware utilitário.

3.1 HardwareO hardware do computador é constituído por um conjunto de componentes

interligados: processadores, memória principal, registradores, terminais, im-

pressoras e discos magnéticos, além de outros dispositivos ísicos.

Os componentes ísicos do computador são agrupados em três subsistemas básicos:

• Unidade Central de Processamento (CPU);

• Memória;

• Dispositivos de Entrada e Saída.

3.1.1 Unidade Central de Processamento (CPU)A CPU tem como unção principal unicar todo o sistema, controlando as

unções realizadas em cada unidade uncional. É responsável pela execução

de todos os programas, que obrigatoriamente deverão estar armazenados

na memória principal.

A unidade central de processamento é dividida em dois componentes básicos:

• Unidade de controle (UC);

• Unidade lógica e aritmética (ULA);

A UC é responsável por controlar as atividades de todos os componentes

do computador, mediante a emissão de pulsos elétricos (sinais de con-

trole) gerados por um dispositivo chamado clock . Esse controle pode ser

exercido, por exemplo, sobre a gravação de um dado no disco ou a busca

Elementos de hardware e sotware

01

Page 2: Elementos de hardware e so tware · 2020-03-07 · Objetivos Conhecer a arquitetura básica de computadores. Descrever os principais dispositivos de entrada e saída. Compreender

de uma instrução na memória.

A ULA é responsável pela realização de operações lógicas (testes e compara-

ções) e aritméticas (somas e subtrações).

A velocidade de processamento de uma unidade central de processamento

(CPU) é determinada pelo número de instruções que o processador executa

por unidade de tempo, normalmente em segundos. A unidade de medida é

MIPS (milhões de instruções por segundo).

A transmissão de dados entre o receptor e o transmissor é controlada por um

sinal de controle chamado clock . Este sinal é usado para sincronizar o transmis-

sor com o receptor, isto é, para inormar ao receptor que um dado está sendo

transmitido. É utilizado pela unidade de controle para a execução das instruções.

O clock é um dispositivo localizado na unidade central de processamento,

que gera pulsos elétricos síncronos em um determinado intervalo de tem-

po (sinal de clock ). A quantidade de vezes que este pulso se repete em um

segundo dene a requência do clock . Toda transmissão paralela utiliza um

sistema de clock . Esses sistemas de clock , entretanto, são independentes,

isto é, o sistema de clock usado na transmissão de dados entre o processador

e a memória RAM não é o mesmo usado na transmissão de dados entre o

disco rígido e a placa-mãe, por exemplo.

3.1.2 MemóriasA memória tem por unção armazenar internamente toda inormação que é

manipulada pelo computador: os programas e os dados. A memória pode ser

classicada quanto à sua velocidade (ou tempo) de acesso, capacidade de ar-

mazenamento, custo e volatilidade. Em unção dessas características, pode-se

estabelecer uma hierarquia de tipos de memórias, conorme Figura 3.1.

Registradores

Memória Cache

Memória Principal

Memória Secundária

Menor custoe velocidade

de acesso

Maiorcapacidade de

armazenamento

Figura 3.1: Comparativo dos diversos tipos de memóriaFonte: Adaptado de Machado, 2004

Atualmente os nossosprocessadores conseguem

executar bilhões de instruçõespor segundo!

02

Page 3: Elementos de hardware e so tware · 2020-03-07 · Objetivos Conhecer a arquitetura básica de computadores. Descrever os principais dispositivos de entrada e saída. Compreender

a) Registradores

São dispositivos de alta velocidade, localizados sicamente na unidade central

de processamento, para armazenamento temporário de dados. O número de

registradores varia em unção da arquitetura de cada processador. Existem

registradores de uso especíco (com propósitos especiais) e de uso geral.

Os registradores de uso especíco são:

• Contador de instruções - responsável por armazenar o endereço da pró-

xima instrução que a unidade central de processamento deverá executar.

Toda vez que uma instrução já está sendo processada o endereço da pró-

xima instrução a ser processada é armazenado no contador de instruções;

• Apontador de pilha: responsável por armazenar o endereço de memória

do topo da pilha. Pilha é uma estrutura de dados onde o sistema mantém

inormações sobre tareas que estavam sendo processadas, mas que por

algum motivo tiveram que ser interrompidas;

• Registrador de estado: responsável por armazenar inormações sobre a exe-

cução do programa (status do programa). A cada instrução executada, o re-

gistrador de estado é alterado conorme o resultado gerado pela instrução.

b) Memória cache

É uma memória volátil de alta velocidade. Quando o processador az

reerência a um dado armazenado na memória principal, veriica antes se

este dado não está armazenado na memória cache. Ao encontrar o dado

armazenado na memória cache, o processador não acessa a memória princi-

pal, diminuindo o tempo de processamento.

c) Memória principal

É a memória responsável pelo armazenamento dos programas que estão

sendo executados pela CPU em um certo instante, bem como dos dados

utilizados pelos programas em execução. Para que um programa possa ser

executado pela CPU é necessário que ele seja previamente armazenado na

memória principal. Existem ainda dois tipos de memória: ROM ( read only 

memory – memória somente leitura) e RAM ( random access memory – me-

mória de acesso randômico).

Para aumentar o desempenhono uncionamento das memóriascaches é eita a hierarquizaçãoda cache em múltiplos níveis.O nível da cache mais altoé chamado de L1 (Level 1),com baixa capacidade dearmazenamento e com altíssimavelocidade de acesso. O segundonível, L2 (Level 2), possui maiorcapacidade de armazenamento,porém com velocidade deacesso inerior a L1, e assimsucessivamente. Quando a CPUnecessita de uma inormação damemória principal, primeiramenteverifca a cache L1, caso não ache,segue para a cache L2, assimpor diante. Se não encontrar emnenhum dos níveis, busca o dadona memória principal.

03

Page 4: Elementos de hardware e so tware · 2020-03-07 · Objetivos Conhecer a arquitetura básica de computadores. Descrever os principais dispositivos de entrada e saída. Compreender

Quando usamos o termo “memória” para um computador, normalmente

estamos nos reerindo à sua memória RAM. Se um programa que o usuário

pretenda executar não estiver na memória RAM, então ele deve ser transe-

rido de um sistema de memória secundário (como discos rígidos, unidades

de CD-ROM e etc.) para a memória RAM.

A RAM é um tipo de circuito eletrônico de memória que permite a leitura e

a escrita de dados em seu interior. Só que ela é uma memória volátil (como

os registradores e a cache), isto é, cortando-se sua alimentação elétrica, apa-

gamos os dados que estavam nela armazenados.

Já a característica principal da ROM é que o seu conteúdo não é perdido

quando cortamos a sua onte de alimentação e por isso é utilizada para

manter os programas iniciais do computador. Quando ligamos o micro, o

processador não sabe o que azer; ele precisa executar um programa; este

programa necessário para dar o boot é gravado em uma memória ROM,

localizada na placa-mãe do computador.

Um programa armazenado em ROM recebe o nome de frmware. Na me-

mória ROM do micro há basicamente três programas (frmware) principais:

• BIOS (Basic Input/Output System, Sistema básico de Entrada/Saída);

• POST (Power On Sel Test , Autoteste ao Ligar);

• Setup (programa que permite alterar vários itens da conguração

do computador).

A memória principal é composta por unidades de acesso chamadas células,

cada uma capaz de armazenar um determinado número de bits. Cada célula

tem um endereço, conorme Figura 3.2, que é uma reerência à posição da cé-

lula dentro da memória, como o endereço de uma casa. Quando um programa

deseja ler ou escrever um dado em uma célula, deve primeiro especicar qual o

endereço de memória desejado. O endereço da célula a ser acessada ca arma-

zenado em um registrador denominado registrador de endereço de memória.

04

Page 5: Elementos de hardware e so tware · 2020-03-07 · Objetivos Conhecer a arquitetura básica de computadores. Descrever os principais dispositivos de entrada e saída. Compreender

0

1

2

N

Endereços

Células

Instruçãoou Dado

Figura 3.2: Células de memória e seus endereçosFonte: Adaptado de Machado, 2004

O número de células endereçadas na memória principal é limitado pelo ta-

manho do registrador de endereço. No caso de o registrador possuir n bits,

a memória poderá endereçar 2n células.

d) Memória secundária

Memória secundária é um termo genérico para designar diversos compo-

nentes que permitem gravar e ler dados permanentes. O seu acesso é lento,

se comparada com as memórias cache ou principal, porém relativamente

apresentam custo mais baixo e capacidade de armazenamento superior.

Exemplos de memória secundária são as tas magnéticas, discos rígidos

(HDs), CDs, DVDs, etc.

3.1.3 Dispositivos de entrada e saídaPermitem a comunicação entre o computador e o mundo externo. Alguns

dispositivos servem para a comunicação homem-máquina, como teclados,

monitores de vídeo, impressoras, plotters, entre outros. A implementação

de interaces mais amigáveis permite cada vez mais que pessoas sem co-

nhecimento especíco sobre inormática possam utilizar o computador. São

alguns exemplos desses tipos de dispositivos: Scanner , caneta ótica, mouse,

dispositivos sensíveis à voz humana, e etc.

3.1.4 BarramentoA CPU, a memória principal e os dispositivos de E/S são interligados através

de linhas de comunicação denominadas barramentos, barras ou vias. Um

Células de memóriaCélulas de memória são unidadesde acesso da memória principal.

Além das memórias RAM e ROMdescritas no texto, temos aindaa PROM (memória programávelsomente de leitura) que podeser gravada pelo usuário umaúnica vez, a EPROM (memóriaprogramável e apagável somentede leitura) que pode ser gravadaou regravada por meio de umequipamento que ornece asvoltagens adequadas em cadapino (para apagar os dadosdeve-se utilizar raios ultravioletano chip), e por último temos aEEPROM (memória programávele apagável eletronicamentesomente de leitura), que pode sergravada, apagada ou regravadautilizando um equipamento queornece as voltagens adequadasem cada pino.

05

Page 6: Elementos de hardware e so tware · 2020-03-07 · Objetivos Conhecer a arquitetura básica de computadores. Descrever os principais dispositivos de entrada e saída. Compreender

barramento é um conjunto de os paralelos (linhas de comunicação), por

onde traegam inormações, como dados, endereços ou sinais de controle.

Um esquema gráco de um barramento é mostrado na Figura 3.3.

CPU

Memória

Dispositivo E/S

Fluxo de Dados

Fluxo de Controle

UnidadeLógica e

Aritmética

Unidade deControle

Registradores

Figura 3.3: Esquema gráfco dos barramentosFonte: Adaptado de Machado, 2004

O barramento pode ser classicado como unidirecional (transmissão em

um só sentido) ou bidirecional (transmissão em ambos os sentidos). Existem

três tipos de barramentos, que se dierenciam uns dos outros de acordo

com o que transportam:

• Barramento de dados: transmite inormações entre a memória princi-

pal e a unidade central de processamento;

• Barramento de endereços: utilizado pela unidade central de processa-

mento para especicar o endereço da célula de memória que será acessada;

• Barramento de controle: é por onde a unidade central de processamen-

to envia os pulsos de controle relativos às operações de leitura e gravação.

3.1.5 Pipelining O conceito de processamento pipeline é a divisão de uma tarea em uma se-

quência de subtareas. O processador, por meio de suas várias unidades uncio-

nais pipeline, unciona de orma a permitir que, enquanto uma instrução se en-

contra na ase de execução, uma outra instrução possa estar na ase de busca.

A técnica de  pipelining pode ser empregada em sistemas com um ou mais

06

Page 7: Elementos de hardware e so tware · 2020-03-07 · Objetivos Conhecer a arquitetura básica de computadores. Descrever os principais dispositivos de entrada e saída. Compreender

processadores, em diversos níveis, e tem sido a técnica de paralelismo mais

utilizada para maior desempenho dos sistemas de computadores.

Podemos azer a comparação de um  pipelining com um motor de carro de

quatro tempos e vários cilindros. Enquanto um cilindro está na ase de ali-

mentação, outro está na ase de compressão, outro na de explosão e assim

por diante. Isto aumenta bastante a eciência do motor.

3.2 SoftwareNa Figura 1.4 vimos três camadas/níveis de  sotware: aplicativos, utilitários e

sistema operacional. Os  sotware ou programas executados pelos usuários

são atualmente chamados, atualmente, de aplicativos. Antigamente se cha-

mavam simplesmente programas. Quase tudo que o usuário consegue azer

utilizando o computador necessita de um aplicativo. Esses programas podem

ser, por exemplo, um editor de textos, uma planilha ou um programa de im-

posto de renda, de controle de estoques ou de contas a receber.

Antigamente havia uma distinção mais nítida entre os aplicativos e os utilitá-

rios, pois havia um personagem a mais no cenário: o operador do computa-

dor. Este executava algumas atividades especícas, como copiar de ta para

disco e vice-versa ou operar as impressoras. Para executar essas atividades o

operador precisava de uma série de programas, como, por exemplo, um pro-

grama para localizar um arquivo no computador. A maioria dos programas

requeridos pelo operador era chamada de utilitários.

Hoje em dia continua a existir um conjunto de programas, utilizados como

interace entre o usuário e o hardware. O termo utilitário é, assim, uma ree-

rência a sotwares relacionados com serviços do sistema operacional, como

os compiladores, linkers, depuradores e outros.

Os  sotware aplicativos podem ser identicados como aqueles que estão

mais próximos do usuário comum, como os navegadores, editores de texto,

 jogos, etc. Já os sotware utilitários são aqueles que azem a intermediação

entre os aplicativos e o núcleo do sistema operacional, possuindo unções

mais especícas e geralmente mais restritas, como ligadores, depuradores,

compiladores, etc.

Dentre os sotware utilitários podemos destacar alguns que dão apoio à

programação de computadores: tradutores, compiladores, montadores, in-

07

Page 8: Elementos de hardware e so tware · 2020-03-07 · Objetivos Conhecer a arquitetura básica de computadores. Descrever os principais dispositivos de entrada e saída. Compreender

terpretadores, ligadores, carregadores, depuradores. Nas próximas seções

estaremos abordando esses utilitários com mais detalhes.

3.2.1 Tradutores, compiladores e montadoresCom o surgimento das primeiras linguagens de montagem ( Assembly ) e as

linguagens de alto nível, o programador passou a se preocupar menos com

aspectos de hardware e a escrever em uma linguagem mais próxima da

linguagem humana.

Apesar das vantagens proporcionadas pelas linguagens de montagem e de alto

nível, que propiciaram um aumento enorme na produtividade dos programado-

res, os programas não estão prontos para serem executados diretamente pela

CPU. Eles deverão passar por uma etapa de conversão, quando a codicação

do programa é traduzida para código de máquina. É essa a unção do tradutor.

O utilitário “tradutor” tem a unção de converter todo o código onte escrito

em linguagem de alto nível para código de máquina.

O tradutor, pelo tipo de linguagem de programação utilizada, pode ser cha-

mado de montador ou compilador:

Programa fonte Programa objetoTradutor

MontadorLinguagem

de MontagemMódulo objeto

Compilador Módulo objetoLinguagem

de Alto Nível

Figura 3.4: Representação das dierenças entre o tradutor, montador e compiladorFonte: Adaptado de Machado, 2004

3.2.2. InterpretadorAssim é chamado um tradutor que não gera o módulo objeto. A partir de um

programa onte, escrito em linguagem de alto nível, o interpretador, no momen-

to da execução do programa, traduz cada instrução e a executa em seguida.

Sua desvantagem é o tempo gasto na tradução das instruções de um pro-

grama toda vez que este or executado, já que não existe a geração de

um código executável.

A denominação montador ocorrequando é gerado o módulo

objeto (a linguagem de máquina)a partir de uma linguagem de

montagem (assembler ). Adenominação compilador é dada

ao utilitário responsável porgerar, a partir de um programa

escrito em linguagem de altonível (Cobol, C, Delphi, etc.),um programa em linguagem de

máquina (módulo objeto)

08

Page 9: Elementos de hardware e so tware · 2020-03-07 · Objetivos Conhecer a arquitetura básica de computadores. Descrever os principais dispositivos de entrada e saída. Compreender

Alguns exemplos de linguagens interpretadas são o Basic e o Perl.

3.2.3. Linker O linker (ligador) é o utilitário responsável por gerar, a partir de um ou mais

módulos objeto, um único programa executável, conorme Figura 3.5. Sua

unção é resolver todas as reerências simbólicas existentes entre os módulos

- objeto, reservar memória para a execução do programa e determinar uma

região da memória onde o programa será carregado para sua execução.

Módulo objeto

.

.

.

Módulo objeto

Módulo objeto

Linker ProgramaExecutável

Figura 3.5: Representação do papel do linker Fonte: Adaptado de Machado, 2004

Em ambientes multiprogramáveis esse tipo de alocação xa eita pelo linker 

é inviável porque neste caso a memória é compartilhada entre diversos pro-

gramas: é pouco provável que no momento em que o sistema carrega um

programa, sua área de memória que oi predeterminada esteja disponível. A

solução para isso é permitir que um programa possa ser executado em qual-

quer região disponível da memória, durante a sua carga (código relocável).

Esse tipo de relocação não é realizado pelo linker, e sim por outro utilitário,

chamado loader, responsável por carregar os programas na memória.

3.2.4. Loader O loader (carregador) é o utilitário responsável por colocar sicamente na memó-

ria principal um programa para sua execução. Pode permitir que um programa

seja carregado em regiões dierentes toda vez que or trazido para a memória.

Quando o loader  carrega um programa para memória principal, ele alo-

ca uma área de código, uma área de dados e uma área de pilha. A área

de código armazena o programa executável, a área de dados armazena

as variáveis e constantes utilizadas no programa e a área de pilha armaze-

na os endereços de retorno das unções ou procedimentos chamados du-

Os IDEs (Ambientes Integradosde Desenvolvimento), comoo Dev C++, executam essasunções (de compilador e link ere até a carga do executável)de uma vez, quando vocêaperta o F9. Você não percebequando é executada cada umadelas, embora sejam distintas.Você só consegue ver, na pastaonde você está trabalhando,os programas onte (comterminação “ .c” ou “ .cpp”) e oexecutável (terminação “ .exe”);o módulo objeto intermediário(criado durante a compilação)você não vê mais.

09

Page 10: Elementos de hardware e so tware · 2020-03-07 · Objetivos Conhecer a arquitetura básica de computadores. Descrever os principais dispositivos de entrada e saída. Compreender

rante a execução do programa. O uncionamento do carregador depende

do código gerado pelo linker e, de acordo com este, pode ser classicado

como absoluto ou relocável:

• Loader absoluto - o loader  só necessita conhecer o endereço de

memória inicial e o tamanho do módulo para realizar o carregamento.

Então, o loader transere o programa da memória secundária para a me-

mória principal e inicia sua execução;

• Loader relocável - o programa pode ser carregado em qualquer posi-

ção de memória e o loader é responsável pela relocação no momento

do carregamento.

O processo completo de compilação, link-edição e carga de um programa é

mostrado na Figura 3.6.

LigaçãoDinâmica

Tempode Carga

Tempo deExecução

Módulo deCarga

Programa-fonte

Programa-fonte

Compiladorou Montador

Link  – edição

Bibliotecado Sistema

Carregador

Biblioteca doSistema Carregada

Dinamicamente

ImagemBinária naMemória

OutrosMódulosObjeto

Figura 3.6: As várias etapas do desenvolvimento e processamento de um programaFonte: Adaptado de Silberschatz, Galvin e Gagne, 2000

10

Page 11: Elementos de hardware e so tware · 2020-03-07 · Objetivos Conhecer a arquitetura básica de computadores. Descrever os principais dispositivos de entrada e saída. Compreender

3.2.5. DepuradorO desenvolvimento de programas está sujeito a erros de lógica, indepen-

dentemente da metodologia ou linguagem utilizadas pelo programador. O

depurador é o utilitário que permite ao usuário acompanhar e controlar a

execução de um programa a m de detectar erros na sua estrutura. O depu-

rador ajuda a detectar os erros, mas não os corrige. O depurador geralmente

oerece ao usuário os seguintes recursos:

• acompanhar a execução de um programa instrução por instrução;

• possibilitar a alteração e a visualização do conteúdo de variáveis;

• colocar pontos de parada dentro do programa, de orma que, durante a

execução, o programa pare nos pontos determinados;

• especicar em orma de envio de mensagem, toda vez que o conteúdo

de uma variável or modicado.

Esses recursos de depuraçãode programas também estãopresentes em IDEs, geralmentena opção Debug.

11

Page 12: Elementos de hardware e so tware · 2020-03-07 · Objetivos Conhecer a arquitetura básica de computadores. Descrever os principais dispositivos de entrada e saída. Compreender

Objetivos

Apresentar os principais dispositivos de hardware.

Conceituar software voltado ao contexto dos sistemas operacionais.

Mostrar a importância do hardware e software em um sistema

computacional.

2.1 Considerações iniciaisNessa aula abordaremos os principais conceitos relacionados a hardware

e software e como estes estão diretamente ligados ao projeto de sistemas

operacionais. Ao longo das aulas será possível entender um pouco mais sobre

os principias dispositivos de hardware, sua forma de funcionamento e os

softwares utilitários usados no contexto dos sistemas operacionais.

2.2 HardwarePodemos dizer que hardware e software são elementos vitais em um sistema

de computação e que um não vive sem o outro. Em um sistema computacio-

nal temos um conjunto de hardware formado por processadores, memória,

barramentos, registradores, monitores de vídeo, mouse, teclado, impressoras,

discos magnéticos, entre outros dispositivos. Estes por sua vez manipulam

dados de forma digital o que torna um sistema computacional confiável na

representação e transmissão de dados.

Um sistema computacional geralmente é formado pela composição de três

subsistemas básicos (também conhecidos como unidades funcionais): pro-

cessadores (UCP), memória principal (RAM) e dispositivos de entrada e saída

(E/S). Estes itens compõem qualquer tipo de computador digital existente

independente de fabricante, marca ou modelo.

2.2.1 ProcessadorO processador ou Unidade Central de Processamento (UCP) tem como função

controlar e executar instruções presentes na memória principal (RAM) através de

Aula – Conceitos de hardware e software

12

Page 13: Elementos de hardware e so tware · 2020-03-07 · Objetivos Conhecer a arquitetura básica de computadores. Descrever os principais dispositivos de entrada e saída. Compreender

operações aritméticas (como somar, subtrair, multiplicar e dividir) e operações

lógicas (comparações, movimentação de dados, etc.).

Um processador é composto por alguns elementos básicos como a Unidade

de Controle (UC), a Unidade Lógica e Aritmética (ULA) e os registradores.

A UC gerencia as atividades de todos os dispositivos do computador, como por

exemplo, a gravação de dados em discos, a busca de instrução em memória,

entre outros. Já a ULA realiza as operações lógicas e aritméticas, conforme

citado nos parágrafos anteriores. Os registradores por sua vez têm a função

de guardar dados temporariamente, servindo como uma memória de alta

velocidade interna do processador, porém com uma capacidade de armaze-

namento reduzida e um custo maior que a memória principal.

A sincronização entre as funções do processador se dá através de um sinal de

clock. Este sinal por sua vez, é gerado através de um pulso cíclico que altera

variáveis de estado do processador.

2.2.2 Arquiteturas RISC e CISCUma CPU em relação ao número de instruções de processamento que pode

reconhecer classifica-se em: CISC e RISC.

2.2.2.1 CISCUm processador CISC reconhece mais de uma centena de instruções. Devido

a esta característica, pode executar de modo direto a maioria das operações

programadas pelos modernos softwares.

Os processadores com arquitetura CISC possuem instruções complexas que

são interpretadas por microprogramas. O núcleo de registradores é pequeno

e qualquer instrução pode referenciar a memória principal.

Os processadores são em sua grande maioria chips CISC. Quanto maior a

quantidade de instruções que um microprocessador é capaz de identificar,

mais lenta é a execução de cada uma delas.

2.2.2.2 RISCUm processador RISC reconhece um número limitado de instruções, sendo que

em contrapartida, estas instruções são otimizadas para que sejam executadas

com mais rapidez.

clock É um circuito oscilador que

tem a função de sincronizar e ditar a medida de velocidade

de transferência de dados entre duas partes essenciais

de um processamento. Em outras palavras, refere-se a

medida de frequência com que as operações são realizadas

(ciclos por segundo).

13

Page 14: Elementos de hardware e so tware · 2020-03-07 · Objetivos Conhecer a arquitetura básica de computadores. Descrever os principais dispositivos de entrada e saída. Compreender

A arquitetura RISC se caracteriza por possuir poucas instruções de máquina,

que são executadas diretamente pelo hardware. Estas instruções, em sua

maioria, não acessam a memória principal, trabalhando com registradores

que neste tipo de processador se apresentam em grande número.

Portanto, a arquitetura RISC reduz o conjunto de instruções ao mínimo indis-

pensável:

As instruções não contempladas (para execução) são executadas como com-

binações das instruções existentes. Com isso, consegue-se desempenho até

50 % a 75 % superior à de um processador CISC.

No Quadro 2.1, podemos observar as principais diferenças entre os proces-

sadores com arquiteturas RISC e CISC.

Quadro 2.1: Arquitetura RISC × arquitetura CISCArquitetura RISC Arquitetura CISC

Poucas instruções Muitas instruções

Instruções executadas pelo hardware Instruções executadas por microcódigo

Instruções com formato fixo Instruções com diversos formatos

Instruções utilizam poucos ciclos de máquina Instruções utilizam múltiplos ciclos

Instruções com poucos modos de endereçamento Instruções com diversos modos de endereçamento

Arquitetura com muitos registradores Arquitetura com poucos registradores

Fonte: Adaptado de Maia, 2007

2.2.3 Memória principalUm computador em seu interior possui vários tipos de memórias. A memória

principal do computador é conhecida como memória RAM (Random Access Memory), ou memória de acesso aleatório. Ela é chamada de memória principal,

pois é utilizada para manter os programas em execução, tanto dos usuários

como do sistema operacional.

A memória é composta por unidades de acesso denominadas de células.

Cada uma das células possui um determinado número de bits. O acesso ao

conteúdo de uma célula se dá pela especificação de um número denominado

de endereço. O endereço nada mais é do que uma referência única que fazemos

a uma célula de memória. Quando um programa deseja fazer operações de

gravação e leitura em uma célula, este deverá antes especificar o endereço

de memória desejado, para então realizar a operação.

14

Page 15: Elementos de hardware e so tware · 2020-03-07 · Objetivos Conhecer a arquitetura básica de computadores. Descrever os principais dispositivos de entrada e saída. Compreender

A quantidade de memória RAM disponível em um computador, exerce um

grande efeito sobre o desempenho do mesmo, uma vez que sem memória

RAM suficiente o sistema passa a utilizar a memória virtual, que é muito mais

lenta que a memória RAM.

Uma questão importante a ser lembrada é que a memória RAM é volátil,

ou seja, todo o conteúdo se apaga quando o computador é desligado ou

reiniciado. Assim, caso tenhamos programas em memória e tivermos uma

queda de energia elétrica, se não tivermos um dispositivo como o no-break

(que garanta a estabilidade de energia), perderemos os dados que estão

nesta memória.

Os chips de memória RAM são vendidos na forma de pentes de memória, com

diferentes velocidades de funcionamento (atualmente na casa dos Gigahertz),

tamanhos (01, 02, 04 GB, etc.) e tipos (DDR, DDR2, DDR3, etc.).

2.2.4 Memória cacheA memória cache pode ser caracterizada como uma memória de alta velo-

cidade, volátil e na grande maioria das vezes com pequena capacidade de

armazenamento. Sua principal função é diminuir a disparidade existente entre

a velocidade na qual o processador executa instruções, bem como a velocidade

com que os dados são lidos e gravados em memória principal.

O tempo de acesso a um dado presente na memória cache é muito menor

que se o mesmo estivesse em memória principal.

A memória cache guarda os dados mais solicitados. Dessa forma, cada vez que

o processador necessita de determinado dado ele verifica se esta informação

encontra-se na memória cache, caso contrário, ele faz uma busca em memória

principal (o que aumenta o tempo de acesso à informação).

A maioria dos processadores atuais apresentam um esquema de memória

cache composto por múltiplos níveis. O funcionamento deste esquema tem

por princípio que quanto menor a capacidade de armazenamento da memória

cache, mais rápido é o acesso a um determinado dado.

Para aumentar o desempenho no funcionamento das memórias caches a

hierarquização em múltiplos níveis torna-se necessária. Nesse esquema, o

nível mais alto de cache é chamado de L1 (Level 1), com baixa capacidade de

armazenamento e com alta velocidade de acesso. O nível L2 (Level 2) possui

maior capacidade de armazenamento, porém velocidade de acesso inferior a L1.

15

Page 16: Elementos de hardware e so tware · 2020-03-07 · Objetivos Conhecer a arquitetura básica de computadores. Descrever os principais dispositivos de entrada e saída. Compreender

2.2.5 Memória secundáriaA memória secundária é utilizada para guardar dados de forma permanente

no computador. Este tipo de armazenamento não necessita de alimentação,

diferentemente da memória principal que necessita estar energizada para

manter suas informações.

O acesso à leitura e gravação de dados na memória secundária é mais lento

se comparado à memória principal, entretanto o custo é baixo e a capacidade

de armazenamento é bastante superior.

Quanto aos tempos de acesso, a memória secundária funciona na ordem de

milissegundos (10-3), enquanto a memória principal trabalha na ordem de

nanossegundos (10-9). Podemos citar como exemplo de memória secundária

os seguintes dispositivos:

• Discos magnéticos (discos rígidos – HD).

• Discos ópticos (CD, DVD, Blu-Ray).

• Memória flash (pen drives).

Na Figura 2.1, é possível visualizar um comparativo entre os diferentes tipos

de dispositivos de armazenamento na relação custo, velocidade e capacidade

de armazenamento.

16

Page 17: Elementos de hardware e so tware · 2020-03-07 · Objetivos Conhecer a arquitetura básica de computadores. Descrever os principais dispositivos de entrada e saída. Compreender

Figura 2.1: Relação entre dispositivos de armazenamentoFonte: CTISM, adaptado de Maia, 2007

2.2.6 Dispositivos de entrada e saídaOs periféricos ou dispositivos de entrada e saída, são componentes de um

computador que permitem expandir as funcionalidades do mesmo. Os mesmos

podem ser divididos em duas categorias principais: os utilizados como memória

secundária e os que servem como interface usuário-máquina. Veremos alguns

exemplos de dispositivos de entrada e saída de dados.

2.2.6.1 Dispositivos de entradaOs dispositivos de entrada ou periféricos de entrada têm a função de codi-

ficar os dados que entram no computador para que os mesmos possam ser

processados pelo computador. São considerados dispositivos de entrada:

• Câmera digital.

• Câmera filmadora.

• Caneta ótica.

• Drive de Blu-Ray.

• Drive de CD/DVD-ROM.

17

Page 18: Elementos de hardware e so tware · 2020-03-07 · Objetivos Conhecer a arquitetura básica de computadores. Descrever os principais dispositivos de entrada e saída. Compreender

• Joystick.

• Leitora de códigos de barra.

• Mesa gráfica.

• Microfone.

• Mouse.

• Pen drive.

• Scanner.

• Teclado.

• Tela sensível ao toque.

2.2.6.2 Dispositivos de saídaOs dispositivos de saída têm a função de decodificar os dados gerados pelos

dispositivos de entrada, para que estes possam ser entendidos pelo usuário.

Em outras palavras, os dispositivos de saída permitem extrair e visualizar

informações que estão no computador.

Abaixo alguns exemplos de dispositivos de saída de dados:

• Caixas de som.

• Drive gravador de Blu-Ray.

• Drive gravador de CD-ROM/DVD-ROM.

• Impressora.

• Monitor de vídeo.

• Pen drive.

• Plotter.

• Projetores digitais.

18

Page 19: Elementos de hardware e so tware · 2020-03-07 · Objetivos Conhecer a arquitetura básica de computadores. Descrever os principais dispositivos de entrada e saída. Compreender

Cabe salientar que existem dispositivos que funcionam tanto como periféricos

de entrada como de saída, nestes casos sendo classificados como dispositivos

de entrada/saída de dados.

Os dispositivos de entrada e saída são responsáveis pela interação da máquina

com o homem. É por meio deles que os dados entram e saem do computador.

2.3 SoftwareO software é responsável por servir como interface entre as necessidades dos

usuários e os dispositivos de hardware. Nos sistemas operacionais encontramos

uma diversidade de softwares com funções diferenciadas, mas que exercem

um papel importante. Veremos agora alguns dos principais utilitários aos

sistemas operacionais.

2.3.1 TradutorOs primeiros programas de computador foram desenvolvidos através de uma

linguagem denominada de “linguagem de máquina”. Além de exigir um

conhecimento extremo por parte do programador era necessário também

conhecer em detalhes o hardware do computador, como os endereços de

memória onde seriam armazenados os programas.

Este cenário mudou quando começaram a surgir as primeiras linguagens

de montagem ou assembly e as linguagens de alto nível. Estas linguagens

facilitaram a construção de programas, documentações e manutenção dos

mesmos.

Apesar das melhorias e facilidades proporcionadas por estas linguagens, o

código fonte gerado por estes utilitários, não permitiam a execução direta

pelo processador. Para isso, estes códigos precisavam da conversão de sua

representação simbólica para a linguagem de máquina. Esta conversão era

realizada por um utilitário chamado de tradutor.

O módulo gerado pelo tradutor é chamado de módulo-objeto. Dependendo

do tipo de programa-fonte, existem dois tipos diferentes de tradutores que

geram módulos-objeto: montador e compilador.

O montador é o utilitário capaz de traduzir um programa-fonte em linguagem

de montagem para um programa-objeto não executável (módulo-objeto).

19

Page 20: Elementos de hardware e so tware · 2020-03-07 · Objetivos Conhecer a arquitetura básica de computadores. Descrever os principais dispositivos de entrada e saída. Compreender

O compilador é o utilitário que tem a função de gerar (dado um programa

escrito em linguagem de alto nível) um programa em linguagem de máquina,

não executável. Como exemplos de linguagens de alto nível estão: C, Pascal,

Cobol, Delphi, Java, entre outros. Os programas fonte, desenvolvidos nestas

linguagens podem ser portados entre computadores de diferentes fabricantes,

desde que existam padrões para a sintaxe da linguagem, permitindo assim o

desenvolvimento de aplicações independentes do equipamento. Na Figura 2.2,

é apresentado um resumo quando as funções de um tradutor, montador e

compilador.

Figura 2.2: Tradutor, montador e compiladorFonte: CTISM, adaptado de Maia, 2007

2.3.2 InterpretadorA função de um interpretador de código pode ser entendida como um tradutor

que não gera módulo-objeto. Durante a execução de um programa, escrito

em uma linguagem de alto nível, o interpretador traduz cada instrução e a

executa imediatamente. São exemplos de linguagens de alto nível do tipo

interpretadas: PHP, Basic, Perl, entre outras.

Nas linguagens interpretadas não existe a geração de um código-objeto, uma

vez que o código fonte escrito pelo desenvolvedor já é o próprio código a ser

interpretado. A desvantagem de tal método é o tempo gasto na tradução das

instruções de um programa toda a vez que este for executado.

2.3.3 LinkerO linker ou editor de ligação tem por objetivo gerar, dado um ou mais módu-

los-objetos, um único programa executável. Entre suas funções básicas estão

a resolução das referências simbólicas existentes entre os módulos e a reserva

de memória para a execução do programa.

20

Page 21: Elementos de hardware e so tware · 2020-03-07 · Objetivos Conhecer a arquitetura básica de computadores. Descrever os principais dispositivos de entrada e saída. Compreender

O linker também é responsável pela tarefa de relocação (determinar a posição

de memória na qual o programa será carregado para execução).

Figura 2.3: Função do linkerFonte: CTISM, adaptado de Maia, 2007

2.3.4 LoaderUm loader tem a função, junto ao sistema operacional, de carregar na memória

principal um programa a fim de que o mesmo possa ser executado. O loader pode ser classificado como do tipo absoluto ou relocável, dependendo do

procedimento de carga utilizado.

Para código executável do tipo absoluto, o loader necessita saber o endereço

de memória inicial e o tamanho do módulo para realizar o carregamento,

dando início ao processo de transferência do programa da memória secundária

para a memória principal.

Quanto ao código relocável, o programa pode ser carregado em qualquer

posição de memória, sendo o loader responsável pela relocação no momento

do carregamento.

2.3.5 DepuradorO desenvolvimento de programas é uma tarefa que exige além de raciocínio

lógico apurado um bom conhecimento da linguagem de programação que se

está utilizando na construção de um determinado programa. Porém, nenhum

destes itens garante que não podemos ter problemas quanto a erros de sintaxe

e lógica na escrita de nossos códigos.

Para auxiliar nesta tarefa de identificação e correção de erros, temos um utilitário

depurador ou debugger. O depurador permite ao programador acompanhar

21

Page 22: Elementos de hardware e so tware · 2020-03-07 · Objetivos Conhecer a arquitetura básica de computadores. Descrever os principais dispositivos de entrada e saída. Compreender

toda a execução de um programa (do início ao fim) permitindo detectar erros

em sua lógica. Este utilitário oferece recursos, tais como:

• Acompanhar a execução de um programa, linha a linha de código.

• Permitir a alteração e visualização do conteúdo de variáveis.

• Definir pontos de parada dentro do programa (conhecidos como break-points), permitindo que durante a execução do programa o mesmo pare

nestes pontos.

22