apostila de sistemas operacionais

211
 SISTEMAS OPERACIONAIS  APOSTILA por Lucília R ibeiro “Nada lhe posso dar que já não exista em você mesmo. Não posso abrir-lhe outro mundo de imagens, além daquele que há em sua própria alma. Nada lhe posso dar a não ser a oportuni- dade, o impulso, a chave. Eu o ajudarei a tornar visível o seu próprio mundo, e isso é tudo.” (Hermann Hesse) Versão 3.0 – ago/05

Upload: el-concursanda

Post on 16-Oct-2015

686 views

Category:

Documents


1 download

TRANSCRIPT

  • 5/26/2018 Apostila de Sistemas Operacionais

    1/211

    SISTEMAS OPERACIONAISAPOSTILA por Luclia Ribeiro

    Nada lhe posso dar que j no exista em voc mesmo. No posso abrir-lhe outro mundo deimagens, alm daquele que h em sua prpria alma. Nada lhe posso dar a no ser a oportuni-dade, o impulso, a chave. Eu o ajudarei a tornar visvel o seu prprio mundo, e isso tudo.

    (Hermann Hesse)

    Verso 3.0 ago/05

  • 5/26/2018 Apostila de Sistemas Operacionais

    2/211

    Sistemas Operacionais Lucilia Ribeiro 2

    ndice

    "A alma tem terrenos infranqueveis, onde retemos nossossonhos dourados ou um tenebroso drago. Assim fazemospor medo de que ambos nos escapem, temendo que nosroubem o ouro ou nos devore o drago(Ralph Emerson)

    NDICE ................................................... ........................................................... .................................................... 2

    VISO GERAL......................................................... ........................................................... ................................. 7

    1.1 INTRODUO ................................................... ........................................................... ..................... 71.2 OSISTEMAOPERACIONAL-FUNCIONALIDADES.......................................................... .......... 7

    1.2.2 O SISTEMA OPERACIONAL VISTO COMO UM GERENTE DE RECURSOS............................. 71.3 MQUINAVIRTUAL ....................................................... ........................................................... ...... 81.4 HISTRIADOSSISTEMASOPERACIONAIS................................................................................. 8

    1.4.1 DCADA DE 1940 (Ausncia de SOs)................................. ........................................................... 9

    1.4.2 DCADA DE 1950 (Processamento em Batch) .................................................................. ............ 91.4.3 DCADA DE 1960 (Processamento Time-sharing)....... ................................................................ . 91.4.4 DCADA DE 1970 (Multiprocessamento) ............................................................ .......................... 91.4.5 DCADA DE 1980 (Computadores Pessoais):....................................... ...................................... 101.4.6 DCADA DE 1990 (Sistemas Distribudos): ................................................................................ 10

    1.5 CLASSIFICAODOSSISTEMASOPERACIONAIS..................................................................10 1.5.1 SISTEMAS MONOPROGRAMVEIS OU MONOTAREFAS........................................................ 101.5.2 SISTEMAS MULTIPROGRAMVEIS OU MULTITAREFAS....................................................... 11a) Sistemas Batch................................................................. ................................................................. .. 11b) Sistemas de Tempo Compartilhado .................................................................. .................................. 11c) Sistemas de Tempo Real ............................................................ ......................................................... 121.5.3 SISTEMAS COM MLTIPLOS PROCESSADORES .................................................................... 12

    1.6 EXERCCIOS ............................................................ ............................................................. ........... 14

    CONCEITOS DE HARDWARE E SOFTWARE...................................................... ...................................... 16

    2.1 INTRODUO ................................................... ........................................................... ................... 162.2 UNIDADESMTRICAS........................................................................................... ........................ 162.3 HARDWARE................................ ............................................................ ......................................... 16

    2.3.1 PROCESSADOR................................................................................... ......................................... 172.3.2 MEMRIA PRINCIPAL........................................................... ..................................................... 172.3.3 MEMRIA CACHE.......................................................... ........................................................... .. 182.3.4 MEMRIA SECUNDRIA..................... ................................................................ ....................... 192.3.5 DISPOSITIVOS DE ENTRADA/SADA..................................................... .................................... 192.3.6 BARRAMENTO .................................................................................. ........................................... 202.3.7 PIPELINING ........................................................... ........................................................... ........... 212.3.8 ARQUITETURAS RISC e CISC................................................... .................................................. 222.3.9 ANLISE DE DESEMPENHO....................................................... ............................................... 22

    2.4 SOFTWARE ........................................................ ............................................................... ............... 232.4.1 TRADUTOR..................................................................... ............................................................ .. 232.4.2 INTERPRETADOR.................................................................... .................................................... 242.4.3 LINKEDITOR............. ................................................................ ................................................... 242.4.4 INTERPRETADOR DE COMANDOS e LINGUAGEM DE CONTROLE..................................... 242.4.5 ATIVAO / DESATIVAO DO SISTEMA.............................................. .................................. 24

    2.5 EXERCCIOS ............................................................ ............................................................. ........... 25

    CONCORRNCIA .................................................. ....................................................... .................................... 27

    3.1 INTRODUO ................................................... ........................................................... ................... 273.2 INTERRUPOE EXCEO................................................... ....................................................... 283.3 OPERAESDEENTRADA/SADA ........................................................... .................................. 293.4 BUFERIZAO....................... ................................................................ ......................................... 303.5 SPOOLING......................................................... ........................................................... .................... 303.6 REENTRNCIA................................................................ .............................................................. .. 313.7 EXERCCIOS ............................................................ ............................................................. ........... 31

  • 5/26/2018 Apostila de Sistemas Operacionais

    3/211

    Sistemas Operacionais Lucilia Ribeiro 3

    ESTRUTURA DO SISTEMA OPERACIONAL................................................. ............................................. 32

    4.1 INTRODUO ................................................... ........................................................... ................... 324.2 CHAMADASDESISTEMA(SYSTEM CALLS) .................................................. ............................... 324.3 MODOSDEACESSO ......................................................... ........................................................... ... 334.4 ARQUITETURAMONOLTICA............................................................................................. ......... 344.5 ARQUITETURADECAMADAS........................................ ........................................................... .. 344.6 MQUINAVIRTUAL ....................................................... ........................................................... .... 354.7 EXERCCIOS ............................................................ ............................................................. ........... 35

    PROCESSOS ......................................................... ........................................................... ................................... 36

    5.1 INTRODUO ................................................... ........................................................... ................... 365.2 ESTRUTURADOPROCESSO..................... ........................................................... ......................... 36

    5.2.1 CONTEXTO DE HARDWARE........................................................... ........................................... 375.2.2 CONTEXTO DE SOFTWARE ........................................................... ............................................ 375.2.3 ESPAO DE ENDEREAMENTO..................................................................... .......................... 385.2.4 BLOCO DE CONTROLE DE PROCESSO ........................................................ ........................... 39

    5.3 ESTADOSDOPROCESSO ......................................................... ..................................................... 395.4 MUDANADEESTADODOPROCESSO .............................................................. ....................... 395.5 CRIAOEELIMINAODEPROCESSOS................................................................................ 405.6 PROCESSOSINDEPENDENTES, SUBPROCESSOSETHREADS ..............................................415.7 PROCESSOSPRIMEIRO(FOREGROUND)ESEGUNDOPLANO(BACKGROUND) ................ 425.8 PROCESSOSLIMITADOSPORCPU(CPU-BOUND)EPORE/S(I/O-BOUND)..........................435.9 SELEODEPROCESSOS................................................................... .......................................... 43

    5.9.1 FILAS PARA SELEO DE PROCESSOS............................................................. ...................... 435.9.2 ESCALONADORES.................................................................. ..................................................... 43

    5.10 EXERCCIOS ............................................................ ............................................................. ........... 44

    THREADS....................................................... ................................................................ ..................................... 46

    6.1 INTRODUO ................................................... ........................................................... ................... 466.2 THREADS ....................................................... ........................................................... ....................... 466.3 AMBIENTEMONOTHREAD........................................................ .................................................. 476.4 AMBIENTEMULTITHREAD............................................................... ........................................... 476.5 ARQUITETURAEIMPLEMENTAO.........................................................................................49

    6.5.1 THREADS EM MODO USURIO ...................................................... .......................................... 496.5.2 THREADS EM MODO KERNEL ................................................................ .................................. 506.5.3 THREADS EM MODO HBRIDO........................................................... ...................................... 50

    6.6 MODELOSDEPROGRAMAO.............................................. ..................................................... 516.7 EXERCCIOS ............................................................ ............................................................. ........... 51

    SINCRONIZAO E COMUNICAO ENTRE PROCESSOS ............................................................ ..... 52

    7.1 INTRODUO ................................................... ........................................................... ................... 527.2 SINCRONIZAO........................................................... .............................................................. .. 527.3 ESPECIFICAODECONCORRNCIAEMPROGRAMAS.......................................................54 7.4 PROBLEMASDECOMPARTILHAMENTODERECURSOS.......................................................54 7.5 EXCLUSOMTUA ....................................................... ........................................................... ..... 56

    7.6 SOLUESDEHARDWARE ..................................................... .................................................... 567.6.1 DESABILITAO DAS INTERRUPES.................................................................................... 567.6.2 INSTRUO TEST-AND-SET................................................................................................. ...... 57

    7.7 SOLUESDESOFTWARE...........................................................................................................58 7.7.1 PRIMEIRO ALGORITMO: ESTRITA ALTERNNCIA....................................... .......................... 587.7.2 SEGUNDO ALGORITMO:...................................... ....................................................... ............... 587.7.3 TERCEIRO ALGORITMO: ........................................................ ................................................... 597.7.4 QUARTO ALGORITMO: .............................................................. ................................................ 607.7.5 ALGORITMO DE PETERSON............................................... ....................................................... 60

    7.8 PROBLEMADOPRODUTOR-CONSUMIDOROU SINCRONIZAOCONDICIONAL .......... 617.9 SEMFOROS............................ ................................................................ ........................................ 63

    7.9.1 EXCLUSO MTUA UTILIZANDO SEMFOROS.......................................... ........................... 637.9.2 SINCRONIZAO CONDICIONAL UTILIZANDO SEMFOROS ............................................. 64

    7.10 MONITORES.............................................................................................. ....................................... 657.10.1 EXCLUSO MTUA UTILIZANDO MONITORES................................................................. 657.10.2 SINCRONIZAO CONDICIONAL UTILIZANDO MONITORES ......................................... 66

    7.11 TROCADEMENSAGENS......................................................... ...................................................... 68

  • 5/26/2018 Apostila de Sistemas Operacionais

    4/211

    Sistemas Operacionais Lucilia Ribeiro 4

    7.12 PROBLEMASCLSSICOSDESINCRONIZAO .......................................................... ............ 687.12.1 PROBLEMA DOS FILSOFOS GLUTES................................................ ............................. 687.12.2 PROBLEMA DO BARBEIRO DORMINHOCO.................................................................... .... 69

    7.13 EXERCCIOS ............................................................ ............................................................. ........... 69

    DEADLOCK......... ................................................................ ......................................................... ...................... 72

    8.1 INTRODUO ................................................... ........................................................... ................... 72

    8.2 EXEMPLOSDEDEADLOCKS................................ ........................................................... ............. 728.2.1 DEADLOCK DE TRFEGO.............................................................. ........................................... 728.2.2 DEADLOCK SIMPLES DE RECURSOS ................................................................ ...................... 728.2.3 DEADLOCK EM SISTEMAS DE SPOOLING ................................................................. ............. 728.2.4 ADIAMENTO INDEFINIDO................................................... ...................................................... 73

    8.3 RECURSOS ............................................................ ................................................................ ........... 738.4 QUATROCONDIESNECESSRIASPARADEADLOCKS....................................................74 8.5 OMODELODODEADLOCK..........................................................................................................74 8.6 MTODOSPARALIDARCOMDEADLOCKS.............................................................................. 768.7 OALGORITMODOAVESTRUZ........................................................ ............................................ 768.8 DETECODEDEADLOCKS....................................................................... ................................. 76

    8.8.1 DETECO DO DEADLOCK COM UM RECURSO DE CADA TIPO...................................... . 768.8.2 DETECO DO DEADLOCK COM VRIOS RECURSOS DE CADA TIPO............................. 77

    8.9 RECUPERAODEDEADLOCKS................................................................ ................................ 788.9.1 RECUPERAO ATRAVS DA PREEMPO....... ................................................................ .... 788.9.2 RECUPERAO ATRAVS DE VOLTA AO PASSADO........................ ...................................... 788.9.3 RECUPERAO ATRAVS DE ELIMINAO DE PROCESSOS...... ........................................ 78

    8.10 TENTATIVASDEEVITARODEADLOCK .................................................... ............................... 798.10.1 ESTADOS SEGUROS E INSEGUROS .................................................................. ................... 798.10.2 ALGORITMO DO BANQUEIRO PARA UM NICO TIPO DE RECURSO............................ 79

    8.11 PREVENODEDEADLOCKS.....................................................................................................80 8.11.1 ATACANDO O PROBLEMA DA EXCLUSO MTUA........................................................... 808.11.2 ATACANDO O PROBLEMA DA POSSE E DA ESPERA......................................................... 808.11.3 ATACANDO O PROBLEMA DA CONDIO DE NO-PREEMPO................................. 808.11.4 ATACANDO O PROBLEMA DA ESPERA CIRCULAR........................................................... 80

    8.12 EXERCCIOS ............................................................ ............................................................. ........... 81

    GERNCIA DO PROCESSADOR ........................................................ ......................................................... .. 839.1 INTRODUO ................................................... ........................................................... ................... 839.2 FUNESBSICAS........................................................................................................................83 9.3 CRITRIOSDEESCALONAMENTO.............................................................................................83 9.4 ESTRATGIASDEESCALONAMENTO............................................. .......................................... 849.5 ESCALONAMENTOFIRSTCOMEFIRSTSERVED(FCFS)OU FIFO......................................... 849.6 ESCALONAMENTOMENORJOBPRIMEIROOU SJF(SHORTEST JOB FIRST).............................859.7 ESCALONAMENTOCIRCULAROU ROUNDROBIN..................................................................86 9.8 ESCALONAMENTOPORPRIORIDADES........................................... .......................................... 879.9 ESCALONAMENTOPORMLTIPLASFILAS.............................................................................88 9.10 EXERCCIOS ............................................................ ............................................................. ........... 89

    GERNCIA DE MEMRIA ............................................................. ............................................................. ... 9310.1 INTRODUO ................................................... ........................................................... ................... 93

    10.2 FUNESBSICAS........................................................................................................................93 10.3 ALOCAOCONTGUASIMPLES...............................................................................................93 10.4 TCNICADEOVERLAY....................................................... ........................................................... . 9310.5 ALOCAOPARTICIONADA.......................................................................................................94

    10.5.1 ALOCAO PARTICIONADA ESTTICA................................................................. ............. 9410.5.2 ALOCAO PARTICIONADA DINMICA...................................................... ....................... 9510.5.3 ESTRATGIAS DE ALOCAO DE PARTIO.................................................................... 97

    10.6 SWAPPING ........................................................ ........................................................... .................... 9910.7 EXERCCIOS ............................................................ ............................................................. ......... 100

    MEMRIA VIRTUAL.................................................... ........................................................... ...................... 103

    11.1 INTRODUO ................................................... ........................................................... ................. 10311.2 ESPAODEENDEREAMENTOVIRTUAL................................................................ .............. 10311.3 MAPEAMENTO................................................................. ............................................................. 10411.4 PAGINAO ...................................................... ........................................................... ................. 104

  • 5/26/2018 Apostila de Sistemas Operacionais

    5/211

    Sistemas Operacionais Lucilia Ribeiro 5

    11.4.1 PAGINAO MULTINVEL ................................................................... ............................... 10711.4.2 POLTICAS DE BUSCA DE PGINAS.......... ..................................................................... ... 10811.4.3 POLTICAS DE ALOCAO DE PGINAS.................................................................... ...... 10911.4.4 POLTICAS DE SUBSTITUIO DE PGINAS................................................................... 10911.4.5 WORKING SET ......................................................... ............................................................. 11011.4.6 ALGORITMOS DE SUBSTITUIO DE PGINAS.................... .......................................... 111

    11.5 SEGMENTAO................................................................. ........................................................... 114

    11.6 SEGMENTAOPAGINADA........................................................ .............................................. 11511.7 EXERCCIOS ............................................................ ............................................................. ......... 116

    SISTEMA DE ARQUIVOS....................................................... ............................................................... ........ 122

    12.1 INTRODUO ................................................... ........................................................... ................. 12212.2 ARQUIVOS ...................................................... ........................................................... .................... 122

    12.2.1 MTODO DE ACESSO........ ................................................................ .................................. 12212.2.2 IMPLEMENTAO DE ARQUIVOS .............................................................. ....................... 123

    12.3 MTODOSDEALOCAO.................................................................. ........................................ 12412.3.1 ALOCAO CONTGUA...... ................................................................ ................................. 12412.3.2 ALOCAO COM LISTA LIGADA........................................................................................ 12512.3.3 ALOCAO COM LISTA LIGADA USANDO UM NDICE.................................................. 125

    12.4 GERNCIADEESPAOEMDISCO............................................................................................126

    12.5 CONTROLEDEBLOCOSLIVRES .......................................................... ..................................... 12612.5.1 MAPA DE BITS ................................................................................ ...................................... 12612.5.2 LISTA ENCADEADA................................................... ........................................................... 12612.5.3 AGRUPAMENTO....................................................... ............................................................ 12612.5.4 CONTADORES...................................... ................................................................ ................. 126

    12.6 CONSISTNCIADOSISTEMADEARQUIVOS ........................................................ ................. 12712.6.1 CONSISTNCIA EM BLOCOS .................................................................. ............................ 127

    12.7 PERFORMANCEDOSISTEMADEARQUIVOS........................................................ ................. 12712.7.1 CACHE ............................................................. ............................................................. ......... 12712.7.2 LEITURA ANTECIPADA DE BLOCOS ................................................................ ................. 12712.7.3 REDUO DO MOVIMENTO DO BRAO DO DISCO....................................................... 128

    12.8 EXERCCIOS ............................................................ ............................................................. ......... 128

    GERNCIA DE DISPOSITIVOS..................................................... ............................................................... 129

    13.1 INTRODUO ................................................... ........................................................... ................. 12913.2 ACESSOAOSUBSISTEMADEENTRADAESADA................................................................. 12913.3 SUBSISTEMADEENTRADAESADA........................................................... ............................ 13013.4 DEVICEDRIVERS ........................................................... ............................................................ .. 13113.5 CONTROLADORES......................................................... .............................................................. 13113.6 DISPOSITIVOSDEENTRADAESADA.....................................................................................132 13.7 DISCOSRGIDOS...................................................... ........................................................... .......... 132

    13.7.1 TEMPO DE ACESSO ........................................................... .................................................. 13313.7.2 ENTRELAAMENTO (interleaving).................................................................... .................. 13313.7.3 ESCALONAMENTO DO BRAO DO DISCO ................................................................ ....... 134

    13.8 EXERCCIOS ............................................................ ............................................................. ......... 136

    MULTIMDIA.............................................. ........................................................... .......................................... 13714.1 INTRODUO ................................................... ........................................................... ................. 137

    14.2ARQUIVOSMULTIMDIA ...................................................... ............................................................ 13814.2.1 CODIFICAO DE UDIO........................................................ .......................................... 13914.2.2 CODIFICAO DE VDEO................................................................................................. .. 139

    14.3COMPRESSODEVDEO................................................................... ................................................ 14014.3.1 O PADRO JPEG ......................................................... ......................................................... 14014.3.2 O PADRO MPEG............. ................................................................ .................................... 142

    14.4ESCALONAMENTODEPROCESSOSMULTIMDIA....................................................................... 14314.4.1 ESCALONAMENTO DE PROCESSOS HOMOGNEOS...................................................... 14314.4.2 ESCALONAMENTO GERAL DE TEMPO REAL.......................................................... ......... 14414.4.3 ESCALONAMENTO POR TAXA MONOTNICA............................................................... .. 14514.4.4 ESCALONAMENTO PRAZO MAIS CURTO PRIMEIRO ...................................................... 146

    14.5PARADIGMASDESISTEMASDEARQUIVOSMULTIMDIA....................................................... 14714.5.1 FUNES DE CONTROLE VCR .................................................................... ...................... 14714.5.2 VDEO QUASE SOB DEMANDA........................................................................................... 148

    14.6ALOCAODEARQUIVOSEMDISCOS.................................................... ..................................... 149

  • 5/26/2018 Apostila de Sistemas Operacionais

    6/211

    Sistemas Operacionais Lucilia Ribeiro 6

    14.6.1 ALOCAO DE UM ARQUIVO EM UM NICO DISCO.................................................... 14914.6.2 DUAS ESTRATGIAS ALTERNATIVAS DE ORGANIZAO DE ARQUIVOS ...................15014.6.3 ALOCAO DE ARQUIVOS PARA VDEO QUASE SOB DEMANDA..................... ........... 151

    14.7 EXERCCIOS ............................................................ ............................................................. ......... 151

    SEGURANA.................................................. ........................................................... ....................................... 153

    15.1 INTRODUO ................................................... ........................................................... ................. 153

    15.2 CRIPTOGRAFIA.................................................... ................................................................ ......... 15315.2.1 CRIPTOGRAFIA POR CHAVE SECRETA ........................................................... ................. 15415.2.2 CRIPTOGRAFIA POR CHAVE PBLICA............................................................................. 156

    15.3 AUTENTICAO.................................................................................. ......................................... 15715.3.1 AUTENTICAO BSICA............................. ................................................................ ........ 15815.3.2 BIOMETRIA E CARTES INTELIGENTES ........................................................... ............... 15915.3.3 KERBEROS................................................................................ ............................................. 16015.3.4 ASSINATURA NICA..................................................... ........................................................ 160

    15.4 CONTROLEDEACESSO ............................................................... ............................................... 16115.4.1 DIREITO DE ACESSO E DOMNIOS DE PROTEO.......... .............................................. 16115.4.2 MODELOS E POLTICAS DE CONTROLE DE ACESSO.......................... ........................... 16215.4.3 MECANISMOS DE CONTROLE DE ACESSO .............................................................. ........ 163

    15.5 ATAQUESSEGURANA ........................................................ .................................................. 165

    15.5.1 CRIPTOANLISE................................................................ ................................................... 16515.5.2 VRUS E VERMES.................................................... .............................................................. 16515.5.3 ATAQUES DE RECUSA DE SERVIO (DoS) .............................................................. ......... 16715.5.4 EXPLORAO DE SOFTWARE...................................................................... ...................... 16815.5.5 INVASO DE SISTEMA ...................................................... ................................................... 168

    15.6 PREVENODEATAQUESESOLUESDESEGURANA................................ ................. 16915.6.1 FIREWALLS ................................................................. .......................................................... 16915.6.2 SISTEMAS DE DETECO DE INTRUSOS (IDSs)....................... ....................................... 17015.6.3 SOFTWARE ANTIVRUS........................................................................................................ 17015.6.4 CORREES DE SEGURANA............................................................................................ 17215.6.5 SISTEMA DE ARQUIVOS SEGUROS............................................. ....................................... 17215.6.6 O LIVRO LARANJA DA SEGURANA..................... ............................................................. 173

    15.7 COMUNICAOSEGURA...........................................................................................................173

    15.8 ESTEGANOGRAFIA........................................................... ........................................................... 17415.9 ESTUDODECASO:SEGURANADESISTEMASUNIX........................................ .................. 17415.10 EXERCCIOS ............................................................ ............................................................. ......... 176

    MULTIPROCESSAMENTO.............................................................. ............................................................. 179

    16.1 INTRODUO ................................................... ........................................................... ................. 17916.2 ARQUITETURADEMULTIPROCESSADOR......................................................................... ..... 179

    16.2.1 CLASSIFICAO DE ARQUITETURAS SEQUENCIAIS E PARALELAS........ .................... 17916.2.2 ESQUEMA DE INTERCONEXO DE PROCESSADORES .................................................. 18016.2.3 SISTEMAS FRACAMENTE x FRACAMENTE ACOPLADOS ............................................... 184

    16.3 ORGANIZAODESISTEMASOPERACIONAISMULTIPROCESSADORES ...................... 18516.3.1 MESTRE/ESCRAVO ........................................................ ....................................................... 18616.3.2 NCLEOS SEPARADOS.......................... ........................................................... ................... 186

    16.3.3 ORGANIZAO SIMTRICA.............. ................................................................ .................. 18716.4 ARQUITETURASDEACESSOMEMRIA.............................................................................. 18716.4.1 ACESSO UNIFORME MEMRIA.................................................................... .................. 18816.4.2 ACESSO NO UNIFORME MEMRIA ........................................................... .................. 18816.4.3 ARQUITETURA DE MEMRIA SOMENTE DE CACHE ..................................................... 18916.4.4 SEM ACESSO MEMRIA REMOTA................................................................... ............... 190

    16.5 COMPARTILHAMENTODEMEMRIAEMMULTIPROCESSADORES................................ 19116.5.1 COERNCIA DE CACHE................................................................ ...................................... 19116.5.2 REPLICAO E MIGRAO DE PGINAS ................................................................... ..... 19216.5.3 MEMRIA VIRTUAL COMPARTILHADA................................................ ............................ 193

    16.6 ESCALONAMENTODEMULTIPROCESSADORES......... ......................................................... 19416.6.1 ESCALONAMENTO DE MULTIPROCESSADORES CEGOS AO JOB................................ 19516.6.2 ESCALONAMENTO DE MULTIPROCESSADORES CIENTES AO JOB............................. 196

    16.7 MIGRAODEPROCESSOS................................. ................................................................ ...... 19816.7.1 FLUXO DE MIGRAO DE PROCESSOS.................................................................... ....... 19816.7.2 CONCEITOS DE MIGRAO DE PROCESSOS ............................................................. ..... 19916.7.3 ESTRATGIAS DE MIGRAO DE PROCESSOS............................................................... 200

  • 5/26/2018 Apostila de Sistemas Operacionais

    7/211

    Sistemas Operacionais Lucilia Ribeiro 7

    16.8 BALANCEAMENTODECARGA ............................................................ ..................................... 20116.8.1 BALANCEAMENTO ESTTICO DE CARGA........ ................................................................ 20116.8.2 BALANCEAMENTO DINMICO DE CARGA....................................................................... 202

    16.9 EXCLUSOMTUAEMMULTIPROCESSADORES................................................................ 20416.9.1 TRAVAS GIRATRIAS ......................................................... .................................................. 20516.9.2 TRAVAS DORMIR/ACORDAR................................................................ ............................... 20516.9.3 TRAVAS DE LEITURA/ESCRITA............................................................... ............................ 206

    16.10 EXERCCIOS ............................................................ ............................................................. ......... 206BIBLIOGRAFIA...................................................... ........................................................... .............................. 210

  • 5/26/2018 Apostila de Sistemas Operacionais

    8/211

    01 Viso Geral

    Sistemas Operacionais Lucilia Ribeiro 7

    Viso Geral

    As coisas so sempre melhores no comeo(Blaise Pascal)

    1.1 INTRODUO

    Um computador sem software nada seria. O software pode ser dividido, a grosso mo-do, em duas categorias: os programas do sistema, que gerenciam a operao do prpriocomputador, e os programas de aplicao, que resolvem problemas para seus usurios.O mais importante dos programas de sistema o sistema operacional, que controlatodos os recursos do computador, e fornece a base sobre a qual os programas aplicativosso escritos.

    Um sistema operacional, por mais complexo que possa parecer, apenas um conjun-to de rotinas executado pelo processador, de forma semelhante aos programas dos usu-

    rios. Sua principal funo controlar o funcionamento de um computador, gerenciando autilizao e o compartilhamento dos seus diversos recursos, como processadores, mem-rias e dispositivos de entrada e sada.

    Sem o sistema operacional, um usurio para interagir com o computador deveria co-nhecer profundamente diversos detalhes sobre hardware do equipamento, o que tornariaseu trabalho lento e com grandes possibilidades de erros.

    A grande diferena entre um sistema operacional e aplicaes convencionais, a ma-neira como suas rotinas so executadas em funo do tempo. Um sistema operacionalno executado de forma linear como na maioria das aplicaes, com incio, meio e fim.Suas rotinas so executadas concorrentemente em funo de eventos assncronos, ouseja, eventos que podem ocorrer a qualquer momento.

    1.2 O SISTEMA OPERACIONAL - FUNCIONALIDADES

    O Sistema Operacional o softwareque controla todos os recursos do computador efornece a base sobre a qual os programas aplicativos so escritos e suas principais fun-cionalidades so: Mquina Virtual ou Estendida e Gerente de Recursos.

    1.2.1 O SISTEMA OPERACIONAL VISTO COMO UMA MQUINA ESTENDIDA

    Programar em nvel de arquitetura uma tarefa ingrata para qualquer usurio de umsistema de computador. Para tratar da entrada/sada numa unidade de disco flexvel, porexemplo, o usurio deveria trabalhar com comandos relativos a: leitura/escrita de dados,movimento da cabea, formatao de trilhas e inicializao, sensoriamento, reinicializa-o e calibrao do controlador e do driver de disquete.

    bvio dizer que o programador no vai querer lidar com esse tipo de detalhes, de-sejando portanto uma abstrao de alto nvel. Assim, deve haver um programa que es-conda do usurio o verdadeiro hardware e apresente-lhe um esquema simples de arqui-vos identificados que possam ser lidos ou escritos. Tal programa o sistema operacional.Do ponto de vista de mquina estendida, o sistema operacional trata ainda de outrasquestes incmodas como: interrupes, temporizadores, gerncia de memria etc.

    A funo do sistema operacional, nesse ponto de vista, apresentar ao usurio umamquina virtual equivalente ao hardware, porm muito mais fcil de programar.

    1.2.2 O SISTEMA OPERACIONAL VISTO COMO UM GERENTE DE RECURSOS

    Em sistemas onde diversos usurios compartilham recursos do sistema computacio-

    nal, necessrio controlar o uso concorrente desses recursos. Se imaginarmos uma im-pressora sendo compartilhada, dever existir algum tipo de controle para que a impres-so de um usurio no interfira nas dos demais. Novamente o sistema operacional que

    1

  • 5/26/2018 Apostila de Sistemas Operacionais

    9/211

    01 Viso Geral

    Sistemas Operacionais Lucilia Ribeiro 8

    tem a responsabilidade de permitir o acesso concorrente a esse e a outros recursos deforma organizada e protegida.

    No apenas em sistemas multiusurio que o sistema operacional importante. Sepensarmos que um computador pessoal nos permite executar diversas tarefas ao mesmotempo, como imprimir um documento, copiar um arquivo pela Internet ou processar umaplanilha, o sistema operacional deve ser capaz de controlar a execuo concorrente detodas essas atividades.

    Assim, o sistema operacional deve gerenciar o uso dos recursos, contabilizando o usode cada um e garantindo acesso ordenado de usurios a recursos atravs da mediaode conflitos entre as diversas requisies existentes.

    1.3 MQUINA VIRTUAL

    Um sistema computacional visto somente sob a tica do hardware, ou seja, como umconjunto de circuitos eletrnicos, placas, cabos e fontes de alimentao, tem pouca utili-dade. atravs do software que servios so oferecidos ao usurio, como armazenamen-to de dados em discos, impresso de relatrios, gerao de grficos, entre outras fun-es.

    Uma operao efetuada pelo software pode ser implementada em hardware, enquan-to uma instruo executada pelo hardware pode ser simulada via software. Esta decisofica a carga do projetista do sistema computacional em funo de aspectos como custo,confiabilidade e desempenho. Tanto o hardware quanto o software so logicamente equi-valentes, interagindo de uma forma nica para o usurio.

    Nos primeiros computadores, a programao era realizada em painis atravs de fios,exigindo, consequentemente, um grande conhecimento da arquitetura do hardware e dasua linguagem de mquina. Isso era uma grande dificuldade para os programadores dapoca.

    Para afastar o usurio da complexidade do hardware, foi encontrada uma forma: co-locar uma camada de software em cima do hardware para gerenciar todos os componen-tes do sistema, aparecendo ao usurio como uma interface muito simples de entender eprogramar. Tal interface a mquina virtual, e a camada de software o SistemaOperacional.

    Sistema

    Bancrio

    Controle

    ImobilirioJogos

    CompiladoresEditores

    de TextoInterpretadores

    Sistema Operacional

    Linguagem de MquinaMicrocdigo

    Dispositivos Bsicos

    Num sistema computacional podem atuar diferentes usurios, cada qual tentando so-lucionar seus problemas. Assim, h uma diversidade enorme de programas aplicativos. Osistema operacional controla e coordena o uso do hardware entre os vrios programasaplicativos, para os vrios usurios.

    1.4 HISTRIA DOS SISTEMAS OPERACIONAIS

    A evoluo dos Sistemas Operacionais est intimamente relacionada com o desenvol-vimento dos computadores. Objetivando permitir um conhecimento geral, o histrico dosSistemas Operacionais aqui apresentados ser dividido em dcadas. Em cada uma das

    Hardware

    Programas doSistema

    Programas deAplicao

  • 5/26/2018 Apostila de Sistemas Operacionais

    10/21

    01 Viso Geral

    Sistemas Operacionais Lucilia Ribeiro 9

    dcadas sero discutidas as principais caractersticas do hardwaree do Sistema Opera-cional da poca.

    1.4.1 DCADA DE 1940 (Ausncia de SOs)

    A Segunda Guerra Mundial acelerou as pesquisas para o desenvolvimento dos primei-ros computadores (Mark I, ENIAC etc.), objetivando dinamizar o processo de realizaode clculos. Os computadores, ento desenvolvidos, eram baseados em vlvulas. Eles

    ocupavam salas inteiras e no possuam um SO. Com isso, programar, por exemplo, oENIAC para realizar um determinado clculo poderia levar dias, pois era necessrio co-nhecer profundamente o funcionamento de seu hardware e utilizar linguagem de mqui-na;

    1.4.2 DCADA DE 1950 (Processamento em Batch)

    O desenvolvimento do transistor permitiu um grande avano da informtica. Assim,os computadores tornaram-se menores, mais confiveis e mais rpidos. Nesta dcadaobserva-se o surgimento dos primeiros SOs e a programao das mquinas se dava a-travs de cartes perfurados.

    Os processos a serem executados entravam seqencialmente no processador e roda-vam at terminar. Este tipo de processamento ficou conhecido como processamento embatch ou lote, o qual ilustrado pela figura abaixo:

    Pode no parecer um avano, mas anteriormente os programas eram submetidos pe-lo operador, um a um, fazendo com que o processador ficasse ocioso entre a execuode um job e outro. Com o processamento batch, um conjunto de programas era subme-tido de uma vez s, o que diminua o tempo de espera entre a execuo dos programas,permitindo, assim, melhor aproveitamento do processador.

    1.4.3 DCADA DE 1960 (Processamento Time-sharing)

    Nesta dcada entram em cena os circuitos inte-grados (CIs), o que permitiu que os computadores setornassem mais baratos e, portanto, mais acessveis

    s organizaes empresariais. Na poca em questoos processos no mais monopolizavam o uso do pro-cessador mas sim compartilhavam o mesmo. Dessaforma, o tempo de processamento passou a ser i-gualmente dividido entre os processos existentes. Es-ta tcnica de processamento acabou ficando conheci-da como processamento time-sharing ou processa-mento de tempo compartilhado.

    1.4.4 DCADA DE 1970 (Multiprocessamento)

    Nesta dcada a integrao em larga escala (Large Scale Integration LSI) e a inte-grao em muito grande escala (Very Large Scale Integration - VLSI) permitiram uma

  • 5/26/2018 Apostila de Sistemas Operacionais

    11/21

    01 Viso Geral

    Sistemas Operacionais Lucilia Ribeiro 10

    reduo significativa no tamanho e no custo dos computadores. Com isso, os computado-res com mltiplos processadores tornaram-se acessveis e os processos passaram a serexecutados em paralelo. Este tipo de processamento ficou conhecido como multiproces-samento, o qual ilustrado pela Figura abaixo:

    1.4.5 DCADA DE 1980 (Computadores Pessoais):

    Os computadores pessoais tornam-se mais acessveis comercialmente e a microcom-putao se consolidou. Assim, surgiram os SOs voltados especificamente para os entochamados microcomputadores (ex.: CP/M6, MS-DOS7, OS/28 etc.). interessante des-tacar que neste perodo a rpida evoluo dos processadores dos computadores pessoaispermitiu que seus SOs incorporassem importantes recursos como interface grfica e mul-timdia. O baixo custo dos equipamentos permitiu, tambm, o surgimento das redes lo-cais e com isso desenvolveram-se os Sistemas Operacionais de Rede (ex.: Novell Netwa-re, LAN Manager etc.);

    1.4.6 DCADA DE 1990 (Sistemas Distribudos):

    Durante a dcada de 1990 o crescimento das redes de computadores, especialmentea Internet, propiciou o surgimento de sistemas computacionais novos que se caracteri-zam por possurem uma coleo de processadores que no compartilham memria oubarramento e que se comunicam via rede. Estes sistemas acabaram sendo chamados desistemas fracamente acoplados que possibilitaram o surgimento dos sistemas distribu-dos, onde diversos SOs presentes nos computadores de uma rede interagem o suficientepara dar a impresso de que existe um nico Sistema Operacional controlando toda arede e os recursos computacionais ligados a ela. Atualmente, os pesquisadores da reade Sistemas Operacionais concentram boa parte de seus esforos nos estudos sobre osSistemas Operacionais Distribudos.

    1.5 CLASSIFICAO DOS SISTEMAS OPERACIONAIS

    A evoluo dos sistemas operacionais acompanhou a evoluo do hardware e das a-plicaes por ele suportadas. Muitos termos inicialmente introduzidos para definir concei-

    tos e tcnicas foram substitudos por outros. Isto fica muito claro quando tratamos daunidade de execuo do processador. Inicialmente, eram utilizados os termos programasou job, depois surgiu o conceito de processo, e agora, o conceito de thread.

    1.5.1 SISTEMAS MONOPROGRAMVEIS OU MONOTAREFAS

    Os primeiros Sistemas Operacionais eram tipicamente voltados para a execuo deum nico programa. Qualquer outra aplicao, para ser executada, deveria aguardar o

  • 5/26/2018 Apostila de Sistemas Operacionais

    12/21

    01 Viso Geral

    Sistemas Operacionais Lucilia Ribeiro 11

    trmino do programa corrente. Os sistemas monoprogramveis se caracterizam por per-mitir que o processador, a memria e os perifricos permaneam exclusivamente dedica-dos execuo de um nico programa.

    Neste tipo de sistema, enquanto um programa aguarda por um evento, como a digi-tao de um dado, o processador permanece ocioso, sem realizar qualquer tipo de pro-cessamento. A memria subutilizada caso o programa no a preencha totalmente, e osperifricos, como discos e impressoras, esto dedicados a um nico usurio, nem sempreutilizados de forma integral.

    Comparados a outros sistemas, os sistemas monoprogramveis ou monotarefas sode simples implementao, no existindo muita preocupao com problemas decorrentesdo compartilhamento de recursos.

    1.5.2 SISTEMAS MULTIPROGRAMVEIS OU MULTITAREFAS

    Neste tipo de sistema, os recursos computacionais so compartilhados entre os diver-sos usurios e aplicaes.

    Neste caso, enquanto um programa espera por uma operao de leitura ou gravaoem disco, outros programas podem estar sendo processados neste mesmo intervalo detempo. Nesse caso, podemos observar o compartilhamento da memria e do processa-dor. O Sistema Operacional se preocupa em gerenciar o acesso concorrente aos seusdiversos recursos.

    As vantagens do uso de tais sistemas so a reduo do tempo de resposta das aplica-es processadas no ambiente e de custos, a partir do compartilhamento dos diversosrecursos do sistema entre as diferentes aplicaes.

    A partir do nmero de usurios que interagem com o sistema, podemos classificar ossistemas multiprogramveis como monousurio ou multiusurio.

    Os sistemas multiprogramveis podem tambm ser classificados pela forma com quesuas aplicaes so gerenciadas, podendo ser divididos em sistemas batch, de tempocompartilhado ou de tempo real. Um Sistema Operacional pode suportar um ou mais

    desses tipos de processamento, dependendo de sua implementao.

    a) Sistemas BatchForam os primeiros tipos de Sistemas Operacionais multiprogramveis a serem

    implementados. O processamento em batch tem a caracterstica de no exigir a interaodo usurio com a aplicao. Todas as entradas e sadas de dados so implementadas poralgum tipo de memria secundria, geralmente arquivos em disco.

    Esses sistemas, quando bem projetados, podem ser bastante eficientes, devido melhor utilizao do processador; entretanto, podem oferecer tempos de resposta lon-gos. Atualmente, os Sistemas Operacionais implementam ou simulam o processamentobatch, no existindo sistemas exclusivamente dedicados a este tipo de processamento.

    b) Sistemas de Tempo CompartilhadoTais sistemas, tambm conhecidos como time-sharing, permitem que diversos

    programas sejam executados a partir da diviso do tempo do processador em pequenos

  • 5/26/2018 Apostila de Sistemas Operacionais

    13/21

    01 Viso Geral

    Sistemas Operacionais Lucilia Ribeiro 12

    intervalos, denominados fatia de tempo (time-slice). Caso a fatia de tempo no seja sufi-ciente para a concluso do programa, esse interrompido pelo Sistema Operacional esubmetido por um outro, enquanto fica aguardando por uma nova fatia de tempo. O sis-tema cria um ambiente de trabalho prprio, dando a impresso de que todo o sistemaest dedicado, exclusivamente, para cada usurio.

    Geralmente, sistemas de tempo compartilhado permitem a interao dos usurioscom o sistema atravs de terminais que incluem vdeo, teclado e mouse. Esses sistemaspossuem uma linguagem de controle que permite ao usurio comunicar-se diretamentecom o Sistema Operacional atravs de comandos.

    A maioria das aplicaes comerciais atualmente so processadas em sistemas detempo compartilhado, que oferecem tempos baixos de respostas a seus usurios e meno-res custos, em funo da utilizao compartilhada dos diversos recursos do sistema.

    c) Sistemas de Tempo RealOs sistemas de tempo real (real-time) diferem dos de tempo compartilhado no

    tempo exigido no processamento das aplicaes.

    Enquanto em sistemas de tempo compartilhado o tempo de processamento podevariar sem comprometer as aplicaes em execuo, nos sistemas de tempo real ostempos de processamento devem estar dentro de limites rgidos, que devem ser obede-cidos, caso contrrio podero ocorrer problemas irreparveis.

    No existe a idia de fatia de tempo. Um programa utiliza o processador o tempoque for necessrio ou at que aparea outro mais prioritrio. Essa prioridade definidapela prpria aplicao. Esto presentes em aplicaes de controle de usinas termoeltri-cas e nucleares, controle de trfego areo, ou em qualquer outra aplicao onde o tempode processamento fator fundamental.

    1.5.3 SISTEMAS COM MLTIPLOS PROCESSADORES

    Um sistema com mltiplos processadores possui duas ou mais CPUs interligadas tra-balhando em conjunto. A vantagem desse tipo de sistema permitir que vrios progra-

    mas sejam executados ao mesmo tempo ou que um mesmo programa seja subdivididoem partes para serem executadas simultaneamente em mais de um processador.

    Os conceitos aplicados ao projeto de sistemas com mltiplos processadores incorpo-ram os mesmos princpios bsicos e benefcios apresentados na multiprogramao, almde outras vantagens especficas como escalabilidade, disponibilidade e balanceamento decarga.

    Escalabilidade a capacidade de ampliar o poder computacional do sistema apenasadicionando outros processadores. Em ambientes com um nico processador, caso hajaproblemas de desempenho, seria necessrio substituir todo o sistema por uma outra con-figurao com maior poder de processamento. Com a possibilidade de mltiplos proces-sadores, basta acrescentar novos processadores configurao.

    Disponibilidade a capacidade de manter o sistema em operao mesmo em casosde falhas. Neste caso, se um dos processadores falhar, os demais podem assumir suasfunes de maneira transparente aos usurios e suas aplicaes, embora com menorcapacidade de computao.

    Balanceamento de Carga a possibilidade de distribuir o processamento entre osdiversos processadores da configurao a partir da carga de trabalho de cada processa-dor, melhorando assim, o desempenho do sistema como um todo.

  • 5/26/2018 Apostila de Sistemas Operacionais

    14/21

    01 Viso Geral

    Sistemas Operacionais Lucilia Ribeiro 13

    Esses sistemas podem ser classificados quanto forma de comunicao entre asCPUs e quanto ao grau de compartilhamento da memria e dos dispositivos de E/S. As-sim, podemos classific-los em fortemente acoplados e fracamente acoplados.

    a) Sistemas Fortemente AcopladosNum sistema fortemente acoplado dois ou mais processadores compartilham uma

    nica memria e so controlados por um nico sistema operacional. Um sistema forte-mente acoplado utilizado geralmente em aplicaes que fazem uso intensivo da CPU ecujo processamento dedicado soluo de um nico problema.

    Os sistemas fortemente acoplados podem ser divididos em simtricos ou assim-tricos. Os simtricos caracterizam-se pelo tempo uniforme de acesso memria principalpelos diversos processadores.

    Inicialmente, tais sistemas estavam limitados aos sistemas de grande porte, res-tritos ao ambiente universitrio e s grandes corporaes. Com a evoluo dos computa-dores pessoais e das estaes de trabalho, os sistemas multitarefa evoluram para permi-tir a existncia de vrios processadores no modelo simtrico. Atualmente, a grandemaioria dos Sistemas Operacionais, como o Unix e o Windows 2000, implementa estafuncionalidade.

    b) Sistemas Fracamente AcopladosNum sistema fracamente acoplado dois ou mais sistemas de computao so co-

    nectados atravs do uso de linhas de comunicao. Nesses sistemas, ocorre o processa-mento distribudo entre os diversos computadores. Cada sistema funciona de forma inde-pendente, possuindo seu(s) prprio(s) processador(es). Em funo destas caractersticas,tambm so conhecidos como multicomputadores.

    Com a evoluo dos computadores pessoais e das estaes de trabalho, junta-mente com o avano das telecomunicaes e da tecnologia de redes, surgiu um novomodelo de computao, chamado modelo de rede de computadores. Em uma rede exis-

    tem dois ou mais sistemas independentes (hosts), interligados atravs de linhas de co-municao, que oferecem algum tipo de servio aos demais. Neste modelo, a informaodeixa de ser centralizada em poucos sistemas de grande porte e passa ser distribudapelos diversos sistemas da rede.

  • 5/26/2018 Apostila de Sistemas Operacionais

    15/21

    01 Viso Geral

    Sistemas Operacionais Lucilia Ribeiro 14

    C

    Com base no grau de integrao dos hostsda rede, podemos dividir os sistemas

    fracamente acoplados em Sistemas Operacionais de Rede e Sistemas Distribudos. Agrande diferena entre os dois modelos a capacidade do Sistema Operacional em criaruma imagem nica dos servios disponibilizados pela rede.

    Os Sistemas Operacionais de Rede permitem que um host compartilhe seusrecursos, como impressora ou diretrio, com os demais hostsda rede. Um exemplo destetipo de sistema so as redes locais, onde uma estao pode oferecer servios de arquivose impresso para as demais estaes da rede, dentre outros servios.

    Enquanto nos Sistemas Operacionais de Rede os usurios tm conhecimento doshosts e seus servios, nos Sistemas Distribudos o Sistema Operacional esconde osdetalhes dos hostsindividuais e passa a trat-los como um conjunto nico, como se fos-se um sistema fortemente acoplado. Os sistemas distribudos permitem, por exemplo,

    que uma aplicao seja dividida em partes e que cada parte seja executada por hostsdiferentes da rede de computadores. Para o usurio e suas aplicaes como se noexistisse a rede de computadores, mas sim um nico sistema centralizado.

    1.6 EXERCCIOS

    1) Como seria utilizar um computador sem um Sistema Operacional?

    2) O que um Sistema Operacional? Fale sobre suas principais funes.

    3) Defina o conceito de uma mquina de nveis ou camadas.

    4) Quais os tipos de Sistemas Operacionais existentes?

    5) Por que dizemos que existe uma subutilizao de recursos em sistemas monopro-gramveis?

    6) Qual a grande diferena entre sistemas monoprogramveis e multiprogramveis?

    7) Quais as vantagens dos sistemas multiprogramveis?

    8) Um sistema monousurio pode ser um sistema multiprogramvel? D um exem-plo.

    9) Quais so os tipos de sistemas multiprogramveis?

  • 5/26/2018 Apostila de Sistemas Operacionais

    16/21

    01 Viso Geral

    Sistemas Operacionais Lucilia Ribeiro 15

    10)O que caracteriza um sistema batch? Quais aplicaes podem ser processadasneste tipo de ambiente?

    11)Como os processos so executados em um sistema time-sharing? Quais as vanta-gens em utiliz-los?

    12)Qual a grande diferena entre sistemas de tempo compartilhado e tempo real?

    Quais aplicaes so indicadas para sistemas de tempo real?

    13)O que so sistemas com mltiplos processadores e quais as vantagens em utiliz-los?

    14)Qual a grande diferena entre sistemas fortemente e fracamente acoplados?

    15)O que um sistema fracamente acoplado? Qual a diferena entre Sistemas Ope-racionais de rede e Sistemas Operacionais distribudos?

    16)Cite dois exemplos de Sistemas Operacionais de rede.

    -x-

  • 5/26/2018 Apostila de Sistemas Operacionais

    17/21

    02 Conceitos de Hardware e Software

    Sistemas Operacionais Lucilia Ribeiro 16

    Conceitos de Hardware e Software

    Nossa vida desperdiada em detalhes... Simplifique, simplifique.(Henry Thoreau)

    2.1 INTRODUO

    O Sistema Operacional est intimamente ligado ao hardware do computador no qualele executado. Ele estende o conjunto de instrues do computador e gerencia seusrecursos. Para funcionar, ele deve ter um grande conhecimento do hardware, pelo menosdo ponto de vista do programador.

    Neste captulo sero apresentados conceitos bsicos de hardware e de software rela-tivos arquitetura de computadores e necessrios para a compreenso dos demais tpi-cos.

    2.2 UNIDADES MTRICASPara evitar maior confuso, melhor deixar claro, como na cincia da computao

    em geral, so usadas unidades mtricas. Os prefixos mtricos esto relacionados na ta-bela abaixo. Normalmente esses prefixos so abreviados por suas primeiras letras, comas unidades maiores que 1 em letras maisculas. Assim, um banco de dados de 1 TBocupa 1012bytes de memria e um tique de relgio de 100 ps ocorre a cada 10-10segun-dos. Como ambos os prefixos, mili e micro, comeam com a letra m, foi necessrio fa-zer-se uma escolha. Normalmente m para mili e (a letra grega my) para micro.

    Convm tambm recordar que para medir tamanhos de memria, as unidades tmsignificados um pouco diferentes. O quilo corresponde a 210(1024) e no a 103(1000),pois as memrias so sempre expressas em potncias de 2. Assim, uma memria de 1

    KB contm 1024 bytes, e no 1000 bytes. De maneira similar, uma memria de 1 MBcontm 220(1.048.576) bytes e uma memria de 1 GB contm 230(1.073.741.824) by-tes. Contudo, uma linha de comunicao de 1 Kbps transmite a 1000 bits por segundo,uma rede local (LAN) de 10 Mbps transmite a 10.000.000 bits por segundo e um proces-sador de 233 MHz executa 233.000 ciclos de clock por segundo, pois essas velocidadesno so potncias de 2.

    Exp. Explcito Prefixo Exp. Explcito Prefixo

    10-3 0,001 mili 103 1.000 quilo

    10-6 0,000001 micro 106 1.000.000 mega

    10-9 0,000000001 nano 109 1.000.000.000 giga

    10-12 0,000000000001 pico 1012 1.000.000.000.000 tera

    10-15 0,000000000000001 femto 1015 1.000.000.000.000.000 peta

    10-18 0,000000000000000001 atto 1018 1.000.000.000.000.000.000 exa

    10-21 0,000000000000000000001 zepto 1021 1.000.000.000.000.000.000.000 zetta

    10-24 0,000000000000000000000001 yocto 1024 1.000.000.000.000.000.000.000.000 yotta

    2.3 HARDWARE

    Conceitualmente, um computador pessoal simples pode ser abstrado para um mode-lo semelhante ao da figura ao lado. A CPU, a memria e os dispositivos de E/S esto to-dos conectados por um barramento, o qual proporciona a comunicao de uns com osoutros.

    2

  • 5/26/2018 Apostila de Sistemas Operacionais

    18/211

    02 Conceitos de Hardware e Software

    Sistemas Operacionais Lucilia Ribeiro 17

    2.3.1 PROCESSADOR

    A CPU o crebro do computador.Ela busca instrues na memria e asexecuta: busca a primeira instruo damemria, decodifica para determinarseus operandos e qual operao executarcom os mesmos, executa e busca, deco-difica e executa as prximas operaes.

    Cada processador composto poruma unidade de controle, unidade lgica e aritmtica, e registradores. A unidade decontrole responsvel por gerenciar as atividades de todos os componentes do compu-tador, como a gravao de dados em discos ou a busca de instrues na memria. A u-nidade lgica e aritmtica, como o nome indica, responsvel pela realizao de ope-raes lgicas (testes e comparaes) e aritmticas (somas e subtraes).

    A sincronizao de todas as funes do processador realizada atravs de um sinalde clock. Este sinal um pulso gerado ciclicamente que altera variveis de estado doprocessador. O sinal de clock gerado a partir de um cristal de quartzo que, devidamen-te polarizado, oscila em uma determinada freqncia estvel e bem determinada.

    Cada CPU tem um conjunto especfico de instrues que pode executar. Assim, umPentium no executa programas SPARC e vice-versa. Como o tempo de acesso mem-ria muito menor que o tempo para execut-la, todas as CPUs tm registradores inter-nos para armazenar variveis e resultados temporrios. Por isso, o conjunto de instru-es geralmente contm instrues para carregar uma palavra da memria em um regis-trador e armazenar uma palavra de um registrador na memria.

    Os registradoresso dispositivos com a funo principal de armazenar dados tem-porariamente. O conjunto de registradores funciona como uma memria de alta veloci-dade interna do processador, porm com uma capacidade de armazenamento reduzida ecusto maior ao da memria principal. O nmero de registradores e sua capacidade dearmazenamento variam em funo da arquitetura de cada processador.

    Alm dos registradores de propsito geral, a maioria dos computadores tem vriosregistradores especiais visveis ao programador. Um deles o contador de programa,que contm o endereo de memria da prxima instruo a ser buscada.

    Outro registrador especial o ponteiro de pilha, que aponta para o topo da pilha atualna memria. A pilha contm uma estrutura para cada procedimento chamado, mas queainda no encerrou. Uma estrutura de pilha do procedimento contm os parmetros deentrada, as variveis temporrias que no so mantidas nos registradores.

    Existe ainda o Registrador de Status, ou PSW (program status word palavra de es-tado do programa). Esse registrador contm os bits do cdigo de condies, os quais soalterados pelas instrues de comparao, pelo nvel de prioridade da CPU, pelo modo deexecuo (usurio ou ncleo) e por vrios outros bits de controle.

    A maioria das CPUs - exceto aquelas muito simples dos sistemas embarcados a-presenta dois modos de funcionamento: o modo ncleo e o modo usurio. Tal modo defuncionamento controlado por um bit do registrador PSW. Funcionando em modo n-cleo, a CPU pode executar qualquer instruo do seu conjunto e usar cada atributo deseu hardware. o caso do sistema operacional. Por outro lado, programas de usuriosso executados em modo usurio, o que permite a execuo de apenas um subconjuntodas instrues e acesso apenas a um subconjunto de atributos.

    2.3.2 MEMRIA PRINCIPAL

    o local onde so armazenados instrues e dados. A memria composta por uni-dades de acesso chamadas clulas, sendo cada clula composta por um determinado

    nmero de bits. A grande maioria dos computadores utiliza o byte (8 bits) como tamanhoda clula. Observe na figura ao lado, uma memria de 64KB.

    O acesso ao contedo de uma clula realizado atravs da especificao de um n-mero chamado endereo. O endereo uma referncia nica, que podemos fazer a uma

  • 5/26/2018 Apostila de Sistemas Operacionais

    19/211

    02 Conceitos de Hardware e Software

    Sistemas Operacionais Lucilia Ribeiro 18

    clula de memria. Quando um programa deseja lerou escrever um dado em uma clula, deve primeiroespecificar qual o endereo de memria desejado,para depois realizar a operao.

    A especificao do endereo realizada atravs de

    um registrador denominado registrador de endere-o de memria (memory address register MAR).Atravs do contedo deste registrador, a unidade decontrole sabe qual clula ser acessada. Outro regis-trador usado em operaes com a memria o regis-trador de dados da memria(memory buffer regis-ter MBR). Este registrador utilizado para guardar ocontedo de uma ou mais clulas de memria, apsuma operao de gravao. Este ciclo de leitura e gra-vao apresentado na tabela abaixo:

    OPERAO DE LEITURA OPERAO DE GRAVAO1. A UCP armazena no MAR o endereo daclula a ser lida.

    1. A UCP armazena no MAR o endereo daclula a ser gravada.

    2. A UCP gera um sinal de controle para amemria principal, indicando que uma ope-rao de leitura deve ser realizada.

    2. A UCP armazena no MBR a informaoque dever ser gravada.

    3. O contedo da(s) clula(s) identifica-da(s) pelo endereo contido no MAR transferido para o MBR.

    3. A UCP gera um sinal de controle para amemria principal, indicando que uma ope-rao de gravao deve ser realizada.

    4. O contedo do MBR transferido para

    um registrador da UCP.

    4. A informao contida no MBR transfe-

    rida para a clula de memria endereadapelo MAR.

    O nmero de clulas endereadas na memria principal limitado pelo tamanho doMAR. No caso de o registrador possuir nbits, a memria poder no mximo enderear 2nclulas, isto , do endereo 0 ao endereo (2n- 1).

    A memria principal pode ser classificada em funo de sua volatilidade, que a ca-pacidade de a memria preservar o seu contedo mesmo sem uma fonte de alimentaoativa. Memrias do tipo RAM (Random Access Memory) so volteis, enquanto as mem-rias ROM (Read-Only Memory) e EPROM (Erasable Programmable ROM) so do tipo no-volteis.

    2.3.3 MEMRIA CACHE

    uma memria voltil de alta velocidade, porm com pequena capacidade de arma-zenamento. O tempo de acesso a um dado nela contido muito menor do que se estedado estivesse na memria principal. O propsito do uso da memria cache minimizara disparidade existente entre a velocidade com que o processador executa as instruese a velocidade com que dados so acessados na memria principal.

    A memria cache armazena uma pequena parte do contedo da memria principal.Toda vez que o processador faz referncia a um dado armazenado na memria, verifi-cado, primeiramente, se ele se encontra na cache. Caso o processador encontre o dado(cache hit), no h necessidade do acesso memria principal, diminuindo assim o tem-po de acesso.

    Se a informao desejada no estiver presente na cache, o acesso memria princi-pal obrigatrio (cache miss). Neste caso, o processador, a partir do dado referenciado,transfere um bloco de dados da memria principal para a cache. Apesar de existir nestemecanismo um tempo adicional para a transferncia de dados entre as memrias, este

  • 5/26/2018 Apostila de Sistemas Operacionais

    20/21

    02 Conceitos de Hardware e Software

    Sistemas Operacionais Lucilia Ribeiro 19

    tempo compensado pela melhora do desempenho, justificado pelo alto percentual dereferncias a endereos que so resolvidos na cache. Isto ocorre devido ao princpio dalocalidade. Ele garante que, aps a transferncia de um novo bloco da memria principalpara a cache a probabilidade de futuras referncias alta, otimizando assim, o tempo deacesso informao.

    Apesar de ser uma memria de acesso rpido, a capacidade de armazenamento dasmemrias cache limitada em funo do seu alto custo.

    2.3.4 MEMRIA SECUNDRIA

    um meio permanente, isto , no-voltil de armazenamento de programas e dados.Enquanto a memria principal precisa estar sempre energizada para manter as informa-es, a memria secundria no precisa de alimentao.

    O acesso memria secundria lento, se comparado memria principal, pormseu custo baixo e sua capacidade de armazenamento bem superior. Enquanto a uni-dade de acesso memria secundria da ordem de milissegundos, a acesso memriaprincipal de nanossegundos. Podemos citar como exemplos de memrias secundrias,a fita magntica, os discos magnticos, rgidos e ticos.

    A figura abaixo mostra a relao entre os diversos tipos de dispositivos de armaze-namento apresentados:

    Tempo de Acesso Capacidade Tpica

    1 ns Reg < 1 KB

    2 ns Cache 1 MB

    10 ns Memria Principal 64512 MB

    10 ms Disco Rgido (magntico) 550 GB

    100 s Fita Magntica 20100 GB

    O armazenamento em disco duas ordens de magnitude mais barato, por bit, que oda RAM e, muitas vezes, duas ordens de magnitude maior tambm. O nico problema que o tempo de acesso aleatrio aos dados perto de trs ordens de magnitude maislento. Essa baixa velocidade devida ao fato de o disco ser um dispositivo mecnico.

    A ltima camada a fita magntica. Meio muito utilizado como cpia de seguranapara abrigar grandes quantidades de dados. A fita dever ser percorrida seqencialmenteat chegar ao bloco requisitado. No mnimo, isso levaria alguns minutos. A grande van-tagem da fita que ela tem um custo por bit muito baixo e tambm removvel.

    A hierarquia de memria que vimos o padro mais comum, mas alguns sistemas

    no tm todas essas camadas ou algumas so diferentes delas (como discos pticos). Noentanto, em todas, conforme se desce na hierarquia, o tempo de acesso aleatrio crescemuito, a capacidade, da mesma maneira, tambm aumenta bastante e o custo por bit caienormemente. Em vista disso, bem provvel que as hierarquias de memria ainda per-durem por vrios anos.

    2.3.5 DISPOSITIVOS DE ENTRADA/SADA

    A memria no o nico recurso que o sistema operacional tem de gerenciar. Os dis-positivos de E/S tambm interagem intensivamente com o sistema operacional. Os dis-positivos so constitudos, geralmente, de duas partes: o controlador e o dispositivo pro-priamente dito.

    O controlador um chip ou um conjunto deles que controla fisicamente o dispositi-

    vo. Ele recebe comandos do sistema operacional, por exemplo, para ler dados do disposi-tivo e para envi-los. Cabe ao controlador apresentar uma interface mais simples para osistema operacional. Por exemplo, um controlador de disco, a o receber um comandopara ler o setor 11206 do disco 2, deve ento converter esse nmero linear de setor em

  • 5/26/2018 Apostila de Sistemas Operacionais

    21/21

    02 Conceitos de Hardware e Software

    Sistemas Operacionais Lucilia Ribeiro 20

    nmeros de cilindro, setor e cabea. Essa converso pode ser muito complexa, j que oscilindros mais externos tm mais setores que os internos e que alguns setores danifica-dos podem ter sido remapeados para outros. Ento, o controlador precisa determinarsobre qual cilindro o brao do acionador est e emitir uma seqncia de pulsos, corres-pondente distncia em nmero de cilindros, para mov-lo em direo ao centro do dis-co ou borda.

    A outra parte o dispositivo real. Eles possuem interfaces bastante simples porqueno fazem nada muito diferente, e isso ajuda a torn-los padronizados.

    Visto que cada controlador diferente, diferentes programas so necessrios paracontrol-los. O programa que se comunica com um controlador, emitindo comandos a elee aceitando respostas, denominado driver do dispositivo. Cada fabricante deve for-necer um driver especfico para cada sistema operacional suportado.

    Para ser usado, o driver deve ser colocado dentro do sistema operacional para quepossa ser executado em modo ncleo. H trs maneiras de colocar o driver dentro doncleo. A primeira religar (linkeditar) o ncleo com o novo driver e ento reiniciar osistema. Muitos sistemas Unix funcionam assim. A segunda fazer uma entrada de ar-quivo e o sistema operacional v que precisa do driver e ento reinicializa o sistema. Nomomento da iniciao, o sistema operacional busca e encontra os drivers de que ele pre-cisa e os carrega. O Windows funciona assim. A terceira maneira capacitar o sistemaoperacional e aceitar novos drivers enquanto estiver em execuo e instala-los sem anecessidade de reiniciar. O Windows XP faz assim.

    2.3.6 BARRAMENTO

    O barramentoou bus um meio fsico de comunicao entre as unidades funcionaisde um sistema computacional. Atravs de condutores, informaes como dados, endere-os e sinais de controle trafegam entre processadores, memrias e dispositivos de E/S.

    Em geral, um barramento possui linhas de controle e linhas de dados. Atravs das li-nhas de controle trafegam informaes de sinalizao como, por exemplo, o tipo de ope-rao que est sendo realizada. Pelas linhas de dados, informaes como instrues, o-perandos e endereos so transferidos entre unidades funcionais.

    Os barramentos so classificados em trs tipos: barramentos processador-memria,barramentos de E/S e barramentos de backplane. Os barramentos processador-

    memriaso de curta extenso e alta velocidade para que seja otimizada a transfern-cia de informao entre processadores e memria. Diferentemente, os barramentos deE/Spossuem maior extenso, so lentos e permitem a conexo de diferentes dispositi-vos.

  • 5/26/2018 Apostila de Sistemas Operacionais

    22/21

    02 Conceitos de Hardware e Software

    Sistemas Operacionais Lucilia Ribeiro 21

    Alguns sistemas de alto desempenho utilizam uma arquitetura com um terceiro bar-ramento, conhecido como barramento de backplane. Nesta organizao, o barramentode E/S no se conecta diretamente ao barramento processador-memria, tendo o barra-mento de backplanea funo de integrar os dois barramentos. A principal vantagem des-ta arquitetura reduzir o nmero de adaptadores existentes no barramento processador-memria e, desta forma, otimizar seu desempenho.

    Os barramentos processador-memria so frequentemente utilizados em arquiteturasproprietrias. Como exemplo, a Intel introduziu o barramento PCI (Peripheral ComponentInterconnect) junto como seu processador Pentium. Os barramentos de E/S em geralseguem padres preestabelecidos pois, desta forma, os dispositivos de E/S podem serconectados a sistemas computacionais de diferentes plataformas e fabricantes.

    Existem trs barramentos mais utilizados: IDE, USB e SCSI. O barramento IDE(In-tegrated Drive Electronics) serve para acoplar ao sistema dispositivos perifricos comodiscos e CD-ROMs. Ele uma extenso da interface controladora de discos do PC/AT eatualmente constitui um padro para disco rgido e muitas vezes tambm para CD-ROMem quase todos os sistemas baseados em Pentium.

    O USB(Universal Serial Bus barramento serial universal) foi inventado para conec-tar ao computador todos os dispositivos lentos de E/S, como teclado e mouse. um bar-ramento centralizado no qual um dispositivo-raiz interroga os dispositivos de E/S a cada1ms para verificar se eles tm algo a ser transmitido. Ele pode tratar uma carga acumu-lada de 1,5 MB/s. todos os dispositivos USB compartilham um nico driver de dispositivoUSB, tornando desnecessrio instalar um novo driver para cada novo dispositivo. Conse-qentemente, os dispositivos USB podem ser adicionados ao computador sem precisarreinici-lo.

    O barramento SCSI(Small Computer System Interface interface de pequeno siste-ma de computadores) um barramento de alto desempenho destinado a discos rpidos,scanners e outros dispositivos que precisem de considervel largura de banda. Pode fun-cionar em at 160 Mb/s.

    2.3.7 PIPELINING

    Para melhorar o desempenho, os projetistas de CPU abandonaram o modelo simplesde busca, decodificao e execuo de uma instruo por vez. Muitas CPUs modernastm recursos para executar mais de uma instruo ao mesmo tempo. Por exemplo, umaCPU pode ter unidades separadas de busca, decodificao e execuo, de modo que, en-quanto ela estiver executando a instruo n, ela pode tambm estar decodificando a ins-truo n+1 e buscando a instruo n+2. Essa organizao chamada pipelinee estilustrada na figura para umpipelinede quatro estgios.

  • 5/26/2018 Apostila de Sistemas Operacionais

    23/21

    02 Conceitos de Hardware e Software

    Sistemas Operacionais Lucilia Ribeiro 22

    uma tcnica que permite ao processador executar mltiplas instrues paralela-mente em estgios diferentes. O conceito de processamentopipeline se assemelha muitoao de uma linha de montagem, onde uma tarefa dividida em uma seqncia de subta-refas, executadas dentro da linha de produo.

    Opipelinepode ser empregado em sistemas com um ou mais processadores, em di-

    versos nveis, e tem sido a tcnica de paralelismo mais utilizada para aumentar o de-sempenho dos sistemas computacionais.

    2.3.8 ARQUITETURAS RISC e CISC

    A linguagem de mquina de um computador a linguagem de programao realmen-te entendida pelo processador. Cada processador possui um conjunto definido de instru-es de mquina, definido por seu fabricante. As instrues de mquina fazem refern-cias a detalhes, como registradores, modos de endereamento e tipos de dados, que ca-racterizam um processador e suas funcionalidades.

    Um programa em linguagem de mquina pode ser diretamente executado pelo pro-cessador, no requerendo qualquer tipo de traduo ou relocao. Quando escrito emlinguagem de mquina de um determinado processador, um programa no pode ser exe-cutado em outra mquina de arquitetura diferente, visto que o conjunto de instrues deum processador caracterstica especfica de cada arquitetura.

    Um processador com arquitetura RISC (Reduced Instruction Set Computer) se carac-teriza por possuir poucas instrues de mquina, em geral bastante simples, executadasdiretamente pelo hardware. Na sua maioria, estas instrues no acessam a memriaprincipal, trabalhando principalmente com registradores, que, neste tipo de processador,se apresentam em grande nmero. Estas caractersticas, alm de permitirem que as ins-trues sejam executadas rapidamente, facilitam a implementao do pipelining. Comoexemplos de processadores RISC podemos citar o SPARC (Sun), RS-6000 (IBM), PA-RISC(HP), Alpha AXP (Compac) e Rx000 (MIPS).

    Os processadores com arquitetura CISC (Complex Instruction Set Computer) j pos-

    suem instrues complexas que so interpretadas por microprogramas. O nmero deregistradores pequeno e qualquer instruo pode referenciar a memria principal. Nes-te tipo de arquitetura, a implementao dopipelining mais difcil. So exemplos de pro-cessadores CISC o VAX (DEC), Pentium (Intel) e 68xxx (Motorola).

    Nos processadores RISC, um programa em linguagem de mquina executado dire-tamente pelo hardware. J na arquitetura CISC, entre os nveis da linguagem de mqui-na e dos circuitos eletrnicos, existem um nvel intermedirio que o da microprogra-mao.

    Os microprogramas definem a linguagem de mquina de um computador CISC. Ape-sar de cada computador possuir nveis de microprogramao diferentes, existem muitassemelhanas nessa camada se compararmos os diferentes equipamentos. Um computa-

    dor possui, aproximadamente, 25 microinstrues bsicas, que so interpretadas peloscircuitos eletrnicos. Na realidade, o cdigo executvel de um processador CISC inter-pretado por microprogramas durante sua execuo, gerando microinstrues, que, final-mente, so executadas pelo hardware. Para cada instruo em linguagem de mquina,existe um microprograma associado.

    2.3.9 ANLISE DE DESEMPENHO

    Para avaliar o desempenho de processadores, diversas variveis devem ser conside-radas, entre as quais o intervalo de tempo entre os pulsos de um sinal de clock, conheci-do como ciclo de clock. A freqncia de clock o inverso do ciclo de clock e indica onmero de pulsos eltricos gerados em um segundo. A medida da freqncia dada emHertz (hz) ou seus mltiplos como Kilohertz (Khz) ou Megahertz (Mhz).

    O desempenho de um processador pode ser avaliado pela comparao dos temposque processadores distintos levam para executar um mesmo programa. Este tempo denominado tempo de CPU, que leva em considerao apenas o tempo para executar

  • 5/26/2018 Apostila de Sistemas Operacionais

    24/21

    02 Conceitos de Hardware e Software

    Sistemas Operacionais Lucilia Ribeiro 23

    instrues pelo processador, no incluindo a espera em operaes de E/S. O tempo deCPU para um determinado programa dado por:

    TEMPO DE CPU = n de ciclos de clock X ciclo de clock para execuo do programa

    Considerando que a freqncia do clock o inverso do ciclo, podemos ter:

    TEMPO DE CPU = n de ciclos de clock para execuo do programa / freqncia do clock

    possvel perceber, observando as frmulas anteriores, que o desempenho do pro-cessador pode ser otimizado reduzindo o nmero de ciclos de clock utilizados para execu-tar um programa, ou aumentando a freqncia do clock.

    A tcnica conhecida como benchmarkpermite a anlise de desempenho comparativaentre sistemas computacionais. Neste mtodo, um conjunto de programas executadoem cada sistema avaliado e o tempo de execuo comparado. A escolha dos programasdeve ser criteriosa para refletir os diferentes tipos de aplicao.

    2.4 SOFTWARE

    Para que o hardware tenha utilidade prtica, deve existir um conjunto de programas,utilizado como interface entre as necessidades do usurio e as capacidades do hardware.

    A utilizao de softwares adequados s diversas tarefas e aplicaes torna o trabalho dosusurios muito mais simples e eficiente.

    Usaremos utilitriopara fazer referncia a softwares relacionados mais diretamentecom servios complementares do sistema operacional, como compiladores, linkeditores edepuradores. Os softwares desenvolvidos pelos usurios sero denominados aplicativos.

    2.4.1 TRADUTOR

    Nos primeiros sistemas computacionais, o ato de programar era bastante complicado,j que o programador deveria possuir conhecimento da arquitetura da mquina e pro-gramar em painis atravs de fios. Esses programas eram desenvolvidos em linguagemde mquina e carregados diretamente na memria principal para execuo.

    Com o surgimento das primeiras linguagens de montagemou assemblye das lin-guagens de alto nvel, o programador deixou de se preocupar com muitos aspectospertinentes ao hardware, como em qual regio da memria o programa deveria ser car-regado ou quais endereos de memria seriam reservados para as variveis. A utilizaodessas linguagens facilitou a construo, a documentao e a manuteno de programas.

    Apesar das inmeras vantagens proporcionadas pelas linguagens de montagem e dealto nvel, os programas no esto prontos para ser diretamente executados pelo proces-sador. Para isso, eles tm de passar por uma etapa de converso, onde toda representa-o simblica das instrues traduzida para cdigo de mquina. Esta converso reali-zada por um utilitrio denominado tradutor.

    O mdulo gerado pelo tradutor denominado mdulo-objeto, que, apesar de estarem cdigo de mquina, na maioria das vezes no pode ser ainda executado. Isto ocorre

    em funo de um programa poder chamar sub-rotinas externas, e, neste caso, o tradutorno tem como associar o programa principal s sub-rotinas chamadas.

    Dependendo do tipo doprograma-fonte, existem doistipos distintos de tradutoresque geram mdulos-objeto:montador e compilador.

    O montador (assembler) o utilitrio responsvel portraduzir um programa-fonteem linguagem de montagem

    em um programa objeto noexecutvel (mdulo-objeto). Alinguagem de montagem

  • 5/26/2018 Apostila de Sistemas Operacionais

    25/21

    02 Conceitos de Hardware e Software

    Sistemas Operacionais Lucilia Ribeiro 24

    particular para cada processador, assim como a linguagem de mquina, o que no per-mite que programas assembly possam ser portados entre mquinas diferentes.

    O compilador o utilitrio responsvel por gerar, a partir de um programa escritoem uma linguagem de alto nvel, um programa em linguagem de mquina no execut-vel. As linguagens de alto nvel como Pascal, Cobol e C, no tm nenhuma relao diretacom a mquina, fic