Você está na página 1de 11

Organizao Estruturada de Computador - Aula 1

Nesta aula abordaremos os temas de linguagens de computadores, nveis e mquinas virtuais e mquinas multinveis contemporneas. O texto abaixo um resumo dos sees 1.1.1 e 1.1.2 do captulo 1 do lvro: Organizao Estruturada de Computadores de Andrew S. Tanenbaum, 4a Edio, 2001. Importante: O resumo abaixo deve ser complementado, pelo aluno, com a leitura do texto original do livro. Tpicos: Introduo; Linguagens, nveis e mquinas virtuais; Mquinas multinveis modernas

Introduo
O computador: uma mquina de soluo de problemas executa programas - Conjunto de instrues que descrevem como realizar uma tarefa Os circuitos de um computador (Hardware) reconhecem e executam um conjunto limitado e simples de instrues (linguagem de mquina- binria) exemplo: soma, comparao, transferncia de dados de uma parte da memria para outra parte Instrues da linguagem de mquina (decidida pelos projetistas de computadores) devem: ser simples ser compatvel com o uso da mquina ser compatvel com a performance requerida ter custo e complexidade da eletronica reduzidos (aplicao) A linguagem de mquina (binria-baixo nvel) est muito distante de uma linguagem natural (humana-alto nvel) O que as pessoas precisam fazer complexo X o conjunto de instrues do computador simples Exemplo: o usurio quer calcular a correo trajetria de um foguete at a lua.

Como o usurio pode fazer isso em linguagem de mquina? Trabalho difcil e tedioso para os humanos Soluo: Criar uma hierarquia de abstraes de nveis mais altos baseadas nos nveis mais baixos. Criar uma organizao estruturada de computadores para facilitar a comunicao homem-mquina.

Linguagens, Nveis e Mquinas Virtuais


Supondo a existncia das linguagens: L1: linguagem natural, do usurio (alto nvel e complexa) L0: linguagem da mquina (baixo nvel e simples) Como compatibilizar L1 com L0? Temos 2 solues: usar um tradutor usar um interpretador TRADUTOR: Cada instruo de L1 substituda por um conjunto de instrues equivalentes de L0 Processador executa programa em L0. Todo programa em L0 carregado em memria e executado Programa pode ser traduzido uma nica vez e executado vrias vezes INTERPRETADOR: Cada instruo de L1 substituda por um conjunto de instrues equivalents de L0 Processador executa instruo de L1 (transformada para L0) antes de executar prxima instruo. Cada instruo de L1, transformada para L0, carregada na memria e executada No criado um programa em L0 Programa deve ser novamente interpretado para ser executado Observao: Pode ser utilizada uma metodologia hbrida: tradutor + interpretador Ao invs de pensar em traduo ou interpretao, pode-se imaginar a existncia de um computador hipottico, ou de uma mquina virtual M1, cuja linguagem de mquina seja L1 (e uma mquina real M0 com linguagem L0) Os programas poderiam ser escritos em L1, para a mquina M1 e:

serem executados diretamente em M1 se esta mquina fosse de custo de construo baixo, ou serem traduzidos ou interpretados para L0 e executados em M0 Na prtica se implementa a segunda soluo acima. As pessoas escrevem programas para mquinas virtuais como se elas realmente existissem. Muitos nveis de mquinas virtuais podem ser implementados. Cada linguagem usa a sua linguagem antecessora como base, de modo que um computador que use essa tcnica pode ser visto como um conjunto de camadas ou nveis um em cima do outro como mostra a figura que segue.

Figura 1.1 Mquina de vrios nveis (Obtida do material, disponvel na internet, do livro do Tanenbaum, 2001)

Mquinas Multinveis Contemporneas


A grande maioria dos computadores modernos formada por 2 ou mais nveis. A Figura abaixo mostra o esquema de um computador com 6 nveis:

Figura 1.2 Computador com 6 nveis. O mtodo por meio do qual cada nvel suportado aparece indicado abaixo do nvel (junto com o nome do nvel que o suporta). (Obtida do material, disponvel na internet, do livro do Tanenbaum, 2001)

Nvel 0: Nvel da Lgica Digital Nvel mais baixo da estrutura Objetos de interesse so conhecidos como portas lgicas Cada porta lgica tem 1 ou mais entradas digitais (aceitam 0 ou 1) e calculam funes lgicas simples sobre essas entradas. Exemplo: AND, OR, XOR,... Portas lgicas so combinadas para formar o Processador - principal dispositivo do computador Nvel 1: Nvel da Microarquitetura Enxergamos uma memria local (8 a 32 registradores) e a UAL (Unidade Aritmtica Lgica) que realiza operaes aritmticas muito simples Os registradores so conectados a UAL formando o caminho dos dados Operaes so controladas por um microprograma ou diretamente por hardware Microprograma um interpretador para as instrues do nvel 2. (ver exemplo no livro) Nvel 2: Nvel da Arquitetura do Conjunto de Instrues (nvel ISA - Instruction Set Architeture) Definida pelo fabricante e dependente da arquitetura da mquina

Fabricantes disponibilizam "Manual de Referncia da Linguagem de Mquina" ou "Princpios de operao do Computador Modelo XYZ4W), ou algo similar. Manuais descrevem como as instrues so executadas interpretativamente pelo microprograma ou como elas so executadas diretamente pelo hardware. Essas informaes so necessrias para os desenvolvedores de sistemas operacionais. Nvel 3: Nvel do Sistema Operacional Instrues da linguagem deste nvel tambm podem conter instrues do nvel ISA. Suporta uma organizao diferente de memria Suporta capacidade de rodar 2 ou mais programas simultaneamente Suporta sistemas de comandos ou de janelas (windows) Programadores deste nvel, e tambm dos nveis mais baixos, so conhecidos como programadores de sistema. Os programadores dos nveis mais altos que este so chamados programadores de aplicao. Nvel 4: Nvel da linguagem do montador ou de montagem (Assembly language) Linguagem de montagem: forma simblica de representao das linguagens do nvel mais baixo. Programas nessa linguagem so primeiro traduzidos para as linguagens dos nveis 1, 2 e 3 e depois interpretados pela mquina virtual apropriada ou pela prpria mquina real. Programa que realiza essa traduo chamado de montador Nvel 5: Nvel das linguagens orientadas para soluo dos problemas Conhecidas como linguagens de alto nvel. Exemplos Basic, C, Pascal, Java, LISP, Programas so geralmente traduzidos para os nveis 3 e 4 por compiladores Alguns so interpretados: Exemplo: programas em Java, MatLab, ...

Observaes finais importantes: Computadores so projetados como uma srie de nveis, cada um deles construdos em cima de seus precursores. Cada nvel representa uma abstrao distinta, com diferentes objetos e operaes

A abstrao permite ignorar, "abstrair", temporariamente detalhes irrelevantes, de nveis mais baixos, reduzindo uma questo complexa a algo muito mais fcil de ser entendido. O conjunto de tipos de dados, operaes e caractersticas de cada um dos nveis chamado arquitetura do nvel. So parte da arquitetura, as caractersticas que um programador do nvel deve enxergar, por exemplo, a disponibilidade de memria.

Organizao Estruturada de Computador - Aula 2


Nesta aula abordaremos o tema Evoluo das mquinas multinveis: microprograma, a inveno do sistema operacional, microcdigo e a eliminao da microprogramao O texto abaixo um resumo da seo 1.1.3 do captulo 1 do lvro: Organizao Estruturada de Computadores de Andrew S. Tanenbaum, 4a Edio, 2001. Importante: O resumo abaixo deve ser complementado, pelo aluno, com a leitura do texto original do livro. Tpicos: Evoluo das mquinas de vrios nveis: Introduo, A inveno da Microprogramao, A inveno do Sistema Operacional, Migrao das funcionalidades para o Microcdigo, A eliminao da Microprogramao, Exerccios.

Introduo
Evoluo das mquinas de vrios nveis Objetivo: Mostrar a evoluo da quantidade e da natureza de seus nveis: Hardware (nvel 0): composto por circuitos integrados, placas de circuitos impressos, cabos, fontes de alimentao, memrias, impressoras, etc... Softwares: algoritmos e programas (conjunto de instrues) Atualmente difcil separar o hardware do software: Hardware e software so equivalentes lgicamente. Qualquer operao realizada por software pode ser diretamente realizada por hardware Qualquer instruo executada por hardware pode ser simulada em software A deciso de se colocar funes em hardware ou software depende: Custo Velocidade Confiabilidade Frequncia esperada de mudanas A deciso muda com a evoluo da tecnologia e da prpria utilizao do computador

A inveno da Microprogramao
Primeiros computadores (dcada de 1940) tinham s 2 nveis Nvel ISA + Nvel da Lgica Digital 7

Em 1951, Maurice Wilkes sugeriu a idia de acoplar um interpretador (microprograma) para executar programas do nvel ISA (por interpretao). Como consequncia: Diminui o nmero de circuitos (hardware + simples) Aumenta a confiabilidade a confiabilidade da mquina (circuitos a vlvula) Na decada de 1960 surgiram muitas mquinas com essa filosofia.

Em 1970, o uso do nvel ISA interpretado por microprograma, ao invs de executado diretamente por circuitos eletrnicos, tornou-se uma prtica comum.

A inveno do Sistema Operacional


No incio os computadores: eram operados e gerenciados pelo prprio programador executavam apenas 1 programa por vez (disponvel s para 1 unico usurio) Exemplo de execuo de 1 programa em FORTRAN 1. Colocar cartes do compilador FORTRAN na leitora + mandar executar(enter) 2. Colocar cartes do programa na leitora (1a vez) + executar 3. Colocar cartes do programa na leitora (2a vez) + executar (compilador de 2 passos) 4. Se programa no tem erro, o compilador perfurava cartes com cdigo de mquina. Seno, corrige programa e volta ao passo 1 5. Colocar programa em linguagem de mquina + cartes da biblioteca Fortran e executar 6. Programa executado. Se h erro de lgica, corrige e volta ao passo 1. Por volta de 1960, foi criado o Sistema Operacional (SO) Objetivo: facilitar a operao do computador O Sistema operacional era mantido todo o tempo no computador Cartes de controle comandavam instrues do SO Exemplo:

Figura 1.3 Exemplo de 1 job para o sistema operacional FMS. Fig 1.3 do livro do Tanembaum, 2001 Cartes de controle: * JOB identifica o usurio, * FORTRAN carrega compilador e *DATA executa o programa com os dados que seguem. Programa executado em sistema BATCH. Com o tempo o SO evoluiu incorporando, alm de algumas instrues do ISA, tratamento de Entrada/Saida. As instrues do SO eram conhecidas por macros do SO ou chamadas ao supervisor. Em 1960, no MIT, criou-se o SO com compartilhamento de vrios usurios (por terminais ligados ao computador por linhas telefnicas) conhecidos como Sistemas de Tempo Compartilhado. Migrao de funcionalidades para o Microcdigo Em 1970, houve uma exploso, nos conjuntos de instrues das mquinas, expandindo-se o microprograma. Exemplos de novas funcionalidades, instrues para: multiplicao e diviso de inteiros aritmtica em ponto flutuante chamada e retorno de procedimentos acelerar a execuo de loops manipulao de cadeias de caracteres Devido a facilidade da microprogramao, foram, ainda, incorporadas novas funcionalidades do tipo:

para acelerar o processamento de programas envolvendo clculo matricial (indexao e endereamento indireto) para permitir que os programas pudessem ser deslocados de posio de memria, aps o incio da execuo (realocao) para tratar interrupes que enviam um sinal para o processador logo que uma operao de E/S termine. para suspender a execuo de um programa e iniciar a execuo de outro (troca de contexto entre processos)

A eliminao da Microprogramao
Assim os microprogramas cresceram muito e, em consequencia, tornaram-se lentos. Voltou a idia de ter instrues e funcionalidades executadas por hardware. Concluses: Fronteira entre hardware e software pode ser arbitrria O sotware de hoje pode ser o hardware de amanha, e vice-versa Fronteiras entre demais nveis no esto bem definidas e podem tambm ser mudadas Programador de um nvel, em geral, no deve se preocupar com implementaes de nveis inferiores para suspender a execuo de um programa e iniciar a execuo de outro (troca de contexto entre processos)

Exerccios
Os exerccios abaixo foram tirados do captulo 1 do lvro: Organizao Estruturada de Computadores de Andrew S. Tanenbaum, 4a Edio, 2001.

10

11

Você também pode gostar