Upload
jessica-marques
View
1.173
Download
2
Embed Size (px)
Citation preview
MÓDULO II – HARDWARES
Unidade I: Introdução ao Hardware
O QUE SE ESPERA
O objetivo desta proposta de estudo, é que ao final dessa jornada, você compreenda os conceitos e
fundamentos relacionados a alguns modelos de computadores modernos e quais são os seus principais
componentes e processos. E, assim, possa entender que, ao contrário do que pregam os comerciais da mídia,
o desempenho de um computador é resultado de uma conjunção de fatores, e não uma consequência direta
da velocidade do processador.
DE ONDE PARTIMOS
Aqui, partimos da visão de que, o que se esconde dentro da maioria dos computadores pessoais, nada mais é
que um grupo de componentes eletrônicos integrados, dispostos sobre um grande circuito denominado
placa-mãe, que os interconecta e permite que se coordenem a fim de executar determinado processamento.
Unidade II - Processador
PROCESSADORES
Você já deve ter notado a ênfase que é dada, nas lojas e na
mídia em geral, ao processador, quando o assunto é
modelos de computadores. De todos os componentes de um
computador, o prcessador, sem dúvida, é aquele sobre o
qual mais fábulas foram criadas ao longo da história.
Fabricantes de microeletrônicos e, sobretudo, o comércio
varejista, frequentemente se valem da falta de compreensão
a respeito do funcionamento de tais componentes, a fim de
promover suas vendas.
Vale dizer que, embora existam processadores destinados
aos mais diversos fins, e que sejam empregados, em parte
considerável dos eletrodomésticos produzidos
recentemente, a maioria das pessoas se acostumou a
associar o termo a um tipo bastante específico de processador: os microprocessadores de propósitos gerais.
São eles, exatamente, que propomos aqui, como foco da atenção.
CONTEÚDO COMPLEMENTAR
PROCESSADORES AMD
Clique aqui http://www.youtube.com/watch?v=MV20Sr1n2CI
e assista o vídeo para entender um pouco mais sobre a arquitetura dos
processadores AMD.
GERADORES DE CLOCK
Observe ainda, que intimamente associado à unidade central de
processamento, existe um circuito bastante simples,
denominado gerador de clock, responsável pelo envio
periódico de sinais elétricos ao barramento frontal, que ditarão
a frequência de trabalho do processador.
O circuito gerador de clock é bastante simples. Isso é verdade,
e ele não seria digno de maiores detalhes, não fosse a
criatividade da indústria de publicidade: quando um ator de
comercial de TV anuncia a venda de um “computador com processador de 1 giga”, ele inconscientemente
faz referência à frequência de cerca de 1 bilhão de vezes por segundo, com que o gerador de clock envia
pulsos elétricos ao processador através do barramento frontal, e que o processador executa instruções
contidas na memória RAM.
Então, você fica imaginando... Que frequências como aquelas, em que trabalham o gerador de clock e a
unidade central de processamento, ao primeiro contato podem parecer muito elevadas, e na realidade foi
exatamente nisso que elas se transformaram. Sob o prisma da física, chegou-se ao ponto em que o aumento
sistemático da frequência de operação do clock, como resultado da busca incessante por melhoria de
desempenho, encontrou como limitante, a velocidade de propagação de impulsos eletromagnéticos.
Isto em virtude de que, voltando ao exemplo do processador de 1 giga, a onda elétrica vinda do gerador de
clock (resultante da criação momentânea de um campo magnético sobre um condutor metálico típico) teria
que desencadear todas as alterações de estados nos circuitos afetados pela respectiva instrução, antes da
ocorrência do próximo impulso, ou seja, em um intervalo de aproximadamente um bilionésimo de segundo.
Considerando, de um modo geral, que a velocidade de propagação de radiações eletromagnéticas se situa na
faixa dos 300.000 km/s, não é complicado perceber que na nossa máquina de exemplo, entre dois sinais
consecutivos de clock, a malha disponível para o fluxo da corrente, obrigatoriamente, deveria possuir alguns
poucos centímetros, sob a pena de que, caso assim não o fosse, um sinal de clock se sobreporia ao anterior, e
fatalmente causaria a corrupção do estado intermediário, armazenado nos circuitos.
A CORRIDA PELO DESEMPENHO
É importante saber que, como consequência, a
corrida pelo aumento de desempenho implicou
na aceleração da corrida pela integração de
componentes. Esta última trouxe à tona um
problema antigo, mas que ainda não havia
recebido a atenção necessária, da indústria de
microeletrônicos: o da degradação da energia
elétrica em forma de calor. À medida que as
técnicas de miniaturização foram sendo
empregadas na fabricação de componentes
eletrônicos, menores se tornaram as suas
capacidades de trocar calor com o meio, uma
vez que a facilidade com que dois corpos
trocam calor é proporcional, entre outros fatores, à dimensão da superfície que os separa, o que fazia, e de
certa forma ainda faz, com que o calor dissipado pela corrente que fluía através deles, se acumulasse e, em
casos extremos, danificasse o componente.
DISSIPADORES DE CALOR
Agora observe na figura ao lado, que certos circuitos não periféricos, a exemplo da unidade central de
processamento, o northbridge, o southbridge, e processadores gráficos em geral, são especialmente
penalizados pelo problema da dissipação excessiva de calor. E não é por outra razão, que dificilmente um
iniciante consegue localizá-los dentro de um computador aberto, senão por ter se tornado prática comum
associá-los a dissipadores: estruturas usualmente fabricadas com cerâmica ou metal, possuidoras de alto
poder de condutibilidade térmica, e que por tal, favorecem o fluxo do calor dissipado.
O QUE É UMA INSTRUÇÃO?
Um programa de computador é um arquivo que contém uma sequência de instruções destinadas ao
processador. Enquanto o programa não está sendo executado, o arquivo fica armazenado no disco rígido da
máquina. No momento em que é executado - o que ocorre, por exemplo, quando você dá um duplo clique
sobre o ícone que o representa - as instruções do programa são copiadas para a memória RAM e enviadas
uma a uma para o processador. O processador, então, as interpreta e executa as operações necessárias. Os
processadores modernos suportam uma variedade de instruções, e elas podem representar diversos conceitos
distintos: somar dois números, pintar um pixel na tela com uma cor específica, obter ou enviar informações
para dispositivos periféricos, são alguns exemplos.
Processadores podem ser vistos como operários que trabalham seguindo as ordens contidas em um plano de
atividades disponibilizado por um chefe, aqui chamado de programador de computador. Assim como na vida
real, a relação de trabalho entre um operário e um chefe costuma ser estipulada por um contrato, também
entre processador e programador há regras que devem ser obedecidas. Assim, um processador reconhece
apenas um conjunto específico de instruções, de forma que qualquer plano que o ordene executar um tipo
diferente de atividade, será interrompido bruscamente. Isto pode acontecer, por exemplo, em virtude da ação
de um programador descuidado, ou quando as instruções contidas em um programa são corrompidas por um
vírus.
CICLO DE EXECUÇÃO DE INSTRUÇÕES
Por outro lado, podemos perceber que a existência do ciclo de processamento pouco nos diz a respeito da
organização interna do processador. A verdade é que existem, dentro do núcleo da maioria dos
processadores modernos, três repartições, sendo que cada uma, encontra-se envolvida em uma ou mais
etapas do ciclo fetch-decode-execute, em português, busca-decodificação-execução. De tal modo que a
busca e a decodificação de instruções são relegadas a uma repartição denominada unidade de controle, ao
passo que a etapa seguinte, de execução, é atribuída à unidade lógica e aritmética. Para melhor compreensão
do que comentamos aqui, sobre essas estruturas, o convidamos a observar a ilustração no diagrama de
blocos da figura.
REGISTRADORES
Vale observarmos que, durante os instantes que sucedem a busca e precedem a decodificação, certos dados
referentes à instrução a ser executada são temporariamente armazenados em unidades de memória
denominadas registradores, com funções semelhantes aos módulos RAM, mas com uma distinção
importante: registradores são mantidos internamente aos processadores e, por esta e outras razões, os dados
que encerram podem ser acessados em muito menor tempo. Esse recurso é considerado extremamente
importante, quando se percebe o quanto é difícil a tarefa de manter a sincronia e o desempenho do sistema
como um todo.
Bom, imaginamos que até aqui, você já deve ter uma ideia um pouco mais clara sobre o ciclo busca-
decodificação-execução de execução de instruções em um processador moderno e suas estruturas
relacionadas. No entanto, gostaríamos de lhe informar que ainda existem outros personagens envolvidos, e
que a partir de agora, eles também entrarão em cena. Imagine o seguinte cenário: você acabou de voltar de
uma festa, e lá, você tinha tirado um monte de fotos com sua câmera fotográfica digital. Chegando em casa,
você conecta a câmera no computador e para sua surpresa... Você percebe que esqueceu de usar o flash em
todas as fotos! Elas estariam perdidas, e você, com certeza, apagaria todas elas. Mas por mera coincidência,
você se lembra de um programa que tinha instalado alguns dias antes, no seu computador, para edição de
imagens. Nossa, que alívio! Hein? Então, você decide usar esse programa para alterar a luminosidade das
fotos e, embora o resultado não fique lá essas coisas, se formos comparar com uma foto tirada com flash,
pelo menos você consegue distinguir seus amigos nas fotos, e vai poder assim, guardá-las como recordação.
PROGRAMAS DE EDIÇÃO DE IMAGENS
Há recursos interessantes em programas de edição de imagens. Aliás, há muitos recursos interessantes neste
tipo de software. Mas uma das funcionalidades mais notáveis é que, processamentos como os de alteração da
iluminação de uma imagem possuem natureza repetitiva. Intuitivamente, como você deve saber, imagens
digitais são formadas por um conjunto de pontos denominados pixels. A única coisa que programas de
edição de imagens fazem, na maioria das vezes, é alterar as propriedades de cada um dos pixels que
compõem os arquivos sobre os quais eles operam. Então, é de se supor que as instruções do programa usadas
para se alterar a luminosidade de qualquer pixel de uma imagem, sejam exatamente iguais às instruções
usadas na alteração de quaisquer outros pixels da mesma imagem.
MEMÓRIA CACHE
Agora, já com esses outros personagens em cena, voltando ao contexto do ciclo de execução de instruções,
fica evidente o quanto seria trabalhoso se o processador acessasse, para cada pixel da imagem, a mesma
instrução da memória RAM. Será que ele não poderia simplesmente armazenar dentro de si, instruções que
fossem executadas repetidamente, evitando assim, acessar o barramento da memória e ter que esperar até
que os módulos RAM estivessem prontos para enviá-las? De fato, é exatamente isso o que ocorre dentro da
maioria dos processadores atuais. Essa região interna ao processador, onde são armazenadas instruções
repetidas, é denominada memória cache, e é justamente a capacidade de armazenamento dessas estruturas,
um dos fatores que mais contribuem para o desempenho de um processador. Isso se explica pelo fato de que,
independente do tipo de software, seja ele um programa de edição de imagens, um navegador, ou um player
de vídeo, a ocorrência repetitiva de instruções idênticas é bastante comum.
CONTEÚDO COMPLEMENTAR
ARMAZENAMENTO NA MEMÓRIA CACHE
Cique nos links abaixo para entender como funciona o armazenamento em cache.
http://www.youtube.com/watch?v=MPTafFFnQJA – Parte 1
http://www.youtube.com/watch?v=jAwoT9vgSzo – Parte 2
CONCLUSÃO
Poderíamos detalhar mais o funcionamento das memórias cache, mas para o momento, consideramos como
suficiente que você entenda as razões que as tornam importantes. Este conhecimento, aliado às informações
que serão apresentadas nas seções seguintes, permitirão que você tome a decisão mais sensata no momento
em que precisar adquirir o seu próprio computador.
Unidade III – Memória RAM
RECAPITULANDO
Como vimos nas etapas anteriores, um resultado importante do aumento da frequência de trabalho do
processador foi o encurtamento das distâncias que separam os componentes, de modo que o intervalo de
tempo entre dois pulsos consecutivos de clock fosse suficiente para que a corrente elétrica caminhasse pelo
circuito. O passo que seguiu essa técnica foi manter ainda mais próximos do processador, aqueles
componentes envolvidos em cargas de trabalho pesadas, permitindo que pudessem se comunicar através de
barramentos velozes. Assim surgiu o northbridge.
MEMÓRIA RAM E CONTROLADOR DE MEMÓRIA
Talvez você não tenha vivido essa experiência, mas na época em que o vídeo cassete era o sonho dos
consumidores, não era raro ser surpreendido com avisos solicitando que, antes de se devolver uma fita VHS
alugada, deveria rebobiná-la. Caso você não tenha passado por isso, rebobinar significa retroceder o rolo de
filme contido dentro da fita, até o início, deixando-a preparada para o próximo cliente da locadora que
tivesse interesse em alugá-la. Esse procedimento era necessário porque, usando os recursos de um vídeo
cassete, não era possível partir de uma cena do filme e avançar instantaneamente para outra cena qualquer.
Por essa razão, fitas de vídeo cassete são enquadradas como dispositivos de armazenamento de acesso
sequencial.
Agora, uma desvantagem própria dos dispositivos de armazenamento de acesso sequencial, reside no fato de
que, quanto maior sua capacidade, maior o tempo perdido na localização de determinada informação. Essa
limitação foi responsável pela mobilização da indústria eletrônica com vistas à invenção de dispositivos de
armazenamento de acesso randômico, que oferecem velocidades constantes de acesso, independentes,
portanto, da localização do dado em seu interior.
CONTEÚDO COMPLEMENTAR
COMO FUNCIONA A MEMÓRIA RAM
Clique nos links abaixo para ver vídeos no Youtube e entender melhor o funcionamento da memória RAM.
http://www.youtube.com/watch?v=mYbYGFWeG_Y - Parte 1
http://www.youtube.com/watch?v=3AJ3_q0Yo28 - Parte 2
http://www.youtube.com/watch?v=V19chQm8s0c - Parte 3
DISPOSITIVOS DE ARMAZENAMENTO DE ACESSO RANDÔMICO
Clique abaixo para assistir a vídeo aula da evolução dos dispositivos de armazenamento.
http://www.youtube.com/watch?v=bp_Bu0sd9l8
E SE NÃO HOUVESSE CONTROLADORES DE MEMÓRIA?
Você pode observar, como exemplificado no vídeo, que durante o ciclo busca-decodificação-execução, ao
fazer uma busca em RAM por uma instrução, basta ao processador se comunicar com o controlador e
solicitar a instrução contida no endereço 1000, ou 20.000 ou qualquer que seja a localização na sequência de
endereços. Portanto, não há necessidade de informar precisamente em quais módulos e chip ela se encontra.
Então, se o plano sair como combinado, alguns bilionésimos de segundo depois de feita a solicitação, o
processador terá “em mãos” o dado requerido.
O GARGALO DE VON NEUMANN
Como você pode perceber, até aqui, preocupamos em enumerar as cenas da peça onde atua a memória
RAM, mas foram poucas as intervenções orientadas à apresentação de tais dispositivos como componentes
independentes. A verdade é que o desconforto histórico causado pelo descompasso existente entre memória
e processador (o que é apresentado, no vídeo ao lado, como Gargalo de Von Neumann) gerou uma variedade
de modelos tão diversificada que sua apresentação só poderia soar coerente se feita após a exposição de seu
uso.
Sendo assim, vale ressaltarmos que, do ponto de vista taxonômico, as referências anteriores à memória
RAM foram pouco precisas. A rigor, memórias RAM não compreendem um único tipo de dispositivo
eletrônico, mas uma variedade inteira. Você gostaria de saber em decorrência do quê, não é mesmo? Bom,
elas, corriqueiramente, são classificadas de acordo com critérios referentes a certas características de seus
módulos, como: encapsulamento, dinamicidade e volatilidade. Vamos analisar cada um deles.
CONTEÚDO COMPLEMENTAR
ARQUITETURA DE VON NEUMANN
Clique abaixo e veja o video de alunos do curso de Engenharia da Computação da UPE/POLI sobre a
Arquitetura de Von Neumann.
http://www.youtube.com/watch?v=IfbU5ZxyPDM
ENCAPSULAMENTO
Mediante o critério do encapsulamento, classificam-se os dispositivos de memória RAM em três grupos
distintos: SIMM, DIMM e RIMM. Na prática, esse critério poderia ser relevante, se durante a corrida na
disputa pela aceitação do mercado, a combinação de desempenho e o preço acessível das memórias DIMM
não tivesse conferido a elas tamanha vantagem sobre os modelos concorrentes. Passada essa fase da
competição, tudo o que restou foram anedotas sobre as memórias SIMM, referentes a tempos em que,
quando não instaladas aos pares, impediam que o computador sequer fosse ligado. Ainda, associada à beleza
desses dissipadores metálicos que, ao mesmo tempo em que cobriam os chips dos módulos RIMM e
ocultavam o preço exorbitante com que eram vendidos, também revelavam o desfecho menos ambicioso,
restrito a nichos específicos, daquela tecnologia por vezes considerada a antecipação de uma receita de
sucesso para a aceitação em massa que ela jamais obteve.
Observe a Figura, nela há representações dos três formatos de encapsulamento discutidos. As memórias
RAM dos tipos SIMM e DIMM são identificadas, respectivamente, por perfurações circulares e
semicirculares contidas nas extremidades de seus módulos. Veja que a identificação das memórias RIMM e
seus chamativos dissipadores, não apresentam dúvida.
VOLATILIDADE
O critério da volatilidade, como o próprio nome sugere, divide as memórias RAM em dois grupos: o das
memórias RAM voláteis, representado por dispositivos cujos conteúdos dependem de realimentação elétrica;
e o grupo das memórias RAM não voláteis, cujos conteúdos independem de realimentação. Entretanto, é
importante que você esteja atento ao fato de que o uso popular da expressão “memória RAM” tratou
injustamente de consagrar as RAM voláteis como as únicas representantes da classe.
VOLATILIDADE, NA PRÁTICA
No exemplo apresentado no vídeo anterior, tratamos das RAM voláteis. Agora, focaremos as memórias
RAM não voláteis que têm ganhado notícia, pois elas são o meio mais difundido de armazenamento do
conteúdo de players de áudio e vídeo portáteis. Podemos ainda, destacar outro emprego de fundamental
importância e menor visibilidade da variedade não volátil das memórias RAM, que é o que consiste na
fabricação de circuitos que contêm um tipo híbrido de hardware e software denominado BIOS. Este assunto
será discutido mais adiante, em uma seção à parte.
DINAMICIDADE
Continuando a nossa discussão sobre a taxonomia das memórias RAM, chegamos à dinamicidade, o mais
importante dos três critérios e que, como sugere a palavra, responde pela divisão das RAM em dois grupos
distintos: as memórias estáticas e as memórias dinâmicas.
As memórias RAM estáticas, comumente denominadas SRAM, são compostas por uma infinidade de
circuitos denominados flip-flops. Esses circuitos são portadores de certas propriedades que a manutenção de
determinados regimes de tensão elétrica, em seus terminais de entrada, gera, em seus terminais de saída,
correntes que podem ser interpretadas como os dois estados, 0 e 1, correspondentes aos possíveis valores da
menor unidade de informação digital: o já mencionado bit.
As memórias RAM dinâmicas, comumente denominadas DRAM, devem sua estruturação a um conjunto
muito numeroso de capacitores, cada um dos quais com potencial de representar os dois estados de um bit;
bastando para tanto que esteja eletrizado ou descarregado.
Assim como os nossos corpos que constantemente se eletrizam e perdem a carga elétrica resultante do atrito
com o ar, a carga elétrica repassada aos capacitores que compreendem os módulos de memória DRAM
também é perdida no ambiente em que se encontram. Por conta disso, os módulos de memória fabricados
com esta tecnologia precisam ser periodicamente realimentados. Esta tarefa repetitiva de realimentação
elétrica de módulos de memória DRAM é mais conhecida pelo termo em inglês refresh, e é mais uma das
responsabilidades que fazem do controlador de memória um dos componentes fundamentais dos
computadores modernos.
DINAMICIDADE E MEMÓRIAS DDR
Vale destacarmos que as memórias DRAM são tradicionalmente caracterizadas por trabalhar sob o ritmo do
circuito gerador de clock associado ao barramento frontal. Diz-se, por isso, que elas são memórias
“síncronas”. Os modelos mais comercializados, atualmente, de módulos DRAM, são memórias síncronas,
capazes de operar a frequências muito altas e com larguras de banda consideráveis. Ao anunciá-las, a
indústria exibiu mais uma vez sua preferência pelas siglas, batizando-as de DDR.
CONCLUSÃO
Discutimos bastante a respeito das memórias de acesso randômico, mas mesmo assim, não esgotamos esse
assunto. Nem era essa a nossa intenção, pois a cada dia novos modelos, baseados em novas tecnologias, são
lançados no mercado e, a quantidade de informações que trazem consigo, torna-se inesgotável, até mesmo
para quem se dedica exclusivamente ao estudo da área. Nosso intuito foi apresentar uma imagem mais coesa
desse campo, baseada na identificação de grupos de componentes com características semelhantes e na
análise das aplicações desses grupos. Esperamos que assim, você tenha uma visão mais clara dessa questão
e, nas mãos, a capacidade de fazer escolhas que, na prática, sejam mais adequadas.
Unidade IV – Componentes Gráficos
COMPONENTES DE PROCESSAMENTO GRÁFICO
Enquanto falávamos sobre o ciclo de execução de instruções, ressaltamos a importância do controlador de
memória ao descrever sua principal responsabilidade: oferecer para o restante dos componentes do sistema
uma representação menos complexa da memória RAM, de forma que seu conteúdo pudesse ser acessado
através de endereços lineares, ao invés da abordagem baseada em módulos e chips. De forma análoga à
maneira com que o controlador de memória reduz a complexidade inerente ao acesso à memória RAM, um
circuito denominado controlador de vídeo simplifica o acesso ao conteúdo exibido no monitor de vídeo. Mas
de que forma? Você poderá encontrar as respostas a esta e outras questões nesta seção.
TUBOS DE RAIOS CATÓDICOS
Até recentemente, a maior parte dos modelos de monitores disponíveis no mercado era do tipo CRT.
Monitores CRT, como ilustra a figura, em suma, são constituídos por uma ampola de vidro forrada
internamente por um material luminescente, no interior da qual se aloja um dispositivo eletrônico
denominado tubo de raios catódicos, capaz de emitir feixes de elétrons. Por meio da aplicação de um campo
magnético sobre os feixes de elétrons, é possível desviar a direção de suas trajetórias, fazendo-os chocar em
pontos e instantes específicos da região interna da ampola, iluminando-os, assim, com intensidades e cores
desejadas.
MEMÓRIA DE VÍDEO
Os estímulos elétricos responsáveis pela ativação do campo magnético que causa a deflexão dos feixes
emitidos pelo canhão de elétrons, como descrita anteriormente, é uma das mais maiores responsabilidades de
um componente mencionado no início desta unidade: o controlador de vídeo. A região da memória RAM
acessada a cada nova varredura pelo controlador de vídeo, que contém as cores com as quais devem ser
pintados os pixels que compõem a imagem da tela, é denominada memória de vídeo ou framebuffer.
FLICKERING
A capacidade de retenção de energia do material luminescente, entretanto, é extremamente reduzida; o que
torna o fenômeno da irradiação luminosa dos minúsculos pontos que compõem a imagem na tela,
incrivelmente efêmero. Imediatamente após terem sido energizados, sua luminosidade começa a diminuir; e
não seriam necessários mais do que alguns poucos décimos de segundos para que o decaimento fosse
percebido por qualquer pessoa. Tal limitação foi, em parte, resolvida por meio de uma ideia engenhosa:
periodicamente, sob uma frequência configurável denominada taxa de refresh, CRTs varrem a superfície
interna de sua tela, reenergizando os pontos que compõem a imagem exibida. Diz-se, em parte, porque
monitores incapazes de operar sob taxas de refresh mais altas, geralmente os mais baratos, causam um
desconforto visual típico, decorrente de um fenômeno sensorial denominado flickering, caracterizado pela
sensação de cintilância do conteúdo da tela.
TEARING
Você já sabe que um game altera o conteúdo da memória de vídeo, e que esta última é acessada pelo
controlador de vídeo de modo que ele possa instruir o monitor sobre como colorir os pixels da tela. Imagine,
então, se a memória de vídeo dos computadores fosse dividida em duas áreas distintas: uma referente às
cores dos pixels contidos na metade superior da tela, e outra referente às cores dos pixels da metade inferior.
Suponha também que a varredura feita pelo controlador de vídeo pudesse ser dividida em duas etapas: uma
para cada região da tela. Nestas circunstâncias, seria possível ocorrer o seguinte:
O fato comentado anteriormente, de o controlador de vídeo, ao completar a varredura, acessar a área da
memória de vídeo referente à metade inferior da tela e instruir o monitor a exibir um fragmento de imagem,
é denominado tearing, e é responsável pela frustração dos mais diversos tipos de usuários: desde os amantes
de games, para os quais as menores inconsistências visuais são razões suficientes para se deixarem irritar;
até usuários comuns, geralmente ansiosos por tirar proveito das experiências que o mercado publicitário não
teme por garantir. Embora confundido com o flickering, que é causado por taxas de refresh muito baixas, o
tearing resulta, na maior parte das vezes, da imperícia de desenvolvedores de software que ignoram o
funcionamento interno das máquinas, especialmente no que diz respeito à maneira com que seus
componentes se comunicam.
DOUBLE BUFFERING
Controladores de vídeo, sempre que concluem a varredura da última linha da tela, notificam tal evento aos
programas interessados; que por sua vez, devem interpretar tal notificação como a chegada do momento
mais propício para a alteração do conteúdo da memória de vídeo. Ocorre que determinados tipos de software
recorrem a cálculos computacionais tão intensivos, que mesmo que trabalhassem de forma coordenada com
o controlador de vídeo, produziriam flickering, caso a geração fosse feita diretamente sobre a memória de
vídeo. A solução empregada por tais softwares, na classe dos quais se enquadra, a título de curiosidade, boa
parte dos games modernos, reside em gerar a imagem em uma segunda área da memória RAM e transferi-la
de uma só vez, e no instante adequado, para a memória de vídeo. Esta técnica é conhecida por double
buffering. A política de intercomunicação da qual participam, neste caso, o controlador de vídeo e outros
componentes do sistema, é denominada interrupção, e será um dos assuntos da próxima unidade.
PIXELS
Um tubo de raios catódicos, a bem da verdade, desencadeia efeitos luminescentes de uma única cor;
vermelha, verde ou azul. Assim, a representação convincente do espectro de luz visível, por uma limitação
física, prescinde da atuação conjunta de três tubos, incumbidos da luminescência simultânea de uma tríade
de pontos, que em conjunto compõem um pixel na tela. Essa tríade que forma um pixel, normalmente se
encontra em uma disposição triangular equilateral e cada um dos pontos ocupa um dos vértices do triângulo.
A distância entre os centros de dois pontos de mesma cor pertencentes a pixels adjacentes é denominada dot
pitch, e configura um fator crucial para a exibição nítida de imagens. Com isso, normalmente, quanto menor
o dot pitch, melhor e também mais caro será o monitor.
TAXA DE CONTRASTE
A taxa de contraste de um monitor de vídeo, por exemplo, nada mais é que uma medida indireta da diferença
de luminosidade existente entre o ponto mais brilhante que o dispositivo é capaz de exibir, e o ponto menos
brilhante; quaisquer que sejam as cores desses pontos. E a importância dessa taxa de contraste está
diretamente relacionada à fisiologia humana como, por exemplo, a da sensibilidade dos nossos olhos às
variações de luminosidade que é ainda maior que nossa capacidade de distinguir várias escalas de cores.
Assim, quanto maior a taxa de contraste de um monitor, maior será a sua fidelidade na representação do
brilho de uma imagem, e mais caro será seu preço. Trataremos dessa questão da fisiologia do olho humano
mais adiante, quando formos discutir certas técnicas computacionais para compactação de imagens.
RESOLUÇÃO DO VÍDEO
Quando tratamos do princípio de funcionamento dos monitores CRT, vimos que a imagem formada na tela é
composta por um conjunto de pontos, agrupados em tríades denominadas pixels. Os pixels, por sua vez,
encontram-se dispostos na tela sob a conformação de uma matriz semelhante à de um tabuleiro de xadrez,
com duas significativas diferenças: primeiro, há muito mais pixels na tela de um monitor do que há casas em
um tabuleiro; e segundo, o número de pixels pode ser alterado para valores pré-estabelecidos. Assim, a
resolução máxima de um monitor de vídeo indica a maior quantidade de pixels, consideradas as direções
horizontal e vertical, que podem ser usados para se representar imagens na tela. E da mesma forma que um
pintor, por mais habilidoso que seja, será incapaz de pintar um retrato pequenino com um pincel grande de
cerdas espessas, um monitor não conseguirá exibir imagens detalhadas com precisão satisfatória em áreas
muito reduzidas, tarefa a que seria submetido caso sua resolução tivesse sido alterada para valores pequenos,
em que os centros dos pixels adjacentes se encontram mais distantes uns dos outros. Como você já deve
imaginar, quanto maior a resolução máxima de um monitor de vídeo, maior será seu preço.
A METÁFORA DO DESKTOP
Em meados da década de 80, quando a indústria de microcomputadores dava seus primeiros passos em
direção à tentativa de popularização da metáfora do desktop, tão profundamente dependente das interfaces
gráficas de interação, surgiu a necessidade da adoção de padrões que pudessem nortear o desenvolvimento
das tecnologias envolvidas. Um desses padrões foi denominado VGA, e tinha por objetivo definir recursos
mínimos de hardware, que permitissem alavancar a disseminação das interfaces gráficas. A partir de então,
aos fabricantes de monitores de vídeo interessados no usufruto das óbvias vantagens advindas da associação
dos nomes de seus produtos ao de um padrão tão requisitado quanto o VGA, bastava equipá-los com
conectores baratos e telas requintadas para a época: capazes de exibir imagens coloridas sobre uma matriz
que deveria possuir 640 pixels na largura e 480 pixels na altura.
O PADRÃO VGA
Do ponto de vista histórico, alguns fatos referentes ao desenvolvimento do
padrão VGA parecem irônicos. A qualidade superior dos monitores
compatíveis com aquele padrão foi, sem dúvida alguma, essencial para sua
permanência no mercado; tal afirmativa representa a conclusão a que se chega
depois de considerada como são voláteis as tecnologias empregadas na criação
de computadores pessoais. O irônico, no entanto, é que a história tratou de
conceder créditos não à qualidade das telas de vídeo VGA, intangível por
natureza, mas sim ao conector barato que as ligavam ao gabinete do
computador. E tamanho foi o desequilíbrio nessa concessão, que ainda hoje,
não é exagero dizer que a maior parte das pessoas ignora completamente a
existência da sigla VGA, embora saiba que o monitor de vídeo, a que tem acesso, está ligado ao computador
por meio de um cabo decorado, em uma de suas extremidades, por um belo conector azul.
Ainda mais surpreendente é o fato de que, mesmo que não tenham acesso a
computadores pessoais, essas pessoas, muito provavelmente, têm contato direto
com telas compatíveis com o padrão VGA. A matriz de 640 por 480 pixels que
muitos consideraram fadada ao esquecimento, hoje em dia atua como coadjuvante
no épico da convergência tecnológica, equipando telefones celulares, câmeras
fotográficas digitais e handhelds dos mais variados modelos. Elas, enfim, voltaram
a ser o canal por meio do qual a informação flui entre homens e máquinas.
CONECTIVIDADE
Tecnologias usadas na construção dos componentes de ligação entre um computador e um monitor de vídeo
compreendem o fator da conectividade; e como já era de se imaginar, são responsáveis, em parte, pelo preço
destes equipamentos. Recentemente, diversas tecnologias de conexão foram criadas; a maioria das quais,
inventadas com o propósito único de reverter certas limitações impregnadas no padrão VGA. A seguir,
analisaremos brevemente três destas limitações, e também as respostas dadas a elas pela indústria de
microeletrônicos: os padrões de conexão DVI e HDMI.
INTERFERÊNCIA ELETROMAGNÉTICA
No início do século XX, o físico dinamarquês,
Hans Christian Oersted, fez uma descoberta interessante. Ele percebeu que a agulha de uma bússola, que em
condições normais se mantinha alinhada com o campo magnético terrestre, sofria uma deflexão sempre que
um fio metálico presente em suas proximidades era percorrido por uma corrente elétrica. A explicação dada
por Oersted, para tal fenômeno, se baseava na teoria de que o movimento ordenado de elétrons através do
condutor, provocava em suas vizinhanças, o aparecimento de um novo campo magnético, cuja interação
com o campo magnético terrestre era responsável pelo movimento da agulha. Pela primeira vez na história,
fenômenos elétricos puderam ser formalmente associados a fenômenos magnéticos.
O PADRÃO DVI
Em dispositivos cujo aproveitamento da corrente elétrica se dá apenas no nível
térmico, a exemplo de chuveiros e ferros de passar, a presença de ruídos na
corrente é absolutamente desprezível. Entretanto, dispositivos eletrônicos mais
refinados, como é o caso de computadores modernos, se valem de mecanismos
de sincronia bastante precisos para atribuição de significado aos sinais
transportados pela corrente elétrica. E tamanha é a delicadeza dessa operação,
que ruídos mínimos no sinal são capazes de alterar seu significado. O padrão de
conectividade DVI foi criado, entre outras razões, como meio de se contornar
as limitações do padrão VGA inerentes a este quesito.
O PADRÃO HDMI
A tecnologia de conectividade HDMI foi desenvolvida por um consórcio
de empresas formado com o intuito de oferecer meios que suprissem as
demandas inerentes à transmissão digital de conteúdo audiovisual. Uma
preocupação secundária dos participantes do consórcio era a disseminação
de mecanismos que impedissem, ou ao menos dificultassem, a subversão
de direitos autorais digitais; o que se concretizou com a criação de um
padrão atrelado denominado HDCP.
A UNIDADE DE PROCESSAMENTO GRÁFICO
Para finalizar esta unidade, nos ateremos à análise de um componente de importância central dos
computadores pessoais modernos, o qual, até agora, apenas ousamos citar: a Unidade de Processamento
Gráfico, ou simplesmente GPU como sugere, em inglês, o nome que dá origem à sigla. Concomitantemente,
ainda seguindo a filosofia adotada no início deste curso, veremos como se dá a interdependência da GPU
com o restante do sistema e de que maneira eles se coordenam a fim de executar as tarefas que lhes são
cabidas.
A revolução causada pela invenção do desktop atuou como força aceleradora da convergência tecnológica, e
fomentou práticas que os pioneiros da informática sequer vislumbraram há menos de um século. Assim, a
compartimentalização da GPU em unidades funcionais distintas revela a motivação oculta por trás de sua
origem: primordialmente, processadores gráficos foram projetados como solução para as restrições de
desempenho provenientes do emprego dos computadores na realização de tarefas antes desempenhadas
apenas por dispositivos especializados. Usar a tela do computador para assistir vídeos de alta definição ou se
divertir com games de última geração tornou-se prática comum entre uma parcela significativa da
população. Mas, em termos práticos, que operações são essas das quais tanto se valem os ambientes de
desktop, a exibição de vídeos em alta definição e a execução de games? Vamos analisar, caso a caso, nos
slides a seguir.
OPERAÇÕES GRÁFICAS 2D
O termo ambiente de desktop trata de um estilo de interface de usuário encontrada atualmente por toda a
parte, baseada na metáfora do desktop, em que os softwares mais frequentemente usados e as configurações
mais comuns do sistema são dispostos de maneira que o usuário possa acessá-los com o mínimo de
dificuldade. Seguindo esta tendência, ambientes de desktop modernos fazem uso, por exemplo, de janelas
transparentes que permitem a visualização do conteúdo sobre o qual ela se posta. Em meados de 1980, dois
pesquisadores publicaram um artigo notável, em que fundamentaram teoricamente uma álgebra destinada à
representação de operações voltadas à composição digital de imagens.
Esse modelo matemático levou o nome de seus idealizadores, Thomas
Porter e Tom Duff; e tornou possível a simulação da transparência em
elementos de interface. Entretanto, a demanda computacional
associada à exibição de elementos transparentes, por anos a fio, atuou
como um estorvo à disseminação daquelas técnicas; e tamanho era o
comprometimento que causavam no desempenho dos processadores
de propósitos gerais, que só se tornaram prevalecentes com o advento
de componentes de processamento gráfico dedicados: as GPUs.
Além de operações de composição de imagens citadas acima, as engines 2D das GPUs modernas são
capazes de realizar uma infinidade de outras tarefas. É bem provável que ao menos uma vez você já tenha
usado seu computador para assistir vídeos em DVD. A depender da resolução usada na tela do seu monitor,
e obviamente da disponibilidade de uma GPU em sua máquina, sem que tenha se dado conta, você pode ter
visto não o vídeo contido no DVD, mas uma representação da versão íntegra, redimensionada a fim de
ocupar mais harmonicamente o espaço da tela. Os cálculos matemáticos usados no redimensionamento dos
quadros que compõem um vídeo são frequentemente relegados à GPU. Caso o vídeo tenha sido apresentado
com legendas, maiores ainda são as chances de que uma GPU tenha sido envolvida.
Isso porque os cálculos para exibição de caracteres, denominados algoritmos de rasterização de glifos,
também são computacionalmente pesados. Por esta mesma razão, as cores de fundo das janelas opacas do
desktop, em geral, são preenchidas pela GPU através de operações denominadas fill. E a ela, normalmente,
também cabe a tarefa da exibição dos ícones presentes na área de trabalho, e do cursor do mouse, ambas
executadas por intermédio de operações bit blit. De uma forma geral, uma operação gráfica é realizada por
meio de aceleração 2D sempre que sua execução envolve os recursos computacionais da engine 2D da GPU.
OPERAÇÕES GRÁFICAS 3D
De forma análoga, diz-se que quaisquer processamentos
executados com o auxílio da engine 3D de um processador
gráfico são realizados em regime de aceleração 3D.
Podemos ver a representação destas duas operações
através da interação ao lado. O mapeamento de texturas é
um procedimento muito comum em games modernos por
meio do qual uma imagem (textura) qualquer é aplicada
sobre um objeto tridimensional. Já a rotação consiste nos
movimentos que este objeto tridimensional é capaz de
realizar. Clique e arraste a textura até o cubo, aplicando-a
sobre ele, assim teremos uma textura mapeada em um cubo. Para rotacionar o cubo basta clicar no botão
“Girar o Cubo”. Mapeamentos de texturas e rotações no espaço, como você pode perceber, são
procedimentos bastante complexos do ponto de vista computacional; e são, frequentemente, delegados à
engine 3D de uma GPU.
Assim, finalizamos a quarta unidade do módulo Hardware. Nas próximas unidades trataremos dos
componentes de um computador pessoal moderno que se ligam ao processador através de barramentos
menos velozes.
Unidade V – Barramento de média velocidade
INTRODUÇÃO
A partir deste ponto, voltaremos nossa análise às
responsabilidades que são atribuídas aos componentes
periféricos de um computador pessoal. A nossa intenção é
oferecer uma visão realista das formas como esses
componentes se relacionam com os restantes e, assim, levá-lo
a perceber que o funcionamento de um computador moderno,
diferente da ideia que se tem, não se reduz apenas ao
entendimento de seus componentes centrais. Se um
computador pudesse ser visto como uma colcha de retalhos,
ou seja, fabricado com periféricos e fios que se cruzam e
entrecruzam, esta unidade certamente seria destinada ao
estudo das técnicas usadas para unir os componentes uns aos
outros.
MÉTODOS DE I/O
Os recursos de um computador que permitem a execução de operações semelhantes às citadas no vídeo
deste slide, por meio das quais é possível estabelecer uma troca de informações entre o processador e os
dispositivos periféricos, são denominados métodos de I/O, e representam um conceito-chave da computação
moderna. Denomina-se ainda operações de I/O as operações oferecidas por cada método. A seguir,
analisaremos mais detalhadamente três dos mais comuns métodos de I/O: I/O baseado em mapeamento de
porta, I/O baseado em mapeamento de memória, e I/O baseado em interrupção.
CONTEÚDO COMPLEMENTAR
MÉTODOS DE I/O
Neste vídeo podemos perceber de maneira bem ilustrada como as informações
transitam dentro dos computadores. Clique abaixo e assista!
http://www.youtube.com/watch?v=UZ14m_yVmO4
EXEMPLO DE I/O BASEADO EM MAPEAMENTO DE PORTA
Para tanto, analisemos com mais detalhes, através da ilustração, o primeiro exemplo citado há instantes
atrás. Sempre que você digita em um computador, imediatamente após cada tecla ser pressionada, um sinal
elétrico denominado
scan code contendo o valor da referida tecla, é enviado do teclado para um componente denominado
controlador de teclado, que normalmente se encontra afixado sobre a placa mãe. O controlador de teclado
armazena o valor da tecla em uma área de armazenamento temporário e, envia um sinal, avisando o
processador a respeito do evento. O processador, então, se comunica com o controlador de teclado de forma
a obter o valor da tecla digitada e, somente após, o exibe na tela.
I/O BASEADO EM MAPEAMENTO DE PORTA
A comunicação entre o processador e o dispositivo periférico, no caso em questão, representado pelo
controlador de teclado, é baseada no conceito de portas de I/O, que são valores numéricos associados a
alguns dispositivos periféricos conectados à máquina. Podemos dizer que o relacionamento das portas de I/O
com os dispositivos, ocorre de maneira semelhante à forma com que se relacionam números de telefones e
pessoas. Assim como é possível estabelecer contato com uma pessoa pelo seu número de telefone, também é
possível acessar funcionalidades, de alguns dispositivos, através da execução de uma variedade específica de
instruções, em conjunto, denominadas instruções de I/O, que tomam como parâmetro, um valor numérico
pré-estabelecido, correspondente a uma porta de I/O. O método de I/O propiciado por computadores que
oferecem suporte à execução de instruções de I/O, que a propósito compreendem a maior parte dos
computadores pessoais, é denominado I/O baseado em mapeamento de porta, ou simplesmente PMIO.
I/O BASEADO EM MAPEAMENTO DE MEMÓRIA
Um segundo método de I/O muito comum é denominado I/O
baseado em mapeamento de memória, ou MMIO.
Dispositivos periféricos projetados para oferecer suporte a
este método de comunicação mantêm vigilância constante
sobre as operações que envolvem o acesso à memória RAM;
reagindo de maneira específica sempre que ocorrem
alterações em áreas da memória RAM monitoradas por eles.
Você já deve ter notado que, nos instantes que sucedem
a inicialização de um computador, os elementos de
interação disponíveis para o usuário não são formados
de janelas ou botões. Até o momento em que o sistema
se habilita a exibir imagens, tudo o que se vê na tela são
caracteres brancos dispostos sobre um fundo preto. Diz-
se, por essa razão, que o computador opera em modo
texto logo após sua inicialização, e em modo gráfico a
partir desse momento. Sempre que é necessário exibir
um caractere em modo texto ou um pixel em modo
gráfico, é possível fazê-lo por meio da execução de
uma instrução que modifica uma região específica da
memória RAM, previamente reservada para esta função. Este é um exemplo típico de I/O baseado em
mapeamento de memória.
Como você já deve saber, os processadores pessoais modernos compreendem conjuntos enormes de
instruções. Embora todos eles sejam capazes de executar os mesmos tipos de processamentos, a
disponibilidade de instruções designadas especificamente para a solução de certos tipos de problemas é uma
conveniência valiosa para programadores de computadores. Computadores que fazem uso de processadores
capazes de lidar com diversidades grandes de instruções são enquadrados em uma categoria denominada
CISC, em contraponto aos computadores RISC.
I/O BASEADO EM INTERRUPÇÃO
O terceiro e último método de comunicação discutido aqui é denominado I/O baseado em interrupção.
Através desse método, um dispositivo periférico que necessita enviar dados para processamento, gera um
sinal elétrico denominado interrupção, direcionado ao processador, para notificá-lo a respeito da necessidade
de atenção. Como resposta, o processador interrompe imediatamente qualquer programa que esteja
executando e então atende a requisição do dispositivo periférico, obtendo dele as informações convenientes
e processando-as de maneira adequada. Ao final do atendimento a essa solicitação da requisição, o
processador retoma o programa interrompido como se nada tivesse acontecido. Observe que a iniciativa
relativa ao estabelecimento da comunicação, no caso do método de I/O baseado em interrupção, cabe
invariavelmente ao dispositivo periférico, ao passo que nos métodos de PMIO e MMIO, cabe ao
processador.
CONTROLADOR DE INTERRUPÇÕES
Uma questão, entretanto, precisa ser esclarecida: embora a
maioria dos computadores modernos conte com uma
diversidade imensa de dispositivos periféricos, seus
processadores contam apenas com alguns poucos pinos,
quando não um único, dedicados ao recebimento de
interrupções. E pelas mesmas razões que é preciso
coordenar os veículos que se dirigem a uma mesma rodovia,
vindos de estradas diferentes, também foi necessário
racionalizar o uso do pino de interrupções do processador.
Isso foi preciso, para que as interrupções advindas de
dispositivos diferentes, e mesmo aquelas vindas de um
mesmo dispositivo, não se chocassem umas com as outras.
A solução para esse problema tomou a forma de um componente eletrônico conhecido por controlador de
interrupções.
A figura ilustra um controlador de interrupções. A rigor, ele é constituído não por um, mas dois
componentes eletrônicos, denominado controlador mestre de interrupções e controlador escravo de
interrupções. Esses controladores são associados em cascata e mantidos em contato por um dos vários pinos
metálicos que os compõem. Cada um dos referidos pinos é identificado por um valor numérico e é reservado
para uso de um único dispositivo periférico. O controlador de interrupções mestre permanece conectado ao
pino de interrupções do processador, e tal é a organização deste conjunto, que qualquer interrupção gerada
por periféricos do sistema pode ser, seguramente, encaminhada para o processador.
EXEMPLO COMPLETO DE I/O
Voltando novamente ao exemplo do tratamento da interrupção gerada pelo pressionamento de uma tecla, e
nos valendo da figura do slide anterior, que indica que o pino de número 1 do controlador mestre de
interrupções é alocado para uso exclusivo do teclado, é possível descrever a situação ainda mais
detalhadamente. Assim, quando um usuário pressiona uma tecla, um sinal elétrico contendo a identificação
da tecla pressionada é enviado do teclado para o controlador de teclado, situado sobre a placa mãe. O
controlador de teclado, ao receber o sinal, gera uma interrupção que chega ao controlador mestre de
interrupções que, por sua vez, envia um sinal para o processador, informando-o acerca dos detalhes
referentes ao dispositivo periférico em questão. Ciente da natureza do periférico, o processador é capaz de
atendê-lo tomando as medidas adequadas; o que no caso do teclado implica na exibição, em tela, do
caractere associado à tecla pressionada.
CONTROLADOR DE INTERRUPÇÕES 8259
Assim, finalizamos a análise dos princípios
envolvidos na comunicação entre os componentes
de um computador. Certamente, ainda há espaço
para explorar mais o conteúdo apresentado.
Máquinas modernas, por exemplo, contam com
uma quantidade de dispositivos periféricos que
facilmente ultrapassa o limite imposto pela
disponibilidade de pinos do controlador de
interrupções, descrito nesta unidade. Além do que,
como já foi mencionado em outra ocasião, a maior
parte dos computadores pessoais, comercializados
atualmente, é equipada não com um, mas com
vários núcleos de processamento, encerrados em
um único revestimento cerâmico. Isso nos leva a crer que a carga resultante do tratamento das interrupções
vindas de um número grande de dispositivos, devesse ser distribuída igualmente pelos núcleos, para evitar
que alguns permanecessem sobrecarregados, ao passo que outros ficassem sem ter o que fazer. As soluções
para esses problemas foram asseguradas por meio de extensões implementadas sobre a estrutura básica do
controlador de interrupções, que culminaram no desenvolvimento de uma série de componentes que,
atuando em conjunto, são capazes de lidar com a diversidade atual de periféricos e processadores, da qual
todos nós temos nos beneficiado.
PIT, O TIMER DE INTERVALO PROGRAMÁVEL
No início do século XX, dois cientistas publicaram um estudo que
desvendou um dos grandes mistérios da medicina. Embora as
explorações acerca do funcionamento do corpo humano tivessem
alcançado resultados incríveis, até aquele momento ninguém havia
dado explicações que justificassem, de modo convincente, um
fenômeno muito simples: o batimento do coração. Pesquisadores já
haviam montado parte do quebra-cabeça, ao descreverem as
influências de determinados hormônios sobre a frequência cardíaca,
mas a razão direta das contrações do coração permanecia
desconhecida. A busca pela explicação perdurou até 1907, quando
Arthur Keith e Martin Flack anunciaram a descoberta de um
aglomerado de células denominado nódulo sinoatrial, disposto no
interior do músculo cardíaco, responsável pelo envio de sinais
elétricos que, em último caso, induziam a contração do miocárdio.
Do ponto de vista biológico, o batimento do coração faz parte de uma rede complexa de atividades orgânicas
que propiciam a homeostase - estado de equilíbrio fisiológico indispensável a todo ser vivente -, e que se
estendem desde as esferas macroscópicas, nas quais se situam, por exemplo, os movimentos peristálticos da
digestão, até as microscópicas, nas quais ocorre a transformação da energia contida nos alimentos que
ingerimos. Quando observado pelo prisma do processamento de informações, levando em conta sua relação
com o sistema nervoso central, entretanto, o batimento do coração pode ser visto como uma atividade de
suporte, imprescindível ao funcionamento do sistema nervoso central.
Por diversas vezes, você já deve ter tido a sensação de que vários programas são executados
simultaneamente em seu computador. Ouvir música enquanto navegamos na internet ou digitamos um texto
são práticas tão comuns, que nós sequer temos a noção de quanto são complexos os desafios escondidos por
trás das interfaces amigáveis de usuário. A bem da verdade, todo computador pessoal moderno faz uso de
um software bastante complexo, denominado sistema operacional, que tem como principal finalidade a
gestão dos recursos da máquina.
Linus-Ubuntu Windows Mac
Como você viu na unidade II deste módulo, o processador é um
dos recursos mais importantes de um computador e, por isso, o
sistema operacional deve buscar meios de utilizá-lo de forma
tão otimizada quanto possível, levando em conta os perfis das
cargas de trabalho a que eventualmente será submetido. Uma
maneira bastante eficiente de usar o processador de um
computador pessoal típico, consiste em promover uma
alternância de processamento entre os programas que o usuário
deseja executar ao mesmo tempo. Assim, desde que os cuidados
devidos sejam tomados, é possível executar o navegador de
internet durante uma fração muito pequena de segundos, pausá-
lo enquanto outros programas quaisquer são executados durante
intervalos de tempo semelhantes, e dar prosseguimento à
execução do navegador como se ele jamais tivesse sido
interrompido. Uma questão crucial referente à implementação
de esquemas desse tipo, reside no fato de que, se a fração de segundos em que os programas permanecem
inativos for cuidadosamente escolhida, o usuário não perceberá o rodízio a que eles estão submetidos, e terá
a impressão de ter sido atendido pela execução simultânea e contínua de vários programas. A função
descrita aqui e ilustrada na figura, que compreende sucessivas ativações e inativações de programas a fim de
propiciar melhorias na qualidade da experiência do usuário, é denominada escalonamento de processos. E
como você verá mais detalhadamente em outro módulo, é uma das atividades de suporte mais importantes
de um computador.
Seria perfeitamente possível implementar uma extensão do sistema operacional que periodicamente o
informasse sobre a necessidade da execução de atividades de suporte, a exemplo do escalonamento de
processos, mas a carga envolvida seria alta demais. A alternativa à qual recorrem os sistemas operacionais
modernos, é fazer uso das facilidades oferecidas por um circuito integrado denominado timer de intervalo
programável, ou simplesmente PIT, presente em praticamente todos os computadores pessoais. Então, assim
como o nódulo sinoatrial informa o coração sobre o momento exato de se contrair, os PITs podem ser
programados para avisar o processador sobre a hora exata da execução de atividades de suporte. Dessa
forma, cabe aos sistemas operacionais programar o PIT durante a inicialização da máquina, de modo que ele
passe a gerar sinais periódicos de interrupção, em resposta aos quais são executadas ações específicas para
aquele dispositivo. O que no caso do PIT inclui a decisão referente à possibilidade do escalonamento de
processos.
A origem do emprego de PITs em computadores pessoais, no entanto, data de meados da década de 80,
época em que os requisitos impostos pelo software, sobre o hardware, eram bem diferentes dos atuais. Desde
então, classes inteiras de aplicativos surgiram. Sistemas de tempo real, cuja exatidão pode ser comprometida
por atrasos mínimos de processamento, tornaram-se mais comuns. Sistemas multimídia, que dependem de
um controle rígido sobre a taxa de transmissão de canais de áudio e vídeo, passaram a fazer parte do
cotidiano das pessoas, e disseminaram consigo a necessidade de componentes de hardware mais apurados,
capazes de suprir as demandas geradas pelas inovações dos softwares. Pouco a pouco, fontes de interrupções
como o PIT estão sendo substituídas por componentes mais precisos, em alguns casos denominados HPET.
Organização e realização:
LabTime (Laboratório de Tecnologia da Informação e Mídias Educacionais)
UFG (Universidade Federal de Goiás)
MEC (Ministério da Educação)