Prévia do material em texto
Centro Federal de Educação Tecnológica - CEFET/RJ UnED Nova Friburgo Curso Técnico de Informática Prof. Thiago Delgado Pinto SISTEMAS OPERACIONAIS HARDWARE E SOFTWARE Atualizado em 29/02/2012 http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • Arquitetura de Von Neumann • Arquitetura de Harvard • Arquitetura de Harvard Modificada • Memória • Unidade Central de Processamento • Família de UCPs 80x86 • Registradores de 16 bits • Registradores de 32 bits • Endereçamento em Modo Real • Endereçamento em Modo Protegido de 16 bits • Endereçamento em Modo Protegido de 32 bits • Interrupções • Sistema Básico de Entrada e Saída (BIOS) • Registro Mestre de Inicialização (MBR) • Gerenciador de Inicialização (Boot Manager) Prof. Thiago Delgado Pinto 2 Agenda http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • Proposta por John von Neumann (1903-1957), em 1946, para o EDVAC1 Prof. Thiago Delgado Pinto 3 Arquitetura de Von Neumann [1/2] ULA Unidade de Controle Memória (dados e instruções) Dispositivos de E/S 1- Veja o original (Introduction to “The First Draft Report on the EDVAC") em: <http://qss.stanford.edu/~godfrey/vonNeumann/vnedvac.pdf> http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • A UCP pode ler uma instrução ou ler/gravar um dado da/na memória. • Mas não pode fazer ambos simultaneamente, pois usa o mesmo barramento para instruções e dados. • Apresenta um conjunto complexo de instruções – Logo, usa microcontroladores CISC (Complex Instruction Set Computer) Prof. Thiago Delgado Pinto 4 Arquitetura de Von Neumann [2/2] http://creativecommons.org/licenses/by-nc-sa/3.0/br/ • IBM System/360 • DEC PDP-11 e VAX • Motorola 68x0/m68000/68000 – Apple Macintosh, Commodore Amiga, Sinclair GL, Atari ST, Atari Jaguar, Sega Mega Drive, Sega Saturn, SNK NeoGeo, Palm Pilot, além de estações de Trabalho Unix, Sun, NeXT e Silicon Graphics • Intel 8086 em diante Prof. Thiago Delgado Pinto 5 CISC – Exemplos de uso http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • Idealizada por Haward Aiken, para o Harvard Mark I, em 1944 • Separa memória de dados e de instruções Prof. Thiago Delgado Pinto 6 Arquitetura de Harvard [1/2] ULA Unidade de Controle Memória para dados Dispositivos de E/S Memória para instruções http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • Apresenta melhor desempenho que a de Von Neumann – Pois pode ler uma instrução e ler/gravar um dado da/na memória simultaneamente – Usa barramentos diferentes • Enquanto uma instrução está sendo executada, outra está sendo lida, simultaneamente. – Isto é chamado de Pipelining (canalização) • Apresenta um conjunto simples de instruções – Logo, usa microcontroladores RISC (Reduced Instruction Set Computer) Prof. Thiago Delgado Pinto 7 Arquitetura de Harvard [2/2] http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • DEC Alpha • AMD 29k • ARC • ARM – Apple iPod, Apple iPhone, Apple iPod Touch, Apple iPad, PocketPC, RIM Blackberry, Microsoft Windows Mobile, Nintendo Game Boy Advance, NintendoDS, Android smartphones e tablets • Atmel AVR – Controles do Xbox, carros da BMW • Blackfin • MIPS – Computadores Silicon Graphics, Sony Playstation 1/2/Portable, Nintendo 64 • HP PA-RISC – Calculadoras, impressoras, etc. • Power/PowerPC – Apple PowerPC, Nintendo Gamecube, Nintendo Wii, Microsoft Xbox 360, Sony Playstation 3, impressoras e carros • Hitachi SuperH – Sega Super32x, Sega Saturn, Sega Dreamcast • Oracle SPARC Prof. Thiago Delgado Pinto 8 RISC – Exemplos de uso http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • Usa uma cache para instruções • E outra cache para dados • Não divide a memória Prof. Thiago Delgado Pinto 9 Arquitetura de Harvard Modificada ULA Unidade de Controle Cache de dados Dispositivos de E/S Memória (dados e instruções) Cache de instruções Cache L1 (Nível 1) http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • Quando a UCP acessa as caches, age como uma máquina de Harvard • Quando a UCP acessa a memória, age como uma máquina de Von Neumann – Ao acessar a memória, não faz distinção entre instruções e dados – Se um dado/instrução não está na sua respectiva cache, copia para a mesma • Arquitetura bastante usada nas UCPs modernas Prof. Thiago Delgado Pinto 10 Arquitetura de Harvard Modificada http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • Sua unidade básica é o byte. • Cada byte é rotulado com um número único chamado de endereço. – Geralmente em base hexadecimal • Valores são guardados como números Prof. Thiago Delgado Pinto 11 Memória [1/2] . . .54 68 69 61 67 6f 0 0 1 2 3 FABA FABB FABC ... ... http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • ASCII/ISO é o mais usado para caracteres – Um byte por caractere (2^8=256 caracteres) – 0..127 é padrão (ASCII) • Caracteres de controle, alfabeto, números, símbolos, pontuação, etc. – 128..255 varia conforme a região (ISO): • Diacríticos*, símbolos especiais, etc. – Exemplo: "A" é o representado como 4116 (ou 6510) • Unicode vem gradualmente o substituindo – Dois bytes por caractere (2^16=65536 caracteres) – Permite representar o alfabeto de todos os países e outros caracteres especiais. – Exemplo: "A" é representado como 004116 (ou 006510) Prof. Thiago Delgado Pinto 12 Memória [2/2] *=Um diacrítico é um sinal gráfico que se coloca sobre, sob ou através de uma letra para alterar o seu som (fonema). Exs: "ç", "é". http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software Prof. Thiago Delgado Pinto 13 ASCII + ISO/IEC 8859-1 (Latin 1) http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • Instruções podem operar sobre dados. • Estes dados devem estar numa memória especial, ainda mais rápida que a cache, chamada de registradores. • O número de registradores é limitado. – Logo, somente os dados atualmente em uso devem ser guardados neles. Prof. Thiago Delgado Pinto 14 Unidade Central de Processamento [1/2] http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • Instruções estão em código de máquina, que são números. – Isto simplifica a decodificação da instrução • Cada número, obviamente, tem um significado – Por exemplo, 03 equivale a operação de soma (add) – O significado varia de acordo com a UCP ! • Obviamente, programar assim é tedioso – Por isso, a linguagem Assembly foi criada – Nela, é possível escrever código de forma textual – Um programa irá traduzir-la para código de máquina Prof. Thiago Delgado Pinto 15 Unidade Central de Processamento [2/2] http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • Possuem uma linguagem de máquina básica • 8088 e 8086 – 14 registradores de 16 bits: • AX, BX, CX, DX, SI, DI, BP, SP, CS, DS, SS, ES, IP e FLAGS • Cada registrador (de 16 bits, ou seja, 2 bytes) tem: – Um byte alto (high, ou simplesmente H) – Um byte baixo (low, ou simplesmente L). – Caso desejado, AX, por exemplo, pode ter seu byte alto acessado individualmente por AH e seu byte baixo acessado individualmente por AL – Memória de programa dividida em segmentos de até 64 K cada (16 bits, logo 2^16 = 64K) – UCP suporta até 1MB de memória (RAM) • Acesso em Modo Real (sem proteção entre programas !) Prof. Thiago Delgado Pinto 16 Família de UCPs 80x86 http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • 80286 – Foi usado nos computadores AT – Acrescenta instruções na linguagem de máquina do 8088/86 – Mesmos registradores de 16 bits • Agora em Modo Protegido – Memória de programa continua dividida em segmentos de até 64K cada – UCP suporta até 16 MB de memória Prof. Thiago Delgado Pinto 17 Família de UCPs 80x86http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • 80386 – Estendeu alguns registradores para 32 bits (4 bytes) • EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP, EIP, EFLAGS • Os registradores agora acessam a parte baixa dos novos registradores (por exemplo, AX acessa os 16 bit baixos de EAX). Não há como acessar os 16 bit altos individualmente. – Acrescentou dois registradores de 16 bits • FS e GS (ambos semelhantes à ES) – Memória de programa dividida em segmentos de até 4 GB cada (32 bits logo 2^32 = 4 GB) – UCP suporta até 4 GB de memória Prof. Thiago Delgado Pinto 18 Família de UCPs 80x86 http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • 80486, Pentium, Pentium Pro – Poucas mudanças estruturais significativas – Melhoria foi mais de desempenho • Pentium MMX (MultiMedia eXtensions) – Acrescentou instruções para acelerar operações gráficas comuns • A partir daí as instruções MMX foram incorporadas aos processadores Intel Prof. Thiago Delgado Pinto 19 Família de UCPs 80x86 http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software Prof. Thiago Delgado Pinto 20 Registradores de 16 bits [1/2] • AX, BX, CX e DX: De propósito geral, geralmente usados para troca de dados e operações aritméticas • SI e DI: De índice, usados geralmente como ponteiros • BP e SP: (Base Pointer e Stack Pointer) usados para apontar para dados na pilha (do código de máquina). • CS, DS, SS e ES: (Code Segment, Data Segment, Stack Segment e Extra Segment) denotam qual segmento de memória está sendo usado pelo código do programa. • IP: (Instruction Pointer) é usado com o CS para denotar a próxima instrução a ser executada. Normalmente, assim que uma instrução é executada, IP é avançado para o ponto da próxima instrução na memória. • FLAGS: Armazena informações importantes sobre os resultados de execução da instrução anterior. http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software Prof. Thiago Delgado Pinto 21 Registradores de 16 bits [2/2] 16 bits 8 bits 8 bits AX AH AL Exemplo: 8 bits High 8 bits Low http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software Prof. Thiago Delgado Pinto 22 Registradores de 32 bits 32 bits 16 bits 16 bits 8 bits 8 bits EAX ? AX AH AL Exemplo: 8 bits 8 bits ? ? ? significa que o registrador não é acessível diretamente. 16 bits High 16 bits Low http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • Memória é limitada a 1 MB (2^20 bytes) – Vai de 00000 à FFFFF • Mas os registradores só tem 16 bytes ! – Como colocar um valor de 20 bytes num registrador de 16 bytes ? – Não coloca. Usa dois... • Logo a memória é endereçada por dois registradores – Um é o chamado de seletor – E o outro de deslocamento (offset) Prof. Thiago Delgado Pinto 23 Endereçamento em Modo Real [1/3] http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • Exemplo: – Seletor = 047C e Deslocamento = 0048 – Na notação padrão é referenciado como 047C:0048 • Para calcular o endereço final de 2 bytes (32 bit), temos que somar ambos. – Porém o byte à esquerda é alto, e deve ser multiplicado por 16 • Multiplicar por 16 em hexa é fácil – Basta acrescentar um zero à direita ! (como x10 em base decimal) • Logo: seletor * 16 + deslocamento 047C*16 + 0048 = 047C0 + 0048 = 04808 Prof. Thiago Delgado Pinto 24 Endereçamento em Modo Real [2/3] http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • Limitações – Com 16 bits, só podemos referenciar 2^16 = 64 K – Por isso o tamanho máximo de segmento (área da memória onde fica as instruções do programa) é 64K – Assim, quando a execução muda de um segmento para o outro, o valor de CS deve ser mudado! • Um problema similar ocorre para endereçamento dados e é preciso atualizar DS. – Além disso, o endereço de um segmento não é único, o que pode complicar sua comparação • 047C:0048 = 047D:0038 = 047E:0028 = 047B:0058 Prof. Thiago Delgado Pinto 25 Endereçamento em Modo Real [3/3] http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • No Modo Real, o seletor é um número de um endereço físico da memória, do início de um segmento. • No Modo Protegido, é usada uma técnica chamada de Memória Virtual2. – Só mantém na memória os dados e instruções que os programas estão atualmente usando – Segmentos não usados podem ser movidos para a memória secundária (disco) e obtidos quando preciso – Quando o segmento volta do disco, pode ocupar um endereço diferente do que tinha originalmente – Logo, o endereços dos segmentos não é fixo Prof. Thiago Delgado Pinto 26 End. em Modo Protegido de 16 bits [1/3] 2- Estudaremos esse assunto futuramente, em Gerência de Memória Virtual http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • O seletor então será um índice de uma tabela de mapeamento, que guarda onde está fisicamente cada segmento. • Essa tabela é mantida pelo Sistema Operacional. • O programa em execução só conhece os índices desta tabela, e não mais os endereços físicos dos segmentos. Prof. Thiago Delgado Pinto 27 End. em Modo Protegido de 16 bits [2/3] http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • Limitações – O limite de segmentos de 64 K ainda existe Prof. Thiago Delgado Pinto 28 End. em Modo Protegido de 16 bits [3/3] http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • Com 32 bits, é possível endereçar até 4 GB (2^32) • Nesta técnica de Memória Virtual, cada segmento pode ser dividido em páginas de tamanho fixo, usualmente 4 K. • Agora, somente partes de um segmento (algumas de suas páginas) necessitam estar na memória de uma só vez, e não o segmento todo. – Isso é prático, já que um segmento pode ter até 4 GB! Prof. Thiago Delgado Pinto 29 End. em Modo Protegido de 32 bits [1/2] http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • O Sistema Operacional gerenciará as páginas utilizadas pelo programa. • A tabela de mapeamento endereçará essas páginas. • O endereçamento do programa ocorrerá pelo índice dessa tabela (endereço virtual). Prof. Thiago Delgado Pinto 30 End. em Modo Protegido de 32 bits [2/2] http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • Em certos momentos, o fluxo de um programa deve ser interrompido para processar eventos que precisam ser respondidos prontamente. • Por exemplo, quando o mouse é movido, seu hardware interrompe o programa atual, para que ele trate o seu movimento (cursor). • Interrupções fazem o controle ser passado para uma tratadora de interrupção. Prof. Thiago Delgado Pinto 31 Interrupções [1/7] http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • Uma tratadora de interrupção é uma rotina que processa a interrupção. • Uma tabela de vetores de interrupção reside no início da memória física. • Cada vetor de interrupção contém o endereço do segmento onde está sua respectiva tratadora de interrupção. • Cada tipo de interrupção é associado a um número inteiro, que é o índice desta tabela. Prof. Thiago Delgado Pinto 32 Interrupções [2/7] http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • Há interrupções externas, geradas por hardware externo à CPU – Por exemplo, a maioria dos dispositivos de E/S gera uma interrupção • E há interrupções internas, geradas pela própria CPU, quando o motivo for – Erro – Instrução de Interrupção Prof. Thiago Delgado Pinto 33 Interrupções [3/7] http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • Quando uma interrupção interna ocorre por motivo de erro, a chamamos de Trap. – Geralmente uma trap faz a abortar o programa. • Quando ocorre por uma instrução de interrupção, a chamamos de Interrupção de Software ou Exceção. Prof. Thiago Delgado Pinto 34 Interrupções internas [4/7] http://creativecommons.org/licenses/by-nc-sa/3.0/br/Hardware e Software Prof. Thiago Delgado Pinto 35 Interrupções internas – Tabela do Intel Pentium [5/7] Número do Vetor Descrição 0 Erro de divisão 1 Exceção de depuração 2 Interrupção nula 3 Ponto de controle 4 Overflow detectado 5 Exceção de intervalo limite 6 Código do campo de operação (op) inválido 7 Dispositivo não disponível 8 Erro duplo 9 Segmento de sobrecarga do co-processador 10 Segmento de estado de tarefa inválido 11 Segmento não presente 12 Erro de pilha 13 Proteção geral 14 Erro de página 15 Endereço reservado (não utilizado) 16 Erro de ponto flutuante 17 Verificação de alinhamento 18 Verificação de máquina 19-31 Faixa reservada (não utilizada) 32-255 Interrupções mascaráveis http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • Ao iniciar o tratamento da interrupção, a tratadora salva o valor dos registradores do programa em execução. • Após o término da interrupção, ela restaura o valor dos registradores e retorna o controle (de execução) para o programa que a gerou. • Quando ocorrem traps, geralmente o controle não é retornado para o programa e sua execução é interrompida abruptamente (abortada). Prof. Thiago Delgado Pinto 36 Interrupções – tratadora [6/7] http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • Para os programas, as interrupções externas podem ocorrer de maneira praticamente transparente, casos eles não a tratem ou monitorem. • O sistema operacional trata as interrupções e permite que os programas respondam e interajam com as mesmas, através das rotinas de sua API (Application Programming Interface). • Caso desejado, os programas podem criar suas próprias rotinas de tratamento de interrupção, trabalhando junto ao sistema operacional. Prof. Thiago Delgado Pinto 37 Interrupções externas – efeito [7/7] http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • O Sistema Básico de Entrada e Saída (BIOS) é um programa previamente gravado numa Flash ROM3 que é responsável pelo – Reconhecimento e acesso básico ao hardware; e – Carga do sistema operacional. Prof. Thiago Delgado Pinto 38 BIOS [1/4] 3- As primeiras placas-mãe usavam ROM e depois PROM, até que no início da década de 1990 passou a ser usada a Flash ROM. http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • O sistema também possui um programa de configuração (setup) – As configurações são armazenadas numa memória volátil que possui a tecnologia CMOS (Semicondutor Metal-óxido complementar), que possui baixíssimo consumo. – Pela memória usar esta tecnologia4, ela pode ser alimentada por uma simples bateria de lítio (3V). – Nesta memória também são armazenadas a data e a hora atual do computador. Prof. Thiago Delgado Pinto 39 BIOS [2/4] 4- Também usada em relógios de pulso e calculadoras. http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • O sistema é executado da Flash ROM pelo processador assim que o computador é ligado. • Assim que inicia, executa um Auto-Teste de Inicialização (POST – Power-On Self-Test) – Identifica e carrega a configuração – Inicializa todos os dispositivos periféricos ligados à placa-mãe – Inicializa a placa de vídeo – Testa memória e teclado Prof. Thiago Delgado Pinto 40 BIOS [3/4] http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • Após o POST, o BIOS irá: – Procurar por um MBR (Master Boot Record) nos dispositivos de armazenamentos detectados, na ordem pré-configurada (ex: 1º Flash, 2º CD, 3º HD) – Transferir o programa gravado no primeiro MBR detectado para a RAM e o executar. Prof. Thiago Delgado Pinto 41 BIOS [4/4] http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • O Registro Mestre de Inicialização (MBR) é uma área do dispositivo de armazenamento secundário, com 512 bytes, que é usado para: – Armazenar o programa que irá efetuar a inicialização de um sistema operacional – Armazenar a tabela de partições do dispositivo de armazenamento secundário – Armazenar o identificador único do hardware, chamado de Assinatura Prof. Thiago Delgado Pinto 42 MBR [1/3] http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software Prof. Thiago Delgado Pinto 43 MBR – estrutura interna [2/3] Endereço Descrição Tamanho (bytes) 0000 Área de código 440 (máx. 446) 01B8 Assinatura do disco 4 01BC Geralmente vazia (preenchida com 0) 2 01BE Tabela de partições primárias (primeiros 16 bytes seguem o esquema de partição IBM) 64 01FE Assinatura da MBR (valores 0x55 e 0xAA) 2 Total: 512 bytes Saiba mais em http://en.wikipedia.org/wiki/Master_boot_record http://creativecommons.org/licenses/by-nc-sa/3.0/br/ http://en.wikipedia.org/wiki/Master_boot_record Hardware e Software • Como vimos a área de código da MBR é pequena (440-446 bytes). • Muitas vezes, o programa gravado nela simplesmente chama outro, que é lido do dispositivo de armazenamento secundário para a RAM, e desta executado. • Esse outro programa geralmente é um gerenciador de inicialização (boot manager). – Que é geralmente instalado pelo sistema operacional Prof. Thiago Delgado Pinto 44 MBR – redirecionamento [3/3] http://creativecommons.org/licenses/by-nc-sa/3.0/br/ Hardware e Software • O Gerenciador de Inicialização, instalado por um sistema operacional ou por outro meio, permite carregar um sistema operacional. • Se houverem sistemas operacionais instalados em partições diferentes da memória secundária, ele pode reconhecer e possibilitar escolher qual se deseja iniciar. • Há também a possibilidade de iniciar a partir de um sistema operacional localizado na rede. Prof. Thiago Delgado Pinto 45 Gerenciador de Inicialização (Boot Manager) Saiba mais em http://en.wikipedia.org/wiki/Boot_manager http://creativecommons.org/licenses/by-nc-sa/3.0/br/ http://en.wikipedia.org/wiki/Boot_manager Hardware e Software • No Wikipedia – http://en.wikipedia.org/wiki/Boot_manager • Detalhes históricos e de funcionamento do BOOT. – http://en.wikipedia.org/wiki/Preboot_Execution_Environment e http://en.wikipedia.org/wiki/Wake-on-LAN • Detalhes sobre BOOT pela rede. – http://en.wikipedia.org/wiki/Master_boot_record • Detalhes de implementação da MBR. – http://en.wikipedia.org/wiki/Input/Output_Base_Address • Endereços de E/S de dispositivos – http://en.wikipedia.org/wiki/Interrupt_request e http://en.wikipedia.org/wiki/Intel_8259 • Detalhes sobre pedidos de interrupção (IRQ) • Outros – http://thestarman.pcministry.com • Informações interessantes sobre BIOS, MBR e Assembly. Prof. Thiago Delgado Pinto 46 Para saber mais... http://creativecommons.org/licenses/by-nc-sa/3.0/br/ http://en.wikipedia.org/wiki/Boot_manager http://en.wikipedia.org/wiki/Boot_manager http://en.wikipedia.org/wiki/Preboot_Execution_Environment http://en.wikipedia.org/wiki/Wake-on-LAN http://en.wikipedia.org/wiki/Wake-on-LAN http://en.wikipedia.org/wiki/Wake-on-LAN http://en.wikipedia.org/wiki/Wake-on-LAN http://en.wikipedia.org/wiki/Wake-on-LAN http://en.wikipedia.org/wiki/Boot_manager http://en.wikipedia.org/wiki/Input/Output_Base_Address http://en.wikipedia.org/wiki/Interrupt_request http://en.wikipedia.org/wiki/Intel_8259 http://thestarman.pcministry.com/ Fim • CARTER, Paul A. PC Assembly Language. 2006. Pág. 4-10. • BACON, Jean; HARRIS, Tim. Operating Systems: Concurrent and Distributed Software Design. 2003. Addison-Wesley. Section 3.2. • PIC24MICRO. Introduction to Microcontrollers – Microcontrollers architecture. Disponível em: < http://www.pic24micro.com/harvard_vs_von_neumann.html > • SILBERSCHATZ, Abraham; GALVIN, Peter Baer; GAGNE, Greg. Fundamentos de Sistemas Operacionais. 6ª Ed. Editora LTC. Seção 13.2.2. Prof. Thiago Delgado Pinto 47 Referências http://creativecommons.org/licenses/by-nc-sa/3.0/br/ http://www.pic24micro.com/harvard_vs_von_neumann.html http://www.pic24micro.com/harvard_vs_von_neumann.html