handbook ti para concursos-modificado

551
7/13/2019 Handbook Ti Para Concursos-modificado http://slidepdf.com/reader/full/handbook-ti-para-concursos-modificado 1/551 http://www.candidatoreal.com

Upload: andreson-souza

Post on 10-Oct-2015

118 views

Category:

Documents


4 download

TRANSCRIPT

  • http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    Sumario

    I Fundamentos de Computacao 16

    1 Arquitetura e Organizacao de Computadores 171.1 Conceitos Basicos . . . . . . . . . . . . . . . . . . . . . . . . . . . 171.2 Estrutura e Funcionamento da CPU . . . . . . . . . . . . . . . . 18

    1.2.1 Pipelines . . . . . . . . . . . . . . . . . . . . . . . . . . . 201.3 Conjunto de Instrucoes . . . . . . . . . . . . . . . . . . . . . . . . 221.4 Unidade de Controle . . . . . . . . . . . . . . . . . . . . . . . . . 241.5 Modos de Enderecamento . . . . . . . . . . . . . . . . . . . . . . 251.6 Organizacao de Memoria . . . . . . . . . . . . . . . . . . . . . . . 261.7 Desempenho do computador . . . . . . . . . . . . . . . . . . . . . 28

    1.7.1 Tempo de execucao de um programa . . . . . . . . . . . . 291.7.2 Desempenho da CPU . . . . . . . . . . . . . . . . . . . . 291.7.3 Programas para medir desempenho . . . . . . . . . . . . . 301.7.4 Comparando desempenho . . . . . . . . . . . . . . . . . . 301.7.5 Lei de Amdahl . . . . . . . . . . . . . . . . . . . . . . . . 31

    2 Componentes de um Computador 332.1 Principais componentes de Hardware . . . . . . . . . . . . . . . . 34

    2.1.1 Discos Rgidos . . . . . . . . . . . . . . . . . . . . . . . . 342.1.2 Teclado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362.1.3 Mouse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372.1.4 Placa de rede . . . . . . . . . . . . . . . . . . . . . . . . . 372.1.5 Impressora . . . . . . . . . . . . . . . . . . . . . . . . . . 382.1.6 Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

    3 Aritmetica Computacional 393.1 Numeros Com Sinal e Numeros Sem Sinal . . . . . . . . . . . . . 39

    3.1.1 Sinal e amplitude/magnitude . . . . . . . . . . . . . . . . 393.1.2 Complemento de 1 . . . . . . . . . . . . . . . . . . . . . . 393.1.3 Complemento de 2 . . . . . . . . . . . . . . . . . . . . . . 393.1.4 Notacao em excesso . . . . . . . . . . . . . . . . . . . . . 40

    3.2 Adicao e Subtracao . . . . . . . . . . . . . . . . . . . . . . . . . . 413.3 Operacoes Logicas . . . . . . . . . . . . . . . . . . . . . . . . . . 413.4 Construcao de uma Unidade Logica Aritmetica . . . . . . . . . . 423.5 Ponto Flutuante . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

    1

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    4 Sistemas Operacionais 444.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444.2 Conceitos Basicos . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

    4.2.1 Multiprogramacao . . . . . . . . . . . . . . . . . . . . . . 464.2.2 Processo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464.2.3 Interrupcoes . . . . . . . . . . . . . . . . . . . . . . . . . . 474.2.4 Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

    4.3 Escalonamento de Processos . . . . . . . . . . . . . . . . . . . . . 494.4 Entrada e Sada . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

    4.4.1 Camadas do subsistema de Entrada e Sada . . . . . . . . 514.5 Gerencia de Memoria . . . . . . . . . . . . . . . . . . . . . . . . . 524.6 Sistemas de Arquivos . . . . . . . . . . . . . . . . . . . . . . . . . 54

    4.6.1 Conceitos basicos sobre arquivos . . . . . . . . . . . . . . 544.6.2 Implementacao de arquivos . . . . . . . . . . . . . . . . . 564.6.3 Cache de Sistema de Arquivos . . . . . . . . . . . . . . . 574.6.4 Gerenciamento do espaco livre . . . . . . . . . . . . . . . 584.6.5 Diretorios . . . . . . . . . . . . . . . . . . . . . . . . . . . 594.6.6 Implementacao de diretorios . . . . . . . . . . . . . . . . . 61

    4.7 Sistemas Operacionais Distribudos . . . . . . . . . . . . . . . . . 614.7.1 Estruturacao de Sistemas Distribudos . . . . . . . . . . . 63

    5 Principais Processadores de Mercado 655.1 Processadores Intel . . . . . . . . . . . . . . . . . . . . . . . . . . 65

    5.1.1 Famlia Pentium . . . . . . . . . . . . . . . . . . . . . . . 655.1.2 Famlia Celeron . . . . . . . . . . . . . . . . . . . . . . . . 685.1.3 Famlia Core . . . . . . . . . . . . . . . . . . . . . . . . . 695.1.4 Xeon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715.1.5 Itanium . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

    5.2 AMD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 755.2.1 Sempron . . . . . . . . . . . . . . . . . . . . . . . . . . . . 755.2.2 Athlon 64 . . . . . . . . . . . . . . . . . . . . . . . . . . . 765.2.3 Turion 64 . . . . . . . . . . . . . . . . . . . . . . . . . . . 795.2.4 Opteron . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

    II Logica de Programacao 83

    6 Orientacao a Objetos 846.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 846.2 Conceitos fundamentais . . . . . . . . . . . . . . . . . . . . . . . 846.3 Princpios de programacao orientada a objetos . . . . . . . . . . 906.4 Tratamento de excecoes . . . . . . . . . . . . . . . . . . . . . . . 90

    III Metodologia de Desenvolvimento 92

    7 Ciclo de Vida 937.1 Modelo sequencial linear . . . . . . . . . . . . . . . . . . . . . . . 957.2 Modelo em V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 957.3 Modelo de prototipagem . . . . . . . . . . . . . . . . . . . . . . . 96

    2

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    7.4 Modelo RAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 967.5 Modelos de processo de software evolucionarios . . . . . . . . . . 97

    7.5.1 Modelo incremental . . . . . . . . . . . . . . . . . . . . . 977.5.2 Modelo espiral . . . . . . . . . . . . . . . . . . . . . . . . 987.5.3 Modelo espiral ganha-ganha . . . . . . . . . . . . . . . . . 997.5.4 Modelo de desenvolvimento concorrente . . . . . . . . . . 100

    7.6 Desenvolvimento baseado em componentes . . . . . . . . . . . . . 1007.7 Modelo de metodos formais . . . . . . . . . . . . . . . . . . . . . 1007.8 Tecnicas de quarta geracao . . . . . . . . . . . . . . . . . . . . . 100

    8 Analise Comparativa de Processos de Desenvolvimento 1028.1 RUP - Rational Unified Process . . . . . . . . . . . . . . . . . . . 1028.2 XP - Extreme Programming . . . . . . . . . . . . . . . . . . . . . 1058.3 Scrum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1058.4 Crystal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1068.5 Feature Driven Development (FDD) . . . . . . . . . . . . . . . . 1068.6 Dynamic Systems Development Method (DSDM) . . . . . . . . 1078.7 Adaptive Software Development (ASD) . . . . . . . . . . . . . . 107

    9 Engenharia de Requisitos 1099.1 O Processo de Engenharia de Requisitos . . . . . . . . . . . . . . 1099.2 Tecnicas de Levantamento de Requisitos . . . . . . . . . . . . . . 110

    9.2.1 Observacao . . . . . . . . . . . . . . . . . . . . . . . . . . 1109.2.2 Entrevista . . . . . . . . . . . . . . . . . . . . . . . . . . . 1109.2.3 Analise de Protocolo . . . . . . . . . . . . . . . . . . . . . 1119.2.4 JAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1119.2.5 PD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1119.2.6 QFD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1119.2.7 CRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1129.2.8 Prototipacao . . . . . . . . . . . . . . . . . . . . . . . . . 1129.2.9 Cenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1129.2.10 FAST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

    9.3 Analise de Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . 1139.3.1 Metodos de analise . . . . . . . . . . . . . . . . . . . . . . 1149.3.2 Modelagem da analise . . . . . . . . . . . . . . . . . . . . 114

    9.4 Gerenciamento de Requisitos . . . . . . . . . . . . . . . . . . . . 116

    10 Metricas 11810.1 Metricas de processo e aperfeicoamento de processo de software . 11810.2 Metricas de projeto . . . . . . . . . . . . . . . . . . . . . . . . . . 11910.3 Medicao de software . . . . . . . . . . . . . . . . . . . . . . . . . 119

    10.3.1 Metricas orientadas a tamanho . . . . . . . . . . . . . . . 12010.3.2 Metricas orientadas a funcao . . . . . . . . . . . . . . . . 12010.3.3 Metricas de pontos por funcao estendidas . . . . . . . . . 122

    10.4 Metricas de qualidade de software . . . . . . . . . . . . . . . . . 12210.4.1 Fatores de qualidade de McCall . . . . . . . . . . . . . . . 12310.4.2 FURPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12310.4.3 ISO 9126 . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

    10.5 Estimativas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12410.5.1 COCOMO (Constructive Cost Model) . . . . . . . . . . . 125

    3

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    11 Testes 12711.1 Teste de caminho basico . . . . . . . . . . . . . . . . . . . . . . . 12711.2 Teste de estrutura de controle . . . . . . . . . . . . . . . . . . . . 129

    11.2.1 Teste de condicao . . . . . . . . . . . . . . . . . . . . . . . 12911.2.2 Teste de fluxo de dados . . . . . . . . . . . . . . . . . . . 13011.2.3 Teste de ciclo . . . . . . . . . . . . . . . . . . . . . . . . . 130

    11.3 Teste caixa-preta . . . . . . . . . . . . . . . . . . . . . . . . . . . 13111.3.1 Metodos de teste baseados em grafo . . . . . . . . . . . . 13111.3.2 Particionamento de equivalencia . . . . . . . . . . . . . . 13111.3.3 Analise de valor limite . . . . . . . . . . . . . . . . . . . . 13211.3.4 Teste de comparacao . . . . . . . . . . . . . . . . . . . . . 13211.3.5 Teste de matriz ortogonal . . . . . . . . . . . . . . . . . . 132

    11.4 Teste de ambientes, arquiteturas e aplicacoes especializadas . . . 13311.5 Estrategia de teste de software . . . . . . . . . . . . . . . . . . . 134

    12 UML 13612.1 Diagrama de caso de uso . . . . . . . . . . . . . . . . . . . . . . . 136

    12.1.1 Ator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13612.1.2 Descricao do caso de uso . . . . . . . . . . . . . . . . . . . 137

    12.2 Diagrama de classe . . . . . . . . . . . . . . . . . . . . . . . . . . 13712.2.1 Associacoes de classe . . . . . . . . . . . . . . . . . . . . . 138

    12.3 Diagramas de sequencia . . . . . . . . . . . . . . . . . . . . . . . 14012.4 Diagramas de colaboracao . . . . . . . . . . . . . . . . . . . . . . 14012.5 Diagramas de estado . . . . . . . . . . . . . . . . . . . . . . . . . 14112.6 Diagramas de atividade . . . . . . . . . . . . . . . . . . . . . . . 14312.7 Elementos auxiliares . . . . . . . . . . . . . . . . . . . . . . . . . 14412.8 Diagramas de componente . . . . . . . . . . . . . . . . . . . . . . 14412.9 Diagramas de distribuicao . . . . . . . . . . . . . . . . . . . . . . 144

    13 Gerencia de Configuracao e Mudancas 14513.1 As Atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14613.2 Artefatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14713.3 Papeis e Responsabilidades . . . . . . . . . . . . . . . . . . . . . 147

    14 CMM - Capability Maturity Model 14914.1 Os nveis de maturidade no CMM . . . . . . . . . . . . . . . . . 150

    14.1.1 Nvel 1 - Inicial . . . . . . . . . . . . . . . . . . . . . . . . 15014.1.2 Nvel 2 - Repetitivo . . . . . . . . . . . . . . . . . . . . . 15014.1.3 Nvel 3 - Definido . . . . . . . . . . . . . . . . . . . . . . . 15114.1.4 Nvel 4 - Gerenciado . . . . . . . . . . . . . . . . . . . . . 15214.1.5 Nvel 5 - Otimizado . . . . . . . . . . . . . . . . . . . . . 152

    14.2 Um pouco mais sobre KPAs . . . . . . . . . . . . . . . . . . . . 15214.3 Efeitos da evolucao do nvel de maturidade . . . . . . . . . . . . 153

    IV Linguagem de Programacao Java 155

    15 Conceitos Basicos de Java 15615.1 Pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15615.2 Modificadores de Acesso . . . . . . . . . . . . . . . . . . . . . . . 157

    4

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    15.3 Variaveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15715.4 Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15815.5 Expressoes, Sentencas e Blocos . . . . . . . . . . . . . . . . . . . 16015.6 Comandos de Controle de Fluxo . . . . . . . . . . . . . . . . . . 16115.7 Classes Aninhadas . . . . . . . . . . . . . . . . . . . . . . . . . . 16615.8 Tipos Enumerados . . . . . . . . . . . . . . . . . . . . . . . . . . 16715.9 Anotacoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16815.10Genericos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16915.11Reflexao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

    16 Classes Essenciais 17316.1 Exception e Controle de Excecoes . . . . . . . . . . . . . . . . . . 173

    16.1.1 Excecoes tpicas . . . . . . . . . . . . . . . . . . . . . . . 17316.1.2 Capturando Excecoes . . . . . . . . . . . . . . . . . . . . 175

    16.2 Threads e Concorrencia . . . . . . . . . . . . . . . . . . . . . . . 17616.2.1 Definindo e Iniciando uma Thread . . . . . . . . . . . . . 17616.2.2 Pausando a execucao com sleep . . . . . . . . . . . . . . . 17716.2.3 Interrupcoes . . . . . . . . . . . . . . . . . . . . . . . . . . 17816.2.4 Joins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17816.2.5 Sincronizacao . . . . . . . . . . . . . . . . . . . . . . . . . 17916.2.6 Executores e Thread Pools . . . . . . . . . . . . . . . . . 180

    16.3 Streams e Serializacao . . . . . . . . . . . . . . . . . . . . . . . . 18116.3.1 I/O Streams . . . . . . . . . . . . . . . . . . . . . . . . . 18116.3.2 Serializacao - Streams de Objetos . . . . . . . . . . . . . . 183

    16.4 Classes e Operacoes de I/O . . . . . . . . . . . . . . . . . . . . . 18516.5 Classes para manipulacao de propriedades . . . . . . . . . . . . . 185

    17 Colecoes 18817.1 Interface Collection . . . . . . . . . . . . . . . . . . . . . . . . . . 18917.2 Interface Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19017.3 Interface List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19317.4 Interface Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19517.5 Interface Queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

    18 JDBC - Java Database Connectivity 19918.1 Conceitos Basicos . . . . . . . . . . . . . . . . . . . . . . . . . . . 19918.2 Carregamento de drivers . . . . . . . . . . . . . . . . . . . . . . . 20018.3 Conexao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20018.4 Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20118.5 Prepared Statements . . . . . . . . . . . . . . . . . . . . . . . . . 20318.6 Transacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20318.7 Informacoes Complementares . . . . . . . . . . . . . . . . . . . . 20418.8 Exemplo Extra . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

    19 A plataforma J2EE 20719.1 Containers J2EE . . . . . . . . . . . . . . . . . . . . . . . . . . . 20819.2 Clientes J2EE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20919.3 Um pouco mais sobre Servlets . . . . . . . . . . . . . . . . . . . . 209

    19.3.1 Ciclo de Vida dos Servlets . . . . . . . . . . . . . . . . . . 21119.3.2 Mantendo o estado do cliente . . . . . . . . . . . . . . . . 212

    5

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    19.4 Um pouco mais sobre paginas JSP . . . . . . . . . . . . . . . . . 21319.4.1 JSP vs. Servlets . . . . . . . . . . . . . . . . . . . . . . . 215

    19.5 Um pouco mais sobre EJBs . . . . . . . . . . . . . . . . . . . . . 21619.5.1 Ciclo de Vida dos EJBs . . . . . . . . . . . . . . . . . . . 217

    V Desenvolvimento Web 220

    20 Usabilidade 22120.1 Definicao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22120.2 Princpios da usabilidade . . . . . . . . . . . . . . . . . . . . . . . 22220.3 Tecnicas de avaliacao de usabilidade . . . . . . . . . . . . . . . . 223

    21 Acessibilidade 22421.1 Definicao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22421.2 Princpios da acessibilidade . . . . . . . . . . . . . . . . . . . . . 22421.3 Tecnicas de avaliacao de acessibilidade . . . . . . . . . . . . . . . 227

    22 Padroes Web W3C 229

    23 XML 23323.1 O que e XML? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23323.2 Caractersticas do XML . . . . . . . . . . . . . . . . . . . . . . . 23423.3 Comparacao entre XML e HTML . . . . . . . . . . . . . . . . . . 23423.4 Sintaxe basica do XML . . . . . . . . . . . . . . . . . . . . . . . 23423.5 Conjunto de tags . . . . . . . . . . . . . . . . . . . . . . . . . . . 23623.6 NameSpaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23823.7 Gramatica de um documento XML . . . . . . . . . . . . . . . . 23923.8 Tecnologias XML . . . . . . . . . . . . . . . . . . . . . . . . . . . 24423.9 Benefcios da linguagem XML . . . . . . . . . . . . . . . . . . . . 24523.10Ferramentas de desenvolvimento . . . . . . . . . . . . . . . . . . 246

    24 XSLT 24724.1 O que e uma folha de estilo? . . . . . . . . . . . . . . . . . . . . 24724.2 Comparacao entre o CSS e XSL . . . . . . . . . . . . . . . . . . . 24724.3 O que e o XSL? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24824.4 O que e o XSLT? . . . . . . . . . . . . . . . . . . . . . . . . . . . 24824.5 Caractersticas do XSLT . . . . . . . . . . . . . . . . . . . . . . . 24924.6 Declarando um documento XSL . . . . . . . . . . . . . . . . . . . 24924.7 Elemento . . . . . . . . . . . . . . . . . . . . . . 25024.8 Elemento . . . . . . . . . . . . . . . . . . . . . . . 25124.9 Elemento . . . . . . . . . . . . . . . . . . . . . . . 25224.10Elemento . . . . . . . . . . . . . . . . . . . . . . . . . 25224.11Elemento . . . . . . . . . . . . . . . . . . . . . . . . . . 25224.12Elemento . . . . . . . . . . . . . . . . . . . . . . . 25324.13Elemento . . . . . . . . . . . . . . . . . . 25324.14XSL no lado Cliente . . . . . . . . . . . . . . . . . . . . . . . . . 25424.15XSL no lado Servidor . . . . . . . . . . . . . . . . . . . . . . . . 25424.16Processadores XSLT . . . . . . . . . . . . . . . . . . . . . . . . . 255

    6

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    25 Gerenciador de Conteudo Web Zone/Plone 25625.1 Gestao de Conteudo . . . . . . . . . . . . . . . . . . . . . . . . . 25625.2 Sistema de Gestao de Conteudo . . . . . . . . . . . . . . . . . . . 25725.3 Zope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25825.4 Plone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260

    26 Web Services 26326.1 O que e Web Services? . . . . . . . . . . . . . . . . . . . . . . . . 26326.2 SOAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26626.3 WSDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26726.4 UDDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26926.5 Seguranca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269

    VI Redes de Comunicacao 270

    27 Tecnicas Basicas de Comunicacao 27127.1 Base Teorica da Comunicacao de Dados . . . . . . . . . . . . . . 27127.2 Taxa Maxima de Dados em um Canal . . . . . . . . . . . . . . . 27227.3 Sinais Digitais Binarios . . . . . . . . . . . . . . . . . . . . . . . 27227.4 Transmissao em Banda Base . . . . . . . . . . . . . . . . . . . . . 27327.5 Classificacao dos Sinais . . . . . . . . . . . . . . . . . . . . . . . . 27327.6 Tecnicas de Codificacao de Linha . . . . . . . . . . . . . . . . . . 274

    27.6.1 Codificacao NRZ . . . . . . . . . . . . . . . . . . . . . . . 27427.6.2 Codificacao RZ . . . . . . . . . . . . . . . . . . . . . . . . 27527.6.3 Codificacao AMI (Alternate Mark Invertion) . . . . . . . 27527.6.4 Codificacao HDB-3 (High Density Bipolar with 3 Zero

    Maximum Tolerance) . . . . . . . . . . . . . . . . . . . . 27527.6.5 Codificacao Manchester . . . . . . . . . . . . . . . . . . . 276

    27.7 Modulacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27627.7.1 Modulacao de Onda Contnua . . . . . . . . . . . . . . . . 27727.7.2 Modulacao de Pulsos . . . . . . . . . . . . . . . . . . . . . 279

    27.8 Tecnicas de Multiplexacao . . . . . . . . . . . . . . . . . . . . . . 28027.8.1 FDM - Frequency Division Multiplexing . . . . . . . . . . 28127.8.2 TDM - Time Division Multiplexing . . . . . . . . . . . . . 28127.8.3 OFDM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28127.8.4 WDM -Wavelength Division Multiplexing . . . . . . . . . 282

    27.9 Protocolos de Acesso Multiplo . . . . . . . . . . . . . . . . . . . . 283

    28 Topologias de Redes 284

    29 Arquitetura de Redes 28629.1 Organizacao em Camadas . . . . . . . . . . . . . . . . . . . . . . 286

    30 Protocolos de Rede 28730.1 ARP - Address Resolution Protocol . . . . . . . . . . . . . . . . 28730.2 DHCP - Dynamic Host Configuration Protocol . . . . . . . . . . 28730.3 DNS - Domain Name System . . . . . . . . . . . . . . . . . . . . 28930.4 TCP - Transmission Control Protocol . . . . . . . . . . . . . . . 29130.5 UDP - User Datagram Protocol . . . . . . . . . . . . . . . . . . . 293

    7

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    30.6 HTTP - Hyper Text Transfer Protocol . . . . . . . . . . . . . . . 29430.7 SMTP - Simple Mail Transfer Protocol . . . . . . . . . . . . . . . 29930.8 POP3 - Post Office Protocol Version 3 . . . . . . . . . . . . . . . 30130.9 IMAP - Internet Mail Access Protocol . . . . . . . . . . . . . . . 30330.10LDAP - LightWeight Directory Access Protocol . . . . . . . . . . 30530.11SNMP - Simple Network Management Protocol . . . . . . . . . . 30530.12FTP - File Transfer Protocol . . . . . . . . . . . . . . . . . . . . 30630.13IP - Internet Protocol . . . . . . . . . . . . . . . . . . . . . . . . 31030.14TELNET - TELetype NETwork . . . . . . . . . . . . . . . . . . 311

    31 O Modelo de Referencia OSI 314

    32 Roteamento 31632.1 Link State e Distance Vector . . . . . . . . . . . . . . . . . . . . 317

    32.1.1 Vetor de Distancias vs. Estado do Link . . . . . . . . . . 31932.2 Protocolos de Roteamento . . . . . . . . . . . . . . . . . . . . . . 320

    32.2.1 RIP - Routing Information Protocol . . . . . . . . . . . . 32032.2.2 OSPF - Open Shortest Path First . . . . . . . . . . . . . 32032.2.3 IGRP e EIGRP . . . . . . . . . . . . . . . . . . . . . . . . 321

    33 Redes Ethernet 32233.1 Protocolo CSMA/CD . . . . . . . . . . . . . . . . . . . . . . . . 32233.2 Fast Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32333.3 Gigabit Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . 324

    34 Cabeamento Estruturado 32634.1 Par Trancado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326

    34.1.1 Interferencias nos Cabos de Par Trancado . . . . . . . . . 32634.2 Categorias 5e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32734.3 Categoria 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32834.4 Categoria 5e vs. Categoria 6 . . . . . . . . . . . . . . . . . . . . 32834.5 Cabeacao Estruturada Norma EIA/TIA 568 . . . . . . . . . . . 329

    34.5.1 Sistemas de Cabeamento Estruturado . . . . . . . . . . . 32934.6 Desempenho do Hardware e Meios de Transmissao . . . . . . . . 333

    34.6.1 Cabeamento UTP . . . . . . . . . . . . . . . . . . . . . . 33434.6.2 Fibra Optica . . . . . . . . . . . . . . . . . . . . . . . . . 335

    34.7 Codigo de Cores para Sistemas de Cabecao UTP . . . . . . . . . 336

    35 Redes sem fio 33735.1 O padrao IEEE 802.11 . . . . . . . . . . . . . . . . . . . . . . . . 337

    35.1.1 CSMA/CA . . . . . . . . . . . . . . . . . . . . . . . . . . 33835.1.2 Formato do Quadro 802.11 . . . . . . . . . . . . . . . . . 339

    36 Elementos de Interconexao de Redes de Computadores 34036.1 Repetidores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34036.2 Hubs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34036.3 Switches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34136.4 Bridges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34236.5 Roteadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34236.6 Gateways . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343

    8

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    37 Redes Multimdia 34437.1 Qualidade de Servico . . . . . . . . . . . . . . . . . . . . . . . . . 34437.2 Servicos Integrados - IntServ . . . . . . . . . . . . . . . . . . . . 34637.3 Servicos Diferenciados - DiffServ . . . . . . . . . . . . . . . . . . 347

    38 Redes X.25 e Frame Relay 34838.1 X.25 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34838.2 Frame Relay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348

    38.2.1 Estrutura do Frame . . . . . . . . . . . . . . . . . . . . . 34938.2.2 Envio de um datagrama IP de Ethernet para Frame Relay

    e Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . 35038.3 Interligacao de Redes LAN . . . . . . . . . . . . . . . . . . . . . 351

    38.3.1 Voz sobre Frame Relay (VoFR) . . . . . . . . . . . . . . . 35138.3.2 Interacao entre Frame Relay e ATM . . . . . . . . . . . . 35238.3.3 CIR (Taxa de Informacao Comprometida) . . . . . . . . . 352

    39 Redes Virtuais Locais 35439.1 VLANs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354

    39.1.1 Definicao . . . . . . . . . . . . . . . . . . . . . . . . . . . 35439.1.2 Protocolo 802.1q . . . . . . . . . . . . . . . . . . . . . . . 354

    40 Redes de Circuito Virtuais 35640.1 Redes ATM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35640.2 MPLS - Multiprotocol Label Switching . . . . . . . . . . . . . . . 358

    41 Arquitetura TCP/IP 36041.1 Visao geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36041.2 Comparacao entre a arquitetura OSI e TCP/IP . . . . . . . . . . 36041.3 Camada Fsica (host/rede) . . . . . . . . . . . . . . . . . . . . . 36141.4 Camada de Inter-Rede . . . . . . . . . . . . . . . . . . . . . . . . 36141.5 Camada de Transporte . . . . . . . . . . . . . . . . . . . . . . . . 36241.6 Camada de Aplicacao . . . . . . . . . . . . . . . . . . . . . . . . 362

    42 Camada de Aplicacao 36442.1 Proxy Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364

    VII Gerencia de Redes 366

    43 O protocolo SNMP 36743.1 Management Information Base . . . . . . . . . . . . . . . . . . . 368

    VIII Seguranca da Informacao 370

    44 Polticas de Seguranca de Informacao 37144.1 Polticas de Seguranca . . . . . . . . . . . . . . . . . . . . . . . . 37144.2 Projeto de Seguranca . . . . . . . . . . . . . . . . . . . . . . . . . 37244.3 Plano de Seguranca . . . . . . . . . . . . . . . . . . . . . . . . . . 37244.4 Normas de Seguranca . . . . . . . . . . . . . . . . . . . . . . . . 373

    44.4.1 ISO/IEC 17799 . . . . . . . . . . . . . . . . . . . . . . . . 373

    9

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    44.4.2 Famlia ISO 27000 . . . . . . . . . . . . . . . . . . . . . . 37544.4.3 Diferencas entre a ISO/IEC 17799 e a ISO 27001 . . . . . 376

    44.5 Procedimentos de Seguranca . . . . . . . . . . . . . . . . . . . . . 37644.6 Arquitetura de Seguranca . . . . . . . . . . . . . . . . . . . . . . 37744.7 Classificacao de Informacoes . . . . . . . . . . . . . . . . . . . . . 377

    45 Seguranca Fsica e Logica 37945.1 Seguranca Fsica . . . . . . . . . . . . . . . . . . . . . . . . . . . 37945.2 Seguranca Logica . . . . . . . . . . . . . . . . . . . . . . . . . . . 379

    45.2.1 Matrizes de acesso, listas de controle de acesso e capabilities37945.2.2 Modelos de Controle de Acesso . . . . . . . . . . . . . . . 380

    46 Backup de Dados 38446.1 Meios de Armazenamento . . . . . . . . . . . . . . . . . . . . . . 384

    47 Vrus e Ataques 38647.1 Estrategias de combate a` pragas eletronicas . . . . . . . . . . . . 388

    47.1.1 Antivrus . . . . . . . . . . . . . . . . . . . . . . . . . . . 388

    48 Princpios de Criptografia 39048.1 Tipos de Criptografia . . . . . . . . . . . . . . . . . . . . . . . . 39148.2 Algoritmos de Criptografia Simetricos . . . . . . . . . . . . . . . 39248.3 Algoritmos de Criptografia Assimetricos . . . . . . . . . . . . . . 39348.4 Tecnicas de Quebra de Criptografia . . . . . . . . . . . . . . . . . 394

    49 Autenticacao 39549.1 Autenticacao de Mensagens . . . . . . . . . . . . . . . . . . . . . 39549.2 Protocolos de Autenticacao . . . . . . . . . . . . . . . . . . . . . 396

    49.2.1 Metodos de Autenticacao . . . . . . . . . . . . . . . . . . 39649.2.2 Autenticacao baseada em uma chave secreta compartilhada396

    49.3 Certificado Digital . . . . . . . . . . . . . . . . . . . . . . . . . . 397

    50 Seguranca em diversas camadas 39950.1 Secure Sockets Layer . . . . . . . . . . . . . . . . . . . . . . . . . 39950.2 IPSec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40050.3 Virtual Private Network (VPN) . . . . . . . . . . . . . . . . . . . 40150.4 Filtragem de Pacotes e Firewalls . . . . . . . . . . . . . . . . . . 403

    50.4.1 Regras iptables - Exemplo 1 . . . . . . . . . . . . . . . . . 40550.4.2 Regras iptables - Exemplo 2 . . . . . . . . . . . . . . . . . 40550.4.3 Firewall Stateful . . . . . . . . . . . . . . . . . . . . . . . 40650.4.4 Application Gateway . . . . . . . . . . . . . . . . . . . . . 40750.4.5 Arquitetura de firewall e DMZ . . . . . . . . . . . . . . . 407

    50.5 Sistemas de Deteccao de Intrusao (IDS) . . . . . . . . . . . . . . 40950.6 Seguranca em Redes Wireless 802.11 . . . . . . . . . . . . . . . . 409

    50.6.1 WEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40950.7 802.11i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410

    10

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    IX Alta Disponibilidade 411

    51 Solucoes de Armazenamento RAID, SAN e NAS 41251.1 RAID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412

    51.1.1 RAID 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41251.1.2 RAID 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41451.1.3 RAID 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41551.1.4 RAID 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41651.1.5 RAID 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41751.1.6 RAID 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41851.1.7 RAID 6 (Redundancia de P+Q) . . . . . . . . . . . . . . 41951.1.8 Tipos Hbridos . . . . . . . . . . . . . . . . . . . . . . . . 41951.1.9 Comparativo de Desempenho entre as diversas configuracoes

    RAID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42051.2 SAN - Storage Area Network . . . . . . . . . . . . . . . . . . . . 420

    51.2.1 Hardware para SAN . . . . . . . . . . . . . . . . . . . . . 42151.2.2 Topologias de SAN . . . . . . . . . . . . . . . . . . . . . . 422

    51.3 NAS - Network Attached Stotage . . . . . . . . . . . . . . . . . . 42351.4 Comparativo entre SAN e NAS . . . . . . . . . . . . . . . . . . . 424

    52 Clusters de servidores 42752.0.1 Princpios de um Cluster . . . . . . . . . . . . . . . . . . 42752.0.2 Abstracoes em um Cluster . . . . . . . . . . . . . . . . . . 42852.0.3 Arquitetura de um Cluster . . . . . . . . . . . . . . . . . 42952.0.4 Cluster X Sistemas Distribudos . . . . . . . . . . . . . . 43052.0.5 Cluster de Alta Disponibilidade . . . . . . . . . . . . . . . 43152.0.6 Cluster de Alto Desempenho . . . . . . . . . . . . . . . . 433

    53 Balanceamento de Carga 43653.1 Balanceamento de armazenamento (storage) . . . . . . . . . . . . 43653.2 Balanceamento de rede . . . . . . . . . . . . . . . . . . . . . . . . 436

    53.2.1 NAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43753.2.2 IP Tunneling . . . . . . . . . . . . . . . . . . . . . . . . . 43753.2.3 Direct Routing . . . . . . . . . . . . . . . . . . . . . . . . 438

    53.3 Algoritmos de balanceamento . . . . . . . . . . . . . . . . . . . . 43853.4 Balanceamento de CPU . . . . . . . . . . . . . . . . . . . . . . . 439

    53.4.1 Sistema de processamento distribudo . . . . . . . . . . . 439

    X Sistemas Operacionais 442

    54 Ambiente Microsoft Windows 2000/2003 44354.1 DHCP - Dynamic Host Configuration Protocol . . . . . . . . . . 443

    54.1.1 Processo de Instalacao/Configuracao . . . . . . . . . . . . 44354.1.2 Integracao do DHCP com o DNS . . . . . . . . . . . . . . 44554.1.3 APIPA - Automatic Private IP Addressing . . . . . . . . 44554.1.4 Comandos ipconfig Relacionados ao DHCP . . . . . . . . 44654.1.5 Regra 80/20 . . . . . . . . . . . . . . . . . . . . . . . . 446

    54.2 DNS - Domain Name System . . . . . . . . . . . . . . . . . . . . 44654.2.1 Processo de Instalacao/Configuracao . . . . . . . . . . . . 447

    11

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    54.2.2 Seguranca de Acesso . . . . . . . . . . . . . . . . . . . . . 44954.2.3 Integracao do DNS com o Active Directory . . . . . . . . 44954.2.4 Servidor DNS somente Cache . . . . . . . . . . . . . . . . 45154.2.5 Arquivo Hosts . . . . . . . . . . . . . . . . . . . . . . . . 45154.2.6 Distribuicao de Carga . . . . . . . . . . . . . . . . . . . . 45154.2.7 Comando ipconfig/dnscmd Relacionadas ao DNS . . . . . 451

    54.3 Active Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . 45254.3.1 Tipos de Servidores . . . . . . . . . . . . . . . . . . . . . 45354.3.2 Definicoes de Floresta, Domnio, Site e Unidade Organi-

    zacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45354.3.3 Recursos do Active Directory . . . . . . . . . . . . . . . . 45454.3.4 Seguranca com o Active Directory . . . . . . . . . . . . . 45554.3.5 Ferramentas de Controle . . . . . . . . . . . . . . . . . . . 456

    54.4 IIS - Internet Information Services . . . . . . . . . . . . . . . . . 45654.4.1 IIS versus Apache HTTP Server . . . . . . . . . . . . . . 45654.4.2 Principais Componentes do IIS . . . . . . . . . . . . . . . 45954.4.3 Principais Recursos do IIS . . . . . . . . . . . . . . . . . . 46054.4.4 Principais Diferencas entre IIS4, IIS5 e IIS6 . . . . . . . . 461

    54.5 Terminal Services . . . . . . . . . . . . . . . . . . . . . . . . . . . 46154.5.1 Principais Benefcios . . . . . . . . . . . . . . . . . . . . . 46254.5.2 Protocolos de Comunicacao . . . . . . . . . . . . . . . . . 46354.5.3 Licencas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464

    XI Banco de Dados 465

    55 Conceitos Basicos 466

    56 Abordagem Relacional 46856.1 Conceitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46856.2 Esquemas e Restricoes de Integridade . . . . . . . . . . . . . . . 468

    57 Modelagem Entidade Relacionamento 47057.1 Conceitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47057.2 Cardinalidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47157.3 Representacao Grafica . . . . . . . . . . . . . . . . . . . . . . . . 47157.4 Recursos do Modelo Entidade Relacionamento . . . . . . . . . . 471

    58 Normalizacao 47358.1 Aspectos desejaveis em um bom projeto . . . . . . . . . . . . . . 47358.2 Forma normal de Boyce-Codd . . . . . . . . . . . . . . . . . . . . 47358.3 Terceira forma normal . . . . . . . . . . . . . . . . . . . . . . . . 474

    59 Transformacao do Modelo Conceitual 475

    60 Linguagem SQL 47660.1 Criacao de tabela . . . . . . . . . . . . . . . . . . . . . . . . . . . 47660.2 Consultas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47660.3 Funcoes de agregacao . . . . . . . . . . . . . . . . . . . . . . . . . 47760.4 Atualizacoes e exclusoes . . . . . . . . . . . . . . . . . . . . . . . 47860.5 Visoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479

    12

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    60.6 Chaves estrangeiras . . . . . . . . . . . . . . . . . . . . . . . . . . 479

    61 Conceitos de Datawarehousing e Bussiness Inteligence 48061.1 Banco de Dados Multidimensionais . . . . . . . . . . . . . . . . . 480

    61.1.1 Modelagem Multidimensional . . . . . . . . . . . . . . . . 48161.2 Datawarehousing . . . . . . . . . . . . . . . . . . . . . . . . . . . 48361.3 OLTP, OLAP, MOLAP, ROLAP e HOLAP . . . . . . . . . . . . 48561.4 Outros conceitos importantes . . . . . . . . . . . . . . . . . . . . 487

    XII Administracao de Bancos de Dados Relacionais 489

    62 Gerencia de Transacoes 490

    63 Controle de Concorrencia 492

    64 Gerencia de Desempenho 494

    XIII Oracle e Microsoft SQL Server 497

    65 Administracao de Bancos de Dados Oracle 49865.1 Arquitetura de um Servidor Oracle . . . . . . . . . . . . . . . . . 498

    65.1.1 Estruturas em memoria . . . . . . . . . . . . . . . . . . . 49865.1.2 Processos server . . . . . . . . . . . . . . . . . . . . . . . 49965.1.3 Processos user . . . . . . . . . . . . . . . . . . . . . . . . 49965.1.4 Processos em Background . . . . . . . . . . . . . . . . . . 49965.1.5 Arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . 500

    65.2 Arquitetura Oracle de Armazenamento de Dados . . . . . . . . . 50165.3 Tratamento de Transacoes no Oracle . . . . . . . . . . . . . . . . 501

    65.3.1 Gerenciamento do Redo Log . . . . . . . . . . . . . . . . . 50165.3.2 Checkpoints . . . . . . . . . . . . . . . . . . . . . . . . . . 50265.3.3 Segmentos de rollback . . . . . . . . . . . . . . . . . . . . 50265.3.4 Consistencia de leitura . . . . . . . . . . . . . . . . . . . . 503

    65.4 Configuracao do Servidor . . . . . . . . . . . . . . . . . . . . . . 50365.5 Tipos de Usuarios Oracle . . . . . . . . . . . . . . . . . . . . . . 504

    65.5.1 Administradores de banco de dados . . . . . . . . . . . . 50465.5.2 Outros papeis . . . . . . . . . . . . . . . . . . . . . . . . . 505

    66 Administracao de Bancos de Dados SQL Server 50666.1 Arquitetura de um Servidor SQL Server . . . . . . . . . . . . . . 506

    66.1.1 Catalogos de sistema . . . . . . . . . . . . . . . . . . . . . 50666.1.2 Processos em background . . . . . . . . . . . . . . . . . . 507

    66.2 Arquitetura SQL Server de Armazenamento de Dados . . . . . . 50766.3 Tratamento de Transacoes no SQL Server . . . . . . . . . . . . . 507

    XIV ITIL 509

    67 Suporte a Servicos 51067.1 Service Desk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510

    13

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    67.1.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . 51067.1.2 Responsabilidades . . . . . . . . . . . . . . . . . . . . . . 51067.1.3 Varios Tipos de Central . . . . . . . . . . . . . . . . . . . 511

    67.2 Gerenciamento de Incidentes . . . . . . . . . . . . . . . . . . . . 51167.2.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . 51167.2.2 Atividades do Processo . . . . . . . . . . . . . . . . . . . 51167.2.3 Papeis e Responsabilidades . . . . . . . . . . . . . . . . . 512

    67.3 Gerenciamento de Problemas . . . . . . . . . . . . . . . . . . . . 51267.3.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . 51267.3.2 Definicoes Importantes . . . . . . . . . . . . . . . . . . . . 51367.3.3 Atividades do Processo . . . . . . . . . . . . . . . . . . . 51367.3.4 Papeis e Responsabilidades . . . . . . . . . . . . . . . . . 513

    67.4 Gerenciamento de Configuracao . . . . . . . . . . . . . . . . . . . 51467.4.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . 51467.4.2 Atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . 51467.4.3 Papeis e Responsabilidades . . . . . . . . . . . . . . . . . 515

    67.5 Gerenciamento de Mudancas . . . . . . . . . . . . . . . . . . . . 51567.5.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . 51567.5.2 Responsabilidades . . . . . . . . . . . . . . . . . . . . . . 51567.5.3 Definicoes Importantes . . . . . . . . . . . . . . . . . . . . 515

    67.6 Gerenciamento de Liberacao . . . . . . . . . . . . . . . . . . . . . 51667.6.1 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51667.6.2 Atividades do Processo . . . . . . . . . . . . . . . . . . . 51667.6.3 Definicoes Importantes . . . . . . . . . . . . . . . . . . . . 51767.6.4 Papeis e Responsabilidades . . . . . . . . . . . . . . . . . 517

    68 Entrega de Servicos 51868.1 Gerenciamento do Nvel de Servico . . . . . . . . . . . . . . . . . 518

    68.1.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . 51868.2 Gerenciamento Financeiro . . . . . . . . . . . . . . . . . . . . . . 519

    68.2.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . 51968.2.2 Responsabilidades . . . . . . . . . . . . . . . . . . . . . . 51968.2.3 Atividades do Processo . . . . . . . . . . . . . . . . . . . 51968.2.4 Elementos de Custo . . . . . . . . . . . . . . . . . . . . . 520

    68.3 Gerenciamento da Capacidade . . . . . . . . . . . . . . . . . . . 52168.3.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . 52168.3.2 Atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . 521

    68.4 Gerenciamento de Disponibilidade . . . . . . . . . . . . . . . . . 52268.4.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . 52268.4.2 Ciclo de vida do incidente . . . . . . . . . . . . . . . . . . 522

    68.5 Gerenciamento de Continuidade . . . . . . . . . . . . . . . . . . . 52368.5.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . 52368.5.2 Estagios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52368.5.3 Tipos de Continuidade . . . . . . . . . . . . . . . . . . . . 524

    XV Gerencia de Projetos segundo PMBOK 525

    69 Gerenciamento de Escopo 52669.1 WBS e Definicao do Escopo . . . . . . . . . . . . . . . . . . . . . 526

    14

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    70 Gerenciamento de Recursos Humanos 52870.1 Estruturas Organizacionais . . . . . . . . . . . . . . . . . . . . . 528

    70.1.1 Organizacao Funcional . . . . . . . . . . . . . . . . . . . . 52870.1.2 Organizacao por Projeto . . . . . . . . . . . . . . . . . . . 52970.1.3 Organizacao Matricial . . . . . . . . . . . . . . . . . . . . 530

    70.2 Planejamento Organizacional . . . . . . . . . . . . . . . . . . . . 53170.3 Desenvolvimento da Equipe . . . . . . . . . . . . . . . . . . . . . 531

    71 Gerenciamento do Tempo 53471.1 Tecnicas de Desenvolvimento do Cronograma . . . . . . . . . . . 534

    71.1.1 Analise Matematica . . . . . . . . . . . . . . . . . . . . . 53571.1.2 Compressao do Cronograma . . . . . . . . . . . . . . . . . 53571.1.3 Simulacao . . . . . . . . . . . . . . . . . . . . . . . . . . . 53671.1.4 Heurstica do nivelamento de recursos . . . . . . . . . . . 53671.1.5 Estrutura de Codificacao . . . . . . . . . . . . . . . . . . 536

    72 Gerenciamento de Custo 53772.1 Tecnicas de Estimativas de Custos . . . . . . . . . . . . . . . . . 537

    72.1.1 Estimativas Analogas . . . . . . . . . . . . . . . . . . . . 53772.1.2 Modelagem Parametrica . . . . . . . . . . . . . . . . . . . 53872.1.3 Estimativa bottom-up . . . . . . . . . . . . . . . . . . . . 538

    73 Gerenciamento de Riscos 53973.1 Analise Qualitativa . . . . . . . . . . . . . . . . . . . . . . . . . . 53973.2 Analise Quantitativa de Riscos . . . . . . . . . . . . . . . . . . . 540

    74 Gerenciamento de Qualidade 54274.1 Tecnicas de Planejamento da Qualidade . . . . . . . . . . . . . . 542

    74.1.1 Analise Custo/Benefcio . . . . . . . . . . . . . . . . . . . 54274.1.2 Benchmarking . . . . . . . . . . . . . . . . . . . . . . . . 54374.1.3 Fluxograma . . . . . . . . . . . . . . . . . . . . . . . . . . 54374.1.4 Elaboracao de Experimentos . . . . . . . . . . . . . . . . 54374.1.5 Custo da Qualidade . . . . . . . . . . . . . . . . . . . . . 544

    74.2 Tecnicas de Controle da Qualidade . . . . . . . . . . . . . . . . . 54474.2.1 Graficos de Controle . . . . . . . . . . . . . . . . . . . . . 54574.2.2 Diagramas de Pareto . . . . . . . . . . . . . . . . . . . . . 54574.2.3 Diagramas de Dispersao . . . . . . . . . . . . . . . . . . . 546

    75 Gerenciamento da Comunicacao 54775.1 Um mais sobre Planejamento da Comunicacao . . . . . . . . . . 547

    76 Gerenciamento das Aquisicoes 54876.1 Um pouco mais sobre Planejamento de Aquisicoes . . . . . . . . 548

    77 Gerenciamento da Integracao 55077.1 Ferramentas de Apoio a` Integracao . . . . . . . . . . . . . . . . . 550

    78 Sobre os Ciclos do Projeto e Processos de Gerenciamento 551

    15

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    Parte I

    Fundamentos deComputacao

    16

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    Captulo 1

    Arquitetura e Organizacaode Computadores

    1.1 Conceitos Basicos

    Dois conceitos fundamentais no estudo dos sistemas de computacao sao o deArquitetura e Organizacao de computadores. O termo arquitetura refere-se aosatributos do ponto de vista do programador, e portanto, tem impacto diretosobre sobre a execucao logica de um programa. O termo organizacao, refere-sea`s unidades operacionais e suas interconexoes. Desta forma, uma mesma ar-quitetura pode ser implementadas por meio de diferentes organizacoes.

    As funcoes basicas de um computador sao o processamento de dados, ar-mazenamento de dados, transferencia de dados e controle. Para desempenharessas funcoes o computador precisa executar um conjunto de instrucoes (pro-grama). Os computadores que conhecemos sao baseados no conceito de pro-grama armazenado, introduzido por Von-Neuman. As instrucoes do programae os dados sao armazenados em uma memoria, de forma que a alteracao de umprograma consiste na alteracao de um endereco de memoria.

    O ciclo de execucao de cada uma das instrucoes de um programa e divi-dido nos seguintes estados: (i)Calculo do Endereco de Instrucao; (ii)Busca daInstrucao (Instruction Fetch); (iii) Decodificacao da Instrucao; (iv)Calculo doEndereco do Operando; (v)Busca do Operando (Operand Fetch); (vi)Execucaoda Operacao; (vii)Armazenamento do Resultado. No entanto, os computadoresmodernos utilizam o conceito de interrupcao para diminuir o tempo de ociosi-dade dos processadores, o ciclo de execucao das instrucoes ganham mais algunsestados. As classes de interrupcoes mais comuns sao interrupcoes de software,de relogio, de E/S e de falha de hardware.

    A estrutura basica de um computador e composta pelos seguintes compo-nentes:

    (i)Unidade Central de Processamento(CPU);

    (ii)Memoria Principal;

    17

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    (iii)Dispositivos de E/S;

    (iv)Sistemas de Interconexao.

    Esses componentes tambem possuem suas subdivisoes. A CPU por exemplose subdivide em: Unidade de Controle, Unidade Logica e Aritmetica (ALU),Registradores e por fim as Interconexoes da CPU. Cada um desses componentesera melhor descrito posteriormente. Para interconectar dois ou mais dispositivosem um sistema sao utilizados os chamados barramentos. Os barramentos saocompostos por linhas que podem ser de Dados, Endereco ou Controle. Osbarramentos de controle podem ser utilizados por exemplo para controlar direitode leitura ou escrita em memoria ou E/S, interrupcoes, confirmacoes, relogioe reset. O projeto dos barramentos que compoe um sistema sao de grandeimportancia no desempenho do sistema. Questoes importantes no projeto debarramentos sao:

    (i)Tipo - dedicado ou multiplexado;

    (ii)Metodo de Arbitracao - Centralizado ou Distribudo;

    (iii)Temporizacao - Sncrona ou Assncrona;

    (iv)Largura - numero de linhas;

    (v) Tipo de Transferencia - leitura, escrita, leitura/modificacao/escrita,escrita/leitura, em bloco.

    Para aumentar o desempenho do sistema, os barramentos sao organizados deforma hierarquica, de forma isolar o trafego de dados entre CPU e memoria dotrafego proveniente de operacoes de E/S. Os chamados barramentos de expansaoproporcionam maior flexibilidade ao sistema (ex: SCSI), enquanto os barramen-tos de alta velocidade sao utilizados para dispositivos de alta capacidade (ex:FireWire).

    1.2 Estrutura e Funcionamento da CPU

    Os principais elementos da CPU sao a Unidade de Controle , a Unidade Logicae Aritmetica (ULA) e os Registradores. Esses elementos se conectam interna-mente atraves do barramento interno da CPU.

    A CPU se comunica com o mundo externo atraves dos barramentos do sis-tema. Ao longo da execucao de um programa, os barramentos constituem oschamados caminho dos dados. No topo da organizacao hierarquica de memoriaem um sistema se encontram os registradores. Esses se dividem em dois tipos:Registradores visveis ao Usuario e Registradores de Controle e de Estado.

    Os registradores visveis ao usuario sao aqueles que podem ser referenciadospela linguagem de montagem. Eles podem ser registradores de dados, enderecoou entao de proposito geral. Os registradores de Controle e de Estado sao uti-lizados para controlar a operacao da CPU. Na maioria das vezes nao sao visveisaos usuarios. Exemplos de registradores de Controle e de Estado sao o Program

    18

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    Counter (PC), Instruction Register (IR), Memory Address Register (MAR),Memory Buffer Register (MBR), Program Status Word (PSW), Stack Pointer(SI), Page Table Base Register (PTBR), Page Table Base Limit (PTBL).

    A sequencia de eventos ao longo de um ciclo de instrucao depende do projetoda CPU, no entanto, em termos gerais, pode-se indicar o que acontece em nossubciclos de busca, indireto e interrupcao. O ciclo de execucao depende docodigo da operacao que sera executada. A figura 1.1 mostra o diagrama detransicao de estados do ciclo de instrucao.

    Figura 1.1: Transicao de Estados do Ciclo de Instrucao

    Durante o ciclo de busca, o contador de programa contem o endereco daproxima instrucao a ser buscada na memoria. Esse endereco e movido para oregistrador MAR e a unidade de controle requisita uma leitura na memoria. Oresultado da leitura e colocado no registrador MBR, que em seguida e copiadopara o registrador IR. Enquanto isso o PC e incrementado de 1 para preparara busca da proxima instrucao. O fluxo de dados do ciclo de busca e mostradona figura 1.2.

    Ao fim do ciclo de busca, o unidade de controle examina se a instrucaoespecifica algum operando com enderecamento indireto. Os n bits mais a direitade MBR sao colocados em MAR, e entao a unidade de controle requisita umaleitura a memoria para carregar o valor do operando para MBR. O fluxo dedados do ciclo de indireto e mostrado na figura 1.3.

    No ciclo de interrupcao, o conteudo do registrador PC dever ser salvo, paraque mais tarde a CPU possa retornar sua atividade normal depois de processara interrupcao. O conteudo do PC e transferido para MBR. A endereco dememoria reservado para guardar o valor de PC (ex: topo da pilha) e carregadopara MAR, e entao a unidade de controle solicita uma escrita na memoria. Porfim o PC e carregado com o endereco da rotina de interrupcao, para que o noproximo ciclo de instrucao seja feita a busca da instrucao apropriada. A figura1.4 mostra o fluxo de dados do ciclo de interrupcao.

    19

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    Figura 1.2: Fluxo de Dados do Ciclo de Busca

    Figura 1.3: Fluxo de Dados do Ciclo de Indireto

    Figura 1.4: Fluxo de Dados do Ciclo de Interrupcao

    1.2.1 Pipelines

    Como pudemos ver, um ciclo de instrucao pode subdividido em etapas menores.Uma divisao comum e a baseada nos ciclos de busca, indireto, execucao e inter-rupcao. A ideia da tecnica de pipeline e trabalhar as diversas etapas do ciclode instrucao de forma paralela, e nao de forma serial, de forma aumentar o

    20

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    desempenho da CPU.

    A tecnica de pipeline pode ser descrita genericamente como uma estrategiade aceitar novas entradas em uma extremidade sem que as entradas previastenha aparecido como sadas na outra extremidade. Imaginemos um esquemaem que o ciclo de instrucao e subdividido em 2 etapas que sao a busca da in-strucao e a execucao. Enquanto uma instrucao esta sendo executada, a proximainstrucao pode estar sendo buscada. Este esquema configura um pipeline de 2estagios, e a tecnica utilizada e a de busca antecipada de instrucao (InstructionPrefetch ou Fetch Overlap). Embora possa ser obtido um ganho de desempenho,o pipeline de 2 estagios ainda e muito fraco para lidar com instrucoes de desvio,nas quais a busca da proxima instrucao depende do resultado da execucao dainstrucao corrente.

    Portanto, uma subdivisao do ciclo de instrucao em um numero maior deestagios pode proporcionar maior desempenho. Imaginemos o ciclo de instrucaocomo sendo composto dos seguintes estagios:

    (1)BI - Busca da Instrucao;

    (2)DI - Decodificacao da Instrucao;

    (3)CO - Calculo dos Enderecos dos Operandos;

    (4)BO - Busca dos Operandos;

    (5)EI - Execucao da instrucao;

    (6)EO - Escrita do Operando.

    Essa subdivisao busca fazer com que os tempos gastos em cada um dos 6estagios seja parecido. Se os 6 estagios pudessem ser executados em paralelo, odesempenho seria aproximadamente 6 vezes maior.

    No entanto, podem existir conflitos de acesso a` memoria por parte dosestagios e nem todas as instrucoes possuem os seis estagios. Somam-se a` essesdois problemas, a existencia de instrucoes de desvios, principais inimigas datecnica de pipeline. Para lidar com os problemas introduzidos pelas instrucoesde desvio sao utilizadas tecnicas como:

    Multiplos Fluxos (duplicacao de estagios iniciais);

    Busca Antecipada de Instrucao-Alvo de Desvio;

    Memoria de Laco de Repeticao (loop buffer);

    Previsao de Desvio baseadas no opcode;

    Previsao de Desvio baseadas em historico (BTB - Branch Target Buffer,tambem conhecida como BHT - Branch History Table).

    As figuras 1.5 e 1.6 mostram os diagramas de tempo para o pipeline deinstrucoes com e sem instrucoes de desvio.

    21

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    Figura 1.5: Diagrama do Tempo para Pipeline de Instrucoes

    Figura 1.6: Efeito do desvio condicional no Pipeline de Instrucoes

    1.3 Conjunto de Instrucoes

    A operacao da CPU e determinada pelo conjunto de instrucoes que ela executa.Sao as chamadas instrucoes de maquina. A colecao de instrucoes que uma CPUpode executar e chamada Conjunto de Instrucoes. O conjunto de instrucoesdeve ser suficiente para traduzir programas escritos em uma linguagem de altonvel para a linguagem de maquina. Os principais elementos e uma instrucaosao:

    (i)Codigo da operacao (opcode): especifica a operacao a ser efetuada;

    (ii)Referencia a` Operando Fonte: indica as entradas para a operacao;

    (iii)Referencia ao operando Destino: A operacao pode produzir um resul-tado;

    (iv)Endereco da proxima instrucao: Pode ser indicado implicitamente (ex:registrador PC).

    22

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    Os operandos fonte e destino podem estar localizados em memoria (principalou virtual), em algum registrador, ou em algum dispositivo de E/S.

    Cada instrucao de um computador e representada internamente como umconjunto de bits. A instrucao e dividida em campos correspondentes aos ele-mentos da instrucao. O papel da CPU e ler a instrucao, extrair informacao decada um dos campos e efetuar a operacao. Devido a`s dificuldades de se lidarcom a representacao binaria, e utilizada uma especie de notacao simbolica pararepresentar as instrucoes de maquina. Os codigos das operacoes sao representa-dos por mnemonicos. (ex: ADD, SUB, MPY, DIV, LOAD, STOR). O mesmoocorre para os operandos. Um conjunto de instrucoes pode apresentar mais deum formato de instrucao.

    As instrucoes podem ser classificadas em:

    (i)Processamento de Dados: instrucoes logicas e aritmeticas;

    (ii)Armazenamento de dados: instrucoes de memoria;

    (iii)Movimentacao: instrucoes de E/S;

    (iv)Controle: instrucoes de teste e desvio.

    No projeto do conjunto de instrucoes as questoes mais relevantes sao orepertorio de operacoes, os tipos de dados, o formato e tamanho das instrucoes,os registradores acessveis, e os modos de enderecamento. As classes de dadossobre as quais as instrucoes de maquina operam sao enderecos, numeros (ex:ponto fixo, ponto flutuante, decimal), caracteres (ex: ASCII e EBCDIC) e da-dos logicos.

    Os tipos de operacoes mais comuns sao:

    (i)Transferencia de Dados: mov,push/pop,xlat,in/out;

    (ii)Aritmeticas: add,sub,mul,idiv;

    (iii)Logicas: and,or,shl/shr;

    (iv)Conversao de Tipos: jmp,call,loop,int/into;

    (vi)Controle do Sistema: hlt,wait;

    (vii)Transferencia de Controle: blt,bgt,beq,call,jmp.

    Nas operacoes de salto e desvio, e importante conhecer cada um dos codigosde condicao envolvidos. (ex: Vai-Um, Zero, Paridade, Sinal, Overflow) Na im-plementacao das chamadas de procedimento e importante ressaltar a utilizacaode pilhas para permitir chamadas reentrantes (uma chamada dentro da outra).

    23

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    1.4 Unidade de Controle

    A unidade de controle coordena os diversos elementos do processador para queeste possa realizar todas as suas funcoes. A execucao de um programa consistede uma sequencia de ciclos de instrucao. Um ciclo de instrucao pode ser sub-dividido em quatro subciclos que sao busca, indireto, execucao e interrupcao.Somente os ciclos de busca e execucao estao presentes em todos os ciclos deinstrucao. Cada subciclo, por sua vez, e composto por microoperacoes.

    Os quatro registradores basicos da unidade de controle sao:

    PC (Program Counter): Mantem o endereco da proxima instrucao a serbuscada na memoria;

    MAR (Memory Address Register): Especifica endereco de memoria parauma operacao de leitura ou escrita;

    MBR (Memory Buffer Register): Conectado ao barramento do sistema.Contem um valor a ser armazenado na memoria ou o ultimo valor delalido;

    IR (Instruction Register): Mantem a ultima instrucao buscada na memoria.

    O ciclo de busca ocorre no incio de cada ciclo de instrucao, fazendo comque a instrucao seja obtida na memoria no endereco indicado pelo registradorPC, e armazenada no registrador IR. Uma vez completada essa etapa, pode sernecessario que se busquem operandos para a instrucao. Isso e realizado no ciclode indireto. Apos o termino do ciclo de execucao, e feita uma checagem paradeterminar se ocorreu alguma interrupcao, e neste caso o conteudo de PC esalvo em memoria e PC e carregado com um endereco da rotina de interrupcaoapropriada. Os ciclos de busca, indireto e de interrupcao envolvem um numeropequeno e fixo de microoperacoes. Isso nao ocorre nos ciclos de execucao. Emuma maquina com N codigos de instrucao podem existir N diferentes sequenciasde microoperacoes para o ciclo de execucao.

    Todas as microoperacoes caem em uma das seguintes categorias:

    (i)Transferencia de dados entre registradores;

    (ii)Transferencia de dados entre registrador e interface externa (barra-mento);

    (iii)Transferencia de dados de interface externa para registrador;

    (iv)Execucao de operacoes logicas e aritmeticas, usando registradores comoentrada e sada.

    Portanto, a unidade de controle desempenha duas tarefas basicas que sao osequenciamento e a execucao das microoperacoes. A base para o funcionamentoda unidade de controle sao os sinais de controle, que constituem as entradas esadas.

    24

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    As unidades de controle podem ser implementadas tanto em hardware quantoem software (Microprogramacao). A implementacao baseada em micropro-gramacao e mais simples e tambem mais barata do que as implementacoes emhardware. As implementacoes em hardware envolvem a criacao de uma logicacomplexa para sequenciamento das microoperacoes, o que a torna mais cara.No entanto, e mais eficiente dos que as implementacoes basadas em micropro-gramacao. As arquiteturas CISC geralmente utilizam unidades de controle mi-croprogramadas, devido ao grande numero de instrucoes e sua complexidade. Jaas arquiteturas RISC, geralmente utilizam implementacoes baseadas em hard-ware uma vez que o numero de instrucoes e reduzido e de baixa complexidade.

    As tecnicas de microprogramacao tambem podem ser aplicadas em em-ulacoes, permitindo que maquinas rodem programas escritos originalmente paraoutras maquinas. Microprogramas podem conferir maior desempenho ao sis-tema operacional se forem utilizados na implementacao de certas primitivas.Alem disso, as tecnicas de microprogramacao podem ser utilizadas na imple-mentacao de dispositivos de proposito especial, por exemplo uma placa de rede(firmware).

    1.5 Modos de Enderecamento

    Os modos de enderecamento estao relacionados com a forma utilizada paraespecificar o valor ou endereco de um operando de uma instrucao. Questoes im-portantes na escolha do modo de enderecamento sao a quantidade de posicoes dememoria enderecaveis, flexibilidade de enderecamento, numero de referencias amemoria feitas pela instrucao e complexidade do calculo do endereco. Em geral,as arquitetura nao oferecem so um modo de enderecamento, mas sim um con-junto de modos. Por este motivo, e necessario que exista uma forma de seidentificar qual o modo de enderecamento que se esta utilizando. Isso e feitoatraves do campo de modo de enderecamento, que consiste em um subconjuntodos bits de uma instrucao.

    Imediato: o valor do operando e especificado diretamente na instrucao.Sua principal vantagem e nao requer acesso a memoria para obter ooperando. A desvantagem e que esse modo impoe uma limitacao notamanho do operando;

    Direto: o campo de endereco contem o endereco efetivo do operando namemoria. Requer portanto apenas um acesso para determinar o valor dooperando. Sua limitacao e fornecer um espaco de enderecamento limitado;

    Indireto: o campo de endereco aponta para uma posicao de memoria quecontem o endereco de memoria do operando. Sua principal desvantageme a necessidade de dois acessos a` memoria. A vantagem em relacao aomodo de enderecamento direto e o aumento do espaco de enderecamento,que passa a ser igual 2n onde n e o tamanho da palavra;

    Registrador : e semelhante ao modo direto, no entanto o modo de enderecose refere a um registrador e nao a` uma posicao de memoria. Geralmente e

    25

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    composto por 3 ou 4 bits, o que permite referenciar de 8 a 16 registradoresde proposito geral. Suas vantagens sao o tamanho pequeno do campo deendereco e nao necessidade de se acessar a memoria. Sua desvantagem eo espaco de enderecamento limitado pelo numero de registradores;

    Indireto via Registrador : semelhante ao modo de enderecamento indireto.O campo de endereco aponta para o registrado que contem a posicao dememoria do operando. Sua vantagem e a necessidade de um unico acessoa memoria, um a menos que no modo indireto;

    Deslocamento: requer que uma instrucao tenha dois campos de endereco,com pelo menos um explcito. O valor de um dos campos e usado dire-tamente (valor = A). O outro campo e baseado no codigo da operacao, eespecifica um registrador cujo conteudo e adicionado a A, para produzir oendereco efetivo. Os tres modos de enderecamento por deslocamento saorelativo, via registrador-base e indexado;

    Pilha: A pilha e um bloco reservado de posicoes em memoria. Elementospodem ser colocados e removidos do topo da pilha. o apontador do topoda pilha (stack-pointer) e mantido em um registrador. Portanto, de fato,referencias a pilha sao feitas por enderecamento indireto via registrador.

    1.6 Organizacao de Memoria

    Um sistema de computador tpico e equipado com uma hierarquia de subsis-temas de memoria, algumas internas (diretamente acessveis pelo processador,como registradores, cache e memoria principal) e outras externas (acessveispelo processador por meio de um modulo de E/S, como disco e cdrom). Ascaractersticas fundamentais de um sistema de memoria sao:

    1. Localizacao - processador, interna (principal), externa (secundaria);

    2. Capacidade - tamanho da palavra e numero da palavra;

    3. Unidade de Transferencia - palavra, bloco;

    4. Metodo de Acesso - sequencial, direto, aleatorio, associativo;

    5. Desempenho - tempo de acesso, tempo de ciclo e taxa de transferencia;

    6. Tecnologia - semicondutores, magnetica, optica, magneto-optico;

    7. Caractersticas Fsicas - volatil/nao volatil, apagavel/nao apagavel.

    Quanto ao metodo de acesso das memorias internas, vale a pena destacar osacessos aleatorio e associativo. No acesso aleatorio, cada unidade enderecavelpossui um mecanismo de enderecamento unico e fisicamente conectado a ela. Eo metodo utilizado na memoria principal. O esquema associativo consiste emum tipo de memoria de acesso aleatorio que possibilita comparar simultanea-mente um certo numero de bits de uma palavra com todas palavras da memoria(totalmente associativo) ou com um conjunto de palavras de memoria (associa-tivo por conjunto). O metodo associativo e empregado pelas memorias cache.

    26

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    As restricoes de um projeto de memoria podem ser resumidos por 3 questoes:Capacidade, Velocidade e Custo. Neste cenario, valem as seguintes relacoes:

    1. Menor tempo de acesso, maior custo por bit;

    2. Maior capacidade, menor custo por bit;

    3. Maior capacidade, menor tempo de acesso.

    A organizacao hierarquica dos sistemas de memoria visa lidar com o dilemaimposto pelas relacoes apresentadas. A hierarquia e elaborada de forma que asa medida que nela descemos as seguintes relacoes sao tambem validas:

    1 O custo por bit diminui;

    2 A capacidade aumenta;

    3 O tempo de acesso aumenta;

    4 A frequencia de acesso pelo processador diminui.

    Desse modo, as memorias menores, mais caras e mais rapidas sao combi-nadas com memoria de maior capacidade, mais lentas e baratas.

    A chave do sucesso dessa organizacao baseia-se principalmente na relacao4, que resume o princpio da Localidade das Referencias. Este princpio dizque ao longo da execucao de um programa, as referencias feitas a` memoria peloprocessador, tanto no caso de instrucoes como dados, tendem a formar gruposno qual estao proximas umas das outras. Desse modo e possvel organizar osdados ao longo de uma hierarquia de forma que a porcentagem de acessos a` umcerto nvel seja sucessivamente bem inferior do que a porcentagem de acessos a`um nvel imediatamente superior.

    Registradores, memoria cache e memoria principal sao as tres formas dememoria interna que empregam tecnologias de semicondutores. O uso de tresnveis explora as diferencas de velocidade e custo dessas memorias. Alem de-las, alguns sistemas utilizam tecnologias e tecnicas adicionais na hierarquia dememoria.

    A Memoria Expandida emprega uma tecnologia mais lenta que a memoriasprincipais. Ela funciona como um ramo lateral a memoria principal, nao secomunicando com a memoria externa. Ja a tecnica de Memoria Virtual permiteque os discos funcionem como uma extensao da memoria principal, aumentandoo desempenho do sistema.

    A utilizacao de memorias cache tem por objetivo proporcionar uma veloci-dade de acesso proxima a velocidade de acesso aos registradores, no entantooferecendo uma capacidade maior do que o conjunto de registradores, e custonao muito superior ao da memoria principal. Os principais elementos de projetode memorias cache sao:

    i Tamanho - deve ser projetado para conjugar bem velocidade, capacidadee custo;

    27

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    ii Funcao de Mapeamento - direto, associativo, associativo por conjuntos;

    iii Algoritmo de Substituicao - LRU, FIFO, LFU, Aleatorio;

    iv Poltica de Escrita - direta (write-through), de volta (write-back) e unica(write-once);

    v Tamanho da Linha;

    vi Numero de Memorias Cache - um ou dois nveis, unificada/separada.

    Entre os elementos de projeto de memoria cache vale destacar tres. Oprimeiro e a Funcao de Mapeamento, que diz respeito a determinar onde umbloco da memoria principal pode ser encontrado na memoria cache. Para re-alizar este mapeamento sao necessarios o endereco do bloco na memoria prin-cipal e a funcao de mapeamento. No esquema de mapeamento direto, um de-terminado conjunto de blocos da memoria principal so pode ser encontrado emuma linha especfica da memoria cache. E de facil implementacao, porem podeutilizar de forma ineficiente o espaco da cache. No mapeamento associativoum bloco da memoria principal pode ser colocado em qualquer linha da cache.Maximiza a ocupacao da cache, porem exige uma logica de controle que real-ize comparacao do rotulo com todas as linhas do cache simultaneamente. Noesquema associativo por conjuntos, um bloco da memoria principal pode se en-contrar em um conjunto de linhas da cache, e nao nela toda. Visa conjugarvantagens dos metodos direto e associativo.

    O segundo elemento e Poltica de Escrita, que visa garantir a coerencia dasinformacoes nos diferentes memorias acessveis pelo processador e dispositivosde E/S. Na tecnica e a de escrita direta (write-through), todas as operacoes deescrita sao feitas na memoria principal e no cache. Esta garante a coerencia emtodas as memorias do sistema, no entanto e de baixo desempenho. Na tecnicade escrita de volta (write-back), as escritas sao feitas apenas na cache. Minimizaas operacoes de escrita em memoria principal, porem impoe que operacoes deE/S acessem o cache.

    O terceiro elemento e o numero de memorias cache do sistema. Atualmente,a organizacao mais comuns e baseada em 2 nveis, um interno ao processador(L1) e outro externo (L2). Originalmente, a maioria dos projetos de cacheinclui uma unica memoria cache, que armazenava tanto instrucoes como da-dos. Recentemente, tornou-se comum a utilizacao de memorias separadas parainstrucoes e dados. Em processadores modernos que se valem de tecnicas debusca antecipada de instrucao (Pipeline), tecnicas de Cache Separadas sao maiseficientes que as de Cache Unificada.

    1.7 Desempenho do computador

    O desempenho de um computador pode ser definido como:

    Desempenho =1

    Tempo de Execucao(1.1)

    28

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    O tempo e a medida de desempenho de um sistema computacional. Emgeral, ele e medido em segundos e pode ser definido de diferentes maneiras. Otempo de resposta ou tempo decorrido (elapsed time) define o tempo total parase completar uma tarefa computacional, incluindo os acessos a` memoria e aodisco, as atividades de entrada e sada e o overhead do sistema operacional.

    O tempo do processador (CPU time) define o tempo gasto pelo proces-sador para executar um programa em particular, nao considerando o tempo deexecucao de outros programas, tempo de espera por I/O, etc. Este tempo edividido em tempo do usuario e tempo do sistema. O tempo do usuario e otempo gasto na execucao das instrucoes do programa do usuario. Ja o tempodo sistema e o tempo gasto pelo sistema operacional para executar tarefas embenefcio do programa do usuario. A medida de tempo que mais interessa e otempo de usuario.

    Os projetistas medem a velocidade do hardware na execucao de suas funcoesbasicas com o clock. O clock possui uma taxa constante e determina o momentoda ocorrencia de eventos do proprio hardware. O tamanho de um perodo declock e referenciado tanto como o tempo necessario para completar um ciclo declock quanto como a frequencia do clock (inverso do ciclo de clock). Por exemplo,um ciclo de clock igual a 2 s corresponde a uma frequencia de 500MHz, que eo inverso do ciclo de clock.

    1.7.1 Tempo de execucao de um programa

    Formulas bastante simples relacionam a medida do tempo de execucao gasto noprocessador com a metrica basica baseada nos ciclos de clock e tempo do ciclode clock:

    Tempo de CPU do programa = N de ciclos x Perodo de clock

    = N de ciclos / Frequencia do clock

    Essas formulas nao incluem qualquer referencia ao numero de instrucoesnecessarias a` execucao de um programa. O tempo de execucao tambem dependedo numero de instrucoes do programa. O numero de ciclos de clock necessariosa` execucao de uma instrucao e dado por:

    No de ciclos de clock = No instrucoes do programa x CPI (1.2)

    A CPI e a media do numero de ciclos por instrucao. Este parametro permitea comparacao entre diferentes implementacoes de uma mesma arquitetura doconjunto de instrucoes, uma vez que o numero de instrucoes para a execucao doprograma nas diferentes implementacoes e o mesmo.

    1.7.2 Desempenho da CPU

    O desempenho da CPU na execucao de um programa pode ser medido em termosquantidade de instrucoes, do CPI e do perodo do clock:

    29

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    Tempo de CPU = No de instrucoes x CPI x Perodo do clock (1.3)

    O tempo de CPU e medido executando o programa, o perodo do clock edivulgado pelo fabricante e o numero de instrucoes e obtido por meio de soft-wares conhecidos como execution profilers ou por simuladores de arquitetura.

    Em uma primeira aproximacao, o numero de instrucoes, a CPI e o perododo clock sao afetados respectivamente pela capacidade de otimizacao do com-pilador, pela arquitetura do processador e de seu conjunto de instrucoes; e pelatecnologia empregada na implementacao da maquina.

    1.7.3 Programas para medir desempenho

    Existem quatro nveis de programas que podem ser usados para avaliacao dedesempenho, eles estao listados em ordem decrescente de precisao de previsao:

    Programas reais;

    Nucleos ou kernels (pedacos de programas reais);

    Toy Benchmarks (programas com 10 a 100 linhas de codigo que produzemum resultado conhecido a priori);

    Benchmarks sinteticos (similar em filosofia aos nucleos, tentam casar afrequencia media de operacoes de um grande conjunto de programas).

    Os benchmarks sao conjuntos de aplicacoes que representam cargas de tra-balho cujo objetivo e estimar o desempenho das cargas de trabalho reais. Osbenchmarks podem conter aplicacoes tpicas de processamento cientfico, com-piladores, processadores de texto entre outras.

    Um Benchmark Suite e um conjunto de programas de avaliacao. A Stan-dard Performance Evaluation Corporation (SPEC) tem lancado varios bench-mark suites: SPEC89, SPEC92, SPEC95 e SPEC2000. Estas benchmark suitessao compostas por programas reais, escolhidos para serem representativos deprogramas que tipicamente demandam muita CPU e pouco I/O.

    1.7.4 Comparando desempenho

    Uma vez selecionados os programas adequados para usar como benchmarks edecidida a metrica de avaliacao, tempo de resposta ou throughput (numero detarefas executadas por unidade de tempo), e necessario decidir como compararos dados de desempenho obtidos a partir de diferentes benchmarks.

    A maneira mais simples de considerar o desempenho relativo e usar o tempototal de execucao de dois programas em maquinas diferentes. Por exemplo, ostempos de execucao de dois programas conforme a tabela 1.1.

    Outra maneira de sumarizar os tempos e utilizando as medias aritmetica,harmonica ou geometrica. A media geometrica e inadequada, pois nao prediz otempo de execucao.

    30

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    Computador A Computador BPrograma 1 (s) 1 10Programa 2 (s) 1000 100Total (s) 1001 110

    Tabela 1.1: Tempo total de execucao de 2 programas

    Media Aritmetica = Tempo (i,n) =1

    n(1.4)

    Media Harmonica = Taxa (i,n) =nn

    i=11

    Taxai

    (1.5)

    Media Geometrica = Tempo Normalizado (i,n) = n

    n

    i=1

    Tnormalizadoi (1.6)

    Alem das media, existem ainda outras medidas de desempenho. Uma dasalternativas e a metrica MIPS (million instruction per second), que e dada porum das seguintes expressoes:

    MIPS =Numero de instrucoes

    Tempo de execucao x 106

    =Frequencia de Clock

    CPI 106

    Existem problemas com o uso da metrica MIPS. Ela especifica a taxa deexecucao de instrucoes, mas nao considera a capacidade de executar mais oumenos trabalho. Portanto, nao podemos comparar maquinas com conjuntos deinstrucoes diferentes. Outro problema e que os resultados obtidos variam en-tre programas no mesmo computador, o que impede que determinada maquinatenha um MIPS caracterstico.

    Outra alternativa e a metrica denominada MFLOPS (million floating-pointoperations per second), que e dada pela seguinte expressao:

    MFLOPS =Numero de op. de ponto flutuante

    Tempo de execucao x 106(1.7)

    Uma operacao de ponto flutuante pode ser uma operacao de adicao, sub-tracao, multiplicacao ou divisao aplicada a operandos expressos em precisaosimples ou dupla.

    1.7.5 Lei de Amdahl

    A lei de Amdhal pode ser utilizada para demonstrar o ganho de desempenhode uma maquina. Este ganho e dito aceleracao ou speedup. Entende-se poraceleracao a medida de como a maquina se comporta apos a implementacao

    31

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    de uma melhora em relacao ao seu comportamento anterior. Podemos definirspeedup como:

    speedup =Desempenho apos a melhora

    Desempenho antes da melhora(1.8)

    A lei de Amdhal demonstra que e errado esperar que a melhora em um dosaspectos que influenciam no desempenho da maquina resulte numa melhora nodesempenho total proporcional ao tamanho do ganho inicial da fracao.

    32

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    Captulo 2

    Componentes de umComputador

    O computador esta organizado em dois componentes que sao:

    Hardware: corresponde a parte fsica que esta dividida em: unidade deentrada e sada, processador, memoria principal e memoria secundaria;

    Software: e o conjunto de programas que da vida a` maquina. E classificadoem software aplicativo (jogos, planilha, etc.) e software basico (sistemaoperacional, compiladores, editores de texto, etc.).

    Para interligar os componentes do hardware existe uma placa de suporteespecial, chamada placa-mae. A placa-mae e responsavel por gerenciar toda atransacao entre o processador e os perifericos. Os componentes principais daplaca-mae sao: chipset, BIOS, barramentos, e slots.

    Chipset e o chip responsavel pelo controle de diversos dispositivos de entradae sada como o barramento, o acesso a` memoria, o acesso ao HD, perifericoson-board e off-board, comunicacao do processador com a memoria RAM e en-tre outros componentes da placa-mae. Uma placa-mae possui dois chipsets: ochipset sul e o chiset norte. O chipset sul (south bridge) e responsavel pelo cont-role de dispositivos de entrada ou sada enquanto o chipset norte (north bridge)faz a comunicacao entre o processador e a memoria principal.

    O BIOS (Basic Input/Output System) e o primeiro programa executadopelo computador ao ser ligado. Sua funcao primaria e preparar a maquina paraque o sistema operacional, que pode estar armazenado em diversos tipos dedispositivos (discos rgidos, disquetes, CDs, etc) possa ser executado. O BIOSe armazenado num chip ROM (Read-Only Memory) localizado na placa-mae,chamado ROM BIOS. O BIOS tambem e responsavel por controlar o uso dosdispositivos e manter informacoes de data e hora. O BIOS trabalha junto como post, um software que testa os componentes do micro em busca de eventuaiserros. Pode-se alterar as configuracoes de hardware atraves do setup.

    33

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    Os barramentos permitem a interligacao entre os dispositivos da placa-mae.Sao divididos em tres conjuntos: via de dados, via de enderecos e via de cont-role. O desempenho do barramento pode ser medido pela sua largura de banda(32, 64 bits, etc.) e pela sua velocidade de transmissao (100 Mbps, 1G bps, etc.).

    Os slots sao responsaveis por ligar os perifericos aos barramentos e suasvelocidades e largura de banda sao correspondentes as dos seus respectivos bar-ramentos. Na placa-mae sao encontrados varios slots para encaixe de placas(vdeo, som, rede, modem, etc.). Alguns exemplos de slots: ISA, PCI, AGP,PCI Express, etc.

    2.1 Principais componentes de Hardware

    2.1.1 Discos Rgidos

    Os discos rgidos sao dispositivos de armazenamento destinados a grandes quan-tidades de dados. Fisicamente, um disco rgido pode ser visto como um com-posto por dois grandes blocos, como na figura 2.2. O primeiro bloco e umconjunto de discos magneticos superpostos em alturas diferentes com auxlio deum eixo central. No momento de acesso ao disco, essa estrutura e mantida emuma rotacao constante. O segundo bloco e uma estrutura mecanica que suportaum conjunto de cabecotes, um para cada superfcie de disco. Essa estrutura ecapaz de realizar movimentos de vai-e-vem de maneira que os cabecotes possamser deslocados desde a borda do disco ate o centro.

    Figura 2.1: Organizacao fsica do disco

    Do ponto de vista da organizacao logica, cada superfcie de um disco e di-vidida em circunferencias concentricas denominadas trilhas. Cada trilha, porsua vez, e subdividida radialmente em unidades chamadas setores. Em geral,os setores tem o mesmo tamanho. O setor possui a unidade mnima de leiturae gravacao em um disco. O conjunto de todas as superfcies do disco que fi-cam exatamente a` mesma distancia do eixo central forma o cilindro, conformea figura ??. As abstracoes cilindro, trilha e setor sao utilizadas para designar aorganizacao logica da unidade de disco. A definicao de trilhas e de setores em

    34

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    um disco chama-se formatacao fsica e e um procedimento realizado pelo fabri-cante. A capacidade total do disco e obtida multiplicando-se cabecas x cilindrosx setores x tamanho do setor.

    Figura 2.2: Organizacao logica da unidade de disco

    Para acessar dados no disco, e necessario informar a` controladora o cilin-dro, a superfcie e o setor a ser acessado. Esse metodo e denominado de CHS(Cylinder, Head, Sector). Outra maneira e acessar o disco e enxerga-lo comoum conjunto de blocos, no qual cada bloco e um ou mais setores. O numero deblocos e entao convertido em cilindros, superfcie e setores por um procedimentoque se denomina de LBA (Linear Block Addressing).

    Outros termos bastante comuns associados a disco rgidos sao formatacaologica e particoes. A formatacao logica consiste em gravar informacoes no discode forma que arquivos possam ser escritos, lidos e localizados pelo sistema op-eracional. O conceito de particao esta associado a` capacidade de dividir logica-mente um disco em varios outros discos.

    Para realizar um acesso a um disco, e necessario posicionar o cabecote deleitura e escrita sob um determinado setor e trilha onde dado sera lido ou es-crito. O tempo total de acesso aos disco, seja para leitura ou para escrita, edado pela seguinte formula:

    Tacesso = Tseek + Tlatencia+ Ttransferencia (2.1)

    A descricao de cada um dos termos da soma e a seguinte:

    Tempo de Seek: tempo necessario para deslocar o cabecote de leitura eescrita ate o cilindro correspondente a` trilha a ser acessada;

    Tempo de Latencia: tempo necessario, uma vez o cabecote posicionado jana trilha correta, para o setor a ser lido, ou escrito, se posicionar sob ocabecote de leitura e escrita no incio do setor a ser lido (ou escrito);

    Tempo de Transferencia: corresponde ao tempo necessario a` transferenciados dados, isso e, a` leitura ou a escrita dos dados.

    35

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    Outro fator relacionado com a reducao do tempo de acesso a um disco eo entrelacamento (interleaving). Essa tecnica numera os setores nao mais deforma contgua, mas sim com um espaco entre eles. O disco 2 da Ilustracao 14possui um fator de entrelacamento igual a 2. Isso significa que entre o setor ke o setor k+1, existem dois outros setores. O melhor fator de entrelacamentopara uma determinada unidade de disco depende da velocidade do processador,do barramento, do controlador e da velocidade de rotacao do disco.

    Figura 2.3: Trilha com 16 setores e diferentes fatores de entrelacamento

    2.1.2 Teclado

    O teclado e o principal periferico de entrada de dados utilizado na integracaodireta de usuarios com o computador. O princpio de operacao do teclado e bas-tante simples: gerar um smbolo para cada tecla pressionada. Mecanicamente,um teclado pode ser visto como uma matriz de i linhas e j colunas as quaisentram em contato quando uma tecla e pressionada. A cada elemento i,j damatriz correspondente um caractere.

    Quando uma tecla e pressionada, o teclado identifica a linha e a colunaassociadas a essa tecla e gera um codigo que e denominado de scan mode (codigode varredura). O pressionar da tecla gera ainda uma interrupcao de hardware,e por consequencia, a execucao de um tratador de interrupcoes especfico parao teclado. Com base no scan mode, o tratador de interrupcoes consulta umatabela interna, substituindo o scan mode pelo codigo ASCII correspondente a`tecla pressionada. O codigo ASCII da tecla, em seguida, e armazenado emuma regiao especial da memoria (buffer do teclado) de onde e recuperado porchamadas do sistema operacional.

    Um teclado brasileiro difere de um teclado ingles na posicao dos acentos eda cedilha, por exemplo. A solucao empregada e associar a certos programasaplicativos mapas de codigos. Atraves desses mapas de codigos, os programasaplicativos sao capazes de consumir caracteres do buffer de teclado e converte-los de forma apropriada.

    O procedimento de ler os dados do teclado e escreve-los na tela denomina-seecoamento. Quando se tem varias janelas abertas, os caracteres digitados devemser direcionados a` janela correta. Dois metodos sao normalmente empregados:centralizado e dedicado.

    36

    http://www.candidatoreal.com

  • htt

    p:/

    /ww

    w.c

    andid

    atore

    al.c

    om

    No metodo centralizado o driver de teclado disponibiliza um conjunto demini-buffers os quais podem ser encadeados para formar um buffer maior. Nessecaso, para cada janela aberta o sistema operacional atribui uma estrutura dedados na qual um dos seus elementos e um ponteiro utilizado para referenciare lista encadeada de mini-buffers. No metodo dedicado, a bufferizacao e feitadiretamente em uma area de memoria provida pela estrutura de dados associadaao terminal. Nesse caso, o numero de entradas para o terminal e limitado pelotamanho do buffer dessa