apostila de so

94
  Licenciatura em Informática: Sistemas Operacionais 

Upload: liviosousa

Post on 03-Nov-2015

215 views

Category:

Documents


0 download

DESCRIPTION

Assuntos relacionados a Disciplina Sistema Operacional da Licenciatura de Informática

TRANSCRIPT

  • Licenciatura em Informtica: Sistemas Operacionais

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS

    NDICE

    1. EVOLUO DOS SISTEMAS OPERACIONAIS .................................................................................. 04

    a. A Primeira Gerao (1945-1955): Vlvulas e Painis com Plugs ....................................... 04

    b. A Segunda Gerao (1955 - 1965): Transistores e Sistemas Batch .................................... 05

    c. A Terceira Gerao (1965 - 1980): CIs e Multiprogramao .............................................. 07

    d. A Quarta Gerao (1980-1990): Computadores Pessoais .................................................. 10

    2. VISO GERAL ................................................................................................................................... 13 a. Introduo ........................................................................................................................ 13

    b. Funes bsicas ................................................................................................................. 13

    c. Mquina de nveis ............................................................................................................. 14

    d. Tipos de Sistemas Operacionais ......................................................................................... 16

    3. CONCEITOS DE HARDWARE ............................................................................................................ 25 a. Introduo .......................................................................................................................... 25

    b. Processador ........................................................................................................................ 25

    c. Memria ............................................................................................................................. 25

    d. Memria Cache .................................................................................................................. 26

    e. Memria Principal e Secundaria ........................................................................................ 26

    f. Dispositivos e Entrada/Sada .............................................................................................. 27

    g. Barramentos ou Bus ........................................................................................................... 27

    h. Pipeline ............................................................................................................................... 29

    4. CONCORRNCIA .............................................................................................................................. 30 a. Introduo .......................................................................................................................... 30

    b. Interrupo e Exceo ........................................................................................................ 32

    c. Operaes de Entrada/Sada .............................................................................................. 34

    d. Buffering ............................................................................................................................. 36

    e. Spooling .............................................................................................................................. 36

    f. Reentrncia ........................................................................................................................ 37

    5. ESTRUTURA DO SISTEMA OPERACIONAL ............................................................................... 38

    a. Principais Funes ............................................................................................................. 39

    b. Arquitetura Monoltica ..................................................................................................... 42

    c. Arquitetura de Camadas ................................................................................................... 43

    d. Mquina Virtual ................................................................................................................ 44

    e. Arquitetura Microkernel .................................................................................................. 46

    6. PROCESSO ....................................................................................................................................... 49 a. Estrutura do Processo ........................................................................................................ 49

    b. Estados do Processo ........................................................................................................... 54

    c. Mudanas de Estado de Processo .................................................................................... 55

    d. Criao e Eliminao de Processos ..................................................................................... 57

    7. THREAD ........................................................................................................................................... 59 a. Ambiente Monothread .................................................................................................... 59

    b. Ambiente Multithread ..................................................................................................... 61

    8. SINCRONIZAO E COMUNICAO ENTRE PROCESSOS .............................................................. 66 a. Aplicaes Concorrentes ................................................................................................. 66

    b. Starvation ........................................................................................................................... 71

    c. Semforos ......................................................................................................................... 73

    d. Monitores ........................................................................................................................... 74

    e. Deadlock ............................................................................................................................. 77

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS

    9. GERNCIA DE MEMRIA ................................................................................................................. 80 a. Alocao Contgua Simples ............................................................................................... 80

    b. Segmentao de Programas ............................................................................................. 81

    c. Swapping .......................................................................................................................... 85

    d. Memria Virtual ................................................................................................................ 86

    10. GERNCIA DE SISTEMAS DE ARQUIVOS .................................................................................. 91

    a. Estrutura de Diretrios .................................................................................................... 91

    b. Sistemas de alocao de arquivos .................................................................................... 91

    c. Gerncia de espao livre ................................................................................................... 92

    d. Proteo de acesso ............................................................................................................. 93

    11. BIBLIOGRAFIA ....................................................................................................................... 94

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 4

    Captulo 0

    A EVOLUO DOS SISTEMAS OPERACIONAIS

    Os sistemas operacionais tm sido historicamente amarrados arquitetura dos computadores nos quais iriam rodar. Por isso, veremos como eles evoluiram nas sucessivas geraes de computadores. Esse mapeamento entre geraes de computadores e geraes de sistemas operacionais admissivelmente imaturo, mas tem algum sentido.

    O primeiro computador digital verdadeiro foi projetado pelo matemtico

    ingls Charles Babbage (1792-1871). Embora Babbage tenha dispendido muito de sua vida e de sua fortuna tentando construir sua "mquina analtica", ele jamais conseguiu por o seu projeto em funcionamento porque era simplesmente um modelo matemtico e a tecnologia da poca no era capaz de produzir rodas, engrenagens, dentes e outras partes mecnicas para a alta preciso que necessitava. Desnecessrio se dizer que a mquina analtica no teve um sistema operacional.

    0.1 - A Primeira Gerao (1945-1955): Vlvulas e Painis com Plugs Aps os esforos sem sucesso de Babbage, pouco progresso se teve na

    construo de computadores digitais at a Segunda Guerra Mundial. Em torno de 1940, Howard Aiken em Harvard, John Von Neumann no Instituto para Estudos Avanados em Princeton, John Presper Eckert e William Mauchley na Universidade de Pennsylvania e Konrad Zuse na Alemanha, entre outros, tiveram sucesso na construo de mquinas calculadoras usando vlvulas. Essas mquinas eram enormes, ocupando salas completas, com dezenas de milhares de vlvulas, porm eram muito mais lentas do que os mais simples computadores pessoais de hoje.

    Naqueles dias primitivos, um pequeno grupo de pessoas construiu,

    programou, operou e deu manuteno a cada mquina. Toda a programao era feita em linguagem de mquina, sempre se conectando fios com plugs em painis para controlar as funes bsicas da mquina. As linguagens de programao no eram conhecidas (nem a linguagem Assembly). Nem se ouvia falar em sistemas operacionais. O modo usual de operao consistia no programador elaborar o programa numa folha e ento ir sala da mquina, inserir os plugs nos painis do computador e gastar as prximas horas apelando que nenhuma das 20.000 ou mais vlvulas no se queimasse durante a execuo do programa. Na verdade, todos os problemas eram inerentemente sobre clculos numricos tais como geraes de tabelas de senos e cossenos.

    Por volta dos anos 50, essa rotina teve uma pequena evoluo com a

    introduo de cartes perfurados. Era possvel, a partir de ento, se escrever programas em cartes e l-los, em vez do uso de plugs em painis; no mais, o procedimento era o mesmo.

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 5

    0.2 - A Segunda Gerao (1955 - 1965): Transistores e Sistemas Batch A introduo do transistor em meados dos anos 50 mudou o quadro radicalmente.

    Os computadores tornaram-se bastante confiveis para que pudessem ser produzidos e vendidos comercialmente na expectativa de que eles continuassem a funcionar por bastante tempo para realizar algumas tarefas usuais. A princpio havia uma clara separao entre projetistas, construtores, operadores, programadores e o pessoal de manuteno.

    Essas mquinas eram alocadas em salas especialmente preparadas com

    refrigerao e com apoio de operadores profissionais. Apenas grandes companhias, agncias governamentais, ou universidades, dispunham de condies para pagar um preo de multimilhes de dlares por essas mquinas. Para rodar um job (isto , um programa ou um conjunto de programas), primeiro o programador escrevia o programa no papel (em FORTRAN ou linguagem Assembly), e ento perfurava-o em cartes. Da, ele levava o "deck" de cartes sala de recepo e o entregava a um dos operadores.

    Quando o computador encerrava a execuo de um job, um operador apanhava

    a sada na impressora, a conduzia de volta sala de recepo onde o programador poderia colet-lo posteriormente. Ento ele tomava um dos decks de cartes que tinha sido trazido da sala de recepo e produzia a sua leitura. Se o compilador FORTRAN era necessrio, o operador tinha que peg-lo de uma sala de arquivos e produzir a sua leitura. Muito tempo de computador era desperdiado enquanto os operadores caminhavam pela sala da mquina para realizarem essas tarefas.

    Devido ao alto custo do equipamento, era de se esperar que as pessoas

    tentassem reduzir o tempo desperdiado. A soluo geralmente adotada era o sistema em "batch". A idia original era colecionar uma bandeja completa de jobs na sala de recepo e ento l-los para uma fita magntica usando um computador pequeno e relativamente barato, por exemplo o IBM 1401, que era muito bom na leitura de cartes, na cpia de fitas e na impresso da sada, porm no era to bom em clculo numrico. Outros computadores, mquinas mais caras, tais como o IBM 7094, eram usados para a computao real. Essa situao mostrada na figura 0.1.

    1401 7094 1401

    Leitora de

    cartes

    Unidade

    de Fita

    Entradada Fita

    Sistema

    de FitasSada

    de Fita

    Impressora

    ( a ) ( b ) ( c ) ( d ) ( e ) ( f )

    Figura 0.1 - Um sistema batch antigo.

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 6

    ( a ) Programadores levam cartes ao 1401. ( b ) 1401 l batch de jobs em fita. ( c ) A operadora acopla fita de entrada no 7094. ( d ) O 7094 faz o processamento. ( e ) A operadora acopla fita de sada no 1401. ( f ) O 1401 imprime a sada.

    Aps cerca de uma hora coletando-se um lote de jobs, a fita era

    rebobinada e levada para a sala da mquina onde era montada numa unidade de fita. O operador ento carregava um programa especial (o antecessor do sistema operacional de hoje), que lia o primeiro job da fita e o executava. A sada era escrita numa segunda fita, em vez de ser impressa. Aps o fim da execuo de cada job, o sistema operacional automaticamente lia o prximo job da fita e comeava a execut-lo. Quando todo o "batch" era feito, o operador removia as fitas de entrada e de sada, substituia a fita de entrada pelo prximo "batch" e levava a fita de sada para um 1401 produzir a impresso "off-line" (isto , no conectada ao computador principal).

    A estrutura de um job de entrada tpico mostrada na figura 0.2. Ele

    comea com um carto $JOB, especificando o tempo mximo de execuo em minutos, o nmero da conta e o nome do programador. A seguir vinha um carto $FORTRAN, avisando ao sistema operacional para carregar o compilador FORTRAN da fita do sistema. Em seguida vinha um programa a ser compilado, acompanhado de um carto $LOAD, informando ao sistema operacional para carregar o programa objeto j compilado. (Programas compilados eram sempre escritos em fitas selecionadas e tinham de ser carregadas explicitamente). A seguir vinha um carto $RUN, informando ao sistema operacional para executar o programa com os dados que vinham a seguir. Finalmente o carto $END marcava o fim do job. Esses cartes de controle foram os precurssores das linguagens de controle de job (JCL) modernas e de interpretadores de comandos.

    Muitos computadores da segunda gerao foram usados principalmente

    para clculos cientficos e de engenharia, tais como em soluo de equaes diferenciais parciais. Eles foram vastamente programados em FORTRAN e em linguagem Assembly. Sistemas operacionais tpicos eram o FMS (Sistema Monitor FORTRAN) e IBSYS (Sistema Operacional da IBM para o 7094).

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 7

    $END

    Dados para o Programa

    $RUN

    $LOAD

    Programa Fortran

    $FORTRAN

    $JOB, 10, 429754, TANENBAUM

    Figura 0.2 - Estrutura de um tpico job FMS 0.3 - A Terceira Gerao (1965 - 1980): CIs e Multiprogramao Nos anos 60, muitos fabricantes de computadores tinham duas linhas de

    produto distintas e totalmente incompatveis. Por um lado havia os computadores cientficos, em grande escala, orientado por palavras, tais como o 7094, que era usado para clculos numricos em cincia e engenharia. Por outro lado, havia os computadores comerciais, orientados por caracter, tais como o 1401, que era vastamente usado para classificao em fita e impresso, por bancos e companhias de seguros.

    O desenvolvimento e a manuteno de duas linhas de produto

    completamente diferentes era uma proposta cara para os fabricantes. Alm do mais, os clientes em potencial para aquisio de novos computadores necessitavam inicialmente de uma mquina pequena, para mais tarde, com o crescimento, terem uma mquina maior em que pudessem rodar todos os seus programas mais rapidamente.

    A IBM, no intuito de resolver ambos os problemas de uma s tacada,

    introduziu o sistema /360. O 360 era uma srie de mquinas compatveis por software, variando de tamanho a partir do 1401 at o mais potente 7094. As mquinas diferiam apenas em preo e performance (capacidade de memria, velocidade do processador, nmero de perifricos I/O permitidos, e assim por diante). J que todas as mquinas tinham a mesma arquitetura e o mesmo conjunto de instrues, pelo menos em teoria, programas escritos para uma mquina poderiam rodar em todas as outras. Alm disso, o 360 foi projetado para manusear tanto computao comercial como computao

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 8

    cientfica. Assim, uma nica famlia de mquinas poderia satisfazer s necessidades de todos os clientes. Em anos subsequentes, a IBM apresentou os sucessores compatveis com a linha 360, usando uma tecnologia mais moderna, conhecidos como sries 370, 4300, 3080 e 3090.

    O 360 foi a primeira linha de computadores a usar (em pequena escala)

    circuitos integrados (CIs), fornecendo uma maior vantagem em preo/performance sobre as mquinas da segunda gerao, que eram construidas de transistores individuais. Isso foi um sucesso imediato e a idia de uma famlia de computadores compatveis foi logo adotada por todos os outros fabricantes. Os descendentes dessas mquinas ainda hoje esto em uso em grandes centros de computao.

    A maior fora da idia de "uma famlia" foi simultaneamente a sua maior

    durabilidade. A inteno era que todo o software, incluindo o sistema operacional, deveria trabalhar em todos os modelos. Ele tinha de rodar em sistemas pequenos que muitas vezes j substituia 1401s para cpias de cartes em fitas e em sistemas muito grandes, que muitas vezes substituia 7094s para fazer clculos demorados e outras computaes pesadas. Ele deveria ser bom em sistemas com poucos perifricos e em sistemas com muitos perifricos. Ele tinha de trabalhar em ambientes comerciais e em ambientes cientficos. Acima de tudo, ele tinha de ser eficiente em todos esses usos diferentes.

    No havia uma maneira atravs da qual a IBM (ou outra companhia)

    pudesse solucionar todas essas exigncias conflitantes. O resultado foi um sistema operacional enorme e extraordinariamente complexo, provavelmente de dois ou trs ordens de magnitude maior do que o FMS. Ele consistia de milhares de linhas de linguagem assembly escritas por centenas de programadores e continha centenas e centenas de depuraes que necessitavam de contnuas verses a fim de corrig-los. Cada nova verso fixava algumas depuraes e introduzia outras novas, tal que o nmero de depuraes provavelmente permanecia constante com o tempo.

    A despeito de seu enorme tamanho e de seus problemas, o OS/360 e os

    sistemas operacionais similares da terceira gerao, produzidos por outros fabricantes, satisfizeram razoavelmente bem a seus clientes. Eles tambm popularizaram vrias tcnicas ausentes nos sistemas operacionais da segunda gerao. Provavelmente, a mais importante dessas tcnicas foi a multiprogramao. No 7094, quando o job que estava sendo executado tinha uma pausa esperando que uma operao em fita ou em qualquer outro perifrico I/O fosse completada, a CPU simplesmente ficava ociosa at que a operao I/O fosse encerrada. Em clculos cientficos pesados, as operaes de I/O no so frequentes, e essse tempo ocioso insignificante. Em processamento de dados comerciais, as operaes de I/O consomem frequentemente entre 80 a 90 porcento do tempo total, exigindo alguma providncia sobre isso.

    A soluo foi particionar a memria em vrias partes, com um job

    diferente em cada partio, como mostrado na Fig. 3. Enquanto um job estava esperando que uma operao I/O fosse concluida, um outro job poderia usar a CPU. Se vrios jobs pudessem ocupar a memria no mesmo instante, a CPU estaria sempre

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 9

    ocupada quase que em 100% do tempo. Ter mltiplos jobs na memria, por sua vez, requer hardware especial para proteger cada job contra danos e entrelaamento entre eles, e o 360 e outros sistemas da terceira gerao eram equipados com esse hardware.

    Parties da Memria Figura 0.3 - Um sistema de multiprogramao com trs jobs na memria Um outro grande aspecto presente nos sistemas operacionais da terceira

    gerao era a habilidade de ler jobs de cartes para o disco assim que eles eram trazidos sala do computador. Assim, sempre que um job tinha a sua execuo encerrada, o sistema operacional poderia carregar um novo job do disco numa nova partio vazia e execut-lo. Essa tcnica chamada de "spooling" (de "Simultaneous Perifheral Operation On Line") e tambm era usada para a sada. Com o "spooling", os 1401s no precisavam ser to grandes e a utilizao da fita diminuiu bastante.

    Apesar dos sistemas operacionais da terceira gerao terem sido bem

    apropriados para a execuo de programas envolvendo grandes clculos cientficos e de processamento de dados comerciais compactos, eles eram ainda, basicamente, sistemas em "batch". Muitos programadores sentiam saudades dos dias da primeira gerao, quando eles tinham a mquina toda para eles por poucas horas, mas de tal forma que eles depuravam os seus programas rapidamente. Com os sistemas da terceira gerao, o tempo entre a submisso do job e a obteno da sada era frequentemente de vrias horas, a ponto da ausncia de uma nica vrgula causar uma falha na compilao e o programador desperdiava quase um dia.

    A vontade de ter um tempo de resposta menor abriu espao para "time-

    sharing", uma variante da multiprogramao, em que cada usurio tem um terminal "on-line". Num sistema "time-sharing", se 20 usurios esto conectados e 17 deles esto pensando, falando ou tomando caf, a CPU pode ser alocada para os trs jobs que querem servio. Como as pessoas que depuram programas usualmente editam poucos comandos (como compilar um programa de cinco pginas) em vez de programas longos (como classificar mil registros em fita), o computador pode fornecer mais rpido, servio interativo a um nmero maior de usurios e talvez tambm trabalhar com grandes jobs em "batch" paralelamente, enquanto a CPU est, por outro lado, ociosa. Embora a primeira srie de sistemas em time-sharing (CTSS) foi desenvolvido no MIT num IBM 7094 especialmente modificado, ele no se tornou verdadeiramente popular at que a necessidade de proteo de hardware ficasse mais difundida durante a terceira gerao.

    Job 3

    Job 2

    Job 1

    Sistema Operacional

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 10

    Aps o sucesso do sistema CTSS, o MIT, o Laboratrio Bell e a General Electric (ento o maior fabricante de computadores) decidiram embarcar no desenvolvimento de um "computador utilitrio", uma mquina que suportasse milhares de usurios em "time-sharing" simultaneamente. O seu modelo era baseado no sistema de distribuio de eletricidade - quando voce precisa de eletricidade, basta por um plug na tomada da parede e a quantidade que voce precise, ter. Os projetistas desse sistema, conhecido como MULTICS (MULTiplexed Information and Computing Service), tinham em mente uma grande mquina que fornecesse servio de computao para todos em Boston. A idia de que mquinas to poderosas quanto o GE44 seriam vendidas como computadores pessoais por alguns milhares de dlares apenas vinte anos mais tarde era, naquela poca, pura fico cientfica. Para resumir, o MULTICS introduziu muitas idias inovadoras na literatura da computao, mas a sua construo foi mais difcil do que se esperava. O Laboratrio Bell saiu do projeto e a General Electric continuou sozinha. Eventualmente o MULTICS rodava o suficientemente bem para ser usado num ambiente de produo no MIT e em poucas outros lugares, mas a idia de um computador utilitrio falhou. Mesmo assim, o MULTICS teve uma enorme influncia nos sistemas subsequentes.

    Outro importante desenvolvimento durante a terceira gerao foi o

    crescimento fenomenal de mini-computadores, comeando com o DEC PDP-1 em 1961. O PDP-1 tinha apenas 4 K palavras de 18 bits mas a um custo de 120.000 dlares por mquina (menos que 5% do preo de um 7094) eles vendiam como bolinhos. Para certos tipos de trabalhos no-numricos era quase to rpido quanto o 7094 e fez surgir uma nova indstria. Foi rapidamente seguido por uma srie de outros PDPs (que diferentes da famlia IBM, eram todos incompatveis) culminando com o PDP-11.

    Um dos cientistas do Laboratrio Bell que trabalhou no MULTICS, Ken

    Thompson, logo depois encontrou um pequeno PDP-7 que ningum usava e comeou a escrever uma verso simplificada mono-usurio do MULTICS. Brian Kernighan apelidou esse sistema de UNICS (UNiplexed Information and Computing Service), mas sua grafia foi mais tarde trocada para UNIX. Posteriormente foi levado para um PDP-11/20, onde funcionou bem o bastante para convencer a gerncia do Laboratrio Bell em investir no PDP-11/45 para continuar o trabalho.

    Outro cientista do Laboratrio Bell, Dennis Ritchie, juntou-se a Thompson

    para reescrever o sistema numa linguagem de alto nvel chamada C, projetada e implementada por Ritchie. O Laboratorio Bell licensiava o UNIX para Universidades quase de graa e dentro de poucos anos, centenas delas estavam usando-o. O UNIX logo estendeu-se para o Interdata 7/32, para o VAX, para o MOTOROLA 68000, e para muitos outros computadores. O UNIX tinha sido transportado para mais computadores do que qualquer outro sistema operacional da histria e seu uso est ainda aumentando rapidamente.

    0.4 - A Quarta Gerao (1980-1990): Computadores Pessoais Com o desenvolvimento de circuitos LSI (Large Scale Integration), chips

    contendo milhares de transistores em um centimetro quadrado de silcio, a era do

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 11

    computador pessoal comeava. Em termos de arquitetura, os computadores pessoais no eram diferentes de minicomputadores da classe do PDP-11, mas em termos de preo eles eram certamente bem diferentes. Enquanto o minicomputador tornou possvel um departamento de uma companhia ou uma universidade ter o seu prprio computador, o chip micropocessador tornou possvel um indivduo ter o seu prprio computador.

    A grande variedade de capacidade computacional disponvel,

    especialmente a capacidade de computao altamente interativa com excelentes facilidades grficas, fizeram crescer a indstria de produo de software para computadores pessoais. Muitos desses softwares eram "amigveis ao usurio", significando que eles foram projetados para usurios que no tinham conhecimento algum sobre computadores e alm do mais no tinha outra inteno a no ser a de orient-los no uso. Essa foi certamente a maior mudana do OS/360, cujo JCL era to complexo que livros inteiros foram escritos sobre ele.

    Dois sistemas operacionais dominaram a utilizao do computador

    pessoal: o MS-DOS, escrito pela Microsoft para o IBM PC e para outras mquinas que usavam a CPU Intel 8088 e seus sucessores, e UNIX, que predominante em mquinas que usam a CPU da famlia Motorola 68000. Pode parecer irnico que o descendente direto do MULTICS, projetado para o gigante computador utilitrio, ficou to popular em computadores pessoais, mas principalmente mostra como foram boas as idias sobre o MULTICS e o UNIX. Apesar da primeira verso do MS-DOS ser primitiva, em verses subsequentes foram incluidas diversas facilidades do UNIX, o que no to surpreendente j que a Microsoft um dos maiores fornecedores do UNIX, usando o nome comercial XENIX.

    Um interessante desenvolvimento que comeou em meados dos anos 80

    foi o crescimento de redes de computadores pessoais rodando sistemas operacionais para rede e sistemas operacionais distribuidos. Num sistema operacional para rede, os usurios tm conscincia da existncia de mltiplos computadores e podem se conectar com mquinas remotas e copiar arquivos de uma mquina para outra. Cada mquina roda o seu prprio sistema operacional local e tem o seu prprio usurio (ou usurios).

    Um sistema operacional distribuido, em contraste, aparece para o usurio

    como um sistema tradicional de um nico processador, mesmo sendo composto realmente de mltiplos processadores. Num verdadeiro sistema distribuido, os usurios no tm conscincia de onde os seus programas esto sendo rodados ou onde seus arquivos esto localizados; tudo manuseado automtica e eficientemente pelo sistema operacional.

    Os sistemas operacionais em rede no so fundamentalmente diferentes

    dos sistemas operacionais de um nico processador. Eles obviamente necessitam de um controlador de interface de rede e de algum software de alto nvel para gerenci-lo, bem como de programas para concluir com xito uma conexo remota e o acesso a arquivos remotos, mas essas adies no mudam a estrutura essencial do sistema operacional.

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 12

    Os sistemas operacionais distribuidos requerem mais do que a adio de cdigos a um sistema operacional de um processador porque sistemas distribuidos e centralizados diferem em modos crticos. Sistemas distribuidos, por exemplo, frequentemente admitem rodar programas em vrios processadores ao mesmo tempo, e da exigem algortmos de escalonamento de processadores para otimimizar a quantidade de paralelismo que deve ser concludo com xito.

    O atraso de comunicao em uma rede frequentemente significa que

    esses (e outros) algortmos devem rodar com informao incompleta, desatualizada ou s vezes incorreta. Essa situao radicalmente diferente de um sistema de um nico processador no qual o sistema operacional tem a informao completa sobre o estado do sistema.

    Tolerncia a falhas uma outra rea em que os sistemas distribuidos so

    diferentes. comum para um sistema distribuido ser projetado com a expectativa de que continuar rodando mesmo que parte do hardware deixe de funcionar. Desnecessrio se dizer que uma exigncia adicional ao projeto tem enormes implicaes para o sistema operacional.

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 13

    Captulo 1

    VISO GERAL

    1.1 Introduo:

    Sistema Operacional nada mais do que um conjunto de instrues executadas pelo processador. Sua funo controlar o funcionamento de um computador, gerenciando a utilizao e o compartilhamento dos seus diversos recursos, como processadores, memrias e dispositivos de entrada e sada.

    Sem SO, usurio deveria conhecer profundamente o computador para poder interagir com ele. Implicaria em trabalho lento e com possibilidade de erros. A diferena entre um SO e aplicaes convencionais a maneira como as rotinas so executadas em funo do tempo. O SO no tem incio, meio e fim como as aplicaes. Dependem de eventos assncronos. Tambm pode ser chamado de Programa monitor, Executivo, supervisor ou Controlador.

    1.2 Funes bsicas: - Facilidade de acesso aos recursos do sistema: Usurio no precisa se preocupar como feita a comunicao com monitores, discos, impressoras, etc. O SO uma interface entre o usurio e os recursos do sistema. Este conceito de ambiente simulado pelo SO tambm chamado de Mquina Virtual (figura 1.1) Compiladores, linkers, bibliotecas, depuradores e outras ferramentas so utilitrios que facilitam a interao do usurio com o computador. - Compartilhamento de recursos de forma organizada e protegida: Em sistemas onde diversos usurios compartilham recursos, necessrio controlar o uso concorrente destes recursos. Ex: Impressora, a impresso de um usurio no deve interferir na do outro. O SO controla estes acessos concorrentes. O compartilhamento tambm permite reduo de custos, quando diversos usurios podem compartilhar perifricos como impressoras, discos, etc. Dependendo do SO, podemos executar diversas tarefas ao mesmo tempo, como imprimir um documento e baixar um arquivo da Internet. E o SO que controla estas atividades concorrentes.

    LiviosousaRealce

    LiviosousaRealce

    LiviosousaRealce

    LiviosousaRealce

    LiviosousaRealce

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 14

    programadorese analistas

    memria discos

    UCP

    Usurios

    Hardware

    Sistema OperacionalSistema Operacional

    fitas

    impressoras monitores

    programas,sistemas eaplicativos

    usurios

    Fig. 1.1 - Viso do Sistema Operacional

    1.3 Mquina de nveis: Uma mquina, do ponto de vista do hardware, tem pouca utilidade. atravs do software que esta mquina ganha utilidade (como armazenamento de dados, impresso, etc.) Uma operao efetuada por software pode ser implementada em hardware, bem como uma funo executada pelo hardware pode ser simulada via software. Os primeiros computadores eram programados atravs de fios ligados em painis, criando grandes dificuldades e exigindo grande conhecimento da mquina. A soluo veio com o surgimento do SO, tornando a interao com o usurio mais simples, confivel e eficiente. (Figura 1.2)

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 15

    Hardware

    Sistema Operacional

    usurios

    Fig. 1.2 - Viso do computador pelo usurio

    O computador pode ser visualizado como uma mquina de nveis ou mquina de camadas. Inicialmente vemos apenas dois nveis: hardware (nvel 0) e SO (nvel 1). Assim, o usurio pode enxergar a mquina como sendo apenas o SO, como se o hardware no existisse. Esta viso chamada de mquina virtual.

    Na verdade no existem apenas dois nveis, e sim tanto quantos forem necessrios para adequar o usurio s suas diversas aplicaes. A figura 1.3 representa a estrutura da maioria dos computadores, podendo conter mais ou menos camadas. A linguagem utilizada em cada um destes nveis diferente, variando da mais elementar (baixo nvel) mais sofisticada (alto nvel).

    Utilitrios

    Circuitos Eletrnicos

    Microprogramao

    Linguagem de Mquina

    Sistema Operacional

    Aplicativos

    Fig. 1.3 - Mquina de Nveis

    LiviosousaRealce

    LiviosousaRealce

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 16

    1.4 Tipos de Sistemas Operacionais: Os tipos de SOs e sua evoluo esto diretamente relacionados com a evoluo

    do hardware e das aplicaes por ele suportadas. A figura 1.4 sintetiza os diversos tipos de SOs, cujas caractersticas, vantagens e desvantagens sero abordadas em seguida.

    Tipos de

    Sistemas Operacionais

    SistemasMonoprogramveis/

    Monotarefa

    Sistemascom MltiplosProcessadores

    SistemasMultiprogramveis/

    Multitarefa

    Fig. 1.4 - Tipos de Sistemas Operacionais

    1.4.1 SOs monoprogramveis/monotarefa: Os primeiros SOs eram voltados para a execuo de um nico programa.

    Qualquer outra aplicao deveria aguardar a aplicao concorrente terminar, para ser executada. Estes sistemas vieram a ser conhecidos como sistemas monoprogramveis e se caracterizavam por permitir que o processador, a memria e os perifricos estejam exclusivamente dedicados execuo de um nico programa.

    Este tipo de SO est relacionado aos primeiros computadores da dcada de 60.

    Voltou a ser utilizado na dcada de 70 em estaes de trabalho. Nos sistemas monotarefas, como tambm so conhecidos, todos recursos do sistema ficam exclusivamente dedicados a uma nica tarefa.

    Neste tipo de SO, o processador fica ocioso, por exemplo, quando espera a

    digitao de um dado. A memria sub-utilizada caso no seja preenchida totalmente, e os perifricos, como discos e impressoras, esto dedicadas a um nico usurio, nem sempre de forma integral (Figura 1.5).

    LiviosousaRealce

    LiviosousaRealce

    LiviosousaRealce

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 17

    MemriaPrincipal

    Dispositivosde E/S

    UCPprograma/

    tarefa

    Fig. 1.5 - Sistemas monoprogramveis / monotarefa.

    1.4.2 SOs multiprogramveis / multitarefa: Os SOs multiprogramveis ou multitarefas so uma evoluo do SO

    monoprogramveis. Neste tipo de SO os recursos computacionais so compartilhados entre diversos usurios e aplicaes. Aqui vrias aplicaes compartilham esses mesmos recursos.

    Aqui tambm, enquanto um programa espera por uma operao de leitura ou

    gravao em disco, outros programas podem estar sendo processados neste intervalo de tempo. Neste exemplo, observamos o compartilhamento da memria e do processador. O SO se preocupa em gerenciar o acesso concorrente a seus diversos recursos, de forma ordenada e protegida, entre os diversos programas (Figura 1.6).

    LiviosousaRealce

    LiviosousaRealce

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 18

    MemriaPrincipal

    Dispositivosde E/ S

    UCP programa/tarefaprograma/

    tarefa

    programa/tarefa

    programa/tarefa

    programa/tarefa

    Fig. 1.6 Sistemas multiprogramveis / multitarefa A vantagem deste tipo de SO a reduo do tempo de resposta das aplicaes

    processadas no ambiente e de custos, a partir do compartilhamento de recursos do sistema entre diferentes aplicaes. Apesar de mais eficientes, os SO multiprogramvel tem implementao muito mais complexa.

    Baseado no nmero de usurios que interagem com o sistema, o SO multiprogramvel pode ser classificado como monousurio ou multiusurio. Os sistemas multiprogramveis monousurio so encontrados em computadores pessoais e estaes de trabalho, onde apenas um usurio interage com o sistema. Por exemplo, um usurio pode executar um editor de texto, ao mesmo tempo em que acessa a Internet e imprime um documento. Nos sistemas multiusurios, permite-se que diversos usurios conectarem-se ao sistema simultaneamente. A tabela 1.1 relaciona os tipos de sistemas em funo do nmero de usurios.

    Um usurio Dois ou mais usurios Monoprogramao / Monotarefa Monousurio No disponvel Multiprogramao / Multitarefa Monousurio Multiusurio

    Tabela 1.1 Sistemas x Usurios

    LiviosousaRealce

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 19

    Os SO multiprogramveis ou multitarefa, podem ainda ser classificados pela forma com que suas aplicaes so gerenciadas, podendo ser divididos em sistemas batch, de tempo compartilhado ou de tempo real. Um SO pode suportar um ou mais destes tipos de processamento, dependendo de sua implementao (Figura 1.7).

    SistemasMultiprogramveis/

    tarefaMulti

    SistemasBatch

    Sistemas deTempo Real

    Sistemas deTempo Compartilhado

    Fig. 1.7 Tipos de sistemas multiprogramveis / multitarefa.

    1.4.2.1 Sistemas Batch:

    Os sistemas batch foram os primeiros SOs multiprogramveis implantados na dcada de 60. Os programas, tambm chamados de jobs, eram executados atravs de cartes perfurados e armazenados em discos ou fitas, onde aguardavam para serem processados. Posteriormente, em funo da disponibilidade de espao na memria principal, os jobs eram executados, produzindo uma sada em disco ou fita.

    Este tipo de processamento se caracteriza por no exigir a ateno do usurio com a

    aplicao. Todas entradas e sadas eram implementadas por algum tipo de memria secundaria, geralmente discos. Clculos numricos, compilaes, ordenaes e backups so exemplos de aplicaes batch.

    Estes sistemas podem ser bastante eficientes, por utilizar melhor o processador,

    entretanto, podem oferecer tempos de resposta longos. Atualmente no existem sistemas exclusivamente batch, sendo executados atravs de simulaes quando necessrio.

    1.4.2.2 Sistemas de Tempo compartilhado:

    Os sistemas de tempo compartilhado (time-sharing), permitem que diversos programas sejam executados a partir da diviso de tempo do processador em pequenos intervalos, chamados de fatia de tempo (time-slice). Caso o tempo disponibilizado no seja suficiente para a concluso do programa, este interrompido pelo SO e substitudo por um outro, enquanto fica aguardando por uma nova fatia de tempo. Este ambiente d a impresso que todo o sistema esta dedicado, exclusivamente, para cada usurio.

    Geralmente, nestes sistemas a interao com o usurio se d atravs de terminais

    de vdeo, teclado e mouse. Estes sistemas possuem uma linguagem de controle prpria,

    LiviosousaRealce

    LiviosousaRealce

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 20

    permitindo ao usurio comunicar-se diretamente com o SO atravs de comandos. Assim, possvel por exemplo, a verificar arquivos armazenados num disco, ou cancelar a execuo de um programa.

    Devido a este tipo de interao, os sistemas de tempo compartilhado tambm so

    chamados de sistemas on-line. A maioria das aplicaes comerciais atuais so processadas em sistemas de tempo

    compartilhado, pois oferecem tempos baixos de resposta aos usurios e menores custos, em funo da utilizao compartilhada de diversos recursos.

    1.4.2.3 Sistemas de Tempo Real:

    Os sistemas de tempo real (real-time) so implementados de forma semelhante dos sistemas de tempo compartilhado. A diferena o tempo de resposta exigido no processamento das aplicaes.

    Nos sistemas de tempo compartilhado, o tempo de resposta pode variar sem

    comprometer as aplicaes em execuo. Nos de tempo real, os tempos de resposta devem estar dentro de limites rgidos, que devem ser obedecidos, caso contrario podero ocorrer srios problemas.

    No sistema de tempo real no existe a idia de fatia de tempo. Um programa utiliza o

    processador o tempo que necessitar, ou ate que aparea outro mais prioritrio. A prioridade de execuo definida pela prpria aplicao e no pelo SO.

    Estes sistemas podem ser encontrados em aplicaes de controle de processos, como

    no monitoramento de refinarias de petrleo, controle de trafego areo, de usinas termoeltricas e nucleares, ou qualquer outra onde o tempo de resposta fator fundamental.

    1.4.3 Sistemas com Mltiplos Processadores:

    Os sistemas com mltiplos processadores caracterizam-se por possuir dois ou mais processadores interligados e trabalhando em conjunto. Este tipo de sistema permite que vrios programas sejam executados ao mesmo tempo, ou que um nico programa seja subdividido em partes para serem executados simultaneamente em mais de um processador.

    O uso de mltiplos processadores permitiu a criao de sistemas voltados para

    processamento cientfico (como a criao do mapa gentico), no desenvolvimento aeroespacial, prospeco de petrleo, simulaes, processamento de imagens, CAD e previso do tempo. Pode-se afirmar que qualquer aplicao que faca uso intensivo do processador, ser beneficiada pelo acrscimo de processadores ao sistema. A evoluo destes sistemas se deve em grande parte, ao elevado custo de desenvolvimento de

    LiviosousaRealce

    LiviosousaRealce

    LiviosousaRealce

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 21

    processadores de alto desempenho. menos custoso interligar diversos processadores menores do que desenvolver um mais poderoso.

    Alm dos mesmos benefcios dos sistemas multiprogramveis, o sistema com

    mltiplos processadores apresentam vantagens como: Escalabilidade : a possibilidade de se aumentar o poder computacional do

    sistema, adicionando-se novos processadores. Disponibilidade : a capacidade de manter o sistema em operao mesmo em

    caso de falha de uma ou mais maquinas. No caso de uma falha, as outras mquinas assumem suas funes de maneira transparente ao usurio, embora com menor poder de computao.

    Balanceamento de carga : a possibilidade de distribuir o processamento entre

    os diversos processadores, melhorando assim o desempenho do sistema como um todo.

    Um fator-chave na criao de SOs com mltiplos processadores a forma de comunicao entre eles e o grau de compartilhamento da memria e dos dispositivos de entrada e sada. Assim, podemos classificar os sistemas com mltiplos processadores em fortemente acoplados ou fracamente acoplados (Figura 1.8).

    Fig. 1.8 Tipos de Sistemas com mltiplos processadores

    1.4.3.1 Sistemas fortemente acoplados: Nos sistemas fortemente acoplados (tightly coupled) vrios processadores

    compartilham uma nica memria fsica (shared memory) e dispositivos de entrada e sada, sendo gerenciados por um nico SO (Figura 1.9).

    Sistemas Com Mltiplos Processadores

    Sistemas Fortemente Acoplados

    Sistemas Fracamente Acoplados

    LiviosousaRealce

    LiviosousaRealce

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 22

    UCP UCPMemriaPrincipal

    Dispositivosde E/S

    Dispositivosde E/S

    Fig 1.9 Sistemas fortemente acoplados Em virtude disso, este tipo de sistema tambm chamado de multiprocessador. Os sistemas multiprocessadores dividem-se ainda em SMP (Symmetric

    MultiProcessor) e NUMA (Non-Uniform Memory Access). Os sistemas SMP possuem tempo uniforme de acesso memria principal pelos diversos processadores. Os sistemas NUMA apresentam diversos conjuntos reunindo processadores e memria principal, sendo que cada conjunto conectado aos outros atravs de uma rede de interconexo. O tempo de acesso memria pelos processadores varia em funo da sua localizao fsica.

    Nos sistemas SMP e NUMA todos processadores tm as mesmas funes.

    Inicialmente, os sistemas multiprocessadores limitavam-se a sistemas de grande porte. Com a evoluo dos computadores pessoais, os sistemas multitarefa tambm evoluram para permitir a existncia de vrios processadores no modelo simtrico. Atualmente, sistemas como Unix, Linux, Windows 200 e Windows XP implementam esta funcionalidade.

    1.4.3.2 Sistemas fracamente acoplados: Os sistemas fracamente acoplados (loosely coupled), caracterizam-se por possuir

    dois ou mais sistemas computacionais conectados atravs de linhas de comunicao. Cada sistema funciona de forma independente, possuindo seu prprio sistema operacional e gerenciando seus prprios recursos, como processador, memria e dispositivos de entrada e sada (Figura 1.10).

    LiviosousaRealce

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 23

    UCP UCP

    MemriaPrincipal

    MemriaPrincipal

    Dispositivosde E/ S

    link de comunicao

    Dispositivosde E/S

    Fig. 1.10 Sistemas fracamente acoplados Em funo destas caractersticas, os sistemas fracamente acoplados tambm so conhecidos como multicomputadores. Neste modelo, cada sistema computacional tambm pode ser formado por um ou mais processadores. At meados dos anos 80, as aplicaes eram centralizadas em sistemas de grande porte, com um ou mais processadores. Nesta configurao, os usurios utilizavam terminais no-inteligentes conectados a linhas seriais dedicadas ou mesmo a linhas telefnicas pblicas para comunicao interativa com estes sistemas. No modelo centralizado, os terminais no tem poder de processamento. A solicitao de uma tarefa ao sistema feita atravs de linhas de comunicao. A evoluo dos computadores pessoais e tambm das telecomunicaes, fez com que um novo modelo de computao surgisse, chamado de modelo de rede de computadores. Em uma rede existem dois ou mais sistemas independentes (hosts), interligados atravs de linhas de comunicao, oferecendo algum tipo de servio aos demais. Assim, a informao deixa de ser centralizada em sistemas de grande porte e passa a ser distribuda pelos diversos sistemas da rede. Baseando-se no grau de integrao dos hosts da rede, dividimos os sistemas fracamente acoplados em sistemas operacionais de rede e sistemas distribudos. A diferena bsica entre eles a capacidade do SO criar uma imagem nica dos servios disponibilizados pela rede. Os sistemas operacionais de rede (SORs) permitem que um host compartilhe seus recursos como impressora ou disco, com os demais hosts da rede. Um exemplo disto so as redes locais. Nos sistemas distribudos o sistema operacional esconde os detalhes dos hosts individuais e passa a trat-los como um conjunto nico, como se fosse um sistema fortemente acoplado. Nos sistemas distribudos, uma aplicao pode ser dividida em

    LiviosousaRealce

    LiviosousaRealce

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 24

    partes e cada parte pode ser executada por hosts diferentes da rede de computadores. Para os usurios e suas aplicaes, como se no existisse a rede de computadores, e sim um nico sistema centralizado. Outro exemplo de sistema distribudo so os clusters. Em um cluster existem dois ou mais servidores ligados, atravs de uma conexo de alto desempenho. O usurio no conhece os nomes dos membros do cluster e no sabe quantos so. Basta solicitar um servio ao cluster para obt-lo. Este tipo de sistema usado atualmente em sistemas de banco de dados e Web, garantindo alta disponibilidade, escalabilidade e balanceamento de carga soluo.

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 25

    Captulo 2

    CONCEITOS DE HARDWARE E SOFTWARE 2.1 Introduo:

    Neste captulo sero apresentados brevemente, conceitos bsicos de hardware e software, para compreenso dos captulos seguintes. 2.2 Hardware: Um sistema computacional um conjunto de circuitos eletrnicos interligados, formado por Processador ou unidade central de processamento, memria principal e dispositivos de entrada/sada.

    MemriaPrincipal

    Dispositivosde E/ S

    Processador / UCP

    Unidade Lgicae Aritmtica

    Registradores

    Unidade deControle

    Fig. 2.1 Sistema Computacional

    2.2.1 Processador: Um processador composto por unidade de controle, unidade lgica e aritmtica, e registradores. A unidade de controle (UC) responsvel por gerenciar as atividades de todos os componentes do computador, como a gravao de dados em discos ou a busca de instrues na memria. A unidade lgica e aritmtica (ULA), como o nome indica, responsvel pela realizao de operaes lgicas (testes e comparaes) e aritmticas (somas e subtraes). 2.2.2 Memria: A memria composta por unidades de acesso chamadas clulas, sendo cada clula composta por um determinado nmero de bits. Atualmente, a grande maioria dos computadores utiliza o byte (8 bits) como tamanho de clula.

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 26

    Memrias volteis precisam estar sempre energizadas para manter suas informaes, o que no acontece com as no-volteis.

    clula = 8 bits

    en

    dere

    os

    0

    2 -116

    21

    instruo ou dado

    Fig. 2.2 Memria principal com 64 Kbytes

    2.2.3 Memria Cache: A memria cache uma memria voltil de alta velocidade, porm com pequena capacidade de armazenamento. O tempo de acesso a um dado nela contido muito menor que se o mesmo estivesse na memria principal. O propsito do uso da memria cache minimizar a disparidade existente entre a velocidade com que o processador executa instrues e a velocidade com que dados so acessados na memria principal. 2.2.4 Memria Principal e Secundaria: A memria principal um dispositivo de armazenamento, em geral voltil, onde so armazenados instrues e dados utilizados pelo processador durante a execuo de programas. A memria secundria um dispositivo no-voltil com maior capacidade de armazenamento, porm com menor velocidade de acesso aos seus dados armazenados.

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 27

    maiorcapacidade de

    armazenamento

    maior custo evelocidadede acesso

    Memria Secundria

    Memria Cache

    Memria Principal

    Registradores

    Fig. 2.3 Relao entre dispositivos de armazenamento 2.2.5 Dispositivos e Entrada/Sada: Os dispositivos de entrada e sada podem ser divididos em duas categorias: os que so utilizados como memria secundria e os que servem para a interface usurio-mquina. Os dispositivos utilizados como memria secundria (discos e fitas magnticas) caracterizam-se por ter capacidade de armazenamento bastante superior ao da memria principal. Seu custo relativamente baixo, porm o tempo de acesso memria secundria bem superior ao da memria principal. Outros dispositivos tm como finalidade a comunicao usurio-mquina, como teclados, monitores de vdeo, impressoras e plotters. 2.2.6 Barramentos ou Bus: Barramentos o meio fsico de comunicao entre as unidades funcionais de um sistema computacional. Os barramentos processador-memria so de curta extenso e alta velocidade para que seja otimizada a transferncia de informao entre processadores e memrias. Os barramentos de E/S possuem maior extenso, so mais lentos e permitem a conexo de diferentes dispositivos. O barramento de backplane tem a funo de integrar os dois barramentos anteriores.

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 28

    Barramento processador-memria

    Barr

    am

    en

    to de

    E/

    S

    Barr

    am

    en

    to de

    E/

    S

    Adaptador Adaptador

    MemriaPrincipalUCP

    Fig. 2.4 Barramentos processador-memria e de E/S

    Barramento processador-memria

    Barr

    am

    en

    to de

    E/

    S

    Barr

    am

    en

    to de

    E/

    S

    Adaptador Adaptador

    MemriaPrincipalUCP

    Adaptador

    Barr

    am

    en

    tode

    ba

    ckpl

    an

    e

    Fig. 2.5 Barramento de Backplane

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 29

    2.2.7 Pipeline: uma tcnica que permite ao processador executar mltiplas instrues paralelamente em estgios diferentes.

    Unidade de busca dainstruo

    P1 P4P3P2

    Analisadorda

    instruo

    Unidade de busca dos

    dados

    Unidade de execuo da

    instruo

    Instr.1 Instr.2 Instr.3 Instr.4 Instr.5 Instr.6 Instr.7

    Instr.1 Instr.2 Instr.3 Instr.4 Instr.5 Instr.6

    Instr.1 Instr.2 Instr.3 Instr.4 Instr.5

    Instr.1 Instr.2 Instr.3 Instr.4

    P1

    P2

    P3

    P4

    tempo

    Fig. 2.6 Arquitetura pipeline com quatro estgios

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 30

    Captulo 3

    CONCORRNCIA 3.1 Introduo:

    Os sistemas operacionais podem ser vistos como um conjunto de rotinas que executam concorrentemente de forma ordenada. A possibilidade de o processador executar instrues em paralelo com operaes de E/S permite que diversas tarefas sejam executadas concorrentemente. Concorrncia o princpio bsico para projeto e implementao dos sistemas operacionais multiprogramveis.

    Os SOs monoprogramveis eram limitados por seus recursos no serem utilizados de forma eficiente, limitando seu desempenho. Muitos recursos (alguns de alto custo), permaneciam ociosos por longos perodos de tempo. O disperdcio dos SOs monoprogramveis pode ser representado na Figura 3.1a, pois enquanto uma leitura em disco realizada, o processador permanece ocioso. O tempo de espera relativamente longo, pois as operaes de E/S so lentas comparadas s operaes dos processadores.

    2

    (a) Sistema Monoprogramveltempo tempo

    E/S E/S

    UCP UCPlivre 11

    1

    (b) Sistema Multiprogramvel

    Fig. 3.1 Sistema monoprogramvel x sistema multiprogramvel

    A tabela 3.1 apresenta um exemplo de um programa que l registros de um arquivo e executa, em mdia, 100 instrues por registro lido. Neste caso, o processador gasta cerca de 93% do tempo esperando o dispositivo de E/S concluir sua operao para ento continuar o processamento.

    Leitura de um registro 0,0015 s Execuo de 100 instrues 0,0001 s Total 0,0016 s % utilizao da CPU (0,0001 / 0,0015) = 0,066 = 6,6 %

    Tabela 3.1 Exemplo de utilizao do sistema

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 31

    A memria principal tambm subutilizada se o programa no a ocupa totalmente, deixando reas livres. Nos SOs multiprogramveis, vrios programas podem estar residentes em memria, concorrendo pela utilizao do processador. Assim, o processador permanece menos tempo ocioso (Figura 3.1 b) e a memria utilizada de forma mais eficiente, pois vrios programas se revezam na utilizao do processador. A utilizao concorrente do processador deve ser implementada de forma que, quando um programa perde o uso do processador, e depois retorna sua execuo, dever continu-la na instruo seguinte quela em que fora interrompido. Para o usurio, parece que nada aconteceu. Em sistemas de tempo compartilhado, existe a impresso de o sistema est inteiramente dedicado a ele. Em sistema monoprogramveis, temos perifricos (como impressoras e discos) parados por grandes perodos de tempo esperando aes de um nico usurio. Na tabela 3.2 temos as vantagens de um sistema multiprogramvel, com um disco, um terminal e uma impressora. Nesta configurao, so executados trs programas distintos (Prog1, Prog2 e Prog3). Pela tabela, percebemos que Prog1 no realiza operaes de E/S, ao contrrio de Prog2 e Prog3. Caractersticas Prog1 Prog2 Prog3 Utilizao do processador Alta Baixa Baixa Operaes de E/S Poucas Muitas Muitas Tempo de processamento 5 min 15 min 10 min Memria utilizada 50 Kb 100 Kb 80 Kb Utilizao de disco No No Sim Utilizao de terminal No Sim No Utilizao de impressora No No Sim

    Tabela 3.2 Caractersticas de execuo do programas

    Se fossem realizados num ambiente monoprogramvel, seriam executados em seqncia, totalizando 30 minutos. Se fossem executados em ambiente multiprogramvel, os ganhos so considerveis, conforme mostra a tabela 3.3. Caractersticas Monoprogramao Multiprogramao Utilizao do processador 17 % 33 % Utilizao da memria 30 % 67 % Utilizao de disco 33% 67 % Utilizao de impressora 33 % 67% Tempo total de processamento 30 min. 15 min. Taxa de processamento 6 progr. / hora 12 progr. / hora

    Tabela 3.3 Comparao entre Mono e multiprogramao

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 32

    A seguir, ser apresentado tcnicas de implementao da concorrncia, essencial num sistema multiprogramvel.

    3.2 Interrupo e Exceo:

    Durante a execuo de um programa, eventos inesperados podem ocorrer, ocasionando um desvio forcado em seu fluxo de execuo. Estes tipos de eventos so conhecidos por interrupo ou exceo e podem ser conseqncia da sinalizao de algum hardware externo ou da execuo de instrues do prprio programa. A diferena entre interrupo e exceo e dada pelo tipo de evento ocorrido. Porm, nem sempre feita esta distino. A interrupo permitiu a implementao da concorrncia nos computadores. Com este mecanismo, o SO sincroniza a execuo de todas suas rotinas e dos programas dos usurios, alm de controlar dispositivos. Uma interrupo gerada por algum evento externo ao programa e independe da instruo que esta sendo executada. Um exemplo de interrupo ocorre quando um disco avisa ao processador que uma operao de leitura ou escrita est completa. Neste caso, o processador interrompe o programa e trata o trmino da operao. Ao final da execuo de cada instruo, a unidade de controle verifica a ocorrncia de algum tipo de interrupo. Neste caso, o programa desviado para uma rotina de tratamento de interrupo. Para o programa prosseguir posteriormente, as informaes do programa executado so armazenadas em registradores no processador (Figura 3.2).

    Fig. 3.2 Mecanismos de interrupo e exceo

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 33

    A tabela 3.4 descreve o mecanismo de interrupo, que pode ser realizado por hardware ou software. Para cada tipo de interrupo existe uma rotina de tratamento associada. A identificao do tipo de interrupo fundamental para determinar o endereo da rotina de tratamento. Existem dois mtodos utilizados no tratamento das interrupes. O primeiro utiliza uma estrutura de dados chamada de vetor de interrupo, que contem o endereo inicial de todas as rotinas de tratamento existentes, associadas a cada evento. Um segundo mtodo utiliza um registrador de status que armazena o tipo do evento ocorrido. Neste mtodo, s existe uma nica rotina de tratamento, que no seu inicio testa o registrador para identificar o tipo de interrupo e trat-la de maneira adequada.

    Via Hardware 1. Um sinal de interrupo gerado para o processador 2. Aps o termino da execuo da instruo corrente, o

    processador identifica o pedido de interrupo 3. Os contedos dos registradores apropriados so salvos 4. O processador identifica qual a rotina de tratamento que ser

    executada e carrega um registrador com o endereo inicial desta rotina

    Via Software 5. A rotina de tratamento salva o contedo dos demais registradores na pilha de controle de programas

    6. A rotina de tratamento executada 7. Aps o termino da execuo da rotina, os registradores so

    restaurados, retomando a execuo do programa interrompido

    Tabela 3.4 Mecanismo de interrupo

    As interrupes so decorrentes de eventos assncronos (no relacionados instruo do programa). Estes eventos podem ser imprevisveis e podem ocorrer mltiplas vezes. Isso possibilitaria a ocorrncia de mltiplas interrupes simultneas. Par evitar esta situao, a rotina de tratamento inibir as demais interrupes. Assim, as interrupes posteriores seriam ignoradas durante a execuo da rotina de tratamento, ou seja, no receberiam tratamento. Interrupes com estas caractersticas so chamadas de interrupes mascarveis. Alguns processadores no permitem que interrupes sejam desabilitadas. Neste caso, o processador precisa saber a ordem em que ocorreram as interrupes concorrentes. Para isso, as interrupes devem possuir prioridades, em funo de sua importncia. Normalmente, um dispositivo denominado controlador db pedidos de interrupo, o responsvel por avaliar as interrupes geradas e suas prioridades. Uma exceo semelhante a uma interrupo, sendo a principal diferena, o motivo pelo qual o evento gerado. A exceo resultado direto da execuo de uma instruo do prprio programa, como a diviso de um nmero por zero, ou a ocorrncia

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 34

    de um overflow e operaes aritmticas. Portanto, a exceo gerada por um evento sncrono. Tais eventos so portanto previsveis e s podem ocorrer um nico de cada vez. Um programa com este tipo de evento que seja reexecutado a exceo ocorrera sempre na mesma instruo. Assim como a interrupo, o programa interrompido desviado para uma rotina de tratamento de exceo (Figura 3.2). O mecanismo de tratamento de excees muitas vezes pode ser escrito pelo prprio programador. Assim, possvel evitar que um programa seja encerrado de ocorrer, por exemplo, um overflow. 3.3 Operaes de Entrada/Sada: Nos primeiros SOs, existiam instrues especiais para controlar perifricos, denominadas de instrues de entrada/sada. Estas instrues continham detalhes de cada perifrico, como por exemplo, na gravao de um bloco de dados em disco, deveria se especificar em qual trilha e setor ocorreria a gravao. Isto provocava uma forte dependncia entre processador e os dispositivos de E/S. O controlador de interface surgiu para permitir que o processador fique mais independente dos perifricos. Desta forma, o processador no se comunica mais diretamente com os dispositivos de E/S, mas sim atravs do controlador (Figura 3.3).

    MemriaPrincipalUCP

    Controlador

    Dispositivos de E/S

    Fig. 3.3 Controlador de dispositivos de E/S O controlador simplificou as instrues de E/S, pois o processador no necessitaria utilizar instrues detalhadas.

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 35

    Com a utilizao do controlador, existiam duas maneiras bsicas pelas quais o processador gerenciava as operaes de E/S: - Na primeira, o processador sincroniza-se com o perifrico para o inicio da troca de dados entre eles, e depois de iniciada a transferncia, o sistema ficava permanentemente testando o estado dos perifricos para saber quando a operao de E/S terminaria. Este tipo de controle, chamado de E/S controlada por programa, mantinha o processador ocupado at o fim da operao de E/S (busy wait). Isto provocava um desperdcio de tempo, pois o processador executa uma instruo muito mais rapidamente que a realizao de uma operao de E/S. - Na segunda, h uma evoluo do modo anterior, onde uma vez iniciada a transferncia de dados, o processador permanece livre para realizar outras tarefas. Neste caso, em determinados intervalos de tempo, o SO deve testar os dispositivos para saber do trmino da operao de E/S (polling). Esta tcnica permitiu um tipo de paralelismo, sendo a base dos sistemas multiprogramveis. O nico inconveniente desta tcnica, que caso haja muitos perifricos, o processamento ser interrompido freqentemente. Com o mecanismo de interrupo, as operaes de E/S se tornaram mais eficientes, uma vez que o controlador interrompe o processador para avisar o fim de uma operao, ao invs do processador ficar constantemente verificando as operaes pendentes (E/S controlada por interrupo). Esta ltima tcnica mais eficiente do que a controlada por programa, pois elimina a necessidade do processador esperar pelo trmino da operao, alem de permitir varias operaes de E/S simultneas. Ainda existe um outro inconveniente neste processo. o caso em que h uma grande quantidade de dados, onde as muitas intervenes do processador acabam por reduzir sua eficincia. Uma soluo pensada para este problema, foi a tcnica de transferncia de dados chamada de DMA (Direct Memory Address). A tcnica DMA permite que um bloco de dados seja transferido entre a memria principal e um dispositivo de E/S, sem a interveno do processador, exceto no inicio e no fim da transferncia. Quando o sistema deseja ler ou gravar um bloco de dados, o processador informa ao controlador sua localizao, o dispositivo de E/S, a posio inicia da memria onde os dados sero lidos ou gravados e o tamanho do bloco. Com estas informaes, o controlador realiza a transferncia entre o perifrico e a memria principal, e o processador ser interrompido somente no final da operao. A rea de memria utilizada pelo controlador na tcnica de DMA chamada de buffer de entrada/sada. Na tcnica de DMA, o controlador assume momentaneamente o controle do barramento. Neste caso, a utilizao do barramento passa ser exclusiva do perifrico, e o processador suspende temporariamente o acesso ao barramento. O processador pode

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 36

    nestas horas, realizar tarefas que no dependa, do barramento, como por exemplo, acesso memria cache. 3.4 Buffering: A tcnica de buffering consiste na utilizao de uma rea na memria principal, denominada buffer, para a transferncia de dados entre os dispositivos de E/S e a memria. Esta tcnica permite que em uma operao de leitura, o dado seja primeiramente transferido para o buffer, liberando imediatamente o dispositivo para uma nova leitura. Assim, enquanto o processador processa o dado localizado no buffer, o perifrico realiza outra operao de leitura, simultaneamente. O mesmo mecanismo pode ser aplicado s gravaes (Figura 3.4)

    MemriaPrincipal

    UCP Buffer

    gravao gravao

    leitura leitura

    Controlador

    Fig. 3.4 Operaes de E/S utilizando buffer

    O objetivo desta tcnica manter, na maior parte do tempo, processador e dispositivos de E/S ocupados, pois minimiza o problema da disparidade da velocidade de processamento entre o processador e os dispositivos.

    A unidade de transferncia utilizada no buffering o registro, que tem seu tamanho definido em funo:

    - Da natureza do dispositivo. Por exemplo, uma linha gerada por uma impressora, ou um caractere de um teclado.

    - Da aplicao, definido em arquivo.

    Logicamente o buffer deve permitir armazenar diversos registros, de forma que hajam dados lidos e ainda no processados, ou processados mas ainda no gravados. Isto torna o processo bastante eficiente, pois possvel compatibilizar a diferena existente entre o tempo em que o processador executa instrues e o tempo em que o dispositivo de E/S realiza suas operaes de leitura e gravao.

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 37

    3.5 Spooling: A tcnica de spooling (simultaneous peripheral operation on-line), introduzida no final dos anos 50, visa aumentar o grau de concorrncia e a eficincia dos SOs. Semelhante tcnica de buffering, a tcnica de spooling utiliza uma rea em disco como se fosse um grande buffer. Neste caso, os dados podem ser lidos ou gravados em disco, enquanto programas so executados concorrentemente. Esta tcnica esta presente na maioria dos SOs, utilizada no gerenciamento de impresso. No momento em que um comando de impresso executado, as informaes a serem impressas so gravadas antes em um arquivo em disco, conhecido como arquivo de spool, liberando o programa para outras atividades. Posteriormente, o SO se encarrega de direcionar o contedo do arquivo de spool para a impressora (Figura 3.5).

    Programa ImpressoraArquivode Spool

    Sistema OperacionalSistema Operacional

    Fig. 3.5 Tcnica de Spooling

    Esta tcnica desvincula o programa do dispositivo impressor, impedindo que um programa reserve a impressora para uso exclusivo. O SO gerencia a seqncia de impresses solicitadas pelos programas, seguindo critrios de segurana e de uso eficiente das impressoras.

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 38

    Captulo 4

    ESTRUTURA DO SISTEMA OPERACIONAL

    4.1 Introduo:

    O Sistema Operacional formado por um conjunto de rotinas que oferecem servios aos usurios, s suas aplicaes, e ao prprio sistema. Este conjunto de rotinas denominado ncleo do sistema ou kernel. No confundir o ncleo do sistema com aplicaes, utilitrios ou interpretadores de comando, que acompanham o SO. (Figura 4.1). As aplicaes so utilizadas pelos usurios e no mostram os detalhes da interao com o sistema. Os utilitrios, como compiladores e editores de texto, e os interpretadores de comando, permitem aos usurios, administradores e desenvolvedores, uma interao amigvel com o sistema.

    Utilitrios

    Hardware

    Ncleo doSistema Operacional

    Aplicativos

    Fig. 4.1 Sistema Computacional

    Uma das dificuldades de se compreender o funcionamento de um SO, devido ao fato que ele no possui um incio, um meio e um fim, como outras aplicaes. Suas aes dependem de eventos que no ocorrem em uma ordem pr-definida. Muitos eventos esto relacionados ao hardware e ao prprio sistema.

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 39

    4.2 Principais Funes:

    As principais funes do ncleo na maioria dos SOs esto listadas a seguir:

    Tratamento de interrupes e excees: j explicados anteriormente, em detalhes;

    Criao e eliminao de processos: funo responsvel por alocar em

    memria todos os recursos necessrios execuo do processo. esta funo que aloca em memria, alm do executvel, o contexto do processo, o buffer de leitura/gravao (se necessrio), alm de listas e estruturas de controle utilizadas pelo sistema operacional. Nesta funo tambm so estabelecidos vnculos fsicos a arquivos em disco, fitas e outros perifricos que sero usados no processamento. Quando do fim da execuo do programa, esta funo que desaloca todos os espaos em memria ocupados pelo processo, liberando-os para futuras alocaes a outros processos;

    Escalonamento e controle de processos: funo responsvel por organizar a

    fila de acesso ao processador. Utiliza parmetros do sistema e do perfil do usurio para estabelecer a ordem em que os processos permanecero espera pela liberao da CPU, para ento entrarem em execuo;

    Gerncia de memria: funo responsvel por fornecer funo de

    criao/eliminao de processos os endereos em memria disponveis para alocao;

    Gerncia de sistemas de arquivos: responsvel pelo gerenciamento dos

    arquivos, bem como seu compartilhamento pelos diversos usurios, implementando mecanismos de controle da segurana e direitos de acesso s reas utilizadas pelos usurios nos diversos dispositivos;

    Gerncia de dispositivos de E/S: responsvel por gerenciar os dispositivos,

    prestando auxlio criao/eliminao de processos e gerncia de sistemas de arquivos no que diz respeito ao endereamento e associao de arquivos em perifricos;

    Suporte a redes e teleprocessamento: esta funo que executa todos os

    servios de rede, fazendo o empacotamento das mensagens vindas dos terminais para a CPU central e vice-versa, alm de controlar e confirmar o envio e recebimento de todas as mensagens que trafegam pela rede;

    Contabilizao de uso do sistema: responsvel por contabilizar o uso de

    todos os recursos do sistema consumidos pelos usurios e suas aplicaes. So registrados: tempo de CPU, tempo corrido, quantidade de rea alocada em memria, em disco, linhas impressas, pginas de papel, entre outros. Isto se faz necessrio para servir de subsdio para anlise de performance, estatsticas de

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 40

    gastos com material de consumo e tambm para definio de custos de processamento.;

    Auditoria e segurana do sistema: funo extremamente importante, pois detecta e registra (num arquivo especial de LOG) todas as ocorrncias de erro e violao de direitos de acesso ao sistema, aos arquivos, memria e a todos os recursos do sistema. O arquivo de LOG usado pela gerncia de sistemas, com o intuito de verificar e aperfeioar os mecanismos de segurana e proteo ao sistema.

    A forma como o cdigo do sistema organizado e o relacionamento com seus diversos componentes varia de acordo com o projeto do SO.

    4.3 System Calls: Uma grande preocupao no projeto de um SO, quanto a sua integridade, ou seja,

    a proteo do ncleo do sistema contra possveis acessos no-autorizados. As system calls (chamadas ao sistema) podem ser entendidas como uma porta de

    entrada para o acesso ao ncleo do sistema e seus servios. Quando um usurio ou aplicao necessitar de algum servio do sistema, feita uma chamada a uma de suas rotinas atravs de uma system call. O termo system call tpico de ambientes Unix, no ambiente Windows conhecida como API (Application Program Inteface).

    Para cada servio disponvel existe uma system call associada. Cada SO tem seu

    prprio conjunto de chamadas diferentes (Figura 4.2). Isto explica o fato de uma aplicao desenvolvida para um SO, no pode ser executada em outro.

    System Call

    Aplicao Biblioteca Hardware

    Ncleo doSistema Operacional

    Ncleo doSistema Operacional

    Fig. 4.2 System call Algumas tentativas foram feitas para padronizar uma biblioteca de chamadas. O

    padro POSIX (Portable Operating System Interface for Unix), por exemplo, foi estabelecido com a inteno de unificar as diversas verses do Unix existentes.

    Atravs de parmetros fornecidos nas system calls, a solicitao processada e uma

    resposta retornada aplicao, junto com um status indicando erro ou no. A ativao e comunicao entre programas e o SO, semelhante a uma sub-rotina de um programa.

  • Apostila de Sistemas Operacionais - PARFOR - IFPI - Campus Teresina Zona Sul

    Adaptada por: Prof. Me. Jefferson Silva - IFPI - CTZS 41

    4.4 Modos de Acesso: Algumas instrues no podem ser colocadas diretamente disposio das

    aplicaes, pois sua utilizao indevida poderia ocasionar problemas integridade do sistema. Por exemplo, uma aplicao que atualize um arquivo em disco. O programa por si s, no pode especificar diretamente as instrues que acessam seus dados no disco.

    Como o disco um recurso compartilhado, quem gerencia exclusivamente sua

    utilizao o SO. Assim se evita que a aplicao acesse qualquer parte do disco indiscriminadamente, o que poderia comprometer a segurana e integridade do sistema de arquivos.

    Portanto, fica claro que certas instrues s devem ser executadas pelo SO ou sob

    sua superviso, impedindo assim riscos de segurana e integridade. As instrues que possuem o poder de comprometer o sistema so conhecidas como instrues privilegiadas, enquanto que as no-privilegiadas no oferecem estes riscos.

    Para que uma aplicao no execute uma instruo privilegiada, deve ser

    implementado no processador um mecanismo de proteo, conhecido como modos de acesso. So basicamente dois os modos de acesso implementados pelo processador. O primeiro o modo usurio, onde a aplicao s poder executar instrues no-privilegiadas, tendo acesso a um numero reduzido de instrues. O segundo modo o modo kernel ou supervisor, onde a aplicao tem acesso ao conjunto total de instrues do processador.

    O modo de acesso de uma aplicao determinado por um registrador de status do

    processador (chamado de PSW), Dependendo do contedo deste registrador, o hardware verifica se a instruo pode ou no ser executada pela aplicao.

    Apenas o SO deve ter acesso s instrues privilegiadas. Portanto, se uma aplicao

    necessitar executar uma instruo privilegiada, deve solicitar sua execuo atravs de uma system call. A system call altera o status do PSW para modo kernel, e ao termino de sua execuo retorna ao modo usurio (Figura 4.3). Caso uma aplicao tente executar uma instruo privilegiada em modo usurio, o processador sinaliza um erro, uma exceo ser gerada e o programa ser interrompido.

    No mesmo exemplo do acesso ao disco, para o programa atualizar um arquivo, a

    aplicao deve solicitar a operao ao SO por meio de uma system call, que altera o modo de acesso para kernel. Aps efetuar a atualizao, retorna-se ao modo usurio.

    O mecanismo de modos de acesso tambm uma boa forma de proteger o prprio

    ncleo do sistema residente em memria. Por exem