apostila info 2010

Upload: gersonbk

Post on 30-Oct-2015

75 views

Category:

Documents


0 download

TRANSCRIPT

  • 1

    SISTEMAS COMPUTACIONAIS ...................................................................................................................7 ORGANIZAO DE COMPUTADORES..........................................................................................................................................7

    lgebra booleana .................................................................................................................................................................7 Sistemas de numerao e representao de dados...............................................................................................................8 Aritmtica computacional ....................................................................................................................................................8 Microprocessadores: Componentes .....................................................................................................................................8 Microprocessadores: Arquitetura ........................................................................................................................................9 Dispositivos perifricos ........................................................................................................................................................9 Conceitos de interrupes ..................................................................................................................................................10 Estruturas de endereamento .............................................................................................................................................10 Compiladores, Ligadores e Interpretadores.......................................................................................................................11

    SISTEMAS OPERACIONAIS .......................................................................................................................................................12 Conceitos Bsicos...............................................................................................................................................................12 Gerenciamento de Processos .............................................................................................................................................13 Gerenciamento de Memria ...............................................................................................................................................13 Sistemas de Arquivos..........................................................................................................................................................15 Gerenciamento de Dispositivos ..........................................................................................................................................16 Concorrncia......................................................................................................................................................................17 Concorrncia: Deadlocks...................................................................................................................................................17

    REDES DE COMPUTADORES .....................................................................................................................................................19 Comunicao de dados.......................................................................................................................................................19 Meios de transmisso .........................................................................................................................................................19 Redes locais e de longa distncia.......................................................................................................................................20 Topologias..........................................................................................................................................................................20 Servios de comunicao ...................................................................................................................................................21 Protocolos ..........................................................................................................................................................................22 Equipamentos .....................................................................................................................................................................22 Sistemas Distribudos .........................................................................................................................................................23 Segurana...........................................................................................................................................................................23

    ARQUITETURA OSI DA ISO.....................................................................................................................................................24 Camada Fsica ...................................................................................................................................................................24 Camada de Enlace de Dados .............................................................................................................................................25 Camada de Rede.................................................................................................................................................................25 Camada de Transporte .......................................................................................................................................................26 Camada de Sesso..............................................................................................................................................................26 Camada de Apresentao...................................................................................................................................................26 Camada de Aplicao ........................................................................................................................................................26

    TCP/IP....................................................................................................................................................................................26 Camadas do TCP/IP...........................................................................................................................................................27 Camada de Acesso Rede (ou Camada de Interface)........................................................................................................27 Camada Internet (ou Camada de Inter-Rede) ....................................................................................................................27 Camada de Transporte .......................................................................................................................................................28 Camada de Aplicao ........................................................................................................................................................28 Protocolo IP .......................................................................................................................................................................28 Protocolo TCP....................................................................................................................................................................28 Formato do Pacote IP ........................................................................................................................................................29 Classes de Endereos IP ....................................................................................................................................................29 Algoritmo de Transmisso de pacotes IP ...........................................................................................................................30 Algoritmo de Recepo de pacotes IP................................................................................................................................30

    WINDOWS (2003/XP/2000/98)................................................................................................................................................31 Bibliotecas de ligaes dinmicas......................................................................................................................................31 Arquitetura Distribuda......................................................................................................................................................32

    MODELO CLIENTE SERVIDOR ..................................................................................................................................................32 2 camadas...........................................................................................................................................................................32 3 camadas...........................................................................................................................................................................32 N camadas ..........................................................................................................................................................................32 Chamadas remotas .............................................................................................................................................................32 Sincronismo e filas de mensagens ......................................................................................................................................33

    CONCEITOS DE INTERNET ........................................................................................................................................................33 Domain Name Service/System (DNS).................................................................................................................................33

  • 2

    Default Gateway.................................................................................................................................................................33 Backbone ............................................................................................................................................................................34 Intranet ...............................................................................................................................................................................34 Extranet ..............................................................................................................................................................................35 Firewall ..............................................................................................................................................................................35

    BANCO DE DADOS ........................................................................................................................................36 CONCEITOS .............................................................................................................................................................................36

    Administrao de Dados ....................................................................................................................................................36 Sistemas Gerenciados de Bancos de Dados (SGBDs)........................................................................................................36 Linguagem de definio de dados e Linguagem de manipulao de dados.......................................................................38 Dicionrio de dados ...........................................................................................................................................................38 Arquitetura de banco de dados...........................................................................................................................................38 Bancos de dados relacionais ..............................................................................................................................................38

    MODELAGEM DE DADOS .........................................................................................................................................................39 Modelo Entidade-Relacionamento .....................................................................................................................................39 Modelo Relacional .............................................................................................................................................................40 12 Regras de Codd .............................................................................................................................................................40 lgebra Relacional.............................................................................................................................................................41

    NORMALIZAO .....................................................................................................................................................................41 Dependncia Funcional......................................................................................................................................................42 Primeira Forma Normal.....................................................................................................................................................42 Segunda Forma Normal .....................................................................................................................................................42 Terceira Forma Normal .....................................................................................................................................................43 Outras Formas Normais.....................................................................................................................................................43

    AMBIENTE OPERACIONAL .......................................................................................................................................................43 Conceito de transao........................................................................................................................................................43 Concorrncia......................................................................................................................................................................43 Recuperao.......................................................................................................................................................................44 Segurana...........................................................................................................................................................................44 Independncia dos Dados...................................................................................................................................................44 Integridade .........................................................................................................................................................................45 Procedimentos (Stored Procedures) ..............................................................................................................................45 Vises (views).................................................................................................................................................................45 Gatilhos (Triggers) ........................................................................................................................................................45 ndices e otimizao de acesso...........................................................................................................................................45

    BANCOS DE DADOS DISTRIBUDOS..........................................................................................................................................45 Caractersticas ...................................................................................................................................................................46 Fragmentao e Replicao...............................................................................................................................................46

    BANCO DE DADOS DE OBJETOS...............................................................................................................................................46 SQL (ANSI)............................................................................................................................................................................47

    Principais instrues de manipulao de dados ................................................................................................................47 Uso do Join.........................................................................................................................................................................47 Subconsultas.......................................................................................................................................................................48 Elaborao de consultas SQL ............................................................................................................................................48

    SOLUES DE SUPORTE DECISO.....................................................................................................50 CONCEITOS DE DATA WAREHOUSE E APLICAES .................................................................................................................50

    Estruturas de armazenamento para Data Warehouse........................................................................................................51 Data Marts .........................................................................................................................................................................52 Metadados no ambiente de inteligncia de negcios. ........................................................................................................52 Ferramentas de front-end: principais recursos e aplicaes .............................................................................................52 Processo de construo de um Data Warehouse................................................................................................................53

    OLAP (ON-LINE ANALYTICAL PROCESSING) ..........................................................................................................................53 Arquiteturas OLAP.............................................................................................................................................................54

    CONCEITOS DE MODELAGEM DIMENSIONAL ............................................................................................................................54 Desenho de modelos dimensionais a partir de modelos transacionais normalizados........................................................55

    EIS - ENTERPRISE INFORMATION SYSTEM...............................................................................................................................56 ECM - ENTERPRISE CONTENT MANAGEMENT ........................................................................................................................56 DATA MINING .........................................................................................................................................................................57

    ANLISE E PROJETO DE SISTEMAS .......................................................................................................58

  • 3

    ANLISE E PROJETO ESTRUTURADO DE SISTEMAS ..................................................................................................................58 MODELAGEM DE DADOS..........................................................................................................................................................58 MODELAGEM FUNCIONAL .......................................................................................................................................................58

    O Dicionrio de Dados ......................................................................................................................................................58 DFD e Modelagem de Fluxo de Dados ..............................................................................................................................59

    MTODOS FUNCIONAIS X MTODOS OO.................................................................................................................................60 Mtodos Funcionais ...........................................................................................................................................................60 Mtodos OO (orientados por objetos)................................................................................................................................61

    ANLISE ESSENCIAL ...............................................................................................................................................................61 Anlise Essencial x Anlise Estruturada............................................................................................................................62

    ANLISE E PROJETO ORIENTADO A OBJETOS............................................................................................................................62 Modelagem Dinmica ........................................................................................................................................................62 UML ...................................................................................................................................................................................63 Diagrama de casos de uso..................................................................................................................................................63 Agregao x composio....................................................................................................................................................64 Diagrama de estados..........................................................................................................................................................65 Diagrama de seqncia......................................................................................................................................................65 Diagrama de atividades .....................................................................................................................................................66 Diagrama de colaborao/comunicao ...........................................................................................................................66 Diagrama de implementao .............................................................................................................................................67 Diagrama de componentes .................................................................................................................................................67 Utilizao dos diagramas...................................................................................................................................................68

    PADRES DE PROJETOS (DESIGN PATTERNS)............................................................................................................................69 USO/CONCEITOS DE FERRAMENTAS DE SUPORTE ANLISE E PROJETOS ORIENTADOS A OBJETOS ..........................................70

    ENGENHARIA DE SOFTWARE ..................................................................................................................71 PRINCPIOS DE ENGENHARIA DE SOFTWARE............................................................................................................................71

    Engenharia de sistemas......................................................................................................................................................71 Ciclo de Vida......................................................................................................................................................................71 Processos de Software........................................................................................................................................................71 Anlise................................................................................................................................................................................72 Projeto (design) e Codificao...........................................................................................................................................72 Verificao x Validao .....................................................................................................................................................72 Testes..................................................................................................................................................................................72 Garantia da qualidade .......................................................................................................................................................73 Manuteno........................................................................................................................................................................73

    MODELOS DE CICLO DE VIDA...................................................................................................................................................73 Modelo Clssico ou Cascata ..............................................................................................................................................73 Modelo orientado a reuso ..................................................................................................................................................74 Modelo Evolucionrio ou Prototipagem ............................................................................................................................74 Tcnicas de quarta gerao ...............................................................................................................................................74 Modelo em Espiral .............................................................................................................................................................75 RAD - Desenvolvimento rpido de aplicaes ...................................................................................................................75

    TESTES ....................................................................................................................................................................................76 Tipos de Testes ...................................................................................................................................................................76 Walkthough.........................................................................................................................................................................77 Tcnica de prova de corretitude.........................................................................................................................................77 Simulaes..........................................................................................................................................................................77 Testes de caixa preta ..........................................................................................................................................................77 Testes de caixa branca .......................................................................................................................................................78

    ENGENHARIA DE REQUISITOS ..................................................................................................................................................78 Requisitos ...........................................................................................................................................................................79 Processo da Engenharia de Requisitos ..............................................................................................................................79 Elicitao de requisitos ......................................................................................................................................................79

    ENGENHARIA DE USABILIDADE...............................................................................................................................................80 Anlise de requisitos de usabilidade ..................................................................................................................................80 Projeto de interfaces ..........................................................................................................................................................81

    PROCESSOS DE SOFTWARE ......................................................................................................................................................81 ISO 12207...........................................................................................................................................................................81 Metodologias geis: Extreme Programming......................................................................................................................82 Metodologias geis: FDD ..................................................................................................................................................83

  • 4

    MDA Model Driven Architecture ....................................................................................................................................84 MDD Model Driven Development...................................................................................................................................85

    RUP ........................................................................................................................................................................................85 Melhores Prticas do RUP.................................................................................................................................................86 Elementos Estticos do RUP .............................................................................................................................................87 Disciplinas do RUP............................................................................................................................................................88 Fases do RUP.....................................................................................................................................................................88

    MODELOS DE MELHORIA DE QUALIDADE DE PROCESSO E PRODUTO ........................................................................................88 CMM/CMMI.......................................................................................................................................................................89 ISO 9126.............................................................................................................................................................................92 Gesto da Qualidade..........................................................................................................................................................93 Atividades da Qualidade Total (ISO 9001) ........................................................................................................................94

    MODELAGEM DE PROCESSOS DE NEGCIO.......................................................................................95 Conceitos bsicos ...............................................................................................................................................................95 Identificao e delimitao de processos de negcio.........................................................................................................95 Tcnicas de mapeamento de processos (modelos AS-IS) ...................................................................................................96 Tcnicas de anlise e simulao de processos ...................................................................................................................96 Construo e mensurao de indicadores de processos ....................................................................................................96 Tcnicas de modelagem de processos (modelos TO-BE) ...................................................................................................96

    MODELAGEM DE PROCESSOS EM UML ...................................................................................................................................96 Notao ..............................................................................................................................................................................96 Artefatos .............................................................................................................................................................................96 Atividades ...........................................................................................................................................................................97

    GERNCIA DE PROJETOS..........................................................................................................................98 PMBOK..................................................................................................................................................................................98

    Conceitos............................................................................................................................................................................98 reas de Conhecimento......................................................................................................................................................98 Anlise de Risco ...............................................................................................................................................................100 Stakeholders .....................................................................................................................................................................100 Ciclo de Vida do Projeto ..................................................................................................................................................101 Estrutura da Organizao................................................................................................................................................101

    PROJETOS DE SOFTWARE.......................................................................................................................................................101 Estrutura de decomposio de trabalho (WBS) ...............................................................................................................101 Planejamento....................................................................................................................................................................102 Acompanhamento e Controle ...........................................................................................................................................102 Grfico de Gantt...............................................................................................................................................................102 Ferramentas de Controle de Qualidade...........................................................................................................................103

    COLETA DE MTRICAS DE SOFTWARE...................................................................................................................................103 Estimativa de tamanho de software..................................................................................................................................104 Anlise de Pontos por Funo (APF)...............................................................................................................................105

    COCOMO ............................................................................................................................................................................106 Implementao Bsica......................................................................................................................................................106 Implementao Intermediria ..........................................................................................................................................106 Implementao Avanada ................................................................................................................................................107

    ANLISE DE DESEMPENHO ....................................................................................................................................................107 Modelos Analticos ...........................................................................................................................................................107 Simulao .........................................................................................................................................................................108 Medio de Desempenho..................................................................................................................................................108 Mtricas de Desempenho .................................................................................................................................................108 Planejamento de Capacidade...........................................................................................................................................109

    GESTO E RECURSOS INFORMACIONAIS..........................................................................................110 Servio de TI.....................................................................................................................................................................110 Funes de TI ...................................................................................................................................................................110

    MODELOS DE GOVERNANA EM TI: ITIL..............................................................................................................................111 Service Support.................................................................................................................................................................111 Service Delivery ...............................................................................................................................................................112

    MODELOS DE AUDITORIA EM TI COBIT ............................................................................................................................113 Processos do COBIT ........................................................................................................................................................113

  • 5

    Ferramentas de Gerenciamento do COBIT......................................................................................................................114 SISTEMAS DE GERENCIAMENTO ELETRNICO DE DOCUMENTOS (GED) ................................................................................115

    Aspectos Tcnicos.............................................................................................................................................................115 Evoluo do GED.............................................................................................................................................................116

    SISTEMAS INTEGRADOS DE GESTO......................................................................................................................................116 ERP - Enterprise Resource Planning ...............................................................................................................................116 CRM - Customer Relationship Management....................................................................................................................117

    AUTOMAO DE PROCESSOS DE TRABALHO (WORKFLOW) ...................................................................................................118 Modelo de Referncia.......................................................................................................................................................118 Workflow no contexto do ERP..........................................................................................................................................119

    GERENCIAMENTO DE PROCESSOS DE NEGCIO (BPM) ..........................................................................................................119 E-COMMERCE ........................................................................................................................................................................120

    TCNICAS E LINGUAGENS DE PROGRAMAO..............................................................................121 LGICA .................................................................................................................................................................................121

    Lgica Formal..................................................................................................................................................................121 ALGORITMOS E ESTRUTURAS DE DADOS...............................................................................................................................121

    Noes de complexidade de algoritmo.............................................................................................................................121 Tipos de dados..................................................................................................................................................................122 Listas Encadeadas............................................................................................................................................................122 Pilhas................................................................................................................................................................................122 Filas..................................................................................................................................................................................123 Vetores e Matrizes ............................................................................................................................................................123 rvores balanceadas ........................................................................................................................................................124 Listas invertidas e ndices ................................................................................................................................................125 Mtodos de acesso............................................................................................................................................................125 Mtodos de ordenao e pesquisa....................................................................................................................................125 Hashing ............................................................................................................................................................................126

    PROGRAMAO.....................................................................................................................................................................126 Programao Estruturada................................................................................................................................................126 Modularizao..................................................................................................................................................................126 Sub-rotinas .......................................................................................................................................................................127 Escopo de Variveis .........................................................................................................................................................127 Tipos de dados..................................................................................................................................................................127 Programao Orientada a Objetos ..................................................................................................................................127 Refactoring .......................................................................................................................................................................128

    DESENVOLVIMENTO J2EE.....................................................................................................................................................128 Especificao J2EE..........................................................................................................................................................128 Conceito de servidor de aplicao ...................................................................................................................................128 Container web e EJB........................................................................................................................................................129 Padres e anti-padres de projeto J2EE..........................................................................................................................130 Padro MVC de Projeto...................................................................................................................................................130

    DESENVOLVIMENTO DE SISTEMAS WEB...........................................................................................132 HTML...................................................................................................................................................................................132 CSS.......................................................................................................................................................................................133 JAVASCRIPT...........................................................................................................................................................................133

    Comandos do Javascript ..................................................................................................................................................133 Eventos .............................................................................................................................................................................134 Funes do Javascript......................................................................................................................................................134

    DHTML................................................................................................................................................................................135 ARQUITETURA DE APLICAES PARA AMBIENTE WEB ...........................................................................................................135 WEB SERVICES ......................................................................................................................................................................135

    Arquitetura Service-Oriented Architecture (SOA) ...........................................................................................................136 Tecnologias dos Web Services..........................................................................................................................................136

    PORTAIS CORPORATIVOS ......................................................................................................................................................137 Motivao e Caractersticas dos Portais .........................................................................................................................137 Gesto de Contedo .........................................................................................................................................................138 JSR 168 - Java Specification Request 168 Portlet Specification......................................................................................140 WSRP - Web Services for Remote Portlets .......................................................................................................................141

    ACESSIBILIDADE ...................................................................................................................................................................142

  • 6

    Decreto n 5296, de 02/12/2004 .......................................................................................................................................142 Modelo de acessibilidade .................................................................................................................................................142 Cartilha tcnica................................................................................................................................................................143 Recursos tcnicos para implementao da acessibilidade em HTML..............................................................................144

    SEGURANA DA INFORMAO.............................................................................................................146 POLTICA DE SEGURANA......................................................................................................................................................146

    Regras gerais da Poltica de Segurana ..........................................................................................................................146 AMEAAS, ATAQUES E ANLISE DE VULNERABILIDADE ........................................................................................................147 AUDITORIA DE SISTEMAS E SOLUES BASEADAS EM TECNOLOGIA DA INFORMAO .........................................................147

    Requisitos de Segurana...................................................................................................................................................148 CERTIFICAO DIGITAL ........................................................................................................................................................148

    Criptografia......................................................................................................................................................................149 Criptografia Simtrica .....................................................................................................................................................149 Criptografia Assimtrica ..................................................................................................................................................150 Hashing ............................................................................................................................................................................150 Protocolos Criptogrficos ................................................................................................................................................150 Assinatura Digital ............................................................................................................................................................151

  • 7

    Sistemas Computacionais

    Organizao de Computadores Um computador organizado basicamente pela UCP, pela Memria e os Dispositivos de Entrada e Sada.

    A UCP ou CPU (Central Processing Unit) responsvel pelo processamento e execuo dos programas armazenados na memria principal. Ela composta pela UAL (Unidade Aritmtica e Lgica) e a UC (Unidade de Controle), que busca, inter-preta e controla as instrues e demais componentes do computador.

    Registradores so dispositivos de armazenamento temporrio, localizados na UCP, extremamente rpidos, com capacidade para apenas um dado (uma palavra). Est localizado no chip, e os seus dados so volteis.

    lgebra booleana Os circuitos lgicos so construdos a partir das portas lgicas, que implementam fisicamente as funes booleanas bsicas. A representao padro destes trs blocos lgicos mostrada a seguir.

    NOT AND OR

    Os trs principais operadores da lgebra booleana so os operadores NOT, AND e OR.

    O operador unrio NOT representado como . O resultado desta operao sobre uma varivel a inverso ou ne-gao do valor da varivel. Isto , se a A = 1 ento = 0 e vice-versa.

    O operador AND representado pelo smbolo , como em A B. O resultado da aplicao deste operador sobre vari-veis booleanas igual a 1 somente se todas as variveis forem iguais a 1. Caso contrrio, o resultado 0. Esta ope-rao conhecida como produto lgico.

    O operador OR representado pelo smbolo +, como em A + B. O resultado da aplicao deste operador sobre vari-veis booleanas igual a 1 se pelo menos uma das variveis for igual a 1. Caso contrrio, o resultado 0. Esta ope-rao conhecida como soma lgica.

    Existem vrias leis descritas pela lgebra de Boole que so teis no tratamento das equaes lgicas:

    Lei da identidade: A + 0 = A e A 1 = A;

  • 8

    Lei do zero e do um: A + 1 = 1 e A 0 = 0;

    Lei da inverso: A + = 1 e A = 0;

    Lei da comutatividade: A + B = B + A e A B = B A;

    Lei da associatividade: A + (B + C) = (A + B) + C e A (B C) = (A B) C; Lei da distributividade: A (B + C) = (A B) + (A C) e A + (B C) = (A + B) (A+ C).

    Alm dessas leis existem dois teoremas conhecidos como Teoremas de De Morgan, cuja formulao :

    Sistemas de numerao e representao de dados A nossa representao de nmeros baseada em um sistema de 10 algarismos (0 a 9), manipulados em mltiplos de 10. Esta representao conhecida como a base 10.

    J os computadores utilizam apenas dois smbolos (0 e 1), representados pela voltagem eltrica (ligado ou desligado). Essa unidade de informao chamada de bit, e a abreviatura de binary digit, em ingls. Assim, um bit pode representar dois nmeros, o 0 e o 1. Se usarmos dois bits, poderemos representar quatro estados diferentes, com trs bits, j so oito estados, e assim por diante. Chamamos de um byte, o conjunto de oito bits, que pode representar 28 estados (256), ou os nmeros de 0 a 255.

    Aritmtica computacional As palavras de um computador so compostas por bits e podem representar nmeros armazenados na memria. Estes nme-ros podem ter diferentes significados, como inteiros ou reais, serem positivos ou negativos:

    Complementa Dois: Os computadores manipulam tanto nmeros positivos quanto nmeros negativos, que so re-presentados em complemento a 2. Nesta conveno os nmeros que possuem 0s esquerda so considerados positi-vos e os nmeros com 1s esquerda so considerados negativos. O complemento a 2 obtido invertendo-se o nme-ro binrio e depois somando 1 a este valor.

    Adio e Subtrao: Numa soma os bits so somados um a um da direita para a esquerda, com os carries sendo passados para o prximo bit esquerda. A operao de subtrao usa a adio. O subtraendo simplesmente negado antes de ser somado ao minuendo.

    Multiplicao e Diviso: A multiplicao precisa apenas de dois passos principais: o teste do produto e o seu deslo-camento. A diviso a operao recproca da multiplicao. Dentre as operaes aritmticas a que aparece menos freqentemente nos cdigos dos programas.

    Microprocessadores: Componentes O processador (CPU) o componente vital de um sistema de computao, responsvel pela realizao das operaes de pro-cessamento (clculos, entre outros) e de controle durante a execuo de um programa. O ciclo bsico de uma instruo : BUSCA -> DECODIFICO -> EXECUO. Outra diviso (para pipelines) : Busca (fetch), Decodificao, Busca do Operando, Execuo e Armazenamento do resultado.

  • 9

    O seu principal componente a UC (Unidade de Controle). O processador conta tambm com uma Unidade Lgica e Aritm-tica (ALU), sendo que a sua ao complementada pelo uso de registradores de processamento. E tambm possui um clock, fundamental para gerar pulsos e manter uma freqncia constante.

    O processador tambm possui trs barramentos: de endereo, de dados e de controle.

    Alguns registradores importantes, que fazem parte da unidade de controle so: PC (Program Counter), IR (Instruction Regis-ter), MAR (Memory Address Register) e MBR (Memory Buffer Register). As instrues executadas por um processador so as seguintes:

    Operaes lgicas e aritmticas: somar, subtrair, multiplicar, dividir, and, or, xor, not,... ;

    Movimentao de dados: memria-CPU, CPU-memria, registrador-registrador, ...;

    Desvios: alterao da seqncia de execuo das instrues;

    Operaes de entrada ou sada: para comunicao com dispositivos de I/O. Note que o hardware e o software so logicamente equivalentes, ambos podem executar as mesmas funes.

    A funo do processador executar programas armazenados na memria principal. Para isso ele conta tambm com uma memria interna, os registradores. Revisando o passo a passo de execuo de um programa:

    1. Busca instrues da memria para o registrador de instruo (IR) 2. Atualiza o contador de programa (PC) 3. Determina o tipo de instruo, e (se usar) localiza os dados na memria 4. Busca os dados (se houver) para registradores 5. Executa a instruo, e armazena resultados

    6. Volta ao passo 1 para a prxima instruo

    Microprocessadores: Arquitetura No incio, mainframes, minicomputadores e microcomputadores possuam claras distines tcnicas, em relao quantidade de memria, palavras de 32, 16 e 8 bits (respectivamente), etc. Mas no existe nenhuma diferena conceitual entre eles, hoje em dia essa diferena ainda menor.

    As arquiteturas de microprocessadores so classificadas pelo nmero e quantidade de instrues:

    RISC (Reduced Instruction Set Computer): o conceito de processadores RISC foi levantado por John Cocke (da IBM), em 1974. O seu argumento era que os processadores s utilizavam 20% das instrues, e quanto menos ins-trues o processador conseguisse interpretar, menor o nmero de transistores (e menor o seu custo). Reduzindo o nmero de transistores e instrues a um mnimo possvel, o processador conseguiria executar mais tarefas em um tempo menor. Exemplos so o MIPS, Power PC, Sparc e DEC Alpha.

    CISC (Complex Instruction Set Computer): Em contraste com o RISC, os chips CISC possuem uma grande quan-tidade de instrues diferentes e complexas. Os programadores executam um nmero menor de instrues do pro-cessador, pois cada instruo realiza tarefas mais complexas. Isso reduz o tamanho do cdigo, diminuindo a necessi-dade de memria e armazenamento, e por conseguinte, diminuindo custos. Exemplos so os processadores da Intel.

    Dispositivos perifricos Em sistemas tais como microcomputadores e estaes de trabalho, as interfaces de E/S so ligadas ao processador atravs de barramentos de endereo, dados e controle, de maneira semelhante conexo entre memria principal e processador. A orga-nizao tpica de um computador incluindo o sub-sistema de E/S dado:

    A comunicao entre a CPU e os perifricos feita normalmente atravs de uma controladora ou interface, o que permite o CPU agir de maneira independente dos dispositivos, sem comunicao direta:

    Polling: O programa checa o estado do perifrico manualmente. A CPU pode se manter ocupada at o trmino da operao. Uma soluo checar de tempos em tempos, executando concorrentemente.

    Interrupo: Ao terminar uma operao de E/S, uma interrupo gerada para o processador. Isso elimina a neces-sidade de esperar pelo trmino, e vrias operaes podem ocorrer simultaneamente, atravs de um vetor de interrup-

  • 10

    o. Quando a CPU interrompida, ela pra e transfere a execuo para um local fixo (rotina de servio) para tratar a interrupo (diviso por zero, acesso invlido...)

    Spooling: Vm de Simultaneneous peripheral operation on-line, e uma tcnica para aumentar a eficincia dos sis-temas operacionais, base do sistema batch. Um exemplo a utilizao de impressoras.

    Canais de DMA (Direct Memory Access): um recurso da placa me que permite que os dispositivos perifricos (placa de vdeo ou som, disco rgido, CD-ROM) acessem diretamente a memria RAM, sem consumir poder de pro-cessamento da CPU (apenas no incio e no final da transferncia). Cada dispositivo pode ocupar apenas um canal. Note que o processador no acessa a memria enquanto a controladora de DMA o faz (um s barramento), mas pode usar a memria cache.

    Conceitos de interrupes Inicialmente, quando comeou-se a usar sistemas operacionais, um programa que estivesse sendo executado tomava o contro-le da mquina e s quando o programa encerrava que o controle era devolvido para o sistema operacional. Quando ocorria algum problema (por exemplo, um erro no programa) no havia meios do sistema operacional retomar o controle da mquina, exceto com o usurio derrubando o sistema e recarregando o sistema operacional. Ficou ento evidente a necessidade de ha-ver um meio do sistema operacional poder retomar o controle da mquina, em situaes de exceo.

    Tambm ocorreu que as UCP's ficaram mais rpidas e mais eficientes, porm os dispositivos perifricos de E/S compatveis progrediram menos em velocidade (ou seja, ficaram comparativamente mais lentos). A resposta a estes problemas foi a utilizao do mecanismo de INTERRUPES. Interrupes so modificaes no fluxo de controle causadas por uma ao externa, geralmente relacionada a Entrada ou Sada. Uma interrupo um sinal de controle enviado por um agente externo (um dispositivo) ao microprocessador, quando um determinado evento detectado. A inter-rupo um sinal de hardware.

    Este mecanismo fora o processador a tratar o evento externo. A deteco de uma interrupo faz com que o processador transfira o controle para uma rotina de tratamento de interrupo (interrupt handler). A rotina de tratamento de interrupes faz o processador executar as seguintes aes:

    1. Detectar a fonte da interrupo (o dispositivo que interrompeu) 2. Executar as aes apropriadas (que dependem do dispositivo) 3. Retornar ao ponto do programa em que estava quando iniciou o atendimento interrupo.

    Interrupes de software (traps ou exceptions) so devidas a: Algum evento gerado pela execuo de uma instruo, como uma diviso por zero, overflow, cdigo de operao in-

    vlido, tentativa de acesso a uma rea de memria protegida ou inexistente, etc

    A um evento programado.

    Traps so sncronas com o programa, enquanto interrupes associadas E/S so assncronas.

    Estruturas de endereamento Os processadores podem acessar a memria de vrios modos diferentes. A flexibilidade em seu acesso garante uma maior facilidade e performance ao trabalhar com variveis, arrays, registros, ponteiros e outros dados.

    Imediato: a instruo contm o prprio operando. Mais rpido, mas a faixa de valores menor.

    Direto: instruo contm o endereo de memria com o operando. Ex: mov a, 25h (do incio da mem) Indireto: instruo contm o endereo de memria com o apontador para o endereo com o operando. Mais lento.

    Com registrador: instruo contm o registrador com o operando. Equivalente ao direto. Ex: mov ax, bx

    Indexado: instruo contm o (registrador + ndice) que aponta para o endereo de memria com o operando. Registrador-base: Instruo contm o (reg. base + deslocamento) que aponta para o endereo com o operando. Com pilha: h um apontador de pilha, e utiliza-se instrues pop/push para obter o operando.

  • 11

    Compiladores, Ligadores e Interpretadores. Existem dois tipos de aplicaes para converter um cdigo em uma linguagem para cdigo de mquina:

    Compilador: traduz um programa escrito em uma linguagem de alto nvel em cdigo objeto. Esse cdigo objeto ento ligado (linked) com os mdulos de biblioteca de outros programas, para produzir um executvel. O arquivo ge-rado pode ser ento executado por um carregador, que tambm possui a funo de resolver endereamentos e outras tarefas que dependem do sistema operacional. Exemplo: C, C++, Pascal.

    Interpretador: interpreta e executa um cdigo ao mesmo tempo. Ele no produz um arquivo executvel, pois a sua sada depende do cdigo fonte e dos valores de entrada. Exemplo: BASIC.

  • 12

    Sistemas Operacionais O sistema operacional responsvel por gerenciar todos os recursos de uma mquina, facilitando a inter-face entre o hardwa-re e o software do computador. Esses recursos incluem o processador (pode ser mais de um), a memria, os dispositivos de entrada e sada (impressora, monitor, teclado, etc), interfaces de rede, entre outros. Esse gerenciamento de recursos de uma mquina uma tarefa complexa, que encapsulada pelo sistema. Imagine a tarefa de alocar um programa na memria. preciso assegurar que h memria disponvel suficiente, e que o local (endereo) onde o programa ser alocado pode ser utilizado. Alm disso, todas referncias ao programa devem apontar para este mesmo endere-o, e quando ele terminar, esse espao deve ser liberado. Esta apenas uma das tarefas do sistema operacional (SO). Seria impraticvel deixar a tarefa do gerenciamento de todos os recursos de um computador (principalmente o disco, proces-sador e memria) aos programadores. Uma tarefa do sistema operacional fornecer uma interface amigvel para o programa-dor, que pode utilizar funes de alto nvel, como "Abrir Arquivo" ou "Ler Disquete" ao invs de ser obrigado a lidar com as interfaces complexas de discos rgidos ou unidades de disquetes.

    Tanenbaum cita o exemplo de trs programas tentando imprimir as suas sadas simultaneamente a uma mesma impressora. O resultado seria catico, pois as linhas de cada programa poderiam sair intercaladas em uma mesma folha. O SO evitaria este cenrio, imprimindo a sada de cada programa em sua devida ordem.

    Conceitos Bsicos Como j explicado, o Sistema Operacional um programa que atua entre o usurio e o hardware do computador, e proporcio-na um ambiente para executar programas de forma conveniente e eficiente.

    Em resumo, o SO um alocador de recursos e um programa de controle. A sua evoluo dada a seguir:

    Sistema em batch: funcionava atravs da leitura de cartes perfurados, e sua memria possua ape-nas o SO e um espao para o programa do usurio.

    Sistemas multiprogramados: a introduo dos discos permitiu que os jobs fossem escalonados pelo SO. Vrios programas podiam residir na memria.

    Sistemas de tempo compartilhado: permitiu a interao de vrios usurios (multitarefa), adicionando o recurso de gerncia de memria e proteo. O PC faz parte desta categoria. Sistemas paralelos ou multiprocessados: com o objetivo de aumentar o throughput, mais de um processador compartilham o barramento, clock, memria, etc. Tambm h aumento da confiabilidade (tolerncia falhas). Um sistema multiprocessado possui uma programao mais complexa (Fortemente Acoplado). Sistemas de tempo real: sistemas crticos, onde o processamento deve ser feito dentro de um limite de tempo. Sistemas distribudos: permitem que vrios computadores, que NO compartilham memria ou clock, se comuniquem atra-vs de uma rede para completar uma tarefa. Um sistema distribudo um conjunto de computadores que age como uma m-quina nica (Fracamente Acoplado). A arquitetura dos computadores e sistemas operacionais em geral pode ser classificada quanto sua histria:

    Primeira Gerao: vlvulas e painis. Toda a programao era feita em cdigo absoluto.

    Segunda Gerao: transistores. Computadores mais confiveis, os sistemas batch j podiam ser implementados, lei-tura de cartes e linguagens de programao como FORTRAN ou linguagens de montagem.

    Terceira Gerao: as tcnicas de SPOOL, tempo compartilhado e multiprogramao foram implementadas. Vrios terminais em uma mquina.

    Quarta Gerao: circuitos integrados, surgindo a noo de computador pessoal. Tais mquinas passaram a se inter-conectar em rede, tiveram um grande aumento de seu poder de processamento e interatividade (user-friendly).

    Quinta Gerao: comeando em 1991, foram implementados sistemas especialistas, multimdia e distribudos, a simplificao e miniaturizao dos computadores. Os Pentiums da Intel se enquadram nessa categoria.

    Prximas Geraes: especulam sobre os computadores qunticos, que sero a "sexta" gerao de computadores.

  • 13

    Gerenciamento de Processos Um programa uma seqncia de instrues que descrevem a execuo de uma tarefa. Um processo um programa em execuo. O estado de um processo consiste do programa, da prxima instruo a ser executada, os valores das variveis uti-lizadas, e o status dos dispositivos de entrada e sada.

    Para guardar o estado de um processo, criado um vetor de estado, que armazena todas as partes mutveis do processo, ou seja, todos citados acima, menos o programa, que imutvel (em boas prticas de programao). Para evitar que um programa acesse a rea de outro, pode ser utilizado um registrador de base e outro de limite, com o espao de endereamento lgico do programa em execuo. O prprio SO possui um mecanismo para se proteger de processos, que so os bits de proteo (modo usurio e modo privilegiado / monitor). Processos precisam de tempo de CPU, memria, arquivos e dispositivos de I/O para realizar a sua tarefa. Estes recursos po-dem ser alocados durante a sua criao ou a sua execuo. O Sistema Operacional deve:

    Criar e excluir processos de usurio e de sistema

    Suspender e retomar processos

    Dar mecanismo para a sincronizao e comunicao de processos

    Tratar deadlocks

    O escalonamento de CPU tem origem com a introduo de sistemas multiprogramados. Sempre que um processo precisa esperar (E/S), outro processo pode assumir o uso da CPU. O escalonamento desse tipo uma funo fundamental do sistema operacional. Quase todos os recursos do computador so escalonados antes do uso, e esse escalonamento vital para o projeto do Sistema Operacional. Diferentes algoritmos de escalonamento de CPU possuem diferentes propriedades e podem favorecer uma classe dos proces-sos em detrimento de outro. Alguns critrios de escalonamento so:

    Ciclo de Burst CPU E/S: Essa ser a medida adotada para caracterizar cada processo em nosso algoritmo. A execuo de um processo comea com um burst (surto) de CPU, que seguido por um burst de E/S, que por sua vez, seguido por outro burst de CPU, depois outro burst de E/S, e assim por diante. Por fim, o burst de CPU final termina com uma requisio do sistema para terminar a execuo.

    Turnaround (tempo de retorno): tambm conhecido como tempo de execuo. Do ponto de vista de um processo especfico, o critrio importante o tempo necessrio para executar esse processo. O intervalo desde o momento da submisso de um processo at o momento do trmino o turnaround. O turnaround a soma dos perodos gastos es-perando para entrar na memria, esperando na fila de processos (ready queue), executando na CPU e realizando E/S.

    Tempo de espera: a soma dos perodos gastos aguardando na fila de espera. Para sistemas interativos (como de tempo compartilhado) busca-se uma varincia no tempo de resposta do que minimizar o tempo de resposta mdio.

    Alguns algoritmos de escalonamento de processos so:

    FCFS (First Come First Served): neste escalonamento, o primeiro processo a chegar na fila o primeiro a ser atendido, o que maximiza o seu throughput.

    Round Robin: no escalonamento RR ou circular, os processos so organizados numa fila segundo sua ordem de chegada, sendo ento despachados para execuo. No entanto, ao invs de serem executados at o fim (completion), a cada processo concedido apenas um pequeno intervalo de tempo (time slice ou quantum). Caso o processo no seja finalizado neste interva-lo de tempo, ocorre sua substituio pelo prximo processo na fila de processos ativos, sendo o processo em execuo inter-rompido e novamente colocado na fila de processos prontos, mas em seu fim. Isto significa que ao final de seu intervalo de tempo, isto , de seu quantum, ocorre a preempo do processador, ou seja, o processador designado para outro processo

    Gerenciamento de Memria A memria o local onde os programas e dados so armazenados. A codificao binria (bits) foi escolhida para representar a informao, pois mais confivel (e no mais eficiente!). Uma clula de memria a menor unidade enderevel. Cada clula tem um endereo nico, e geralmente ocupam um byte, uma palavra, ou outra unidade.

  • 14

    Para evitar que dados sejam interpretados como instrues, ou vice-versa, um bit extra pode ser usado para cada clula para indicar o seu contedo. Na verdade vrios bits extras podem existir com vrias finalidades.

    O processador central l e grava na memria, assim como a controladora de DMA. Os programas devem ser mapeados para endereos absolutos, e instrues e dados so acessados. Alm disso, vrios programas ficam ao mesmo tempo na memria. O sistema operacional responsvel por:

    Manter um registro das reas ocupadas da memria (e por quem) Decidir quais os processos que iro residir na memria

    Alocar e desalocar espao na memria, conforme necessrio

    A CPU se comunica com a memria atravs dos registradores MAR e MBR, j explicados anteriormente. A amarrao de endereos lgicos (binding de programas executveis) com fsicos (da memria principal) feita:

    em tempo de compilao: usado em arquiteturas antigas, onde o programa era sempre carregado na mesma posio da memria. S faz sentido com monoprogramao

    em tempo de carga: executvel contm mapa de relocao. O programa interpretado, e os endereos corrigidos.

    em tempo de execuo: h necessidade de hardware especial. Exemplo: registrador base cujo valor sempre soma-do a endereo lgico.

    Alocao Contgua Simples A memria principal dividida em duas parties: Sistema Operacional (parte baixa) e Processo do Usurio (restante da me-mria). O usurio tem controle total da memria, inclusive da rea do SO (Ex.: DOS). A proteo (bits de proteo) foi poste-riormente includa, assim como registradores de base e limite.

    Relocao o processo de designar endereos de carga s vrias partes do programa, ajustando cdigo e dados para refletir os endereos designados.

    Alocao Contgua Particionada Imposta pela multiprogramao, existem mltiplas parties, e a memria dividida em blocos. Cada partio pode receber um processo (programa), mas no considera a existncia do Swapping. Para corrigir fragmentao interna nas parties, o seu tamanho passou a ser dinmico, e no fixo. Mas isso tambm pode gerar fragmentao externa (pedaos livres da memria). Algoritmos para alocao contgua: First Fit (primeiro espao), Best Fit (menor espao livre) e Worst Fit (maior espao). Swapping: uma tcnica para evitar a fragmentao externa, e lidar com a falta de espao em memria, j que os processos precisam estar na memria principal para serem executados. Mas nunca deve ocorrer em processos com E/S pendentes.

    Segmentao

    espao lgico do programa dividido em unidades que tm sentido para o programa: segmentos

    cada segmento pode ser alocado na memria fsica de forma independente

    Paginao

    Mapeamento entre pginas fsicas (frames) e pginas lgicas (pages) mapeamento de endereos atravs de uma tabela de pginas

    h fragmentao interna

    cache da tabela de pginas: TLB (Translation Look-aside buffers). Mas como o seu tamanho limitado (de 8-2048 entradas), h a possibilidade de paginao multinvel, para gerar tabelas de pginas menores

    conjunto de trabalho: pginas referenciadas por um programa. desejvel: espao de endereamento fsico > con-junto de trabalho. Obs.: espao de endereamento virtual > espao de endereamento fsico

  • 15

    Controle de espao livre

    blocos de tamanho varivel: listas encadeadas

    blocos de tamanho fixo: bitmaps

    Memria Virtual Permite que o programa utilize um espao de endereamento virtual maior que a memria fsica total.

    parecido com swapping mas muito mais eficiente. Com swapping, o espao de endereamento de cada processo tem que ser menor que a MP; o que pode ser maior que a MP a soma dos espaos de endereamento de todos os pro-cessos.

    Apenas algumas das pginas virtuais tm um correspondente fsico em cada instante; as demais pginas so marca-das como invlidas na tabela de pginas.

    Quando um programa faz um acesso a uma pgina que no est carregada na MP, a MMU (Memory management Unit) gera um trap para o sistema operacional, que entra em ao para carregar a pgina requisitada.

    Sistemas de Arquivos O Sistema Operacional fornece uma viso lgica uniforme do armazenamento. O conceito abstrato de arquivo serve para or-ganizar os dados e seus acessos. O SO responsvel por:

    Criar e excluir arquivos ou diretrios

    Fornece suporte a primitivas para manipula-los

    Mapear arquivos no armazenamento secundrio

    Fazer backup de arquivos nos meios estveis (no-volteis)

    As informaes so gravadas nos discos em "setores", distribudos ao longo de "trilhas" concntricas marcadas magnetica-mente como setores circulares no disco, conforme ilustrao a seguir.

    O processo de marcao magntica das trilhas e setores em um disco faz parte da "formatao" do disco. Esta formatao dependente do sistema operacional que usar o disco. O sistema operacional DOS define que cada setor armazena 512 bytes. Todas as trilhas armazenam o mesmo nmero de bytes; desta forma, os dados na trilha mais interna estaro gravados com maior densidade, pois o espao fsico menor.

    Tempo de Acesso: o tempo de acesso aos dados de um disco definido como o perodo decorrido entre a ordem de acesso e o final da transferncia dos dados. O tempo de acesso no constante, variando em funo da posio relativa entre o brao atuador (que posiciona as cabeas de leitura e gravao) e o setor que ser lido e portanto s tem sentido falar em tempo m-dio de acesso. Os tempos mdios de acesso dos discos atuais so da ordem de 10 ms e resultado das seguintes operaes:

  • 16

    TEMPO DE ACESSO = TEMPO DE (SEEK + LATNCIA + TRANSFERNCIA) Tempo de Seek: seek ou busca o tempo gasto na interpretao da localizao do dado no disco (endereo do dado

    no disco) pela unidade de controle e no movimento mecnico do brao que sustenta a cabea magntica, at alcanar a trilha desejada. Este tempo varivel de acesso para acesso. os tempos tpicos de discos rgidos atuais podem vari-ar de aproximadamente 0 ms (referente ao acesso a um setor localizado na mesma trilha onde no momento est a ca-bea de leitura), 3 ms (para acesso a setores em trilhas adjacentes) a at 20 ms (referente ao acesso entre trilhas loca-lizadas nas extremidades do disco). Este tempo diretamente dependente da qualidade dos mecanismos eletromec-nicos que comandam os braos atuadores. Discos de menores dimenses tambm tendem a ser mais rpidos.

    Tempo de Latncia: tambm chamada latncia rotacional, o tempo gasto entre a chegada da cabea de leitura / gravao sobre a trilha e a passagem do setor desejado na posio da cabea. Como o disco permanece constante-mente girando, a cabea magntica s pode ler ou gravar um dado quando o setor endereado est imediatamente abaixo dela. Portanto, h que aguardar que o disco gire at que o setor endereado fique posicionado abaixo da cabe-a. Esse tempo depende diretamente da velocidade com que o disco gira (5400, 7200 RPM, etc)

    Tempo de Transferncia: o tempo consumido na transmisso dos bits entre computador e disco e vice-versa. Este tempo depende da interface e do disco, que definem o throughput (taxa de transferncia) do disco. Atualmente, de-pendendo da interface, o throughput seria da ordem de at 33 Mbytes/s. Como um setor tem 512 bytes, em 1 ms se poderia transferir cerca de 33 setores e o tempo de transferncia de um setor seria da ordem de 15 ns.

    Obs.: Os tempos relativos a unidades (drivers) de disquetes so muito maiores que os acima indicados para discos rgidos. Drivers de disquete giram a aproximadamente 300 rpm e o throughput da ordem de 500 kbytes/s; os tempos de acesso m-dios so da ordem de 60 a 100 ms.

    Aps a formatao fsica, temos um HD dividido em trilhas, setores e cilindros. Porm, para que este disco possa ser reco-nhecido e utilizado pelo sistema operacional, necessria uma nova formatao, chamada de formatao lgica. A formata-o lgica consiste em escrever no disco a estrutura do sistema de arquivos utilizado pelo sistema operacional.

    Um sistema de arquivos um conjunto de estruturas lgicas e de rotinas que permitem ao sistema operacional controlar o acesso ao disco rgido. Diferentes sistemas operacionais usam diferentes sistemas de arquivos. Os principais so:

    FAT16 (File Allocation Table): utilizado pelo MS-DOS, Windows 95 e compatvel com Windows 98, permitindo um mximo de 65526 clusters, que no podem ser maiores que 32 KB. A principal desvantagem desse sistema o desperdcio de espao para parties maiores que 1 Gb, e o seu tamanho mximo por partio limitativo, de 2 Gb.

    VFAT: extenso da FAT16, que ao invs de permitir apenas arquivos com 11 caracteres (8.3), reserva uma rea com nomes grandes, fazendo com que o MS-DOS interprete os arquivos como "Arquiv~1", "Arquiv~2", etc.

    FAT32: utiliza 32 bits de endereamento para cada cluster, de apenas 4 Kb cada. Utilizado pelo Windows 95 e 98, a maior desvantagem o alto nmero de clusters, diminuindo o desempenho. Tamanho mximo de 2 Terabytes.

    NTFS (New Technology File System): sistema de arquivos de 32 bits onde os setores do disco so endereados di-retamente. Cada unidade de alocao possui apenas 512 bytes, evitando o desperdcio de disco. Utilizado pelo Win-dows NT em diante. um sistema mais seguro e confivel que o FAT, alm de flexvel e adaptvel.

    EXT2: um sistema de arquivo utilizado apenas pelo Linux, que apresenta vrios recursos avanados de segurana e suporte a parties de at 4 Terabytes. Outros sistemas relacionados so o EXT3, RaiserFS, etc.

    Gerenciamento de Dispositivos O Sistema operacional deve ocultar os detalhes de dispositivos de I/O de usurios. Ele deve:

    Fornecer uma interface geral de driver de dispositivos especficos

    Fornecer um componente de buffering, armazenamento em cach e spooling. Para evitar que a CPU fique presa por longos perodos em Entrada e Sada, podem existir processadores especializados de E/S, de baixo custo.

    Alm disso, o sistema operacional guarda uma tabela de status de dispositivos, com o registro de pedidos de I/O simult-neos.

    O DMA utilizado para evitar que transferncias de I/O rpidas (sncronas), como fitas, disco ou rede de comunicao, no interrompam o CPU a cada byte transferido. O DMA transfere diretamente para a memria, sem interrupo da CPU. Uma interrupo gerada apenas a cada bloco, para encontrar um buffer e configurar os registradores (com endereos inicial e fi-

  • 17

    nal). Como a memria s pode transferir 1 palavra / ciclo, a CPU s vezes concorre com o DMA para realizar operaes de acesso memria (apenas um barramento). O cdigo ASCII um mapeamento de bits para caracteres de texto, por exemplo: 0 (47), A (65) e a (97).

    Concorrncia A programao concorrente pode ocorrer de duas formas diferentes:

    Processos: ocupam espaos de endereos diferentes, e se comunicam usando pipes oferecidos pelo sistema opera-cional.

    Threads: ocupam o mesmo espao de endereo de uma aplicao, e a comunicao feita por um mecanismo da linguagem de programao (a JVM do Java oferece um mecanismo multithreading)

    Em alguns tipos de aplicaes, threads so essenciais, como no caso de aplicativos com interface grfica, em que o programa pode esperar interao do usurio enquanto processa alguma tarefa. Outro exemplo so servidores que podem esperar por requisies de novos clientes enquanto lidam com requisies j enviadas. Para que dois ou mais processos possam ter acesso a um mesmo recurso compartilhado, existe um mecanismo que controla este acesso, chamado de mecanismo de sincronizao. Enquanto um processo estiver acessando determinado recurso, todos os outros que queiram acess-lo devero esperar. Isso se chama Excluso Mtua. A tentativa de implementar a excluso mtua nos programas traz alguns problema. Os mais freqentes so:

    Velocidade de execuo dos processos: quando um processo mais rpido obrigado esperar que um lento use o recurso e o libere. Um gargalo gerado pela consistncia dos processos onde o mais rpido ficar limitado velocida-de do mais lento. O sistema todo fica lento como conseqncia

    Starvation: o SO determina as prioridades dos processos, de duas formas diferentes: por escolha aleatria ou por prioridades. Quando a escolha aleatria, existir a probabilidade de um processo nunca ser escolhido, quando for uma escolha por prioridades, um processo de menor prioridade nunca receber o acesso ao recurso, e ai este proces-so nunca executar sua rotina.

    Sincronizao condicional: quando um recurso no est pronto para ser utilizado, o processo que vai acessar o re-curso ficar em estado de espera at que o mesmo esteja pronto. Existe o risco deste recurso nunca ficar pronto por j estar com problemas. Ento todo o sistema fica em espera.

    Algumas solues implementadas para lidar com este problema so:

    Semforos: um semforo uma varivel associada a um recurso compartilhado, indicando quando este est sendo acessado por um outro processo. Quando um processo entra ou sai da regio crtica, o seu valor alterado, de forma que outros processos possam entrar na regio. Existe uma fila de espera associada ao semforo, onde os processos tero acesso ao recurso na ordem de chegada.

    Monitores: so mecanismos de sincronizao compostos de um conjunto de procedimentos, variveis e estrutura de dados definidos dentro de um mdulo cuja finalidade a implementao automtica da excluso mtua entre seus procedimentos. A implementao feita pelo compilador

    Troca de mensagens: um mecanismo de comunicao e sincronizao entre os processos, implementado pelo sis-tema operacional atravs de duas rotinas do sistema SEND (envio de mensagem para o processo receptor) e RECEIVE (recebimento do processo transmissor). No sistema de troca de mensagens, existe a possibilidade da men-sagem se perder. J o Endereamento Indireto, que o uso de uma rea compartilhada para a troca de mensagens.

    Concorrncia: Deadlocks Um problema da concorrncia quando mtodos sincronizados chamam outros mtodos sincronizados. Isso pode causar de-adlock, quando uma thread A espera a liberao de um objeto, que est com a thread B. Mas esta s vai liberar o objeto aps uma alterao de outra thread (A, por exemplo), monopolizando-a. Exemplos: Cenrio 1 (No ocorre deadlock), saldo do caixa: R$0.00

    Cliente 1 atendido (recebe acesso do caixa), deposita 1000 reais e libera o caixa Cliente 2 atendido (recebe o acesso do caixa), saca 800 reais e libera o caixa.

    Cenrio 2: (Ocorre deadlock), cliente 2 chega antes de cliente 1