Escolar Documentos
Profissional Documentos
Cultura Documentos
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.
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)
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.
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.
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