03-sistemas operacionais

Upload: juliomartins

Post on 14-Apr-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/29/2019 03-Sistemas Operacionais

    1/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil1

    MDULO DE:

    SISTEMAS OPERACIONAIS

    AUTORIA:

    FILIPE DE CASTRO FERREIRA

    Copyright 2008, ESAB Escola Superior Aberta do Brasi l

  • 7/29/2019 03-Sistemas Operacionais

    2/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil2

    Mdulo de: Sistemas Operacionais

    Autoria: Filipe De Castro Ferreira

    Primeira edio: 2008

    Todos os direitos desta edio reservados

    ESAB ESCOLA SUPERIOR ABERTA DO BRASIL LTDA

    http://www.esab.edu.br

    Av. Santa Leopoldina, n 840/07Bairro Itaparica Vila Velha, ES

    CEP: 29102-040

    Copyright 2008, ESAB Escola Superior Aberta do Brasil

  • 7/29/2019 03-Sistemas Operacionais

    3/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil3

    ApresentaoSe voc possui um computador ou trabalha com um, ento j utilizou um sistema

    operacional. Todos os computadores vendidos para o uso domstico ou para escritrios,

    incluindo os notebooks (computadores portteis) utilizam um programa chamado Sistema

    Operacional. A maioria dos computadores vendidos vem com o MS-Windows XP. Alguns

    computadores utilizados em empresas, denominados os Computadores Servidores possuem

    um sistema operacional chamado Unix, e existe um tipo de computador chamado Macintosh

    cujo sistema operacional denominado Mac-OS X. O Sistema Operacional o primeiro

    programa que um computador ir executar. Sem o sistema operacional, os computadores

    atuais seriam inutilizveis.

    Recentemente os sistemas operacionais tambm so utilizados em telefones celulares,

    contendo a maioria das funcionalidades que so encontradas nos sistemas operacionais dos

    computadores. Um celular moderno mais poderoso que um computador de mesa, daqueles

    de 20 anos atrs.

    O objetivo de um sistema operacional organizar e controlar o hardware e o software paraque o dispositivo funcione de maneira flexvel e previsvel. Neste mdulo, vamos explicar

    quais as caractersticas que um programa deve possuir para ser chamado de sistema

    operacional e mostrar como funciona o sistema operacional do seu computador.

  • 7/29/2019 03-Sistemas Operacionais

    4/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil4

    ObjetivoEste mdulo tem como objetivo passar aos alunos os conhecimentos gerais sobre os

    Sistemas Operacionais: como so construdos, quais so as caractersticas que devem estar

    presentes, os tipos de sistemas operacionais, quais as diferenas entre os sistemas, dentre

    outros tpicos.

    EmentaEsta disciplina ser trabalhada da seguinte maneira:

    Parte Terica - Conceitos Gerais, Estruturao do Sistema Operacional,Gerenciamento de Processos, Memria, Dispositivos e Arquivos, Diferenas entre os

    Sistemas de Arquivos, Diferenas entre o MS-Windows e Linux, Sistemas Especficos.

    Parte Prtica Realizao de exerccios, atividades, leituras adicionais, debates.

    Material Complementar vdeos informativos e apostilas com assuntos diversos.

  • 7/29/2019 03-Sistemas Operacionais

    5/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil5

    Sobre o AutorBacharel em Sistemas de Informao; Ps-Graduado em Engenharia de Sistemas; Ps-

    graduando MBA em Gerncia de Projetos; Certificado PMP (Project Management

    Professional); Especialista nas tecnologias MS Project 2007, Project Server 2007 (EPM 2007)

    e Microsoft SharePoint 2007; Experincia como consultor pela Microsoft Brasil (MCS),

    Gerente de Fbrica de Software Petrobras, Analista em Projetos de desenvolvimento de

    Sistemas e administrador de redes Windows e Linux. Atualmente atuo como Gerente de

    Projetos na Petrobras e Tutor na ESAB (Escola Superior Aberta do Brasil) em Cursos de Ps-

    Graduao.

  • 7/29/2019 03-Sistemas Operacionais

    6/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil6

    SUMRIOUNIDADE 1 ........................................................................................................... 9

    Histrico ............................................................................................................. 9UNIDADE 2 ......................................................................................................... 12

    Primeiros Microcomputadores ......................................................................... 12UNIDADE 3 ......................................................................................................... 17

    Sistemas Operacionais Avanados ................................................................. 17UNIDADE 4 ......................................................................................................... 20

    Estrutura Do Sistema Operacional .................................................................. 20UNIDADE 5 ......................................................................................................... 24

    Processos ......................................................................................................... 24UNIDADE 6 ......................................................................................................... 29Threads ............................................................................................................ 29

    UNIDADE 7 ......................................................................................................... 34Comunicao Entre Processos ........................................................................ 34

    UNIDADE 8 ......................................................................................................... 39Gerenciamento De Processos ......................................................................... 39

    UNIDADE 9 ......................................................................................................... 42Sincronizao Dos Recursos ........................................................................... 42

    UNIDADE 10 ....................................................................................................... 46Preveno Contra Bloqueio ............................................................................. 46

    UNIDADE 11 ....................................................................................................... 51Gerenciamento Da Memria ............................................................................ 51

    UNIDADE 12 ....................................................................................................... 54Memria Virtual ................................................................................................ 54

    UNIDADE 13 ....................................................................................................... 58

  • 7/29/2019 03-Sistemas Operacionais

    7/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil7

    Memria Paginada ........................................................................................... 58UNIDADE 14 ....................................................................................................... 64

    Memria Segmentada ...................................................................................... 64UNIDADE 15 ....................................................................................................... 67

    Gerenciamento De Dispositivos ....................................................................... 67UNIDADE 16 ....................................................................................................... 72

    Sistema De Arquivos ........................................................................................ 72UNIDADE 17 ....................................................................................................... 78

    Sistema De Arquivos NTFS ............................................................................. 78UNIDADE 18 ....................................................................................................... 84

    Linux Ext ........................................................................................................... 84UNIDADE 19 ....................................................................................................... 89

    Interface Com O Usurio ................................................................................. 89UNIDADE 20 ....................................................................................................... 92

    Sistemas Operacionais Para Redes De Computadores ................................. 92UNIDADE 21 ....................................................................................................... 96

    Gerenciamento De Usurio ............................................................................. 96UNIDADE 22 ....................................................................................................... 99

    Ldap.................................................................................................................. 99UNIDADE 23 ..................................................................................................... 102

    Active Directory .............................................................................................. 102UNIDADE 24 ..................................................................................................... 106

    Aspectos Relativos A Segurana ................................................................... 106UNIDADE 25 ..................................................................................................... 112

    Sistemas Embutidos ...................................................................................... 112UNIDADE 26 ..................................................................................................... 116

    Sistema Virtual ............................................................................................... 116UNIDADE 27 ..................................................................................................... 120

  • 7/29/2019 03-Sistemas Operacionais

    8/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil8

    Sistema Operacional Na Internet ................................................................... 120UNIDADE 28 ..................................................................................................... 123

    Computao De Alto Desempenho ............................................................... 123UNIDADE 29 ..................................................................................................... 128

    Microsoft Windows ......................................................................................... 128UNIDADE 30 ..................................................................................................... 135

    Linux ............................................................................................................... 135GLOSSRIO ..................................................................................................... 141REFERNCIAS ................................................................................................. 142

  • 7/29/2019 03-Sistemas Operacionais

    9/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil9

    UNIDADE 1Objetivo: Apresentar o desenvolvimento histrico dos sistemas operacionais para que oaluno perceba a evoluo ocorrida desde o incio da informtica at os dias atuais.

    Histrico

    1. Primeiros Computadores

    Em 1890, foi desenvolvido o primeiro computador mecnico. A partir de 1930, comearam as

    pesquisas para substituir as partes mecnicas por eltricas. O Mark I, construdo em 1944

    por uma equipe da Inglaterra, o primeiro computador eletromecnico capaz de efetuar

    clculos mais complexos sem a interferncia humana. Ele media 15m x 2,5m. Em 1946,

    surgiu o ENIAC (Electronic Numerical Integrator and Computer), primeiro computador

    eletrnico e digital automtico: pesava 30 toneladas, utilizava cerca de 18 mil vlvulas e

    realizava 4.500 clculos por segundo. O ENIAC continha a arquitetura bsica de um

    computador. A inveno do transistor, em 1947, substituiu progressivamente as vlvulas,

    aumentando a velocidade das mquinas.

    Os primeiros computadores, por serem eletromecnicos, eram muito difceis de serem

    operados. Era necessrio ter o conhecimento de toda a sua arquitetura e a programao

    dessas mquinas era feita em paineis contendo cerca de 6.000 interruptores. E, alm disso,

    esses computadores no possuam monitor ou teclado, nem sistema operacional.

    A partir de 1950 os computadores comearam a ser construdos com a utilizao detransistores, tornando-se mquinas puramente eletrnicas. Surgiram dispositivos auxiliares

    para operarem em conjunto com o computador, tais como: disco-rgido, memria RAM,

    teclado e monitor. Foi nessa poca que surgiu o primeiro computador, o Univac 1103, com

  • 7/29/2019 03-Sistemas Operacionais

    10/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil10

    um sistema operacional, o ERA, programa que permitia a interao, limitada, entre o

    operador e a mquina e possibilitava a execuo das tarefas de maneira mais simplificada.

    Na dcada de 60 surgiram os circuitos integrados, que permitiram a criao de

    computadores por um preo bastante inferior. Um computador de capacidade mdia, da

    dcada de 50, custava centenas de milhares de dlares, e um com capacidade equivalente,

    da dcada de 1960, podia ser comprado por cerca de 20.000 dlares. Graas queda nos

    preos, os computadores tornaram-se equipamentos comuns nas mdias e grandes

    empresas dos Estados Unidos e Europa. Alm da queda nos preos, houve tambm o

    surgimento de vrias inovaes, tanto na eletrnica quanto na rea do desenvolvimento de

    programas. Em 1971, a Intel projetou o processador i4004, dispositivo que reuniu num

    mesmo circuito, todas as funes do computador, tecnologia que permitiu a criao docomputador pessoal, ou microcomputador. O processador a parte mais importante do

    computador, pois responsvel por coordenar a realizao de todas as tarefas.

    2. Primeiros Microcomputadores

    O primeiro computador pessoal o Apple I, inventado em 1976 pelos americanos Steve J obs

    e Stephan Wozniak. Em 1981, a IBM lanou o seu PC (Personal Computer), que se tornou

    um sucesso comercial, utilizando o processador Intel i8080. Posteriormente, os PC's

    passaram a usar processadores cada vez mais potentes: i286, i386SX, i386DX, i486SX,

    i486DX. Na dcada de 90 surgiram os computadores que, alm do processamento de dados,

    renem fax, modem, secretria eletrnica, scanner, acesso Internet e unidade para CD.

    Basicamente, o computador formado por: Gabinete, Monitor, Teclado e Mouse. Os outros

    dispositivos (caixa de som, microfone, impressora, digitalizador, etc.) so dispositivos

    acessrios.

    Na dcada de 80 os computadores tornaram-se equipamentos populares, comprados para

    serem utilizados em casa, auxiliando a organizao e planejamento domstico, alm de ser

    utilizado no entretenimento familiar. Havia uma diferena essencial nos sistemas

  • 7/29/2019 03-Sistemas Operacionais

    11/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil11

    operacionais feitos at a dcada de 80 e os sistemas feitos a partir de 1990: a maneira como

    o usurio realizava as operaes no computador.

    Ainda em 1980 um determinado tipo de sistema operacional comea a se tornar popular: o

    Sistema Operacional com Interface Grfica. Em 1984 surge o Apple Macintosh, primeiro

    computador popular com interface grfica, e em 1985 surge o MS-Windows 1.0, primeira

    verso do sistema operacional Windows.

    3. Sistemas Operacionais Modernos

    Em 1993 a empresa Intel, que, na poca, j detinha a liderana no desenvolvimento de

    processadores, criou o Pentium, e em 1995 a Microsoft lana o Sistema Operacional

    Windows 95, e a partir dessa data iniciou-se uma nova etapa na Computao, com avanos

    tecnolgicos em praticamente todas as reas.

    Atualmente quase todos os sistemas operacionais utilizam interfaces grficas para permitir

    que o usurio possa realizar todas as tarefas no computador (ou em telefones celulares com

    vrias funcionalidades). Os sistemas mais utilizados atualmente so: MS-Windows, Mac-OS

    X, Linux (KDE) e Symbian (utilizado na maioria dos aparelhos de telefone celular). Autilizao de interfaces grficas facilita em muito a utilizao dos computadores, pois a torna

    mais intuitiva e mais simples.

  • 7/29/2019 03-Sistemas Operacionais

    12/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil12

    UNIDADE 2Objetivo: Apresentar os diferentes tipos de sistemas operacionais que podem existir, e asdiferenas entre eles.

    Primeiros Microcomputadores

    1. Classif icao Dos Sistemas Operacionais

    Os primeiros Sistemas Operacionais foram feitos para executarem uma nica tarefa em um

    computador especfico, sendo utilizado por um nico usurio a cada tarefa. Com o

    desenvolvimento da informtica, os sistemas operacionais foram evoluindo, e hoje podem ser

    classificados de acordo com as seguintes anlises:

    Caractersticas bsicas da Arquitetura do Sistema: Monoltico, Microkernel ou Hbrido.

    Capacidade de execuo das tarefas: Monotarefa ou Multitarefa;

    Quantidade de usurios que podem operar o sistema: Monousurio ou Multiusurio.

    2. Classif icao Pela Arquitetura Do Sistema

    Em relao Arquitetura os Sistemas Operacionais podem ser:

    Monoltico: possui um conjunto de instrues de alto nvel que possibilitam o

    gerenciamento de processos, memria e dispositivos atravs de mdulos dedicados

    que so executados com privilgios especiais. O sistema operacional escrito como

    uma coleo de rotinas, em que cada uma pode chamar qualquer outra rotina, sempre

    que for necessrio. Exemplos de sistemas desse tipo so: MS-Windows 98, Linux e

    Solaris.

  • 7/29/2019 03-Sistemas Operacionais

    13/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil13

    Microkernel: algumas das funes do sistema operacional foram separadas em

    programas chamados Servidores. Os servidores se comunicam com um sistema

    operacional mnimo, que possui todas as instrues de manipulao e acesso a todos

    os componentes do computador. O sistema Minix, que uma variao do Unix, umsistema que possui uma arquitetura de microkernel.

    Hbrido: nesse caso os Servidores externos so executados em um modo chamado

    protegido, permitindo assim que esses programas tenham alguns privilgios de

    acesso a alguns componentes do computador, melhorando o desempenho geral do

    sistema. Sendo hbrido, tem a capacidade de agregar ou desagregar funcionalidades,

    sem perder performance ou estabilidade presentes na sua estrutura inicial. Sistemas

    com arquitetura hbrida so: MacOS X, Windows 2000 e BeOS.

    3. Classif icao Pela Execuo De Tarefas

    A capacidade de execuo de tarefas divide os sistemas em:

    Sistemas Monotarefa: executam uma tarefa de cada vez, como por exemplo: imprimir

    um arquivo. Praticamente no so mais utilizados hoje em dia, devido ao desperdciode recursos do computador que eles causam. O extinto MS-DOS da Microsoft um

    exemplo de sistema operacional monotarefa.

    Sistemas Multitarefa: executam vrias tarefas simultaneamente, como por exemplo:

    criar um desenho, tocar uma msica e imprimir um documento. Sistemas

    Operacionais multitarefa conseguem maximizar a utilizao dos recursos do

    computador. At mesmo os sistemas operacionais de alguns aparelhos de telefone

    celular so multitarefa. Um exemplo o MS-Windows XP.

    Os sistemas multitarefa podem ser classificados de acordo com a forma com que suas

    aplicaes so gerenciadas, podendo ser divididos em: sistemas de tempo

    compartilhado e sistemas de tempo real.

  • 7/29/2019 03-Sistemas Operacionais

    14/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil14

    Sistemas de Tempo Compartilhado: (Time Sharing Systens em ingls) permitem que

    diversos programas sejam executados a partir da diviso do tempo de utilizao do

    processador em pequenos intervalos, denominados fatias de tempo (time slice). Se

    houver a necessidade de executar mais de um programa, o sistema operacional irdesignar uma fatia de tempo para cada um, e se a fatia de tempo concedida a um

    programa no for suficiente para a concluso do mesmo, ele ser interrompido pelo

    sistema operacional e seu estado corrente ser armazenado, e outro programa

    entrar em execuo. Essa etapa denominada de Troca de Contexto. Essas trocas

    acontecero enquanto houver algum programa que no tenha concludo a sua tarefa.

    Figura 2.1: Diagrama funcional de um Sistema Operacional Monoltico

    A figura 2.1 demonstra o funcionamento de um sistema de tempo compartilhado durante a

    execuo de 2 programas, A e B. Inicialmente o sistema operacional executa o programa A,aps um certo tempo, o programa A ser interrompido, e a execuo passar para o

    programa B. Quando o sistema operacional volta a executar o programa A, ele continua a

    execuo do ponto de parada anterior.

  • 7/29/2019 03-Sistemas Operacionais

    15/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil15

    Sistemas de Tempo Real: a diferena dos sistemas de tempo real para os sistemas de tempo

    compartilhado a definio do tempo de execuo de cada programa. Nos sistemas de

    tempo compartilhado, quem define o tempo de processamento dos programas o sistema

    operacional, j nos sistemas de tempo real quem define o tempo de execuo do programa o prprio programa.

    No sistema de tempo real no existe o conceito de fatia de tempo, um determinado programa

    ser executado no processador pelo tempo que for necessrio, at a sua concluso, ou at

    que seja iniciado um programa com maior prioridade de execuo. A prioridade tambm

    definida pela prpria aplicao e no pelo sistema operacional.

    Praticamente todos os sistemas operacionais utilizados nos computadores hoje em dia so

    de tempo compartilhado. Os sistemas Windows XP, Linux, MacOS X e Symbian so

    sistemas operacionais de tempo compartilhado. Os Sistemas de Tempo Real so utilizados

    em aplicaes de controle de processos, como monitoramento de refinarias de petrleo,

    controle de trfego areo, de usinas, ou em qualquer aplicao em que o tempo de

    processamento fator fundamental.

    4. Classif icao Pela Quantidade De Usurios

    Por ltimo, abordaremos a classificao quanto quantidade de usurios que operam um

    sistema operacional:

    Monousurio: O sistema operacional foi criado para que um nico usurio utilize os

    recursos do computador. Na prtica mais de uma pessoa pode utilizar, mas, nesse

    caso, o sistema operacional no far distino entre as pessoas, tratando todas como

    se fossem as mesmas. Isso significa que um documento escrito por algum poderser lido (ou alterado) por outra pessoa. Alm disso, qualquer um poder executar

    qualquer tarefa no computador. As agendas eletrnicas atuais, chamadas PDA

    (Personal Data Assistent em ingls), utilizam um sistema operacional monousurio.

  • 7/29/2019 03-Sistemas Operacionais

    16/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil16

    Multiusurio: Um sistema operacional multiusurio permite que diversos usurios

    utilizem os recursos do computador. O sistema operacional deve garantir que as

    tarefas dos usurios estejam separadas e no haja interferncia entre as mesmas.

    Cada um dos programas utilizados deve dispor de recursos suficientes e separados,de forma que o problema de um usurio no afete toda a comunidade de usurios.

    Unix e sistemas operacionais mainframe como o MVS so exemplos de sistemas

    operacionais multiusurio. Os sistemas operacionais Windows XP e MacOS X esto sendo

    considerados sistemas multiusurios, pois fazem distino entre os vrios usurios que

    utilizam o computador.

  • 7/29/2019 03-Sistemas Operacionais

    17/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil17

    UNIDADE 3Objetivo: Apresentar os sistemas operacionais utilizados em sistemas avanados, comocomputadores com mais de um processador, e supercomputadores dedicados aoprocessamento cientfico.

    Sistemas Operacionais Avanados

    1. Definio De Sistemas Avanados De Processamento

    Os Sistemas Avanados de Processamento caracterizam-se por possuir duas ou mais

    unidades de processamento interligadas e trabalhando em conjunto, podendo ter dois (ou

    mais) processadores em um computador, ou vrios computadores conectados em rede. A

    vantagem desse tipo de sistema permitir que vrias tarefas possam ser realizadas

    simultaneamente, sem a necessidade de compartilhamento do tempo do processador, ou

    ento que uma determinada tarefa possa ser dividida entre as unidades de processamento

    para agilizar a sua concluso.

    Como o sistema operacional responsvel por gerenciar a execuo das tarefas, deve estar

    devidamente adaptado para operar em sistemas com mais de uma unidade de

    processamento, para poder distribuir a execuo dos programas e maximizar a utilizao dos

    recursos disponveis.

    A construo de Sistemas Avanados de Processamento foi feita pensando-se em

    aplicaes voltadas para o processamento cientfico, explorao de minerais e petrleo,

    simulaes e computao grfica. Grande parte dos supercomputadores instalados ao redor

    do mundo est em uso em Laboratrios de Pesquisa dos EUA, Europa e J apo, e em

    grandes empresas como Dupont, Petrobrs, entre outras.

  • 7/29/2019 03-Sistemas Operacionais

    18/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil18

    2. Computadores Com Vrios Processadores

    Os computadores com vrios processadores eram utilizados basicamente em pequenos

    laboratrios cientficos. Atualmente esto disponveis a todas as pessoas, por um preo

    muito acessvel. Nesses computadores, o sistema operacional pode distribuir a execuo das

    tarefas pelos processadores, e em teoria, aumentar o desempenho geral do sistema

    proporcionalmente quantidade de processadores disponveis na prpria mquina.

    Atualmente, os sistemas operacionais Windows 2003, MacOS X, e algumas verses do Unix

    podem ser executados em computadores com vrios processadores. O Windows XP no

    oferece suporte para execuo nesses computadores.

    Na prtica o ganho de desempenho no proporcional quantidade de processadores

    instalados no computador, pois para trabalhar em um computador com vrios processadores

    o prprio sistema operacional deve executar operaes de gerenciamento e controle das

    rotinas para distribuir os programas pelos processadores. Alguns sistemas conseguem uma

    performance superior a 90%, isto , se o computador possui 16 processadores, o

    desempenho geral ser 14,4 vezes melhor do que um computador com 1 processador.

    3. Processador Com Vrios Ncleos

    Outro tipo de Sistema Avanado formado por computadores em que o processador central

    feito com mais de uma unidade principal de processamento. Esses sistemas esto sendo

    feitos atualmente para serem utilizados tambm em computadores de escritrio e

    domsticos, principalmente por causa da queda de preos. Os processadores Intel Pentium

    Dual Core, Intel Core Duo e AMD Athlon X2, entre outros utilizam duas unidades de

    processamento em cada processador. De maneira anloga aos sistemas com vrios

    processadores, o ganho de desempenho em processadores com vrios ncleos no

    proporcional quantidade de ncleos do mesmo. Os processadores Intel QuadCore, e

    AMD Phenom utilizam 4 unidades de processamento em um nico processador. E existem

    outros com vrios ncleos como o SUN UltraSPARC T1 que possui 8 ncleos internos, e o

    Tile64 com 64 ncleos de 16 bits.

  • 7/29/2019 03-Sistemas Operacionais

    19/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil19

    4. Processamento Distribudo

    Um computador de Processamento Distribudo um sistema formado por uma rede de

    computadores interligados, denominados ns da rede, com o objetivo de realizarem o

    processamento conjunto de uma tarefa de grandes propores. Esta tarefa ser ento

    dividida em pequenas subtarefas, e cada uma das subtarefas ser executada em um n da

    rede, e dessa forma consegue-se um ganho substancial no tempo de execuo da tarefa.

    Esses sistemas so construdos com alguns sistemas operacionais disponveis para

    computadores de mesa, a diferena a incluso de alguns programas especiais, o mais

    utilizado chama-se LAM-MPI, que permite que os computadores da rede realizem a

    comunicao necessria para a diviso da execuo das tarefas. O LAM-MPI tambm possui

    uma biblioteca de funes que devem ser utilizadas nos programas a serem executados nos

    sistemas distribudos, de modo que realizem as devidas comunicaes e transferncias de

    dados.

    Os agregados de computadores (computer clusters em ingls) tambm so sistemas

    distribudos, a diferena entre um Sistema Distribudo Real, como o IBM BlueGene e um

    cluster que o primeiro possui uma arquitetura eletrnica especializada e um sistema

    operacional especfico, enquanto que os clusters so formados por computadores comunsconectados via Ethernet e geralmente utilizam o sistema operacional Linux (o Windows NT

    raro).

  • 7/29/2019 03-Sistemas Operacionais

    20/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil20

    UNIDADE 4Objetivo: Apresentar a estrutura de funcionamento dos sistemas operacionais modernos e arelao existente entre as funes do sistema operacional e os programas executados nocomputador.

    Estrutura Do Sistema Operacional

    1. Estrutura Do Sistema

    O sistema operacional utilizado para organizar e controlar a realizao das tarefas feitas no

    computador. Para que isso acontea de maneira ordenada, a relao atualmente utilizada

    entre os componentes do sistema, isto , o computador, o sistema operacional, os

    programas, e at mesmo o usurio, a seguinte:

    O Usurio utiliza programas para realizar suas atividades, esses programas so: aplicativos

    (Word, AutoCAD, Oracle), utilitrios (WinZip, MediaPlayer, MSN) e jogos (FIFA, Ragnarok,

    Warcraft). At mesmo o Painel de Controle do Windows XP um programa:

    C:\Windows\System32\control.exe.

    Os programas em execuo necessitam em determinados instantes realizar o acesso a

    algum dispositivo, como o monitor de vdeo ou a impressora, para apresentar o resultado de

    uma tarefa ou interagir com o usurio. Imagine que um programa atualize um arquivo no

    disco-rgido. O programa no pode acessar diretamente os dados no disco, pois um

    recurso compartilhado e sua utilizao deve ser gerenciada pelo sistema operacional. Para

    que isso acontea, os programas executam algumas operaes com o auxlio do sistema

    operacional, essas operaes so realizadas utilizando-se funes denominadas Chamadas

    ao Sistema, ou System Calls em ingls.

  • 7/29/2019 03-Sistemas Operacionais

    21/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil21

    O Sistema Operacional deve verificar qual usurio est utilizando o computador naquele

    instante, se os programas em execuo esto ativos ou esperando alguma concluso de

    uma tarefa, se no existe conflito entre os programas, se os dispositivos conectados ao

    computador esto disponveis para utilizao, dentre outras tarefas.

    2. Funes do Sistema Operacional

    As principais funes do Sistema Operacional so:

    Tratamento de Interrupes: Durante a execuo dos programas, o Sistema

    Operacional deve estar preparado para tratar eventos inesperados. A interrupo

    gerada por um evento externo ao programa em execuo, no dependente da

    instruo que est sendo executada, como por exemplo, a movimentao do mouse.

    Ao trmino de cada instruo do programa, o processador verifica se houve a

    ocorrncia de alguma interrupo e caso haja, avisa o sistema operacional, para que o

    mesmo possa realizar as devidas operaes. O programa em execuo ser

    momentaneamente paralisado, e para que possa retornar execuo posteriormente,

    um determinado conjunto de informaes sobre sua execuo ser armazenada. As

    interrupes sempre so geradas por algum dispositivo do computador: disco-rgido,

    impressora, teclado, processador, etc.

    Tratamento de Excees: as excees so semelhantes s interrupes, pois ambas

    ocasionam a paralisao da execuo dos programas ativos no computador. A

    diferena entre ambas que nas excees a causa da paralisao originada em

    algum programa em execuo. Por exemplo, em um programa que realiza operaes

    matemticas no pode existir uma instruo que faa a diviso de um nmero por

    zero, caso isso acontea, essa instruo no poder ser executada (pois no existe

    resposta).

    Quando ocorre uma exceo, o sistema operacional deve emitir um aviso apenas no

    programa que causou a exceo indicando que uma operao invlida foi executada.

  • 7/29/2019 03-Sistemas Operacionais

    22/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil22

    (De fato, a operao em si executada, se o sistema operacional estiver preparado

    para lidar com a situao, apenas um aviso ser exibido ao usurio, caso contrrio, o

    sistema inteiro pode falhar. Atualmente comum o tratamento preventivo de excees

    dentro do prprio programa).

    Gerenciamento de Programas: o sistema operacional responsvel por colocar em

    execuo, administrar e finalizar todos os programas executados no computador. No

    gerenciamento feita a alocao de memria, a disponibilizao de recursos, a

    administrao dos programas em execuo feita fornecendo a cada programa o

    devido tempo de utilizao do processador e dos dispositivos do computador.

    Gerenciamento da Memria RAM: O sistema operacional deve a todo instante verificara disponibilidade de memria RAM no computador, para evitar que haja travamento do

    sistema inteiro por falta de espao para armazenamento dos programas ou dados.

    Gerenciamento de Arquivos: a criao, edio e excluso de qualquer arquivo no

    computador s acontecem com a permisso do sistema operacional. Nesta etapa

    feita a verificao do usurio que est solicitando acesso a um determinado arquivo,

    qual programa ser executado para manipul-lo, e em alguns sistemas, feito

    tambm o registro em um local separado do acesso ao arquivo pelo usurio, para finsde controle.

    Gerenciamento de Dispositivos: todos os dispositivos conectados ao computador so

    gerenciados pelo sistema operacional, onde feita a verificao de utilizao do

    dispositivo, disponibilidade do dispositivo, liberao para uso, entre outras funes.

    Suporte a Redes: praticamente todos os principais sistemas operacionais

    comercializados atualmente oferecem mecanismos de gerenciamento e acesso s

    redes de computadores. Isto feito por meio de controle de computadores

    interconectados, protocolos de comunicao utilizados e usurios que esto

    autorizados a utilizar os recursos disponveis na rede.

  • 7/29/2019 03-Sistemas Operacionais

    23/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil23

    Alm das tarefas citadas, atualmente os sistemas operacionais tem que possuir a seguinte

    caracterstica:

    Sistema de Segurana: caracterstica de muita importncia nos dias de hoje, devido

    grande utilizao da internet e dos recursos por ela oferecidos. O sistema operacional

    deve garantir entre outras coisas que:

    Apenas programas confiveis (que tenham a permisso do usurio) sejam executados

    no computador;

    Apenas usurios cadastrados previamente (ou autorizados momentaneamente)

    tenham acesso aos recursos do computador;

    As informaes armazenadas no computador s podem ser acessadas por usurios e

    programas autorizados a manipul-las.

    3. Chamadas ao Sistema

    Durante o projeto de Sistemas Operacionais as maiores preocupaes so: proteo do

    ncleo do sistema (kernel) e controle do acesso aos recursos do computador. Se um

    determinado programa realizar uma operao que comprometa ou bloqueie, indevidamente,

    um ou mais recursos do computador, todos os outros programas podem ficar

    comprometidos. Imagine que um programa acesse o disco-rgido para gravar um arquivo, e

    no libere o disco mesmo depois de gravar, todos os programas no tero acesso ao disco

    por causa disso.

    Para organizar a execuo dos programas, os sistemas operacionais so feitos com um

    conjunto de rotinas denominado Chamadas ao Sistema. Essas rotinas so responsveis

    por executarem as operaes especiais de acesso aos recursos do computador e de acesso

    ao ncleo do sistema. Atravs das informaes passadas a uma rotina, que ser executada

    pelo prprio sistema operacional, garantindo assim o controle de todos os recursos

    disponveis no computador. Ao trmino da execuo da rotina uma resposta ser enviada ao

    programa que solicitou a sua execuo.

  • 7/29/2019 03-Sistemas Operacionais

    24/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil24

    UNIDADE 5Objetivo: Identificar o que so processos, como so formados e executados, e a maneiracomo o sistema operacional lida com eles.

    Processos

    1. Definio de Processo

    Um programa uma sequncia de instrues ordenadas escritas em uma linguagem

    computacional (Pascal, C++, J ava, etc.). Um processo uma instncia de um programa que

    est sendo executado, ou seja, o programa sendo executado no computador. Dependendo

    de como o programa foi criado, mais de um processo pode estar associado a ele durante a

    execuo, sendo que cada processo representa um determinado conjunto de instrues do

    programa original. Isto acontece no Mediaplayer, por exemplo, quando h uma msica

    tocando e o usurio est procurando outra msica na lista de msicas, neste caso existe um

    programa em execuo e pelo menos dois processos associados tambm em execuo.

    Os sistemas operacionais mais utilizados hoje em dia so multitarefa, realizada atravs do

    compartilhamento do tempo do processador. Desta forma, vrios programas podem ser

    executados, e consequentemente vrios processos, em um mesmo computador. Para

    realizar esta tarefa o sistema operacional deve separar os programas, e processos, para que

    a execuo seja feita de maneira organizada, e para isso as seguintes propriedades devem

    ser armazenadas para cada processo:

    Cdigo executvel do programa associado ao processo;

    Espao de Memria utilizado, onde fica armazenado o cdigo executvel, dados

    utilizados, estruturas de controle de execuo;

  • 7/29/2019 03-Sistemas Operacionais

    25/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil25

    Descritores do Sistema Operacional, como tabela de arquivos em disco ou servidores

    de banco de dados;

    Atributos de Segurana, indicando o nome do usurio que iniciou o processo, as

    permisses de execuo no computador;

    Estado do Processo, que informar se o processo est em execuo, esperando a

    liberao de algum recurso, bloqueado ou em outra situao.

    2. Gerenciamento de Programas

    O sistema operacional, sendo multitarefa, realiza o compartilhamento do processador entre

    os processos por meio da ativao, momentnea, do processo que ser executado no

    processador. Se o processador possuir mais de um ncleo de processamento, mais de um

    processo poder estar em execuo no processador. Como apenas um processo pode estar

    ativo em cada ncleo do processador, os outros devero esperar alguns instantes, at que o

    processo em execuo tenha sido executado pelo tempo que o sistema operacional

    designou a ele. Quando o tempo do processo atual terminar, o sistema operacional realizar

    uma operao chamada Troca de Contexto, em que o processo atual ser substitudo poroutro processo que estava esperando a liberao de um ncleo no processador.

    A Troca de Contexto a etapa em que o sistema operacional armazenar todas as

    informaes relativas execuo do processo atual, para permitir que o mesmo possa

    continuar a execuo em outro momento, e incluir outro processo para ser executado. Esta

    etapa deve ser executada de maneira quase instantnea, pois o processador deve ser

    utilizado principalmente para executar os programas. Existem trs eventos que podem iniciar

    a Troca de Contexto:

    Escalonamento de Processo: como foi dito anteriormente, cada processo em

    execuo ir utilizar um ncleo do processador por uma fatia de tempo, quando este

    tempo se esgotar, o processo atual dever ser substitudo por outro processo;

  • 7/29/2019 03-Sistemas Operacionais

    26/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil26

    Ocorrncia de Interrupo ou exceo: quando h a ocorrncia de uma

    interrupo/exceo, o sistema operacional deve entrar em operao para tratar da

    interrupo/exceo, e para isso, o prprio sistema operacional iniciar um (ou mais)

    processo (s) prprio(s).

    O terceiro cenrio a troca de modo usurio para modo kernel. Quando tal transio

    requisitada pelo sistema operacional, uma troca de contexto no necessria, mas

    dependendo da implementao isso feito.

    Os programas so um conjunto de instrues escritas em linguagem computacional.

    Exemplos de programas so: MS-Word, MS-Excel, AutoCAD, Adobe Photoshop,

    MediaPlayer, InternetExplorer, Need for Speed, World of Warcraft, entre outros. Quando um

    programa est em execuo, pode ter um ou mais processos associados, os prprios

    sistemas operacionais possuem vrios processos em execuo durante o funcionamento do

    computador. Alm de controlar a execuo de cada processo, o sistema operacional deve

    manter a associao entre um processo e o programa que o originou. Quando um programa

    iniciado, um processo chamado Pai ou Principal criado, e todos os outros existentes

    associados ao mesmo programa so denominados Processos Filhos. Se o mesmo programativer mais de uma execuo simultnea, por exemplo, duas telas do Internet Explorer

    representam dois programas em execuo, cada programa ser considerado independente

    do outro, com seus processos tratados de maneira independente.

    3. Estados de um processo

    Durante o funcionamento do computador, os vrios processos executados passaro pordiferentes estados: em espera, em execuo, bloqueado. Esses estados definem a maneira

    como sero tratados pelo sistema operacional. O funcionamento especfico de cada estado

    depende do sistema operacional utilizado, mas de modo geral os processos so divididos em

    trs grupos.

  • 7/29/2019 03-Sistemas Operacionais

    27/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil27

    Quanto um processo criado, ele deve esperar que o sistema operacional conceda a ele um

    tempo de execuo em um ncleo do processador, ento logo aps a criao o processo fica

    em Estado de Espera e fica armazenado na memria principal do computador. Quando o

    processo recebe do sistema operacional a autorizao para utilizar um ncleo doprocessador ele passa para o Estado de Execuo, e assim o processo executa suas

    instrues internas. E assim o processo fica alternando entre os estados de Espera e

    Execuo, enquanto o programa que o originou no for finalizado. Se durante o estado de

    Execuo o processo fizer uma solicitao de algum recurso do computador ao sistema

    operacional, por exemplo, gravar alguma informao no disco rgido, e o recurso no puder

    ser liberado imediatamente, por exemplo, j houver um outro processo utilizando o disco-

    rgido, o processo que ficar esperando a liberao do recurso passar para o Estado de

    Bloqueio. Neste estado, o processo no participar das trocas de contexto feitas pelo

    sistema operacional, ou seja, no voltar ao estado de Espera, at que o recurso solicitado

    seja liberado. Aps a liberao do recurso, o processo passar do estado de Bloqueio para o

    estado de Espera.

    4. Comunicao Entre Processos

    A comunicao entre os processos algo de extrema importncia, pois sem ela, a execuo

    dos programas no seria feita de maneira organizada. Veja a seguinte situao: quando um

    programa imprime um arquivo, o sistema operacional inicia um programa de gerenciamento

    da impresso. Esse programa dever controlar a lista de arquivos a serem impressos,

    permitir que outros arquivos sejam includos na lista, e enviar um arquivo por vez

    impressora. Nesse caso, pelo menos trs processos sero necessrios para organizar o

    gerenciamento das impresses, e se no houver comunicao entre esses processos, o

    gerenciador nunca saber quando incluir um arquivo novo na lista de impresso ou quando

    retirar um arquivo da lista de impresso.

    Para que essa comunicao exista, tanto os programas quanto o sistema operacional devem

    ser construdos de modo a permitir a efetivao da comunicao. Esta efetivao garantida

  • 7/29/2019 03-Sistemas Operacionais

    28/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil28

    utilizando-se mecanismos de controle e estruturas de dados que possibilitem a identificao,

    organizao e separao entre os processos e informaes trocadas entre os processos. Os

    sistemas operacionais oferecem algumas funes e rotinas para fornecerem suporte aos

    programas, sendo que essas funes devem ser includas no programa durante o seudesenvolvimento. Alguns exemplos de mecanismos de comunicao entre processos so:

    FIFO (First In First Out): Neste mecanismo, um processo abre um canal de

    comunicao com outro processo, sendo que o primeiro apenas escreve dados na

    FIFO, enquanto o segundo processo l dados da FIFO, este mecanismo deve ser

    utilizado e gerenciado dentro dos programas, e no pelo sistema operacional.

    PIPES unidirecionais: tem funcionamento semelhante ao FIFO, a diferena quenesse caso o controle da comunicao feito pelo sistema operacional.

    FILA DE MENSAGENS: Uma fila de mensagens (message queue) permite criar uma

    rea de troca de mensagens entre os processos, sendo que essa rea ser

    administrada pelo sistema operacional. A caracterstica mais importante da Fila de

    Mensagens a possibilidade de acesso a uma mensagem de maneira seletiva, pois

    existe um identificador especial para cada mensagem.

    Memria Compartilhada: a memria compartilhada semelhante Fila de

    Mensagens, a diferena que o controle deve ser feito dentro dos programas que

    utilizam este mecanismo.

  • 7/29/2019 03-Sistemas Operacionais

    29/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil29

    UNIDADE 6Objetivo: Conhecer o funcionamento das threads, e a relao entre as threads e osprocessos.

    Threads

    1. Definio De Thread

    A traduo literal da palavra thread linha, e em computao pode ser entendida como a

    linha (ou instruo) de programa em execuo. Mas o conceito de thread estende o simples

    conceito de linha de programa, pois uma thread no definida isoladamente, e sim em

    conjunto com outras threads: Threads so partes independentes de um processo em

    execuo. A diferena bsica entre threads e processos : um processo no compartilha um

    mesmo recurso do computador simultaneamente com outro processo, enquanto que uma

    thread pode compartilhar um mesmo recurso simultaneamente com outras threads (dentro do

    mesmo processo).

    Vrias threads so executadas simultaneamente pelo processador, pois so partes distintas

    de um processo, como por exemplo: uma thread que ir realizar a soma de dois nmeros

    pode ser executada simultaneamente com uma outra thread que ir gravar uma informao

    no disco-rgido. Dentro do processador, onde realmente ser feito o comando de execuo,

    ocorrem algumas etapas para se completar uma operao: leitura e decodificao da

    instruo, leitura dos dados, execuo da instruo, leitura e apresentao da resposta

    (existem diferenas na quantidade de etapas entre os processadores, e tambm na

    nomenclatura utilizada por cada um). Quando o processador comea a executar uma thread,

    aps as primeiras etapas, j fica liberado para iniciar a execuo de outra thread, desta

    maneira as threads sero executadas de maneira quase simultnea.

  • 7/29/2019 03-Sistemas Operacionais

    30/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil30

    Os processadores possuem um ou mais ncleos de processamento, e cada ncleo possui

    internamente vrias unidades de processamento, cada unidade responsvel por um tipo:

    comparao numrica, aritmtica, clculos com nmeros decimais (ponto flutuante), etc.

    Cada unidade pode estar executando uma thread independente, e os processadores queconseguem realizar essa execuo realmente simultnea so denominados de

    Processadores Multi-Threading ou Hiper-Threading (dependendo do fabricante).

    A execuo de threads (parcial ou totalmente simultneas) depender, alm do processador,

    do sistema operacional, pois o mesmo ir gerenciar a execuo das threads de maneira

    semelhante realizada com os processos. As threads so administradas por meio das

    Chamadas ao Sistema.

    Em ltimo caso, praticamente no mais utilizado nos dias atuais, os prprios programas

    podem ter internamente estruturas de gerenciamento de suas prprias threads, um exemplo

    clssico o Internet Explorer utilizado no antigo sistema Windows 3 (anterior ao Windows

    95). O Windows 3 no oferecia suporte execuo de vrias threads, mas o Internet

    Explorer realizava a execuo de vrias threads atravs de mecanismos internos do prprio

    programa.

    2. Diferenas entre Threads e Processos

    As threads se diferenciam dos processos nas seguintes propriedades:

    Os processos em execuo no computador utilizam os recursos de modo exclusivo,

    no permitindo que outro processo (nem mesmo do prprio programa) acesse o

    mesmo recurso que j estiver em uso;

    As Threads podem compartilhar a utilizao de um recurso, mas este compar

    tilhamento ocorre apenas dentro de um nico processo (pois o compartilhamento entre

    processos no existe).

  • 7/29/2019 03-Sistemas Operacionais

    31/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil31

    Os processos possuem uma grande quantidade de informao associada a eles,

    informaes que so utilizadas pelo sistema operacional para gerenciar a execuo

    de vrios processos sem que aconteam erros;

    Threads no necessitam de muita informao para gerenciamento, pois so

    especficas de cada processo, tornando seu gerenciamento mais fcil e rpido.

    Quando o sistema operacional vai realizar a Troca de Contexto de um processo para

    outro, vrias informaes tm que ser salvas, os recursos utilizados tm que se

    manter bloqueados, e o trecho de execuo (linha de cdigo) do processo tm que ser

    salva para que o mesmo possa continuar a execuo em um segundo momento.

    Quando a Troca de Contexto feita nas threads de um processo, a operao realizada com uma velocidade maior, pois ser necessrio salvar uma quantidade

    mnima de informao e o trecho de execuo da thread, os recursos se mantm

    inalterados. Por isso, atualmente, os programas e sistemas operacionais so feitos

    para tirarem o mximo proveito das threads, e consequentemente tirar o mximo

    proveito dos recursos do computador. Em computadores equipados com vrios

    processadores, ou com um processador de vrios ncleos, a utilizao de threads

    aumentar significativamente o desempenho do sistema, pois as threads so mais

    facilmente executadas simultaneamente que os processos.

    Um exemplo de programa que utiliza mltiplas threads o Internet Explorer, pois ao montar

    uma pgina de hiper-texto, cria uma thread para cada item na pgina (texto, figuras,

    animao, msica, vdeo) assim as mltiplas threads podem ir montando o contedo da

    pgina medida em que os dados so recebidos pelo computador. Outro programa que

    utiliza mltiplas threads o Adobe Acrobat Reader, em que um documento PDF exibido aousurio antes de terminar o seu carregamento, as threads nesse caso compartilham a

    mesma rea de memria onde esto armazenadas as informaes do arquivo. O programa

    Word no oferece esse recurso, um documento do Word s exibido ao usurio depois de

    inteiramente carregado na memria principal do computador.

  • 7/29/2019 03-Sistemas Operacionais

    32/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil32

    A Troca de Contexto entre as threads pode ser feita de duas maneiras: Preemptiva e

    Cooperativa. Na Troca Preemptiva o sistema operacional tem total controle da thread, ele

    que determina o momento de ocorrncia da Troca de Contexto. Na Troca Cooperativa cada

    thread tem o prprio controle e determina o momento de interromper a execuo e passar oprocessador para outra thread. A desvantagem na Troca Cooperativa a possibilidade de

    uma thread assumir o processador por muito tempo, no permitindo que outra thread seja

    executada, e a desvantagem da Troca Preemptiva a possibilidade de o sistema operacional

    interromper uma thread em um momento crtico indevido, causando uma situao anormal

    no sistema.

    Alguns sistemas operacionais fazem distino entre as threads executadas por um processo

    do prprio sistema e as threads executadas por processos relativos a programas do usurio.As threads do sistema so gerenciadas no Modo Kernel, que entre outras coisas realiza a

    Troca de Contexto Preemptiva, e as threads do usurio so gerenciadas no Modo Usurio,

    em que as Trocas de Contexto so Cooperativas.

    3. Concorrncia

    As threads em um mesmo processo compartilham os mesmos recursos do computador. Isto

    implica em Acesso Concorrente aos recursos, e Execuo Concorrente das instrues do

    programa. Para exemplificar, imagine uma situao em que duas threads iro realizar uma

    operao de gravao de dados em uma mesma rea de memria (na mesma varivel no

    cdigo fonte), sendo que as threads s podero realizar a operao se no houver dados

    naquela rea. Nesse caso, as threads no podero acessar essa rea simultaneamente, pois

    se isso acontecer, apenas uma gravao de uma das threads ser armazenada, ou ento

    haver uma mistura dos dados gravados, o que poder comprometer a continuao daexecuo do processo (causando travamento no programa).

    Para evitar que isso acontea, alguns mecanismos de proteo devem ser implementados,

    mecanismos de comunicao e sincronizao na execuo das threads, mas no podem ser

    complexos, pois poderiam dificultar o gerenciamento das trocas de contexto entre as threads.

  • 7/29/2019 03-Sistemas Operacionais

    33/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil33

    Esses mecanismos so criados no Sistema Operacional por meio de rotinas e estruturas de

    dados que realizem o controle do acesso aos recursos do computador e a rpida

    manipulao das threads.

    Essas situaes em que uma thread realiza uma operao simultnea com outra thread so

    denominadas Condio de Corrida ou Condio de Disputa, em que as threads iro competir

    para conseguir o acesso exclusivo ao recurso necessrio para realizar as operaes daquele

    instante.

    Veja a "Cartilha de Segurana para Internet", esta cartilha tem por finalidade sanar

    dvidas comuns sobre segurana de computadores e redes e sobre o significado de

    termos e conceitos da Internet. Alm disso, procura enumerar, explicar e fornecer um guia

    de procedimentos que visam aumentar a integridade do computador e de posturas que

    um usurio pode adotar para garantir a sua segurana.

    Local: http://www.terra.com.br/informatica/especial/cartilha

  • 7/29/2019 03-Sistemas Operacionais

    34/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil34

    UNIDADE 7Objetivo: Aprender como realizada a comunicao entre os processos e threads emexecuo no computador, e a maneira como ela implementada em alguns sistemasoperacionais.

    Comunicao Entre Processos

    1. Introduo

    A comunicao entre os processos e threads muito importante, pois uma das ferramentas

    que torna possvel a execuo de vrias tarefas simultaneamente no computador. A

    comunicao utilizada quando um processo ou uma thread precisa passar, ou solicitar,

    algum dado que s pode ser informado por outro processo ou outra thread, por exemplo, o

    gerenciador de impresso deve ser feito de tal forma que a comunicao entre os seus

    processos seja eficiente, caso contrrio a utilizao da impressora ficar comprometida.

    Como foi visto anteriormente, tanto o sistema operacional quanto o programa devem ser

    construdos de maneira que a comunicao entre os processos e threads possa ser

    realizada. Para permitir isso, o sistema operacional feito com vrias rotinas que realizaro o

    gerenciamento da comunicao. Essas rotinas so acessadas pelos programas atravs das

    API's do sistema operacional. Assim, os programas possuem funes especiais, alm das

    especficas, que realizaro a comunicao no momento desejado.

    A API do sistema operacional MS-Windows, denominada Win32, possui um subconjunto de

    rotinas chamadas COM (Component Object Model, Modelo de Componente de Objeto) e

    possui as funes necessrias para realizar a troca de dados entre os processos e threads.

    Nos sistemas UNIX a API POSIX possui dois subconjuntos de funes, um para o tratamento

    de processos, POSIX Core Services, e outro especfico para o tratamento de threads

  • 7/29/2019 03-Sistemas Operacionais

    35/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil35

    chamado POSIX-Thread ou PThread. E no MacOS X as funes esto agrupadas no

    subconjunto Core Foundation.

    2. MS-Windows Component Object Model

    Nas primeiras verses do MS-Windows a API possua um subconjunto de funes para a

    comunicao entre os processos denominada DDE (Dynamic Data Exchange, Troca

    Dinmica de Dados). Essas funes ofereciam um conjunto bsico e simplificado para

    realizar a troca de dados entre os processos de um programa, e entre processos de

    programas diferentes. Com o lanamento do MS-Windows 3.1 em 1992 um novo conjunto de

    rotinas para troca de informaes entre os processos foi criado, sendo chamado de COM.

    As rotinas da COM so includas nos programas por meio de componentes, como por

    exemplo, para ler o contedo de um arquivo texto. Para realizar a leitura do arquivo para um

    programa, a rotina de leitura possui os itens necessrios: mecanismo de busca do arquivo no

    disco-rgido, funo para copiar os dados do disco-rgido para a memria principal, entre

    outros. Outro componente que est disponvel nas rotinas da COM o temporizador, que

    pode ser alterado para executar uma determinada funo em instantes pr-determinados. O

    programador no precisa (e nem deve) se preocupar com o funcionamento interno das

    rotinas da COM, o que ele precisa saber so apenas duas: quais as informaes necessrias

    para executar a rotina da COM, e qual ser a resposta na concluso da rotina.

    Tanto o componente para ler um arquivo, quanto o temporizador, e todos os outros da COM,

    possuem os mecanismos necessrios para realizar a troca de informao entre os processos

    de um programa. Um programa como o MS-Word ir executar uma rotina da COM para abrir

    um arquivo, essa rotina ser executada por um processo independente (processo filho), que

    ao terminar, dever avisar ao processo (principal) que o executou, o prprio MS-Word,

    indicando que a leitura do arquivo terminou, e que o contedo do arquivo est disponvel em

    uma rea na memria principal. Se o arquivo no pode ser lido no disco-rgido, a rotina da

    COM dever informar o motivo de no ter conseguido ler, que pode ser, por exemplo, a no

    existncia do arquivo no disco.

  • 7/29/2019 03-Sistemas Operacionais

    36/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil36

    A COM tambm possui rotinas para que o programa crie seus prprios processos, ou

    threads, de acordo com a implementao feita pelo programador, e possui tambm rotinas

    para que os processos e threads se comuniquem. Os componentes da COM ficam

    disponveis aos programadores atravs das ferramentas de desenvolvimento de programas,como: Borland Delphi, MS-Visual Studio, entre outras. Na prtica, o que fica disponvel aos

    programadores so partes das rotinas, pois as rotinas completas esto no prprio MS-

    Windows. Essas partes contm apenas as regras de utilizao da rotina, que chamada de

    Interface de Componente.

    Essa abordagem tem vantagens e desvantagens: as vantagens mais perceptveis so: a

    economia de tempo no desenvolvimento do programa e a diminuio do espao ocupado

    pelo programa, tanto na memria principal quanto no disco-rgido; e as desvantagens so: agrande necessidade de espao para o prprio sistema operacional, e a dependncia dos

    programas a uma determinada verso do MS-Windows, pois cada verso possui uma COM

    especfica.

    Algumas rotinas so executadas como um processo dentro do prprio programa do usurio,

    e outras atravs dos Servios de Componentes, que so pequenos aplicativos executados

    de forma independente, mas em sincronia com o programa do usurio.

    As rotinas de comunicao do MS-Windows Vista passaro a ter um novo nome: Windows

    Communication Foundation. A mudana de nome se deve a mudanas internas na execuo

    das rotinas de controle de comunicao entre os processos. Por causa dessa mudana,

    muitos programas feitos para o MS-Windows XP no funcionaram no MS-Windows Vista. As

    alteraes visavam obter melhorias no desempenho dos programas, e melhor

    aproveitamento dos recursos do computador, visto que a maioria dos computadores atuais

    possui um processador com a capacidade de execuo de vrias threads simultaneamente,

    e alguns processadores com mais de um ncleo podem executar mais de um processo

    simultaneamente.

  • 7/29/2019 03-Sistemas Operacionais

    37/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil37

    3. POSIX Core Services

    O padro POSIX foi formalizado em 1990, definido para se criar um padro de

    funcionamento entre as diversas verses do sistema Unix existentes na poca. O POSIX

    tornou-se um padro entre os sistemas Unix, sendo adotado praticamente por todos os

    sistemas, no havendo excees de importncia. As verses iniciais do POSIX continham

    rotinas para o gerenciamento de processos, permitindo a criao de vrios simultaneamente

    e a troca de dados entre eles. A execuo dos processos feita, desde o incio, utilizando-se

    a tcnica de compartilhamento do tempo do processador. Essas rotinas receberam o nome

    de POSIX Core Services.

    Para os programadores de aplicativos, as rotinas de gerenciamento dos processos so

    acessadas a partir de bibliotecas de funes. Estas so semelhantes aos componentes

    COM, as diferenas dizem respeito mais a questes conceituais do que prticas. As rotinas

    que fazem parte do POSIX Core Services permitem aos programadores criarem programas

    que podem ser utilizados em sistemas HP-UX (Unix da Hewllet-Packard) e IBM AIX, ou

    qualquer uma das principais distribuies do sistema Linux.

    Os programas feitos utilizando tais rotinas podem ser executados em diversos sistemas Unix,

    pois em todos eles as rotinas possuem a mesma definio para os parmetros de entrada ea mesma definio para o resultado delas. Internamente cada rotina ser feita de acordo com

    os critrios das respectivas equipes de desenvolvimento de cada empresa. Para realizar o

    gerenciamento de threads nos sistemas Unix, foi criado outro conjunto de rotinas

    denominado POSIX Threads. Este novo conjunto permite que um mesmo processo possa

    criar vrias threads de execuo, otimizando a utilizao dos recursos do computador.

    Um detalhe importante: os programas s funcionaro em sistemas Unix diferentes se

    possurem apenas as rotinas disponveis no POSIX. A utilizao de rotinas especficas, ouproprietrias, no definidas no padro POSIX pode tornar um programa feito para um

    sistema incompatvel com outro sistema. Imagine um sistema Unix hipottico chamado BRIX

    utilizado para monitorar um processo industrial. Esse sistema conter algumas rotinas

    especficas para o seu funcionamento. Se um aplicativo for feito para realizar alguns

  • 7/29/2019 03-Sistemas Operacionais

    38/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil38

    controles adicionais na indstria, como por exemplo, o controle de estoque, utilizando estas

    rotinas, ele s poder ser utilizado no sistema BRIX. Para o programa ser compatvel com

    vrios sistemas Unix, os sistemas que iro execut-lo devem possuir os mesmos conjuntos

    de rotinas.

    4. MacOS X Core Foundation

    No MacOS X as principais rotinas de gerenciamento do sistema so agrupadas na Core

    Foundation. Ela possui os tipos de dados fundamentais e servios essenciais para realizar a

    correta execuo dos programas no computador. As rotinas so definidas como Objetos

    Gerenciados pelo MacOS X, e acessveis aos programadores graas s ferramentas dedesenvolvimento disponveis para os computadores Macintosh, quando for necessria uma

    utilizao direta das funes contidas na Core Foundation. Os objetos so definidos de modo

    altamente abstrato, permitindo um grande grau de independncia entre as verses do Mac

    OS X (atualmente est na 5 verso).

    A Core Foundation oferece suporte tanto aos aplicativos quanto ao prprio sistema

    operacional, sendo que algumas funes so realizadas atravs de rotinas includas nos

    programas, e outras rotinas so executadas pela prpria Core Foundation, por meio de

    utilitrios denominados Servios do Sistema. Estes servios so semelhantes aos Servios

    de Componente do MS-Windows XP.

    Uma caracterstica importante da Core Foundation nos computadores Macintosh a

    manuteno da compatibilidade com aplicativos desenvolvidos para os sistemas

    operacionais anteriores ao MacOS X. Antes do MacOS X os computadores Macintosh

    utilizavam o sistema operacional MacOS System. Aplicativos simples, que no utilizam

    comunicao entre processos so gerenciados por um conjunto de rotinas denominadas

    Carbon, mas o Carbon no possui a capacidade de gerenciar a comunicao entre

    processos de aplicativos antigos, essa tarefa feita pela Core Foundation de maneira

    totalmente transparente, no havendo a necessidade de alteraes no programa original.

  • 7/29/2019 03-Sistemas Operacionais

    39/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil39

    UNIDADE 8Objetivo: Entender o mecanismo de gerenciamento dos processos feito pelo sistemaoperacional, e conhecer os modelos que podem ser utilizados para realizar esta tarefa.

    Gerenciamento De Processos

    1. Introduo

    O gerenciamento de processos um dos conceitos fundamentais dos sistemas operacionais

    modernos. No gerenciamento dos processos sero definidas as propriedades dos processos

    em execuo, e a maneira como cada um receber o tempo de execuo no processador. A

    principal funo do gerenciador de processos exatamente a execuo do processo no

    processador de maneira adequada (considerando a prioridade do processo e a quantidade

    de processos gerenciados).

    2. Tipos de Gerenciadores de Processos

    Em relao execuo dos processos, os gerenciadores podem ser separados em trs

    categorias:

    Gerenciadores por Admisso: neste caso o gerenciador ir escolher quais processos

    sero selecionados para serem executados no processador. Quando um programa

    solicita ao sistema operacional a execuo de alguma operao, o gerenciador deprocessos que ir decidir o momento em que esta solicitao ser atendida. Esta

    escolha feita verificando-se alguns fatores, sendo que o principal fator a Prioridade

    do Processo.

  • 7/29/2019 03-Sistemas Operacionais

    40/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil40

    Esse tipo de gerenciador geralmente utilizado em Sistemas de Tempo Real, em que

    o controle da execuo das operaes deve ser rigorosamente definido e obedecido.

    No existe nenhum sistema operacional para computadores pessoais que utilize esse

    tipo de gerenciador de processos;

    Gerenciadores por Tempo Mdio: este est presente em todos os sistemas que

    trabalham com Memria Virtual (descrito na Unidade 12) que temporariamente ir

    retirar processos da memria principal e guard-los na memria secundria, e vice-

    versa. A escolha de qual processo ir sair da memria principal para a secundria

    feita de acordo com o estado do processo.

    Como visto na Unidade 5, enquanto o processo est nos estados de Espera e

    Execuo, ficar na memria principal e quando passar para o estado de Bloqueio

    ser retirado da memria principal e ser armazenado na memria secundria.

    Quando o processo passar do estado de Bloqueio para Espera, ser enviado da

    memria secundria para a principal;

    Gerenciadores Despachantes: os despachantes designam os processos para serem

    executados pelo processador baseados em alguma alterao ocorrida no sistema, que

    pode ser causada por uma interrupo do relgio do processador, por um dispositivo,por uma instruo de Chamada do Sistema, ou por algum outro sinal identificvel.

    Dessa maneira, no ser nem a prioridade do processo, nem a alterao do seu

    estado que influenciaro na escolha feita pelo gerenciador. As execues dos

    processos sero feitas de acordo com o nvel de atividade do sistema.

    Quando houver uma carga de trabalho muito grande, os processos recebero em

    intervalos regulares o devido tempo de execuo no processador. Quando a carga de

    trabalho for menor, cada processo ter mais tempo para executar no processador. (Otempo de interrupo causado pelo relgio pode ser definido pelo programador do

    sistema operacional).

  • 7/29/2019 03-Sistemas Operacionais

    41/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil41

    3. Algori tmos para Gerenciamento de Processos

    Na informtica o termo algoritmo define o conjunto de instrues que iro executar uma

    determinada tarefa. Um algoritmo para um Gerenciador de Processos contm as instrues

    necessrias para que o gerenciamento seja feito de maneira correta e organizada.

    Atualmente os sistemas operacionais tm uma necessidade por algoritmos extremamente

    eficientes, devido ao maior nmero de programas em execuo nos computadores, e da

    maior quantidade de recursos disponveis.

    Um algoritmo pode ser escrito definindo-se um Gerenciador Despachante, com a troca entre

    os processos no processador feita a partir de interrupes do relgio a cada 100ms, e a troca

    entre os processos ser feito por um mtodo de rodzio. Esse tipo de algoritmo um dos mais

    simples de ser feito. Os sistemas operacionais atuais necessitam de um algoritmo com maior

    capacidade de controle dos processos e com maior aproveitamento do processador. Pode-se

    planejar um algoritmo que trabalhe com prioridade de execuo nos processos, ou com base

    no Estado de Execuo deles.

    Essa escolha feita durante o desenvolvimento do Sistema Operacional e influenciar

    diretamente o desempenho geral do computador. A escolha feita pensando-se no tipo de

    utilizao que o usurio far dos recursos computacionais e do tipo de aplicao que serexecutado.

    Um exemplo de algoritmo avanado para gerenciamento de processos chamado de Fila de

    Resposta Multi-nvel. Os objetivos desse algoritmo so:

    Executar preferencialmente Processos com poucas instrues;

    Executar preferencialmente Processos que iro fazer acesso a algum dispositivo;

    Definir rapidamente a natureza do processo, e gerenci-lo adequadamente.

    Nesse algoritmo cada processo tem a oportunidade de concluir suas instrues a cada

    instante. Caso isso no acontea, o gerenciador ir reclassificar o processo, colocando-o em

    um determinado nvel de controle.

  • 7/29/2019 03-Sistemas Operacionais

    42/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil42

    UNIDADE 9Objetivo: Conhecer o funcionamento do mecanismo de sincronizao entre os processos nautilizao dos recursos do computador.

    Sincronizao Dos Recursos

    1. Introduo

    A sincronizao dos recursos do computador uma tarefa muito importante, realizada pelos

    sistemas operacionais multitarefas e feita em duas reas distintas:

    Sincronizao dos Dados: nesse caso o objetivo manter os dados do computador

    em perfeita integridade;

    Sincronizao dos Processos: refere-se sincronizao da execuo dos processos,

    com o objetivo de se evitar o conflito na utilizao dos recursos do computador;

    A sincronizao dos processos s faz sentido em sistemas multitarefa, em que a cada

    instante, vrios processos podero estar em execuo. O trabalho do sistema

    operacional ser garantir que cada processo seja concludo corretamente. Aqui, o

    conceito de processo ser aplicado tanto ao processo em si quanto thread, ou seja,

    a sincronizao de processos e sincronizao de threads sero tratados de maneiras

    unificadas, como Sincronizao de Processos.

    Para realizar a sincronizao algumas medidas podem ser tomadas: a utilizao deBarreiras, Travas, Semforos, Comunicao e vrias outras. Algumas dessas medidas so

    implementadas no cdigo dos programas, como as Barreiras, e outras medidas so

    realizadas no sistema operacional, as Travas.

  • 7/29/2019 03-Sistemas Operacionais

    43/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil43

    2. Controle da Sincronizao

    Como foi mencionado, para realizar a sincronizao podem-se utilizar Barreiras, Travas eSemforos, entre outras medidas.

    As Barreiras so criadas e gerenciadas pelos desenvolvedores de programas aplicativos.

    Dentro das instrues desses programas, deve-se incluir uma instruo de criao de

    Barreira. Quando um processo executa tal instruo, entra em estado de Espera (ou

    Bloqueio), e permanece assim at que todos os processos pertencentes ao mesmo

    programa tambm executem a instruo de Barreira. Com isso consegue-se colocar todos os

    processos no mesmo ponto de execuo do programa.

    Semforos podem ser utilizados tanto pelos programas quanto pelo sistema operacional. So

    variveis de controle, que indicam se um determinado recurso pode ser utilizado ou no. O

    modo mais frequente de controle a utilizao de um contador no semforo. O contador

    indica a quantidade de processos que podem compartilhar o recurso, quando o limite

    alcanado, nenhum processo a mais pode utilizar o mesmo recurso.

    Barreiras e Semforos geralmente so utilizados para lidar com situaes em que vriosprocessos podem (ou devem) compartilhar um mesmo recurso. Nos casos, nos quais um

    recurso deve ser utilizado exclusivamente por apenas um processo utilizada a Trava.

    Alguns sistemas implementam Travas Simples, que impedem a utilizao do recurso por

    outro processo, e outros sistemas implementam Travas Especiais, que emitem um sinal

    (aviso de erro) quando um processo tenta acessar um recurso j em uso. Existe tambm a

    possibilidade de se ter uma Trava Compartilhada por vrios processos, mas nesse caso, o

    acesso ao recurso fica limitado apenas leitura dos dados contidos nele.

    Para o correto funcionamento dos mtodos de sincronizao, o processador deve estar

    preparado para permitir que os processos consigam compartilhar um recurso at o limite

    estabelecido, sem que haja conflito no controle de sincronia. Por exemplo, em um sistema de

    Trava, se ela estiver aberta significa que um processo poder acessar o recurso. Se, em um

  • 7/29/2019 03-Sistemas Operacionais

    44/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil44

    mesmo instante, dois processos tentarem utilizar o recurso, os dois conseguiro acesso ao

    recurso e com certeza isso resultar em m utilizao dele (imagine uma impressora

    imprimindo simultaneamente dois documentos diferentes).

    Para evitar essa falha, os processadores devem possuir mecanismos de verificao e

    ativao da sincronia quase instantnes, ou, no mnimo, no conflitantes. Esses mecanismos

    no processador so instrues que realizaro a sincronizao de maneira correta, as

    instrues sero do tipo verificar e travar recurso, uma mesma instruo faz a verificao e,

    se possvel, o travamento do recurso. Esse mecanismo s vlido em computadores com

    um processador (podendo o processador ter vrios ncleos). Em computadores com vrios

    processadores, o controle da sincronizao mais complexo, havendo um maior nmero de

    consideraes a serem feitas.

    A etapa de efetivao do sincronismo muito importante, o tempo que ela demora no deve

    em hiptese alguma ser demorado. A efetivao da sincronizao deve acontecer

    obrigatoriamente antes de o processador executar mais uma instruo de outro processo (ou

    do mesmo processo). A etapa de liberao de uma sincronizao tambm deve ser tratada

    de maneira adequada, pois em um ambiente de execuo de mltiplos processos, para

    haver a real otimizao da utilizao dos recursos, os processos devem ter acesso aos

    mesmos assim que eles no estiverem em uso.

    3. Granularidade da Sincronizao

    A granularidade de uma sincronizao a medida da quantidade de dados que esto sendo

    utilizados pelos processos envolvidos no sincronismo. O tamanho da granularidade ir

    influenciar diretamente no desempenho do sistema, pois realizar o compartilhamento de uma

    grande rea de dados por vrios processos exigir um maior controle no processo de

    alterao desses dados. Por outro lado, realizar vrios compartilhamentos em pequenas

    reas de dados pode gerar uma situao de Bloqueio de Processo (DeadLock), em que um

    processo A est com uma rea X travada e esperando o acesso a rea Y, e um processo B

    est com a rea Y travada esperando o acesso a rea X.

  • 7/29/2019 03-Sistemas Operacionais

    45/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil45

    Para evitar essas situaes, o compartilhamento de informao e sincronizao dos

    processos deve ser feito de maneira planejada e para casos estritamente necessrios.

  • 7/29/2019 03-Sistemas Operacionais

    46/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil46

    UNIDADE 10Objetivo: Entender os mtodos utilizados para prevenir que acontea algum tipo de bloqueioentre os processos durante o compartilhamento de recursos.

    Preveno Contra Bloqueio

    1. Introduo

    Um bloqueio entre processos acontece quando dois ou mais processos esto esperando a

    liberao de um recurso que est alocado para outro processo, que por sua vez est

    esperando a liberao do recurso que est travado para o primeiro processo. Nessa

    situao, se no houver a interveno do sistema operacional, a liberao dos recursos no

    acontecer.

    Para que a situao de bloqueio seja caracterizada, as seguintes condies devem ser

    encontradas:

    Um recurso est sendo utilizado por um processo;

    Um processo que j possui um recurso solicita outro recurso;

    Apenas o processo que usa o recurso pode liber-lo;

    Uma sequncia circular de solicitao de um novo recurso e travamento do recurso

    em uso por uma srie de processos.

  • 7/29/2019 03-Sistemas Operacionais

    47/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil47

    2. Preveno

    A preveno contra bloqueio deve ser feita de maneira a permitir que um processo aguarde a

    liberao de um recurso, contanto que essa espera no acarrete em uma dependncia

    circular.

    Uma maneira de evitar a dependncia circular entre eles utilizar uma ordenao por

    precedncia dos recursos do computador. Um determinado recurso ter ndice de ordem N, e

    se um processo est utilizando o recurso de ordem N, esse processo no poder solicitar

    outro recurso de ordem M, pois o novo recurso deveria ter sido solicitado anteriormente. Isto

    faz com que a utilizao dos recursos seja feita obrigatoriamente de maneira linear e no

    circular.

    Para evitar que aconteam bloqueios na utilizao dos recursos do computador, algumas

    estratgias devem ser adotadas:

    Nenhum processo ter acesso exclusivo aos recursos;

    A alocao de recursos computacionais por um processo s ser permitida em modo

    sequencial;

    Pr-alocao de recursos no incio da execuo do processo. Assim, antes mesmo de

    precisar, o recurso j estar reservado para o processo;

    A alocao de um recurso ser por tempo determinado, assim, a probabilidade de o

    recurso estar livre maior no sistema.

    3. Tratamento de bloqueio

    Quando no for possvel evitar o surgimento de um bloqueio no computador, outras medidas

    devem ser tomadas para o tratamento do bloqueio:

    Caso haja um bloqueio, os processos sero terminados, mas antes de serem

    finalizados, os dados sero salvos, os recursos reservados para cada processo sero

  • 7/29/2019 03-Sistemas Operacionais

    48/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil48

    liberados, e ento os processos so finalizados. Aps a finalizao deles, so

    reiniciados, sendo que a inicializao dos processos ser feita de forma sequencial,

    evitando assim que dois processos repitam o bloqueio de recursos.

    Detectar uma situao de bloqueio antes que ela acontea uma tarefa muito

    complexa, podendo at mesmo gerar falsos avisos de bloqueio. Na maioria dos

    casos no possvel fazer a diferenciao entre um processo que est aguardando a

    liberao de um recurso, e outro processo que est bloqueando a liberao de um

    recurso.

    4. Bloqueio Aberto

    Existe um caso particular de bloqueio que no causado pela espera de um recurso. Uma

    estratgia pouco utilizada para evitar uma situao de bloqueio a seguinte: verificar se um

    recurso est sendo solicitado por mais de um processo. Nesse caso, se um processo solicitar

    um recurso, tambm ir verificar se outro processo j solicitou o mesmo recurso, caso haja

    outro, processo solicitando-o, o primeiro ceder o recurso e ir esperar a liberao do

    mesmo pelo outro processo.

    Aqui o bloqueio pode acontecer e o recurso no estar sendo utilizado. Imagine dois

    processos X e Y, que fazem uma solicitao ao recurso R. Se a solicitao for feita

    simultaneamente (o que pode ocorrer em um sistema com vrios processadores ou um

    processador com vrios ncleos), os dois processos no iro utilizar o recurso R e ceder a

    utilizao um ao outro. O recurso est liberado, podendo ser utilizado, mas os processos no

    conseguem acesso ao recurso.

  • 7/29/2019 03-Sistemas Operacionais

    49/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil49

    At iv idade Dissertativa

    Interfaces Grficas

    Temos observado novas tecnologias que utilizam interface diferente das atuais: a interao

    entre o computador e o usurio feita utilizando imagens hologrficas e manipulao direta

    dos objetivos atravs das mos e, at mesmo, atravs do pensamento, como, por exemplo,

    vimos nos filmes "Minority Report" (Figura 10.1) e Iron Man 2 (Figura 10.2).

    Figura 10.1 Figura 10.2

    Veja tambm o vdeo Tan Le: Um fone que l as suas ondas cerebrais disponvel em sua

    SALA DE AULA no link ESTUDO COMPLEMENTAR.

    Diante deste tema descreva em no mximo 1 pgina:

    Analisando TODOS os pontos possveis (cultural, sustentvel, motor, etc.), quais os impactos

    que esta nova metodologia de interao com o computador pode trazer sociedade?

  • 7/29/2019 03-Sistemas Operacionais

    50/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil50

    Antes de dar continuidades aos seus estudos fundamental que voc acesse sua

    SALA DE AULA e faa a Atividade 1 no link ATIVIDADES.

  • 7/29/2019 03-Sistemas Operacionais

    51/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil51

    UNIDADE 11Objetivo: Aprender como feito o Gerenciamento da Memria do computador, e entender aimportncia de seu funcionamento correto.

    Gerenciamento Da Memria

    1. Introduo

    Basicamente, o gerenciamento da memria a ferramenta utilizada para permitir aos

    programas em execuo no computador utilizarem a memria do computador para

    armazenar as instrues e dados que sero manipulados. Os principais objetivos a serem

    alcanados no gerenciamento da memria so:

    Oferecer uma rea de armazenamento para os processos serem executados;

    Proteger a execuo dos processos contra eventuais falhas causadas por erro em um

    determinado processo;

    Criar um ambiente de execuo com desempenho satisfatrio aos usurios;

    Alm dessas caractersticas, adicionalmente deseja-se de um bom gerenciador:

    Compartilhamento da memria entre os processos (em sistemas avanados);

    Permitir aos programadores desenvolverem programas que tenham um acesso

    transparente memria do computador.

    Nos sistemas operacionais modernos, o gerenciamento da memria realizar essas tarefas

    atravs da Proteo da Memria.

  • 7/29/2019 03-Sistemas Operacionais

    52/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil52

    2. Proteo da Memria

    A Proteo da Memria a estratgia utilizada pelos sistemas operacionais para controlar amemria em utilizao no computador. A principal funo da proteo da memria a

    separao dos processos e suas informaes, e impedir que um processo acesse uma rea

    de memria que no foi reservada para ele. Para realizar a proteo da memria, uma das

    seguintes medidas pode ser escolhida: Segmentao da Memria ou a Paginao da

    Memria.

    Na Paginao da Memria, a memria dividida em pginas, com tamanho fixo. Com a

    utilizao de outro mecanismo chamado Memria Virtual, cada pgina pode ser armazenadaem qualquer lugar da memria do computador. A Segmentao da Memria a diviso da

    memria do computador em segmentos de dados. Quando um programa vai acessar uma

    rea de memria, ele deve informar tambm o nmero do segmento de memria.

    3. Compartilhamento da Memria

    Uma memria chamada de memria compartilhada quando vrios processos podem

    acess-la simultaneamente. Dependo do processador utilizado no computador, vrios

    processos podem ser executados ao mesmo tempo, e a comunicao entre os processos

    pode ser feita utilizando-se uma rea da memria que seja acessvel a todos os processos. A

    memria compartilhada pode ser criada de duas maneiras:

    Eletronicamente (Hardware): o compartilhamento feito em uma grande rea de

    memria RAM que pode ser acessada por vrios processadores, geralmente utilizada

    em supercomputadores;

    Logicamente (Software): aqui o compartilhamento feito utilizando-se estruturas de

    dados especiais nos programas, para que possam realizar a troca de informao

    durante a sua execuo.

  • 7/29/2019 03-Sistemas Operacionais

    53/143

    Copyright 2007, ESAB Escola Superior Aberta do Brasil53

    4. Organizao da Memria

    A memria geralmente dividida em trs partes:

    Memria Cache: esta memria fica dentro do processador, muito menor que aMemria Principal, mas possui uma importncia muito grande, pois utilizada para

    acel