introduÇÃo À tecnologia da informaÇÃo … · tecnologia da informaÇÃo organizaÇÃo...

34
INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ORGANIZAÇÃO COMPUTACIONAL MÁQUINAS VIRTUAIS, MÁQUINAS MULTINÍVEL E LINGUAGENS PROFESSOR CARLOS MUNIZ

Upload: doandat

Post on 18-Jan-2019

222 views

Category:

Documents


0 download

TRANSCRIPT

INTRODUÇÃO À TECNOLOGIA DA

INFORMAÇÃOORGANIZAÇÃO

COMPUTACIONALMÁQUINAS VIRTUAIS, MÁQUINAS MULTINÍVEL E LINGUAGENS

PROFESSOR CARLOS MUNIZ

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ORGANIZAÇÃO COMPUTACIONAL

• MÁQUINAS VIRTUAIS, MÁQUINAS MULTINÍVEL E LINGUAGENS

Professor Carlos Muniz [email protected] 2

Um computador digital é uma máquina capaz de nos solucionarproblemas através da execução de instruções que lhe sãofornecidas. Denomina-se programa uma seqüência deinstruções que descreve como executar uma determinadatarefa. Os circuitos eletrônicos de cada computador podemreconhecer e executar diretamente um conjunto limitado deinstruções simples para as quais todos os programas devemser convertidos antes que eles possam ser executados.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ORGANIZAÇÃO COMPUTACIONAL

• MÁQUINAS VIRTUAIS, MÁQUINAS MULTINÍVEL E LINGUAGENS

Professor Carlos Muniz [email protected] 3

Juntas, as instruções primitivas do computador formam uma linguagemque torna possível as pessoas se comunicarem com o computador. Tallinguagem é denominada linguagem de máquina. Ao se projetar umnovo computador deve-se decidir que instruções devem estarincluídas nesta linguagem de máquina. Geralmente, tenta-se fazer asinstruções primitivas tão simples quanto possível, consistentes com ouso pretendido e necessidades de desempenho, a fim de reduzir acomplexidade e o custo da eletrônica empregada. Como a maioriadas linguagens de máquina são muito simples, é difícil e tediosoutilizá-las.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ORGANIZAÇÃO COMPUTACIONAL

• LINGUAGENS, NÍVEIS E MÁQUINAS VIRTUAIS

Professor Carlos Muniz [email protected]

4

Há uma relação importante entre uma linguagem e uma máquina virtual.Cada máquina tem a sua linguagem de máquina, que consiste em todasas instruções que a máquina pode executar. De fato, uma máquinadefine uma linguagem. Do mesmo modo, uma linguagem define umamáquina - ou seja, a máquina que pode executar todos os programasescritos nesta linguagem. Naturalmente, a máquina definida por umadeterminada linguagem pode ser enormemente complicada e cara deconstruir diretamente a partir de circuitos eletrônicos, mas de qualquermodo podemos imaginá-la. Uma máquina com C, Pascal ou Cobol comosua linguagem de máquina seria complicadíssima, mas‚ certamenteimaginável e, talvez dentro de alguns anos, tal máquina sejaconsiderada de construção trivial.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ORGANIZAÇÃO COMPUTACIONAL

• LINGUAGENS, NÍVEIS E MÁQUINAS VIRTUAIS

Professor Carlos Muniz [email protected]

5

Há uma relação importante entre uma linguagem e uma máquinavirtual. Cada máquina tem a sua linguagem de máquina, que consisteem todas as instruções que a máquina pode executar. De fato, umamáquina define uma linguagem. Do mesmo modo, uma linguagemdefine uma máquina - ou seja, a máquina que pode executar todosos programas escritos nesta linguagem. Naturalmente, a máquinadefinida por uma determinada linguagem pode ser enormementecomplicada e cara de construir diretamente a partir de circuitoseletrônicos, mas de qualquer modo podemos imaginá-la. Umamáquina com C, Pascal ou Cobol como sua linguagem de máquinaseria complicadíssima, mas‚ certamente imaginável e, talvez dentrode alguns anos, tal máquina seja considerada de construção trivial.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ORGANIZAÇÃO COMPUTACIONAL

• LINGUAGENS, NÍVEIS E MÁQUINAS VIRTUAIS

Professor Carlos Muniz [email protected]

6

Uma pessoa cujo trabalho fosse escrever programas para amáquina virtual de nível n não precisaria estar ciente dosinterpretadores e tradutores subjacentes. A estrutura damáquina assegura que estes programas serão de algum modoexecutados. É de pouco interesse se eles são executados passoa passo por um interpretador, que por sua vez é executado porum outro interpretador, ou se eles são executados diretamentepelos circuitos eletrônicos. O mesmo resultado surge em ambosos casos: os programas são executados.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ORGANIZAÇÃO COMPUTACIONAL

• LINGUAGENS, NÍVEIS E MÁQUINAS VIRTUAIS

Professor Carlos Muniz [email protected]

7

A maioria dos programadores que utilizam uma máquina denível n está apenas interessada no nível do topo, que lembra omínimo possível a linguagem de máquina situada lá embaixo.Entretanto, os interessados em compreender como umcomputador realmente funciona devem estudar todos os níveis.As pessoas interessadas em projetar novos computadores ounovos níveis (isto é, novas máquinas virtuais) devem tambémestar familiarizadas com outros níveis além do nível do topo. Osconceitos e técnicas de construção de máquinas como uma sériede níveis e os detalhes de alguns níveis importantes constituempor si são o assunto principal deste texto.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ORGANIZAÇÃO COMPUTACIONAL

• LINGUAGENS, NÍVEIS E MÁQUINAS VIRTUAIS

Professor Carlos Muniz [email protected]

8

Organização Estrutural de Computadores vem do fato de sevisualizar o computador como um conjunto hierárquico de níveisque provê uma boa estrutura para compreender como oscomputadores estão organizados. Além disso, projetarcomputadores como uma série de níveis ajuda a assegurar umproduto final bem estruturado.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ORGANIZAÇÃO COMPUTACIONAL

• MÁQUINAS MULTINÍVEL CONTEMPORÂNEAS

Professor Carlos Muniz [email protected]

9

A maioria dos computadores modernos possui dois ou mais níveis. Asmáquinas de seis níveis são muito comuns, como está mostrado na figuraa seguir. O nível 0, lá embaixo, é o hardware verdadeiro da máquina.Seus circuitos executam os programas em linguagem de máquina de nível1. Para completar, deve-se mencionar ainda a existência de um outronível abaixo do nível 0. Este nível, não está mostrado na figura porquese situa no campo da engenharia elétrica (e por isto está fora do escopodeste texto), é denominado nível de dispositivos. A este nível, o projetistaenxerga transistores individuais, os quais são os primitivos de mais baixonível para os projetistas de computadores. (Naturalmente, pode-setambém indagar como funcionam os transistores por dentro, mas isto jápertence à física de estado sólido).

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ORGANIZAÇÃO COMPUTACIONAL

• MÁQUINAS MULTINÍVEL CONTEMPORÂNEAS

Professor Carlos Muniz [email protected]

10

No nível mais baixo que estudaremos, o nível da lógica digital, osobjetos interessantes são denominados portas. Embora construídas apartir de componentes analógicos, como os transistores, as portaspodem ser modeladas com precisão como dispositivos digitais. Cadaporta possui uma ou mais entradas digitais (sinais representando 0 ou1), e fornece como saída funções simples destas entradas, tais comoAND ou OR. Cada porta é constituída no máximo por um punhado detransistores. Embora o conhecimento do nível de dispositivos seja umtanto especializado, com o advento dos microprocessadores emicrocomputadores, mais e mais pessoas estão entrando em contatocom o nível de lógica digital.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ORGANIZAÇÃO COMPUTACIONAL

• MÁQUINAS MULTINÍVEL CONTEMPORÂNEAS

Professor Carlos Muniz [email protected]

11

O nível superior seguinte‚ o nível 1, que é o verdadeiro nível delinguagem de máquina. Ao contrário do nível 0, onde não existeo conceito de programa como uma seqüência de instruções aserem executadas, em nível 1 há definitivamente um programa,denominado microprograma, cuja função é interpretar asinstruções de nível 2. Chamamos o nível 1 de nível demicroprogramação. Embora seja verdadeiro que não existemdois computadores com níveis de microprogramação idênticos,existem semelhanças suficientes que nos permitem extrair osaspectos essenciais do nível e discutí-Io como se ele fosse bemdefinido(...)

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ORGANIZAÇÃO COMPUTACIONAL

• MÁQUINAS MULTINÍVEL CONTEMPORÂNEAS

Professor Carlos Muniz [email protected]

12

(...)Por exemplo, poucas são as máquinas que têm mais de 30instruções este nível, e a maior parte destas instruções envolve amovimentação de dados de uma parte da máquina para outra, ou arealização de alguns testes simples. Cada máquina de nível 1 tem umou mais microprogramas que são executados nela. Cadamicroprograma define implicitamente uma linguagem de nível 2 (euma máquina virtual, cuja linguagem de máquina‚ essa linguagem).Estas máquinas de nível 2 têm muito em comum. Até mesmo máquinasde nível 2 de fabricantes diferentes têm mais semelhanças do quediferenças. Neste texto, denominaremos este nível de nível demáquina convencional, por falta de um nome de aceitação geral.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ORGANIZAÇÃO COMPUTACIONAL

• MÁQUINAS MULTINÍVEL CONTEMPORÂNEAS

Professor Carlos Muniz [email protected]

13

Todo fabricante de computadores pública um manual para cada tipode computador que ele comercializa, intitulado "Manual dereferência da Linguagem de Máquina" ou "Princípios de Operaçãodo Computador Western Combat Modelo 100X" ou algo semelhante.Estes manuais tratam, na realidade, da máquina virtual de nível 2, enão da máquina real de nível 1. Quando eles descrevem o conjuntode instruções de máquina, estão, de fato, descrevendo as instruçõesinterpretadas pelo microprograma, e não as próprias instruções dehardware. Se o fabricante de computadores escrever para uma desuas máquinas dois interpretadores que interpretem duas máquinasdiferentes de nível 2, ele precisará fornecer dois manuais dereferência de "Linguagem de máquina", um para cada interpretador.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ORGANIZAÇÃO COMPUTACIONAL

• MÁQUINAS MULTINÍVEL CONTEMPORÂNEAS

Professor Carlos Muniz [email protected]

14

Deve-se mencionar que alguns computadores não têm um nívelde microprogramação. Nestas máquinas, as instruções do nívelde máquina convencional são executadas diretamente peloscircuitos eletrônicos (nível 0), sem qualquer interpretadorintermediário de nível 1. Como resultado, o nível 1, e não onível 2, é o nível de máquina convencional. De qualquer modo,continuaremos a chamar o nível de máquina convencional de"nível 2", apesar destas exceções.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ORGANIZAÇÃO COMPUTACIONAL

• MÁQUINAS MULTINÍVEL CONTEMPORÂNEAS

Professor Carlos Muniz [email protected]

15

Há uma diferença fundamental entre os níveis 3 e 4. Os trêsníveis inferiores não foram projetados para o uso direto peloprogramador médio comum. Eles são voltados principalmentepara a execução dos interpretadores e tradutores necessáriospara suportar os níveis superiores. Estes interpretadores etradutores são escritos por pessoas chamadas deprogramadores de sistema, que são especialistas em projetar eimplementar novas máquinas virtuais. Os níveis 4 e superioressão dirigidos aos programadores de aplicação com problemasa serem solucionados.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ORGANIZAÇÃO COMPUTACIONAL

• MÁQUINAS MULTINÍVEL CONTEMPORÂNEAS

Professor Carlos Muniz [email protected]

16

Uma outra mudança que ocorre no nível 4 é o método pelo qual osníveis superiores são suportados. Os níveis 2 e 3 são sempreinterpretados. Os níveis 4, 5 e superiores são geralmente, mas nemsempre, suportados por tradução.

Uma outra diferença ainda entre os níveis 1, 2 e 3, de um lado, e osníveis 4, 5 e superiores, de outro, é a natureza da linguagemprovida. As Iinguagens de máquina de níveis 1, 2 e 3 são numéricas.Os programas escritos nestas Iinguagens consistem em Iongas sériesde números, os quais são ótimos para as máquinas e péssimos paraas pessoas. A partir do nível 4, as Iinguagens contém palavras eabreviaturas significativas para as pessoas.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ORGANIZAÇÃO COMPUTACIONAL

• MÁQUINAS MULTINÍVEL CONTEMPORÂNEAS

Professor Carlos Muniz [email protected]

17

O nível 4, o nível da linguagem de montagem, é realmente umaforma simbólica para uma Linguagem subjacente. Este nívelprovê um método para as pessoas escreverem programas paraos níveis 1, 2 e 3 de uma maneira não tão desagradávelquanto as próprias Iinguagens de máquina virtual. Osprogramas em Linguagem de montagem são primeiramentetraduzidos para a Linguagem do nível 1, 2 ou 3, e então sãointerpretados pela máquina virtual ou real apropriada. Oprograma que executa a tradução é denominado montador.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ORGANIZAÇÃO COMPUTACIONAL

• MÁQUINAS MULTINÍVEL CONTEMPORÂNEAS

Professor Carlos Muniz [email protected]

18

O nível 5 consiste em linguagens projetadas para seremutilizadas por programadores de aplicação com problemas aserem resolvidos. Tais linguagens são denominadas linguagensde alto nível. Existem literalmente centenas delas. Algumas dasmais conhecidas são C, C++, Java, Pascal, Delphi. Osprogramas escritos nestas linguagens são geralmente traduzidospara o nível 3 ou nível 4 por tradutores conhecidos comocompiladores, embora ocasionalmente eles sejam interpretados.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ORGANIZAÇÃO COMPUTACIONAL

• MÁQUINAS MULTINÍVEL CONTEMPORÂNEAS

Professor Carlos Muniz [email protected]

19

Os níveis 6 e superiores consistem em coleções de programasprojetados para criar máquinas especialmente adequadaspara certas aplicações. Eles contêm grandes quantidades deinformação acerca da aplicação. Podem-se imaginar máquinasvirtuais voltadas a aplicações em administração, educação,projeto de computadores etc.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ORGANIZAÇÃO COMPUTACIONAL

• MÁQUINAS MULTINÍVEL CONTEMPORÂNEAS

Professor Carlos Muniz [email protected]

20

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ORGANIZAÇÃO COMPUTACIONAL

• MÁQUINAS MULTINÍVEL CONTEMPORÂNEAS

Professor Carlos Muniz [email protected]

21

Em resumo, o ponto-chave a ser lembrado é que oscomputadores são projetados como uma série de níveis, cadaum deles construído sobre seu predecessor. Cada nívelrepresenta uma abstração distinta, com a presença dediferentes objetos e operações. Ao projetar e analisarcomputadores deste modo, podemos temporariamente suprimirdetalhes irrelevantes e assim reduzir um assunto complexo paraalgo mais fácil de ser compreendido.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ORGANIZAÇÃO COMPUTACIONAL

• HARDWARE, SOFTWARE E MÁQUINAS MULTINÍVEL

Professor Carlos Muniz [email protected]

22

Os programas escritos na linguagem de máquina de umcomputador (nível 1) podem ser executados diretamente peloscircuitos eletrônicos do computador (nível 0), sem quaisquerinterpretadores ou tradutores intermediários. Estes circuitoseletrônicos, juntamente com a memória e dispositivos deentrada/saída, constituem o hardware do computador. Ohardware é composto de objetos tangíveis - circuitos integrados,placas de circuito impresso, cabos, fontes de alimentação,memórias, leitoras de cartões, impressoras e terminais - emlugar de idéias abstratas, algoritmos ou instruções.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ORGANIZAÇÃO COMPUTACIONAL

• HARDWARE, SOFTWARE E MÁQUINAS MULTINÍVEL

Professor Carlos Muniz [email protected]

23

O software, ao contrário, consiste em algoritmos (instruçõesdetalhadas que dizem como fazer algo) e suas representaçõespara o computador - ou seja, os programas. Os programaspodem estar representados em cartões perfurados, fitamagnética, filme fotográfico e outros meios, mas a essência dosoftware está no conjunto de instruções que constitui osprogramas, não nos meios físicos sobre os quais eles estãogravados.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ORGANIZAÇÃO COMPUTACIONAL

• HARDWARE, SOFTWARE E MÁQUINAS MULTINÍVEL

Professor Carlos Muniz [email protected]

24

Uma forma intermediária entre o hardware e o software é ofirmware, que consiste no software embutido em dispositivoseletrônicos durante a fabricação. O firmware é utilizadoquando se espera que os programas raramente ou nunca serãomudados, por exemplo, em brinquedos ou instrumentos. Ofirmware é também usado quando os programas não podemser perdidos ao se acabar a alimentação (p. ex., quando abateria da boneca se descarrega). Em muitos computadores omicroprograma está em firmware.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ORGANIZAÇÃO COMPUTACIONAL

• HARDWARE, SOFTWARE E MÁQUINAS MULTINÍVEL

Professor Carlos Muniz [email protected]

25

Um tema central que sempre aparecerá é:

Hardware e software são logicamente equivalentes.

Qualquer operação efetuada pelo software pode também ser implementada diretamente em hardware, e qualquer instrução executada pelo hardware pode também ser simulada pelo software.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ORGANIZAÇÃO COMPUTACIONAL

• HARDWARE, SOFTWARE E MÁQUINAS MULTINÍVEL

Professor Carlos Muniz [email protected]

26

A decisão de se colocar certas funções em hardware e outrasem software baseia-se em fatores tais como: custo, velocidade,confiabilidade e freqüência esperada de alterações. Não háregras rígidas e diretas para se dizer que X deve serimplementado em hardware e Y deve ser programadoexplicitamente. Projetistas com objetivos diferentes podem, emuitas vezes o fazem, tomar diferentes decisões.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ORGANIZAÇÃO COMPUTACIONAL

• HARDWARE, SOFTWARE E MÁQUINAS MULTINÍVEL

Professor Carlos Muniz [email protected]

27

Nos primeiros computadores, a distinção entre hardware e software eraclara. O hardware executava algumas instruções simples, tais como ADD(somar) e JUMP (saltar para), e tudo o mais era programado explicitamente.Se um programa precisasse multiplicar dois números, o programador tinhaque escrever seu próprio procedimento de multiplicação ou pedir umemprestado à biblioteca. Com o passar do tempo, tornou-se claro aosprojetistas de hardware que certas operações eram executadas com umafreqüência suficiente para justificar a construção de circuitos especiais paraexecutá-las diretamente em hardware (para torná-las mais rápidas). Istoresultou em uma tendência de se levar as operações para os níveisinferiores. O que era previamente programado explicitamente no nível demáquina convencional era mais tarde encontrado abaixo dele, no hardware.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ORGANIZAÇÃO COMPUTACIONAL

• HARDWARE, SOFTWARE E MÁQUINAS MULTINÍVEL

Professor Carlos Muniz [email protected]

28

Com a chegada da microprogramação e de computadores multinível, atendência oposta também ocorreu. Nos primeiros computadores, não haviadúvidas de que a instrução ADD era executada diretamente pelo hardware.Em um computador microprogramado, a instrução ADD do nível de máquinaconvencional era interpretada através de um microprograma sendoexecutado no nível situado mais ao fundo, e era executada como uma sériede pequenos passos: buscar a instrução, descobrir seu tipo, localizar osdados a serem adicionados, buscar os dados da memória, executar aadição e armazenar o resultado. Este é um exemplo de função que moveupara cima, do nível de hardware para o de microprograma. Nósenfatizaremos mais uma vez que: não existem regras rígidas e diretas arespeito do que deve estar em hardware e do que deve estar em software.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ORGANIZAÇÃO COMPUTACIONAL

• HARDWARE, SOFTWARE E MÁQUINAS MULTINÍVEL

Professor Carlos Muniz [email protected]

29

Ao desenvolverem uma máquina multinível, os projetistas devemdecidir o que colocar em cada nível. Esta é uma generalizaçãodo problema mencionado anteriormente, de se decidir o quecolocar em hardware e o que colocar em software, o hardwaresendo meramente de nível mais baixo. É interessante notar quealgumas das características de certos computadores modernossão agora executadas pelo hardware ou pelo microprograma,mas que originalmente foram programadas explicitamente nonível de máquina convencional. Dentre elas estão incluídas:

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ORGANIZAÇÃO COMPUTACIONAL

• HARDWARE, SOFTWARE E MÁQUINAS MULTINÍVEL

Professor Carlos Muniz [email protected]

30

1. Instruções para multiplicação e divisão de inteiros.2. Instruções aritméticas de ponto-flutuante.3. Instruções aritméticas de dupla precisão (aritmética denúmeros com duas vezes o número usual de algarismossignificativos).4. Instruções para chamar e retomar de procedimentos.5. Instruções para acelerar laços (looping). '6. Instruções de contagem (somar 1 a uma variável).7. Instruções para manipular cadeias de caracteres.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ORGANIZAÇÃO COMPUTACIONAL

• HARDWARE, SOFTWARE E MÁQUINAS MULTINÍVEL

Professor Carlos Muniz [email protected]

31

8. Aspectos de aceleração de computações envolvendomatrizes (indexação e endereçamento indireto).9. Características para permitir que os programas fossemmovidos na memória após terem começado a ser executados(facilidades de recolocação).10. Relógios para temporizar programas.11. Sistemas de interrupção que avisem o computador tão logouma operação de entrada ou saída esteja completada.12. A capacidade de parar um programa e iniciar outroutilizando poucas instruções (chaveamento de processos).

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ORGANIZAÇÃO COMPUTACIONAL

• HARDWARE, SOFTWARE E MÁQUINAS MULTINÍVEL

Professor Carlos Muniz [email protected]

32

8. Aspectos de aceleração de computações envolvendomatrizes (indexação e endereçamento indireto).9. Características para permitir que os programas fossemmovidos na memória após terem começado a ser executados(facilidades de recolocação).10. Relógios para temporizar programas.11. Sistemas de interrupção que avisem o computador tão logouma operação de entrada ou saída esteja completada.12. A capacidade de parar um programa e iniciar outroutilizando poucas instruções (chaveamento de processos).

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ORGANIZAÇÃO COMPUTACIONAL

• HARDWARE, SOFTWARE E MÁQUINAS MULTINÍVEL

Professor Carlos Muniz [email protected]

33

O objetivo da discussão é mostrar que a fronteira entre ohardware e o software é arbitrária e que varia constantemente.O software de hoje é o hardware de amanhã, e vice-versa.Além disso, os limites entre os vários níveis são fluidos. Do pontode vista do programador, a maneira como uma instrução estárealmente implementada não é importante (exceto, talvez, comrelação à velocidade). Alguém que estiver programado no nívelde máquina convencional pode usar sua instrução demultiplicação como se esta fosse uma instrução de hardwaresem se preocupar com isto, ou até mesmo estar ciente se ela érealmente uma instrução de hardware ou não.

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO

ORGANIZAÇÃO COMPUTACIONAL

• HARDWARE, SOFTWARE E MÁQUINAS MULTINÍVEL

Professor Carlos Muniz [email protected]

34

O fato de o programador não estar ciente de como o nível queele está utilizando é implementado leva ao conceito de projetoestruturado de máquinas. Um nível é muitas vezes chamado demáquina virtual porque o programador pensa nele como umamáquina física real, mesmo se ela não existir realmente.Estruturando uma máquina como uma série de níveis, osprogramadores que trabalham no nível n não precisam saberde todos os detalhes confusos dos níveis inferiores. Estaestruturação simplifica enormemente a produção de máquinas(virtuais) complexas.