• Like
Handbook de ti para concursos – o guia definitivo
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Handbook de ti para concursos – o guia definitivo

  • 11,603 views
Published

Handbook

Handbook

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • Isso é um problema. Comprei 2 volumes para concursos de arq, com respostas 'comentadas'. Os comentários eram ctrl+C+crtl+V do google, chegando a dar vergonha alheia. Foram mt bem pagos (cerca de R$100,00/cada, sendo q cada um deles não tem nem 100 folhas).
    Are you sure you want to
    Your message goes here
  • Tenho esse handbook e confesso que nunca vi na vida um documento com tamanha displicência ao ser redigido. São tantos erros de português que nos leva a ficarmos receiosos não apenas quanto a relevância e veracidade do conteúdo, mas também do quanto ele pode de fato ser útil.

    O melhor é buscar o conteúdo em livros mesmo; é a mais pura realidade.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
11,603
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
595
Comments
2
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. http://www.candidatoreal.com
  • 2. http://www.candidatoreal.com Sum´rio a I Fundamentos de Computa¸˜o ca 16 1 Arquitetura e Organiza¸˜o de Computadores ca 17 1.1 Conceitos B´sicos . . . . . . . . . . . . . . . . . a . . . . . . . . . . 17 1.2 Estrutura e Funcionamento da CPU . . . . . . . . . . . . . . . . 18 1.2.1 Pipelines . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.3 Conjunto de Instru¸˜es . . . . . . . . . . . . . . co . . . . . . . . . . 22 1.4 Unidade de Controle . . . . . . . . . . . . . . . . . . . . . . . . . 24 1.5 Modos de Endere¸amento . . . . . . . . . . . . c . . . . . . . . . . 25 1.6 Organiza¸˜o de Mem´ria . . . . . . . . . . . . . ca o . . . . . . . . . . 26 1.7 Desempenho do computador . . . . . . . . . . . . . . . . . . . . . 28 1.7.1 Tempo de execu¸˜o de um programa . . ca . . . . . . . . . . 29 1.7.2 Desempenho da CPU . . . . . . . . . . . . . . . . . . . . 29 1.7.3 Programas para medir desempenho . . . . . . . . . . . . . 30 1.7.4 Comparando desempenho . . . . . . . . . . . . . . . . . . 30 1.7.5 Lei de Amdahl . . . . . . . . . . . . . . . . . . . . . . . . 31 2 Componentes de um Computador 33 2.1 Principais componentes de Hardware . . . . . . . . . . . . . . . . 34 2.1.1 Discos R´ıgidos . . . . . . . . . . . . . . . . . . . . . . . . 34 2.1.2 Teclado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 2.1.3 Mouse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 2.1.4 Placa de rede . . . . . . . . . . . . . . . . . . . . . . . . . 37 2.1.5 Impressora . . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.1.6 Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3 Aritm´tica Computacional e 39 3.1 N´meros Com Sinal e N´meros Sem Sinal . . . u u . . . . . . . . . . 39http://www.candidatoreal.com 3.1.1 Sinal e amplitude/magnitude . . . . . . . . . . . . . . . . 39 3.1.2 Complemento de 1 . . . . . . . . . . . . . . . . . . . . . . 39 3.1.3 Complemento de 2 . . . . . . . . . . . . . . . . . . . . . . 39 3.1.4 Nota¸˜o em excesso . . . . . . . . . . . ca . . . . . . . . . . 40 3.2 Adi¸˜o e Subtra¸˜o . . . . . . . . . . . . . . . . ca ca . . . . . . . . . . 41 3.3 Opera¸˜es L´gicas . . . . . . . . . . . . . . . . co o . . . . . . . . . . 41 3.4 Constru¸˜o de uma Unidade L´gica Aritm´tica ca o e . . . . . . . . . . 42 3.5 Ponto Flutuante . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 1
  • 3. http://www.candidatoreal.com 4 Sistemas Operacionais 44 4.1 Introdu¸˜o . . . . . . . . . . . . . . . . . . . . . . . ca . . . . . . . . 44 4.2 Conceitos B´sicos . . . . . . . . . . . . . . . . . . . a . . . . . . . . 46 4.2.1 Multiprograma¸˜o . . . . . . . . . . . . . . ca . . . . . . . . 46 4.2.2 Processo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.2.3 Interrup¸˜es . . . . . . . . . . . . . . . . . . co . . . . . . . . 47 4.2.4 Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4.3 Escalonamento de Processos . . . . . . . . . . . . . . . . . . . . . 49 4.4 Entrada e Sa´ . . . . . . . . . . . . . . . . . . . . ıda . . . . . . . . 50 4.4.1 Camadas do subsistema de Entrada e Sa´ ıda . . . . . . . . 51 4.5 Gerˆncia de Mem´ria . . . . . . . . . . . . . . . . . e o . . . . . . . . 52 4.6 Sistemas de Arquivos . . . . . . . . . . . . . . . . . . . . . . . . . 54 4.6.1 Conceitos b´sicos sobre arquivos . . . . . . a . . . . . . . . 54 4.6.2 Implementa¸ao de arquivos . . . . . . . . . c˜ . . . . . . . . 56 4.6.3 Cache de Sistema de Arquivos . . . . . . . . . . . . . . . 57 4.6.4 Gerenciamento do espa¸o livre . . . . . . . c . . . . . . . . 58 4.6.5 Diret´rios . . . . . . . . . . . . . . . . . . . o . . . . . . . . 59 4.6.6 Implementa¸ao de diret´rios . . . . . . . . . c˜ o . . . . . . . . 61 4.7 Sistemas Operacionais Distribu´ ıdos . . . . . . . . . . . . . . . . . 61 4.7.1 Estrutura¸˜o de Sistemas Distribu´ ca ıdos . . . . . . . . . . . 63 5 Principais Processadores de Mercado 65 5.1 Processadores Intel . . . . . . . . . . . . . . . . . . . . . . . . . . 65 5.1.1 Fam´ Pentium . ılia . . . . . . . . . . . . . . . . . . . . . . 65 5.1.2 Fam´ Celeron . . ılia . . . . . . . . . . . . . . . . . . . . . . 68 5.1.3 Fam´ Core . . . ılia . . . . . . . . . . . . . . . . . . . . . . 69 5.1.4 Xeon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 5.1.5 Itanium . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 5.2 AMD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 5.2.1 Sempron . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 5.2.2 Athlon 64 . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 5.2.3 Turion 64 . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 5.2.4 Opteron . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 II L´gica de Programa¸˜o o ca 83 6 Orienta¸˜o a Objetos ca 84 6.1 Introdu¸˜o . . . . . . . . . ca . . . . . . . . . . . . . . . . . . . . . . 84http://www.candidatoreal.com 6.2 Conceitos fundamentais . . . . . . . . . . . . . . . . . . . . . . . 84 6.3 Princ´ıpios de programa¸˜o ca orientada a objetos . . . . . . . . . . 90 6.4 Tratamento de exce¸oes . c˜ . . . . . . . . . . . . . . . . . . . . . . 90 III Metodologia de Desenvolvimento 92 7 Ciclo de Vida 93 7.1 Modelo seq¨encial linear . . . . . . . . . . . . . . . . . . . . . . . 95 u 7.2 Modelo em V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 7.3 Modelo de prototipagem . . . . . . . . . . . . . . . . . . . . . . . 96 2
  • 4. http://www.candidatoreal.com 7.4 Modelo RAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 7.5 Modelos de processo de software evolucion´rios a . . . . . . . . . . 97 7.5.1 Modelo incremental . . . . . . . . . . . . . . . . . . . . . 97 7.5.2 Modelo espiral . . . . . . . . . . . . . . . . . . . . . . . . 98 7.5.3 Modelo espiral ganha-ganha . . . . . . . . . . . . . . . . . 99 7.5.4 Modelo de desenvolvimento concorrente . . . . . . . . . . 100 7.6 Desenvolvimento baseado em componentes . . . . . . . . . . . . . 100 7.7 Modelo de m´todos formais . . . . . . . . . . . e . . . . . . . . . . 100 7.8 T´cnicas de quarta gera¸˜o . . . . . . . . . . . e ca . . . . . . . . . . 100 8 An´lise Comparativa de Processos de Desenvolvimento a 102 8.1 RUP - Rational Unified Process . . . . . . . . . . . . . . . . . . . 102 8.2 XP - Extreme Programming . . . . . . . . . . . . . . . . . . . . . 105 8.3 Scrum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 8.4 Crystal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 8.5 Feature Driven Development (FDD) . . . . . . . . . . . . . . . . 106 8.6 Dynamic Systems Development Method (DSDM) . . . . . . . . 107 8.7 Adaptive Software Development (ASD) . . . . . . . . . . . . . . 107 9 Engenharia de Requisitos 109 9.1 O Processo de Engenharia de Requisitos . . . . . . . . . . . . . . 109 9.2 T´cnicas de Levantamento de Requisitos e . . . . . . . . . . . . . . 110 9.2.1 Observa¸˜o . . . . . . . . . . . . ca . . . . . . . . . . . . . . 110 9.2.2 Entrevista . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 9.2.3 An´lise de Protocolo . . . . . . . a . . . . . . . . . . . . . . 111 9.2.4 JAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 9.2.5 PD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 9.2.6 QFD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 9.2.7 CRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 9.2.8 Prototipa¸˜o . . . . . . . . . . . ca . . . . . . . . . . . . . . 112 9.2.9 Cen´rios . . . . . . . . . . . . . . a . . . . . . . . . . . . . . 112 9.2.10 FAST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 9.3 An´lise de Requisitos . . . . . . . . . . . a . . . . . . . . . . . . . . 113 9.3.1 M´todos de an´lise . . . . . . . . e a . . . . . . . . . . . . . . 114 9.3.2 Modelagem da an´lise . . . . . . a . . . . . . . . . . . . . . 114 9.4 Gerenciamento de Requisitos . . . . . . . . . . . . . . . . . . . . 116 10 M´tricas e 118 10.1 M´tricas de processo e aperfei¸oamento de processo e c de software . 118http://www.candidatoreal.com 10.2 M´tricas de projeto . . . . . . . . . . . . . . . . . . e . . . . . . . . 119 10.3 Medi¸˜o de software . . . . . . . . . . . . . . . . . ca . . . . . . . . 119 10.3.1 M´tricas orientadas a tamanho . . . . . . . e . . . . . . . . 120 10.3.2 M´tricas orientadas a fun¸˜o . . . . . . . . e ca . . . . . . . . 120 10.3.3 M´tricas de pontos por fun¸ao estendidas . e c . . . . . . . . 122 10.4 M´tricas de qualidade de software . . . . . . . . . e . . . . . . . . 122 10.4.1 Fatores de qualidade de McCall . . . . . . . . . . . . . . . 123 10.4.2 FURPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 10.4.3 ISO 9126 . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 10.5 Estimativas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 10.5.1 COCOMO (Constructive Cost Model) . . . . . . . . . . . 125 3
  • 5. http://www.candidatoreal.com 11 Testes 127 11.1 Teste de caminho b´sico . . . . . . . . . . . . . . . . . . . . a . . . 127 11.2 Teste de estrutura de controle . . . . . . . . . . . . . . . . . . . . 129 11.2.1 Teste de condi¸˜o . . . . . . . . . . . . . . . . . . . . ca . . . 129 11.2.2 Teste de fluxo de dados . . . . . . . . . . . . . . . . . . . 130 11.2.3 Teste de ciclo . . . . . . . . . . . . . . . . . . . . . . . . . 130 11.3 Teste caixa-preta . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 11.3.1 M´todos de teste baseados em grafo . . . . . . . . . e . . . 131 11.3.2 Particionamento de equivalˆncia . . . . . . . . . . . e . . . 131 11.3.3 An´lise de valor limite . . . . . . . . . . . . . . . . . a . . . 132 11.3.4 Teste de compara¸˜o . . . . . . . . . . . . . . . . . . ca . . . 132 11.3.5 Teste de matriz ortogonal . . . . . . . . . . . . . . . . . . 132 11.4 Teste de ambientes, arquiteturas e aplica¸˜es especializadas co . . . 133 11.5 Estrat´gia de teste de software . . . . . . . . . . . . . . . . e . . . 134 12 UML 136 12.1 Diagrama de caso de uso . . . . . . . . . . . . . . . . . . . . . . . 136 12.1.1 Ator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 12.1.2 Descri¸˜o do caso de uso . ca . . . . . . . . . . . . . . . . . . 137 12.2 Diagrama de classe . . . . . . . . . . . . . . . . . . . . . . . . . . 137 12.2.1 Associa¸˜es de classe . . . co . . . . . . . . . . . . . . . . . . 138 12.3 Diagramas de seq¨ˆncia . . . . . ue . . . . . . . . . . . . . . . . . . 140 12.4 Diagramas de colabora¸˜o . . . . ca . . . . . . . . . . . . . . . . . . 140 12.5 Diagramas de estado . . . . . . . . . . . . . . . . . . . . . . . . . 141 12.6 Diagramas de atividade . . . . . . . . . . . . . . . . . . . . . . . 143 12.7 Elementos auxiliares . . . . . . . . . . . . . . . . . . . . . . . . . 144 12.8 Diagramas de componente . . . . . . . . . . . . . . . . . . . . . . 144 12.9 Diagramas de distribui¸˜o . . . . ca . . . . . . . . . . . . . . . . . . 144 13 Gerˆncia de Configura¸˜o e Mudan¸as e ca c 145 13.1 As Atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 13.2 Artefatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 13.3 Pap´is e Responsabilidades . . . . . . . . . . . . . . . . . . . . . e 147 14 CMM - Capability Maturity Model 149 14.1 Os n´ıveis de maturidade no CMM . . . . . . . . . . . . . . . . . 150 14.1.1 N´ 1 - Inicial . . . . . . . . . . . . ıvel . . . . . . . . . . . . 150 14.1.2 N´ 2 - Repetitivo . . . . . . . . . ıvel . . . . . . . . . . . . 150 14.1.3 N´ 3 - Definido . . . . . . . . . . . ıvel . . . . . . . . . . . . 151http://www.candidatoreal.com 14.1.4 N´ 4 - Gerenciado . . . . . . . . . ıvel . . . . . . . . . . . . 152 14.1.5 N´ 5 - Otimizado . . . . . . . . . ıvel . . . . . . . . . . . . 152 14.2 Um pouco mais sobre KPA’s . . . . . . . . . . . . . . . . . . . . 152 14.3 Efeitos da evolu¸˜o do n´ de maturidade ca ıvel . . . . . . . . . . . . 153 IV Linguagem de Programa¸˜o Java ca 155 15 Conceitos B´sicos de Java a 156 15.1 Pacotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 15.2 Modificadores de Acesso . . . . . . . . . . . . . . . . . . . . . . . 157 4
  • 6. http://www.candidatoreal.com 15.3 Vari´veis . . . . . . . . . . . . . . a . . . . . . . . . . . . . . . . . . 157 15.4 Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 15.5 Express˜es, Senten¸as e Blocos . o c . . . . . . . . . . . . . . . . . . 160 15.6 Comandos de Controle de Fluxo . . . . . . . . . . . . . . . . . . 161 15.7 Classes Aninhadas . . . . . . . . . . . . . . . . . . . . . . . . . . 166 15.8 Tipos Enumerados . . . . . . . . . . . . . . . . . . . . . . . . . . 167 15.9 Anota¸˜es . . . . . . . . . . . . . co . . . . . . . . . . . . . . . . . . 168 15.10Gen´ricos . . . . . . . . . . . . . e . . . . . . . . . . . . . . . . . . 169 15.11Reflex˜o . . . . . . . . . . . . . . a . . . . . . . . . . . . . . . . . . 171 16 Classes Essenciais 173 16.1 Exception e Controle de Exce¸˜es . . . . . co . . . . . . . . . . . . . 173 16.1.1 Exce¸˜es t´ co ıpicas . . . . . . . . . . . . . . . . . . . . . . . 173 16.1.2 Capturando Exce¸˜es . . . . . . . co . . . . . . . . . . . . . 175 16.2 Threads e Concorrˆncia . . . . . . . . . . e . . . . . . . . . . . . . 176 16.2.1 Definindo e Iniciando uma Thread . . . . . . . . . . . . . 176 16.2.2 Pausando a execu¸˜o com sleep . . ca . . . . . . . . . . . . . 177 16.2.3 Interrup¸˜es . . . . . . . . . . . . . co . . . . . . . . . . . . . 178 16.2.4 Joins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 16.2.5 Sincroniza¸˜o . . . . . . . . . . . . ca . . . . . . . . . . . . . 179 16.2.6 Executores e Thread Pools . . . . . . . . . . . . . . . . . 180 16.3 Streams e Serializa¸˜o . . . . . . . . . . . ca . . . . . . . . . . . . . 181 16.3.1 I/O Streams . . . . . . . . . . . . . . . . . . . . . . . . . 181 16.3.2 Serializa¸˜o - Streams de Objetos . ca . . . . . . . . . . . . . 183 16.4 Classes e Opera¸˜es de I/O . . . . . . . . co . . . . . . . . . . . . . 185 16.5 Classes para manipula¸˜o de propriedades ca . . . . . . . . . . . . . 185 17 Cole¸˜es co 188 17.1 Interface Collection . . . . . . . . . . . . . . . . . . . . . . . . . . 189 17.2 Interface Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 17.3 Interface List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 17.4 Interface Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 17.5 Interface Queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 18 JDBC - Java Database Connectivity 199 18.1 Conceitos B´sicos . . . . . . . . . . . a . . . . . . . . . . . . . . . . 199 18.2 Carregamento de drivers . . . . . . . . . . . . . . . . . . . . . . . 200 18.3 Conex˜o . . . . . . . . . . . . . . . . a . . . . . . . . . . . . . . . . 200 18.4 Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201http://www.candidatoreal.com 18.5 Prepared Statements . . . . . . . . . . . . . . . . . . . . . . . . . 203 18.6 Transa¸˜o . . . . . . . . . . . . . . . ca . . . . . . . . . . . . . . . . 203 18.7 Informa¸˜es Complementares . . . . co . . . . . . . . . . . . . . . . 204 18.8 Exemplo Extra . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 19 A plataforma J2EE 207 19.1 Containers J2EE . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 19.2 Clientes J2EE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 19.3 Um pouco mais sobre Servlets . . . . . . . . . . . . . . . . . . . . 209 19.3.1 Ciclo de Vida dos Servlets . . . . . . . . . . . . . . . . . . 211 19.3.2 Mantendo o estado do cliente . . . . . . . . . . . . . . . . 212 5
  • 7. http://www.candidatoreal.com 19.4 Um pouco mais sobre p´ginas JSP a . . . . . . . . . . . . . . . . . 213 19.4.1 JSP vs. Servlets . . . . . . . . . . . . . . . . . . . . . . . 215 19.5 Um pouco mais sobre EJB’s . . . . . . . . . . . . . . . . . . . . . 216 19.5.1 Ciclo de Vida dos EJB’s . . . . . . . . . . . . . . . . . . . 217 V Desenvolvimento Web 220 20 Usabilidade 221 20.1 Defini¸˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 ca 20.2 Princ´ ıpios da usabilidade . . . . . . . . . . . . . . . . . . . . . . . 222 20.3 T´cnicas de avalia¸˜o de usabilidade . . . . . . . . . . . . . . . . 223 e ca 21 Acessibilidade 224 21.1 Defini¸˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ca 224 21.2 Princ´ ıpios da acessibilidade . . . . . . . . . . . . . . . . . . . . . 224 21.3 T´cnicas de avalia¸˜o de acessibilidade . . . . . . . . . . . . . . . e ca 227 22 Padr˜es Web W3C o 229 23 XML 233 23.1 O que ´ XML? . . . . . . . . . . . e . . . . . . . . . . . . . . . . . 233 23.2 Caracter´ısticas do XML . . . . . . . . . . . . . . . . . . . . . . . 234 23.3 Compara¸˜o entre XML e HTML . ca . . . . . . . . . . . . . . . . . 234 23.4 Sintaxe b´sica do XML . . . . . . a . . . . . . . . . . . . . . . . . 234 23.5 Conjunto de tags . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 23.6 NameSpaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 23.7 Gram´tica de um documento XML a . . . . . . . . . . . . . . . . 239 23.8 Tecnologias XML . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 23.9 Benef´ ıcios da linguagem XML . . . . . . . . . . . . . . . . . . . . 245 23.10Ferramentas de desenvolvimento . . . . . . . . . . . . . . . . . . 246 24 XSLT 247 24.1 O que ´ uma folha de estilo? . . e . . . . . . . . . . . . . . . . . . 247 24.2 Compara¸˜o entre o CSS e XSL . ca . . . . . . . . . . . . . . . . . . 247 24.3 O que ´ o XSL? . . . . . . . . . . e . . . . . . . . . . . . . . . . . . 248 24.4 O que ´ o XSLT? . . . . . . . . . e . . . . . . . . . . . . . . . . . . 248 24.5 Caracter´ ısticas do XSLT . . . . . . . . . . . . . . . . . . . . . . . 249 24.6 Declarando um documento XSL . . . . . . . . . . . . . . . . . . . 249 24.7 Elemento <xsl:template> . . . . . . . . . . . . . . . . . . . . . . 250http://www.candidatoreal.com 24.8 Elemento <xsl:value-of> . . . . . . . . . . . . . . . . . . . . . . . 251 24.9 Elemento <xsl:for-each> . . . . . . . . . . . . . . . . . . . . . . . 252 24.10Elemento <xsl:sort> . . . . . . . . . . . . . . . . . . . . . . . . . 252 24.11Elemento <xsl:if> . . . . . . . . . . . . . . . . . . . . . . . . . . 252 24.12Elemento <xsl:choose> . . . . . . . . . . . . . . . . . . . . . . . 253 24.13Elemento <xsl:apply-templates> . . . . . . . . . . . . . . . . . . 253 24.14XSL no lado Cliente . . . . . . . . . . . . . . . . . . . . . . . . . 254 24.15XSL no lado Servidor . . . . . . . . . . . . . . . . . . . . . . . . 254 24.16Processadores XSLT . . . . . . . . . . . . . . . . . . . . . . . . . 255 6
  • 8. http://www.candidatoreal.com 25 Gerenciador de Conte´ do Web Zone/Plone u 256 25.1 Gest˜o de Conte´do . . . . . . . . . . . . . . a u . . . . . . . . . . . 256 25.2 Sistema de Gest˜o de Conte´do . . . . . . . . a u . . . . . . . . . . . 257 25.3 Zope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 25.4 Plone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 26 Web Services 263 26.1 O que ´ Web Services? e . . . . . . . . . . . . . . . . . . . . . . . . 263 26.2 SOAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 26.3 WSDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 26.4 UDDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 26.5 Seguran¸a . . . . . . . c . . . . . . . . . . . . . . . . . . . . . . . . 269 VI Redes de Comunica¸˜o ca 270 27 T´cnicas B´sicas de Comunica¸˜o e a ca 271 27.1 Base Te´rica da Comunica¸˜o de Dados . . . . . . . . . o ca . . . . . 271 27.2 Taxa M´xima de Dados em um Canal . . . . . . . . . . a . . . . . 272 27.3 Sinais Digitais Bin´rios . . . . . . . . . . . . . . . . . . a . . . . . 272 27.4 Transmiss˜o em Banda Base . . . . . . . . . . . . . . . . a . . . . . 273 27.5 Classifica¸˜o dos Sinais . . . . . . . . . . . . . . . . . . . ca . . . . . 273 27.6 T´cnicas de Codifica¸˜o de Linha . . . . . . . . . . . . . e ca . . . . . 274 27.6.1 Codifica¸˜o NRZ . . . . . . . . . . . . . . . . . . ca . . . . . 274 27.6.2 Codifica¸˜o RZ . . . . . . . . . . . . . . . . . . . ca . . . . . 275 27.6.3 Codifica¸˜o AMI (Alternate Mark Invertion) . . ca . . . . . 275 27.6.4 Codifica¸˜o HDB-3 (High Density Bipolar with ca 3 Zero Maximum Tolerance) . . . . . . . . . . . . . . . . . . . . 275 27.6.5 Codifica¸˜o Manchester . . . . . . . . . . . . . . ca . . . . . 276 27.7 Modula¸˜o . . . . . . . . . . . . . . . . . . . . . . . . . ca . . . . . 276 27.7.1 Modula¸˜o de Onda Cont´ ca ınua . . . . . . . . . . . . . . . . 277 27.7.2 Modula¸˜o de Pulsos . . . . . . . . . . . . . . . . ca . . . . . 279 27.8 T´cnicas de Multiplexa¸˜o . . . . . . . . . . . . . . . . . e ca . . . . . 280 27.8.1 FDM - Frequency Division Multiplexing . . . . . . . . . . 281 27.8.2 TDM - Time Division Multiplexing . . . . . . . . . . . . . 281 27.8.3 OFDM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 27.8.4 WDM -Wavelength Division Multiplexing . . . . . . . . . 282 27.9 Protocolos de Acesso M´ltiplo . . . . . . . . . . . . . . . u . . . . . 283http://www.candidatoreal.com 28 Topologias de Redes 284 29 Arquitetura de Redes 286 29.1 Organiza¸˜o em Camadas . . . . . . . . . . . . . . . . . . . . . . 286 ca 30 Protocolos de Rede 287 30.1 ARP - Address Resolution Protocol . . . . . . . . . . . . . . . . 287 30.2 DHCP - Dynamic Host Configuration Protocol . . . . . . . . . . 287 30.3 DNS - Domain Name System . . . . . . . . . . . . . . . . . . . . 289 30.4 TCP - Transmission Control Protocol . . . . . . . . . . . . . . . 291 30.5 UDP - User Datagram Protocol . . . . . . . . . . . . . . . . . . . 293 7
  • 9. http://www.candidatoreal.com 30.6 HTTP - Hyper Text Transfer Protocol . . . . . . . . . . . . . . . 294 30.7 SMTP - Simple Mail Transfer Protocol . . . . . . . . . . . . . . . 299 30.8 POP3 - Post Office Protocol Version 3 . . . . . . . . . . . . . . . 301 30.9 IMAP - Internet Mail Access Protocol . . . . . . . . . . . . . . . 303 30.10LDAP - LightWeight Directory Access Protocol . . . . . . . . . . 305 30.11SNMP - Simple Network Management Protocol . . . . . . . . . . 305 30.12FTP - File Transfer Protocol . . . . . . . . . . . . . . . . . . . . 306 30.13IP - Internet Protocol . . . . . . . . . . . . . . . . . . . . . . . . 310 30.14TELNET - TELetype NETwork . . . . . . . . . . . . . . . . . . 311 31 O Modelo de Referˆncia OSI e 314 32 Roteamento 316 32.1 Link State e Distance Vector . . . . . . . . . . . . . . . . . . . . 317 32.1.1 Vetor de Distˆncias vs. Estado do Link a . . . . . . . . . . 319 32.2 Protocolos de Roteamento . . . . . . . . . . . . . . . . . . . . . . 320 32.2.1 RIP - Routing Information Protocol . . . . . . . . . . . . 320 32.2.2 OSPF - Open Shortest Path First . . . . . . . . . . . . . 320 32.2.3 IGRP e EIGRP . . . . . . . . . . . . . . . . . . . . . . . . 321 33 Redes Ethernet 322 33.1 Protocolo CSMA/CD . . . . . . . . . . . . . . . . . . . . . . . . 322 33.2 Fast Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 33.3 Gigabit Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 34 Cabeamento Estruturado 326 34.1 Par Tran¸ado . . . . . . . . . . . . . . . . . . . . . c . . . . . . . . 326 34.1.1 Interferˆncias nos Cabos de Par Tran¸ado . e c . . . . . . . . 326 34.2 Categorias 5e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 34.3 Categoria 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 34.4 Categoria 5e vs. Categoria 6 . . . . . . . . . . . . . . . . . . . . 328 34.5 Cabea¸˜o Estruturada – Norma EIA/TIA 568 . . . ca . . . . . . . . 329 34.5.1 Sistemas de Cabeamento Estruturado . . . . . . . . . . . 329 34.6 Desempenho do Hardware e Meios de Transmiss˜o a . . . . . . . . 333 34.6.1 Cabeamento UTP . . . . . . . . . . . . . . . . . . . . . . 334 ´ 34.6.2 Fibra Optica . . . . . . . . . . . . . . . . . . . . . . . . . 335 34.7 C´digo de Cores para Sistemas de Cabe¸˜o UTP . o ca . . . . . . . . 336 35 Redes sem fio 337 35.1 O padr˜o IEEE 802.11 . . . . . . . . . . . . . . . . . . . . . . . . 337 ahttp://www.candidatoreal.com 35.1.1 CSMA/CA . . . . . . . . . . . . . . . . . . . . . . . . . . 338 35.1.2 Formato do Quadro 802.11 . . . . . . . . . . . . . . . . . 339 36 Elementos de Interconex˜o de Redes a de Computadores 340 36.1 Repetidores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 36.2 Hubs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 36.3 Switches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 36.4 Bridges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 36.5 Roteadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 36.6 Gateways . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 8
  • 10. http://www.candidatoreal.com 37 Redes Multim´ ıdia 344 37.1 Qualidade de Servi¸o . . . . . . . . . . . . . . . . . . . . . . . . . c 344 37.2 Servi¸os Integrados - IntServ . . . . . . . . . . . . . . . . . . . . c 346 37.3 Servi¸os Diferenciados - DiffServ . . . . . . . . . . . . . . . . . . c 347 38 Redes X.25 e Frame Relay 348 38.1 X.25 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 38.2 Frame Relay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 38.2.1 Estrutura do Frame . . . . . . . . . . . . . . . . . . . . . 349 38.2.2 Envio de um datagrama IP de Ethernet para Frame Relay e Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 38.3 Interliga¸˜o de Redes LAN . . . . . . . . . . . . . . . . . . . . . ca 351 38.3.1 Voz sobre Frame Relay (VoFR) . . . . . . . . . . . . . . . 351 38.3.2 Intera¸˜o entre Frame Relay e ATM . . . . . . . . . . . . ca 352 38.3.3 CIR (Taxa de Informa¸˜o Comprometida) . . . . . . . . . ca 352 39 Redes Virtuais Locais 354 39.1 VLANs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 39.1.1 Defini¸˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 ca 39.1.2 Protocolo 802.1q . . . . . . . . . . . . . . . . . . . . . . . 354 40 Redes de Circuito Virtuais 356 40.1 Redes ATM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356 40.2 MPLS - Multiprotocol Label Switching . . . . . . . . . . . . . . . 358 41 Arquitetura TCP/IP 360 41.1 Vis˜o geral . . . . . . . . . . . . . . . . . . . . a . . . . . . . . . . 360 41.2 Compara¸˜o entre a arquitetura OSI e TCP/IP ca . . . . . . . . . . 360 41.3 Camada F´ ısica (host/rede) . . . . . . . . . . . . . . . . . . . . . 361 41.4 Camada de Inter-Rede . . . . . . . . . . . . . . . . . . . . . . . . 361 41.5 Camada de Transporte . . . . . . . . . . . . . . . . . . . . . . . . 362 41.6 Camada de Aplica¸˜o . . . . . . . . . . . . . . ca . . . . . . . . . . 362 42 Camada de Aplica¸˜o ca 364 42.1 Proxy Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 VII Gerˆncia de Redes e 366 43 O protocolo SNMP 367http://www.candidatoreal.com 43.1 Management Information Base . . . . . . . . . . . . . . . . . . . 368 VIII Seguran¸a da Informa¸˜o c ca 370 44 Pol´ıticas de Seguran¸a de Informa¸˜o c ca 371 44.1 Pol´ıticas de Seguran¸a . . . . . . . . . c . . . . . . . . . . . . . . . 371 44.2 Projeto de Seguran¸a . . . . . . . . . . c . . . . . . . . . . . . . . . 372 44.3 Plano de Seguran¸a . . . . . . . . . . . c . . . . . . . . . . . . . . . 372 44.4 Normas de Seguran¸a . . . . . . . . . c . . . . . . . . . . . . . . . 373 44.4.1 ISO/IEC 17799 . . . . . . . . . . . . . . . . . . . . . . . . 373 9
  • 11. http://www.candidatoreal.com 44.4.2 Fam´ ISO 27000 . . . . . ılia . . . . . . . . . . . . . . . . . 375 44.4.3 Diferen¸as entre a ISO/IEC c 17799 e a ISO 27001 . . . . . 376 44.5 Procedimentos de Seguran¸a . . . . c . . . . . . . . . . . . . . . . . 376 44.6 Arquitetura de Seguran¸a . . . . . c . . . . . . . . . . . . . . . . . 377 44.7 Classifica¸˜o de Informa¸˜es . . . . ca co . . . . . . . . . . . . . . . . . 377 45 Seguran¸a F´ c ısica e L´gica o 379 45.1 Seguran¸a F´ c ısica . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 45.2 Seguran¸a L´gica . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 c o 45.2.1 Matrizes de acesso, listas de controle de acesso e capabilities379 45.2.2 Modelos de Controle de Acesso . . . . . . . . . . . . . . . 380 46 Backup de Dados 384 46.1 Meios de Armazenamento . . . . . . . . . . . . . . . . . . . . . . 384 47 V´ırus e Ataques 386 47.1 Estrat´gias de combate ` pragas eletrˆnicas . . . . . . . . . . . . 388 e a o 47.1.1 Antiv´ırus . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 48 Princ´ıpios de Criptografia 390 48.1 Tipos de Criptografia . . . . . . . . . . . . . . . . . . . . . . . . 391 48.2 Algoritmos de Criptografia Sim´tricos . e . . . . . . . . . . . . . . 392 48.3 Algoritmos de Criptografia Assim´tricos e . . . . . . . . . . . . . . 393 48.4 T´cnicas de Quebra de Criptografia . . . e . . . . . . . . . . . . . . 394 49 Autentica¸˜o ca 395 49.1 Autentica¸˜o de Mensagens . . . . . . . . . . . . . ca . . . . . . . . 395 49.2 Protocolos de Autentica¸˜o . . . . . . . . . . . . . ca . . . . . . . . 396 49.2.1 M´todos de Autentica¸˜o . . . . . . . . . . e ca . . . . . . . . 396 49.2.2 Autentica¸˜o baseada em uma chave secreta ca compartilhada396 49.3 Certificado Digital . . . . . . . . . . . . . . . . . . . . . . . . . . 397 50 Seguran¸a em diversas camadas c 399 50.1 Secure Sockets Layer . . . . . . . . . . . . . . . . . . . . . . . . . 399 50.2 IPSec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400 50.3 Virtual Private Network (VPN) . . . . . . . . . . . . . . . . . . . 401 50.4 Filtragem de Pacotes e Firewalls . . . . . . . . . . . . . . . . . . 403 50.4.1 Regras iptables - Exemplo 1 . . . . . . . . . . . . . . . . . 405 50.4.2 Regras iptables - Exemplo 2 . . . . . . . . . . . . . . . . . 405 50.4.3 Firewall Stateful . . . . . . . . . . . . . . . . . . . . . . . 406http://www.candidatoreal.com 50.4.4 Application Gateway . . . . . . . . . . . . . . . . . . . . . 407 50.4.5 Arquitetura de firewall e DMZ . . . . . . . . . . . . . . . 407 50.5 Sistemas de Detec¸˜o de Intrus˜o (IDS) ca a . . . . . . . . . . . . . . 409 50.6 Seguran¸a em Redes Wireless 802.11 . . c . . . . . . . . . . . . . . 409 50.6.1 WEP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409 50.7 802.11i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410 10
  • 12. http://www.candidatoreal.com IX Alta Disponibilidade 411 51 Solu¸˜es de Armazenamento RAID, SAN e NAS co 412 51.1 RAID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412 51.1.1 RAID 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412 51.1.2 RAID 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414 51.1.3 RAID 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415 51.1.4 RAID 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416 51.1.5 RAID 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417 51.1.6 RAID 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418 51.1.7 RAID 6 (Redundˆncia de P+Q) . . . . . . . . . . . . . . 419 a 51.1.8 Tipos H´ ıbridos . . . . . . . . . . . . . . . . . . . . . . . . 419 51.1.9 Comparativo de Desempenho entre as diversas configura¸˜es co RAID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420 51.2 SAN - Storage Area Network . . . . . . . . . . . . . . . . . . . . 420 51.2.1 Hardware para SAN . . . . . . . . . . . . . . . . . . . . . 421 51.2.2 Topologias de SAN . . . . . . . . . . . . . . . . . . . . . . 422 51.3 NAS - Network Attached Stotage . . . . . . . . . . . . . . . . . . 423 51.4 Comparativo entre SAN e NAS . . . . . . . . . . . . . . . . . . . 424 52 Clusters de servidores 427 52.0.1 Princ´ ıpios de um Cluster . . . . . . . . . . . . . . . . . . 427 52.0.2 Abstra¸˜es em um Cluster . . . . co . . . . . . . . . . . . . . 428 52.0.3 Arquitetura de um Cluster . . . . . . . . . . . . . . . . . 429 52.0.4 Cluster X Sistemas Distribu´ıdos . . . . . . . . . . . . . . 430 52.0.5 Cluster de Alta Disponibilidade . . . . . . . . . . . . . . . 431 52.0.6 Cluster de Alto Desempenho . . . . . . . . . . . . . . . . 433 53 Balanceamento de Carga 436 53.1 Balanceamento de armazenamento (storage) . . . . . . . . . . . . 436 53.2 Balanceamento de rede . . . . . . . . . . . . . . . . . . . . . . . . 436 53.2.1 NAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 53.2.2 IP Tunneling . . . . . . . . . . . . . . . . . . . . . . . . . 437 53.2.3 Direct Routing . . . . . . . . . . . . . . . . . . . . . . . . 438 53.3 Algoritmos de balanceamento . . . . . . . . . . . . . . . . . . . . 438 53.4 Balanceamento de CPU . . . . . . . . . . . . . . . . . . . . . . . 439 53.4.1 Sistema de processamento distribu´ ıdo . . . . . . . . . . . 439http://www.candidatoreal.com X Sistemas Operacionais 442 54 Ambiente Microsoft Windows 2000/2003 443 54.1 DHCP - Dynamic Host Configuration Protocol . . . . . . . . . . 443 54.1.1 Processo de Instala¸˜o/Configura¸˜o . . . . ca ca . . . . . . . . 443 54.1.2 Integra¸˜o do DHCP com o DNS . . . . . . ca . . . . . . . . 445 54.1.3 APIPA - Automatic Private IP Addressing . . . . . . . . 445 54.1.4 Comandos ipconfig Relacionados ao DHCP . . . . . . . . 446 54.1.5 Regra ”80/20” . . . . . . . . . . . . . . . . . . . . . . . . 446 54.2 DNS - Domain Name System . . . . . . . . . . . . . . . . . . . . 446 54.2.1 Processo de Instala¸˜o/Configura¸˜o . . . . ca ca . . . . . . . . 447 11
  • 13. http://www.candidatoreal.com 54.2.2 Seguran¸a de Acesso . . . . . . . . . . . . . . . . . . . . . c 449 54.2.3 Integra¸˜o do DNS com o Active Directory . . . . . . . . ca 449 54.2.4 Servidor DNS somente Cache . . . . . . . . . . . . . . . . 451 54.2.5 Arquivo Hosts . . . . . . . . . . . . . . . . . . . . . . . . 451 54.2.6 Distribui¸˜o de Carga . . . . . . . . . . . . . . . . . . . . ca 451 54.2.7 Comando ipconfig/dnscmd Relacionadas ao DNS . . . . . 451 54.3 Active Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . 452 54.3.1 Tipos de Servidores . . . . . . . . . . . . . . . . . . . . . 453 54.3.2 Defini¸˜es de Floresta, Dom´ co ınio, Site e Unidade Organi- zacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453 54.3.3 Recursos do Active Directory . . . . . . . . . . . . . . . . 454 54.3.4 Seguran¸a com o Active Directory . . . . . . . . . . . . . c 455 54.3.5 Ferramentas de Controle . . . . . . . . . . . . . . . . . . . 456 54.4 IIS - Internet Information Services . . . . . . . . . . . . . . . . . 456 54.4.1 IIS versus Apache HTTP Server . . . . . . . . . . . . . . 456 54.4.2 Principais Componentes do IIS . . . . . . . . . . . . . . . 459 54.4.3 Principais Recursos do IIS . . . . . . . . . . . . . . . . . . 460 54.4.4 Principais Diferen¸as entre IIS4, IIS5 e IIS6 . . . . . . . . c 461 54.5 Terminal Services . . . . . . . . . . . . . . . . . . . . . . . . . . . 461 54.5.1 Principais Benef´ ıcios . . . . . . . . . . . . . . . . . . . . . 462 54.5.2 Protocolos de Comunica¸˜o . . . . . . . . . . . . . . . . . ca 463 54.5.3 Licen¸as . . . . . . . . . . . . . . . . . . . . . . . . . . . . c 464 XI Banco de Dados 465 55 Conceitos B´sicos a 466 56 Abordagem Relacional 468 56.1 Conceitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468 56.2 Esquemas e Restri¸˜es de Integridade . . . . . . . . . . . . . . . 468 co 57 Modelagem Entidade Relacionamento 470 57.1 Conceitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470 57.2 Cardinalidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471 57.3 Representa¸˜o Gr´fica . . . . . . . . . . . . . . ca a . . . . . . . . . . 471 57.4 Recursos do Modelo Entidade Relacionamento . . . . . . . . . . 471 58 Normaliza¸˜oca 473 58.1 Aspectos desej´veis em um bom projeto . . . . . . . . . . . . . . 473 ahttp://www.candidatoreal.com 58.2 Forma normal de Boyce-Codd . . . . . . . . . . . . . . . . . . . . 473 58.3 Terceira forma normal . . . . . . . . . . . . . . . . . . . . . . . . 474 59 Transforma¸˜o do Modelo Conceitual ca 475 60 Linguagem SQL 476 60.1 Cria¸˜o de tabela . . . . ca . . . . . . . . . . . . . . . . . . . . . . . 476 60.2 Consultas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476 60.3 Fun¸˜es de agrega¸˜o . . co ca . . . . . . . . . . . . . . . . . . . . . . . 477 60.4 Atualiza¸˜es e exclus˜es co o . . . . . . . . . . . . . . . . . . . . . . . 478 60.5 Vis˜es . . . . . . . . . . o . . . . . . . . . . . . . . . . . . . . . . . 479 12
  • 14. http://www.candidatoreal.com 60.6 Chaves estrangeiras . . . . . . . . . . . . . . . . . . . . . . . . . . 479 61 Conceitos de Datawarehousing e Bussiness Inteligence 480 61.1 Banco de Dados Multidimensionais . . . . . . . . . . . . . . . . . 480 61.1.1 Modelagem Multidimensional . . . . . . . . . . . . . . . . 481 61.2 Datawarehousing . . . . . . . . . . . . . . . . . . . . . . . . . . . 483 61.3 OLTP, OLAP, MOLAP, ROLAP e HOLAP . . . . . . . . . . . . 485 61.4 Outros conceitos importantes . . . . . . . . . . . . . . . . . . . . 487 XII Administra¸˜o de Bancos de Dados Relacionais 489 ca 62 Gerˆncia de Transa¸˜es e co 490 63 Controle de Concorrˆncia e 492 64 Gerˆncia de Desempenho e 494 XIII Oracle e Microsoft SQL Server 497 65 Administra¸˜o de Bancos de Dados Oracle ca 498 65.1 Arquitetura de um Servidor Oracle . . . . . . . . . . . . . . . . . 498 65.1.1 Estruturas em mem´ria . . . . . . . . . . o . . . . . . . . . 498 65.1.2 Processos server . . . . . . . . . . . . . . . . . . . . . . . 499 65.1.3 Processos user . . . . . . . . . . . . . . . . . . . . . . . . 499 65.1.4 Processos em Background . . . . . . . . . . . . . . . . . . 499 65.1.5 Arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . 500 65.2 Arquitetura Oracle de Armazenamento de Dados . . . . . . . . . 501 65.3 Tratamento de Transa¸˜es no Oracle . . . . . . . co . . . . . . . . . 501 65.3.1 Gerenciamento do Redo Log . . . . . . . . . . . . . . . . . 501 65.3.2 Checkpoints . . . . . . . . . . . . . . . . . . . . . . . . . . 502 65.3.3 Segmentos de rollback . . . . . . . . . . . . . . . . . . . . 502 65.3.4 Consistˆncia de leitura . . . . . . . . . . . e . . . . . . . . . 503 65.4 Configura¸˜o do Servidor . . . . . . . . . . . . . ca . . . . . . . . . 503 65.5 Tipos de Usu´rios Oracle . . . . . . . . . . . . . a . . . . . . . . . 504 65.5.1 Administradores de banco de dados . . . . . . . . . . . . 504 65.5.2 Outros p´peis . . . . . . . . . . . . . . . . a . . . . . . . . . 505 66 Administra¸˜o de Bancos de Dados SQL Server ca 506http://www.candidatoreal.com 66.1 Arquitetura de um Servidor SQL Server . . . . . . . . . . . . . . 506 66.1.1 Cat´logos de sistema . . . . . . . . . . . . . . . a . . . . . . 506 66.1.2 Processos em background . . . . . . . . . . . . . . . . . . 507 66.2 Arquitetura SQL Server de Armazenamento de Dados . . . . . . 507 66.3 Tratamento de Transa¸˜es no SQL Server . . . . . . . co . . . . . . 507 XIV ITIL 509 67 Suporte a Servi¸os c 510 67.1 Service Desk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510 13
  • 15. http://www.candidatoreal.com 67.1.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . 510 67.1.2 Responsabilidades . . . . . . . . . . . . . . . . . . . . . . 510 67.1.3 V´rios Tipos de Central . . a . . . . . . . . . . . . . . . . . 511 67.2 Gerenciamento de Incidentes . . . . . . . . . . . . . . . . . . . . 511 67.2.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . 511 67.2.2 Atividades do Processo . . . . . . . . . . . . . . . . . . . 511 67.2.3 Pap´is e Responsabilidades e . . . . . . . . . . . . . . . . . 512 67.3 Gerenciamento de Problemas . . . . . . . . . . . . . . . . . . . . 512 67.3.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . 512 67.3.2 Defini¸˜es Importantes . . . co . . . . . . . . . . . . . . . . . 513 67.3.3 Atividades do Processo . . . . . . . . . . . . . . . . . . . 513 67.3.4 Pap´is e Responsabilidades e . . . . . . . . . . . . . . . . . 513 67.4 Gerenciamento de Configura¸˜o . . ca . . . . . . . . . . . . . . . . . 514 67.4.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . 514 67.4.2 Atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . 514 67.4.3 Pap´is e Responsabilidades e . . . . . . . . . . . . . . . . . 515 67.5 Gerenciamento de Mudan¸as . . . c . . . . . . . . . . . . . . . . . 515 67.5.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . 515 67.5.2 Responsabilidades . . . . . . . . . . . . . . . . . . . . . . 515 67.5.3 Defini¸˜es Importantes . . . co . . . . . . . . . . . . . . . . . 515 67.6 Gerenciamento de Libera¸˜o . . . . ca . . . . . . . . . . . . . . . . . 516 67.6.1 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516 67.6.2 Atividades do Processo . . . . . . . . . . . . . . . . . . . 516 67.6.3 Defini¸˜es Importantes . . . co . . . . . . . . . . . . . . . . . 517 67.6.4 Pap´is e Responsabilidades e . . . . . . . . . . . . . . . . . 517 68 Entrega de Servi¸osc 518 68.1 Gerenciamento do N´ de Servi¸o ıvel c . . . . . . . . . . . . . . . . . 518 68.1.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . 518 68.2 Gerenciamento Financeiro . . . . . . . . . . . . . . . . . . . . . . 519 68.2.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . 519 68.2.2 Responsabilidades . . . . . . . . . . . . . . . . . . . . . . 519 68.2.3 Atividades do Processo . . . . . . . . . . . . . . . . . . . 519 68.2.4 Elementos de Custo . . . . . . . . . . . . . . . . . . . . . 520 68.3 Gerenciamento da Capacidade . . . . . . . . . . . . . . . . . . . 521 68.3.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 68.3.2 Atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 68.4 Gerenciamento de Disponibilidade . . . . . . . . . . . . . . . . . 522 68.4.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . 522http://www.candidatoreal.com 68.4.2 Ciclo de vida do incidente . . . . . . . . . . . . . . . . . . 522 68.5 Gerenciamento de Continuidade . . . . . . . . . . . . . . . . . . . 523 68.5.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . 523 68.5.2 Est´gios . . . . . . . . . . . a . . . . . . . . . . . . . . . . . 523 68.5.3 Tipos de Continuidade . . . . . . . . . . . . . . . . . . . . 524 XV Gerˆncia de Projetos segundo PMBOK e 525 69 Gerenciamento de Escopo 526 69.1 WBS e Defini¸˜o do Escopo . . . . . . . . . . . . . . . . . . . . . 526 ca 14
  • 16. http://www.candidatoreal.com 70 Gerenciamento de Recursos Humanos 528 70.1 Estruturas Organizacionais . . . . . . . . . . . . . . . . . . . . . 528 70.1.1 Organiza¸˜o Funcional . . . . . ca . . . . . . . . . . . . . . . 528 70.1.2 Organiza¸˜o por Projeto . . . . ca . . . . . . . . . . . . . . . 529 70.1.3 Organiza¸˜o Matricial . . . . . ca . . . . . . . . . . . . . . . 530 70.2 Planejamento Organizacional . . . . . . . . . . . . . . . . . . . . 531 70.3 Desenvolvimento da Equipe . . . . . . . . . . . . . . . . . . . . . 531 71 Gerenciamento do Tempo 534 71.1 T´cnicas de Desenvolvimento do Cronograma e . . . . . . . . . . . 534 71.1.1 An´lise Matem´tica . . . . . . . . . . a a . . . . . . . . . . . 535 71.1.2 Compress˜o do Cronograma . . . . . . a . . . . . . . . . . . 535 71.1.3 Simula¸˜o . . . . . . . . . . . . . . . . ca . . . . . . . . . . . 536 71.1.4 Heur´ıstica do nivelamento de recursos . . . . . . . . . . . 536 71.1.5 Estrutura de Codifica¸˜o . . . . . . . ca . . . . . . . . . . . 536 72 Gerenciamento de Custo 537 72.1 T´cnicas de Estimativas de Custos e . . . . . . . . . . . . . . . . . 537 72.1.1 Estimativas An´logas . . . a . . . . . . . . . . . . . . . . . 537 72.1.2 Modelagem Param´trica . . e . . . . . . . . . . . . . . . . . 538 72.1.3 Estimativa bottom-up . . . . . . . . . . . . . . . . . . . . 538 73 Gerenciamento de Riscos 539 73.1 An´lise Qualitativa . . . . . . . . . . . . . . . . . . . . . . . . . . 539 a 73.2 An´lise Quantitativa de Riscos . . . . . . . . . . . . . . . . . . . 540 a 74 Gerenciamento de Qualidade 542 74.1 T´cnicas de Planejamento da Qualidade e . . . . . . . . . . . . . . 542 74.1.1 An´lise Custo/Benef´ a ıcio . . . . . . . . . . . . . . . . . . . 542 74.1.2 Benchmarking . . . . . . . . . . . . . . . . . . . . . . . . 543 74.1.3 Fluxograma . . . . . . . . . . . . . . . . . . . . . . . . . . 543 74.1.4 Elabora¸˜o de Experimentos . . ca . . . . . . . . . . . . . . 543 74.1.5 Custo da Qualidade . . . . . . . . . . . . . . . . . . . . . 544 74.2 T´cnicas de Controle da Qualidade . . . e . . . . . . . . . . . . . . 544 74.2.1 Gr´ficos de Controle . . . . . . . a . . . . . . . . . . . . . . 545 74.2.2 Diagramas de Pareto . . . . . . . . . . . . . . . . . . . . . 545 74.2.3 Diagramas de Dispers˜o . . . . . a . . . . . . . . . . . . . . 546 75 Gerenciamento da Comunica¸˜o ca 547 75.1 Um mais sobre Planejamento da Comunica¸˜o . . . . . . . . . . 547 cahttp://www.candidatoreal.com 76 Gerenciamento das Aquisi¸˜es co 548 76.1 Um pouco mais sobre Planejamento de Aquisi¸˜es . . . . . . . . 548 co 77 Gerenciamento da Integra¸˜o ca 550 77.1 Ferramentas de Apoio ` Integra¸˜o . . . . . . . . . . . . . . . . . 550 a ca 78 Sobre os Ciclos do Projeto e Processos de Gerenciamento 551 15
  • 17. http://www.candidatoreal.com Parte I Fundamentos de Computa¸˜o cahttp://www.candidatoreal.com 16
  • 18. http://www.candidatoreal.com Cap´ ıtulo 1 Arquitetura e Organiza¸˜o ca de Computadores 1.1 Conceitos B´sicos a Dois conceitos fundamentais no estudo dos sistemas de computa¸˜o s˜o o de ca a Arquitetura e Organiza¸˜o de computadores. O termo arquitetura refere-se aos ca atributos do ponto de vista do programador, e portanto, tˆm impacto direto e sobre sobre a execu¸˜o l´gica de um programa. O termo organiza¸˜o, refere-se ca o ca a `s unidades operacionais e suas interconex˜es. Desta forma, uma mesma ar- o quitetura pode ser implementadas por meio de diferentes organiza¸˜es. co As fun¸˜es b´sicas de um computador s˜o o processamento de dados, ar- co a a mazenamento de dados, transferˆncia de dados e controle. Para desempenhar e essas fun¸˜es o computador precisa executar um conjunto de instru¸˜es (pro- co co grama). Os computadores que conhecemos s˜o baseados no conceito de pro- a grama armazenado, introduzido por Von-Neuman. As instru¸˜es do programa co e os dados s˜o armazenados em uma mem´ria, de forma que a altera¸˜o de um a o ca programa consiste na altera¸ao de um endere¸o de mem´ria. c˜ c o O ciclo de execu¸˜o de cada uma das instru¸˜es de um programa ´ divi- ca co e dido nos seguintes estados: (i)Calculo do Endere¸o de Instru¸˜o; (ii)Busca da c ca Instru¸˜o (Instruction Fetch); (iii) Decodifica¸˜o da Instru¸˜o; (iv)C´lculo do ca ca ca a Endere¸o do Operando; (v)Busca do Operando (Operand Fetch); (vi)Execu¸˜o c cahttp://www.candidatoreal.com da Opera¸˜o; (vii)Armazenamento do Resultado. No entanto, os computadores ca modernos utilizam o conceito de interrup¸˜o para diminuir o tempo de ociosi- ca dade dos processadores, o ciclo de execu¸˜o das instru¸˜es ganham mais alguns ca co estados. As classes de interrup¸˜es mais comuns s˜o interrup¸˜es de software, co a co de rel´gio, de E/S e de falha de hardware. o A estrutura b´sica de um computador ´ composta pelos seguintes compo- a e nentes: • (i)Unidade Central de Processamento(CPU); • (ii)Mem´ria Principal; o 17
  • 19. http://www.candidatoreal.com • (iii)Dispositivos de E/S; • (iv)Sistemas de Interconex˜o. a Esses componentes tamb´m possuem suas subdivis˜es. A CPU por exemplo e o se subdivide em: Unidade de Controle, Unidade L´gica e Aritm´tica (ALU), o e Registradores e por fim as Interconex˜es da CPU. Cada um desses componentes o er´ melhor descrito posteriormente. Para interconectar dois ou mais dispositivos a em um sistema s˜o utilizados os chamados barramentos. Os barramentos s˜o a a compostos por linhas que podem ser de Dados, Endere¸o ou Controle. Os c barramentos de controle podem ser utilizados por exemplo para controlar direito de leitura ou escrita em mem´ria ou E/S, interrup¸˜es, confirma¸˜es, rel´gio o co co o e reset. O projeto dos barramentos que comp˜e um sistema s˜o de grande o a importˆncia no desempenho do sistema. Quest˜es importantes no projeto de a o barramentos s˜o: a • (i)Tipo - dedicado ou multiplexado; • (ii)M´todo de Arbitra¸˜o - Centralizado ou Distribu´ e ca ıdo; • (iii)Temporiza¸˜o - S´ ca ıncrona ou Ass´ ıncrona; • (iv)Largura - n´mero de linhas; u • (v) Tipo de Transferˆncia - leitura, escrita, leitura/modifica¸˜o/escrita, e ca escrita/leitura, em bloco. Para aumentar o desempenho do sistema, os barramentos s˜o organizados de a forma hier´rquica, de forma isolar o tr´fego de dados entre CPU e mem´ria do a a o tr´fego proveniente de opera¸˜es de E/S. Os chamados barramentos de expans˜o a co a proporcionam maior flexibilidade ao sistema (ex: SCSI), enquanto os barramen- tos de alta velocidade s˜o utilizados para dispositivos de alta capacidade (ex: a FireWire). 1.2 Estrutura e Funcionamento da CPU Os principais elementos da CPU s˜o a Unidade de Controle , a Unidade L´gica a o e Aritm´tica (ULA) e os Registradores. Esses elementos se conectam interna- e mente atrav´s do barramento interno da CPU. ehttp://www.candidatoreal.com A CPU se comunica com o mundo externo atrav´s dos barramentos do sis- e tema. Ao longo da execu¸˜o de um programa, os barramentos constituem os ca chamados caminho dos dados. No topo da organiza¸˜o hier´rquica de mem´ria ca a o em um sistema se encontram os registradores. Esses se dividem em dois tipos: Registradores vis´ ıveis ao Usu´rio e Registradores de Controle e de Estado. a Os registradores vis´ ıveis ao usu´rio s˜o aqueles que podem ser referenciados a a pela linguagem de montagem. Eles podem ser registradores de dados, endere¸o c ou ent˜o de prop´sito geral. Os registradores de Controle e de Estado s˜o uti- a o a lizados para controlar a opera¸˜o da CPU. Na maioria das vezes n˜o s˜o vis´ ca a a ıveis aos usu´rios. Exemplos de registradores de Controle e de Estado s˜o o Program a a 18
  • 20. http://www.candidatoreal.com 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 seq¨ˆncia de eventos ao longo de um ciclo de instru¸˜o depende do projeto ue ca da CPU, no entanto, em termos gerais, pode-se indicar o que acontece em nos subciclos de busca, indireto e interrup¸˜o. O ciclo de execu¸˜o depende do ca ca c´digo da opera¸˜o que ser´ executada. A figura 1.1 mostra o diagrama de o ca a transi¸˜o de estados do ciclo de instru¸˜o. ca ca Figura 1.1: Transi¸˜o de Estados do Ciclo de Instru¸˜o ca ca Durante o ciclo de busca, o contador de programa cont´m o endere¸o da e c pr´xima instru¸˜o a ser buscada na mem´ria. Esse endere¸o ´ movido para o o ca o c e registrador MAR e a unidade de controle requisita uma leitura na mem´ria. O o resultado da leitura e colocado no registrador MBR, que em seguida ´ copiado e para o registrador IR. Enquanto isso o PC ´ incrementado de 1 para preparar e a busca da pr´xima instru¸˜o. O fluxo de dados do ciclo de busca ´ mostrado o ca e na figura 1.2. Ao fim do ciclo de busca, o unidade de controle examina se a instru¸˜o ca especifica algum operando com endere¸amento indireto. Os n bits mais a direita c de MBR s˜o colocados em MAR, e ent˜o a unidade de controle requisita uma a a leitura a mem´ria para carregar o valor do operando para MBR. O fluxo de o dados do ciclo de indireto ´ mostrado na figura 1.3. ehttp://www.candidatoreal.com No ciclo de interrup¸˜o, o conte´do do registrador PC dever ser salvo, para ca u que mais tarde a CPU possa retornar sua atividade normal depois de processar a interrup¸˜o. O conte´do do PC ´ transferido para MBR. A endere¸o de ca u e c mem´ria reservado para guardar o valor de PC (ex: topo da pilha) ´ carregado o e para MAR, e ent˜o a unidade de controle solicita uma escrita na mem´ria. Por a o fim o PC ´ carregado com o endere¸o da rotina de interrup¸˜o, para que o no e c ca pr´ximo ciclo de instru¸˜o seja feita a busca da instru¸˜o apropriada. A figura o ca ca 1.4 mostra o fluxo de dados do ciclo de interrup¸˜o. ca 19
  • 21. http://www.candidatoreal.com Figura 1.2: Fluxo de Dados do Ciclo de Busca Figura 1.3: Fluxo de Dados do Ciclo de Indiretohttp://www.candidatoreal.com Figura 1.4: Fluxo de Dados do Ciclo de Interrup¸˜o ca 1.2.1 Pipelines Como pudemos ver, um ciclo de instru¸˜o pode subdividido em etapas menores. ca Uma divis˜o comum ´ a baseada nos ciclos de busca, indireto, execu¸˜o e inter- a e ca rup¸˜o. A id´ia da t´cnica de pipeline ´ trabalhar as diversas etapas do ciclo ca e e e de instru¸˜o de forma paralela, e n˜o de forma serial, de forma aumentar o ca a 20
  • 22. http://www.candidatoreal.com desempenho da CPU. A t´cnica de pipeline pode ser descrita genericamente como uma estrat´gia e e de aceitar novas entradas em uma extremidade sem que as entradas pr´vias e tenha aparecido como sa´ ıdas na outra extremidade. Imaginemos um esquema em que o ciclo de instru¸˜o ´ subdividido em 2 etapas que s˜o a busca da in- ca e a stru¸˜o e a execu¸˜o. Enquanto uma instru¸˜o est´ sendo executada, a pr´xima ca ca ca a o instru¸˜o pode estar sendo buscada. Este esquema configura um pipeline de 2 ca est´gios, e a t´cnica utilizada ´ a de busca antecipada de instru¸˜o (Instruction a e e ca Prefetch ou Fetch Overlap). Embora possa ser obtido um ganho de desempenho, o pipeline de 2 est´gios ainda ´ muito fraco para lidar com instru¸˜es de desvio, a e co nas quais a busca da pr´xima instru¸˜o depende do resultado da execu¸˜o da o ca ca instru¸˜o corrente. ca Portanto, uma subdivis˜o do ciclo de instru¸˜o em um n´mero maior de a ca u est´gios pode proporcionar maior desempenho. Imaginemos o ciclo de instru¸˜o a ca como sendo composto dos seguintes est´gios: a • (1)BI - Busca da Instru¸˜o; ca • (2)DI - Decodifica¸˜o da Instru¸˜o; ca ca • (3)CO - Calculo dos Endere¸os dos Operandos; c • (4)BO - Busca dos Operandos; • (5)EI - Execu¸˜o da instru¸˜o; ca ca • (6)EO - Escrita do Operando. Essa subdivis˜o busca fazer com que os tempos gastos em cada um dos 6 a est´gios seja parecido. Se os 6 est´gios pudessem ser executados em paralelo, o a a desempenho seria aproximadamente 6 vezes maior. No entanto, podem existir conflitos de acesso ` mem´ria por parte dos a o est´gios e nem todas as instru¸˜es possuem os seis est´gios. Somam-se ` esses a co a a dois problemas, a existˆncia de instru¸˜es de desvios, principais inimigas da e co t´cnica de pipeline. Para lidar com os problemas introduzidos pelas instru¸˜es e co de desvio s˜o utilizadas t´cnicas como: a e • M´ltiplos Fluxos (duplica¸˜o de est´gios iniciais); u ca ahttp://www.candidatoreal.com • Busca Antecipada de Instru¸˜o-Alvo de Desvio; ca • Mem´ria de La¸o de Repeti¸˜o (loop buffer ); o c ca • Previs˜o de Desvio baseadas no opcode; a • Previs˜o de Desvio baseadas em hist´rico (BTB - Branch Target Buffer, a o tamb´m conhecida como BHT - Branch History Table). e As figuras 1.5 e 1.6 mostram os diagramas de tempo para o pipeline de instru¸˜es com e sem instru¸˜es de desvio. co co 21
  • 23. http://www.candidatoreal.com Figura 1.5: Diagrama do Tempo para Pipeline de Instru¸˜es co Figura 1.6: Efeito do desvio condicional no Pipeline de Instru¸˜es co 1.3 Conjunto de Instru¸˜es co A opera¸˜o da CPU ´ determinada pelo conjunto de instru¸˜es que ela executa. ca e co S˜o as chamadas instru¸˜es de m´quina. A cole¸˜o de instru¸˜es que uma CPU a co a ca co pode executar ´ chamada Conjunto de Instru¸˜es. O conjunto de instru¸˜es e co co deve ser suficiente para traduzir programas escritos em uma linguagem de alto n´ ıvel para a linguagem de m´quina. Os principais elementos e uma instru¸˜o a cahttp://www.candidatoreal.com s˜o: a • (i)C´digo da opera¸˜o (opcode): especifica a opera¸˜o a ser efetuada; o ca ca • (ii)Referˆncia ` Operando Fonte: indica as entradas para a opera¸˜o; e a ca • (iii)Referˆncia ao operando Destino: A opera¸˜o pode produzir um resul- e ca tado; • (iv)Endere¸o da pr´xima instru¸˜o: Pode ser indicado implicitamente (ex: c o ca registrador PC). 22
  • 24. http://www.candidatoreal.com Os operandos fonte e destino podem estar localizados em mem´ria (principal o ou virtual), em algum registrador, ou em algum dispositivo de E/S. Cada instru¸˜o de um computador ´ representada internamente como um ca e conjunto de bits. A instru¸˜o ´ dividida em campos correspondentes aos ele- ca e mentos da instru¸˜o. O papel da CPU e ler a instru¸˜o, extrair informa¸˜o de ca ca ca cada um dos campos e efetuar a opera¸˜o. Devido `s dificuldades de se lidar ca a com a representa¸˜o bin´ria, ´ utilizada uma esp´cie de nota¸˜o simb´lica para ca a e e ca o representar as instru¸˜es de m´quina. Os c´digos das opera¸˜es s˜o representa- co a o co a dos por mnemˆnicos. (ex: ADD, SUB, MPY, DIV, LOAD, STOR). O mesmo o ocorre para os operandos. Um conjunto de instru¸˜es pode apresentar mais de co um formato de instru¸˜o. ca As instru¸˜es podem ser classificadas em: co • (i)Processamento de Dados: instru¸˜es l´gicas e aritm´ticas; co o e • (ii)Armazenamento de dados: instru¸˜es de mem´ria; co o • (iii)Movimenta¸˜o: instru¸˜es de E/S; ca co • (iv)Controle: instru¸˜es de teste e desvio. co No projeto do conjunto de instru¸˜es as quest˜es mais relevantes s˜o o co o a repert´rio de opera¸˜es, os tipos de dados, o formato e tamanho das instru¸˜es, o co co os registradores acess´ ıveis, e os modos de endere¸amento. As classes de dados c sobre as quais as instru¸˜es de m´quina operam s˜o endere¸os, n´meros (ex: co a a c u ponto fixo, ponto flutuante, decimal), caracteres (ex: ASCII e EBCDIC) e da- dos l´gicos. o Os tipos de opera¸˜es mais comuns s˜o: co a • (i)Transferˆncia de Dados: mov,push/pop,xlat,in/out; e • (ii)Aritm´ticas: add,sub,mul,idiv; e • (iii)L´gicas: and,or,shl/shr; o • (iv)Convers˜o de Tipos: jmp,call,loop,int/into; a • (vi)Controle do Sistema: hlt,wait;http://www.candidatoreal.com • (vii)Transferˆncia de Controle: blt,bgt,beq,call,jmp. e Nas opera¸˜es de salto e desvio, ´ importante conhecer cada um dos c´digos co e o de condi¸˜o envolvidos. (ex: Vai-Um, Zero, Paridade, Sinal, Overflow) Na im- ca plementa¸˜o das chamadas de procedimento ´ importante ressaltar a utiliza¸˜o ca e ca de pilhas para permitir chamadas reentrantes (uma chamada dentro da outra). 23
  • 25. http://www.candidatoreal.com 1.4 Unidade de Controle A unidade de controle coordena os diversos elementos do processador para que este possa realizar todas as suas fun¸˜es. A execu¸˜o de um programa consiste co ca de uma seq¨ˆncia de ciclos de instru¸˜o. Um ciclo de instru¸˜o pode ser sub- ue ca ca dividido em quatro subciclos que s˜o busca, indireto, execu¸˜o e interrup¸˜o. a ca ca Somente os ciclos de busca e execu¸˜o est˜o presentes em todos os ciclos de ca a instru¸˜o. Cada subciclo, por sua vez, ´ composto por microopera¸˜es. ca e co Os quatro registradores b´sicos da unidade de controle s˜o: a a • PC (Program Counter ): Mant´m o endere¸o da pr´xima instru¸˜o a ser e c o ca buscada na mem´ria; o • MAR (Memory Address Register ): Especifica endere¸o de memoria para c uma opera¸˜o de leitura ou escrita; ca • MBR (Memory Buffer Register ): Conectado ao barramento do sistema. Cont´m um valor a ser armazenado na mem´ria ou o ultimo valor dela e o ´ lido; • IR (Instruction Register ): Mant´m a ultima instru¸˜o buscada na mem´ria. e ´ ca o O ciclo de busca ocorre no in´ıcio de cada ciclo de instru¸˜o, fazendo com ca que a instru¸˜o seja obtida na mem´ria no endere¸o indicado pelo registrador ca o c PC, e armazenada no registrador IR. Uma vez completada essa etapa, pode ser necess´rio que se busquem operandos para a instru¸˜o. Isso ´ realizado no ciclo a ca e de indireto. Ap´s o termino do ciclo de execu¸˜o, ´ feita uma checagem para o ca e determinar se ocorreu alguma interrup¸˜o, e neste caso o conte´do de PC ´ ca u e salvo em mem´ria e PC ´ carregado com um endere¸o da rotina de interrup¸˜o o e c ca apropriada. Os ciclos de busca, indireto e de interrup¸˜o envolvem um n´mero ca u pequeno e fixo de microopera¸˜es. Isso n˜o ocorre nos ciclos de execu¸˜o. Em co a ca uma m´quina com N c´digos de instru¸˜o podem existir N diferentes seq¨ˆncias a o ca ue de microopera¸˜es para o ciclo de execu¸˜o. co ca Todas as microopera¸˜es caem em uma das seguintes categorias: co • (i)Transferˆncia de dados entre registradores; e • (ii)Transferˆncia de dados entre registrador e interface externa (barra- ehttp://www.candidatoreal.com mento); • (iii)Transferˆncia de dados de interface externa para registrador; e • (iv)Execu¸˜o de opera¸˜es l´gicas e aritm´ticas, usando registradores como ca co o e entrada e sa´ ıda. Portanto, a unidade de controle desempenha duas tarefas b´sicas que s˜o o a a seq¨enciamento e a execu¸˜o das microopera¸˜es. A base para o funcionamento u ca co da unidade de controle s˜o os sinais de controle, que constituem as entradas e a sa´ ıdas. 24
  • 26. http://www.candidatoreal.com As unidades de controle podem ser implementadas tanto em hardware quanto em software (Microprograma¸˜o). A implementa¸˜o baseada em micropro- ca ca grama¸˜o ´ mais simples e tamb´m mais barata do que as implementa¸˜es em ca e e co hardware. As implementa¸˜es em hardware envolvem a cria¸˜o de uma l´gica co ca o complexa para sequenciamento das microopera¸˜es, o que a torna mais cara. co No entanto, ´ mais eficiente dos que as implementa¸˜es basadas em micropro- e co grama¸˜o. As arquiteturas CISC geralmente utilizam unidades de controle mi- ca croprogramadas, devido ao grande n´mero de instru¸˜es e sua complexidade. J´ u co a as arquiteturas RISC, geralmente utilizam implementa¸˜es baseadas em hard- co ware uma vez que o n´mero de instru¸˜es ´ reduzido e de baixa complexidade. u co e As t´cnicas de microprograma¸˜o tamb´m podem ser aplicadas em em- e ca e ula¸˜es, permitindo que m´quinas rodem programas escritos originalmente para co a outras m´quinas. Microprogramas podem conferir maior desempenho ao sis- a tema operacional se forem utilizados na implementa¸˜o de certas primitivas. ca Al´m disso, as t´cnicas de microprograma¸˜o podem ser utilizadas na imple- e e ca menta¸˜o de dispositivos de prop´sito especial, por exemplo uma placa de rede ca o (firmware). 1.5 Modos de Endere¸amento c Os modos de endere¸amento est˜o relacionados com a forma utilizada para c a especificar o valor ou endere¸o de um operando de uma instru¸˜o. Quest˜es im- c ca o portantes na escolha do modo de endere¸amento s˜o a quantidade de posi¸˜es de c a co mem´ria endere¸´veis, flexibilidade de endere¸amento, n´mero de referˆncias a o ca c u e mem´ria feitas pela instru¸˜o e complexidade do c´lculo do endere¸o. Em geral, o ca a c as arquitetura n˜o oferecem s´ um modo de endere¸amento, mas sim um con- a o c junto de modos. Por este motivo, ´ necess´rio que exista uma forma de se e a identificar qual o modo de endere¸amento que se est´ utilizando. Isso ´ feito c a e atrav´s do campo de modo de endere¸amento, que consiste em um subconjunto e c dos bits de uma instru¸˜o. ca • Imediato: o valor do operando ´ especificado diretamente na instru¸˜o. e ca Sua principal vantagem ´ n˜o requer acesso a mem´ria para obter o e a o operando. A desvantagem ´ que esse modo imp˜e uma limita¸˜o no e o ca tamanho do operando; • Direto: o campo de endere¸o contem o endere¸o efetivo do operando na c chttp://www.candidatoreal.com mem´ria. Requer portanto apenas um acesso para determinar o valor do o operando. Sua limita¸˜o ´ fornecer um espa¸o de endere¸amento limitado; ca e c c • Indireto: o campo de endere¸o aponta para uma posi¸˜o de mem´ria que c ca o contem o endere¸o de mem´ria do operando. Sua principal desvantagem c o ´ a necessidade de dois acessos ` mem´ria. A vantagem em rela¸˜o ao e a o ca modo de endere¸amento direto ´ o aumento do espa¸o de endere¸amento, c e c c que passa a ser igual 2n onde n ´ o tamanho da palavra; e • Registrador : ´ semelhante ao modo direto, no entanto o modo de endere¸o e c se refere a um registrador e n˜o ` uma posi¸˜o de mem´ria. Geralmente ´ a a ca o e 25
  • 27. http://www.candidatoreal.com composto por 3 ou 4 bits, o que permite referenciar de 8 a 16 registradores de prop´sito geral. Suas vantagens s˜o o tamanho pequeno do campo de o a endere¸o e n˜o necessidade de se acessar a mem´ria. Sua desvantagem ´ c a o e o espa¸o de endere¸amento limitado pelo n´mero de registradores; c c u • Indireto via Registrador : semelhante ao modo de endere¸amento indireto. c O campo de endere¸o aponta para o registrado que contem a posi¸˜o de c ca mem´ria do operando. Sua vantagem ´ a necessidade de um unico acesso o e ´ a mem´ria, um a menos que no modo indireto; o • Deslocamento: requer que uma instru¸˜o tenha dois campos de endere¸o, ca c com pelo menos um expl´ ıcito. O valor de um dos campos ´ usado dire- e tamente (valor = A). O outro campo ´ baseado no c´digo da opera¸˜o, e e o ca especifica um registrador cujo conte´do ´ adicionado a A, para produzir o u e endere¸o efetivo. Os trˆs modos de endere¸amento por deslocamento s˜o c e c a relativo, via registrador-base e indexado; • Pilha: A pilha ´ um bloco reservado de posi¸˜es em mem´ria. Elementos e co o podem ser colocados e removidos do topo da pilha. o apontador do topo da pilha (stack-pointer ) ´ mantido em um registrador. Portanto, de fato, e referˆncias a pilha s˜o feitas por endere¸amento indireto via registrador. e a c 1.6 Organiza¸˜o de Mem´ria ca o Um sistema de computador t´ ıpico ´ equipado com uma hierarquia de subsis- e temas de mem´ria, algumas internas (diretamente acess´ o ıveis pelo processador, como registradores, cache e mem´ria principal) e outras externas (acess´ o ıveis pelo processador por meio de um m´dulo de E/S, como disco e cdrom). As o caracter´ ısticas fundamentais de um sistema de mem´ria s˜o: o a 1. Localiza¸˜o - processador, interna (principal), externa (secund´ria); ca a 2. Capacidade - tamanho da palavra e n´mero da palavra; u 3. Unidade de Transferˆncia - palavra, bloco; e 4. M´todo de Acesso - seq¨encial, direto, aleat´rio, associativo; e u o 5. Desempenho - tempo de acesso, tempo de ciclo e taxa de transferˆncia; e 6. Tecnologia - semicondutores, magn´tica, ´ptica, magneto-´ptico; e o ohttp://www.candidatoreal.com 7. Caracter´ ısticas F´ ısicas - vol´til/n˜o vol´til, apag´vel/n˜o apag´vel. a a a a a a Quanto ao m´todo de acesso das mem´rias internas, vale a pena destacar os e o acessos aleat´rio e associativo. No acesso aleat´rio, cada unidade endere¸´vel o o ca possui um mecanismo de endere¸amento unico e fisicamente conectado a ela. E c ´ ´ o m´todo utilizado na mem´ria principal. O esquema associativo consiste em e o um tipo de mem´ria de acesso aleat´rio que possibilita comparar simultanea- o o mente um certo n´mero de bits de uma palavra com todas palavras da mem´ria u o (totalmente associativo) ou com um conjunto de palavras de mem´ria (associa- o tivo por conjunto). O m´todo associativo ´ empregado pelas mem´rias cache. e e o 26
  • 28. http://www.candidatoreal.com As restri¸˜es de um projeto de mem´ria podem ser resumidos por 3 quest˜es: co o o Capacidade, Velocidade e Custo. Neste cen´rio, valem as seguintes rela¸˜es: a co 1. Menor tempo de acesso, maior custo por bit; 2. Maior capacidade, menor custo por bit; 3. Maior capacidade, menor tempo de acesso. A organiza¸˜o hier´rquica dos sistemas de mem´ria visa lidar com o dilema ca a o imposto pelas rela¸˜es apresentadas. A hierarquia ´ elaborada de forma que as co e a medida que nela descemos as seguintes rela¸˜es s˜o tamb´m v´lidas: co a e a 1 O custo por bit diminui; 2 A capacidade aumenta; 3 O tempo de acesso aumenta; 4 A freq¨ˆncia de acesso pelo processador diminui. ue Desse modo, as mem´rias menores, mais caras e mais r´pidas s˜o combi- o a a nadas com mem´ria de maior capacidade, mais lentas e baratas. o A chave do sucesso dessa organiza¸˜o baseia-se principalmente na rela¸˜o ca ca 4, que resume o princ´ıpio da Localidade das Referˆncias. Este princ´ e ıpio diz que ao longo da execu¸˜o de um programa, as referˆncias feitas ` mem´ria pelo ca e a o processador, tanto no caso de instru¸˜es como dados, tendem a formar grupos co no qual est˜o pr´ximas umas das outras. Desse modo ´ poss´ a o e ıvel organizar os dados ao longo de uma hierarquia de forma que a porcentagem de acessos ` um a certo n´ seja sucessivamente bem inferior do que a porcentagem de acessos ` ıvel a um n´ imediatamente superior. ıvel Registradores, mem´ria cache e mem´ria principal s˜o as trˆs formas de o o a e mem´ria interna que empregam tecnologias de semicondutores. O uso de trˆs o e n´ıveis explora as diferen¸as de velocidade e custo dessas mem´rias. Al´m de- c o e las, alguns sistemas utilizam tecnologias e t´cnicas adicionais na hierarquia de e mem´ria. o A Mem´ria Expandida emprega uma tecnologia mais lenta que a mem´rias o o principais. Ela funciona como um ramo lateral a mem´ria principal, n˜o se o ahttp://www.candidatoreal.com comunicando com a mem´ria externa. J´ a t´cnica de Mem´ria Virtual permite o a e o que os discos funcionem como uma extens˜o da mem´ria principal, aumentando a o o desempenho do sistema. A utiliza¸˜o de mem´rias cache tem por objetivo proporcionar uma veloci- ca o dade de acesso pr´xima a velocidade de acesso aos registradores, no entanto o oferecendo uma capacidade maior do que o conjunto de registradores, e custo n˜o muito superior ao da mem´ria principal. Os principais elementos de projeto a o de mem´rias cache s˜o: o a i Tamanho - deve ser projetado para conjugar bem velocidade, capacidade e custo; 27
  • 29. http://www.candidatoreal.com ii Fun¸˜o de Mapeamento - direto, associativo, associativo por conjuntos; ca iii Algoritmo de Substitui¸˜o - LRU, FIFO, LFU, Aleat´rio; ca o iv Pol´ ıtica de Escrita - direta (write-through), de volta (write-back) e unica ´ (write-once); v Tamanho da Linha; vi N´mero de Mem´rias Cache - um ou dois n´ u o ıveis, unificada/separada. Entre os elementos de projeto de mem´ria cache vale destacar trˆs. O o e primeiro ´ a Fun¸˜o de Mapeamento, que diz respeito a determinar onde um e ca bloco da mem´ria principal pode ser encontrado na mem´ria cache. Para re- o o alizar este mapeamento s˜o necess´rios o endere¸o do bloco na mem´ria prin- a a c o cipal e a fun¸˜o de mapeamento. No esquema de mapeamento direto, um de- ca terminado conjunto de blocos da mem´ria principal s´ pode ser encontrado em o o uma linha espec´ o ´ ıfica da mem´ria cache. E de f´cil implementa¸˜o, por´m pode a ca e utilizar de forma ineficiente o espa¸o da cache. No mapeamento associativo c um bloco da mem´ria principal pode ser colocado em qualquer linha da cache. o Maximiza a ocupa¸˜o da cache, por´m exige uma l´gica de controle que real- ca e o ize compara¸˜o do r´tulo com todas as linhas do cache simultaneamente. No ca o esquema associativo por conjuntos, um bloco da mem´ria principal pode se en- o contrar em um conjunto de linhas da cache, e n˜o nela toda. Visa conjugar a vantagens dos m´todos direto e associativo. e O segundo elemento ´ Pol´ e ıtica de Escrita, que visa garantir a coerˆncia das e informa¸˜es nos diferentes mem´rias acess´ co o ıveis pelo processador e dispositivos de E/S. Na t´cnica ´ a de escrita direta (write-through), todas as opera¸˜es de e e co escrita s˜o feitas na mem´ria principal e no cache. Esta garante a coerˆncia em a o e todas as mem´rias do sistema, no entanto ´ de baixo desempenho. Na t´cnica o e e de escrita de volta (write-back), as escritas s˜o feitas apenas na cache. Minimiza a as opera¸˜es de escrita em mem´ria principal, por´m imp˜e que opera¸˜es de co o e o co E/S acessem o cache. O terceiro elemento ´ o n´mero de mem´rias cache do sistema. Atualmente, e u o a organiza¸˜o mais comuns ´ baseada em 2 n´ ca e ıveis, um interno ao processador (L1) e outro externo (L2). Originalmente, a maioria dos projetos de cache inclui uma unica mem´ria cache, que armazenava tanto instru¸˜es como da- ´ o co dos. Recentemente, tornou-se comum a utiliza¸˜o de mem´rias separadas para ca ohttp://www.candidatoreal.com instru¸˜es e dados. Em processadores modernos que se valem de t´cnicas de co e busca antecipada de instru¸˜o (Pipeline), t´cnicas de Cache Separadas s˜o mais ca e a eficientes que as de Cache Unificada. 1.7 Desempenho do computador O desempenho de um computador pode ser definido como: 1 Desempenho = (1.1) T empo de Execucao 28
  • 30. http://www.candidatoreal.com O tempo ´ a medida de desempenho de um sistema computacional. Em e geral, ele ´ medido em segundos e pode ser definido de diferentes maneiras. O e tempo de resposta ou tempo decorrido (elapsed time) define o tempo total para se completar uma tarefa computacional, incluindo os acessos ` mem´ria e ao a o disco, as atividades de entrada e sa´ e o overhead do sistema operacional. ıda O tempo do processador (CPU time) define o tempo gasto pelo proces- sador para executar um programa em particular, n˜o considerando o tempo de a execu¸˜o de outros programas, tempo de espera por I/O, etc. Este tempo ´ ca e dividido em tempo do usu´rio e tempo do sistema. O tempo do usu´rio ´ o a a e tempo gasto na execu¸˜o das instru¸˜es do programa do usu´rio. J´ o tempo ca co a a do sistema ´ o tempo gasto pelo sistema operacional para executar tarefas em e benef´ do programa do usu´rio. A medida de tempo que mais interessa ´ o ıcio a e tempo de usu´rio. a Os projetistas medem a velocidade do hardware na execu¸˜o de suas fun¸˜es ca co b´sicas com o clock. O clock possui uma taxa constante e determina o momento a da ocorrˆncia de eventos do pr´prio hardware. O tamanho de um per´ e o ıodo de clock ´ referenciado tanto como o tempo necess´rio para completar um ciclo de e a clock quanto como a freq¨ˆncia do clock (inverso do ciclo de clock). Por exemplo, ue um ciclo de clock igual a 2 ηs corresponde a uma freq¨ˆncia de 500MHz, que ´ ue e o inverso do ciclo de clock. 1.7.1 Tempo de execu¸˜o de um programa ca F´rmulas bastante simples relacionam a medida do tempo de execu¸˜o gasto no o ca processador com a m´trica b´sica baseada nos ciclos de clock e tempo do ciclo e a de clock: Tempo de CPU do programa = N de ciclos x Per´ ıodo de clock = N de ciclos / Freq¨ˆncia do clock ue Essas f´rmulas n˜o incluem qualquer referˆncia ao n´mero de instru¸˜es o a e u co necess´rias ` execu¸˜o de um programa. O tempo de execu¸˜o tamb´m depende a a ca ca e do n´mero de instru¸˜es do programa. O n´mero de ciclos de clock necess´rios u co u a a ` execu¸˜o de uma instru¸˜o ´ dado por: ca ca e No de ciclos de clock = No instru¸˜es do programa x CPI co (1.2)http://www.candidatoreal.com A CPI ´ a m´dia do n´mero de ciclos por instru¸˜o. Este parˆmetro permite e e u ca a a compara¸˜o entre diferentes implementa¸˜es de uma mesma arquitetura do ca co conjunto de instru¸˜es, uma vez que o n´mero de instru¸˜es para a execu¸˜o do co u co ca programa nas diferentes implementa¸˜es ´ o mesmo. co e 1.7.2 Desempenho da CPU O desempenho da CPU na execu¸˜o de um programa pode ser medido em termos ca quantidade de instru¸˜es, do CPI e do per´ co ıodo do clock: 29
  • 31. http://www.candidatoreal.com Tempo de CPU = No de instru¸˜es x CPI x Per´ co ıodo do clock (1.3) O tempo de CPU ´ medido executando o programa, o per´ e ıodo do clock ´e divulgado pelo fabricante e o n´mero de instru¸˜es ´ obtido por meio de soft- u co e wares conhecidos como execution profilers ou por simuladores de arquitetura. Em uma primeira aproxima¸˜o, o n´mero de instru¸˜es, a CPI e o per´ ca u co ıodo do clock s˜o afetados respectivamente pela capacidade de otimiza¸˜o do com- a ca pilador, pela arquitetura do processador e de seu conjunto de instru¸˜es; e pela co tecnologia empregada na implementa¸˜o da m´quina. ca a 1.7.3 Programas para medir desempenho Existem quatro n´ıveis de programas que podem ser usados para avalia¸˜o de ca desempenho, eles est˜o listados em ordem decrescente de precis˜o de previs˜o: a a a • Programas reais; • N´cleos ou kernels (peda¸os de programas reais); u c • Toy Benchmarks (programas com 10 a 100 linhas de c´digo que produzem o um resultado conhecido a priori); • Benchmarks sint´ticos (similar em filosofia aos n´cleos, tentam casar a e u freq¨ˆncia m´dia de opera¸˜es de um grande conjunto de programas). ue e co Os benchmarks s˜o conjuntos de aplica¸˜es que representam cargas de tra- a co balho cujo objetivo ´ estimar o desempenho das cargas de trabalho reais. Os e benchmarks podem conter aplica¸˜es t´ co ıpicas de processamento cient´ ıfico, com- piladores, processadores de texto entre outras. Um Benchmark Suite ´ um conjunto de programas de avalia¸˜o. A Stan- e ca dard Performance Evaluation Corporation (SPEC) tem lan¸ado v´rios bench- c a mark suites: SPEC89, SPEC92, SPEC95 e SPEC2000. Estas benchmark suites s˜o compostas por programas reais, escolhidos para serem representativos de a programas que tipicamente demandam muita CPU e pouco I/O. 1.7.4 Comparando desempenhohttp://www.candidatoreal.com Uma vez selecionados os programas adequados para usar como benchmarks e decidida a m´trica de avalia¸ao, tempo de resposta ou throughput (n´mero de e c˜ u tarefas executadas por unidade de tempo), ´ necess´rio decidir como comparar e a os dados de desempenho obtidos a partir de diferentes benchmarks. A maneira mais simples de considerar o desempenho relativo ´ usar o tempo e total de execu¸˜o de dois programas em m´quinas diferentes. Por exemplo, os ca a tempos de execu¸˜o de dois programas conforme a tabela 1.1. ca Outra maneira de sumarizar os tempos ´ utilizando as m´dias aritm´tica, e e e harmˆnica ou geom´trica. A m´dia geom´trica ´ inadequada, pois n˜o prediz o o e e e e a tempo de execu¸˜o. ca 30
  • 32. http://www.candidatoreal.com Computador A Computador B Programa 1 (s) 1 10 Programa 2 (s) 1000 100 Total (s) 1001 110 Tabela 1.1: Tempo total de execu¸˜o de 2 programas ca 1 M´dia Aritm´tica = Tempo (i,n) = e e (1.4) n n M´dia Harmˆnica = Taxa (i,n) = e o n 1 (1.5) i=1 T axai n M´dia Geom´trica = Tempo Normalizado (i,n) = e e n T normalizadoi (1.6) i=1 Al´m das m´dia, existem ainda outras medidas de desempenho. Uma das e e alternativas ´ a m´trica MIPS (million instruction per second), que ´ dada por e e e um das seguintes express˜es: o N´mero de instru¸˜es u co MIPS = Tempo de execu¸˜o x 106 ca Freq¨ˆncia de Clock ue = CPI 106 Existem problemas com o uso da m´trica MIPS. Ela especifica a taxa de e execu¸˜o de instru¸˜es, mas n˜o considera a capacidade de executar mais ou ca co a menos trabalho. Portanto, n˜o podemos comparar m´quinas com conjuntos de a a instru¸˜es diferentes. Outro problema ´ que os resultados obtidos variam en- co e tre programas no mesmo computador, o que impede que determinada m´quina a tenha um MIPS caracter´ ıstico. Outra alternativa ´ a m´trica denominada MFLOPS (million floating-point e e operations per second), que ´ dada pela seguinte express˜o: e a N´mero de op. de ponto flutuante uhttp://www.candidatoreal.com MFLOPS = (1.7) Tempo de execu¸˜o x 106 ca Uma opera¸˜o de ponto flutuante pode ser uma opera¸˜o de adi¸˜o, sub- ca ca ca tra¸˜o, multiplica¸˜o ou divis˜o aplicada a operandos expressos em precis˜o ca ca a a simples ou dupla. 1.7.5 Lei de Amdahl A lei de Amdhal pode ser utilizada para demonstrar o ganho de desempenho de uma m´quina. Este ganho ´ dito acelera¸˜o ou speedup. Entende-se por a e ca acelera¸˜o a medida de como a m´quina se comporta ap´s a implementa¸˜o ca a o ca 31
  • 33. http://www.candidatoreal.com de uma melhora em rela¸˜o ao seu comportamento anterior. Podemos definir ca speedup como: Desempenho ap´s a melhora o speedup = (1.8) Desempenho antes da melhora A lei de Amdhal demonstra que ´ errado esperar que a melhora em um dos e aspectos que influenciam no desempenho da m´quina resulte numa melhora no a desempenho total proporcional ao tamanho do ganho inicial da fra¸˜o. cahttp://www.candidatoreal.com 32
  • 34. http://www.candidatoreal.com Cap´ ıtulo 2 Componentes de um Computador O computador est´ organizado em dois componentes que s˜o: a a • Hardware: corresponde a parte f´ısica que est´ dividida em: unidade de a entrada e sa´ ıda, processador, mem´ria principal e mem´ria secund´ria; o o a e a a a ´ • Software: ´ o conjunto de programas que d´ vida ` m´quina. E classificado em software aplicativo (jogos, planilha, etc.) e software b´sico (sistema a operacional, compiladores, editores de texto, etc.). Para interligar os componentes do hardware existe uma placa de suporte especial, chamada placa-m˜e. A placa-m˜e ´ respons´vel por gerenciar toda a a a e a transa¸˜o entre o processador e os perif´ricos. Os componentes principais da ca e placa-m˜e s˜o: chipset, BIOS, barramentos, e slots. a a Chipset ´ o chip respons´vel pelo controle de diversos dispositivos de entrada e a e sa´ como o barramento, o acesso ` mem´ria, o acesso ao HD, perif´ricos ıda a o e on-board e off-board, comunica¸˜o do processador com a mem´ria RAM e en- ca o tre outros componentes da placa-m˜e. Uma placa-m˜e possui dois chipsets: o a a chipset sul e o chiset norte. O chipset sul (south bridge) ´ respons´vel pelo cont- e a role de dispositivos de entrada ou sa´ enquanto o chipset norte (north bridge) ıda faz a comunica¸˜o entre o processador e a mem´ria principal. ca ohttp://www.candidatoreal.com O BIOS (Basic Input/Output System) ´ o primeiro programa executado e pelo computador ao ser ligado. Sua fun¸˜o prim´ria ´ preparar a m´quina para ca a e a que o sistema operacional, que pode estar armazenado em diversos tipos de dispositivos (discos r´ ıgidos, disquetes, CDs, etc) possa ser executado. O BIOS ´ armazenado num chip ROM (Read-Only Memory) localizado na placa-m˜e, e a chamado ROM BIOS. O BIOS tamb´m ´ respons´vel por controlar o uso dos e e a dispositivos e manter informa¸˜es de data e hora. O BIOS trabalha junto com co o post, um software que testa os componentes do micro em busca de eventuais erros. Pode-se alterar as configura¸˜es de hardware atrav´s do setup. co e 33
  • 35. http://www.candidatoreal.com Os barramentos permitem a interliga¸˜o entre os dispositivos da placa-m˜e. ca a S˜o divididos em trˆs conjuntos: via de dados, via de endere¸os e via de cont- a e c role. O desempenho do barramento pode ser medido pela sua largura de banda (32, 64 bits, etc.) e pela sua velocidade de transmiss˜o (100 Mbps, 1G bps, etc.). a Os slots s˜o respons´veis por ligar os perif´ricos aos barramentos e suas a a e velocidades e largura de banda s˜o correspondentes as dos seus respectivos bar- a ramentos. Na placa-m˜e s˜o encontrados v´rios slots para encaixe de placas a a a (v´ ıdeo, som, rede, modem, etc.). Alguns exemplos de slots: ISA, PCI, AGP, PCI Express, etc. 2.1 Principais componentes de Hardware 2.1.1 Discos R´ ıgidos Os discos r´ ıgidos s˜o dispositivos de armazenamento destinados a grandes quan- a tidades de dados. Fisicamente, um disco r´ ıgido pode ser visto como um com- posto por dois grandes blocos, como na figura 2.2. O primeiro bloco ´ um e conjunto de discos magn´ticos superpostos em alturas diferentes com aux´ de e ılio um eixo central. No momento de acesso ao disco, essa estrutura ´ mantida em e uma rota¸˜o constante. O segundo bloco ´ uma estrutura mecˆnica que suporta ca e a um conjunto de cabe¸otes, um para cada superf´ de disco. Essa estrutura ´ c ıcie e capaz de realizar movimentos de vai-e-vem de maneira que os cabe¸otes possam c ser deslocados desde a borda do disco at´ o centro. ehttp://www.candidatoreal.com Figura 2.1: Organiza¸˜o f´ ca ısica do disco Do ponto de vista da organiza¸˜o l´gica, cada superf´ de um disco ´ di- ca o ıcie e vidida em circunferˆncias concˆntricas denominadas trilhas. Cada trilha, por e e sua vez, ´ subdividida radialmente em unidades chamadas setores. Em geral, e os setores tˆm o mesmo tamanho. O setor possui a unidade m´ e ınima de leitura e grava¸˜o em um disco. O conjunto de todas as superf´ ca ıcies do disco que fi- cam exatamente ` mesma distˆncia do eixo central forma o cilindro, conforme a a a figura ??. As abstra¸˜es cilindro, trilha e setor s˜o utilizadas para designar a co a organiza¸˜o l´gica da unidade de disco. A defini¸˜o de trilhas e de setores em ca o ca 34
  • 36. http://www.candidatoreal.com um disco chama-se formata¸˜o f´ ca ısica e ´ um procedimento realizado pelo fabri- e cante. A capacidade total do disco ´ obtida multiplicando-se cabe¸as x cilindros e c x setores x tamanho do setor. Figura 2.2: Organiza¸˜o l´gica da unidade de disco ca o Para acessar dados no disco, ´ necess´rio informar ` controladora o cilin- e a a dro, a superf´ e o setor a ser acessado. Esse m´todo ´ denominado de CHS ıcie e e (Cylinder, Head, Sector). Outra maneira ´ acessar o disco ´ enxerg´-lo como e e a um conjunto de blocos, no qual cada bloco ´ um ou mais setores. O n´mero de e u blocos ´ ent˜o convertido em cilindros, superf´ e setores por um procedimento e a ıcie que se denomina de LBA (Linear Block Addressing). Outros termos bastante comuns associados a disco r´ ıgidos s˜o formata¸˜o a ca l´gica e parti¸˜es. A formata¸˜o l´gica consiste em gravar informa¸˜es no disco o co ca o co de forma que arquivos possam ser escritos, lidos e localizados pelo sistema op- eracional. O conceito de parti¸˜o est´ associado ` capacidade de dividir logica- ca a a mente um disco em v´rios outros discos. a Para realizar um acesso a um disco, ´ necess´rio posicionar o cabe¸ote de e a c leitura e escrita sob um determinado setor e trilha onde dado ser´ lido ou es- a crito. O tempo total de acesso aos disco, seja para leitura ou para escrita, ´ e dado pela seguinte f´rmula: o Ta cesso = Ts eek + Tl atencia + Tt ransf erencia (2.1)http://www.candidatoreal.com A descri¸˜o de cada um dos termos da soma ´ a seguinte: ca e • Tempo de Seek: tempo necess´rio para deslocar o cabe¸ote de leitura e a c escrita at´ o cilindro correspondente ` trilha a ser acessada; e a • Tempo de Latˆncia: tempo necess´rio, uma vez o cabe¸ote posicionado j´ e a c a na trilha correta, para o setor a ser lido, ou escrito, se posicionar sob o cabe¸ote de leitura e escrita no in´ do setor a ser lido (ou escrito); c ıcio • Tempo de Transferˆncia: corresponde ao tempo necess´rio ` transferˆncia e a a e dos dados, isso ´, ` leitura ou a escrita dos dados. e a 35
  • 37. http://www.candidatoreal.com Outro fator relacionado com a redu¸˜o do tempo de acesso a um disco ´ ca e o entrela¸amento (interleaving). Essa t´cnica numera os setores n˜o mais de c e a forma cont´ıgua, mas sim com um espa¸o entre eles. O disco 2 da Ilustra¸˜o 14 c ca possui um fator de entrela¸amento igual a 2. Isso significa que entre o setor k c e o setor k+1, existem dois outros setores. O melhor fator de entrela¸amento c para uma determinada unidade de disco depende da velocidade do processador, do barramento, do controlador e da velocidade de rota¸˜o do disco. ca Figura 2.3: Trilha com 16 setores e diferentes fatores de entrela¸amento c 2.1.2 Teclado O teclado ´ o principal perif´rico de entrada de dados utilizado na integra¸˜o e e ca direta de usu´rios com o computador. O princ´ de opera¸˜o do teclado ´ bas- a ıpio ca e tante simples: gerar um s´ımbolo para cada tecla pressionada. Mecanicamente, um teclado pode ser visto como uma matriz de i linhas e j colunas as quais entram em contato quando uma tecla ´ pressionada. A cada elemento i,j da e matriz correspondente um caractere. Quando uma tecla ´ pressionada, o teclado identifica a linha e a coluna e associadas a essa tecla e gera um c´digo que ´ denominado de scan mode (c´digo o e o de varredura). O pressionar da tecla gera ainda uma interrup¸˜o de hardware, ca e por conseq¨ˆncia, a execu¸˜o de um tratador de interrup¸˜es espec´ ue ca co ıfico para o teclado. Com base no scan mode, o tratador de interrup¸˜es consulta uma co tabela interna, substituindo o scan mode pelo c´digo ASCII correspondente ` o a tecla pressionada. O c´digo ASCII da tecla, em seguida, ´ armazenado em o e uma regi˜o especial da mem´ria (buffer do teclado) de onde ´ recuperado por a o e chamadas do sistema operacional.http://www.candidatoreal.com Um teclado brasileiro difere de um teclado inglˆs na posi¸˜o dos acentos e e ca da cedilha, por exemplo. A solu¸˜o empregada ´ associar a certos programas ca e aplicativos mapas de c´digos. Atrav´s desses mapas de c´digos, os programas o e o aplicativos s˜o capazes de consumir caracteres do buffer de teclado e convertˆ- a e los de forma apropriada. O procedimento de ler os dados do teclado e escrevˆ-los na tela denomina-se e ecoamento. Quando se tem v´rias janelas abertas, os caracteres digitados devem a ser direcionados ` janela correta. Dois m´todos s˜o normalmente empregados: a e a centralizado e dedicado. 36
  • 38. http://www.candidatoreal.com No m´todo centralizado o driver de teclado disponibiliza um conjunto de e mini-buffers os quais podem ser encadeados para formar um buffer maior. Nesse caso, para cada janela aberta o sistema operacional atribui uma estrutura de dados na qual um dos seus elementos ´ um ponteiro utilizado para referenciar e e lista encadeada de mini-buffers. No m´todo dedicado, a bufferiza¸˜o ´ feita e ca e diretamente em uma ´rea de mem´ria provida pela estrutura de dados associada a o ao terminal. Nesse caso, o n´mero de entradas para o terminal ´ limitado pelo u e tamanho do buffer dessa estrutura. 2.1.3 Mouse O mouse ´ um perif´rico de entrada que historicamente se juntou ao teclado e e como auxiliar no processo de entrada de dados, especialmente em programas com interface gr´fica. O mouse tem como fun¸˜o movimentar o cursor (apon- a ca tador) pela tela do computador. O formato mais comum do cursor ´ uma seta, e contudo, existem op¸˜es no sistema operacional e softwares que permitem per- co sonalizarmos o cursor do mouse. O mouse funciona como um apontador sobre a tela do monitor, e disponibi- liza, normalmente, quatro tipos de opera¸˜es: movimento, click (clique), duplo co click e drag and drop (arrastar e largar). Existem modelos com um, dois, trˆs ou mais bot˜es cuja funcionalidade e o depende do ambiente de trabalho e do programa que est´ a ser utilizado. Clara- a mente, o bot˜o esquerdo ´ o mais utilizado. a e O mouse ´ normalmente ligado ao computador atrav´s de portas: serial, PS2 e e ou, mais recentemente, USB (Universal Serial Bus). Tamb´m existem conex˜es e o sem fio, as mais antigas em infra-vermelho, as atuais em Bluetooth. Outros dis- positivos de entrada competem com o mouse: Touchpads (usados basicamente em notebooks) e Trackballs. O mouse original possu´ dois discos que rolavam nos eixos X e Y e tocavam ıa diretamente na superf´ıcie. O modelo mais conhecido de rato ´ provavelmente o e mouse baseado em uma esfera, que roda livremente, mas que na pr´tica gira dois a discos que ficam em seu interior. O movimento dos discos pode ser detectado tanto mecanicamente quanto por meio ´tico. o Os modelos mais modernos de mouse s˜o totalmente ´ticos, n˜o tendo pe¸as a o a chttp://www.candidatoreal.com m´veis. De modo muito simplificado, eles tiram fotografias que s˜o comparadas o a e que permitem deduzir o movimento que foi feito. 2.1.4 Placa de rede Uma placa de rede ´ um dispositivo de hardware respons´vel pela comunica¸˜o e a ca entre os computadores em uma rede. A placa de rede ´ o hardware que permite e aos computadores conversarem entre si atrav´s da rede. Sua fun¸˜o ´ controlar e ca e todo o envio e recebimento de dados atrav´s da rede. Cada arquitetura de rede e exige um tipo espec´ıfico de placa de rede, sendo as arquiteturas mais comuns as 37
  • 39. http://www.candidatoreal.com redes Ethernet e Token Ring. Al´m da arquitetura usada, as placas de rede ` venda no mercado diferenciam- e a se tamb´m pela taxa de transmiss˜o, cabos de rede suportados e barramento e a utilizado (On-Board, PCI, ISA ou Externa via USB). As placas de rede para Notebooks podem ser on-board ou por uma placa PCMCIA. Quanto ` taxa de transmiss˜o, as placas mais comuns s˜o Ethernet de 10, a a a 100 ou 1000 Mbps e placas Token Ring de 4 Mbps e 16 Mbps. Usando placas Ethernet de 10 Mbps, por exemplo, devemos utilizar cabos de par tran¸ado de c categoria 3 ou 5, ou ent˜o cabos coaxiais. Usando uma placas de 100 Mbps o a requisito m´ınimo a n´ de cabeamento s˜o cabos de par tran¸ado n´ 5. No ıvel a c ıvel caso de redes Token Ring, os requisitos s˜o cabos de par tran¸ado categoria 2 a c (recomend´vel o uso de cabos categoria 3) para placas de rede de 4 Mbps, e a cabos de par tran¸ado blindado categoria 4 para placas de 16 Mbps. Devido `s c a exigˆncias de uma topologia em estrela das redes Token Ring, nenhuma placa e de rede Token Ring suporta o uso de cabos coaxiais. 2.1.5 Impressora As impressoras s˜o dispositivos de sa´ que tem por finalidade imprimir em a ıda papel ou filme pl´stico os resultados do processamento. Da mesma forma que a os monitores, a imagem impressa ´ resultado de muitos pontos impressos indi- e vidualmente que no conjunto formam o texto ou a imagem desejados. Tamb´m e de forma semelhante aos monitores, as impressoras evolu´ ıram a partir de dis- positivos que imprimiam apenas caracteres em uma unica cor para as modernas ´ impressoras capazes de reproduzir imagens sofisticadas, de alta resolu¸˜o gr´fica, ca a em milhares de cores. As impressoras s˜o classificadas em: a • Impressoras alfanum´ricas: Esses equipamentos recebem do computador e c´digos que representam caracteres alfanum´ricos e portanto tem capaci- o e dade de imprimir apenas esses caracteres. Geralmente ´ poss´ usar ape- e ıvel nas uma fonte gr´fica, caracter´ a ıstica do equipamento. Algumas impresso- ras permitem trocar o dispositivo de impress˜o, viabilizando a utiliza¸˜o a ca de um pequeno n´mero de fontes gr´ficas; u a • Impressoras gr´ficas: Esses equipamentos recebem do computador a in- a forma¸˜o sobre os pontos a serem impressos. Dessa forma, podem im- cahttp://www.candidatoreal.com primir gr´ficos. Na impress˜o de textos, os caracteres s˜o impressos como a a a pontos, que em determinada configura¸˜o formam a imagem gr´fica do ca a caractere a ser impresso. Quando se utiliza uma impressora gr´fica para a imprimir texto, existe a possibilidade de utilizar um grande n´mero de u diferentes fontes gr´ficas, definidas por software. a 2.1.6 Monitor 38
  • 40. http://www.candidatoreal.com Cap´ ıtulo 3 Aritm´tica Computacional e 3.1 N´ meros Com Sinal e N´ meros Sem Sinal u u Existe uma grande variedade de op¸˜es para representar os n´meros inteiros co u com ou sem sinal. Apenas quatro se destacam: sinal e amplitude/magnitude (S + M ), complemento de 1, complemento de 2 e nota¸˜o em excesso (biased ). ca 3.1.1 Sinal e amplitude/magnitude Neste sistema de representa¸˜o o bit mais a esquerda representa o sinal: 0 (zero) ca para indicar o valor positivo e 1 (um) para indicar o valor negativo. Os bits restantes representam o m´dulo. A amplitude ou faixa de representa¸˜o para n o ca bits ´ [−(2n−1 − 1); 2n−1 − 1]. Por exemplo, para n=8 a faixa de representa¸˜o e ca ´ [−127; 127]. Neste sistema o zero possui duas representa¸˜es, por exemplo, e co n = 4 (0000 e 1000). 3.1.2 Complemento de 1 Neste sistema de representa¸˜o o bit mais a esquerda representa o sinal: 0 (zero) ca para indicar o valor positivo e 1 (um) para indicar o valor negativo. Para os n´meros positivos, os n-1 bits representam o m´dulo. O sim´trico de um n´mero u o e u positivo ´ obtido pelo complemento de todos os seus d´ e ıgitos (trocando 0 por 1 e vice-versa) incluindo o bit de sinal. A amplitude ou faixa de representa¸˜o ca para n bits ´ [−(2n−1 − 1); 2n−1 − 1]. Por exemplo, para n = 8 a faixa de e representa¸˜o ´ [−127; 127]. Neste sistema o zero possui duas representa¸˜es, ca e cohttp://www.candidatoreal.com por exemplo, n = 4 (0000 e 1000). 3.1.3 Complemento de 2 Neste sistema de representa¸˜o o bit mais a esquerda representa o sinal: 0 (zero) ca para indicar o valor positivo e 1 (um) para indicar o valor negativo. Para os n´meros positivos, os bits restantes representam o m´dulo. A amplitude ou u o faixa de representa¸˜o para n bits ´ [−(2n−1 ); 2n−1 − 1]. Por exemplo, para ca e n=8 a faixa de representa¸˜o ´ [−128; 127]. Este sistema possui representa¸˜o ca e ca assim´trica, o n´mero de representa¸˜es negativas ´ maior do que a positiva. e u co e Este sistema o zero possui uma unica representa¸˜o, por exemplo, n=4 (0000). ´ ca 39
  • 41. http://www.candidatoreal.com O complemento de 2 de um n´mero ´ obtido em dois passos: primeiro obt´m- u e e se o complemento de todos os bits (inclusive o de sinal); e ao resultado obtido soma-se 1 (um) em bin´rio, desprezando o ultimo transporte, se houver. a ´ Uma maneira pr´tica de se obter o complemento de 2 de um n´mero ´ copiar a u e da direita para a esquerda todos os bits at´ encontrar o primeiro bit 1 (copiar e inclusive este bit), e inverter todos os demais bits. Um exemplo para n=4: 0110 (6 na base 10) usando a regra: 1001 (n´mero bin´rio invertido) u a 0110 < − > 1001 + 0001 (soma bin´ria com 1) a 1010 (complemento de 2) Os computadores manipulam tanto n´mero inteiros positivos quanto negativos, u que s˜o representados em complemento de 2. a 3.1.4 Nota¸˜o em excesso ca Neste sistema de representa¸˜o o bit mais a esquerda representa o sinal: 1 ca (um) para indicar o valor positivo e 0 (zero) para indicar o valor negativo. A amplitude ou faixa de representa¸˜o para n bits ´ [−(2n−1 ); 2n−1 − 1]. Por ca e exemplo, para n=8 a faixa de representa¸˜o ´ [−128; 127]. Neste sistema cada ca e n´mero inteiro corresponde ao valor desejado acrescido de um excesso de 2n−1 , u onde n pode ser 4, 5, 7, 8, 16, etc. Este sistema tem uma vantagem em rela¸˜o aos outros sistemas apresenta- ca dos anteriormente: o valor em bin´rio com todos os bits a 0 (zero) representa o a menor valor inteiro, que este tenha sinal ou n˜o, e o mesmo se aplica ao maior a valor em bin´rio, i.e., com todos os bits 1: representa o maior inteiro, com ou a sem sinal. Bin´rio (4 bits) a S+M C1 C2 Excesso de 8 (n=4) 0000 +0 +0 0 -8 (0 - 8) 0001 1 1 1 -7 (1 - 8) 0010 2 2 2 -6 (2 - 8) 0011 3 3 3 -5 (3 - 8) 0100 4 4 4 -4 (4 - 8) 0101 5 5 5 -3 (5 - 8) 0110 6 6 6 -2 (6 - 8) 0111 7 7 7 -1 (7 - 8) 1000 -0 -7 -8 0 (8 - 8) 1001 -1 -6 -7 1 (9 - 8)http://www.candidatoreal.com 1010 -2 -5 -6 2 (10 - 8) 1011 -3 -4 -5 3 (11 - 8) 1100 -4 -3 -4 4 (12 - 8) 1101 -5 -2 -3 5 (13 - 8) 1110 -6 -1 -2 6 (14 - 8) 1111 -7 -0 -1 7 (15 - 8) 40
  • 42. http://www.candidatoreal.com 3.2 Adi¸˜o e Subtra¸˜o ca ca Numa soma os bits s˜o somados um a um da direita para a esquerda, com os a carries sendo passados para o pr´ximo bit ` esquerda. A opera¸˜o de sub- o a ca tra¸˜o usa a adi¸˜o. O subtraendo ´ simplesmente negado antes de ser somado ca ca e ao minuendo. Lembre-se que a m´quina trata com n´meros representados em a u complemento a 2. O exemplo a seguir mostra as opera¸˜es de soma (6 + 7) e co subtra¸˜o (7 − 6) (complemento 2) bit a bit entre dois n´meros representados ca u com 4 d´ ıgitos bin´rios. a 7 = 0111 6 = 0110 13 = 1101 (soma) 1 = 0001 (subtra¸˜o) ca Tanto a soma como a subtra¸˜o podem gerar overflow ou underflow, se ca o resultado obtido n˜o puder ser representado pela quantidade de bits que a formam uma palavra. Se somarmos ou subtrairmos dois n´meros com sinais u contr´rios, nunca ocorrer´ overflow ou underflow. Isto porque operandos com a a sinais contr´rios nunca podem ser maior do que qualquer dos operandos. a O overflow ocorre quando somamos dois operandos positivos e obtemos um resultado negativo, ou vice-versa. Isto significa que utilizamos o bit de sinal, gerando um carry, para armazenar um valor pertencente ao resultado da opera¸˜o. Racioc´ ca ınio semelhante ´ realizado para detectar a ocorrˆncia do e e underflow numa subtra¸˜o. Neste caso, o bit de sinal tamb´m ´ usado para ca e e armazenar um valor pertencente ao resultado da opera¸˜o. ca Os projetistas de um sistema devem decidir onde tratar a ocorrˆncia de e overflow ou de underflow em opera¸˜es aritm´ticas. Elas podem ser tratadas co e tanto por hardware quanto por software. Pode existir a detec¸˜o por hardware ca que gera uma exce¸˜o, e que depois ´ tratada por software. ca e 3.3 Opera¸˜es L´gicas co o Os computadores manipulam palavras, mas ´ muito util, tamb´m, manipular e ´ e campos de bits dentro de uma palavra ou mesmo bits individuais. O exame de caracteres individuais (8 bits) dentro de uma palavra ´ um bom exemplo e dessa necessidade. Assim, as arquiteturas de conjuntos de instru¸˜es incluem co instru¸˜es para manipula¸˜o de bits. co cahttp://www.candidatoreal.com Um dos tipos de instru¸˜o utilizado ´ a de deslocamento de bits. As in- ca e stru¸˜es podem deslocar bits tanto ` direita quanto ` esquerda. Todos os bits co a a s˜o movidos para o lado determinado e os bits que ficam vazios s˜o preenchidos a a com 0s. Outras instru¸˜es l´gicas muito uteis s˜o implementadas na unidade co o ´ a l´gica e aritm´tica de um processador s˜o as opera¸˜es NOT, AND, OR e XOR. o e a co O exemplo abaixo mostra as opera¸˜es l´gicas, bit a bit, de deslocamento ` di- co o a reita, ` esquerda, NOT, AND, OR e XOR. a 41
  • 43. http://www.candidatoreal.com 3.4 Constru¸˜o de uma Unidade L´gica Aritm´tica ca o e A ALU (Arithmetic and Logic Control) ´ a parte central do hardware de uma e CPU. Ela ´ respons´vel por realizar opera¸˜es aritm´ticas e l´gicas b´sicas, e e a co e o a pode ser implementada com quatro componentes: AND, OR, INVERTER e MULTIPLEXOR (3.4). Figura 3.1: Multiplexador Para implementar um somador de um bit, precisa-se de duas entradas para os operandos, uma sa´ para o resultado, uma entrada relativa ao carry in e ıda um sa´ relativa ao carry out. A tabela abaixo mostra a tabela verdade para o ıda somador de um bit. Entrada Sa´ ıda a b carry in soma carry out 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 As sa´ ıdas soma e carry out s˜o: a soma = (a.b.carryin + a.b.carryin + a.b.carryin + a.b.carryin) carryout = (b.carryin + a.carryin + a.b)http://www.candidatoreal.com Para completar o projeto de uma ALU de n bits, podemos conectar n so- madores de um bit. Os carry outs gerados pelos bits menos significativos s˜oa propagados por toda extens˜o do somador. a A opera¸˜o de subtra¸˜o pode ser realizada somando-se o minuendo com ca ca a nega¸˜o do subtraendo. Este efeito ´ realizado acrescentando uma entrada ca e complementada de b ao somador e ativando o carry in do bit menos significativo para um. O somador ent˜o calcula a + b + 1. a Outras fun¸˜es de interesse, com o XOR podem ser inclu´ co ıdas na ALU. Al- gumas opera¸˜es n˜o s˜o, em geral, implementadas na ALU (3.4). Exemplos: co a a shift, multiplica¸˜o, divis˜o e opera¸˜es de ponto flutuante. ca a co 42
  • 44. http://www.candidatoreal.com Figura 3.2: ALU 3.5 Ponto Flutuante Para somar dois n´meros na base 10 em nota¸˜o cient´ u ca ıfica temos que: • Alinhar os pontos; • Somar os n´meros; u • Normalizar o resultado; • Arredondar o resultado para o n´mero m´ximo de casas permitidas. u a Um hardware para somar n´meros de ponto flutuante tem que fazer as mes- u mas opera¸˜es com n´meros bin´rios. Vejamos um exemplo: co u a Exemplo: Somar os n´meros 0.5 e -0.4375 em bin´rio e apresente com 4 bits u a de precis˜o; trunque o resultado na fase de arredondamento. a 0.5 = 0.1 (bin´rio) = 0.1 × 20 = 1.000 × 2−1 a −0.4375 = −0.0111 (bin´rio) = −0.0111 × 20 = −1.110 × 2−2 a 1. Igualar os expoentes (modificar o n´mero menor) u −1.110 × 2−2 = −0.111 × 2−1 2. Somar as partes significantes (mantissas) 1.000 × 2−1 + (−0.111 × 2−1 ) = 1.000 × 2−1 + (1.001 × 2−1 ) = 0.001 × 2−1 3. Normalizar o resultado 0.001 × 2−1 = 1.0 × 2−4 4. Arredondamentohttp://www.candidatoreal.com O n´mero final est´ OK. u a 43
  • 45. http://www.candidatoreal.com Cap´ ıtulo 4 Sistemas Operacionais 4.1 Introdu¸˜o ca O sistema operacional ´ uma camada de software colocada entre o hardware e e os programas que executam tarefas para os usu´rios. O sistema operacional a ´ respons´vel pelo o acesso aos perif´ricos, ou seja, sempre que um programa e a e necessita de algum tipo de opera¸˜o de entrada e sa´ ca ıda, ele solicita ao sistema operacional. Figura 4.1: Sistema Operacionalhttp://www.candidatoreal.com O objetivo do sistema operacional ´ tornar a utiliza¸˜o do computador mais e ca eficiente e mais conveniente. Uma utiliza¸˜o mais eficiente do computador ´ ca e obtida por meio da distribui¸ao de seus recursos (mem´ria principal, tempo de c˜ o processador, impressora, espa¸o em disco, etc.) entre os programas. Uma uti- c liza¸˜o mais conveniente ´ obtida escondendo-se do programador detalhes do ca e hardware, em especial os perif´ricos. Para atingir esses objetivos, o sistema op- e eracional oferece uma s´rie de servi¸os como: gerˆncia de mem´ria, gerˆncia do e c e o e processador, mem´ria virtual, sistema de arquivos, sistema de entrada e sa´ o ıda. A arquitetura de um sistema operacional corresponde ` imagem que o usu´rio a a tem do sistema, a forma como ele percebe o sistema. Esta imagem ´ definida e 44
  • 46. http://www.candidatoreal.com pela interface por meio da qual o usu´rio acessa os servi¸os do sistema opera- a c cional. Essa interface ´ formada pelas chamadas de sistema e pelos programas e de sistema. Os programas solicitam servi¸os ao sistema operacional por meio das chamadas c de sistema que transferem a execu¸˜o dos programas para o sistema operacional. ca A parte do sistema operacional respons´vel para implementar as chamadas de a sistema ´ normalmente chamadas de n´cleo ou kernel. Os principais compo- e u nentes do kernel de qualquer sistema operacional s˜o a gerˆncia de processador, a e gerˆncia de mem´ria, sistema de arquivos e gerˆncia de entrada e sa´ e o e ıda. Os programas de sistemas, algumas vezes chamados de utilit´rios, s˜o pro- a a gramas normais executados fora do kernel do sistema operacional. Eles imple- mentam tarefas b´sicas para utiliza¸˜o do sistema e muitas vezes s˜o confun- a ca a didos com pr´prio sistema operacional. Exemplos de programas de sistemas o s˜o os utilit´rios para manipula¸˜o de arquivos, listar arquivos, imprimir ar- a a ca quivos, trocar nome de arquivos, data, hora e etc. O programa de sistema mais importante ´ o interpretador de comando. Sua tarefa ´ receber comandos e e e execut´-los. Esses comandos podem ser enviados de forma textual ou por meio a de uma interface gr´fica de usu´rio (GUI). a a O sistema operacional n˜o resolve problemas do usu´rio final. Somente a a quando ocorre algum evento especial que o sistema operacional ´ ativado. Dois e tipos de eventos ativam o sistema operacional: uma chamada de sistema ou uma interrup¸˜o de perif´rico. ca e Os sistemas operacionais podem ser classificados segundo in´meros crit´rios, u e dentre os quais os mais comuns s˜o: a • N´mero de usu´rios u a – Monousu´rios: projetados para suportar um unico usu´rio. Exemp- a ´ a los de desse tipo de sistema s˜o o MS DOS, Windows 3x, Windows a 9x, etc; – Multiusu´rios: projetados para suportar v´rias sess˜es de usu´rios. a a o a Exemplos desse sistema s˜o Windows NT, UNIX, etc; a • N´mero de tarefas u – Monotarefa: capazes de executar apenas uma tarefa de cada vez. Porhttp://www.candidatoreal.com exemplo, o MS DOS, etc; – Multitarefa: capazes de executar v´rias tarefas simultaneamente, a como uma compila¸˜o e um processamento de texto. Por exemplo, ca Windows, Unix, etc; • Tipo de servi¸o oferecido ao usu´rio c a – Sistemas de processamento em lote (batch); – Sistemas de tempo compartilhado (time sharing); – Sistemas de tempo real (real time); 45
  • 47. http://www.candidatoreal.com – Sistemas Mainframes; – Sistemas desktop; – Sistemas distribu´ ıdos; – Sistemas handheld; – Sistemas paralelos. 4.2 Conceitos B´sicos a 4.2.1 Multiprograma¸˜o ca A multiprograma¸˜o torna mais eficiente o aproveitamento dos recursos do com- ca putador. Isso ´ conseguido por meio da execu¸˜o simultˆnea de v´rios progra- e ca a a mas. Em um sistema multiprogramado diversos programas s˜o mantidos na a mem´ria ao mesmo tempo. o A id´ia da multiprograma¸˜o ´ aproveitar o tempo ocioso do processador e ca e durante as opera¸˜es de entrada e sa´ co ıda, ou seja, enquanto o perif´rico executa e o comando enviado, o sistema operacional inicia a execu¸˜o de outro programa. ca Isso faz com que exista uma maximiza¸˜o do uso do processador e da mem´ria. ca o Em um ambiente monoprogramado, o processador ficaria parado durante a re- aliza¸˜o do acesso a um perif´rico. ca e 4.2.2 Processo Um processo pode ser definido como um programa em execu¸˜o. O processo ´ ca e considerado um elemento ativo, pois altera o seu estado ` medida que executa a ´ um programa. E o processo que realiza as chamadas de sistema. Em muitos sistemas operacionais os processos s˜o criados por outros pro- a cessos, por meio de chamada de sistema. Nesse caso, ´ poss´ e ıvel definir uma hierarquia de processos. O processo que faz a chamada de sistema ´ chamado e de processo pai e o processo criado ´ chamado de processo filho. Um mesmo e processo pai pode estar associado a v´rios processos filhos. Os processos filhos, a por sua vez, podem criar outros processos. Durante a sua execu¸˜o, um processo passa por diversos estados, refletindo cahttp://www.candidatoreal.com o seu comportamento dinˆmico, isto ´, sua evolu¸˜o no tempo. Os poss´ a e ca ıveis estados para um processo s˜o: cria¸˜o (new), apto (ready), executando (run- a ca ning), bloqueado (blocked) e terminado (exit). A figura 4.2 mostra esses cincos estados e as transi¸˜es do processo entre eles. co No estado New um novo processo ´ criado. Ap´s ser criado, o processo entra e o em um ciclo de processador. Ele precisa do processador para executar, mas o processador poder´ estar ocupado com outro processo, ele dever´ esperar. Di- a a versos processos podem estar no nesse mesmo estado. Nesse caso, ´ necess´rio e a manter uma fila com os processos aptos a ganhar o processador. Essa fila ´ e chamada de fila de aptos (ready queue). No estado New, o sistema operacional 46
  • 48. http://www.candidatoreal.com Figura 4.2: Ciclo de vida dos processos aloca recursos para o processo, mas n˜o existe uma garantia de que o processo a ser´ executado. a Os processos na fila do processador est˜o no estado Ready. Um unico pro- a ´ cesso ocupa o processador a cada instante. O processo que ocupa o processador est´ no estado Running. Neste estado processo pode realizar as chamadas de a sistema. Enquanto o sistema espera pelo t´rmino da chamada de sistema, o e processo est´ no estado Blocked. a O processo fica no estado Blocked at´ ser atendido. Com isso, o processador e fica livre. O sistema operacional seleciona outro do processo da fila de aptos para receber o processador. O estado Exit indica que o processo terminou sua execu¸˜o ou foi abortado. ca A mudan¸a de estado de qualquer processo ´ iniciada por um evento. Esse c e evento aciona o sistema operacional, que ent˜o altera o estado de um ou mais a processos. O evento pode ser uma chamada de sistema ou uma interrup¸˜o de ca hardware. Alguns outros caminhos s˜o poss´ a ıveis no grafo de estado. Por exemplo, pode ocorrer de nenhum processo na mem´ria principal est´ no estado Ready, pois o a todos est˜o aguardando uma opera¸˜o de entrada e sa´ a ca ıda. Nesse caso, o sistema operacional realiza o swap (mover todo ou parte de um processo da mem´ria o para o disco) de um dos processos bloqueados para disco, e coloca numa fila de processo suspensos. O estado para essa situa¸˜o ´ o Suspend. Quando a ca e opera¸˜o de entrada e sa´ de um dos processos ´ finalizada, o sistema opera- ca ıda e cional tr´s do disco o processo da fila de suspenso colocando no estado de Ready. ahttp://www.candidatoreal.com 4.2.3 Interrup¸˜es co O mecanismo de interrup¸˜o constitui a base de opera¸˜o de um sistema mul- ca ca tiprograma¸˜o. O mecanismo de interrup¸˜o permite que o controlador de ca ca perif´rico chame a aten¸˜o do processador. A fun¸˜o b´sica do controlador e ca ca a de perif´rico ´ conectar o dispositivo em quest˜o ao processador. e e a Uma interrup¸˜o sempre sinaliza a ocorrˆncia de algum evento. Quando ca e ela acontece, desvia a execu¸ao da posi¸˜o atual de programa para uma rotina c˜ ca 47
  • 49. http://www.candidatoreal.com espec´ ıfica. Essa rotina, respons´vel por atender a interrup¸˜o ´ chamada de a ca e tratador de interrup¸˜o. O tratador realiza as a¸˜es necess´rias em fun¸˜o da ca co a ca ocorrˆncia da interrup¸˜o. e ca Em computador podem existir diversos controladores capazes de gerar inter- rup¸˜es. A forma mais simples de identificar a origem da interrup¸˜o ´ associar co ca e a cada controlador um tipo diferente de interrup¸˜o. Por exemplo, cada tipo de ca interrup¸˜o ´ identificado por um n´mero. ca e u Existem momentos que um programa n˜o pode ser interrompido enquanto a realiza uma tarefa cr´ıtica. Para isso, o processador possui instru¸˜es para habil- co itar e desabilitar as interrup¸˜es. Enquanto as interrup¸˜es estiverem desabil- co co itadas, elas ser˜o ignoradas pelo processador. Elas n˜o s˜o perdidas, apenas a a a ficam pendentes. Quando o programa tornar a habilitar as interrup¸˜es, elas co ser˜o imediatamente atendidas pelo processador. a Interrup¸˜es de software, tamb´m chamadas de traps, s˜o causadas pela ex- co e a ecu¸˜o de uma instru¸˜o espec´ ca ca ıfica para isso. O efeito ´ semelhante a uma e chamada de sub-rotina, pois o pr´prio programa interrompido ´ quem gera a o e interrup¸˜o. O maior uso para interrup¸˜es de software ´ a implementa¸˜o ca co e ca de chamadas de sistemas, por meio das quais os programas solicitam servi¸os c ao sistema operacional. N˜o ´ poss´ desabilitar as interrup¸˜es de software, a e ıvel co mesmo porque n˜o ´ necess´rio. a e a Existe uma terceira classe de interrup¸˜es geradas pelo pr´prio processador. co o S˜o as interrup¸˜es por erro, muitas vezes chamadas de interrup¸˜es de exce¸˜o. a co co ca Elas acontecem quando o processador detecta algum tipo de erro na execu¸˜o do ca programa. Por exemplo, uma divis˜o por zero, um acesso a posi¸˜o de mem´ria a ca o inv´lido, etc. a 4.2.4 Threads Uma thread nada mais ´ que um fluxo de execu¸˜o. Na maior parte das vezes, e ca cada processo ´ formado por um conjunto de recursos mais uma unica thread. e ´ A id´ia do multithreading ´ associar v´rios fluxos de execu¸˜o (v´rias threads) e e a ca a a um unico processo. Em determinadas aplica¸˜es, ´ conveniente disparar v´rias ´ co e a ´ threads dentro de um mesmo processo (programa¸˜o concorrente). E importante cahttp://www.candidatoreal.com notar que as threads existem no interior de um processo, compartilhando entre elas os recursos de processo, como espa¸o de endere¸amento, c´digo e dados. c c o Devido a essa caracter´ ıstica, a gerˆncia de threads (cria¸˜o, destrui¸˜o, troca e ca ca de contexto, sincroniza¸˜o) ´ mais leve quando comparada com processos. O ca e chaveamento entre duas threads de um mesmo processo ´ muito mais r´pido e a que o chaveamento entre dois processos. Em fun¸˜o disso, threads s˜o muitas ca a vezes chamadas de processos leves. 48
  • 50. http://www.candidatoreal.com 4.3 Escalonamento de Processos Os mecanismos de gerenciamento de processador visam permitir que v´rios pro- a cessos compartilham o processador de forma aumentar a Utiliza¸˜o, aumentar ca o Throughput, diminuir o Tempo de Resposta e o Tempo Total de Execu¸˜o. ca Estas s˜o as principais m´tricas de desempenho de um sistema operacional no a e que diz respeito ` gerencia de processador. a Para alcan¸ar bons resultados, os sistemas operacionais empregam v´rias c a pol´ ıticas de escalonamento para determinar qual processo tomar´ posse do pro- a cessador em um determinado instante. Essas pol´ ıticas s˜o os chamados Al- a goritmos de Escalonamento. Exemplo de algoritmos de escalonamento s˜o: a First In First Out (FIFO), Prioridades, Round-Robin, Shortest Job First (SJF), M´ltiplas Filas com Realimenta¸˜o, entre outras. u ca A parte do sistema operacional respons´vel por escolher qual o processo a tomar´ posse do processador em um determinado instante ´ o Scheduller, en- a e quanto o respons´vel por entregar o processador de fato a um processo ´ o a e Dispatcher. ´ E o Dispatcher quem realiza o chaveamento de contexto, que consiste em salvar o estado dos registradores do processo que deixar´ o processador e car- a regar os registradores para o novo processo. O algoritmo FIFO ´ o mais simples e de implementa¸˜o mais f´cil. No en- e ca a tanto, n˜o ´ dos mais eficiente no quesito tempo de resposta. Caso um processo a e muito grande tome posse do processador, outros processos podem ter que es- perar um tempo muito longo at´ que possam executar. e O algoritmo Shortest Job First d´ posse do processador ao processo que a gastar´ menos tempo executando. O tempo de resposta m´dio ´ otimizado em a e e rela¸˜o ao FIFO, no entanto, essa pol´ ca ıtica n˜o pode ser implementada de forma a perfeita uma vez que n˜o ´ poss´ determinar quanto tempo um processo gas- a e ıvel tar ´ no processador na pr´xima vez em que tomar posse. Implementa¸˜es do a o co SJF estimam esse tempo utilizando informa¸˜es passadas do processo. co Os algor´ ıtimos Round-Robin consistem em dividir o tempo de processamento em fatias de tempo chamadas time slots. Cada processo na fila de prontos tem direito de executar durante um per´ıodo de tempo fixo antes de perder a possehttp://www.candidatoreal.com do processador. Um problema neste algoritmo ´ a necessidade de determinar a e fatia de tempo ideal, de forma que a impress˜o de paralelismo na execu¸˜o n˜o a ca a seja perdida. Uma fatia de tempo muito pequena,por exemplo, pode fazer com que o tempo gasto com chaveamento de contexto diminua a performance. Filas de Prioridades s˜o a base das pol´ a ıticas de escalonamento nos sistemas operacionais modernos. A cada processo ´ associada uma prioridade. O pro- e cesso de maior prioridade ´ quem toma a posse do processador no momento e oportuno. Uma variante dos algoritmos de prioridades pura, s˜o os os algo- a ritmos de Prioridade com Preemp¸˜o. Neste esquema, um processo da fila de ca prontos que tenha prioridade maior que o processo em execu¸˜o pode tomar ca 49
  • 51. http://www.candidatoreal.com posse do processador antes do processo em execu¸˜o terminar de executar. ca Na verdade, nos sistema operacionais, n˜o s´ um algoritmo de escalonamento a o ´ utilizado na gerˆncia de processador. Usualmente, esse algoritmos s˜o com- e e a binados de forma melhorar o desempenho do sistema. Algoritmos de m´ltiplas u filas com realimenta¸˜o s˜o exemplos de combina¸˜o de v´rias pol´ ca a ca a ıticas. Esses algoritmos permitem que seja dado um tratamento adequado ` um determinado a processo de acordo com o seu comportamento. Em gerˆncia de processador existem tamb´m os conceitos de execu¸˜o em e e ca Background e Foreground. Processos em background s˜o geralmente s˜o aque- a a les que est˜o rodando com uma prioridade muito baixa, necessitam de muito a pouco input e geram tamb´m um m´ e ınimo de output. Processos em foreground funcionam da forma oposta. O escalonador respons´vel por determinar qual processo receber´ o direito de a a executar ´ chamado Escalonador de Curto Prazo. Existem tamb´m os escalon- e e adores de Longo e M´dio Prazo. O escalonador de M´dio Prazo ´ parte por e e e exemplo do processo swapper e est´ intimamente ligado a gerencia de mem´ria, a o enquanto o escalonador de longo prazo determina quando um processo novo ´ ´ de fato admitido no sistema para disputa dos recursos. E o escalonador de e longo prazo quem determina o grau de multiprograma¸˜o do sistema e tamb´m ca e ´ conhecido como Job Scheduller. e 4.4 Entrada e Sa´ ıda Uma das atribui¸˜es dos sistemas operacionais ´ realizar a gerˆncia de perif´ricos, co e e e tamb´m conhecida como gerˆncia de entrada e sa´ e e ıda. Os perif´ricos s˜o dispos- e a itivos que permitem que o computador se comunique com o mundo externo. A primeira preocupa¸˜o dos sistemas operacionais no que diz respeito a gerˆncia ca e de E/S ´ a forma de comunica¸˜o que ser´ utilizada, que pode ser serial ou e ca a paralela. As trˆs formas b´sicas de se implementar o controle de perif´ricos s˜o: e a e a • E/S programada: O controle dos estado da opera¸˜o de E/S ´ feito atrav´s ca e e de loops de status. A responsabilidade ´ do programador; A t´cnica uti- e e lizar o estado da opera¸ao de E/S utilizada E/S programada ´ conhecida c˜ e como polling;http://www.candidatoreal.com • Interrup¸˜es: Os perif´ricos chamam a aten¸˜o do processador atrav´s co e ca e de um sinal de hardware. Cabe ao processador identificar, priorizar e mascarar as interrup¸˜es geradas pelos perif´ricos; co e • Acesso Direto ` Mem´ria (DMA): Em situa¸˜es em que o volume de dados a o co ´ muito grande, utiliza-se esta t´cnica para permitir que perif´ricos tenham e e e acesso direto a mem´ria sem a necessidade da intermedia¸˜o por parte do o ca processador. O localiza¸˜o dos perif´ricos do ponto de vista da arquitetura do sistema ca e pode ser feita de basicamente de duas maneiras: Mapeamento em Mem´ria eo 50
  • 52. http://www.candidatoreal.com Espa¸o de E/S. Os drivers de dispositivos consistem em uma camada superior c ao hardware e tˆm por objetivo esconder as diferen¸as entre dispositivos de e c mesmo tipo. Existe tamb´m a necessidade de se empregar t´cnicas de escalonamento de e e E/S de forma otimizar o atendimento das requisi¸˜es feitas aos perif´ricos. Nos co e discos magn´ticos, por exemplo, s˜o utilizados algoritmos de escalonamento e a como: • FCFS: First Come Fisrt Served. Atende as requisi¸˜es na ordem de co chegada; • SSTF: Shortest Seek Time First. Atende primeiro as requisi¸˜es que ne- co cessitam de menor tempo de seek (seek time ´ o tempo necess´rio para e a mover o cabe¸ote para a trilha adequada); c • SLTF: Shortest Latency Time First. Atende primeiro as requisi¸˜es de co menor latˆncia (latˆncia ´ o tempo necess´rio para localizar um setor e e e a dentro de uma trilha do disco. Diretamente relacionado com a velocidade de rota¸˜o do disco.); ca • Scan: Varre o disco na dire¸˜o radial atendendo requisi¸˜es. S´ atende ca co o requisi¸˜es em um sentido; co • CScan: Similar ao Scan, por´m atende requisi¸˜es na subida e na descida. e co Al´m de pol´ e ıticas de escalonamento de E/S, tamb´m s˜o utilizadas t´cnicas e a e de Buffer e Cache para aumentar o desempenho. A t´cnica empregada para e realizar a aloca¸˜o e libera¸˜o de recursos ´ conhecida como Spooling. A gerˆncia ca ca e e de perif´ricos tamb´m se responsabiliza pelo controle de acesso aos perif´ricos e e e e tratamentos de erros. 4.4.1 Camadas do subsistema de Entrada e Sa´ ıda O objetivo do subsistema de entrada e sa´ ´ padronizar ao m´ximo as rotinas ıda e a de acesso aos perif´ricos de forma a reduzir o n´mero de rotinas de entrada e e u sa´ ıda. Para isso, o subsistema de entrada e sa´ ´ organizado em uma estrutura ıda e de quatro camadas: hardware dos dispositivos de entrada e sa´ ıda, os drivers, a E/S independente de dispositivo e E/S n´ ıvel de usu´rio. A figura 4.3 mostra a essas camadas.http://www.candidatoreal.com A camada inferior de software (drivers) ´ composta por um conjunto de e m´dulos de software implementados para fornecer os mecanismos de acesso a o um dispositivo de entrada e sa´ espec´ ıda ıfico. A camada de software de E/S independente do dispositivo implementa procedimentos e fun¸˜es gerais a todos co os dispositivos de entrada e sa´ como: escalonamento de E/S, denomina¸˜o, ıda ca bufferiza¸˜o, cache de dados, aloca¸˜o e libera¸˜o, direitos de acesso e tratamen- ca ca ca tos de erro. A E/S n´ de usu´rio ´ uma interface de programa¸˜o associada ıvel a e ca a `s bibliotecas de entrada e sa´ ´ ıda, ou aplicativos de desenvolvimento. E impor- tante notar que as bibliotecas de entrada e sa´ n˜o fazem parte do sistema ıda a operacional. 51
  • 53. http://www.candidatoreal.com Figura 4.3: Camadas do Subsistema de E/S 4.5 Gerˆncia de Mem´ria e o Umas das fun¸˜es fundamentais de um sistema operacional moderno ´ realizar a co e gerencia da mem´ria principal do computador de forma permitir que os diversos o processos executem de forma eficiente e protegida. Quando o assunto ´ gerˆncia e e de mem´ria, dois conceitos b´sicos s˜o os de mem´ria l´gica e mem´ria f´ o a a o o o ısica. Os programas fazem referˆncia ` endere¸os l´gicos que no momento da execu¸˜o s˜o e a c o ca a traduzidos em um endere¸o real chamado endere¸o f´ c c ısico. As primeiras t´cnicas e de tradu¸˜o de endere¸os eram baseadas em registradores de base e limites. ca c Nos sistemas multiprogramados, ´ necess´rio tamb´m implementar t´cnicas e a e e para que os diversos programas possam utilizar a mem´ria ao mesmo tempo. Ini- o cialmente, a mem´ria era dividida em parti¸˜es de tamanho fixo. Dois problemas o co decorrentes desta t´cnica s˜o conhecidos como Fragmenta¸˜o Interna e a Frag- e a ca menta¸˜o Externa. A fragmenta¸˜o interna ocorre quando um programa aloca ca ca uma parti¸˜o de mem´ria que excede a quantidade necess´ria. O espa¸o exce- ca o a c dente naquela parti¸˜o ´ desperdi¸ado. A fragmenta¸˜o externa ocorre quando ca e c ca apesar da quantidade total de mem´ria ser suficiente, n˜o existe uma parti¸˜o o a ca cont´ ıgua capaz de atender as necessidades de um programa. Para solucionar o problema da fragmenta¸˜o interna, foi criado o mecanismo ca de particionamento dinˆmico, no qual um programa aloca somente a quantidade a exata de mem´ria. No entanto, esse m´todo aumenta a fragmenta¸˜o externa o e ca uma vez que permite o aparecimento de lacunas pequenas demais para serem utilizadas por algum programa. Neste m´todo de particionamento s˜o utilizadas e a v´rias t´cnicas de preenchimento de lacunas. Exemplos s˜o: First-Fit, Best-Fit, a e ahttp://www.candidatoreal.com Worst-Fit e Circular-Fit. Para evitar o aparecimento de lacunas muito peque- nas, foi criada uma t´cnica chamada Par´grafo, que consiste em determinar a e a menor unidade de aloca¸˜o de mem´ria. ca o Todas as t´cnicas apresentadas at´ aqui levam em considera¸˜o o fato de e e ca que os programas devem ocupar ´reas cont´ a ıguas de mem´ria. Os sistema op- o eracionais modernos supriram esta necessidade atrav´s da t´cnica de Pagina¸˜o. e e ca Aqui aparecem os conceitos de p´ginas l´gicas e p´ginas f´ a o a ısicas, semelhantes aos de endere¸os l´gicos e f´ c o ısicos. Neste contexto, o endere¸o l´gico ´ formado c o e 52
  • 54. http://www.candidatoreal.com por duas partes que s˜o o n´mero da p´gina mais o deslocamento dentro dela. a u a Existe tamb´m a necessidade de traduzir uma p´gina l´gica em uma p´gina e a o a f´ ısica. A Tabela de P´ginas ´ a respons´vel por essa tarefa. Existem v´rias a e a a formas de implement´-la. a A primeira preocupa¸˜o ´ onde armazenar a tabela de p´ginas. Em sistemas ca e a com tabelas muito pequenas, as tabelas de p´ginas podem ser armazenadas a em registradores, no entanto, em geral a tabela de p´ginas ´ armazenada na a e pr´pria mem´ria principal utilizando registradores (PTBR e PTBL) para in- o o dicar a posi¸˜o da tabela na mem´ria. Um problema inerente a esta t´cnica ca o e ´ a necessidade de se acessar a mem´ria duas vezes quando se deseja ler um e o dado. Um acesso a tabela de p´ginas e outra ao dado em si. Para minimizar a este problema ´ utilizado um mecanismo chamado Translation LookAside Buffer e (TLB). O TLB consiste em uma mem´ria de r´pido acesso que armazena partes o a da tabela de p´ginas. Quando a tradu¸˜o de uma pagina l´gica em uma p´gina a ca o a f´ ısica ´ poss´ e ıvel utilizando apenas o TLB, ´ dito que ocorreu um HIT, caso e contr´rio dizemos que ocorreu um MISS. a A t´cnica de Segmenta¸˜o ´ utilizada para implementar a prote¸˜o de en- e ca e ca dere¸os de mem´ria utilizados por um processo. Usualmente isso ´ feito atrav´s c o e e de registradores de limite. Quando um processo tenta acessar uma regi˜o de a mem´ria protegida ocorre uma falha de segmenta¸˜o (Segmentation Fault). Esta o ca t´cnica n˜o deve ser confundida com a t´cnica de segmenta¸˜o de mem´ria pre- e a e ca o sente em algumas arquiteturas, onde a mem´ria ´ dividida em partes como o e Segmento de Dados, Segmento de C´digo, Pilha etc. o O Swapping ´ uma outra t´cnica utilizada para gerenciamento de mem´ria. e e o Nesta t´cnica, um processo ´ suspenso e todas suas p´ginas de mem´ria s˜o e e a o a descarregadas para o disco (swap-out), liberando a mem´ria para que algum o outro processo possa executar. Quando processo suspenso pode voltar para mem´ria, as p´ginas do processo s˜o novamente carregadas para a mem´ria o a a o (swap-in). O swapper ´ respons´vel pelo swap-in e swap-out. e a Na t´cnica de pagina¸˜o pura, o processo n˜o precisa mais ocupar um tre- e ca a cho cont´ıguo de mem´ria, no entanto, ainda ´ necess´rio que todas as p´gina o e a a de um processo estejam carregadas na mem´ria no momento da execu¸˜o. Uma o ca evolu¸˜o do esquema de pagina¸˜o ´ a t´cnica de Mem´ria Virtual. Mem´ria ca ca e e o o Virtual consiste em um esquema de pagina¸˜o sob demanda, no qual somente ca as p´ginas necess´rias para a execu¸˜o de um processo s˜o carregadas para a a a ca ahttp://www.candidatoreal.com mem´ria. o Al´m de aumentar o desempenho do sistema, esta t´cnica permite que ex- e e istam programas com espa¸o de endere¸amento l´gico maiores. Para indicar c c o se uma p´gina se encontra ou n˜o carregada na mem´ria em um determinado a a o instante, ´ utilizado um bit adicional para cada entrada da tabela. Quando um e processo tenta acessar uma p´gina que n˜o est´ carregada na mem´ria ´ dito a a a o e que ocorreu um page-fault. O processo ´ ent˜o suspenso e at´ que esteja pronto e a e para executar novamente ocorre a seguinte seq¨ˆncia de eventos: ue 53
  • 55. http://www.candidatoreal.com 1. Aloca¸˜o de uma p´gina f´ ca a ısica; 2. Localiza¸˜o da P´gina F´ ca a ısica no Disco; 3. Leitura da P´gina no Disco; a 4. Atualiza¸˜o da Tabela de P´ginas; ca a 5. Processo vai para fila de pronto. O respons´vel por carregar a p´gina solicitada ´ o pager. Para carregar a a e uma nova p´gina l´gica para mem´ria muitas vezes ´ necess´rio descarregar a o o e a uma p´gina para o disco. Os algoritmos de substitui¸˜o de p´ginas s˜o os a ca a a respons´veis por decidir qual p´gina ser´ escolhida para deixar a mem´ria. Ex- a a a o emplos de algoritmos de substitui¸˜o de p´gina s˜o: ca a a • FCFS: Escolhe a p´gina que est´ a mais tempo na mem´ria; a a o ´ • Otimo: Escolhe a p´gina que vai ser acessada mais remotamente no futuro a (n˜o ´ implement´vel); a e a • LRU: Escolhe a que a mais tempo n˜o ´ acessada (obs: algoritmo imple- a e mentado por hist´rico de bits); o • Second Chance: Organiza p´ginas em forma de um fila circular e utiliza a bits de controle. O Trashing ´ a situa¸˜o em que um processo possui poucas p´ginas f´ e ca a ısicas e o tempo gasto em page-faults ´ muito alto, predominando no tempo total de e processamento. Uma forma de solucionar este problema ´ utilizar a t´cnica de e e swap para permitir que o processo possa executar de forma satisfat´ria. o 4.6 Sistemas de Arquivos O sistema de arquivos ´ a parte do sistema operacional mais vis´ e ıvel para os usu´rios. Durante todo tempo, os usu´rios manipulam arquivos contento tex- a a tos, planilhas, desenhos, figuras, jogos e etc. Este fato exige que o sistema operacional apresente uma interface coerente e simples. Para isso, o sistema de arquivos implementa o conceito de arquivo e diret´rio. ohttp://www.candidatoreal.com 4.6.1 Conceitos b´sicos sobre arquivos a Um arquivo ´ um recipiente no qual dados s˜o armazenados. Em geral, cada e a arquivo cont´m um conjunto de dados que possui algum significado pr´tico para e a o usu´rio ou para o sistema. Um arquivo pode conter um programa execut´vel, a a um m´dulo de um programa fonte, um texto, uma figura, etc. Cada arquivo ´ o e identificado por um nome, o qual permite que o usu´rio fa¸a referˆncias a ele. a c e Al´m do nome, cada arquivo possui uma s´rie de outros atributos que s˜o man- e e a tidos pelo sistema operacional como tipo de conte´do, tamanho, data e hora u do ultimo acesso, data e hora da ultima altera¸˜o, lista de usu´rios que podem ´ ´ ca a 54
  • 56. http://www.candidatoreal.com acessar o arquivo, etc. Em geral, o sistema operacional suporta diversas opera¸˜es sobre os arquivos, co como cria¸˜o e destrui¸˜o do arquivo, leitura e altera¸˜o do conte´do, troca de ca ca ca u nome do arquivo, etc. Essas opera¸˜es correspondem a chamadas de sistema co que os programas de usu´rio podem usar para manipular os arquivos. a Em sistemas multiusu´rios, ´ importante controlar o acesso aos arquivos. a e Sistemas operacionais multiusu´rios implementam mecanismos que permitem a controlar quais os usu´rios podem fazer o que em quais arquivos. a O controle de acesso inicia com a identifica¸˜o dos usu´rios por meio de um ca a c´digo de usu´rio e uma senha. A partir do momento que a identifica¸˜o do o a ca usu´rio ´ aceita, todos os processos disparados a partir do terminal em quest˜o a e a a ´ passam a ter os direitos de acesso associados com aquele usu´rio. E poss´ ıvel associar a cada arquivo uma lista de usu´rios e direitos de acesso. A forma a usual ´ permitir que apenas o usu´rio que criou o arquivo possa alterar a lista e a contendo os direitos de acesso do arquivo. A forma como os dados s˜o dispostos dentro de um arquivo determina sua a estrutura interna. Cada tipo de arquivo possui uma estrutura interna apropri- ada para a sua finalidade. Por exemplo, arquivos de texto s˜o organizados em a linha ou par´grafos. Arquivos que contˆm programas execut´veis s˜o organiza- a e a a dos em termos de segmento de c´digo e segmentos de dados. o Em geral, os sistemas operacionais ignoram a estrutura interna dos arquivos. Para o sistema operacional, cada arquivo corresponde a uma seq¨ˆncia de bytes, ue cujo significado ´ conhecido pelo usu´rio que o criou. A unica exce¸˜o s˜o os e a ´ ca a arquivos que contˆm programas execut´veis. Nesse caso, a estrutura interna ´ e a e definida pelo pr´prio sistema operacional. Como o conceito de tipo de arquivo ´ o e util para os usu´rios, muitos sistemas operacionais suportam nomes de arquivos ´ a onde o tipo ´ indicado. A forma usual ´ acrescentar extens˜o de nome que e e a identifique o tipo de arquivo em quest˜o.a O m´todo de acesso diz respeito ` forma como o conte´do de um arquivo e a u ´ acessado. O m´todo de acesso mais simples ´ o seq¨encial. Este m´todo ´ e e e u e e usado pelos compiladores, para a impress˜o de um arquivo, etc. Outro m´todo a e de acesso ´ o acesso relativo. Neste m´todo, o programa inclui na chamada de e e sistema qual posi¸˜o do arquivo a ser lida. As posi¸˜es do arquivo s˜o numer- ca co ahttp://www.candidatoreal.com adas a partir de 0 (ou a partir de 1 em alguns sistemas), sendo que cada posi¸˜o ca corresponde a um byte. Em muitos sistemas operacionais, existe o conceito de posi¸˜o corrente no ca arquivo. Nesse caso, a chamada de sistema para leitura ou escrita n˜o informa a uma posi¸˜o. Essa sempre acontece a partir da posi¸˜o corrente. O sistema op- ca ca eracional tamb´m permite que o programa altere a posi¸˜o corrente do arquivo e ca por meio de uma chamada de sistema. Existem outros m´todos de acesso mais sofisticados, tais como seq¨encial e u indexado, indexado, direto, etc. Tais m´todos de acesso s˜o implementados a e a 55
  • 57. http://www.candidatoreal.com partir dos m´todos seq¨encial e relativo. e u 4.6.2 Implementa¸˜o de arquivos ca A forma b´sica de implementar arquivos ´ criar, para cada arquivo no sistema, a e um descritor de arquivo. O descritor de arquivo ´ um registro no qual s˜o e a mantidas as informa¸˜es a respeito do arquivo. Essas informa¸˜es incluem os co co seus atributos, al´m de outros dados que n˜o s˜o vis´ e a a ıveis aos usu´rios, mas s˜o a a necess´rios para o que o sistema operacional implemente as opera¸˜es sobre os a co arquivos. Um descritor de arquivo cont´m as seguintes informa¸˜es: nome do arquivo, e co extens˜o do nome do arquivo, tamanho em byte, data e hora do ultimo acesso, a ´ data e hora da ultima altera¸ao, identifica¸˜o do usu´rio que criou o arquivo, lo- ´ c˜ ca a cal no disco onde o conte´do do arquivo foi alocado, etc. A forma usual ´ manter u e o descritor de um arquivo na mesma parti¸˜o onde est´ o seu conte´do. Dessa ca a u forma, esse disco poder´ ser at´ mesmo fisicamente removido de um computador a e e conectado a outro. Os arquivos nele poder˜o ser acessados normalmente no a novo computador. O descritor ´ acessado a cada opera¸˜o de escrita ou leitura para determinar e ca a localiza¸˜o no disco dos dados a serem escritos ou lidos. Para tornar mais ca r´pido o acesso aos arquivos, o sistema de arquivos mant´m na mem´ria uma a e o tabela contendo todos os descritores dos arquivos em uso. Quando um arquivo entra em uso, o seu descritor ´ copiado do disco para a mem´ria. Quando o ar- e o quivo deixa de ser usado, o seu descritor em mem´ria pode ter sido alterado em o rela¸˜o ` c´pia do descritor em disco. Nesse caso, o sistema de arquivos escreve ca a o o descritor atualizado que est´ na mem´ria sobre a c´pia original do descritor a o o em disco. A maioria dos sistemas operacionais exige que os pr´prios programas o informem quando um arquivo entra em uso e quando ele n˜o ´ mais necess´rio. a e a Para tanto, existem as chamadas de sistema open e close. Tamb´m ´ util passar e e´ como parˆmetro o tipo de acesso que ser´ feito, isto ´, leitura (READONLY ou a a e RD) ou leitura e escrita (READWRITE ou RW). O sistema de arquivos utiliza uma Tabela de Descritores de Arquivos Aber- tos (TDAA) para manter em mem´ria os descritores dos arquivos abertos. A o TDAA mant´m informa¸˜es relativas aos arquivos abertos por todos os proces- e co sos no sistema. Isso ´ necess´rio porque normalmente ´ permitido que v´rios e a e ahttp://www.candidatoreal.com processos abram um mesmo arquivo simultaneamente. Cada entrada armazena uma c´pia do descritor do arquivo mantido em disco, assim como algumas in- o forma¸˜es adicionais, necess´rias apenas enquanto o arquivo est´ aberto. Por co a a exemplo, n´mero de processos utilizando o arquivo no momento. u As entradas da TDAA armazenam informa¸˜es que n˜o variam conforme co a o processo que est´ acessando o arquivo. Entretanto, existem informa¸˜es di- a co retamente associadas com o processo que acessa o arquivo. Essas informa¸˜esco n˜o podem ser mantidas na TDAA, pois como v´rios processos podem aces- a a sar o mesmo arquivo, elas possuir˜o um valor diferente para cada processo. Um a exemplo de informa¸˜o que depende do processo ´ a posi¸˜o corrente no arquivo. ca e ca 56
  • 58. http://www.candidatoreal.com Uma solu¸˜o t´ ca ıpica ´ criar, para cada processo, uma Tabela de Arquivos e Abertos por Processo (TAAP). Cada entrada ocupada na TAAP corresponde a um arquivo aberto pelo processo correspondente. No m´ ınimo, a TAAP cont´m e em cada entrada as seguintes informa¸˜es: posi¸˜o corrente no arquivo, tipo de co ca acesso (leitura ou leitura e escrita) e apontador para a entrada correspondente na TDAA. A figura 4.4 mostra as tabelas TDAA e TAAP. Toda TDAA como as TAAP devem ficar na mem´ria do sistema operacional, fora do acesso dos o processos de usu´rio. a Figura 4.4: TAAP vs. TDAA Uma vez aberto um arquivo, o processo utiliza chamadas de sistema com read e write para acessar o seu conte´do. N˜o ´ necess´rio, nem conveniente, u a e a que a cada chamada de sistema, o processo forne¸a novamente o nome do ar- c quivo. Como resultado de um open com sucesso, o sistema de arquivos retorna para o processo o n´mero da entrada na TAAP associada com o arquivo aberto. u Dessa forma, nas chamadas de sistemas ap´s o open, o processo indica o ar- o quivo atrav´s do n´mero de sua correspondente entrada na TAAP. A partir da e u TAAP, o sistema de arquivos pode imediatamente localizar o descritor no ar- quivo TDAA. Muitos sistemas operacionais chamam esse n´mero de handle do u arquivo. Existem duas fun¸˜es importantes que o sistema de arquivos deve realizar co na implementa¸˜o das chamadas de sistema read e write. S˜o elas a montagem ca a e desmontagem de blocos l´gicos e a localiza¸˜o dos blocos l´gicos no disco. Es- o ca ohttp://www.candidatoreal.com sas fun¸˜es s˜o implementadas baseando-se em trˆs formas b´sicas de aloca¸˜o co a e a ca de arquivos: aloca¸˜o com ´reas cont´ ca a ıguas, aloca¸˜o encadeada e a aloca¸˜o ca ca indexada. 4.6.3 Cache de Sistema de Arquivos Uma importante estrutura de dados presente na implementa¸˜o de um sistema ca de arquivos ´ a sua cache. A cache n˜o oferece nenhuma funcionalidade nova, e a isto ´, a presen¸a ou ausˆncia de uma cache n˜o adiciona ou elimina nenhuma e c e a 57
  • 59. http://www.candidatoreal.com fun¸˜o, chamada de sistema ou opera¸˜o sobre arquivos. Entretanto, caches rep- ca ca resentam um grande aumento no desempenho de qualquer sistema de arquivos, pois o uso do disco tente a ser intenso em sistemas operacionais de prop´sito o gerais. O objetivo do cache ´ manter na mem´ria principal uma certa quanti- e o dade de blocos do disco. Dessa forma, se algum bloco for requisitado para leitura ou escrita, ele ser´ encontrado na mem´ria principal, evitando o acesso ao disco. a o A cache do sistema de arquivos utiliza uma ´rea da mem´ria principal e ´ a o e controlada pelo sistema operacional. Na verdade, existem diversos locais onde ´ uma cache de disco pode ser mantida. E poss´ haver uma cache global, uma ıvel cache exclusiva para cada sistema de arquivos, etc. A forma b´sica de opera¸ao ´ bem simples. Toda vez que um bloco de disco a c˜ e ´ necess´rio para leitura e/ou escrita, a cache ´ pesquisada. Se o bloco estiver e a e na cache, essa c´pia ´ usada. Se o bloco n˜o estiver na cache, ele ´ lido do disco, o e a e colocado na cache e ent˜o utilizado. a Uma quest˜o importante ´ quando atualizar o disco ap´s um bloco presente a e o na cache ter sido alterado. Do ponto de vista de desempenho, o ideal ´ poster- e gar a atualiza¸˜o do disco ao m´ximo no sentido de minimizar as escritas em ca a disco. Por outro lado, caso ocorra uma pane do sistema, toda a informa¸˜o na ca cache ser´ perdida, o disco ficar´ desatualizado e, possivelmente, o sistema de a a arquivos ficar´ corrompido. Existem diversas pol´ a ıticas que podem ser utilizadas. Uma cache de sistema de arquivo pode possuir milhares de blocos, o que torna invi´vel uma pesquisa seq¨encial da mesma para localizar determinado a u bloco. Dada a natureza dinˆmica dessa estrutura e sua importˆncia para o de- a a sempenho do sistema como um todo, uma tabela hash ´ utilizada. O sistema de e arquivos fornece o n´mero da parti¸˜o e o n´mero do bloco, e uma fun¸˜o hash ´ u ca u ca e utilizada para determinar o endere¸o do bloco na cache, caso ele esteja na cache. c Eventualmente, a cache pode se encontrar completamente ocupada, sendo necess´rio liberar espa¸o para algum outro bloco. A solu¸˜o t´ a c ca ıpica ´ escolher e um bloco da cache, atualizar o seu conte´do no disco se necess´rio, declarar esse u a bloco da cache como livre e utiliz´-lo para hospedar um novo bloco de disco. A a pol´ ıtica para escolher o bloco da cache a ser liberado geralmente ´ a LRU (Least e Recently Used ).http://www.candidatoreal.com 4.6.4 Gerenciamento do espa¸o livre c Uma das tarefas do sistema de arquivos ´ gerenciar o espa¸o livre nos discos. e c Em outras palavras, determinar quais setores do disco est˜o livres e podem a ser alocados para aumentar o tamanho de um arquivo. Uma forma simples de gerenciar o espa¸o livre em disco ´ por meio de um mapa de bits. A figura 4.5 c e mostra esse mecanismo. Cada bit presente no mapa representa um bloco f´ısico do disco. Os bits s˜o a considerados numerados da direita para esquerda, isto ´, o bit menos significa- e tivo do primeiro byte ´ o bit n´mero zero. Bit ligado indica bloco ocupado, e u 58
  • 60. http://www.candidatoreal.com Figura 4.5: Mapa de bits para gerenciamento de espa¸o livre c e bit desligado indica bloco livre. O endere¸o do bloco representado por um c determinado bit ´ definido pela pr´pria posi¸˜o do bit dentro do mapa. e o ca Para alocar mais um bloco f´ ısico para um arquivo, basta percorrer o mapa de bits at´ encontrar um bit zero. O bit ´ ent˜o ligado para indicar que o e e a respectivo bloco agora est´ ocupado. Quando um arquivo ´ destru´ e seus a e ıdo blocos liberados, basta desligar os bits correspondentes. O mapa de bits deve ser mantido na mem´ria principal para que a busca seja r´pida. o a O espa¸o livre em disco tamb´m pode ser gerenciado por meio de uma lista c e contendo os n´meros de todos os blocos f´ u ısicos livres (Lista de Blocos Livres). Como essa lista ´ grande no caso de um disco quase vazio, ela deve ser mantida e no pr´prio disco. Para acelerar o processo de aloca¸˜o e libera¸˜o de blocos o ca ca f´ ısicos, alguns blocos da lista s˜o copiados para a mem´ria principal. Logo, so- a o mente ser´ necess´rio acessar o disco quando todos os endere¸os de blocos livres a a c copiados para a mem´ria principal tiverem sido alocados. Ou ainda, quando o remo¸˜es de arquivos liberarem blocos f´ co ısicos em tal quantidade que alguns blo- cos de endere¸os tenham que ser escritos em disco. Alguns sistemas operacionais c atualizam periodicamente a lista de endere¸os em disco para minimizar a cor- c rup¸˜o do sistema de arquivos em caso de falha no computador. ca 4.6.5 Diret´rios ohttp://www.candidatoreal.com Os diret´rios s˜o as estruturas do sistema de arquivos que contˆm a informa¸˜o o a e ca quais arquivos existem no disco. Um diret´rio pode ser entendido como sendo o um conjunto de arquivos ou um conjunto de referˆncias a arquivos. Existem e diversas formas de estruturar os diret´rios de um sistema. A mais simples ´ ter o e um unico diret´rio para o disco inteiro. Nesse caso, o diret´rio corresponde a ´ o o uma lista de todos os (possivelmente milhares) arquivos do disco. Essa solu¸˜o, ca conhecida como diret´rio linear, ´ aceit´vel apenas para sistemas de arquivo o e a muito pequenos. Por exemplo, pode ser utilizada para discos flex´ ıveis de pe- quena capacidade. 59
  • 61. http://www.candidatoreal.com Para sistemas multiusu´rios, o diret´rio linear ´ problem´tico, pois os ar- a o e a quivos de diferentes usu´rios ficam misturados. Esse problema pode ser re- a solvido com uma estrutura de diret´rios organizada em dois n´ o ıveis. O diret´rio o principal cont´m uma entrada para cada usu´rio do sistema. Essa entrada n˜o e a a corresponde a um arquivo, mas sim a um subdiret´rio que, por sua vez, cont´m o e os arquivos do usu´rio correspondente. Tamb´m ´ necess´rio criar no diret´rio a e e a o principal uma entrada para conter os arquivos do sistema. As entradas do di- ret´rio principal s˜o usualmente chamadas de subdiret´rios. o a o ´ E poss´ estender o conceito de subdiret´rios de tal forma que os usu´rios ıvel o a tamb´m possam criar livremente os seus pr´prios subdiret´rios. Dessa forma, e o o cada usu´rio tem a liberdade de organizar os seus arquivos de forma lhe for a mais conveniente. O resultado ´ um sistema de diret´rios organizado na forma e o de ´rvore conforme a figura 4.6. a Figura 4.6: Diret´rio organizado em forma de ´rvore o a Em um sistema de diret´rios organizado na forma de ´rvore, qualquer ar- o a quivo ou subdiret´rio pode ser identificado de forma n˜o amb´ o a ıgua por meio do caminho (pathname) para atingi-lo a partir da raiz da ´rvore. Facilmente, a a ´rvore de diret´rio cresce at´ uma altura tal que passa a ser desconfort´vel a o e a fornecer sempre o caminho completo at´ cada arquivo ou diret´rio. O conceito e o de diret´rio corrente facilita a identifica¸˜o de arquivos nesse contexto. Dessa o ca forma, um arquivo pode ser identificado por seu caminho absoluto, que inicia a raiz da ´rvore, ou pelo seu caminho relativo, que inicia no diret´rio corrente do a ohttp://www.candidatoreal.com usu´rio em quest˜o. a a Uma flexibilidade adicional presente em muitos sistemas operacionais est´ a na possibilidade de incluir o mesmo arquivo ou subdiret´rio em v´rios diret´rios. o a o Dessa forma, o mesmo arquivo passa a ter diversos nomes absolutos (mesmo na a ´rvore, cada arquivo possui diversos nomes relativos, uma vez que o caminho relativo depende do diret´rio corrente em quest˜o. Essa facilidade ´ denomi- o a e nada de link e efetivamente transforma a estrutura de diret´rios em um grafo. o 60
  • 62. http://www.candidatoreal.com 4.6.6 Implementa¸˜o de diret´rios ca o A forma mais simples de implementar diret´rios ´ consider´-lo como arquivos o e a especiais, cujo conte´do ´ manipulado pelo pr´prio sistema operacional. Dessa u e o forma, todo o mecanismo de aloca¸˜o, libera¸˜o e localiza¸˜o de blocos f´ ca ca ca ısicos no disco, dispon´ para arquivos, tamb´m ´ usado para os diret´rios. Diret´rios ıvel e e o o passam a ser arquivos cujo conte´do ´ definido pelo sistema operacional e cujo u e acesso ´ controlado por parte do usu´rio. e a Como diret´rios s˜o implementados como arquivos, cada diret´rio possui o a o tamb´m seu descritor. Os diret´rios s˜o implementados como conjunto de de- e o a scritores de arquivos, ou conjuntos de endere¸os de descritores de arquivos. c Quando diret´rios s˜o implementados como conjunto de descritores de arquivos, o a o conte´do de um diret´rio corresponde aos descritores dos arquivos e dos sub- u o diret´rios contidos naquele diret´rio, conforme a figura 4.7. Nesse caso, o nome o o do arquivo ou subdiret´rio faz parte do seu descritor. o Figura 4.7: Diret´rios contendo descritores de arquivos o Outra possibilidade ´ separar um conjunto de blocos da parti¸˜o para ar- e ca mazenar exclusivamente os descritores de arquivos e de subdiret´rios. Esse o conjunto de blocos forma um vetor de descritores, no qual cada descritor pode ser identificado pelo n´mero da parti¸˜o e pela posi¸˜o nesse vetor. Essa estru- u ca ca tura de dados forma o que ´ normalmente conhecido como um flat file system, e pois os descritores n˜o incluem nomes, n˜o existe nenhuma estrutura¸˜o dos ar- a a ca quivos em diret´rios, apenas um diret´rio unico (vetor) e arquivos identificados o o ´ pela posi¸˜o do vetor. cahttp://www.candidatoreal.com Em qualquer solu¸˜o, cada diret´rio nada mais ´ que uma tabela. Existem ca o e diversas implementa¸˜es poss´ co ıveis para tabelas que podem ser usadas na im- plementa¸˜o de um diret´rio. Entre elas, destaca-se a lista n˜o ordenada, lista ca o a ordenada e a tabela hash. 4.7 Sistemas Operacionais Distribu´ ıdos Um sistema distribu´ ´ uma cole¸˜o de computadores independentes que pare- ıdo e ca cem ao usu´rio como um unico computador. Essa defini¸˜o implica hardware a ´ ca 61
  • 63. http://www.candidatoreal.com formado por m´quinas autˆnomas e software fornecendo a abstra¸˜o de uma a o ca m´quina unica. As principais vantagens s˜o: a ´ a • Econˆmicas: aproveitar m´quinas potencialmente ociosas; mais barato o a v´rios processadores interconectados do que um supercomputador. a • Distribui¸˜o inerente: algumas aplica¸˜es s˜o distribu´ ca co a ıdas por natureza. • Tolerˆncia a falhas: em caso de falha de uma m´quina, o sistema como a a um todo pode sobreviver, apresentando apenas uma degrada¸˜o de de- ca sempenho. • Crescimento incremental: o poder computacional pode ser aumentado atrav´s da inclus˜o de novos equipamentos. e a • Flexibilidade: sistemas distribu´ ıdos s˜o mais flex´ a ıveis do que m´quinas a isoladas, por isso muitas vezes s˜o utilizados at´ mesmo que n˜o se es- a e a ´ teja buscando desempenho. E essa flexibilidade que permite que v´riosa usu´rios compartilhem dados e perif´ricos. a e E as desvantagens: • Pouco software de alto n´ dispon´ para sistemas distribu´ ıvel ıvel ıdos. • Dificuldades para evitar acesso indevido (seguran¸a). c • A rede de interconex˜o pode causar problemas ou n˜o dar vaz˜o a de- a a a manda. Sistemas distribu´ ıdos consistem de v´rias CPUs interconectadas. No en- a tanto, h´ v´rias formas diferentes no qual esse hardware pode estar organizado. a a Dentre as v´rias classifica¸˜es existentes, Flynn prop˜e uma taxonomia con- a co o siderando o n´mero de fluxo de instru¸˜es e o n´mero de fluxo de dados. u co u • SISD(Single Instruction Single Data): fluxo de instru¸˜es e dados unico ´ co ´ e a caracter´ ıstica dos uniprocessadores tradicionais • MIMD(Multiple Instructions Multiple Data): caracteriza-se por v´rios a processadores interconectados. Tanembaum apresenta a seguinte subclas- sifica¸˜o, onde os dois primeiros s˜o definidos em rela¸˜o a organiza¸˜o da ca a ca ca mem´ria e os dois ultimos em rela¸˜o a forma de interconex˜o: o ´ ca a – Multiprocessador: m´quinas MIMD com mem´ria compartilhada (um a ohttp://www.candidatoreal.com unico espa¸o de endere¸amento virtual compartilhado por todas as ´ c c CPUs). – Multicomputador: m´quinas que n˜o possuem mem´ria compartil- a a o hada, isto ´, cada processador possui sua mem´ria privada. e o – Barramento: um unico cabo, rede, barramento ou outro meio que ´ conecte todas as m´quinas. Analogia: TV a cabo. a – Switch: existem cabos individuais conectando m´quina a m´quina, a a com v´rios padr˜es poss´ a o ıveis. 62
  • 64. http://www.candidatoreal.com Outra classifica¸˜o: Fortemente acoplado(Tightly Coupled): comunica¸˜o ca ca r´pida entre os processadores (grande n´mero de bits por segundo). Fracamente a u acoplado(Loosely Coupled): atraso para troca de mensagem entre m´quinas ´ a e alto. Com a cria¸˜o de novas arquiteturas de computadores, surgiram novas de- ca mandas de software e, em especial, novas fun¸˜es exigidas ao S.O. Pode-se con- co siderar como uma boa classifica¸˜o da evolu¸˜o dos Sistemas Operacionais a ca ca tabela abaixo. A tabela 4.1 apresenta uma compara¸˜o entre as caracter´ ca ısticas dos S.O modernos Gera¸˜o ca Sistema Caracter´ ıstica Objetivo 1a SO Centralizado Gerenciamento de Processos Gerenciamento de Gerenciamento de Mem´ria o recursos Gerenciamento de E/S Mem´ria estendida o Gerenciamento de Arquivos Virtualidade 2a SO de Rede Acesso Remoto Compartilhamento de Troca de Informa¸˜es co recursos Navega¸˜o na rede ca Interoperabilidade 3a SO Distribu´ ıdo Vis˜o global do Sistema de a Vis˜o de computador a arquivos, ´ Unico em sistema Espa¸o de nomes c de M´ltiplos u Tempo, Seguran¸a c Computadores Poder Computacional Transparˆncia e 4a SO Cooperativo Aplica¸˜es Distribu´ co ıdas Trabalho cooperativo Autˆnomo o Abertas e Cooperativas Autonomia Tabela 4.1: Sistemas Operacionais 4.7.1 Estrutura¸˜o de Sistemas Distribu´ ca ıdos Estrutura¸˜o baseada na distribui¸˜o f´ ca ca ısica Dentre os v´rios modelos baseados da distribui¸˜o f´ a ca ısica, encontram-se o modelo hier´rquico, o do cache de CPU, o usu´rio servidor e o modelo de conjunto de a a processadores. No modelo hier´rquico, os computadores s˜o dispostos em uma rede sob a a a forma de ´rvore, de maneira que quanto mais pr´ximos estiverem da raiz, mais a o potentes dever˜o ser. O computador da raiz tratar´, de forma geral, do sistema a a como um todo, enquanto que os computadores distantes da raiz tratar˜o de a tarefas espec´ıficas e especializadas.http://www.candidatoreal.com O modelo de cache de CPU consiste na utiliza¸˜o de computadores de menor ca porte como elementos que interligam terminais com uma grande CPU. Nesse caso, uma parte do processamento ser´ executada no computador ligado ao a terminal, e a outra parte no computador central. O modelo usu´rio-servidor(cliente/servidor) surgiu na medida em que os a computadores pequenos, crescendo em potˆncia e tendo seus pre¸os reduzidos, e c diminu´ıram gradativamente a importˆncia do computador central do modelo a cache de CPU. 63
  • 65. http://www.candidatoreal.com Estrutura¸˜o L´gica ca o Modelo de processos: Esses processos podem encapsular tanto elementos ativos com natureza, con- sistindo dos programas referentes `s atividades do sistema e do usu´rio quanto a a elementos naturalmente passivos correspondendo aos recursos e suas respecti- vas opera¸˜es, confinados em gerenciadores de recursos. A comunica¸˜o entre os co ca processos, implementada pelo sistema operacional, pode ocorrer de duas formas: • Chamada remota de procedimento: este tipo de comunica¸˜o entre pro- ca cessos ´ bastante dependente da linguagem usada para implementa¸˜o e ca do sistema, devendo satisfazer suas restri¸˜es com rela¸˜o a chamada de co ca procedimento e a passagem de parˆmetros. a • Troca expl´ıcita de mensagem: este j´ ´ mais flex´ a e ıvel do que o anterior, suas restri¸˜es est˜o relacionadas com a existˆncia de liga¸˜es impl´ co a e co ıcitas ou expl´ ıcitas entre os processos e com a interpreta¸˜o da mensagem. ca Modelo de objetos: O modelo de objetos baseia-se no encapsulamento das v´rias partes de um sis- a tema em elementos denominados objetos que s˜o estruturados de forma a apre- a sentarem um conjunto de opera¸˜es respons´veis pelo seu comportamento. Para co a conseguir acessar um objeto, um processo deve ter capacidade de fazˆ-lo, usando e o conhecimento do nome do objeto e a posse da autoriza¸˜o para cessar algu- ca mas ou todas as suas opera¸˜es. Cada objeto distribu´ n˜o opera sozinho. A co ıdo a princ´ ele ´ constru´ para trabalhar com outros objetos e, para isso, precisa ıpio e ıdo de uma esp´cie de “barramento”. Tais “barramentos” fornecem infra-estrutura e para os objetos, adicionando novos servi¸os que podem ser herdados durante c a constru¸˜o do objeto, ou mesmo em tempo de execu¸˜o para alcan¸ar altos ca ca c n´ ıveis de colabora¸˜o com outros objetos independentes. CORBA ´ um exemplo ca e de “barramento”.http://www.candidatoreal.com 64
  • 66. http://www.candidatoreal.com Cap´ ıtulo 5 Principais Processadores de Mercado 5.1 Processadores Intel 5.1.1 Fam´ Pentium ılia Pentium 4 O processador Pentium 4 da Intel foi lan¸ado em novembro de 2000, usando a c microarquitetura x86 de s´tima gera¸˜o da Intel, chamada Netburst, que veio e ca com um pipeline muito longo com a inten¸˜o de permitir clocks mais altos. ca Os processadores Pentium 4 podem encontrados em trˆs vers˜es de n´cleos: e o u Willamette, Northwood e Prescott. Os primeiros modelos de Pentium 4 utilizavam soquete 423, que, como o pr´prio nome j´ sugere, possu´ 423 terminais. Depois foram lan¸ados modelos o a ıa c de Pentium 4 com soquete 478, que, apesar de possu´ırem mais contatos do que os modelos anteriores (soquete 423), eram fisicamente menores. Os modelos de Pentium 4 atuais utilizam um novo tipo de soquete, chamado Soquete 775. Willamette Os primeiros modelos de Pentium 4 eram baseados no n´cleo Willamette, u que tinha 8 KB de cache L1 para dados; 12 KB de cache L1 para instru¸˜o; ca 256 KB de cache L2; trabalhava externamente a 400 MHz (100 MHz trans-http://www.candidatoreal.com ferindo quatro dados por pulso de clock); padr˜o de pinagem soquete 423 a e 478; clock interno de 1,30 a 2 GHz; suporte a instru¸˜es MMX (oferece co um modelo de execu¸˜o SIMD (Single Instruction Multiple Data, ou seja, ca fluxo unico de instru¸˜es e m´ltiplos de dados) simples, capaz de efetuar ´ co u processamentos de dados inteiros, empacotados em registros de 64 bits. As instru¸˜es MMX melhoraram a execu¸˜o das assim chamadas tarefas co ca multim´ ıdias, como codificar e decodificar v´ıdeo), SSE (Streaming SIMD Extensions) e SSE2; tecnologia de constru¸˜o de 180 nanˆmetro. ca o Northwood Em seguida vieram os modelos de Pentium 4 baseados no n´cleo North- u 65
  • 67. http://www.candidatoreal.com wood. Este n´cleo ´ cerca de 60% menor do que o n´cleo Willamette dev- u e u ido ao seu processo de fabrica¸˜o de 130 nanˆmetros. O n´cleo Northwood ca o u possui 8 KB de cache L1 para dados; 12 KB de cache L1 para instru¸˜o; ca 512 KB ou 2 MB de cache L2; barramento externo rodando a 400 MHz, 533 MHz ou 800 MHz (100 MHz, 133 MHz e 200 MHz transferindo quatro dados por pulso de clock, respectivamente); clock interno de 1,60 a 3,4 GHz; suporte a instru¸oes MMX, SSE e SSE2. Alguns modelos possuem c˜ suporte a tecnologia Hyper-Threading. Prescott O n´cleo Prescott ´ constru´ com tecnologia de 90 nanˆmetros ´ uti- u e ıdo o e lizado nos processadores Pentium 4 modernos. Ele pode ser encontrado com 16 KB de cache L1 para dados; 12 KB de cache L1 para instru¸˜o; ca 512 KB, 1 MB ou 2 MB de cache L2; trabalha externamente a 533 MHz ou 800 MHz (133 MHz e 200 MHz transferindo quatro dados por pulso de clock, respectivamente); com clock interno de 2,26 a 3,80 GHz; suporte a `s novas instru¸˜es MMX, SSE, SSE2 e SSE3. Alguns modelos possuem co suporte a tecnologia Hyper-Threading, XD, EM64T, SpeedStep (permite que o sistema operacional ajuste o clock do processador, diminuindo-o ao executar aplicativos que exigem menos poder e economizando energia) e a VT (Virtualization Technology ), originalmente conhecida como Van- derpool. A tecnologia VT permite que um processador funcione como se fosse v´rios processadores trabalhando em paralelo de modo a permitir a que v´rios sistemas operacionais sejam executados ao mesmo tempo em a uma mesma m´quina. Embora o clock de um Prescott seja o mesmo de a um Northwood, alguns softwares de teste mostraram que um Northwood ´ e ligeiramente mais veloz que um Prescott. Prescott 2M O Pentium 4 Extreme Edition foi lan¸ado em novembro de 2003 e foi o c primeiro processador para desktop a possuir o cache L3 integrado, carac- ter´ ıstica esta presente apenas em processadores voltados para o mercado corporativo. Este processador possui 2 MB de cache L3 sendo acessado na mesma freq¨ˆncia de opera¸˜o interna do processador. Os primeiros modelos de ue ca Pentium 4 Extreme Edition eram baseados no n´cleo Gallatin, que tinha u 8 KB de cache L1 para dados; 12 KB de cache L1 para instru¸˜o; 512 KB ca de cache L2 e 2 MB de cache L3; trabalhava externamente a 800 MHz e 1066MHz (200 MHz ou 266 MHz transferindo quatro dados por pulsohttp://www.candidatoreal.com de clock, respectivamente); clock interno de 3,20 a 3,46 GHz; suporte `s a instru¸˜es MMX, SSE e SSE2; tecnologia Hyper-Threading; tecnologia de co constru¸˜o de 130 nanˆmetros. ca o Os modelos de Pentium 4 Extreme Edition atuais s˜o baseados no n´cleo a u Prescott 2M com tecnologia de 90 nanˆmetros. Possuem 16 KB de cache o L1 para dados; 12 KB de cache L1 para instru¸˜o; 2 MB de cache L2; n˜o ca a possuem cache L3; trabalhava externamente a 1066 MHz (266 MHz trans- ferindo quatro dados por pulso de clock); clock interno de 3,73 GHz; su- porte `s instru¸˜es MMX, SSE, SSE2 e SSE3; tecnologia Hyper-Threading, a co EM64T. 66
  • 68. http://www.candidatoreal.com Pentium D e Pentium Extreme Edition O processador Pentium D ´ a vers˜o de dois n´cleos do Pentium 4, e o Pentium e a u Extreme Edition ´ a vers˜o do Pentium D com tecnologia HyperThreading ha- e a bilitada. Os processadores Pentium D e Pentium Extreme Edition podem ser encontrados em duas vers˜es de n´cleos: Smithfield e Presler. o u O Pentium D e o Pentium Extreme Edition s˜o baseados na microarquitetura a x86 de s´tima gera¸˜o da Intel, chamada Netburst, ou seja, apesar do nome e ca diferente, eles s˜o internamente um Pentium 4 (ou melhor, dois processadores a Pentium 4 em um unico encapsulamento). A diferen¸a b´sica entre o Pentium ´ c a D e o Pentium Extreme Edition ´ a ausˆncia da tecnologia HyperThreading nos e e processadores Pentium D. Smithfield Os processadores Pentium D e Pentium Extreme Edition da s´rie 800 s˜o e a baseados no n´cleo Smithfield. O n´cleo Smithfield consiste na verdade u u em duas pastilhas de sil´ ıcio do n´cleo Prescott montadas em um unico u ´ processador. As principais caracter´ısticas dos processadores Pentium D da s´rie 800 s˜o: e a tecnologia de n´cleo duplo; 16 KB de cache L1 de dados por n´cleo; 12 KB u u de cache L1 de instru¸˜o por n´cleo; 2 MB de cache L2 (1 MB por n´cleo); ca u u barramento externo de 800 MHz (200 MHz transferindo quatro dados por pulso de clock), 533 MHz no caso do Pentium D 805 (133 MHz transferindo quatro dados por pulso de clock); clock interno de 2,66 a 3,20 GHZ para o Pentium D e 3,20 GHz para o Extreme Edition; suporte `s instru¸˜es a co SSE3; soquete 775; processo de fabrica¸˜o de 90 nm; tecnologia EM64T, ca XD e SpeedStep (modelos 840 e 830); e tecnologia Hyper-Threading nos processadores Pentium Extreme Edition. Os processadores Pentium D n˜o tˆm esta tecnologia. a e Presler Os processadores Pentium D e Pentium Extreme Edition da s´rie 900 s˜o e a baseados no n´cleo Presler. u As principais caracter´ ısticas dos processadores Pentium D e Pentium Ex- treme Edition da s´rie 900 s˜o: tecnologia de n´cleo duplo; 16 KB de e a u cache L1 de dados por n´cleo; 12 KB de cache L1 de instru¸˜o por n´cleo; u ca u 4 MB de cache L2 (2 MB por n´cleo); barramento externo de 800 MHz u (200 MHz transferindo quatro dados por pulso de clock) nos processadores Pentium D ou 1.066 MHz (266 MHz transferindo quatro dados por pulsohttp://www.candidatoreal.com de clock) nos processadores Pentium Extreme Edition; clock interno de 2,80 a 3,60 GHZ para o Pentium D e 3,46 a 3,73 GHz para o Extreme Edition; suporte `s instru¸˜es SSE3; soquete 775; processo de fabrica¸˜o a co ca de 65 nm; tecnologia EM64T, XD, VT e SpeedStep (modelos 840 e 830); e tecnologia Hyper-Threading nos processadores Pentium Extreme Edition. Os processadores Pentium D n˜o tˆm esta tecnologia. a e Pentium M O Pentium M ´ o processador da Intel voltado para o mercado de notebooks e e utilizado pela plataforma Centrino. A plataforma Centrino da Intel ´ um con- e 67
  • 69. http://www.candidatoreal.com junto de tecnologias desenvolvidas para notebooks e ´ formada por trˆs compo- e e nentes: • Processador Pentium M • Intel Chipsets 855 ou 915 • Rede Wireless Intel/PRO Um notebook s´ pode ser considerado Centrino se ele possuir todos esses o trˆs componentes. O processador Pentium M da Intel foi lan¸ado em mar¸o de e c c 2003, usando a microarquitetura x86 de sexta gera¸˜o da Intel, ou seja, a mesma ca arquitetura usada pelos processadores Pentium Pro, Pentium II e Pentium III. Podem ser encontrados em duas vers˜es de n´cleos: Banias e Dothan. o u Banias Os primeiros modelos de Pentium M eram baseados no n´cleo Banias, u que tinha 32 KB de cache L1 de instru¸˜es e 32 KB de cache L1 de co dados; 1 MB de cache L2; trabalhava externamente a 400 MHz (100 MHz transferindo quatro dados por pulso de clock); clock interno de 1,10 a 1,50GHz; suporte as instru¸˜es SSE2; tecnologia Enhanced SpeedStep; co tecnologia de constru¸˜o de 0, 13µm; padr˜o de pinagem soquete 478 e ca a 479. Dothan O n´cleo Dothan ´ constru´ com tecnologia de 90 nanˆmetros ´ utilizado u e ıdo o e nos processadores Pentium M modernos. Ele possui 32 KB de cache L1 de instru¸˜es e 32 KB de cache L1 de dados; 2 MB de cache L2; trabalha co externamente a 400 MHz ou 533 MHz (100 MHz e 133 MHz transferindo quatro dados por pulso de clock, respectivamente); clock interno de 1,10 a 2,26 GHz; suporte as instru¸˜es SSE2; tecnologia Enhanced SpeedStep, co Execute Disable (alguns modelos); padr˜o de pinagem soquete 478 e 479. a 5.1.2 Fam´ Celeron ılia O nome Celeron ´ utilizado pela Intel para designar sua linha de processadores de e baixo custo. Na verdade, o Celeron ´ uma vers˜o econˆmica dos processadores e a o topo de linha da Intel. Ou seja, o Celeron ´ uma vers˜o ?capada? do Pentium e a II, Pentium III ou do Pentium 4, com algumas caracter´ ısticas reduzidas ou removidas. O Celeron diferencia-se do Pentium II, Pentium III ou do Pentium 4 em basicamente trˆs aspectos: ehttp://www.candidatoreal.com • Tamanho do cache L2 • Clock interno • Clock do barramento externo Essas diferen¸as fazem com que o Celeron seja mais barato e tenha um de- c sempenho menor do que os processadores Pentium II, Pentium III e Pentium 4, sendo, portanto, destinado para o mercado de usu´rios dom´sticos ou para a e aqueles que n˜o necessitam de grande poder computacional. a 68
  • 70. http://www.candidatoreal.com Existem v´rios modelos de Celeron, mas atualmente o comercializado pela a Intel ´ o Celeron D. O sufixo D ´ apenas para diferenci´-lo das gera¸˜es anteri- e e a co ores. O Celeron D ´ a vers˜o topo de linha dos processadores Celeron. Esse pro- e a cessador ´ baseado no Pentium 4 com n´cleo Prescott e possui tecnologia de 65 e u e 90 nanˆmetros. o O Celeron D possui 16 KB de cache L1 de dados, 256 e 512 KB de cache L2, trabalha externamente a 533 MHz (133 MHz transferindo quatro dados por pulso de clock), suporte ?s instru¸˜es multim´ co ıdia SSE3, encapsulamento FC- PGA e FC-LGA, padr˜o de pinagem soquete 478 ou 775, e pode ser encontrado a com clocks de 2,13 GHz a 3,60 GHz. Por ser uma vers˜o ?capada? do Pentium 4 a Prescott, que permite alcan¸ar com maior facilidade freq¨ˆncias mais elevadas, c ue o Celeron D n˜o suporta a tecnologia Hyper-Threading, que permite simular a em um unico processador f´ ´ ısico dois processadores l´gicos, e n˜o possui n´cleo o a u duplo. Alguns processadores Celeron D possuem a tecnologia EM64T (Extended Memory 64-bit Technology), que permite ao processador acessar mais mem´ria o RAM, e a tecnologia XD (eXecute Disable), que impede que determinados tipos de v´ ırus ataquem o micro. Antes do Celeron D, vieram alguns outros modelos: Celeron SEPP (Conving- ton), Celeron A (Medocino), Celeron PPGA (Mendocino), Celeron Coppermine, Celeron Tualatin, Celeron Willamette, Celeron Northwood e o Celeron M. 5.1.3 Fam´ Core ılia Core Duo O Core Duo (conhecido anteriormente pelo nome-c´digo Yonah) ´ o primeiro o e processador da Intel voltado para o mercado de notebooks a ter tecnologia de dois n´cleos, isto ´, dentro dele h´ dois processadores completos. Curiosamente u e a este ´ tamb´m o primeiro processador da Intel adotado pela Apple. e e Na realidade este processador ´ um Pentium M com dois n´cleos de pro- e u cessamento e constru´ com tecnologia de 65 nm (O Pentium M ´ atualmente ıdo e constru´ com tecnologia de 90 nm). ıdohttp://www.candidatoreal.com Apesar de ter dois n´cleos de processamento dentro de um unico proces- u ´ sador, o tamanho do n´cleo do Core Duo ´ praticamente o mesmo do Pentium u e M (n´cleo Dothan). Isto significa que o custo para a Intel produzir um Core Duo u ´ quase o mesmo para produzir um Pentium M, que tem apenas um unico n´cleo. e ´ u O cache de mem´ria L2 do Core Duo ´ de 2 MB compartilhado entre o e os n´cleos (a Intel chama esta implementa¸˜o de cache L2 compartilhado de u ca ”Smart Cache”, ou ”cache inteligente”). No Pentium D 840, por exemplo, que ´ e um processador de n´cleo duplo, o tamanho do seu cache L2 ´ de 2 MB, sendo u e 1 MB destinado para cada n´cleo. Ou seja, no Pentium D existem dois cache u 69
  • 71. http://www.candidatoreal.com L2 de 1 MB, um por n´cleo. J´ no Core Duo, existe apenas um cache L2 de 2 u a MB que ´ compartilhado entre os dois n´cleos. e u Com o cache compartilhado, a quantidade de mem´ria cache que cada n´cleo o u utiliza n˜o ´ fixa. Com um cache L2 de 2 MB, em um dado momento um n´cleo a e u pode estar usando 1,5 MB de cache e o outro 512 KB (0,5 MB), por exemplo. Se em um processador de n´cleo duplo com cache separado o cache L2 de um u n´cleo ”acabe”(isto ´, seu 1 MB est´ sendo totalmente usado), ele precisa ir ` u e a a lenta mem´ria RAM buscar os dados, diminuindo o desempenho do sistema. No o caso do cache compartilhado, cada n´cleo pode simplesmente ”redimensionar”o u seu cache L2. Outra vantagem do cache L2 compartilhado ´ que se um n´cleo buscou um e u dado ou uma instru¸˜o e a armazenou no cache L2, esta mesma informa¸˜o ca ca pode ser aproveitada pelo outro n´cleo. Em processadores de n´cleo duplo u u com mem´rias cache separadas o segundo n´cleo teria de acessar este dado (ou o u instru¸˜o) atrav´s do barramento local do processador, isto ´, ”pelo lado de ca e e fora”do processador, usando o clock do barramento local, que ´ muito inferior e ao clock interno do processador, diminuindo o desempenho do sistema. As principais caracter´ ısticas do Core Duo s˜o as seguintes: tecnologia de a n´cleo duplo; Nome-c´digo: Yonah; 32 KB de cache L1 de instru¸˜es e 32 KB u o co de cache L1 de dados 2 MB de cache L2 compartilhado entre os dois n´cleos; u Soquete 478 ou 479; tecnologia de 65 nm; barramento externo de 667 MHz (166 MHz transferindo quatro dados por pulso de clock); tecnologia de Virtual- iza¸˜o; tecnologia Execute Disable; tecnologia Enhanced SpeedStep; suporte `s ca a instru¸˜es SSE3. co Podemos dividir a plataforma Centrino em trˆs fam´ e ılias. A primeira fam´ılia ´ formada pelo processador Pentium M, chipset Intel 855/915 Express e rede e sem fio Intel PRO/Wireless. A segunda fam´ ´ formada pelo processador ılia e Intel Core Solo (vers˜o do processador Intel Core Duo, mas com um unico a ´ n´cleo de processamento ? at´ o momento somente um modelo de Core Solo foi u e lan¸ado, T1300, rodando internamente a 1,66 GHz, externamente a 667 MHz, 2 c MB de cache L2), chipset Intel 945 Express e rede sem fio Intel PRO/Wireless 3945ABG. J´ a terceira fam´ a ılia, tamb´m conhecida como Centrino Duo (antes e chamada Napa), traz para os notebooks o poder computacional dos proces- sadores de dois n´cleos e ´ formada pelo processador Intel Core Duo com clock u e interno de 1,50 a 2,16 GHz, chipset 945 Express e rede Intel PRO/Wirelesshttp://www.candidatoreal.com 3945ABG. Core 2 Duo O Core 2 ´ a gera¸˜o mais recente de processadores lan¸ada pela Intel (os e ca c primeiros modelos foram lan¸ados oficialmente em 27 de julho de 2006). A c chegada do Core 2 significa a substitui¸˜o da marca Pentium, que estava sendo ca usada pela companhia desde 1993. Os modelos mais comuns e conhecidos dessa linha se chamam Core 2 Duo (com n´cleo duplo), que substitui o Pentium 4 e o u Pentium D, mas existe tamb´m um modelo Core 2 Quad (com n´cleo qu´druplo) e u a e os modelos Core 2 Extreme (”high end”), que substitui o Pentium Extreme 70
  • 72. http://www.candidatoreal.com Edition. O Core 2 Duo ´ o primeiro processador para desktop a usar a nova microar- e quitetura Core. O lan¸amento do processador Core 2 Duo (nome-c´digo Conroe c o para desktop e Meron para port´teis) marca o in´ de uma nova gera¸˜o de a ıcio ca processadores baseados na nova microarquitetura Core, e declara de uma vez por todas o fim da microarquitetura Netburst usada desde 2000 pelos processadores Intel de 7a gera¸˜o. Como a microarquitetura Core ´ baseada na arquitetura do ca e Pentium M e do Pentium III, podemos dizer que o Core 2 Duo ´ um processador e Intel de 6a gera¸˜o. ca A diferen¸a entre o Core 2 Duo e o Core 2 Extreme ´ que este ultimo tra- c e ´ balha com clocks mais elevados e tem o multiplicador de clock destravado, o que permite fazer overclock alterando o multiplicador de clock do processador. Cuidado para n˜o confundir o processador Core 2 Duo com o Core Duo. O a Core Duo (conhecido anteriormente pelo nome-c´digo Yonah) ´ o nome com- o e ercial para um Pentium M com dois n´cleos de processamento constru´ com u ıdo tecnologia de 65 nm. J´ o Core 2 Duo ´ o nome comercial para o processador de a e nome-c´digo Merom (para notebooks) ou Conroe (para desktops), que utiliza a o nova microarquitetura Core da Intel. As principais caracter´ ısticas t´cnicas dos processadores da fam´ Core 2 e ılia (Core 2 Duo e Core 2 Extreme) s˜o as seguintes: arquitetura Core; 64 KB de a cache L1 (32 KB de dados + 32 KB de instru¸˜es) por n´cleo; tecnologia de dois co u n´cleos (o Core 2 Extreme QX6700 tem tecnologia de quatro n´cleos); tecnolo- u u gia de 65 nm; soquete 775; barramento externo de 800 MHz (200 MHz trans- ferindo quatro dados por pulso de clock) ou 1.066 MHz (266 MHz transferindo quatro dados por pulso de clock); 2 MB, 4 MB ou 8 MB (Extreme QX6700) de cache de mem´ria L2 compartilhado; tecnologia de Virtualiza¸˜o (exceto o Core o ca 2 Duo E4300); tecnologia Intel EM64T; instru¸˜es SSE3 e SSSE3 (atualiza¸˜o co ca da SSE3); Execute Disable; Intelligent Power Capability; tecnologia Enhanced SpeedStep. O modelos Core 2 Duo possuem clock interno de 1,80 a 2,66 GHz, o Core 2 Quad possuiu clock interno de 2,40 GHz e o Core 2 Extreme 2,66 e 2,93 GHz. Existem os modelos Core 2 Duo para notebook com as caracter´ ısticas men- cionadas anteriormente, mas com um barramento externo de 667 ou 533 MHz.http://www.candidatoreal.com 5.1.4 Xeon Em 1998 a Intel estabeleceu uma distin¸˜o entre seus processadores voltados ca para o mercado de servidores e esta¸˜es de trabalho dos voltados para o mer- co cado de usu´rios dom´sticos. Desde ent˜o, a Intel passou a incluir o termo a e a ”Xeon”(pronuncia-se ”z´ ıon”) no nome dos processadores voltados para o mer- cado de servidores e esta¸˜es de trabalho. Esses processadores reconhecem mais co mem´ria RAM, permitem trabalhar em ambiente multiprocessado (isto ´, com o e placas-m˜e com v´rios processadores instalados sobre ela) e possui um desem- a a 71
  • 73. http://www.candidatoreal.com penho maior que os processadores voltados para o mercado dom´stico. e A Intel lan¸ou vers˜es para o mercado de servidores e esta¸˜es de trabalho c o co dos seus processadores Pentium II e Pentium III, chamadas, respectivamente, de Pentium II Xeon e Pentium III Xeon. Assim, o processador Pentium II era direcionado para o mercado de usu´rios dom´sticos enquanto que o Pentium II a e Xeon era um processador voltado para o mercado de servidores e esta¸˜es de co trabalho. A mesma coisa acontece com o Pentium III e Pentium III Xeon. No caso do Pentium 4, em vez do nome escolhido ter sido Pentium 4 Xeon, optou-se pelo nome Xeon. Ou seja, o Xeon ´ um processador voltado para o mercado de e servidores e esta¸˜es de trabalho baseado no Pentium 4. Atualmente, existem co os modelos Xeon Core 2 Duo e Core 2 Quad. Pentium 4 Xeon Este processador deveria se chamar Pentium 4 Xeon, mas a Intel optou pelo nome Xeon. Como comentamos anteriormente, o Xeon ´ um processador voltado e para o mercado de servidores e esta¸˜es de trabalho baseado no Pentium 4, co sendo, portanto, um processador Intel de 7a gera¸˜o. Como vimos, os proces- ca sadores anteriores da s´rie Xeon usavam a arquitetura Intel de 6a gera¸˜o (a e ca mesma do Pentium Pro). A diferen¸a entre os processadores Xeon MP e Xeon ´ que o primeiro per- c e mite multiprocessamento sim´trico com quatro ou mais processadores, enquanto e que o Xeon permite multiprocessamento com no m´ximo dois processadores. a Antigamente, o processador Xeon era chamado ”Xeon DP”(multiprocessamento sim´trico com at´ dois processadores), sendo posteriormente renomeado para e e apenas ”Xeon”. Os processadores Xeon possuem 8 KB de mem´ria cache L1 para dados (16 o KB nos modelos que possuem a tecnologia de 64 bits EM64T) e um cache L1 de execu¸˜o de 150 KB. O cache L2 pode ser de 512 KB, 1 MB ou 2 MB, sendo ca que alguns modelos possuem um cache L3, que pode ser de 1 MB, 2 MB, 4 MB ou 8 MB. O barramento externo pode ser de 667, 1066 ou 1333 MHz. Alguns modelos possuem suporte `s instru¸˜es SSE3, e `s tecnologias XD, EM64T e a co a Hyper-Threading. Os modelos Xeon DP 53xx possuem suporte a tecnologia Quad-Core e n˜o ahttp://www.candidatoreal.com suportam a tecnologia Hyper-Threading. Xeon MP Como j´ explicamos, a diferen¸a entre o Xeon MP e o Xeon ´ a quantidade de a c e processadores suportados no modo de multiprocessamento sim´trico: o Xeon e suporta at´ dois processadores em uma mesma placa-m˜e, enquanto que o Xeon e a MP suporta at´ quatro processadores por barramento. e 72
  • 74. http://www.candidatoreal.com Na realidade ´ poss´ e ıvel construir servidores com mais de quatro proces- sadores Xeon MP em uma mesma placa-m˜e. Para isso, no entanto, os pro- a cessadores devem ser agrupados de quatro em quatro ? j´ que eles s´ suportam a o at´ quatro processadores por barramento ? devendo haver uma conex˜o entre e a os chipsets. Por exemplo, em um servidor com oito processadores Xeon MP, os quatro primeiros processadores estar˜o interligados atrav´s do mesmo barra- a e mento, enquanto os outros quatro processadores estar˜o interligados atrav´s de a e um segundo barramento. A comunica¸˜o entre os barramentos locais ser´ feita ca a pelo chipset. As principais caracter´ ısticas dos processadores Xeon MP s˜o: soquete 603; a cache L1 de execu¸˜o de 150 KB; cache L1 de dados de 8 KB ou de 16 KB ca nos modelos com suporte ` tecnologia EM64T; multiprocessamento sim´trico a e diretamente com at´ quatro processadores; tecnologia Hyper-Threading. Alguns e modelos possuem suporte `s instru¸˜es SSE3, e `s tecnologias XD, EM64T. a co a Xeon N´ cleo Duplo (50xx e 7xxx) u A tecnologia de n´cleo duplo traz dois processadores inteiros dentro de um u mesmo inv´lucro. Como os processadores Xeon de n´cleo duplo modelos 50xx o u e 7xxx tˆm a tecnologia HyperThreading ? que simula a existˆncia de dois pro- e e cessadores em cada n´cleo ? o sistema operacional reconhece cada processador u Xeon de n´cleo duplo como sendo quatro processadores. Assim, em um servidor u com dois processadores Xeon de n´cleo duplo, o sistema operacional reconhecer´ u a oito processadores (quatro n´cleos, dois por processador, e dois processadores u l´gicos por n´cleo). o u Todos os processadores Xeon de n´cleo duplo possuem as seguintes carac- u ter´ ısticas: soquete 604 (modelos 7xxx) ou 771 (modelos 50xx); Mesma arquite- tura interna no Pentium 4 (Netburst); instru¸˜es SSE3; cache L1 de dados de 16 co KB e cache de execu¸˜o de 150 KB; suporte a multiprocessamento sim´trico com ca e at´ dois processadores por placa-m˜e; barramento externo de 667, 800 ou 1066 e a MHz; tecnologia Execute Disable; tecnologia EM64T; tecnologia HyperThread- ing; tecnologia de Virtualiza¸˜o nos modelos 7xxx e 50xx; tecnologia Demand- ca Based Switching (DBS), exceto nos modelos 5060 e 5063; tecnologia Enhanced SpeedStep; tecnologia de constru¸˜o 90 nanˆmetros ou 65 nanˆmetros. ca o ohttp://www.candidatoreal.com Xeon N´ cleo Duplo (51xx) u Intel lan¸ou recentemente uma nova s´rie de processadores Xeon (51xx) baseada c e na nova microarquitetura Core, a mesma usada pelos processadores Core 2 Duo. Esta nova s´rie era conhecida anteriormente por seu nome-c´digo, Woodcrest. e o Tenha em mente que os processadores Xeon de n´cleo duplo de outras s´ries u e (50xx e 7xxx) s˜o baseados na microarquitetura do Pentium 4 (Netburst) e por a isso possuem a tecnologia HyperThreading, que n˜o est´ presente na microar- a a quitetura Core. 73
  • 75. http://www.candidatoreal.com Todos os processadores Xeon da s´rie 51xx possuem as seguintes carac- e ter´ ısticas: tecnologia de n´cleo duplo; tecnologia de 65 nm; soquete 771; in- u stru¸˜es SSE3; cache L1 dividido, sendo 32 KB para dados e 32 KB para in- co stru¸˜es por n´cleo; 4 MB de cache L2 compartilhado entre os n´cleos; barra- co u u mento externo de 1066 ou 1333 MHz; tecnologia EM64T; tecnologia de Virtual- iza¸˜o; tecnologia Execute Disable; tecnologia Demand-Based Switching (DBS), ca nos modelos 5160, 5150, 5148 e 5140; tecnologia Enhanced SpeedStep; tecnolo- gia Dual Independent Bus (DIB), onde cada n´cleo tem seu pr´prio barramento u o externo em vez de ter apenas um barramento compartilhado entre nos n´cleos u para a comunica¸˜o com os outros dispositivos do micro. ca 5.1.5 Itanium O projeto de processadores de 64 bits da Intel j´ se arrasta por muitos anos. a O primeiro processador lan¸ado usando essa tecnologia foi o Itanium e recente- c mente a Intel lan¸ou mais um processador IA-64, o Itanium 2. c Esses dois processadores possuem caracter´ ısticas de hardware bastante ”pe- sadas”. O Itanium tem os dois caches de mem´ria (L1 e L2) dentro do pr´prio o o processador, como ocorre com os demais processadores atualmente, e ainda um cache extra (L3) dentro de seu cartucho, podendo esse circuito ter 2 MB ou 4 MB, dependendo da vers˜o do processador. Ele consegue acessar at´ 16 EB a e (Exabytes, 1 EB = 26 0) de mem´ria RAM e usa um barramento externo de o 64 bits rodando a 266 MHz, atingindo uma taxa de transferˆncia de 2,1 GB/s. e Esse processador usa uma mistura de soquete com cartucho. J´ o Itanium 2 tem uma mem´ria cache L1 de 32 KB, uma mem´ria cache a o o L2 de 256 KB e uma mem´ria cache L3 de 1,5 MB ou de 3 MB, dependendo o do modelo. Os mais atuais possuem uma cache L3 de 6, 8, 12, 18 ou 24 MB dependendo do modelo. Seu barramento externo ´ de 128 bits, rodando a 400 e ou 533 MHz. Possuem suporte a tecnologia Dual-Core, EM64T, VT. Esses dois processadores s˜o voltados exclusivamente para o mercado de a servidores de alto desempenho. Isso deixa a AMD em grande vantagem, j´ que a haver´ processadores de 64 bits da AMD voltados para usu´rios comuns (como a a o Clawhammer ). Outra vantagem da arquitetura de 64 bits da AMD sobre a arquitetura de 64http://www.candidatoreal.com bits da Intel ´ que a arquitetura da Intel n˜o roda nativamente c´digo de 32 bits e a o usado pelos programas atuais, ao contr´rio do que ocorre nos processadores da a AMD, que rodam diretamente esse tipo de c´digo. Isso significa que para rodar o sistemas operacionais e aplicativos de 32 bits, os processadores IA-64 (Itanium, Itanium 2 e futuros processadores) precisam traduzir as instru¸˜es de 32 bits co em instru¸˜es equivalentes de 64 bits. Isso faz com que haja uma demora na co execu¸˜o da instru¸˜o, pois h´ tempo perdido com essa convers˜o. O resultado ca ca a a disso ´ ´bvio: em alguns casos pode ocorrer de sistemas operacionais e progra- eo mas de 32 bits rodarem mais lentamente nos processadores IA-64 da Intel do que em processadores de 32 bits como o Pentium 4 e o Athlon XP. 74
  • 76. http://www.candidatoreal.com Mas, como esses processadores da Intel foram destinados ao mercado de servidores, isso n˜o tem muita importˆncia, j´ que m´quinas usando esses pro- a a a a cessadores com certeza rodar˜o programas e sistemas escritos diretamente com a instru¸˜es de 64 bits. Mas como essa ´ uma nova tecnologia, n˜o s´ ´ de- co e a o e morado reescrever programas antigos como escrever novos programas para essa ´ nova plataforma. E claro que esse mesmo problema existe nos processadores da AMD, isto ´, possivelmente demorar´ algum tempo at´ existirem sistemas e a e operacionais e programas escritos usando c´digo de 64 bits desses processadores. o Mas, por outro lado, eles podem rodar diretamente c´digo de 32 bits, facilitando o a entrada desses processadores no mercado. 5.2 AMD 5.2.1 Sempron O Sempron ´ o processador da AMD voltado para o mercado low-end, ou seja, e ele ´ destinado a usu´rios que n˜o precisam de grande poder computacional e e a a que est˜o mais preocupados com pre¸o do que com desempenho. O concorrente a c do Sempron ´ Celeron D da Intel. e O processador Sempron est´ dispon´ a ıvel em trˆs vers˜es de soquete: 462 e o (Socket A), 754 e AM2 (940 pinos). Os processadores Sempron soquete 462 s˜o a vers˜es mais simples do Athlon XP, enquanto que os processadores Sempron o soquete 754 e soquete AM2 s˜o vers˜es mais simples do Athlon 64. a o Como o Sempron soquete 462 usa uma arquitetura interna completamente diferente dos processadores Sempron soquete 754 e soquete AM2, uma com- para¸˜o direta entre esses dois processadores n˜o ´ poss´ ca a e ıvel. A nomenclatura ”PR”(Performance Rating) usada pelo Sempron s´ serve o para a compara¸˜o entre modelos de Sempron usando o mesmo tipo de soquete. ca N˜o ´ poss´ a e ıvel comparar a nomenclatura PR do Sempron com a do Athlon XP ou com a do Athlon 64. Por exemplo, um Sempron 3000+ n˜o ´ necessaria- a e mente mais r´pido do que um Athlon XP 2800+ ou do que um Athlon 64 2800+. a Soquete 462http://www.candidatoreal.com Os processadores Sempron soquete 462 s˜o, na realidade, processadores Athlon a XP com barramento externo de 333 MHz (166 MHz transferindo dois dados por pulso de clock) e 256 KB de mem´ria cache L2 (ou 512 KB no caso do modelo o 3000+). Essa categoria de Sempron possui as demais caracter´ ısticas do Athlon XP, tais como: 64 KB de cache L1 de instru¸˜es e 64 KB de cache L1 de dados; co 256 KB ou 512 KB de cache de mem´ria L2; suporte `s instru¸˜es MMX, o a co 3DNow!, SSE e SSE2 (mas n˜o `s instru¸˜es SSE3); processo de fabrica¸˜o de a a co ca 130 nanˆmetro. o 75
  • 77. http://www.candidatoreal.com Soquete 754 Os processadores Sempron soquete 754 s˜o na realidade processadores Athlon a 64 com menos mem´ria cache e sem as extens˜es de 64 bits, sendo que modelos o o lan¸ados mais recentemente passaram a contar com as extens˜es de 64 bits. c o As principais caracter´ ısticas dos processadores Sempron soquete 754 s˜o:a 64 KB de cache de L1 de instru¸˜es e 64 KB de cache L1 de dados; 128 co KB ou 256 KB de cache de mem´ria L2; barramento HyperTransport (bar- o ramento externo para acesso ao chipset Northbridge. Esta tecnologia permite o processador comunicar-se com a mem´ria RAM e com os demais circuitos o do micro ao mesmo tempo, pois existe outro barramento externo para acesso a ` mem´ria RAM. Antigamente, era apenas um barramento de acesso externo) o trabalhando a 800 MHz (este clock pode tamb´m ser referenciado como ”1.600 e MHz”) para os modelos atuais; configura¸˜o de mem´ria single channel; suporte ca o a instru¸˜es SSE3 nos modelos que tˆm as extens˜es de 64 bits habilitadas; pro- co e o cesso de fabrica¸˜o de 90 nanˆmetros. ca o Soquete AM2 Ao contr´rio dos processadores Sempron soquete 754, que trabalham apenas a na configura¸˜o de um unico canal (single channel), os processadores Sempron ca ´ soquete AM2 podem utilizar a c