Sistema Operacional Integrado Simulado

Propaganda
XIV ERI-PR 2007
ISBN: 978-85-7669-115-0
Sistema Operacional Integrado Simulado:
Módulo de Entrada e Saída
Eduardo H. M. Cruz, Valdemir P. Silva, Ronaldo A. L. Gonçalves
Departamento de Informática - Universidade Estadual de Maringá
Zona 07 - Av. Colombo 5790 - CEP 87020-900 - Maringá – PR
{eduardo.cruz,valdps,ronaldo}@din.uem.br
Abstract. SOIS tool (Simulated Integrated Operating System) aims at the
creation of an entire environment for computer simulation, integrating
compiler, operating system, processor, input/output system and visualization
interface. This paper presents the first version of the input/output system,
which composes a common bus, system clock, video device and other
peripherals. The system has been evaluated through its monitoring interface,
proving to be a powerful tool for the graduation teaching, as well as for the
behavior and performance analysis of computer systems.
Resumo. A ferramenta SOIS (Sistema Operacional Integrado Simulado) visa a
criação de um ambiente completo de simulação computacional, integrando
compilador, sistema operacional, processador, sistema de entrada e saída e
interface de visualização. Este artigo apresenta a primeira versão do sistema
de entrada/saída, o qual é composto por um barramento central, relógio do
sistema, dispositivo de vídeo e outros periféricos. Tal sistema foi avaliado
através de uma interface de monitoramento, mostrando ser uma poderosa
ferramenta para o ensino de graduação e análise de comportamento e
desempenho de sistemas computacionais.
1. Introdução
Software de simulação computacional é objeto de estudo, tanto do meio empresarial
quanto acadêmico. Com a simulação é possível obter informações que são difíceis,
senão impossíveis, de serem obtidas em ambientes reais de execução, de forma rápida e
segura. As informações coletadas na simulação possibilitam prever o comportamento
em situações reais que o ambiente simulado representa, podendo ser utilizados em
projetos de sistemas computacionais mais eficientes, poupando tempo e dinheiro, bem
como no ensino acadêmico, promovendo a capacitação e o avanço das tecnologias de
informação.
A ferramenta SOIS (Sistema Operacional Integrado Simulado) enquadra-se no
contexto apresentado, sendo uma ferramenta de simulação completa, envolvendo a
simulação parametrizada de compilador, sistema operacional, processador, sistema de
entra/saída e interface de visualização. A ferramenta visa possibilitar a escrita e a
compilação de programas reais, para posterior execução no processador simulado sob o
controle do sistema operacional simulado e fazendo uso de dispositivos de entrada e
saída também simulados. Através de uma interface gráfica com o usuário, será possível
configurar a organização interna dos componentes e visualizar o comportamento
funcional durante a execução dos programas, tornando-se numa poderosa ferramenta de
ensino/aprendizagem e avaliação de comportamento e desempenho.
89
XIV ERI-PR 2007
ISBN: 978-85-7669-115-0
SOIS é um projeto iniciado em 2004 [1] e devido a sua abrangência e
complexidade continua ainda em desenvolvimento. O núcleo básico do processador
SOIS [2] foi implementado e compõe-se basicamente de código para a decodificação e
execução da maioria das instruções IA-32. O módulo que simula o sistema de
entrada/saída [3] também foi desenvolvido, embora sobre um conjunto de instruções
simplificado para facilitar detecção de erros, precisando ser reajustado ao processador
SOIS. O objetivo deste artigo é apresentar este módulo.
Este artigo está organizado da seguinte forma. A seção 2 apresenta conceitos
sobre o sistema de entrada/saída. A seção 3 contextualiza o estado da arte, mostrando
alguns trabalhos relacionados. A seção 4 apresenta o projeto e implementação do
sistema de entrada/saída. As conclusões e trabalhos futuros são esboçados na seção 5 e
as referências bibliográficas aparecem no final do texto.
2. Sistema de Entrada/Saída
Para executar uma função útil, os processadores devem ser capazes de interagir com o
mundo externo e os dispositivos além da memória [4]. Sistema de entrada/saída define a
arquitetura do relacionamento e comunicação entre todos os componentes do
computador, provendo o transporte de informações e os seus métodos. Um dispositivo
externo se comunica com o processador por um canal de E/S, utilizado para controlar e
acessar o status e dados dos dispositivo s chamados comumente de periféricos [5].
Existem 3 principais modelos de entrada/saída [6]: programada, baseada em interrupção
e via DMA.
Na E/S programada, a verificação do status das operações, isto é, quando iniciar,
transmitir ou finalizar, é feita por software. Com isso, o processador fica continuamente
verificando as portas de comunicação com o dispositivo para realizar as operações
desejadas, perdendo tempo com verificações e esperas inúteis (busy wait). Apesar da
simplicidade de implementação, este método tende a deixar o sistema muito lento [7].
Na E/S com interrupção, o processador não precisa verificar constantemente o
status das operações, sendo de responsabilidade da interface do dispositivo interromper
o processador quando uma requisição estiver concluída. Com isso, o processador fica
liberado para realizar computação útil durante a ocupação do dispositivo. Ainda que
este método seja mais eficiente que a entrada/saída programada, ele ainda é bastante
oneroso no caso da transferência de um bloco contíguo de informações entre memória e
o dispositivo, pois todos os dados devem ser lidos da memória, movidos internamente
no processador e depois enviados ao dispositivo.
Para minimizar este problema usa-se a entrada/saída via DMA (acesso direto a
memória). Neste caso, o processador envia uma requisição de transferência em bloco ao
dispositivo e segue seu processamento normal, tal como na entrada/saída com
interrupção. O dispositivo se responsabiliza em tratar a transferência diretamente com o
sistema de memória, reservando o barramento e transferindo, ininterruptamente, todo o
bloco de dados. Após o término, o processador é interrompido uma única vez.
O gerenciamento das operações de entrada/saída, feitas pelas aplicações, é
realizado pelo sistema operacional [8], que disponibiliza rotinas de entrada/saída de alto
nível, escalona processos para receber o atendimento das requisições e aciona as
funções básicas fornecidas pelo circuito controlador do dispositivo ou as funções mais
elaboradas fornecidas pelo programa controlador do dispositivo (drivers).
90
XIV ERI-PR 2007
ISBN: 978-85-7669-115-0
Os processadores normalmente apresentam duas instruções de entrada/saída em
nível de máquina : in (para ler dados de uma porta) e out (para escrever dados em uma
porta). Cada dispositivo possui um conjunto de portas que pode ser manipulado com
estas instruções, incluindo porta de dados, porta de controle e porta de status. Cada
porta possui um endereço tal como uma posição de memória.
Existem vários componentes de um sistema de entrada/saída, entre eles, a
interface controladora, o barramento, o relógio central e os periféricos. A interface
controladora tem como principal função tornar transparente para o processador os
detalhes de operação e controle dos periféricos. O barramento é o canal comum de troca
de informações entre os dispositivos conectados, sendo composto de três principais vias
de comunicação: endereço, controle e dados. Pelo fato do barramento permitir um único
acesso de cada vez, existe a necessidade de um árbitro para controlar a ordem de
atendimento segundo alguma prioridade.
O relógio central [9] é um circuito oscilador que define segmentos de tempos,
sendo considerado como referência de tempo do sistema. É muito útil em Sistemas
Operacionais Multitarefas na determinação do tempo designado a cada processo. Os
periféricos são dispositivos conectados a um computador que permitem e este a
realização de atividades externas.
3. Trabalhos Relacionados
Vários trabalhos relacionados a simulação de sistemas computacionais são encontrados
na literatura. Nachos [10], por exemplo, é um sistema operacional simulado que executa
no nível do usuário como um processo do Unix. Ele permite simular a CPU,
dispositivos, processos, threads, RPC, hierarquia de memória, programação orientada a
objetos e computação distribuída. Possui interface amigável e é direcionado ao ensino
de graduação da disciplina de sistemas operacionais, permitindo ilustrar conceitos e
princípios importantes.
Ramses [11] é um computador hipotético desenvolvido também para o ensino,
bastante simplificado, que possui um conjunto de 16 instruções, trabalha com dados e
endereços de 8 bits, possui apenas 4 registradores de 8 bits e um registrador de status de
operação. Suas instruções são de um ou dois bytes. O primeiro byte contém o código de
operação, o identificador do registrador e o modo de endereçamento. O segundo byte
contém um endereço ou um dado imediato. Sua utilização é direcionada para aulas
introdutórias nas disciplinas de arquiteturas de computadores.
Em [12], Maia e Pacheco apresentam um simulador de sistema operacional com
capacidades vis uais, denominado SOsim, capaz de gerenciar processos e memória de
forma multiprogramada, mostrando a dinâmica interna do sistema operacional. O
simulador foi apresentado e avaliado por alunos de graduação, que concluíram que o
mesmo facilita o aprendizado dos conceitos. A interface é simples e apenas alguns
módulos do simulador foram implementados. Além disso, SOsim não executa
aplicações que possam ser desenvolvidas sobre algum tipo de hardware simulado. Sua
idéia principal se baseia no aprendizado construtivista.
Outro projeto interessante, chamado PortOS [13], foi desenvolvido para
complementar o ensino de graduação e de pós-graduação para a disciplina de Sistemas
Operacionais. PortOS é uma ferramenta que guia os próprios alunos no
desenvolvimento de um sistema operacional para equipamentos móveis do tipo PDA,
91
XIV ERI-PR 2007
ISBN: 978-85-7669-115-0
permitindo trabalhar com threads, concorrência, escalonamento, sistema de arquivos,
sincronização e comunicação ponto a ponto. PortOS visa prover uma plataforma de
software que permita aos estudantes desenvolver um sistema operacional real, em nível
de usuário e com toda a segurança.
Abacus [14], desenvolvido pelo professor Roberto M. Ziller, simula o
processador 8085 da Intel®. Possui uma interface gráfica através da qual mostra o
conteúdo de seus registradores, os flags, o conteúdo da memória e o código em
execução para que o usuário possa escrever seus programas, executá- los passo a passo
ou continuamente, visualizar o comportamento do programa e as alterações que suas
instruções causam às estruturas internas ao processador e ao conteúdo da memória.
Criado especificamente para a plataforma Windows, o Winmips64 [15] permite
executar instruções do processador Mips. Com ele é possível ao aluno aprender
visualmente o conceito de pipeline. O usuário pode executar passo a passo as instruções
e acompanhar o funcionamento interno de um processador Mips simulado. Em outro
trabalho [16], um simulador foi desenvolvido para permitir aos usuários explorar
entrada/saída concorrente no Unix. O simulador pode execut ar programas
desenvolvidos pelo usuário e mostrar o relacionamento entre as várias estruturas de
dados envolvidas na entrada/saída, incluindo a tabela de descritores de arquivos, a
tabela de arquivos abertos do sistema, os i- nodes e os dados armazenados no disco. O
usuário pode executar o programa lentamente, avançar ou retroceder para analisar os
dados detalhadamente.
Em 2004, o simulador SOS [1] foi desenvolvido e se tornou o precursor da
ferramenta SOIS. SOS foi especificado em dois grandes componentes. No primeiro
componente havia um processador simulado para um conjunto próprio de instruções e
um montador de mnemônicos. No segundo componente havia o sistema operacional
simulado propriamente dito, sendo este composto de vários módulos de gerenciamento
comumente existentes em um sistema operacional, além de uma interface gráfica. A
Figura 1 mostra seus principais componentes e relacionamentos. A principal deficiência
do SOS era o conjunto reduzido de instruções disponíveis e a dificuldade de agregar
novos componentes ao sistema, motivo pelo qual ele foi abandonado e um novo
processador [2] foi implementado com um subconjunto de instruções IA-32. A Figura 2
mostra a visão interna do processador simulado.
Figura 1. SOS em Camadas – Precursor da Ferramenta SOIS
92
XIV ERI-PR 2007
ISBN: 978-85-7669-115-0
Um outro projeto bastante similar ao presente projeto, intitulado Trimaran [17],
proposto por um consórcio entre a HP e universidades, visa o desenvolvimento de uma
infra-estrutura de compilação sobre a plataforma EPIC, voltada para a exploração de
paralelismo em nível de instrução (ilp). Trimaran compõe-se de facilidades de descrição
de arquiteturas ilp, uma arquitetura ilp parametrizada, um compilador C e uma interface
gráfica do usuário.
Figura 2. Visão Interna do Processador Simulado
4. Projeto e Implementação do Sistema de Entrada/Saída
O simulador de entrada/saída desenvolvido não tem como base alguma arquitetura em
particular, sendo a generalização de várias teorias descritas na literatura especializada.
O projeto é focado nos princípios básicos comuns à maioria dos sistemas de
computadores. Os dispositivos principais de um computador simples foram criados:
disco, vídeo, teclado, um barramento central, um relógio do sistema e um dispositivo
para dar suporte ao tratamento de interrupções e recursos de DMA, com todas as
funções de gerenciamento e transferência de dados. O usuário pode interferir no
funcionamento do sistema de entrada e saída, realizar experiências e criar um arquivo de
log para acompanhar o funcionamento interno.
O recurso central do simulador é o barramento. Não há qualquer tráfego direto
de informação entre os dispositivos, devendo todo envio e recebimento de dados ser
feito através do barramento do sistema. O modelo de entrada/saída adotado é a de
interrupção. Para facilitar a implementação de tal projeto, o mesmo não foi
implementado de forma integrada ao processador SOIS, que por si só já possui uma
complexidade que dificultaria a detecção e recuperação de erros de simulação. O
simulador de entrada/saída opera sobre um processador próprio constituído de um
conjunto mínimo de instruções. Entretanto, agora que o mesmo já está operacional e
depurado, a integração do mesmo ao processador SOIS será mais fácil. A Figura 3
ilustra como deverá ficar esta integração.
93
XIV ERI-PR 2007
ISBN: 978-85-7669-115-0
Figura 3. Integração Processador e Sistema de Entrada/Saída
Todos os componentes do sistema de entrada/saída se comunicam entre si
através do barramento. O simulador define três variáveis para comunicação com os
dispositivos: Dados, Status e Endereço, os quais servem para simular o funcionamento
de um barramento real. Todas as interfaces do simulador têm características comuns,
sendo dotadas de registradores de funções, números de portas de endereçamento,
funções de entrada e saída, um buffer e um temporizador para simular tempos de
resposta diferentes. O algoritmo básico é apresentado na Figura 4.
Acabou a espera?
sim
Decrementa delay
início
sim
não
Barramento
ocupado?
Sai do ciclo
Interface ocupada?
não
sim
Envia dado
requerido pelo
barramento
não
não
Barramento com
dados para esta
interface?
Executa ação de
acordo com a porta
de E/S
sim
Segura o delay por
mais um ciclo
Guarda a
requisição do
barramento
Libera barramento
ofe
Ajusta delay de
acordo com o
periférico
req
Barramento
oferecendo ou
requerendo dado?
Figura 4. Fluxograma de Funcionamento Padrão das Interfaces
A lógica do código de todos os componentes é a mesma; uma vez compreendida
uma interface, todas funcionam do mesmo modo, facilitando o aprendizado e
diferenciando apenas nas particularidades inerentes a cada função que aquela interface
94
XIV ERI-PR 2007
ISBN: 978-85-7669-115-0
executa com o periférico. Cada dispositivo tem uma interface específica que faz a
comunicação com o barramento central. As interfaces têm um número limitado de
portas e cada porta tem uma função diferente. Isto é necessário para realizar as várias
tarefas designadas aos periféricos.
O sistema de vídeo não possui modo gráfico, trabalhando somente em modo
texto com resolução de 40x12 caracteres. A controladora tem 10 páginas de vídeo e
cada página ocupa 480 bytes de memória, sendo um byte para cada posição no vídeo. É
possível ter apenas uma página ativa por vez, permitindo um melhor suporte para o
sistema operacional multitarefa. O hardware do simulador tem 2 discos rígidos, cada um
com capacidade de 4MB de espaço para armazenamento. Este espaço é dividido em
blocos de memória de 1KB, fazendo com que cada HD simulado tenha 4096 blocos.
Os discos têm 4 pratos de face única com 1 mega cada de espaço divididos em
64 cilindros, e cada cilindro com 16 blocos. Quando a interface de disco recebe alguma
ordem do processador, o primeiro passo executado é liberar o barramento. A interface
controladora de disco funciona exatamente como qualquer interface genérica. Há a
opção de utilizar DMA para transferências. Se o DMA está executando alguma função,
o processador pode executar outras instruções normalmente, competindo com a
controladora de DMA pelo barramento.
A controladora de teclado, a cada ciclo, verifica se foi pressionada alguma tecla.
Se isso não ocorreu, o ciclo é abandonado. Caso tenha sido pressionada, os dados em
formato de caractere ASCII são armazenados em um buffer da interface. Esse buffer tem
um tamanho de 256 caracteres. Se o buffer está cheio os novos dados teclados são
ignorados e uma chamada de interrupção é enviada ao tratador de interrupção. Quando o
sistema operacional puder tratará a interrupção do teclado.
A arbitragem adotada pelo tratador de interrupção é por prioridade. Todos os
componentes têm um número associado no tratador de interrupção, no qual o mesmo
representa uma posição no vetor de interrupções. Através desse número é possível
saber qual o dispositivo que está requisitando uma interrupção e a sua prioridade. Como
o processador tem prioridade máxima, o seu número no tratador de interrupção é 0.
A controladora de DMA do simulador está implementada dentro da controladora
de disco. Uma particularidade deste projeto em relação à maioria dos projetos reais de
computadores é que o DMA não tem o modo “Hold State”, ou seja, o DMA não tem
controle exclusivo do barramento no momento da sua operação. Quando o DMA está
executando alguma função, o processador, juntamente com todos os outros dispositivos,
continua executando e concorrendo ao barramento.
O processador é tratado pelo sistema como mais uma interface. A única
diferença é a prioridade no tratador de interrupção. Qualquer interface controladora
poderá enviar e receber dados do processador como se estivesse acessando qualquer
outra interface de forma transparente. O funcionamento do processador é baseado em
ciclos, conforme mostra a Figura 5.
O Relógio do sistema é bastante simples, possuindo apenas a função de contar
ciclos. Quando o contador de ciclos chega ao final, seu va lor é reinicializado e é enviada
uma interrupção de relógio para o processador. Dessa forma, o “Time Slice” é simulado,
dando suporte ao sistema operacional multitarefa. O simulador tem um megabyte de
espaço em memória e a pilha utiliza as últimas posições. Não há proteção na área da
95
XIV ERI-PR 2007
ISBN: 978-85-7669-115-0
pilha, podendo ser escrito nesta área. Como visto, o processador tem acesso direto à
memória do sistema, mas é possível utilizar as instruções in e out para acessar ou enviar
dados através do barramento, concorrendo com outros periféricos.
sim
início
Wait state?
sim
sim
Recebe dados /
Libera barramento
não
não
Trata interrupção
Dado liberado no
barramento?
Há interrupção a
tratar?
Requer dados ao
barramento
(wait state)
Sai do wait state
Envia dados ao
barramento
Sai do ciclo
não
Lê instrução da
memória
Sai do ciclo
in
out
não
Executa instrução
Instrução de E/S?
Barramento livre?
não
Reinicia no próximo
ciclo
sim
Figura 5. Funcionamento do Ciclo do Processador
Uma interface de visualização, baseada em caracteres, que permite rapidez na
manipulação e compatibilidade com diferentes sistemas hospedeiros, foi desenvolvida
como solução provisória para o acompanhamento e monitoramento do sistema de
entrada/saída. Esta interface não se refere à interface principal do simulador, a qual
ainda será desenvolvida como um módulo a parte. A tela principal da interface do
sistema de entrada/saída é dividida em 4 partes, conforme abaixo, sendo mostrada na
Figura 6.
•
Display da interface de vídeo – onde os resultados das ações executadas pelo
sistema de vídeo do simulador podem ser visualizados.
•
Interfaces – onde o funcioname nto interno dos dispositivos de E/S do
simulador pode ser visualizado, estando a interface de vídeo, teclado, disco e
DMA representados graficamente.
•
Registradores – onde as ações e movimentos de dados entre os regis tradores
podem ser acompanhados, inclusive o ponteiro de pilha, contador de
programa e flag.
•
Componentes – onde todos os outros componentes do simulador são
acompanhados, permitindo a visualização do funcionamento do Barramento,
as instruções do processador e seu estado atual, memória e outros.
No término da execução de todos os ciclos, o sistema grava em um arquivo os
dados obtidos, contendo uma tabela com todas as informações necessárias para o
acompanhamento do funcionamento do simulador. O simulador foi testado em diversas
situações e se mostrou eficiente e adequado ao ensino de graduação. A Figura 6 mostra
um snapshot da execução de um programa de “jogo de rebate bola”, o qual foi
96
XIV ERI-PR 2007
ISBN: 978-85-7669-115-0
apresentado durante a defesa do trabalho de conclusão de curso e aprovado pela banca
examinadora.
Figura 6. Tela Principal do Simulador de Entrada/Saída
5. Conclusões e Trabalhos futuros
Existem várias ferramentas disponíveis voltadas à simulação de arquiteturas de
hardware quanto de software, mas existem poucas ferramentas com a capacidade de
simular um sistema computacional completo, mantendo a simplicidade de
funcionamento e com código aberto para alterações e experiências de laboratório. Neste
contexto, a ferramenta SOIS tem importância contextualizada e o presente trabalho
contribui com o desenvolvimento do sistema de entrada/saída desta ferramenta.
O módulo de simulação do sistema de entrada/saída possui uma interface
simples de visualização, provisória, que permite ao aluno de graduação entender de
forma simples as operações realizadas internamente no hardware, durante as operações
de entrada/saída. O simulador permite visualizar o fluxo de informações no barramento,
nas portas e nos dispositivos. O simulador foi testado na execução de “jogo de rebate
bola” e seu funcionamento foi avaliado e aprovado através da análise das telas de
monitoração e dos arquivos de log.
Como trabalhos futuros, o módulo de simulação de entrada/saída deverá ser
readequado ao processador simulado IA-32 e as funções de sua interface com o usuário
deverão ser incorporadas à interface gráfica da ferramenta SOIS, a ser ainda
desenvolvida.
97
XIV ERI-PR 2007
ISBN: 978-85-7669-115-0
Referências Bibliográficas
[1] Gonçalves, Rogério A.; Mulati, Mauro H.; Silva, Valdemir P. da; Gonçalves, Ronaldo A. L.
Sistema Operacional Simulado: Ferramenta para o Ensino de Graduação. In: XXIV
Congresso da SBC/XII WEI - Workshop de Educação em Informática, Salvador, 2004.
[2] Gonçalves, R. A.; Gonçalves, R. A. L. Sistema Operacional Integrado Simulado: Projeto e
Implementação do Módulo Processador. Escola Regional de Informática Paraná (ERIPR). FFALM. Bandeirantes. 2006.
[3] Silva, V. P.; Gonçalves, R. A. L. Ferramenta SOIS: Simulação de Interfaces, Periféricos e
Dispositivos de Entrada e Saída. Trabalho de Conclusão de Curso. Universidade Estadual
de Maringá. Departamento de Informática. 2006.
[4] Carpinelli, J. Computer Systems Organization & Architecture, Addison Wesley. 2000.
[5] Lorin, H. Introduction to Computer Architecture and Organization. John Wiley
Professional, 1989.
[6] Stallings, W. Computer Organization and Architecture. Prentice-Hall. 2002.
[7] Carter, N. Arquitetura de Computadores. Editora Bookman. 2003.
[8] Tanenbaum, A. S. Modern Operating Systems. Prentice-hall. 2001.
[9] Langdon, G. G. Projeto de Computadores Digitais. Editora Edgard Blucher. 1977.
[10] Christopher, W. A., Procter, S. J. and Anderson, T. E. “The Nachos Instructional Operating
System”. University of California, Berkeley. Technical Report CSD-93-739, 1993.
[11] Weber, R. F. Fundamentos de Arquitetura de Computadores. 1ª Edição, Séries Livros
Didáticos. Instituto de Informática da UFRGS: Editora Sagra Luzzatto, Porto Alegre,
2000.
[12] Maia, L. P. and Pacheco, A. C. “A Simulator Supporting Lectures on Operating Systems”.
Proceedings of the 33rd ASEE/IEEE Frontiers in Education Conference, November 5-8,
Boulder, CO, USA, 2003.
[13] Atkin, B. and Sirer, E.G. “PortOS: An Educational Operating System for the Post-PC
Environment”. Computer Science Department, Cornell University. Proceedings of the
33rd ACM Technical Symposium on Computer Science Education, 2002.
[14] Ziller, Roberto M. Microprocessadores: Conceitos Importantes. 2ª Edição. EEL – UFSC,
Florianópolis, ISBN: 85-901037-2-2, SC, 2000.Florianópolis, ISBN: 85-901037-2-2, SC,
2000.
[15] Scott, M. Using WinMIPS64 Simulator: A Simple Tutorial. Disponível no site
http://www.computing.dcu.ie/~mike/winmips64.html em 2006.
[16] Robbins, S. A UNIX Concurrent I/O Simulator. Proceedings of the SIGCSE (Technical
Symposium on Computer Science Education), Houston, Texas, USA, March 2006.
[17] Trimaran Compiler: Research Infraestructure for Instruction Level Paralellism. Tutorial
disponível em 20/05/2007 no endereço www.trimaran.org
98
Download