PDF Sistema So Pe Racionais

download PDF Sistema So Pe Racionais

of 70

Transcript of PDF Sistema So Pe Racionais

  • 7/22/2019 PDF Sistema So Pe Racionais

    1/70

    Introduo aos Sistemas Operacionais ISO Tcnico em Informtica - IFSP - Salto

    Introduo aos Sistemas

    Operacionais - ISO

    Tcnico em Informtica com habilitao em

    programao e desenvolvimento de sistemas

    Notas de aula

    Prof. Dr. Marcelo de Paiva Guimares

    Salto, 2010

  • 7/22/2019 PDF Sistema So Pe Racionais

    2/70

    Introduo aos Sistemas Operacionais ISO Tcnico em Informtica - IFSP - Salto

    Prefcio

    O objetivo deste guia servir de referncia inicial a alunos do curso de Introduo aos

    Sistemas Operacionais. Recomenda-se fortemente que os alunos busquem as informaes

    complementares e detalhes nos livros citados na referncia bibliogrfica. Seu contedo uma

    pesquisa de vrios autores, sendo em partes transcries e tradues dos mesmos. Esta apostila visa

    ser uma primeira leitura para os alunos e tenta sempre mostrar os temas abordados de forma simples

    e clara. Todas as referncias bibliogrficas utilizadas na construo desta apostila se encontram no

    final do texto.

  • 7/22/2019 PDF Sistema So Pe Racionais

    3/70

    Introduo aos Sistemas Operacionais ISO Tcnico em Informtica - IFSP - Salto

    Sumrio1 Introduo .................................................................................................. 1

    1.1 Histrico dos Sistemas Operacionais ......................................................... 21.1.1 Vlvulas e Painis de Conexo (1945-1955) ........................................... 21.1.2 Transistores e Sistemas de Lote (batch) (1955-1965) .............................. 31.1.3 Circuitos Integrados e Multiprogramao (1965-1980) .......................... 31.1.4 Computadores Pessoais e Redes (1980 - 1990) ....................................... 4

    1.2 Tipos de Sistemas Operacionais. ............................................................... 51.2.1 Sistema Operacional (Monotarefa) .......................................................... 51.2.2 Sistemas Operacionais Multiprogramados (Multitarefa) ......................... 51.2.3 Sistemas Operacionais Batch(lote) .......................................................... 51.2.4 Sistemas Operacionais de tempo compartilhado (time-sharing) ............. 51.2.5 Sistemas Operacionais de Tempo Real (real-time) ................................. 51.2.6 Sistemas Operacionais Multiprocessados ................................................ 6

    1.3 Exerccios ................................................................................................... 62 Fundamentos .............................................................................................. 7

    2.1 Sistema de computao .............................................................................. 72.2 Buffering .................................................................................................... 72.3 Spooling ..................................................................................................... 82.4 Interrupes ................................................................................................ 8

    2.4.1 Interrupo de hardware.......................................................................... 92.4.2 Interrupo de software.......................................................................... 10

    2.5 DMA (Acesso direto a memria) ............................................................. 112.6 Hierarquia de memria ............................................................................ 112.7 Proteo de hardware.............................................................................. 12

    2.7.1 Operao em dois modos ....................................................................... 132.7.2 Operao de E/S ..................................................................................... 132.7.3 Proteo de Memria ............................................................................. 13

    2.8 Exerccios ................................................................................................. 143 Estruturas dos sistemas operacionais ....................................................... 16

    3.1

    Componentes dos Sistemas Operacionais ................................................ 16

    3.1.1 Gerncia de processos ............................................................................ 163.1.2 Gerncia de memria principal .............................................................. 163.1.3 Gerncia de arquivos.............................................................................. 163.1.4 Gerncia do sistema de I/O .................................................................... 163.1.5 Gerncia de armazenamento secundrio ................................................ 173.1.6 Proteo de sistema ................................................................................ 173.1.7 Interpretador de comandos ..................................................................... 17

    3.2 Estrutura dos Sistemas Operacionais ....................................................... 173.2.1 Sistemas Monolticos ............................................................................. 17

  • 7/22/2019 PDF Sistema So Pe Racionais

    4/70

    Introduo aos Sistemas Operacionais ISO Tcnico em Informtica - IFSP - Salto

    3.2.2 Sistemas em Camada ............................................................................. 193.2.3 Sistemas Cliente-Servidor ...................................................................... 19

    3.3 Sistemas Monolticos versus Sistemas Cliente-Servidor ......................... 213.4 Exerccios ................................................................................................. 21

    4 Processos .................................................................................................. 224.1 Fundamentos ............................................................................................ 224.2 O Ncleo do Sistema Operacional ........................................................... 264.3 Escalonamento de Processos .................................................................... 27

    4.3.1 Escalonamento FCFS ou FIFO .............................................................. 284.3.2 Escalonamento Round Robin ................................................................. 284.3.3 Escalonamento com Prioridades ............................................................ 294.3.4 Filas Multi-nvel com retorno ................................................................ 304.3.5 Escalonamento Menor tarefa Primeiro .................................................. 31

    4.4 Exerccios - Reviso ................................................................................ 324.5 Comunicao e Sincronizao entre Processos. ...................................... 33

    4.5.1 O Problema do Produtor e Consumidor sobre um Buffer Circular. ...... 334.5.2 Solues de hardware. ........................................................................... 354.5.3 Solues de software.............................................................................. 364.5.4 Deadlock: Espera sem fim. .................................................................... 414.5.5 Problemas clssicos ............................................................................... 41

    5 Gerencia de memria ............................................................................... 435.1 Alocao Contgua Simples ..................................................................... 435.2 Alocao Particionada ............................................................................. 44

    5.2.1 Alocao Particionada Esttica .............................................................. 445.2.2 Alocao Particionada Dinmica ........................................................... 465.2.3 Estratgias para a escolha da Partio ................................................... 47

    5.3 Swapping .................................................................................................. 485.4 Memria Virtual ....................................................................................... 49

    5.4.1 Paginao ............................................................................................... 505.4.2 Segmentao. ......................................................................................... 545.4.3 Segmentao com Paginao: ................................................................ 55

    5.5 Exerccios ................................................................................................. 566 Sistemas de arquivos ................................................................................ 57

    6.2 Exerccios ................................................................................................. 65Referncias bibliogrficas .......................................................................................... 66

  • 7/22/2019 PDF Sistema So Pe Racionais

    5/70

    Introduo aos Sistemas Operacionais ISO Tcnico em Informtica - IFSP - Salto

    1

    1 INTRODUO

    Um sistema operacional um programa de computador, que aps o processo de inicializao (boot)da mquina, o primeiro a ser carregado, e que possui duas tarefas bsicas:

    Gerenciar os recursos de hardware de forma que sejam utilizados da melhor forma possvel, ouseja, tirar o mximo proveito da mquina fazendo com que seus componentes estejam a maiorparte do tempo ocupados com tarefas existentes; e

    Prover funes bsicas para que programas de computador possam ser escritos com maiorfacilidade, de modo que os programas no precisem conhecer detalhes da mquina para poderemfuncionar.

    justamente neste segundo item que os sistemas operacionais podem ser bem sucedidos ou no, emdespertar interesse para que a indstria de software e os programadores independentes construamprogramas para determinados sistemas operacionais. Isto justifica parte do sucesso do MicrosoftWindows, pois, ao mesmo tempo que ele prov uma interface bastante amigvel com o usurio, para oprogramador, no to difcil criar um programa com janelas, botes, listas, etc, como seria num sistemaoperacional como o MS-DOS. Alm disso, os sistemas operacionais da Microsoft rodam no hardware

    mais popular hoje em dia: os computadores baseados em IBM PC.Computadores modernos possuem um ou mais processadores, memria principal, dispositivos deentrada e sada como discos, fitas, teclado, mouse, monitor, interface de rede, entre outros. Escreverprogramas que utilizem um computador com esta complexidade de forma eficiente muito difcil etrabalhoso. exatamente neste ponto que entram as funes do sistema operacional: abstrair asparticularidades do hardwaredos programas, fornecendo a eles facilidades para sua operao, tais como:rotinas de acesso a dispositivos diversos; funes de armazenamento de dados como criao de arquivos,leitura e escrita de dados; e rotinas de acesso aos dispositivos de interao com a mquina, como teclado,mouse, monitor, etc.

    Dada a existncia de softwares como o sistema operacional, os programas normalmente soclassificados como software bsico (que inclui o sistema operacional), e softwaresde aplicao, que so

    voltados a resolver problemas dos usurios.Podemos visualizar atravs de um diagrama a integrao entre hardware, software bsico, esoftwaresaplicativos, como mostra a Figura 1.

    Figura 1 Integrao entrehardware,softwarebsico esoftware aplicativo

    Olhando para o diagrama, veremos que o que chamamos de hardware na verdade composto de

    trs camadas. Nem todas as mquinas seguem este esquema, algumas podem ter uma camada a menos, oumesmo camadas adicionais, mas basicamente, os computadores seguem o esquema ilustrado na Figura 1.

    Sistema Bancrio Controle deEstoques

    Jogos

    Compiladores Editores Interpretador decomandos (shell)

    Sistema OperacionalLinguagem de Mquina

    Microprogramao

    Dispositivos Fsicos

    Programas deAplicao

    Programas de Sistema(softwarebsico)

    Hardware

  • 7/22/2019 PDF Sistema So Pe Racionais

    6/70

    Introduo aos Sistemas Operacionais ISO Tcnico em Informtica - IFSP - Salto

    2

    No nvel mais inferior, temos os dispositivos eletrnicos em si, como o processador, os chips dememria, controladores de disco, teclado, e outros dispositivos, barramentos, e qualquer dispositivoadicional necessrio para o funcionamento do computador. Um nvel acima, temos a camada demicroprogramao, que de forma geral, so pequenos passos (chamados de microoperaes) queformam uma instruo de processador completa, como ADD, MOV, JMP, etc.

    O conjunto de instrues do computador chamado de linguagem de mquina, e apesar de ser umaespcie de linguagem, podemos dizer que faz parte do hardware porque os fabricantes a incluem naespecificao do processador, para que os programas possam ser escritos. Afinal, de nada adianta umamquina maravilhosa, se no existir documentao alguma de como ela funciona. Assim, as instruesque a mquina entende so consideradas parte integrante do hardware.

    As instrues tambm incluem, geralmente, operaes que permitem ao processador comunicar-secom o mundo externo, como controladores de disco, memria, teclado, etc. Como a complexidade paraacesso a dispositivos muito grande, tarefa do Sistema Operacional esconder estes detalhes dosprogramas. Assim, o sistema operacional pode, por exemplo, oferecer aos programas uma funo do tipoLEIA UM BLOCO DE UM ARQUIVO, e os detalhes de como fazer isso ficam a cargo do sistemaoperacional.

    Acima do sistema operacional esto os demais programas utilizados pelo usurio final, mas algunsdeles ainda so considerados software bsico, como o sistema operacional. Entre eles podemos citar oshell, que consiste do interpretador de comandos do usurio, ou seja, a interface com o usurio. Nossistemas operacionais mais recentes, freqentemente o shell uma interface grfica (ou em ingls GUI Graphics User Interface). Raramente, numa interface grfica bem elaborada, o usurio precisa digitarcomandos para o computador. A maneira mais comuns de executar programas, copiar e mover arquivos,entre outras atividades mais comuns, atravs do uso do mouse. Nos tempos do MS-DOS, o teclado era odispositivo de entrada dominante, por onde o usurio entrava todos os comandos para realizar suas tarefasdo dia a dia.

    O que muito importante observar quanto ao software bsico que, apesar de que editores (ex:bloco de notas do Windows), compiladores (ex: compilador C no Unix), e interpretadores de comando

    (ex: command.com ou explorer.exe no Windows) normalmente serem instalados junto como sistemaoperacional em um computador, eles no so o sistema operacional. Eles apenas utilizam o sistemaoperacional. Portanto, o shell que normalmente usamos em um sistema operacional nada mais do queum programa que utiliza servios do sistema operacional, mas com a finalidade de permitir que osusurios realizem suas tarefas mais freqentes: executar programas e trabalhar com arquivos.

    A grande diferena entre o sistema operacional, e os programas que rodam sobre ele, sejam softwarebsico ou softwareaplicativo, que o sistema operacional roda em modo kernel (ou supervisor), enquantoos demais programas rodam em modo usurio. Estes dois modos de operao dos processadores doscomputadores diferem no fato de que em modo supervisor, um programa tem acesso a todo o hardware,enquanto que os programas que rodam em modo usurio, tem acesso somente a determinadas regies dememria, no podem acessar dispositivos diretamente, e precisam pedir para o sistema operacional

    quando necessitam de alguma tarefa especial. Isto garante que os programas dos usurios, no acabem porinvadir reas de memria do sistema operacional, e acabem por travar o sistema. Isto tambm possibilitaque programas de diferentes usurios estejam rodando na mesma mquina, de forma que um usurio noconsiga interferir nos programas de outro.

    1.1Histrico dos Sistemas Operacionais

    Para uma melhor idia do curso de desenvolvimento dos sistemas operacionais atuais, a seguir apresentada a esquematizao da evoluo histrica dos mesmos, enfatizando a relao entre a evoluodos S.O. e os avanos em hardware.

    1.1.1 Vlvulas e Painis de Conexo (1945-1955)

    Os primeiros computadores foram implementados atravs de vlvulas a vcuo, consistindo em salas

  • 7/22/2019 PDF Sistema So Pe Racionais

    7/70

    Introduo aos Sistemas Operacionais ISO Tcnico em Informtica - IFSP - Salto

    3

    inteiras de circuito, consumindo energia eltrica suficiente para cidades inteiras. A programao erarealizada atravs de painis onde as conexes realizadas representavam os 0 e 1 dos cdigos binrios dalinguagem de mquina. No existia o conceito de sistema operacional, sendo que cada usurio introduzia oseu programa por painis e aguardava os resultados. A probabilidade de falha do sistema durante aexecuo de algum programa era altssima, devido baixa confiabilidade das vlvulas a vcuo.

    1.1.2 Transistores e Sistemas de Lote (batch) (1955-1965)A introduo dos transistores, com a consequente reduo de tamanho e consumo e o aumento da

    confiabilidade permitiu o desenvolvimento dos primeiros sistemas realmente utilizveis fora dos crculosacadmicos e governamentais, o que garantiu a a venda comercial dos mesmos. Nesta poca sugiu adistino entre projetistas, construtores, operadores, programadores e pessoal da manuteno.

    Entretanto, os computadores ainda eram extremamente grandes e caros, devendo ser acondicionadosem grandes salas com ar condicionado e operados por pessoal profissional. Ento, o seu uso era restrito entidades governamentais, grandes corporaes e universidades. O processo de execuo de uma tarefa(job) era, resumidamente:

    i) perfurao de um conjunto de cartes com o programa a ser executado;ii) o operador pega os cartes e os coloca na leitura. Se o compilador FORTRAN for necessrio, ele

    colocado (tambm como um conjunto de cartes) na leitora;iii) o resultado sai na impressora e levado pelo operador para um local onde o usurio o recolhe.

    Este processo, alm de lento, desperdia muito tempo de programao devido ao deslocamento dooperador pela sala, buscando conjuntos de cartes a serem utilizados e pela lentido dosdispositivos de entrada e sada (leitora de cartes e impressora).

    Para maximizar a eficincia na utilizao dos processadores, e devido ao surgimento das unidadesde fita magntica, foi utilizada um novo procedimento:

    i) perfurao dos cartes e envio ao operador;ii) o operador junta os conjuntos de cartes e, com a utilizao de um computador mais barato,

    grava-os em uma fita magntica;

    iii) a fita magntica levada ao processador principal e lida;iv) os programas da fita so executados e o resultado gravado em outra fita magntica;v) esta fita de sada levada ao computador secundrio (mais barato), lida e seu contedo impresso

    em uma impressora comum;vi) a sada da impressora entregue aos usurios.Este processo, denominado OFF-LINE, garantiu uma maior eficincia na utilizao do processador

    principal. Porm aumentou o tempo de resposta do sistema para cada usurio. Este aumento do tempo deresposta do sistema se d em funo de se juntar uma quantidade razovel de conjuntos de cartes para segravar uma fita. Desta forma, cada usurio, para obter a resposta a seu programa, deve aguardar aexecuo de diversos outros programas armazenados na mesma fita. Isto fica ainda mais crtico quandoum dos programas de uma fita apresenta um tempo de execuo muito elevado.

    1.1.3 Circuitos Integrados e Multiprogramao (1965-1980)

    Com a introduo de circuitos integrados, houve uma grande reduo no tamanho e custo dossistemas, bem com um aumento em sua complexidade e generalidade. Isto permitiu o desenvolvimento dedispositivos de entrada e sada inteligentes, de forma que os prprios se responsabilizam pelo controle datransferncia de dados entre eles e a memria principal. Outro desenvolvimento importante foi aintroduo dos discos, que permitem um acesso aleatrio informao contida nos mesmos,diferentemente das fitas magnticas, que somente permitem um acesso aos dados na ordem em que osmesmos esto gravados (note que isto pode ficar transparente atravs de uma programao cuidadosa,entretanto com alto custo em tempo de execuo). Estes foram fatores fundamentais para o sucesso doconceito de multiprogramao, apresentado a seguir. Simultaneamente com a utilizao de circuitos

    integrados, surgiu o conceito de multiprogramao. A idia provm dos seguintes fatos:i) durante a execuo de programas que realizam alta utilizao de clculos (ex: programas

  • 7/22/2019 PDF Sistema So Pe Racionais

    8/70

    Introduo aos Sistemas Operacionais ISO Tcnico em Informtica - IFSP - Salto

    4

    cientficos) todos os dispositivos de entrada e sada permanecem inativos;ii) durante a execuo de programas com alta utilizao de entrada e sada (ex: programas

    comerciais com consultas base de dados e impresso de relatrios) o processador permanecedurante grande porcentagem do tempo aguardando os dispositivos de entrada/sada.

    Desta forma, surgiu a idia de se colocar diversas tarefas (jobs) dentro de alguma "partio" damemria principal e executando simultaneamente de forma que, se alguma tarefa precisa aguardar atransferncia de dados para um dispositivo, outra tarefa pode utilizar o processador central neste perodo.

    Outro conceito introduzido foi o de "SPOOL (de Simultaneous Peripherical Operation On Line) quecorresponde leitura imediata dos jobs para o disco no momento da sua chegada, sendo que ao terminarum dos jobs ativos, um novo job imediatamente carregado do disco para a partio de memria vazia eexecutado (partio um trecho de memria alocado a um job). Este processo tem a vantagem de que,com a leitura simultnea dos dados para um meio de armazenamento mais rpido e com a transferncia dedados entre os meios realizada simultaneamente com a operao da unidade de processamento principal,desapareceu praticamente o tempo manual de montagem e desmontagem de fitas. Alm disso, dispondo dediversosjobsa serem executados no disco, o sistema operacional podia escolher entre eles por prioridade,e no necessariamente por ordem de chegada.

    Entretanto, at este ponto, o sistema continuava sendo um sistema de lotes, sendo o tempo entre aapresentao de um conjunto de cartes e a retirada do resultado extremamente alto, principalmentequando se est realizando a depurao de programas.

    Para diminuir o tempo de resposta do sistema a um dado job foi introduzido o conceito decompartilhamento de tempo (time-sharing), no qual cada usurio possui um terminal ligado em linha como computador, podendo ainda o computador rodar, no fundo, alguns lotes com a utilizao do tempodisponvel devido lentido de entrada de dados dos usurios. Nesta poca tambm surgiram osminicomputadores, com uma menor capacidade de processamento numrico, mas tambm com um customuito menor.

    Obs.: Multiprogramao e multiprocessamento: Estes conceitos devem ser claramente distinguidos. Multiprogramao: corresponde a diversos programas distintos executando em um mesmo

    processador. Multiprocessamento: corresponde a diversos processadores, dentro de um mesmo sistema de

    computao, executando programas diversos ou cooperando na execuo de um mesmo programa.Note que foi a existncia de multiprocessamento entre os dispositivos de entrada/sada e o

    processador central que tornou atrativa a introduo da multiprogramao, mas a relao para por a.

    1.1.4 Computadores Pessoais e Redes (1980 - 1990)

    Com a integrao em larga escala e o surgimento dos microcomputadores, surge tambm o conceitode user-friendly para Sistemas Operacionais, que corresponde ao desenvolvimento de sistemasoperacionais para serem utilizados por pessoas sem nenhum conhecimento de computao e que,provavelmente, no tm nenhum interesse em vir a conhecer algo.

    Um outro desenvolvimento interessante que foi bastante impulsionado pelos microcomputadores(apesar de no depender dos mesmos) o de sistemas operacionais para redes de computadores, queconsistem em computadores distintos interligados por elementos de comunicao. Os sistemasoperacionais para redes so divididos em duas categorias:

    Sistemas operacionais de rede: no qual cada usurio tem conhecimento de seu prprio computadore pode acessar dados em outros computadores;

    Sistemas operacionais distribudos: em que o sistema operacional faz com que todos oscomputadores da rede formem uma unidade, de forma que nenhum usurio tenha conhecimento dequantos computadores h na rede ou de em qual (ou quais) computador o seu especfico programaest executando.

  • 7/22/2019 PDF Sistema So Pe Racionais

    9/70

    Introduo aos Sistemas Operacionais ISO Tcnico em Informtica - IFSP - Salto

    5

    1.2Tipos de Sistemas Operacionais.

    Os diferentes tipos de sistemas operacionais so basicamente classificados de acordo com onmero de processos do usurio que o SO pode executar ou de acordo com o nmero de processadoresque o sistema possui.

    1.2.1 Sistema Operacional (Monotarefa)Possui as seguintes caractersticas:- executado por um nico processador e capaz de gerenciar a execuo de um nico programa

    (tarefa) do usurio por vez.- Permite que o processador, a memria e os perifricos fiquem dedicados a um nico usurio; so

    portanto monousurios (monoterminais).- O processador fica ocioso quando o programa espera pela ocorrncia de uma E/S.- So sistemas de simples implementao.

    1.2.2 Sistemas Operacionais Multiprogramados (Multitarefa)

    Possui as seguintes caractersticas:- executado por um ou vrios processadores. No caso de vrios processadores, classificado

    como "SO para Multiprocessadores" (discutido a seguir). No caso de apenas um processador, permite quevrios programas disputem os recursos do sistema (paralelismo lgico ou virtual), e:

    - Podem ser monousurio ou multiusurio:Monousurio: um nico usurio executando vrios programas (monoterminal).Multiusurio: vrios usurios executando vrios programas (multiterminais).

    - Divide o tempo da cpu entre os vrios programas e entre os vrios usurios.- Diminui a ociosidade, permitindo que durante o tempo de E/S outros processos sejamexecutados.

    Inicialmente, os sistemas multiprogramados comearam com os sistemas de batch; depois com os

    sistemas time-sharing e finalmente com os sistemas real-time.1.2.3 Sistemas Operacionais Batch(lote)

    Os programas eram enfileirados em disco ou fita e aguardavam a execuo, um por vez.Normalmente, os programas (jobs) no necessitavam de interao com o usurio. Embora sejamconsiderados como os precursores dos sistemas multiprogramados, pois aproveitavam os tempos de E/Spara a execuo de outros processos, o processamento era puramente sequncial e ofereciam longostempos de resposta.

    1.2.4 Sistemas Operacionais de tempo compartilhado (time-sharing)

    Os usurios interagem atravs de terminais e teclados on-line. So sistemas multiterminais, cujo

    processamento controlado por um computador central. O sistema executa uma varredura (polling) nosterminais, compartilhando o tempo entre eles (time-sharing).Neste sistema, o processador executa os programas de forma intercalada no tempo, alocando uma

    fatia de tempo (time-slice) para cada um, por vez, realizando assim a multiprogramao. Cada usurio tema iluso que todo o sistema est totalmente dedicado exclusivamente para ele.

    1.2.5 Sistemas Operacionais de Tempo Real (real-time)

    So semelhantes aos sistemas time-sharing, embora exijam tempo de resposta dentro de limitesrgidos, na execuo de tarefas. O conceito de time-slice muito pouco utilizado e os processos executamo tempo necessrio e conforme sua prioridade. So sistemas muito utilizados em controle de processos,onde o tempo um fator crucial: refinaria de petrleo, automao industrial, controle de trfego areo etc..

    Neste sistema, os processos geralmente so ativados por sensores.

  • 7/22/2019 PDF Sistema So Pe Racionais

    10/70

    Introduo aos Sistemas Operacionais ISO Tcnico em Informtica - IFSP - Salto

    6

    1.2.6 Sistemas Operacionais Multiprocessados

    Possui as seguintes caractersticas:- O sistema possui vrios processadores, que podem estar confinados a um mesmo gabinete

    (centenas de processadores) ou espalhados fisicamente em forma de rede (dezenas de processadores).- Executam vrias tarefas simultaneamente e portanto so multitarefas.

    - Cada processador pode operar monoprogramado ou multiprogramado.- Ocorre paralelismo fsico ou real, quando mais de um processador est sendo utilizado. Ocorretambm paralelismo lgico, quando o nmero de tarefas maior que o nmero de processadoresdisponveis.

    - Podem ser fracamente acoplados ou fortemente acoplados:Fracamente acoplados (loosely coupled): cada processador possui sua prpria memria e

    executa seu prprio sistema operacional (Sistema Operacional de Rede) ou parte de um sistemaoperacional global (Sistema Operacional Distribudo).

    UCP

    MEM DISPOSE/S

    UCP

    MEM DISPOSE/S

    Linha de

    comunicao

    Figura 2 - Sistemas fracamente acoplados

    Fortemente acoplados (tightly coupled): todos os processadores compartilham uma nicamemria. Estes processadores geralmente so coordenados por um nico SO localizado em um outrocomputador hospedeiro, que se encarrega de distribuir as tarefas entre os processadores e gerenciar aexecuo.

    UCP

    MEMDISPOS

    E/S

    UCP

    DISPOSE/S

    Figura 3- Sistemas fortemente acoplados

    1.3Exerccios

    1. Quais os principais objetivos e as principais funes de um SO?

    2. Qual a diferena entre monoprogramao e mutiprogramao. Exemplifique.3. Defina as propriedades essenciais dos seguintes tipos de SO: Batch, Multiprogramados, Tempo

    Compartilhado, Tempo Real e Multiprocessados.4. Se o computador possuir apenas um processador, possvel ocorrer um processamento paralelo?

    Justifique a resposta.5. Quais so as diferenas entre um sistema fracamente e fortemente acoplado?6. Explique a diferena entre processamento paralelo e concorrente.

  • 7/22/2019 PDF Sistema So Pe Racionais

    11/70

    Introduo aos Sistemas Operacionais ISO Tcnico em Informtica - IFSP - Salto

    7

    2 FUNDAMENTOS

    Este captulo tem como objetivo introduzir diversos fundamentos que sero utilizados no decorrer docurso.

    2.1Sistema de computao

    Um sistema de computao de uso geral moderno consiste de uma CPU e em uma srie decontroladoras de dispositivos que so conectadas atravs de um barramento comum que fornece acesso memria compartilhada (Figura 4). Cada controladora de dispositivo est encarregada de um tipoespecfico de dispositivo (por exemplo, unidades de disco, dispositivos de udio e monitores de vdeo). ACPU e as controladoras de dispositivo podem executar de modo concorrente, competindo pelos ciclos dememria. Para garantir acesso correto memria compartilhada, uma controladora de memria fornecida e sua funo sincronizar o acesso memria.

    Figura 4 - Sistema de computao moderno2.2Buffering

    A tcnica de bufferingconsiste na utilizao de uma rea de memria (buffer) para a transfernciade dados entre os perifricos e a memria principal. O bufferingveio permitir que, quando um dado fossetransferido para o bufferaps uma operao de leitura, o dispositivo de entrada pudesse iniciar uma novaleitura. Neste caso, enquanto a CPU manipula o dado localizado no buffer, o dispositivo realiza outraoperao de leitura no mesmo instante. O mesmo raciocnio pode ser aplicado para operaes de gravao,onde a CPU coloca o dado no buffer para um dispositivo de sada manipular, como mostra a Figura 5.

    CPU buffer

    Memria Principal

    Dispositivosde E/S

    g

    l

    g

    l

    g = gravaol = leitura

    Figura 5- Buffer

    O buffering uma tcnica utilizada para minimizar o problema da disparidade da velocidade deprocessamento existente entre a CPU e os dispositivos de E/S. O objetivo do buffering manter, na maiorparte do tempo, a UCP e dispositivos de E/S ocupados.

  • 7/22/2019 PDF Sistema So Pe Racionais

    12/70

    Introduo aos Sistemas Operacionais ISO Tcnico em Informtica - IFSP - Salto

    8

    2.3SpoolingA tcnica de spoolingfoi introduzida nos anos 50 com o processamento batche hoje utilizada na

    maioria dos sistemas operacionais. Naquela poca, os programas eram submetidos um a um para oprocessamento, e como a velocidade de operao dos dispositivos de E/S, muito lenta, a CPU ficavaociosa esperando o carregamento de um programa e dados para a memria, ou esperando pelo trmino deuma impresso.

    A soluo foi armazenar os vrios programas e seus dados, tambm chamados dejobs, em uma fitamagntica e, em seguida, submet-los a processamento. Dessa forma, a CPU poderia processar os jobs,diminuindo o tempo de execuo dos jobs e o tempo de transio entre eles. Da mesma forma, em vez deum job gravar suas sadas na impressora, poderia direcion-las para uma fita, que depois seria impressaintegralmente. Essa forma de processamento chamado de spooling, e mostrada na Figura 6.

    Programa

    Arquivode spool

    Sistema

    Operacional

    Impresso

    Figura 6- Spool

    A tcnica de bufferingpermite que um job utilize um bufferconcorrentemente com um dispositivode entrada e sada. O spooling, basicamente, utiliza o disco como um grande buffer, permitindo que dadossejam lidos e gravados em disco, enquanto outrosjobsso processados.

    2.4Interrupes

    um sinal informando a um programa que um evento ocorreu. Quando um programa recebe umsinal de interrupo, ele deve tomar uma ao. Existem muito tipos diferentes de sinais que podem

    disparar uma interrupo, por exemplo, a concluso de uma oprao de I/O, diviso por zero, acessoinvlido memria e um pedido por algum servio do sistema operacional. Para cada interrupo, umarotina de servio designada para tratar a interrupo.

    Quando a CPU interrompida, ela pra o que est fazendo e imediatamente transfere a execuopara um local fixo. Esse local fixo geralmente contm o endereo de incio onde est localizada a rotina deservio para a interrupo. Um diagrama de tempo dessa operao apresentada na Figura 7.

    Figura 7 - Diagrama de tempo de interrupo para um nico processo gerando sada.

    Para comear uma operao de I/O, como mostrada na Figura 7, a CPU carrega os registradoresadequados dentro da controladora de dispositivo. A controladora de dispositivo, por usa vez, examina ocontedo desses registradores para determinar que ao deve ser tomada. Por exemplo, se encontrar umpedido de leitura, a controladora comear a transferir dados do dispositivo para o seu bufferlocal. Umavez concluda a transferncia, a controladora de dispositivo informa a CPU que terminou a operao. Essacomunicao feita disparando uma interrupo.

  • 7/22/2019 PDF Sistema So Pe Racionais

    13/70

    Introduo aos Sistemas Operacionais ISO Tcnico em Informtica - IFSP - Salto

    9

    Essa situao ocorrer, em geral, como resultado de um processo de usurio que solicita I/O. Umavez iniciada a operao de I/O, dois roteiros so possveis. No caso mais simples, a I/O iniciada; emseguida, quando tiver sido concluda, o controle devolvido para o processo do usurio. Esse caso denominado I/O sncrono. A outra possibilidade, chamada I/O assncrona, devolve o controle ao programade usurio sem esperar que a I/O termine. A I/O continua enquanto outras operaes de sistema ocorremFigura 8.

    Figura 8 - Dois mtodos de I/O: (a) sncrona e (b) assncrona

    Existem dois tipos de interrupes: a de hardware que um sinal originado em algum dispositivofsico; e a de software que um sinal originado por alguma aplicao.

    2.4.1 Interrupo dehardware

    O hardware da UCP (Unidade Central de Processamento) possui uma linha chamada linha desolicitao de interrupo que a UCP verifica depois de executar cada instruo. Quando a UCP detectaque uma controladora emitiu um sinal na linha de solicitao de interrupo, a UCP salva uma pequena

    quantidade de informaes de estado, como o valor atual do ponteiro de instrues, e passa para a rotinade tratamento de interrupo em um endereo fsico na memria. A rotina de tratamento de interrupodetermina a causa da interrupo, realiza o processamento necessrio e executa uma instruo return frominterruptpara retornar a UCP ao estado de execuo antes da interrupo. A Figura 9 resume o ciclo deI/O baseado em interrupes de hardware.

    Interrupes de hardware podem ser originadas pelos vrios dispositivos perifricos (discos,impressora, teclado e outros) ou pelo relgio. O relgio um dispositivo que decrementa automaticamenteo contedo de um registrador, com uma freqncia constante, e interrompe a UCP quando o valor doregistrador atinge zero. Os computadores possuem instrues especiais para desabilitar (mascarar, inibir) osistema de interrupo. Enquanto as interrupes esto desabilitadas elas podem ocorrer, mas no soatendidas pelo processador. Nesse caso, elas ficam pendentes (enfileiradas) e s voltam serem atendidas

    quando a UCP executa uma instruo especial que habilita (desmascara, desinibe) as mesmas.

  • 7/22/2019 PDF Sistema So Pe Racionais

    14/70

    Introduo aos Sistemas Operacionais ISO Tcnico em Informtica - IFSP - Salto

    10

    2.4.2 Interrupo desoftware

    Uma interrupo de software um sinal gerado por uma instruo especial (portanto, por software)denominada trap, system callou supervisor call. Quando uma instruo desse tipo executada pela UCP,o computador desencadeia as mesmas aes desencadeadas por uma interrupo de hardware, isto , oprograma em execuo suspenso, informaes so salva a rotina especfica do SO executada.

    Os traps so necessrios principalmente nos computadores que possuem instrues protegidas(privilegiadas). Nesses computadores o registrador (palavra) de estado do processador possui um bitpara

    indicar se a UCP est em estado privilegiado(estado de sistema, estado de supervisor, estado mestre) ouno privilegiado (estado de usurio, estado de programa, estado escravo). Sempre que ocorre umainterrupo ou trap, o novo valor carregado no registrador do estado do processador, indica estadoprivilegiado de execuo. No estado de supervisor qualquer instruo pode ser executada e no estado deusurio apenas as instrues no protegidas podem ser executadas. Exemplos de instrues protegidas soinstrues para desabilitar e habilitar interrupes e instrues para realizar operaes de E/S. Operaesque envolvam o uso de instrues protegidas s podem ser executadas pelo sistema operacional, portanto.Quando um programa de usurio necessita executar alguma dessas operaes, o mesmo deve executar umtrap, passando como argumento o nmero que identifica a operao que est sendo requerida.

    A diferena fundamental dos traps para as interrupes de hardware que eles so eventosprevisveis. Isto , dado um programa e seus dados, possvel determinar os pontos em que os trapsiro

    ocorrer. Por outro lado, as interrupes de hardware so geradas por dispositivos perifricos em pontosimprevisveis. As interrupes de software tm prioridade baixa quando comparadas com as de hardware,

    Driver de dispostivoinicia E/S

    Inicia I/O

    Entrada pronta, sadacompleta ou erro

    Gera sinal deinterrupo

    UCP em execuo verificainterrupes entre instrues

    UCP recebe interrupo,transfere o controle para a

    rotina de tratamento deinterrupo

    A rotina de tratamento deinterrupo processa dados,

    retorno da interrupo

    A UCP retorna oprocessamento da tarefa

    interrompida

    Controladora de I/O

    UCP1

    2

    3

    4

    5

    6

    7

    Figura 9 Ciclo de E/S baseado em interrupes

    Driver de dispostivo inicia I/O

  • 7/22/2019 PDF Sistema So Pe Racionais

    15/70

    Introduo aos Sistemas Operacionais ISO Tcnico em Informtica - IFSP - Salto

    11

    pois uma interrupo de software menos urgente do que uma realizada por uma controladora dedispositivo, pois se a fila (FIFO) da controladora transbordar, pode ocorrer perda de dados.

    2.5DMA (Acesso direto a memria)

    O acesso direto a memria (DMA) apresenta o seguinte esquema:

    Dispositivo E/S

    Memria

    CPU

    Instrues de E/S

    Figura 10- DMA Utilizado para dispositivos de E/S de alta velocidade capazes de transmitir informao com

    velocidades prximas da memria; O controlador do dispositivo transfere blocos de dados do bufferdiretamente para a memria

    principal sem a interveno da CPU; Somente uma interrupo gerada por bloco, ao contrrio de uma interrupo por byte.

    2.6Hierarquia de memria

    Para o correto e eficaz funcionamento da manipulao das informaes (instrues de um programae dados) para a memria de um computador, verifica-se a necessidade de se ter, em um mesmo

    computador, diferentes tipos de memria. Para certas atividades, por exemplo, fundamental que atransferncia de informaes seja a mais rpida possvel. o caso das atividades realizadas internamenteno processador central, onde a velocidade primordial, porm a quantidade de bits a ser manipulada muito pequena (em geral, corresponde quantidade de bitsnecessria para representar um nico valor -um nico dado).

    Isso caracteriza um tipo de memria diferente, por exemplo, daquele em que a capacidade damemria (disponibilidade de espao para guardar informaes) mais importante que a sua velocidade detransferncia.

    Ainda em relao ao tipo de alta velocidade e pequena quantidade de bitsarmazenveis, que se usana UCP, existem variaes decorrentes do tipo de tecnologia utilizada na fabricao da memria.

    Devido a essa grande variedade de tipos de memria, no possvel implementar um sistema decomputao com uma nica memria. Na realidade, h muitas memrias no computador, as quais seinterligam de forma bem estruturada, constituindo um sistema em si, parte do sistema global decomputao, podendo ser denominado subsistema de memria.

    Esse subsistema projetado de modo que seus componentes sejam organizados hierarquicamente,conforme mostrado na estrutura em forma de pirmide da Figura 11.

    A pirmide em questo projetada com uma base larga, que simboliza a elevada capacidade, otempo de uso e o custo do componente que a representa.

  • 7/22/2019 PDF Sistema So Pe Racionais

    16/70

    Introduo aos Sistemas Operacionais ISO Tcnico em Informtica - IFSP - Salto

    12

    Figura 11 - Hierarquia de memrias.

    A seguir sero definidos os principais parmetros para anlise das caractersticas de cada tipo de

    memria componente da hierarquia apresentada na Figura 11. O valor maior (base) ou menor (pico) dealgum parmetro foi a causa da utilizao de uma pirmide para representar a hierarquia do sistema dememria de um computador.

    Tempo de acesso - indica quanto tempo a memria gasta para colocar uma informao nobarramento de dados aps uma determinada posio ter sido endereada. Isto , o perodo de tempodecorrido desde o instante em que foi iniciada a operao de acesso (quando a origem - em geral a CPU- passa o endereo de acesso para o sistema de memria) at que a informao requerida (instruo oudado) tenha sido efetivamente transferida. um dos parmetros que pode medir o desempenho damemria. Pode ser chamado de tempo de acesso para leitura ou simplesmente tempo de leitura.

    Capacidade - a quantidade de informao que pode ser armazenada em uma memria; a unidadede medida mais comum o byte, embora tambm possam ser usadas outras unidades como clulas (no

    caso de memria principal ou cache), setores (no caso de discos) e bits (no caso de registradores).Dependendo do tamanho da memria, isto , de sua capacidade, indica-se o valor numrico total deelementos de forma simplificada, atravs da incluso de K (kilo), M (mega), G (giga) ou T (tera).

    Volatilidade - memrias podem ser do tipo voltil ou no voltil. Uma memria no voltil a queretm a informao armazenada quando a energia eltrica desligada. Memria voltil aquela que perdea informao armazenada quando a energia eltrica desaparece (interrupo de alimentao eltrica oudesligamento da chave ON/OFF do equipamento).

    Custo - o custo de fabricao de uma memria bastante variado em funo de diversos fatores,entre os quais se pode mencionar principalmente a tecnologia de fabricao, que redunda em maior oumenor tempo de acesso, ciclo de memria, quantidade de bits em certo espao fsico e outros. Uma boaunidade de medida de custo o preo por byte armazenado, em vez do custo total da memria em si. Isso

    porque, devido s diferentes capacidades, seria irreal considerar, para comparao, o custo pelo preo damemria em si, naturalmente diferente, e no da unidade de armazenamento (o byte), igual para todos ostipos.

    2.7Proteo de hardware

    Em relao a proteo de hardware, tem-se os seguintes focos: Operao em dois modos (dual-mode operation); Proteo de E/S; Proteo de memria; Proteo da CPU;

  • 7/22/2019 PDF Sistema So Pe Racionais

    17/70

    Introduo aos Sistemas Operacionais ISO Tcnico em Informtica - IFSP - Salto

    13

    2.7.1 Operao em dois modos

    O compartilhamento de recursos de sistema requer que o sistema operacional garanta que um programaincorreto no possa causar danos execuo de outros programas. O hardware deve suportar adiferenciao entre pelo menos dois modos de operao:

    1)Modo usurio: quando a execuo est sendo feita em nome de um usurio;

    2)Modo monitor (privilegiado): tambm conhecido como modo supervisor ou modo de sistema;ativado quando da execuo do prprio sistema operacional.O hardwareutiliza um bit(mode bit) que indica qual o modo corrente: monitor (0) ou usurio (1).

    Quando uma interrupo ou falha ocorre o hardwarepassa para o modo monitor.

    Moni

    torUser

    Interrupo / falha

    set user mode

    Figura 12 - Operaes de dois modos

    As instrues privilegiadas podem ser executadas somente no modo monitor. Dessa forma segarante que somente o sistema operacional pode execut-las; ou seja, um usurio no poder alterar osistema operacional acidentalmente ou propositalmente.

    2.7.2 Operao de E/S

    Todas as instrues de E/S so instrues privilegiadas (s podem ser executadas no modomonitor). Deve-se garantir que um programa de usurio nunca poder ganhar controle do computador emmodo monitor (por exemplo, um programa de usurio que durante a sua execuo armazena um novoendereo no vetor de interrupes).

    2.7.3 Proteo de Memria

    Deve-se ter proteo de memria pelo menos para o vetor de interrupes e as rotinas detratamento de interrupes. A fim de que se tenha proteo de memria, deve-se ter dois registradoresextras que determinam os limites de espao de endereamento da memria que um programa podeacessar:

    base register: retm o menor endereo fsico legal de memria; limit register: contm o tamanho do espao acessvel.

    A memria fora da faixa estabelecida protegida.

  • 7/22/2019 PDF Sistema So Pe Racionais

    18/70

    Introduo aos Sistemas Operacionais ISO Tcnico em Informtica - IFSP - Salto

    14

    Figura 13 - A memriaQuando est executando no modo monitor, o sistema operacional tem acesso irrestrito a todo o

    espao de endereamento. As instrues de carga dos registradores base e limit so instrues

    privilegiadas. O hardwarede proteo atua conforme apresentado na Figura 14:

    Figura 14 -A proteo da memria

    2.7 Proteo de CPU

    Timer: interrompe o computador aps um perodo especificado de tempo. O timer decrementado atodo tickde relgio; quando alcana o valor zero (0), uma interrupo ocorre; O timer comumente utilizado para implementar time sharing; O timer tambm utilizado para calcular o tempo corrente; A instruo de loaddo timer privilegiada.

    2.8Exerccios

    1.Qual a funo dos controladores de dispositivos? Por que eles possuem um buffer local?2.O que uma interrupo?3.Explique o grfico abaixo (Linha do Tempo de uma Interrupo para um nico Processo Gerando

    Sadas)4.Um programa de usurio pode alterar a rotina de tratamento de uma interrupo?

  • 7/22/2019 PDF Sistema So Pe Racionais

    19/70

    Introduo aos Sistemas Operacionais ISO Tcnico em Informtica - IFSP - Salto

    15

    5.O grfico abaixo apresenta interrupes de I/O sncrona/assncrona, em quais situaes utilizadouma ou outra? Justifique sua resposta.

    6.O que DMA? Quando utilizado?7. Compare os dispositivos de armazenamento quanto a custo, velocidade e quantidade de

    informaes armazenadas.8. Como funciona a proteo de hardware para acesso memria.9. Se o sistema de I/O for lento, qual a conseqncia que isto acarretar para as outras aplicaes?

  • 7/22/2019 PDF Sistema So Pe Racionais

    20/70

    Introduo aos Sistemas Operacionais ISO Tcnico em Informtica - IFSP - Salto

    16

    3 ESTRUTURAS DOS SISTEMAS OPERACIONAIS

    Os sistemas operacionais variam internamente em sua constituio, sendo organizados em muitas linhas

    diferentes. O projeto de um novo sistema operacional uma tarefa importante. Portanto, fundamental que osobjetivos do sistema sejam bem definidos antes do incio do projeto,

    3.1Componentes dos Sistemas Operacionais

    possvel criar um sistema to grande e complexo quanto um sistema operacional simplesmentedividindo-o em partes menores. Cada uma dessas partes deve ser uma poro bem delineada do sistema, comentradas, sadas e funes cuidadosamente definidas. Obviamente, nem todos os sistemas tm a mesmaestrutura. A seguir so descritos os componentes gerais dos sistemas operacionais.

    3.1.1 Gerncia de processos

    Um processo um programa em execuo. Um processo precisa de certos recursos, incluindo tempo deCPU, memria, arquivos, dispositivos de E/S, para realizar suas tarefas.O SO responsvel pelas seguintes atividades com relao a gerncia de processos:

    - Criao e eliminao de Processos.- Suspenso e retomada de processos.

    Fornecimento de mecanismos para:- Sincronizao de processo- Comunicao de processo

    3.1.2 Gerncia de memria principal

    Memria um grande arrayde bytes, cada um com o seu endereo. um depsito de acesso rpido dedados compartilhado pela CPU e E/S. um dispositivo de armazenamento voltil. O SO responsvel pelasseguintes atividades com relao a gerncia de memria:

    Manter informaes de que partes da memria esto em uso e por quem.Decidir que processos carregar quando espaos de memria esto disponveis.Alocar e liberar espao de memria quando necessrio.

    3.1.3 Gerncia de arquivos

    Um arquivo uma coleo de informaes relacionadas definidas pelo seu criador. Arquivosrepresentam programas e dados. O SO responsvel pelas seguintes atividades com relao a gerncia dearquivos:

    Criao e deleo de arquivo.Criao e deleo de diretrio.Suporte de primitivas para manipular arquivos e diretrios.Mapeamento de arquivos na memria secundria.Backup de arquivos em meios de armazenagem estveis (no voltil).

    3.1.4 Gerncia do sistema de I/O

    Um dos objetivos do SO ocultar as peculiaridades de hardware especficos dos usurios. O sistema deE/S consiste de:

    Um sistema de memria intermediria (buffer, cachinge spooling)Uma interface geral para driversde dispositivosDriverspara os dispositivos de hardware especficos

  • 7/22/2019 PDF Sistema So Pe Racionais

    21/70

    Introduo aos Sistemas Operacionais ISO Tcnico em Informtica - IFSP - Salto

    17

    Um fato importante em relao ao sistema de que apenas o driver de dispositivo conhece aspeculiaridades do dispositivo ao qual foi atribudo.

    3.1.5 Gerncia de armazenamento secundrioMemria principal voltil e pequena, sistema deve fornecer memria secundria para funcionar como

    backup da principal. Maioria dos sistemas modernos usam discos. O SO responsvel pelas seguintesatividades com relao a gerncia de disco:

    Gerncia de espao livreAlocao de memriaEscalonamento de disco

    3.1.6 Proteo de sistema

    Proteo refere-se a um mecanismo para controle de acesso de programas, processos, ou usurios arecursos do sistema e usurio. O mecanismo de proteo deve:

    Distinguir entre uso autorizado e no autorizado.Especificar os controles a serem impostos.Fornecer um meio de forar os mesmos.

    3.1.7 Interpretador de comandos

    Um dos programas de sistema mais importantes para um sistema operacional o interpretador decomandos, que a interface entre o usurio e sistema operacional. Alguns sistemas operacionais incluem ointerpretador de comandos no kernel. Outros, tais como MS-DOS e o UNIX, tratam o ele como um programaespecial que fica executando quando umjob iniciado ou quando um usurio entra no sistema. Por exemplo,os comandos para as seguintes atividades podem ser dados ao SO no interpretador de comandos:

    criao de processos e gerncia

    tratamento de E/Sgerncia de memria secundriagerncia de memria principalacesso ao sistema de arquivosproteoredeO programa que l e interpreta comandos de controle chamado interpretador de linha de comando. No

    UNIX o shell. Sua funo capturar e executar o prximo comando de controle.

    3.2Estrutura dos Sistemas Operacionais

    A estrutura de um Sistema Operacional est relacionada ao desenho (design) interno do sistema. Osseguintes tipos de estrutura sero examinados nas prximas sees: Sistemas Monolticos, Sistemas emCamada e Sistemas Cliente-Servidor.

    3.2.1 Sistemas Monolticos

    Neste tipo de estrutura (Figura 15), o Sistema Operacional escrito como uma coleo de rotinas, ondecada uma pode chamar qualquer outra rotina, sempre que for necessrio. Portanto, o sistema estruturado deforma que as rotinas podem interagir livremente umas com as outras. Quando esta tcnica usada, cada rotinano sistema possui uma interface bem definida em termos de parmetros e resultados.

  • 7/22/2019 PDF Sistema So Pe Racionais

    22/70

    Introduo aos Sistemas Operacionais ISO Tcnico em Informtica - IFSP - Salto

    18

    Figura 15- Sistema Operacional monoltico

    Os servios do Sistema Operacional (gerenciamento de processos, gerenciamento de memria,gerenciamento do sistema de arquivos, ...) so implementados por meio de System Calls em diversosmdulos, executando em Modo Ncleo. Mesmo que as diversas rotinas que fornecem servios estejamseparadas umas das outras, a integrao de cdigo muito grande e difcil desenvolver o sistemacorretamente. Como todos os mdulos (rotinas) executam no mesmo espao de endereamento, um bugemum dos mdulos pode derrubar o sistema inteiro. Evidentemente que esta uma situao indesejvel.

    Para construir um cdigo executvel de um SO desta natureza, todas as rotinas (ou arquivos quepossuem as rotinas) so compiladas individualmente e unidas pelo linkerem um cdigo executvel nico. Talcdigo executa em Modo Ncleo. No existe ocultao de informao, o que tambm indesejvel, pois cadarotina visvel a qualquer outra. A Figura 16 mostra o processo de criao de um cdigo executvel de umSO Monoltico.

    Figura 16- Gerao de Cdigo Executvel de um SO Monoltico. As caixas com borda mais grossa indicamferramentas do ambiente de desenvolvimento.

    Embora possa parecer que no h quase estruturao em um SO Monoltico, existe um pouco deestruturao quando os servios do so solicitados por meio das System Calls.

    Como vantagem dos SOs Monolticos pode-se afirmar que, se a implementao do sistema estcompleta e confivel, aps um processo de desenvolvimento em que se supe que tcnicas consagradas de

  • 7/22/2019 PDF Sistema So Pe Racionais

    23/70

    Introduo aos Sistemas Operacionais ISO Tcnico em Informtica - IFSP - Salto

    19

    Engenharia de Software tenham sido aplicadas, a forte integrao interna dos componentes permite quedetalhes de baixo nvel do hardware sejam efetivamente explorados, fazendo com um bom SO Monolticoseja altamente eficiente. Entre os SOs Monolticos esto as verses tradicionais do UNIX, incluindo o Linux,

    e MS-DOS.

    3.2.2 Sistemas em Camada

    A idia por trs deste tipo de SO fazer a organizao por meio de hierarquia de camadas. O SO dividido em camadas sobrepostas, onde cada mdulo oferece um conjunto de funes que podem serutilizadas por outros mdulos. Mdulos de uma camada podem fazer referncia apenas a mdulos dascamadas inferiores. O primeiro SO construdo de acordo com esta concepo foi o THE, que foidesenvolvido na Technische Hogeschool Eindhoven na Holanda por E. W. Dijkstra (1968) e seus estudantes.O computador que executava o THE possua Memria Principal com capacidade de 32K palavras de 27 bitscada. A estrutura do THE pode ser vista na Figura 17.

    Figura 17 - Estrutura do Sistema Operacional THE.

    A camada 0 era responsvel pela alocao do processador entre os processos, chaveamento entreprocessos quando ocorria interrupes ou quando os temporizadores expiravam. Resumindo, a camada 0fornecia a multiprogramao bsica da CPU. Acima da camada 0, o sistema consistia de processos

    seqenciais que podiam ser programados sem se preocupar se havia mltiplos processos executando na CPU.A camada 1 realizava o gerenciamento de memria. Ela alocava espao para os processos na MemriaPrincipal do sistema e tambm em um Tambor (dispositivo de armazenamento magntico usado noscomputadores antigamente) de 512K palavras, usado para armazenar partes de processos (pginas) para asquais no havia espao na Memria Principal. Acima da camada 1, os processos no tinham que se preocuparse eles estavam na Memria Principal ou no Tambor; a camada 1 do SO era quem tratava deste tipo desituao, trazendo as partes do software para a Memria Principal sempre quando necessrio.

    A camada 2 manipulava a comunicao entre cada processo e o operador do console. Um consoleconsistia de um dispositivo de entrada (teclado) e um de sada (monitor ou impressora). A camada 3 eraresponsvel pelo gerenciamento dos dispositivos de E/S. Acima da camada 3, cada processo podia lidar comdispositivos de E/S abstratos, com propriedades mais agradveis, e no com os dispositivos reais em si. Na

    camada 4 havia os programas do usurio, e na camada 5 havia o processo do operador do sistema.O esquema de camadas do THE era, de fato, apenas um auxlio de desenho (design), pois todas as partesdo sistema eram ultimamente unidas em um nico cdigo executvel.

    3.2.3 Sistemas Cliente-Servidor

    Os Sistemas Operacionais com estrutura Cliente-Servidor so baseados em Microncleo (Microkernel).A idia neste tipo de sistema tornar o ncleo do SO o menor e o mais simples possvel (Microncleo),movendo cdigo para camadas superiores. A abordagem usual implementar a maior parte dos servios doSO em processos de usurio. Em tal implementao, o SO dividido em processos, sendo cada umresponsvel por oferecer um conjunto de servios tais como:

    servios de arquivo (servidor de arquivos);

  • 7/22/2019 PDF Sistema So Pe Racionais

    24/70

    Introduo aos Sistemas Operacionais ISO Tcnico em Informtica - IFSP - Salto

    20

    servios de criao de processos (servidor de processos);servios de memria (servidor de memria), etc...Para requisitar um servio, tal como ler um bloco de dados de um arquivo, um processo de usurio,

    conhecido como processo cliente, envia uma solicitao a um processo servidor (servidor de arquivos, nestecaso), que realiza o trabalho e envia a resposta de volta ao processo cliente. A Figura 18 mostra o modeloCliente-Servidor.

    Figura 18- Modelo Cliente-Servidor

    Observe na Figura 17 que diversas funes do SO esto agora sendo executadas no Modo Usurio, eno mais no Modo Ncleo, como era no caso dos Sistemas Monolticos. Somente o Microncleo do SOexecuta no Modo Ncleo. Ao Microncleo cabe, basicamente, permitir a comunicao entre processosclientes e servidores. Entre as vantagens apresentadas pelos Sistemas Cliente-Servidor esto o fato de, aodividir o SO em partes onde cada parte manipula um aspecto do sistema tais como servio de arquivos,servio de processo, servio de memria entre outros, cada parte se torna menor e mais fcil de gerenciar.Alm disto, devido ao fato de que todos os processos servidores executarem em Modo Usurio, eles no tmacesso direto ao hardware da mquina. Como conseqncia, se houver um bug no processo servidor dearquivos, este servio pode deixar de funcionar, mas isto usualmente no derrubar (crash) o sistema inteiro.Se esta mesma situao ocorresse em um SO Monoltico, e possvel que o sistema sofresse conseqncias

    mais srias do que em um Sistema Cliente-Servidor. Uma outra vantagem do modelo Cliente-Servidor a suaadaptabilidade para usar em sistemas com processamento paralelo/distribudo. Se um processo cliente secomunica com um servidor pelo envio de mensagens, o cliente no necessita saber se a mensagem tratadalocalmente na sua mquina, ou se ela foi enviada por meio de uma rede para um processo servidor executandoem uma mquina remota. Do ponto de vista do cliente, o mesmo comportamento ocorreu: um pedido foirequisitado e houve uma resposta como retorno. A Figura 19 mostra esta situao.

    Figura 19 - Uso do Modelo Cliente-Servidor em um Sistema Paralelo ou Distribudo

    Como exemplos de SO Cliente-Servidor pode-se citar o Minix, o Windows NT e o QNX.

  • 7/22/2019 PDF Sistema So Pe Racionais

    25/70

    Introduo aos Sistemas Operacionais ISO Tcnico em Informtica - IFSP - Salto

    21

    3.3Sistemas Monolticos versus Sistemas Cliente-Servidor

    Em uma primeira anlise, uma estrutura de SO Cliente-Servidor parece ser bem melhor do queum SO Monoltico. Porm, em termos prticos, a implementao de uma estrutura Cliente-Servidor bastante complicada devido a certas funes do SO exigirem acesso direto ao hardware, como

    operaes de E/S. Um ncleo Monoltico, por outro lado, possui uma complexidade menor, poistodo cdigo de controle do sistema reside em um espao de endereamento com as mesmascaractersticas (Modo Ncleo). Usualmente, SOs Monolticos tendem a ser mais fceis de desenharcorretamente e, portanto, podem crescer mais rapidamente do que SOs baseados em Microncleo.Existem casos de sucesso em ambas as estruturas. Um aspecto interessante sobre qual a melhorestrutura de SO foi a discusso entre Linus Torvalds, o criador do SO Linux, e Andrew Tanenbaum,um dos principais pesquisadores na rea de SOs e criador do SO Minix. Em 1992, quando o Linuxestava no seu incio, Tanenbaum decidiu escrever uma mensagem para o Newsgroup comp.os.minix,acusando justamente o Linux de ser um SO obsoleto. O ponto principal do argumento de Tanenbaumera justamente a estrutura Monoltica, considerada ultrapassada por ele, do Linux. Ele no concebiaque um SO, em meados dos anos 90, fosse concebido com um tipo de estrutura que remonta a

    dcada de 70 (poca em que o Unix foi desenvolvido; o Unix tambm um SO Monoltico). O SOdesenvolvido por Tanenbaum, Minix, apresenta estrutura baseada em Microncleo (Cliente-Servidor). Em sua primeira resposta Torvalds argumentou, entre vrios pontos, um aspecto nomuito tcnico: o Minix no era gratuito, enquanto o Linux sim. Do ponto de vista tcnico, Torvaldsconcordava que um sistema com Microncleo era mais agradvel. Porm, ele acusava o Minix deno realizar corretamente o papel do Microncelo, de forma que havia problemas no que se refere aparte de multitarefa no ncleo do sistema. A discusso continuou entre ambos sobre outros conceitosassociados a SOs. Para saber mais sobre este assunto, vide o linkhttp://www.dina.dk/~abraham/Linus_vs_Tanenbaum.html#liu. Vrios anos aps tal discusso, o quepode ser afirmado que SOs Monolticos ainda conseguem atrair a ateno de desenvolvedoresdevido a uma complexidade menor do que Sistemas Cliente-Servidor. Tanto que o Linux hoje uma

    realidade, sendo um SO bastante usado em servidores em empresas e ambientes acadmicos. OsSistemas Cliente-Servidor, porm, possuem casos de sucesso como o exemplo do sistema QNX,usado em sistemas de braos de robs nos nibus Espaciais.

    3.4Exerccios

    1.Quais so os componentes de um SO ?2.Qual a responsabilidade do SO em relao Gerncia de Processos ?3.O que um processo ?4.Qual a responsabilidade do SO em relao Gerncia de Memria ?

    5.Qual a responsabilidade do SO em relao Gerncia de Arquivos ?6.Qual a responsabilidade do SO em relao Gerncia de I/O ?7.Qual a responsabilidade do componente de Proteo de Sistema ?8.Se ocorrer uma diviso por zero, o que ocorre ? quem trata o erro ?9.Qual a vantagem/desvantagem de desenvolver um SO na linguagem C ?10.Qual a vantagem/desvantagem de desenvolver um SO na linguagemAssembly ?11. Compare as abordagens em camadas e microkernelno projeto do SO?

  • 7/22/2019 PDF Sistema So Pe Racionais

    26/70

    Introduo aos Sistemas Operacionais ISO Tcnico em Informtica - IFSP - Salto

    22

    4 PROCESSOS

    Fazendo uma retrospectiva das ltimas dcadas do mercado de computao de alto desempenho,High Performance Computing(HPC), verifica-se que o fator mais constante foi a evoluo. Este mercadotem sido marcado pela rpida mudana de fornecedores, arquiteturas, tecnologias e aplicaes. Apesardesta instabilidade, a evoluo do desempenho em larga escala tem-se mostrado um processo contnuo econstante. A convergncia de desempenho entre os microcomputadores e os supercomputadores com ums processador motivou o aparecimento do processamento paralelo, que vem ultrapassar alguns limites douniprocessamento, reduzir alguns custos (podem construir-se supercomputadores recorrendo a umconjunto de processadores normais), e tambm para facilitar a expansibilidade de um computador(bastando para isso adicionar mais processadores).

    4.1Fundamentos

    O conceito de processo , certamente, o conceito mais importante no estudo de sistemasoperacionais. Para facilitar o entendimento deste conceito, considere-se um computador funcionando em

    multiprogramao (isto , tendo vrios programas simultaneamente ativos na memria). Cada programaem execuo corresponde a um procedimento (seqncia de instrues) e um conjunto de dados (variveisutilizadas pelo programa). conveniente ter as instrues separadas dos dados, pois isso possibilita ocompartilhamento do cdigo do procedimento por vrios programas em execuo (neste caso diz-se que oprocedimento e reentranteou puro). Se cada programa em execuo possui uma pilha prpria, ento osdados podem ser criados (alocados) na prpria pilha do programa.

    Alm das instrues e dados, cada programa em execuo possui uma rea de memriacorrespondente para armazenar os valores dos registradores da UCP, quando o programa, por algummotivo, no estiver sendo executado. Essa rea de memria conhecida como bloco de controle deprocesso -BCP (ou bloco descritor, bloco de contexto, registro de estado, vetor de estado) e, alm dosvalores dos registradores da UCP, contm outras informaes. A Figura 20 mostra um BCP. Ele contmmuitas informaes associadas a um processo especfico:

    Estado do processo: o estado pode ser pronto, execuo ou bloqueado (espera).Contador do programa: o contador indica o endereo da prxima instruo a ser executada para

    esse processo.Registradores de UCP: os registradores variam em nmero e tipo, dependendo da arquitetura do

    computador. Incluem acumuladores, registradores, ponteiros de pilha e registradores de uso geral,alm de informaes de cdigo de condio. Juntamente com o contador do programa, essasinformaes de estado devem ser salvas quando ocorre uma interrupo, para permitir que oprocesso continue corretamente depois.

    Informaes de escalonamento de UCP: essas informaes incluem prioridade de processo,

    ponteiros para filas de escalonamento e quaisquer outros parmetros de escalonamento Informaes de gerncia de memria: essas informaes podem incluir dados como o valor dosregistradores de base e limite, as tabelas de pginas ou tabelas de segmentos, dependendo dosistema de memria usado pelo sistemas operacional

    Informaes de contabilizao: essas informaes incluem a quantidade de UCP e tempo realusados, limites de tempo, nmeros de contas, nmeros dejobsou processos, etc.

    Informaes de status de E/S: as informaes incluem a lista de dispositivos de E/S alocados paraeste processo, uma lista de arquivos abertos e outras informaes.

  • 7/22/2019 PDF Sistema So Pe Racionais

    27/70

    Introduo aos Sistemas Operacionais ISO Tcnico em Informtica - IFSP - Salto

    23

    Cada programa em execuo constitui um processo. Portanto, pode-se definir processo como sendo

    um programa em execuo, o qual constitudo por uma seqncia de instrues, um conjunto de dados eum bloco de controle de processo.

    Num ambiente de multiprogramao, quando existe apenas um processador na instalao, cadaprocesso executado um pouco de cada vez, de forma intercalada. O sistema operacional aloca a UCP umpouco para cada processo, em uma ordem que no previsvel, em geral, pois depende de fatores externosaos processos, que variam no tempo (carga do sistema, por exemplo). Um processo aps receber a UCP,s perde o controle da execuo quando ocorre uma interrupo ou quando ele executa um trap,requerendo algum servio do sistema operacional.

    As interrupes so transparentes aos processos, pois o efeito das mesmas apenas parar,temporariamente, a execuo de um processo, o qual continuar sendo executado, mais tarde, como se

    nada tivesse acontecido. Um trap, por outro lado, completamente diferente, pois bloqueia o processo atque o servio requerido pelo mesmo, ao sistema operacional, seja realizado.Deve ser observado que um processo uma entidade completamente definida por si s, cujas

    operaes (instrues executadas) se desenvolvem no tempo, em uma ordem que funo exclusiva dosvalores iniciais de suas variveis e dos dados lidos durante a execuo.

    Em um sistema com multiprocessamento (com mais de uma UCP), a nica diferena em relao aoambiente monoprocessado que o sistema operacional passa a dispor de mais processadores para alocaros processos, e neste caso tem-se realmente a execuo simultnea de vrios processos.

    Um sistema monoprocessado executando de forma intercalada N processos pode ser visto como sepossusse N processadores virtuais, um para cada processo em execuo. Cada processador virtual teria1/N da velocidade do processador real (desprezando-se o overhead existente na implementao da

    multiprogramao). O overheadde um sistema operacional o tempo que o mesmo perde na execuo desuas prprias funes, como por exemplo o tempo perdido para fazer a multiplexao da UCP entre osprocessos. o tempo durante o qual o sistema no est produzindo trabalho til para qualquer usurio.Quando a UCP altera a execuo para outro processo, o sistema salva o estado do processo antigo ecarregar o estado salvo do novo processo (Troca de contexto). A Figura 21 exemplifica a troca decontexto.

    ponteiroestado doprocesso

    Nmero do processo

    Contador de programa

    registradores

    limites de memria

    limites de arquivos abertos...

    Figura 20 Bloco de controle de processo (BCP)

  • 7/22/2019 PDF Sistema So Pe Racionais

    28/70

    Introduo aos Sistemas Operacionais ISO Tcnico em Informtica - IFSP - Salto

    24

    Tanto no paralelismo fsico (real, com vrias UCP) como no lgico (virtual, uma UCPcompartilhada), as velocidades relativas com que os processos acessaro dados compartilhados no podemser previstas.

    Quando os processos so denominados paralelos quando eles realmente (de maneira fsica) soexecutados simultaneamente e so denominados concorrentes quando so disputam para serem executadosno mesmo perodo de tempo em uma UCP. De acordo com o tipo de interao existente entre eles, podemser classificados como disjuntos (no interativos), quando operam sobre conjuntos distintos de dados, ouinterativos, quando tm acesso a dados comuns. Processos interativos podem ser competitivos, secompetirem por recursos, e/ou cooperantes, se trocarem informaes entre si.

    No caso de computaes realizadas por processos interativos, como a ordem das operaes sobre as

    variveis compartilhadas pode variar no tempo (pois as velocidades relativas dos processos dependem defatores externos que variam no tempo), o resultado da computao pode no depender somente dosvalores iniciais das variveis e dos dados de entrada. Quando o resultado de uma computao varia deacordo com as velocidades relativas dos processos diz-se que existe uma condio de corrida (racecondition). necessrio evitar condies de corrida para garantir que o resultado de uma computao novarie entre uma execuo e outra. Condies de corrida resultam em computaes paralelas errneas, poiscada vez que o programa for executado (com os mesmos dados) resultados diferentes podero ser obtidos.A programao de computaes paralelas exige mecanismos de sincronizao entre processos, e por isso asua programao e depurao so bem mais difceis do que em programas tradicionais.

    A maioria das linguagens de programao existentes no permite a programao de computaesparalelas, pois cada programa gera um nico processo durante a sua execuo. Tais linguagens so

    denominadas seqenciais. Linguagens que permitem a construo de programas que originam vriosprocessos para serem executados em paralelo so denominadas linguagens de programaoconcorrente. Exemplos deste tipo de linguagem so: Pascal Concorrente, Modula 2, Ada, Java e algumasextenses de linguagem C.

    A programao concorrente, alm de ser essencial ao projeto de sistemas operacionais, tambm temaplicaes na construo de diversos outros tipos de sistema importantes. Qualquer sistema que devaatender a requisies de servio que possam ocorrer de forma imprevisvel pode ser organizado,convenientemente, para permitir que cada tipo de servio seja realizado por um dos processos do sistema.Dessa maneira, diversos servios podero ser executados simultaneamente e a utilizao dos recursoscomputacionais ser, certamente, mais econmica e eficiente. Exemplos de aplicaes deste tipo sosistemas para controle on-line de informaes (contas bancrias, estoques, etc) e controle de processosexternos (processos industriais, processos qumicos, rotas de foguetes, etc).

    Os processos durante suas execues requerem operaes de E/S que so executadas em dispositivos

    Processo A Processo

    executandoSalva Processo A

    Carrega Processo B

    Salva Processo B

    Carrega Processo A

    executando

    executando

    Figura 21 Troca de contexto

  • 7/22/2019 PDF Sistema So Pe Racionais

    29/70

    Introduo aos Sistemas Operacionais ISO Tcnico em Informtica - IFSP - Salto

    25

    muito lentos que a UCP, pois os dispositivos perifricos possuem componentes mecnicos, que funcionama velocidades muito inferiores dos dispositivos eletrnicos que funcionam velocidade da luz.

    Durante o tempo em que um processo deve ficar esperando a realizao de uma operao de E/S -, aUCP pode ser entregue a outro processo. Dessa forma, a utilizao dos recursos ser mais completa e,portanto, mais econmica e mais eficiente. Se um processo passa a maior parte do tempo esperando pordispositivos de E/S, diz-se que o processo ligado a E/S (limitado por E/S ou I/O-bound). Se, aocontrrio, o processo gasta a maior parte do seu tempo usando a UCP ele dito ligado a CPU (limitadopor computao ou compute-bound ou UCP-bound). Obviamente, processos I/O-bound devem terprioridade sobre processos UCP-bound.

    Alm de uma melhor utilizao dos recursos, a multiprogramao permite que as requisies deservio dos usurios sejam atendidas com menores tempos de resposta. Por exemplo, na situao de um

    job pequeno e prioritrio ser submetido aps um job demorado j ter iniciado a execuo, amultiprogramao far com que o job pequeno seja executado em paralelo e termine muito antes dotrmino dojoblongo.

    Os sistemas operacionais acionam os dispositivos de E/S atravs de instrues do tipo Start I/O(Iniciar E/S). Se o dispositivo uma unidade de disco, por exemplo, a instruo faz com que um bloco de

    setores do disco seja lido para a memria principal. Quando o dispositivo termina a operao, ele mandaum sinal de interrupo para a UCP, indicando que est livre para realizar outra operao. Este sinal fazcom que o controle da execuo v para o sistema operacional, o qual pode acionar o dispositivo paraexecutar outra operao, antes de devolver a UCP para um processo de usurio.

    Durante suas execues os processos dos usurios, ocasionalmente, atravs de traps, fazemrequisies ao sistema operacional (para gravar um setor de disco, por exemplo). Recebendo a requisio,o sistema operacional bloqueia o processo (deixa de dar tempo de UCP a ele) at que a operao requeridaseja completada. Quando isto acontece o processo desbloqueado e volta a competir pela UCP com osdemais processos.

    Quando um processo est realmente usando a UCP, diz-se que o mesmo est no estado executando(running). Quando est esperando pelo trmino de um servio que requereu, diz-se que est no estado

    bloqueado (blocked). Quando o processo tem todas as condies para ser executado e s no est emexecuo porque a UCP est alocada para outro processo, diz-se que o mesmo est no estado pronto(ready). O sistema operacional mantm uma lista (fila) dos processos que esto prontos, a chamada listade processos prontos(ready listou ready queue). O diagrama da Figura 22 mostra como os estados deum processo podem mudar durante a execuo.

    interrupo(concluso do servio)

    trap

    interrupo bloqueado

    pronto

    executando

    escalonador

    Figura 22 - Estados sucessivos de um processo no sistema

    O componente do sistema operacional que, aps o atendimento de uma interrupo ou trap, escolheo prximo processo a ser executado denominado escalonadorde processos (scheduler) ou despachadorde processos (dispatcher).

    Em geral, um trap faz com que o processo fique bloqueado. Entretanto, em algumas ocasies

    especiais, quando o sistema operacional pode atender imediatamente a requisio de servio, o processopode ser novamente despachado, no ocorrendo o bloqueio.Quando umjob admitido no sistema, um processo correspondente criado e normalmente inserido

  • 7/22/2019 PDF Sistema So Pe Racionais

    30/70

    Introduo aos Sistemas Operacionais ISO Tcnico em Informtica - IFSP - Salto

    26

    no final da fila de prontos (ready list). O processo se move gradualmente para a cabea da fila de prontos,conforme os processos anteriores a ele forem sendo usados pela UCP.

    Quando o processo alcana a cabea da lista, e quando a UCP torna-se disponvel, o processo dado UCP e diz-se que foi feita uma transio do estado pronto para o estado executando. A transferncia daUCP para o primeiro processo da fila de prontos chamado de escalonamento (dispatching), e executadapelo escalonador. Este transio de estado pode ser ilustrada da seguinte forma:

    Escalone(nomedoprocesso): pronto execuoPara prevenir que um processo monopolize o sistema acidentalmente ou propositadamente, o sistema

    operacional tem um relgio interno (interrupting clock ou interval timer) que faz com que o processoexecute somente por um intervalo de tempo especfico ou quantum. Se o processo voluntariamente nolibera a UCP antes de expirar seu intervalo de tempo, o interrupting clockgera uma interrupo, dando aosistema operacional o controle novamente. O sistema operacional torna o processo corrente (execuo) empronto e torna o primeiro processo da fila de pronto em corrente. Estas transies de estado so indicadascomo:

    Tempoexpirou(nomedoprocesso): execuo prontoEscalone(nomedoprocesso): pronto execuo

    Se um processo corrente iniciar uma operao de E/S antes de expirar o seu quantum, o processocorrente voluntariamente libera a UCP (isto , ele se bloqueia, ficando pendente at completar a operaode E/S). Esta transio de estado :

    Bloqueia(nomedoprocesso): execuo bloqueadoQuando terminada a operao que fez com que o estado fique bloqueado, este passa para o estado

    pronto. A transio que faz tal operao definida como:Acorde(nomedoprocesso): bloqueado prontoDeste modo podemos definir quatro possveis estados de transio: Escalone(nomedoprocesso): pronto execuo Tempoexpirou(nomedoprocesso): execuo pronto Bloqueia(nomedoprocesso): execuo bloqueado

    Acorde(nomedoprocesso): bloqueado prontoNote que somente um estado de transio inicializado pelo prprio processo a transioBlock

    os outros trs estados de transio so inicializados por entidades externas ao processo.

    4.2O Ncleo do Sistema Operacional

    Todas as operaes envolvendo processos so controladas por uma poro do sistema operacionalchamada de ncleo,core, oukernel. O ncleo normalmente representa somente uma pequena poro docdigo que em geral tratado como sendo todo o sistema operacional, mas a parte de cdigo maisintensivamente utilizada. Por essa razo, o ncleo ordinariamente reside em armazenamento primrio

    (memria RAM) enquanto outras pores do sistema operacional so chamadas da memria secundriaquando necessrio.Uma das funes mais importantes includas no ncleo o processamento de interrupes. Em

    grandes sistemas multiusurio, uma constante rajada de interrupes direcionada ao processador.Respostas rpidas a essas interrupes so essenciais para manter os recursos do sistema bem utilizados, epara prover tempos de resposta aceitveis pelos usurios.

    O ncleo desabilita interrupes enquanto ele responde a uma interrupo; interrupes sonovamente habilitadas aps o processamento de uma interrupo estar completo. Com um fluxopermanente de interrupes, possvel que o ncleo mantenha interrupes desabilitadas por uma grandeporo de tempo; isto pode resultar em respostas insatisfatrias para interrupes. Entretanto, ncleos soprojetados para fazer o mnimo processamento possvel para cada interrupo, e ento passar o restante

    do processamento de uma interrupo para um processo apropriado do sistema que pode terminar de trat-las enquanto o ncleo continua apto a receber novas interrupes. Isto significa que as interrupes podem

  • 7/22/2019 PDF Sistema So Pe Racionais

    31/70

    Introduo aos Sistemas Operacionais ISO Tcnico em Informtica - IFSP - Salto

    27

    ficar habilitadas durante uma porcentagem muito maior do tempo, e o sistema torna-se mais eficiente emresponder a requisies das aplicaes dos usurios.

    Um sistema operacional normalmente possui cdigo para executar as seguintes funes: Manipulao de interrupes; Criao e destruio de processos;

    Troca de contexto de processos; Suspenso e reanimao de processos; Sincronizao de processos; Intercomunicao entre processos; Manipulao de BCPs; Suporte a atividades de E/S; Suporte alocao e desalocao de armazenamento; Suporte ao sistema de arquivos; Suporte a um mecanismo de chamada/retorno de procedimentos; Suporte a certas funes do sistema de contabilizao.

    4.3Escalonamento de Processos

    Os processos podem estar executando, bloqueados, ou prontos para serem executados. Quando umou mais processos esto prontospara serem executados, o sistema operacional deve decidir qual deles vaiser executado primeiro. A parte do sistema operacional responsvel por essa deciso chamadaescalonador, e o algoritmo usado para tal chamado de algoritmo de escalonamento. Os algoritmos deescalonamento dos primeiros sistemas, baseados em cartes perfurados e unidades de fita, era simples: elesimplesmente deveria executar o prximojobna fita ou leitora de cartes. Em sistemas multi-usurio e detempo compartilhado, muitas vezes combinados com jobs batch em background, o algoritmo deescalonamento mais complexo.

    Antes de vermos os algoritmos de escalonamento, vejamos os critrios com os quais eles devem sepreocupar:

    1. Justia: fazer com que cada processo ganhe seu tempo justo de UCP;2. Eficincia: manter a UCP ocupada 100% do tempo (se houver demanda);3. Tempo de Reposta: minimizar o tempo de resposta para os usurios interativos;4. Tempo de Turnaround: minimizar o tempo que usurios batchdevem esperar pelo resultado;5. Throughput: maximizar o nmero dejobsprocessados por unidade de tempo.

    Um pouco de anlise mostrar que alguns desses objetivos so contraditrios. Para minimizar otempo de resposta para usurios interativos, o escalonador no deveria rodar nenhum job batch (excetoentre 3 e 6 da manh, quando os usurios interativos esto dormindo). Usurios batchno gostaro destealgoritmo, porque ele viola a regra 4.

    Uma complicao que os escalonadores devem levar em considerao que cada processo nico eimprevisvel. Alguns passam a maior parte do tempo esperando por E/S de arquivos, enquanto outrosutilizam a UCP por horas se tiverem chance. Quando o escalonador inicia a execuo de um processo, elenunca sabe com certeza quanto tempo vai demorar at que o processo bloqueie, seja por E/S, seja em umsemforo, seja por outro motivo. Para que um processo no execute tempo demais, praticamente todos oscomputadores possuem um mecanismo de relgio (clock) que causa uma interrupo periodicamente.Freqncias de 50 ou 60 Hz so comuns, mas muitas mquinas permitem que o sistema operacionalespecifique esta freqncia. A cada interrupo de relgio, o sistema operacional assume o controle edecide se o processo pode continuar executando ou se j ganhou tempo de UCP suficiente. Neste ltimocaso, o processo suspenso e a UCP dada a outro processo.

    A estratgia de permitir ao SO temporariamente suspender a execuo de processos que estejamquerendo executar chamada de escalonamento preemptivo, em contraste com o mtodo execute at o

  • 7/22/2019 PDF Sistema So Pe Racionais

    32/70

    Introduo aos Sistemas Operacionais ISO Tcnico em Informtica - IFSP - Salto

    28

    fimdos antigos sistemas batch. Como vimos at agora, em sistemas preemptivos um processo pode perdera UCP a qualquer momento para outro processo, sem qualquer aviso. Isto gera condies de corrida e anecessidade de semforos, contadores de eventos, monitores, ou algum outro mtodo de comunicaointerprocessos. Por outro lado, uma poltica de deixar um processo rodar enquanto desejar pode fazer comque um processo que demore uma semana para executar deixe o computador ocupado para os outrosusurios durante este tempo.

    4.3.1 Escalonamento FCFS ou FIFO

    Talvez a disciplina de escalonamento mais simples que exista seja a First-In-First-Out - FIFO (oprimeiro a entrar o primeiro a sair). Vrios autores referem-se a este algoritmo como FCFS - First-Come-First-Served(o primeiro a chegar o primeiro a ser servido). Processos so escalonados de acordocom sua ordem de chegada na fila de processos prontos do sistema. Uma vez que um processo ganhe aUCP, ele roda at terminar. FIFO uma abordagem no preemptiva. Ela justa no sentido de que todos os

    jobs so executados, e na ordem de chegada, mas injusta no sentido que grandes jobs podem fazerpequenos jobs esperarem, e jobs sem grande importncia fazem jobs importantes esperar. FIFO ofereceuma menor varincia nos tempos de resposta e portanto mais previsvel do que outros esquemas. Ele no

    til no escalonamento de usurios interativos porque no pode garantir bons tempos de resposta. Suanatureza essencialmente a de um sistema batch.

    4.3.2 Escalonamento Round Robin

    Um dos mais antigos, simples, justos, e mais largamente utilizados dos algoritmos de escalonamento o round robin. Cada processo recebe um intervalo de tempo, chamado quantum, durante o qual elepode executar. Se o processo ainda estiver executando ao final do quantum, a UCP dada a outroprocesso. Se um processo bloqueou ou terminou antes do final do quantum, a troca de UCP para outroprocesso obviamente feita assim que o processo bloqueia ou termina. Round Robin fcil deimplementar. Tudo que o escalonador tem a fazer manter uma lista de processos runnable(que desejam

    executar), conforme a Figura 23(a). Quando o quantumde um processo acaba, ele colocado no final dalista, conforme a Figura 23(b).

    AGDFB

    Processocorrente

    (a)

    Prximo processo

    BAGDF

    Processocorrente

    (b)

    Prximo processo

    Figura 23 - Escalonamento Round Robin.

    (a) Lista de processos a executar.(b) Lista de processos a executar depois de terminado o quantumde B

    Assim, o algoritmo round robin semelhante ao FIFO, mas com a diferena de que preemptivo: osprocessos no executam at o seu final, mas sim durante um certo tempo, um por vez. Executandosucessivamente em intervalos de tempo ojobacaba por terminar sua execuo em algum momento.

    O nico aspecto interessante sobre o algoritmo round robin a durao do quantum. Mudar de umprocesso para outro requer um certo tempo para a administrao salvar e carregar registradores e mapasde memria, atualizar tabelas e listas do Sistema Operacional, etc. Suponha esta troca de contextodure 5ms. Suponha tambm que o quantumest ajustado em 20 ms. Com esses parmetros, aps fazer 20 ms detrabalho til, a UCP ter que gastar 5 ms com troca de contexto. Assim, 20% do tempo de UCP gasto

    com o overheadadministrativo.Para melhorar a eficincia da UCP, poderamos ajustar o quantumpara digamos, 500 ms. Agora o

  • 7/22/2019 PDF Sistema So Pe Racionais

    33/70

    Introduo aos Sistemas Operacionais ISO Tcnico em Informtica - IFSP - Salto

    29

    tempo gasto com troca de contexto menos do que 1 %. Mas considere o que aconteceria se dez usuriosapertassem a tecla exatamente ao mesmo tempo, disparando