Você está na página 1de 46

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

Aula de : Sistemas Operativos


Docente: Celso Sousa

Autores: Josimar Costa n 5320 ESI 2 ano Lenine Santos n 5087 ESI 2 ano Rony Soares n 3344 ESI 2 ano

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

1. Histrico
Antes da dcada de 50, os computadores eram muito difceis de serem programados. Era necessrio conhecer totalmente sua arquitetura, e tal operao era efetuada em painis com cerca de 6.000 conectores, em linguagem de mquina. Nesta fase os computadores no possuam ainda dispositivos para interagir com o usurio, como teclados e monitores. Na dcada de 50, j com a utilizao de transistores, sucedeu-se um grande avano tecnolgico, melhorando a velocidade dos processadores e a capacidade dos meios de armazenamento, em especial a memria e os discos magnticos. Por volta de 1953 foi introduzido o primeiro sistema operacional, um programa de controle que permitia uma interao, mesmo que limitada, entre o operador e a mquina, otimizando a execuo das tarefas. Em 1959 foi criada uma verso de sistema operacional que j implementava conceitos de memria virtual, conceito este largamente utilizado nos sistemas atuais. Na dcada de 60, a partir do surgimento dos circuitos integrados, foi possvel difundir u uso de sistemas computacionais em empresas, com diminuio de custos e tamanho dos equipamentos. Alm disso, esta dcada presenciou inmeras inovaes na rea de sistemas operacionais, presentes at hoje, como os ambientes de multitarefa, multiprogramao, multiprocessamento e time-sharing, tendo o desenvolvimento destas tcnicas avanado at o meado da dcada de 70, onde tambm foram implementadas as tecnologias baseadas em arquitetura VLSI (chips), as primeiras redes de computadores, e o desenvolvimento de diversas linguagens de programao de alto nvel. A dcada de 80 foi marcada pela criao dos microcomputadores, baseados em microprocessadores de uso pessoal. Liderados pela IBM, diversos fabricantes seguiram por essa linha, porm alguns deles no abandonando a fabricao dos computadores de grande porte, como foi o caso da prpria IBM. Nota-se que, a partir do meado da dcada de 80, acontece uma diviso de guas, com a indstria passando a produzir equipamentos de grande porte e muitos modelos de microcomputadores, que tambm precisavam de sistemas operacionais bastante evoludos. Foram, ento, utilizadas as tcnicas modernas j existentes nos ambientes de grande porte na implementao de sistemas operacionais para os microcomputadores, com verses diversas, todas inicialmente monousurio/monotarefa (devido baixa capacidade de armazenamento dos micros, naquela poca). Com o avano da tecnologia, os micros ganharam discos rgidos e outros perifricos, possibilitando a criao de sistemas operacionais mais evoludos nesta categoria de computadores, quando surgiram os sistemas monousurio/multitarefa, que executam at hoje.

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

Cronologia Grande porte (mainframes) 1990 1950 1960 1970 1980

1 Sistema Operacional Monoprogramvel Monotarefa

Sistemas Multitarefa

Sistemas Multiprogramveis Multitarefa

Introduzido o conceito de Memria Virtual

Microcomputadores

2. Tipos de Sistemas Operacionais


Tipos de Sistemas Operacionais

Sistemas Monoprogramveis/ Monotarefa 2.1

Sistemas Multiprogramveis/ Multitarefa

Sistemas Com Mltiplos Processadores

Sistemas Monoprogramveis/Monotarefa

Os primeiros sistemas operacionais eram voltados tipicamente para a execuo de um nico programa. Qualquer outra aplicao, para ser executada, deveria aguardar o trmino do programa corrente. Neste tipo de sistema, o processador, a memria e os perifricos permanecem exclusivamente dedicados execuo de um nico programa. Os sistemas monoprogramveis esto diretamente ligados ao surgimento, na dcada de 50/60, dos primeiros computadores. Embora os sistemas operacionais j tivessem evoludo com as tecnologias de multitarefa e multiprogramveis, os sistemas monoprogramveis voltaram a ser utilizados na plataforma de microcomputadores pessoais e estaes de trabalho devido baixa capacidade de armazenamento destas mquinas, na poca.

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

Era muito clara a desvantagem deste tipo de sistema, no que diz respeito limitao de tarefas (uma de cada vez), o que provocava um grande desperdcio de recursos de hardware.

CPU

_______ _______ _______ _______ _______ Programa/Tarefa

Memria Principal

Dispositivos E/S

Sistema Monoprogramvel/Monotarefa

Comparados a outros sistemas, os monoprogramveis so de simples implementao, no existindo muita preocupao com problemas decorrentes do compartilhamento de recursos como memria, processador e dispositivos de E/S. 2.2 Sistemas Multiprogramveis/Multitarefa

Constituindo-se uma evoluo dos sistemas monoprogramveis, neste tipo de sistema os recursos computacionais so compartilhados entre os diversos usurios e aplicaes: enquanto um programa espera por um evento, outros programas podem estar processando neste mesmo intervalo de tempo. Neste caso, podemos observar o compartilhamento da memria e do processador. O sistema operacional se incumbe de gerenciar o acesso concorrente aos seus diversos recursos, como processador, memria e perifricos, de forma ordenada e protegida, entre os diversos programas. As vantagens do uso deste tipo de sistema so a reduo do tempo de resposta das aplicaes, alm dos custos reduzidos devido ao compartilhamento dos recursos do sistema entre as diferentes aplicaes. Apesar de mais eficientes que os monoprogramveis, os sistemas multiprogramveis so de implementao muito mais complexa.

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

_______ _______ _______ _______ _______

CPU

_______ _______ _______ _______ _______

Programa/Tarefa
Memria Principal
Dispositivos E/S

Programa/Tarefa

_______ _______ _______ _______ _______

Programa/Tarefa

_______ _______ _______ _______ _______

Sistema Multiprogramvel/Multitarefa

Programa/Tarefa

Os sistemas multiprogramveis/multitarefa podem ser classificados de acordo com a forma com que suas aplicaes so gerenciadas, podendo ser divididos em sistemas batch, de tempo compartilhado e de tempo real, de acordo com a figura abaixo. Sistemas Multiprogramveis/ Multitarefa

Sistemas BATCH

Sistemas de Tempo Compartilhado Sistemas BATCH

Sistemas de Tempo Real

2.2.1

Foram os primeiros sistemas multiprogramveis a serem implementados na dcada de 60. Nesta modalidade, os programas eram submetidos para execuo atravs de cartes perfurados e armazenados em disco ou fita, para posterior execuo. Vem da o nome batch (lote de cartes). O processamento em batch tem como caracterstica no exigir interao do usurio com o sistema ou com a aplicao. Todas as entradas ou sadas so implementadas por meio de algum tipo de memria secundria, geralmente disco ou fita. Aplicaes deste tipo eram utilizadas em clculo numrico, compilaes, back-ups, etc.

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

Estes sistemas, se bem projetados, podem ser bastante eficientes devido melhor utilizao do processador, mas podem oferecer tempos de resposta bastante longos. Atualmente, os sistemas operacionais simulam este tipo de processamento, no havendo sistemas dedicados a este tipo de execuo. 2.2.2 Sistemas de Tempo Compartilhado

Tambm chamados sistemas de time-sharing, permitem que diversos programas sejam executados a partir da diviso de tempo do processador em pequenos intervalos, denominados fatia de tempo (ou time-slice). Caso a fatia de tempo no seja suficiente para a concluso do programa, este interrompido pelo sistema operacional e substitudo no processador por outro, enquanto aguarda nova fatia de tempo. Neste tipo de processamento, cada usurio tem a impresso de que a mquina est dedicada ao seu programa, como se ele fosse o nico usurio a se utilizar do sistema. Geralmente permitem interao do usurio com a aplicao atravs de terminais compostos por monitor, teclado e mouse. Estes sistemas possuem uma linguagem de controle que permite ao usurio interagir com o sistema operacional atravs de comandos. Assim, possvel verificar arquivos armazenados em disco ou cancelar execuo de programas. Normalmente, o sistema responde em apenas alguns segundos maioria destes comandos, o que se levou a cham-los tambm de sistemas on-line. A maioria das aplicaes comerciais atualmente processada em ambiente de tempo compartilhado, que oferece tempos baixos de respostas a seus usurios e menores custos, em funo do alto grau de compartilhamento dos diversos recursos do sistema. 2.2.3 Sistemas de Tempo Real

Este tipo de sistema implementado de forma bastante semelhante ao de tempo compartilhado. O que caracteriza a diferena entre eles o tempo exigido no processamento das aplicaes. Enquanto nos sistemas de tempo compartilhado o tempo de processamento pode variar sem comprometer as aplicaes em execuo, nos sistemas de tempo real os tempos de execuo devem estar dentro de limites rgidos, que devem ser obedecidos, caso contrrio podero ocorrer problemas irreparveis. No sistema de tempo real no existe a idia de fatia de tempo como nos sistemas de tempo compartilhado. Um programa ocupa o processador o tempo que for necessrio ou at que aparea um outro com um nvel de prioridade maior. Esta prioridade de execuo definida pela prpria aplicao e no pelo sistema operacional, como nos sistemas de tempo compartilhado.

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

Estes sistemas so utilizados em aplicaes de controle de processos, como monitoramento de refinarias de petrleo, controle de trfego areo, de usinas, ou em qualquer aplicao onde o tempo de processamento fator fundamental. 2.3 Sistemas com Mltiplos Processadores

Os sistemas com mltiplos processadores caracterizam-se por possuir duas ou mais CPUs interligadas e trabalhando em conjunto. A vantagem deste tipo de sistema permitir que vrios programas sejam executados ao mesmo tempo ou que um mesmo programa seja subdividido em vrias partes para serem executadas simultaneamente em mais de um processador. Esta tcnica permitiu a criao de sistemas computacionais voltados para processamento cientfico, prospeco de petrleo, simulaes, processamento de imagens e CAD. Um fator chave no desenvolvimento dos sistemas multiprocessados a forma de comunicao entre as CPUs e o grau de compartilhamento da memria e dos dispositivos de E/S. Em funo destes fatores, podemos classificar os sistemas multiprocessados de acordo com a figura a seguir:

Sistemas com Mltiplos Processadores

Sistemas Fortemente Acoplados

Sistemas Fracamente Acoplados

Simtricos

Assimtricos

Redes

Distribudos

Tipos de Sistemas com Mltiplos Processadores

Na figura podemos perceber a diviso dos sistemas multiprocessados em duas categorias iniciais: sistemas fortemente acoplados e fracamente acoplados. A grande diferena entre estas duas categorias que nos sistemas fortemente acoplados existe apenas uma memria

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

a ser compartilhada pelos processadores do conjunto, enquanto que nos fracamente acoplados cada sistema tem sua prpria memria individual. A taxa de transferncia entre processadores e memria em sistemas fortemente acoplados muito maior que nos fracamente acoplados. Nos sistemas fortemente acoplados a memria principal e os dispositivos de E/S so gerenciados por um nico sistema operacional. Quando todos os processadores na arquitetura so iguais, diz-se que o sistema simtrico. No entanto, quando os processadores so diferentes, d-se arquitetura a denominao assimtrica. Nos sistemas fracamente acoplados, como os processadores esto em arquiteturas diferentes, somente interligados por cabos de interconexo, cada CPU constitui uma mquina independente, com memria prpria, dispositivos de E/S e sistemas operacionais independentes. Nesta subdiviso, temos como exemplo as redes e os sistemas distribudos. No ambiente de rede, existem dois ou mais sistemas independentes (hosts), interligados por linhas telefnicas, que oferecem algum tipo de servio aos demais, permitindo que um host compartilhe seus recursos, como impressora e diretrios, com os outros hosts da rede. Enquanto nos sistemas em rede os usurios tm conhecimento dos hosts e seus servios, nos sistemas distribudos os sistema operacional esconde os detalhes dos hosts individuais e passa a trat-los como um conjunto nico, como se fosse um sistema s, fortemente acoplado. Os sistemas distribudos permitem, por exemplo, que uma aplicao seja dividida em partes e que cada parte seja executada por hosts diferentes na rede. Para os usurios e suas aplicaes como se no existisse a rede, mas um nico sistema centralizado. Outros exemplos de sistemas distribudos so os clusters. Em um cluster podem existir dois ou mais servidores ligados por algum tipo de conexo de alto desempenho, e o usurio no conhece os nomes dos membros do cluster e nem quantos so. Quando necessrio algum servio, basta solicitar ao cluster para obt-lo, sem se preocupar com quem vai dispor e oferecer tal servio. Clusters so muito utilizados em servidores de bancos de dados e Web.

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

3. Sistemas Multiprogramveis
Um Sistema Operacional pode ser visto como um conjunto de rotinas que executam concorrentemente de forma ordenada. A possibilidade de um processador executar instrues em paralelo com operaes de entrada e sada permite que diversas tarefas sejam executadas concorrentemente. este conceito de concorrncia o princpio fundamental para o projeto e implementao de sistemas multiprogramveis. Os sistemas multiprogramveis surgiram a partir das limitaes dos sistemas monoprogramveis onde os recursos computacionais como processador, memria e dispositivos de E/S eram utilizados de maneira muito pouco eficiente, limitando seu desempenho, com muitos destes recursos permanecendo ociosos por longos perodos de tempo. Nos sistemas monoprogramveis somente um programa pode estar em execuo de cada vez, permanecendo o processador dedicado exclusivamente a uma tarefa, ficando ocioso enquanto uma operao de leitura em disco realizada. O tempo de espera relativamente longo, j que as operaes de E/S so muito lentas se comparadas velocidade de operao do processador. Outro aspecto a ser considerado a sub-utilizao da memria principal, onde um programa nem sempre ocupa todo o espao disponvel, ficando o restante inutilizado. Nos sistemas multiprogramveis vrios programas podem ser alocados na memria, concorrendo pelo uso do processador. Dessa forma, quando um programa solicita uma operao de E/S, outros programas podero utilizar o processador, deixando a CPU menos ociosa e tornando o uso da memria mais eficiente, pois existem vrios residentes e se revezando na utilizao do processador. A utilizao concorrente da CPU deve ser feita de maneira que, quando um programa perde o uso do processador e depois retorna para continuar sua execuo, seu estado deve ser idntico ao do momento em que foi interrompido. O programa dever continuar sua execuo exatamente na instruo seguinte quela onde havia parado, aparentando ao usurio que nada aconteceu. Em sistemas de tempo compartilhado existe a impresso de que o computador est inteiramente dedicado ao usurio, ficando esse mecanismo totalmente transparente aos usurios. Quanto ao uso dos perifricos, comum nos sistemas monoprogramveis comum termos, por exemplo, impressoras paradas por um grande perodo de tempo e discos com acesso restrito a um nico usurio. Esses problemas so minimizados nos sistemas multiprogramveis, onde possvel compartilhar os dispositivos de E/S, como impressoras e discos, entre diversos usurios e aplicativos. 3.1 Interrupo e Excecuo

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

Durante a execuo de um programa, alguns eventos inesperados podem ocorrer, ocasionando um desvio forado no seu fluxo normal de execuo. Esses eventos so conhecidos como interrupo ou exceo, e podem ser resultado de sinalizaes de algum dispositivo de hardware externo ao ambiente memria/processador. A diferena entre interrupo e exceo dada pelo tipo de evento ocorrido, embora alguns autores e fabricantes no faam tal distino. A interrupo o mecanismo que permitiu a implementao da concorrncia nos computadores, sendo o fundamento bsico dos sistemas multiprogramveis/multitarefa. Uma interrupo sempre gerada por um evento externo ao programa e, sendo assim, independe da instruo que est sendo executada. Um exemplo de interrupo quando um dispositivo avisa ao processador que alguma operao de E/S est completa. Neste caso, o processador deve interromper o programa para tratar o trmino da operao. Ao trmino de cada instruo a Unidade de Controle (situada dentro do processador) verifica a ocorrncia de algum tipo de interrupo. Desta forma, o programa em execuo interrompido e seu controle desviado para uma rotina do sistema responsvel por tratar o evento ocorrido, denominada rotina de tratamento de interrupo. Para que o programa interrompido possa retornar posteriormente sua execuo necessrio que, no momento da interrupo, um certo conjunto de informaes sobre sua execuo seja preservado. Essas informaes consistem basicamente no contedo dos registradores internos da CPU, que devero ser restaurados para a continuao do programa. Programa Salva Contexto Identifica a origem Interrupo Trata a Interrupo Restaura Contexto
Mecanismo de interrupo/exceo

Rotina de Tratamento

Para cada tipo de interrupo existe uma rotina de tratamento associada, para onde o fluxo do programa desviado. A identificao do tipo de evento ocorrido fundamental para determinar o endereo da rotina adequada ao tratamento da interrupo.

10

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

As interrupes podem ser geradas: - Pelo programa do usurio (entrada de dados pela console ou teclado) - Pelo hardware (operaes de E/S) - Pelo sistema operacional (ao trmino da fatia de tempo do processador destinada ao programa) As interrupes sempre so tratadas pelo Sistema Operacional. A exceo um evento semelhante interrupo, pois tambm de fato interrompe um programa. A principal diferena que a exceo o resultado da execuo de uma instruo dentro do prprio programa, como a diviso por zero ou a ocorrncia de um overflow (estouro de capacidade de um campo) numa operao aritmtica. Na maioria das vezes, a exceo provoca um erro fatal no sistema, causando o trmino anormal do programa. Isto se deve ao fato de que a exceo melhor tratada dentro do prprio programa, com instrues escritas pelo programador. 3.2 Buffer

A tcnica de buffering consiste nua utilizao de uma rea em memria principal, denominada buffer, criada e mantida pelo Sistema Operacional, com a finalidade de auxiliar a transferncia de dados entre dispositivos de E/S e a memria. O buffer permite minimizar a disparidade de velocidade entre o processador e os dispositivos de E/S, e tem como objetivo principal manter tanto os dispositivos de E/S como o processador ocupados a maior parte do tempo. A unidade de transferncia do mecanismo de buffering o registro. O buffer deve permitir o armazenamento de vrios registros, de forma que o processador tenha sua disposio dados suficientes para processar sem ter que interromper o programa a cada leitura/gravao no dispositivo de E/S. Enquanto o processador est ocupado processando, os dispositivos de E/S esto efetuando operaes para outros processos. 3.3 SPOOL

A tcnica de spooling foi criada inicialmente para auxiliar a submisso de processos ao sistema, sendo os processos gravados em fita para posterior leitura e execuo. Com o aparecimento dos terminais para acesso ao sistema, esta tcnica teve sua funo adaptada para armazenar o resultado da impresso dos programas em execuo.

11

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

Isto conseguido atravs da criao e manuteno, pelo Sistema Operacional de uma grande rea em disco, com a finalidade de simular uma impressora. Desta forma, todos os usurios e seus programas imprimem, na verdade, para este arquivo em disco, liberando a associao dos dispositivos de impresso diretamente aos programas que esto executando. O usurio consegue visualizar o resultado de seus programas na tela dos terminais, gerando assim mais eficincia e economia de papel e fita de impresso. proporo que vo sendo gerados no SPOOL, os relatrios vo sendo liberados para impresso pelo operador do sistema, de forma ordenada e seqencial. Para cada usurio, como se ele tivesse uma impressora associada para si. 3.4 Reentrncia

comum, em sistemas multiprogramveis, vrios usurios utilizarem os mesmos aplicativos simultaneamente, como editores de texto, compiladores e outros utilitrios. Nesta situao, se cada usurio que utilizasse um destes aplicativos trouxesse o cdigo executvel para a memria, haveria ento diversas cpias de um mesmo programa ocupando espao na memria, o que causaria um grande desperdcio de espao. Reentrncia a capacidade de um cdigo executvel (cdigo reentrante) ser compartilhado por vrios usurios, exigindo apenas uma cpia do programa em memria. A reentrncia permite que cada usurio esteja executando um trecho diferente do cdigo reentrante, manipulando dados prprios, exclusivos de cada usurio. Normalmente cdigos reentrantes so utilizados em utilitrios do sistema, como editores, compiladores e linkers, promovendo um uso mais eficiente da memria e um desempenho maior do sistema. Alguns sistemas operacionais permitem a possibilidade de se implementar o conceito de reentrncia em aplicaes desenvolvidas pelo prprio usurio, mas no comum. 3.5 Segurana e Proteo do Sistema

A eficincia proporcionada por um ambiente multiprogramvel implica em maior complexidade do sistema operacional, j que alguns problemas de proteo surgem como decorrncia deste tipo de implementao. Considerando-se que diversos usurios esto compartilhando os mesmos recursos, como memria, processador e dispositivos de E/S, faz-se ento necessrio existir mecanismos de proteo para garantir a confiabilidade e a integridade dos dados e programas dos usurios, alm do prprio sistema operacional. Como vrios programas ocupam a memria principal simultaneamente, cada usurio possui uma rea reservada onde seus programas e dados so armazenados durante o

12

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

processamento. O sistema operacional deve possuir mecanismos de proteo a essas reas, de forma a preservar as informaes nela contidas. Caso um programa tente acessar uma posio de memria fora de sua rea, um erro indicando a violao de acesso deve ocorrer, sendo responsabilidade do sistema operacional o controle eficiente do compartilhamento dos recursos e a sincronizao da comunicao, evitando problemas de consistncia. Semelhante ao compartilhamento da memria, um disco tambm armazena arquivos de diferentes usurios. Novamente o sistema operacional deve garantir a integridade e confiabilidade dos dados de cada usurio. Todo o controle da segurana do sistema implementado pelo sistema operacional, a partir de mecanismos como grupos de usurios, perfis de usurios e direitos de acesso. A proteo comea geralmente no procedimento de login, quando o usurio faz a conexo inicial ao sistema, atravs de nome do usurio e senha. A partir da, toda uma estrutura de controle iniciada, em funo da identificao do usurio, no sentido de proteger as reas alocadas em memria, em disco, e at mesmo o uso do processador. A proteo e segurana do sistema pode ser implementada tambm a nvel do programa do usurio, com a insero de rotinas especficas dentro do programa para controlar o acesso de usurios ao aplicativo, alm de controlar internamente quais telas e funes tal usurio pode acessar. 3.6 Operaes de Entrada e Sada

Nos primeiros sistemas computacionais, a comunicao entre o processador e os perifricos era direta, sendo o processador responsvel por efetuar as operaes de leitura/gravao nos dispositivos. O surgimento do controlador de E/S permitiu ao processador agir de maneira independente dos dispositivos de E/S. Com esse novo elemento, o processador no mais se comunicava diretamente com os perifricos, mas sim via controlador. Passou a existir ento trs maneiras bsicas de se implementar operaes de E/S: -

por programa: o processador sincronizava-se com o perifrico e iniciava a


transferncia de dados, ficando permanentemente testando o estado do perifrico para saber quando a operao chegaria ao seu final. O processador ficava ocupado at o trmino da operao de E/S.

por interrupo: evoluindo o processo anterior, aps o incio da transferncia de

dados o processador passou a ficar livre para realizar outras tarefas. Assim, em determinados intervalos de tempo o sistema operacional deveria testar o estado dos

13

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

perifricos para saber se a operao de E/S tinha terminado. Este tipo de operao permitiu um certo grau de paralelismo, j que um programa poderia ser processado enquanto uma operao de leitura/gravao em perifrico estava sendo efetuada. Isto permitiu a implementao dos primeiros sistemas multiprogramveis.

Memria Principal CPU

Controlador

Dispositivos de E/S

A necessidade de se transmitir cada vez um volume maior de informaes trouxe uma evoluo significativa nas operaes de E/S. Em vez de o processador ser interrompido vrias vezes para interrogar os dispositivos para saber do resultado das operaes, o que diminua sua eficincia devido ao excesso de interrupes, foi criado um dispositivo de transferncia de dados chamado de DMA Direct Memory Access. Esta tcnica permite que um bloco de dados seja transferido entre a memria e os dispositivos de E/S sem a interveno do processador, a no ser no incio (quando a operao solicitada) e no final da transferncia (quando o processador notificado sobre o trmino da operao). Na figura a seguir, podemos ver a implementao do canal de E/S gerenciando vrios controladores e, ligados a estes, vrios perifricos.

O canal de E/S funciona ento como uma interface entre os controladores e a CPU, como mostra a figura a seguir:

Memria Principal CPU

14

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

4. Estrutura do Sistema Operacional


4.1 Estrutura do Sistema

15

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

USURIO

UTILITRIOS

NCLEO DO SISTEMA

HARDWARE
Hierarquia do Sistema Operacional

O sistema operacional formado por um conjunto de rotinas que oferecem servios essenciais aos usurios, s suas aplicaes, e tambm ao prprio sistema. A esse conjunto de rotinas d-se o nome de ncleo do sistema ou kernel. fundamental no se confundir o ncleo do sistema com aplicaes, utilitrios ou o interpretador de comandos, que acompanham o sistema operacional. As aplicaes so utilizadas pelos usurios de maneira transparente, escondendo todos os detalhes da interao com o sistema. Os utilitrios, como os compiladores, editores de texto e interpretadores de comandos permitem aos usurios, desenvolvedores e administradores de sistema uma interao amigvel com o sistema. Existe uma grande dificuldade em compreender a estrutura e o funcionamento do sistema operacional, pois ele no executado como uma aplicao tipicamente seqencial, com incio, meio e fim. Os procedimentos do sistema so executados concorrentemente sem uma ordem especfica ou predefinida, com base em eventos dissociados do tempo. Muitos desses eventos esto relacionados ao hardware e a tarefas internas do prprio sistema operacional.

4.2

Funes do Sistema

As principais funes do ncleo encontradas na maioria dos sistemas comerciais so as seguintes:

16

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

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 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.

17

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

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 estrutura do sistema, a maneira como ele organizado e o inter-relacionamento entre seus diversos componentes pode variar conforme a concepo do projeto do sistema. 4.3 System Calls

Uma grande preocupao no projeto de sistemas operacionais se refere implementao de mecanismos de proteo ao ncleo do sistema e tambm o controle de acesso aos servios oferecidos pelo sistema. Caso uma aplicao que tenha acesso ao ncleo realize alguma operao que altere sua integridade, todo o sistema poder ficar comprometido e inoperante. As system calls podem ser entendidas como uma porta de entrada para acesso ao ncleo do sistema e aos seus servios. Sempre que um usurio ou uma aplicao necessita de algum servio do sistema, realizada uma chamada a uma de suas rotinas atravs de uma system call. Atravs dos parmetros fornecidos na system call, a solicitao processada e uma resposta enviada aplicao juntamente com um estado de concluso indicando o sucesso ou no da operao. Para cada servio disponvel existe uma system call associada, e cada sistema operacional possui seu prprio conjunto de chamadas, com nomes, parmetros e formas de ativao especficos. Isto explica por que uma aplicao desenvolvida utilizando servios de um determinado sistema operacional no pode ser diretamente portada para um outro sistema.

Aplicao Ncleo do Sistema Operacional Hardware

System Call

Biblioteca

4.4

Modos de Acesso

18

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

Existem certas instrues que no podem ser colocadas diretamente disposio das aplicaes, pois a sua utilizao indevida poderia ocasionar srios problemas integridade do sistema. Imagine que uma aplicao atualize um arquivo em disco. O programa, por si s, no pode especificar diretamente as instrues que acessam seus dados no disco pois, como o disco um recurso compartilhado, sua utilizao deve ser gerenciada unicamente pelo sistema operacional. Tal procedimento evita que a aplicao possa ter acesso a qualquer rea do disco indiscriminadamente, o que poderia comprometer a segurana e a integridade do sistema de arquivos. Assim, fica claro que existem certas instrues que s podem ser executadas pelo sistema operacional ou sob sua superviso. As instrues que tm o poder de comprometer o sistema so chamadas de instrues privilegiadas, enquanto as instrues que no comprometem o funcionamento do sistema chamam-se instrues no-privilegiadas. Para que uma aplicao possa executar uma instruo privilegiada, preciso que haja um mecanismo de proteo no processador, chamado modos de acesso. Existem basicamente dois modos de acesso ao processador: modo usurio e modo kernel. Quando o processador trabalha no modo usurio, somente instrues no-privilegiadas podem ser executadas, tendo assim acesso a um nmero limitado de instrues do processador. J no modo kernel (ou supervisor), a aplicao pode ter acesso ao conjunto total de instrues do processador. A melhor maneira de controlar o acesso s instrues privilegiadas permitir que apenas o sistema operacional tenha acesso a elas. Sempre que uma aplicao necessita executar uma instruo privilegiada, a solicitao deve ser feita atravs de uma system call, que altera o modo de acesso ao processador do modo usurio para o modo kernel. Ao trmino da execuo da rotina do sistema, o modo de acesso retorna para o modo usurio.

19

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

4.5 -

Arquiteturas: Sistemas monolticos, em camadas e microkernel

Arquitetura monoltica: caracterizada por possuir seus mdulos compilados separadamente mas linkados formando um nico e enorme programa executvel. Onde os mdulos podem interagir livremente. Os primeiros sistemas operacionais foram desenvolvidos com base nesta arquitetura, o que tornava seu desenvolvimento e, principalmente, sua manuteno muito difceis. Como vantagens desta arquitetura podemos citar a rapidez de execuo e simplicidade de implementao. Como desvantagens, a limitao quanto a inovaes futuras e a dificuldade de manuteno.

Aplicao Modo Usurio Modo Kernel System call

Aplicao

Ncleo do Sistema

Hardware
Arquitetura monoltica

20

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

Arquitetura em camadas: com o aumento do tamanho do cdigo dos sistemas operacionais, tcnicas de programao estruturada e modular foram incorporadas em seu projeto.Na arquitetura em camadas, o sistema dividido em nveis sobrepostos. Cada camada oferece um conjunto de funes que podem ser utilizadas somente pelas camadas superiores. Neste tipo de implementao as camadas mais internas so mais privilegiadas que as camadas mais externas. A vantagem da estruturao em camadas o isolamento das funes do sistema, facilitando sua manuteno. Uma desvantagem o desempenho, comprometido devido s vrias mudanas de estado do processador provocado pela mudana de camadas. A figura a seguir mostra esta arquitetura.

Camada Usurio

Camada Supervisor Camada Executivo Kernel

Arquitetura em camadas

Arquitetura microkernel (cliente x servidor): uma tendncia nos sistemas operacionais modernos tornar o ncleo do sistema o menor e o mais simples possvel. Para implementar esta idia, os servios do sistema so disponibilizados atravs de processos, onde cada um responsvel por oferecer um conjunto especfico de funes, como gerncia de arquivos, gerncia de processos, gerncia de memria e escalonamento. Sempre que uma aplicao deseja algum servio, realizada uma solicitao ao processo responsvel. Neste caso, a aplicao que est solicitando o servio chamada de cliente, enquanto o processo que responde solicitao chamado de servidor. Um cliente, que pode ser uma aplicao do usurio ou um outro componente do sistema operacional, solicita um servio enviando uma mensagem para o servidor. O servidor responde ao cliente atravs de uma outra mensagem. A principal funo do ncleo realizar a comunicao, ou seja, a troca de mensagens entre o cliente e o servidor. A utilizao deste modelo permite que os servidores operem em modo usurio, no tendo acesso

21

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

direto a certos componentes do sistema. Apenas o ncleo do sistema, responsvel pela comunicao entre clientes e servidores, executa em modo kernel. Como conseqncia, se ocorrer um erro em algum servidor,este poder parar, mas o sistema no ficar inteiramente comprometido, aumentando assim a sua disponibilidade. Como os servidores se comunicam atravs de trocas de mensagens, no importa se os clientes e servidores processam em um sistema com um nico processador, com vrios processadores ou ainda em um ambiente de sistema distribudo. A arquitetura microkernel permite isolar as funes do sistema operacional por diversos servidores pequenos e dedicados a servios especficos, tornando o ncleo menor, mais fcil de depurar (procurar e solucionar erros) e, com isso, aumentando a sua confiabilidade. Apesar de todas as vantagens deste modelo, sua implementao muito difcil. A comear pelo desempenho, comprometido devido s vrias trocas de modo de acesso a cada troca de mensagens entre cliente e servidor. Outro problema que certas funes do sistema operacional, como operaes de E/S, exigem acesso direto ao hardware. Assim, o ncleo do sistema, alm de promover a comunicao entre clientes e servidores, passa a incorpora funes crticas do sistema, como escalonamento, tratamento de interrupes e gerncia de dispositivos.

Servidor

Arquivo Servidor Process o

Servidor Memria Servidor Impress o

Servidor Rede

Modo Usurio Modo Kernel Microkernel

Hardware

5. PROCESSO
22

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

O conceito de processo a base para a implementao de um sistema multiprogramvel. O processador projetado apenas para executar instrues, no sendo capaz de distinguir qual programa se encontra em execuo.A gerncia de um ambiente multiprogramvel funo exclusiva do sistema operacional, que deve controlar a execuo dos diversos programas e o uso concorrente do processador. A gerncia do processador uma das principais funes de um sistema operacional. Atravs dos processos, um programa pode alocar recursos, compartilhar dados e trocar informaes. 5.1 Componentes do processo

Um processo pode ser entendido inicialmente como um programa em execuo, que tem suas informaes mantidas pelo sistema operacional. Num sistema multiusurio, cada usurio tem a impresso de possuir o processador e todos os demais recursos reservados exclusivamente para si, mas isto no verdade. Todos os recursos esto sendo compartilhados, inclusive a CPU. Neste caso, o processador executa o processo do usurio por um intervalo de tempo e, no instante seguinte, poder estar processando um outro programa, do mesmo ou de outro usurio. Para que a troca de processos possa ser feita sem problemas, necessrio que todas as informaes do programa que est sendo interrompido sejam guardadas, para que ele possa retornar CPU exatamente do ponto em que parou, no lhe faltando nenhuma informao vital sua continuao. Todas as informaes necessrias execuo de um programa fazem parte do processo. Um processo tambm pode ser definido como o ambiente onde o programa executado. Este ambiente, alm das informaes sobre a execuo, possui tambm a quantidade de recursos do sistema que o programa pode utilizar,como espao de endereamento, tempo do processador e rea em disco. Um processo formado por trs partes: contexto de software, contexto de hardware e espao de endereamento, que juntas mantm todas as informaes necessrias execuo de um programa.

23

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

Estrutura do processo:
Contexto de Software Contexto de Hardware

________ ________ ________ Programa

Espao de endereamento

Contexto de Software: neste contexto so especificadas caractersticas e limites dos recursos que podem ser alocados pelo processo, como nmero mximo de arquivos abertos, prioridade de execuo, nmero mximo de linhas impressas, etc. Muitas destas caractersticas so criadas no momento da criao do processo, quando da sua alocao. O sistema operacional obtm, a partir do cadastro de usurios e do cadastro de contas no sistema, as informaes e caractersticas que valero para o processo. O contexto de software composto por tr?es grupos de informaes: Identificao: neste grupo so guardadas informaes sobre o usurio que criou o processo, e, em funo disso, suas reas de atuao no sistema. Quotas: so os limites de recursos do sistema que um processo pode alocar, como rea utilizada em disco, em memria, limite de linhas impressas, nmero mximo de arquivos abertos, nmero mximo de operaes de E/S pendentes, tempo limite de CPU, etc. Privilgios: diz respeito principalmente s prioridades assumidas pelo processo durante sua execuo.

Contexto de Hardware: armazena o contedo dos registradores gerais da CPU, alm dos registradores de uso especfico. Quando um processo est em execuo, o seu contexto de hardware est armazenado nos registradores da CPU. No momento em que o processo perde a utilizao da CPU, o sistema salva as informaes no contexto de hardware do processo. A troca de um processo por outro no processador, comandada pelo sistema operacional, denominada troca de contexto, que consiste em salvar o contedo dos registradores do processo que est deixando a CPU e carrega-los com os valores

24

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

referentes ao do novo processo que ir executar. Essa operao resume-se em substituir o contexto de hardware de um processo pelo de outro. Espao de endereamento: a rea de memria pertencente a um processo onde as instrues e os dados do programa so armazenados para execuo. Cada processo possui seu prprio espao de endereamento, que deve ser devidamente protegido do acesso dos demais processos. Os contextos de software e de hardware no fazem parte do espao de endereamento . Bloco de controle do processo: a estrutura de dados que compe o processo, contendo os contextos de software e de hardware e o espao de endereamento. O BCP reside em memria, numa rea reservada ao sistema operacional. 5.2 Estados do processo

Num sistema multiprogramvel, um processo no deve alocar a CPU com exclusividade, de forma que possa existir um compartilhamento no uso do processador. Os processos passam por diferentes estados ao longo do processamento, em funo de eventos gerados pelo sistema operacional, pelo hardware, ou pelo prprio programa. So estados possveis de um processo: Criao: neste estado o processo est sendo alocado na memria, sendo criado no sistema. Todos os recursos necessrios execuo do processo so reservados durante a passagem do processo por este estado, o que acontece uma nica vez. Vrios processos podem estar neste estado, ao mesmo tempo. Pronto: o estado onde os processos, depois de criados ou quando retornam do tratamento de uma interrupo, permanecem aguardando a liberao da CPU para que possam iniciar ou continuar seu processamento. como se fosse uma fila, gerenciada pelo sistema operacional, que se incumbe de organizar os processos de acordo com as informaes contidas no contexto de software (identificao, quotas e privilgios). Vrios processos podem estar neste estado, ao mesmo tempo. Execuo: onde o processo efetivamente utiliza a CPU. Ele permanece no processador at que seja interrompido ou termine sua execuo. Neste estado, somente um processo pode permanecer de cada vez, j que existe apenas um processador. Espera: neste estado esto todos os processos que sofreram algum tipo de interrupo de E/S, onde permanecem at que a interveno seja resolvida. Vrios processos podem estar neste estado, ao mesmo tempo.

25

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

5.3

Sada: o estado final do processo, quando este termina seu processamento. Vrios processos podem estar neste estado, ao mesmo tempo. Mudanas de estado do processo

Um processo muda de estado diversas vezes durante sua permanncia no sistema, devido aos eventos ocorridos durante sua execuo. So mudanas possveis: Criao Pronto: o processo foi criado, tem seus recursos alocados, e est apto a disputar o uso da CPU. Pronto Execuo: o processo o primeiro da fila de pronto e a CPU fica disponvel. Neste momento o processo passa a ocupar a CPU, permanecendo em execuo at que seja interrompido ou termine sua execuo. Execuo Pronto: o processo foi interrompido por fatia de tempo ou por prioridade. Ainda precisa de mais tempo na CPU para terminar sua execuo, no tem nenhuma interveno pendente, por isso volta fila de pronto para disputar novamente o uso da CPU. Execuo Espera: esta transio acontece quando o processo foi interrompido por E/S. Significa que deve permanecer no estado de espera at que a interrupo seja tratada pelo sistema. Neste estado o processo fica impedido de disputar o uso da CPU. Espera Pronto: Aps o trmino do tratamento da interrupo, o processo volta fila de pronto para disputar novamente o uso da CPU. Execuo Sada: o processo terminou, e no mais disputar o uso da CPU.

A seguir, a figura mostra as mudanas possveis de estado de um processo.


Criao

Pronto Execuo Sada

Mudanas de estado de um processo Espera

26

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

5.4

Tipos de processos

Alm dos processos do usurio, a CPU tambm executa processos do sistema. So aqueles que oferecem os servios do sistema operacional aos usurios, como criao/eliminao de processos, tratamento de interrupo e todos aqueles correspondentes s funes do sistema j estudadas. Estes executam sempre, com certa prioridade, concorrendo com os processos do usurio. Os processos em execuo, do usurio, podem assumir dois tipos diferentes, de acordo com suas caractersticas de uso de CPU e perifricos: Processo CPU-bound: aquele processo que utiliza muito a CPU. Ele ganha uma fatia de tempo e a utiliza por inteiro, sem desperdiar nenhum tempo. o caso de programas cientficos, de clculo numrico, estatstica, matemtica, e tambm na rea de simulao. Normalmente fazem pouca ou nenhuma entrada de dados, e muito processamento. Processo I/O-bound: o tipo de processo que utiliza muito mais E/S do que CPU. Aplicaes em Banco de Dados, onde se faz consultas e atualizaes constantes em arquivos em disco so um bom exemplo deste tipo de processo. De acordo com essas caractersticas, podemos dizer que este tipo de processo permanece mais tempo em espera (tratando interrupes) do que propriamente em execuo, ocupando a CPU por perodos mnimos de tempo.

27

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

6. Gerncia do Processador
6.1 Funes

Com o surgimento dos sistemas multiprogramveis, onde mltiplos processos poderiam permanecer na memria e disputar o uso de um nico processador, a gerncia do processador tornou-se uma das atividades mais importantes em um sistema operacional. A partir do momento em que vrios processos podem estar no estado de pronto, devem ser estabelecidos critrios para definir qual processo ser escolhido para fazer uso do processador. Tais critrios compem a poltica de escalonamento, que a base da gerncia do processador e da multiprogramao em um sistema operacional. Dentre as funes da gerncia do processador, podemos citar: manter o processador ocupado a maior parte do tempo. balancear o uso da CPU entre processos, privilegiar a execuo de aplicaes crticas, maximizar o throughput e oferecer tempos de resposta razoveis aos usurios interativos. Cada sistema operacional possui sua poltica de escalonamento adequada ao seu propsito e s suas caractersticas. Sistemas de tempo compartilhado, por exemplo, possuem requisitos de escalonamento distintos dos sistemas de tempo real.

6.2 -

Critrios de escalonamento

Utilizao do processador: corresponde a uma taxa de utilizao, que na maioria dos sistemas varia entre 30 e 90%. Uma utilizao abaixo dos 30% indicaria um sistema ocioso, com carga de processamento baixa, enquanto uma taxa de utilizao acima dos 90% pode indicar um sistema bastante carregado, prximo da sua capacidade mxima (em alguns casos tal situao pode levar a um crash travamento do sistema). Throughput: o nmero de processos executados em um determinado intervalo de tempo. Quanto maior o throughput, maior o nmero de tarefas executadas em funo do tempo. A maximizao do throughput desejada na maioria dos sistemas. Tempo de Processador: o tempo que um processo leva no estado de execuo, durante seu processamento. As polticas de escalonamento no interferem neste parmetro, sendo este tempo funo apenas do cdigo executvel e da entrada/sada de dados. Tempo de Espera (pela CPU): todo o tempo que o processo permanece na fila de pronto, aguardando a liberao da CPU para ser executado. A reduo deste tempo de espera desejada pela maioria das polticas de escalonamento.

28

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

Tempo de Turnaround: o tempo total que o processo permaneceu no sistema, desde sua criao at o momento em que encerrado. So contados os tempos de alocao de memria, espera na fila de pronto e interrupo (E/S). Tempo de Resposta: o tempo decorrido entre uma requisio ao sistema e o instante em que a resposta comea a ser exibida. Em sistemas interativos, como aplicaes online ou acesso Web, os tempos de resposta devem ser da ordem de apenas poucos segundos. 6.3 Escalonamentos No-Preemptivos e Preemptivos

Escalonamentos do tipo no-preemptivos so aqueles onde o sistema operacional no pode interromper o processo em execuo para retir-lo da CPU. Assim sendo, se nenhum evento externo ocorresse durante a execuo do processo, este permanecia na CPU at terminar ou ento alguma instruo do prprio programa o desviasse para o estado de espera (operao de E/S). J os escalonamentos preemptivos so caracterizados pela possibilidade de o sistema operacional interromper o processo em execuo para retir-lo da CPU e dar lugar a outro. Neste caso o processo retirado da CPU volta ao estado de pronto, onde permanece aguardando nova oportunidade de ocupar a CPU. Com o uso da preempo, possvel ao sistema priorizar a execuo de processos, como no caso de aplicaes em tempo real. Outro benefcio a possibilidade de implementar polticas de escalonamento que compartilhem o processador de uma maneira mais uniforme, balanceando o uso da CPU entre os processos. So escalonamentos no-preemptivos: FIFO: o processo que chegar primeiro fila de pronto selecionado para execuo, e permanece utilizando o processador at terminar sua execuo ou ser interrompido por E/S. Neste caso, o prximo processo da fila de pronto selecionado para execuo. Todo processo que chega fila de pronto entra no final desta fila, conservando a ordem de chegada na fila, at ser escalonado novamente. Apesar de simples, este escalonamento apresenta algumas deficincias, principalmente no que diz respeito dificuldade de se prever o incio da execuo de um processo, j que a ordem de chegada fila de pronto deve ser observada risca. Outro problema quanto aos tipos de processo, onde os CPU-bound levam vantagem no uso do processador em relao aos do tipo I/O-bound, pois o sistema no trata este tipo de diferena. O escalonamento FIFO foi inicialmente implementado em sistemas monoprogramveis, sendo ineficiente se aplicado em sistemas interativos de tempo compartilhado.

29

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

Abaixo, um exemplo de escalonamento utilizando o mtodo FIFO: a ordem de chegada dos processos (A, B, C) na fila de pronto foi obedecida, e, no tendo sido interrompidos por E/S, os processos executaram inteiramente at terminar, de acordo com seus tempos necessrios para execuo. 0 10 18 27

Processo A 10 u.t.

Processo B 8 u.t.

Processo C 9 u.t.

SJF (Shortest Job First): este escalonamento seleciona o processo que tiver o menor tempo de processador ainda por executar. Desta forma, o processo que estiver na fila de pronto com menor necessidade de tempo de CPU para terminar o seu processamento ser o escolhido para ocupar a CPU. Funciona com um parmetro passado ao sistema via contexto de software, onde o tempo estimado para o processo informado baseando-se em estatsticas de execues anteriores. Como exemplo, vamos utilizar os mesmos processos executados no escalonamento FIFO acima, com seus respectivos tempos de execuo em u.t. (unidades de tempo): processo A com 10 u.t., processo B com 8 u.t, e o processo C com 9 u.t. Como neste escalonamento o que importa o tempo de execuo, a nova ordem de escalonamento para utilizao da CPU ser B, C e A, como segue: 0 8 17 27

Processo B Processo C

Processo A

Cooperativo: este escalonamento busca aumentar o grau de concorrncia no processador. Neste caso, um processo em execuo pode voluntariamente liberar o processador retornando fila de pronto, possibilitando que um novo processo seja escalonado, permitindo melhor distribuio do tempo do processador. A liberao da CPU uma tarefa exclusiva do programa em execuo, que de maneira cooperativa libera o processador para um outro processo. Neste mecanismo, o processo em execuo verifica periodicamente uma fila de mensagens para saber se existem outros processos na fila de pronto. Porm, como a interrupo do processo no depende do sistema operacional, situaes indesejveis podem ocorrer, como por exemplo, se um programa em execuo no verificar a fila de mensagens, os demais programas no

30

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

tero chance de executar enquanto a CPU no for liberada. As primeiras verses do Windows chegaram a utilizar este tipo de escalonamento. So escalonamentos preemptivos: Circular: um tipo de escalonamento projetado especialmente para sistemas em tempo compartilhado. muito semelhante ao FIFO (obedece a ordem de chegada fila de PRONTO), mas quando um processo passa para o estado de execuo h um limite de tempo para o uso contnuo do processador, chamado fatia de tempo (time-slice) ou quantum. Assim, toda vez que um processo selecionado para execuo uma nova fatia de tempo lhe concedida. Caso esta fatia de tempo expire, o sistema operacional interrompe o processo, salva seu contexto e o direciona para a fila de PRONTO. Este mecanismo conhecido como preempo por tempo. A principal vantagem deste escalonamento no permitir que um processo monopolize a CPU. Outrossim, uma desvantagem que os processos CPU-bound so beneficiados no uso do processador em relao aos processos I/O-bound, pois tendem a utilizar totalmente a fatia de tempo recebida. A figura a seguir mostra o escalonamento circular com 3 processos, onde a fatia de tempo igual a 2 u.t. No exemplo no esto sendo levados em considerao tempos de troca de contexto entre os processos, nem o tempo perdido em operaes de E/S. Os processos A, B e C, gastam 10 u.t, 6 u.t e 3 u.t., respectivamente.

C
2 4 6 8 10 11 17 u.t.

Por Prioridades: funciona com base num valor associado a cada processo, denominado prioridade de execuo. O processo com maior prioridade na fila de PRONTO sempre o escolhido para ocupar o processador, sendo os processos com prioridades iguais escalonados pelo critrio FIFO. Neste escalonamento o conceito da fatia de tempo no existe. Como conseqncia disto, um processo em execuo no pode sofrer preempo por tempo. Neste escalonamento a perda do uso do processador somente ocorrer no caso de uma mudana voluntria para o estado de espera (interrupo por E/S), ou quando um outro processo de prioridade maior passa (ou chega) para o estado de pronto. Neste caso o sistema operacional interrompe o processo em execuo, salva seu contexto e o coloca na fila de pronto, dando lugar na CPU ao processo prioritrio. Este mecanismo chamado de preempo por prioridade. A figura a seguir mostra a

31

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

execuo dos processos A, B e C, com tempos de execuo de 10, 4 e 3 u.t. respectivamente, e valores de prioridades de 2, 1 e 3, tambm respectivamente. Na maioria dos sistemas, valores menores correspondem MAIOR prioridade. Assim, a ordem de execuo ser invertida para B, A e C.

A B C
4 14 17

u.t.

A prioridade de execuo faz parte do contexto de software do processo, e pode ser esttica (quando no pode ser alterada durante a existncia do processo) ou dinmica (quando pode ser alterada durante a existncia do processo). Este escalonamento muito usado em sistemas de tempo real, com aplicaes de controle de processos, controle de trfego (sinais de trnsito, de trens/metr, areo), robtica, entre outros.

Escalonamento Circular com Prioridades: implementa o conceito de fatia de tempo e de prioridade de execuo associada a cada processo. Neste escalonamento, um processo permanece no estado de execuo at que termine seu processamento, ou voluntariamente passe para o estado de espera (interrupo por E/S), ou sofra uma preempo por tempo ou prioridade. A principal vantagem deste escalonamento permitir um melhor balanceamento no uso do processador, com a possibilidade de diferenciar o grau de importncia dos processos atravs da prioridade (o Windows utiliza este escalonamento). Por Mltiplas Filas: Este escalonamento implementa vrias filas de pronto, cada uma com prioridade especfica. Os processos so associados s filas de acordo com caractersticas prprias, como importncia da aplicao, tipo de processamento ou rea de memria necessria. Assim, no o processo que detm a prioridade, mas sim a fila. O processo em execuo sofre preempo caso um outro processo entre em uma fila de maior prioridade. O sistema operacional s pode escalonar processos de uma fila quando todas as outras filas de maior prioridade estejam vazias. Os processos sempre voltam para a mesma fila de onde saram. Por Mltiplas Filas com Realimentao: semelhante ao anterior, porm permitindo ao processo voltar para uma outra fila de maior ou menor prioridade, de acordo com seu comportamento durante o processamento. O sistema operacional identifica dinamicamente o comportamento de cada processo e o redireciona para a fila mais conveniente ao longo de seu processamento. um algoritmo generalista, podendo ser implementado na maioria dos sistemas operacionais. 32

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

7. Gerncia de Memria / Memria Virtual


7.1 Introduo

Historicamente, a memria principal sempre foi vista como um recurso escasso e caro. Uma das maiores preocupaes dos projetistas foi desenvolver sistemas operacionais que no ocupassem muito espao de memria e, ao mesmo tempo, otimizassem a utilizao dos recursos computacionais. Mesmo atualmente, com a reduo do custo e o aumento considervel da capacidade da memria principal, seu gerenciamento dos fatores mais importantes no projeto e implementao dos sistemas operacionais. Enquanto nos sistemas monoprogramveis a gerncia de memria no muito complexa, nos sistemas multiprogramveis essa gerncia se torna crtica, devido necessidade de se maximizar o nmero de usurios e aplicaes utilizando eficientemente o espao da memria principal. 7.2 Funes

Geralmente, os programas so armazenados em memrias secundrias, de uso permanente e no volteis, como discos ou fitas. Como o processador somente executa o que est na memria principal, o sistema operacional deve sempre transferir programas da memria secundria para a principal antes de serem executados.Como o tempo de acesso s memrias secundrias muito superior ao tempo de acesso memria principal, o sistema operacional deve buscar reduzir o nmero de operaes de E/S (acessos memria secundria) a fim de no comprometer o desempenho do sistema. A gerncia de memria deve tentar manter na memria principal o maior nmero de processos residentes, permitindo maximizar o compartilhamento do processador e demais recursos computacionais. Mesmo no havendo espao livre, o sistema deve permitir que novos processos sejam aceitos e executados. Outra preocupao na gerncia de memria permitir a execuo de programas maiores do que a memria fsica disponvel. Em um ambiente de multiprogramao o sistema operacional deve proteger as reas de memria ocupadas por cada processo, alm da rea onde reside o prprio sistema. Caso um programa tente realizar algum acesso indevido memria, o sistema deve, de alguma forma, impedir o acesso. 7.3 Alocao Contgua Simples

Este tipo de alocao foi implementado nos primeiros sistemas operacionais, embora ainda nos dias de hoje esteja presente em alguns sistemas monoprogramveis. Nesse modelo, a memria principal dividida em duas partes, uma para o sistema operacional e a outra para o

33

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

programa do usurio. Dessa forma, o programador deve desenvolver suas aplicaes preocupado apenas em no ultrapassar o espao de memria disponvel. Neste esquema o usurio tem total controle sobre toda a memria, exceto naquela rea onde reside o sistema operacional, cujo endereamento protegido por um registrador, impedindo acesso indevido pelo usurio. Sistema Operacional X registrador

rea para programas

Proteo na alocao contgua simples

Apesar de simples implementao e cdigo reduzido, a alocao contgua simples no permite a utilizao eficiente dos recursos do sistema, pois apenas um usurio pode dispor destes recursos. H inclusive um desperdcio de espao de memria, caso o programa no venha a ocupar toda a rea reservada para ele.

Sistema Operacional Programa do Usurio rea livre

Sub-utilizao da memria principal

7.4

Segmentao de Programas

Na alocao contgua simples todos os programas esto limitados ao tamanho da memria principal disponvel para o usurio. Uma soluo encontrada para o problema dividir o programa em mdulos, de modo que seja possvel a execuo independente de cada mdulo, utilizando a mesma rea de memria. A esta tcnica d-se o nome de segmentao ou overlay. 34

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

Consideremos um programa que tenha trs mdulos: um principal, um de cadastramento e outro de impresso, sendo os mdulos de cadastramento e impresso independentes. A independncia significa que quando um mdulo estiver na memria para execuo, o outro no necessariamente precisa estar presente.O mdulo principal comum aos outros dois, logo, precisa estar na memria durante todo o tempo da execuo do programa. Na figura a seguir, a memria insuficiente para armazenar todo o programa, que totaliza 9 KB. A tcnica de overlay utiliza uma rea de memria comum para armazenar o mdulo principal do programa e uma outra rea na mesma memria, chamada rea de overlay, que ser compartilhada entre os mdulos de cadastramento e impresso. Assim, sempre que um dos mdulos for referenciado no mdulo principal, o sistema o carregar da memria secundria para a rea de overlay, sobrepondo o mdulo antigo na memria. Memria Principal Sistema Operacional Mdulo Principal rea de Overlay rea livre Cadastramento 4 KB

2 KB 3 KB

4 KB

Impresso 2 KB

1 KB

2 KB

Tcnica de Overlay

A definio das reas de overlay funo do programador, atravs de comandos especficos da linguagem de programao utilizada. A grande vantagem da utilizao desta tcnica consiste em se poder executar programas maiores do que a memria fsica disponvel. 7.5 Alocao Particionada Esttica

Os sistemas operacionais evoluram no sentido de proporcionar melhor aproveitamento dos recursos disponveis. Nos sistemas monoprogramveis o processador permanece grande parte do tempo ocioso e a memria principal sub-utilizada. Os sistemas multiprogramveis j

35

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

so muito mais eficientes no uso do processador, necessitando que vrios processos estejam na memria principal ao mesmo tempo e que novas formas de gerncia de memria sejam implementadas. Nos primeiros sistemas multiprogramveis a memria era dividida em blocos de tamanho fixo, chamados parties.O tamanho dessas parties, estabelecido em tempo de inicializao do sistema, era definido em funo do tamanho dos programas que executariam no ambiente.Sempre que fosse necessria a alterao do tamanho de uma partio, o sistema deveria ser inicializado novamente com uma nova configurao. Sistema Operacional Partio 1 Partio 2 Partio 3

2 KB 5 KB 8 KB

Inicialmente, os programas s podiam ser carregados e executados em apenas uma partio especfica, mesmo que as outras estivessem disponveis. Esta limitao se devia aos compiladores e linkeditores, que geravam apenas cdigo absoluto. No cdigo absoluto, todas as referncias a endereos no programa so posies fsicas na memria, ou seja, o programa s poderia ser carregado a partir do endereo de memria especificado no seu prprio cdigo. A esse tipo de alocao de memria chamou-se alocao particionada esttica absoluta. Coma evoluo dos compiladores, linkeditores, montadores e loaders, o cdigo gerado deixou de ser absoluto e passou a ser relocvel . No cdigo relocvel, todas as referncias a endereos no programa so relativas ao incio do cdigo e no a endereos fixos na memria. Desta forma, os programas puderam ser alocados em qualquer partio livre, independente do endereo inicial e da partio para a qual o cdigo foi criado. A esse tipo de alocao deu-se o nome de alocao particionada esttica relocvel. Tanto nos sistemas de alocao absoluta como nos de alocao relocvel, os programas, normalmente, no ocupam totalmente as parties onde so alocados, deixando algum espao livre dentro das parties. Este tipo de problema, decorrente do esquema de alocao fixa de parties, chamado fragmentao interna. A figura a seguir mostra um grfico representando o particionamento esttico de uma memria e sua fragmentao interna.

36

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

Memria Principal

Sistema Operacional Programa C 1 KB Programa A 3 KB Programa E 5 KB


Fragmentao interna

Alocao particionada esttica com fragmentao interna

7.6

Alocao Particionada Dinmica

A alocao particionada esttica deixou clara a necessidade de uma nova forma de gerncia de memria principal, onde o problema da fragmentao interna fosse reduzido e, conseqentemente, o grau de compartilhamento da memria aumentado. Na alocao particionada dinmica, foi eliminado o conceito de parties de tamanho fixo. Nesse esquema, cada programa, ao ser carregado, utilizaria o espao necessrio sua execuo, tornando esse espao a sua partio. Assim, como os programas utilizam apenas o espao de que necessitam, no esquema de alocao particionada dinmica o problema da fragmentao interna deixa de existir. Porm, com o trmino de alguns programas e o incio de outros, passam a existir na memria blocos cada vez menores na memria, no permitindo o ingresso de novos programas. A este tipo de problema d-se o nome de fragmentao externa. Para resolver o problema da fragmentao externa, os fabricantes tentaram duas solues: - reunio de todos os blocos livres adjacentes, formando uma grande rea livre, que se transforma em uma nova partio; realocao de todas as parties ainda ocupadas para a parte inicial da memria, eliminando os blocos livres entre elas, formando uma grande rea livre no final da

37

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

memria, que podia ser distribuda entre os processos ainda por executar. A este tipo de compactao de espaos livres foi dado o nome de alocao particionada dinmica

com realocao.

Estas solues ajudaram a diminuir os problemas da fragmentao (tanto interna como externa), mas, devido complexidade dos algoritmos, nem todos os sistemas operacionais as utilizaram. 7.7 Estratgias de Alocao de Partio

Os sistemas operacionais implementam basicamente trs estratgias para determinar em qual rea livre um programa ser alocado para execuo. Essas estratgias tentam evitar ou diminuir o problema da fragmentao. A melhor estratgia a ser adotada por um sistema depende de uma srie de fatores, sendo o mais importante o tamanho dos programas executados no ambiente. Independentemente do algoritmo utilizado, o sistema possui uma lista das reas livres, com endereo e tamanho de cada rea. So estratgias de alocao: Best-fit: escolhida a melhor partio, ou seja, aquela que deixa o menor espao sem utilizao. Uma grande desvantagem desta estratgia que, como so alocados primeiramente as parties menores, deixando pequenos blocos, a fragmentao aparece mais rapidamente. Worst-fit: aloca o programa na pior partio, ou seja, aquela que deixa o maior espao livre. Esta tcnica, apesar de aproveitar primeiro as parties maiores, acaba deixando espaos livres grandes o suficiente para que outros programas utilizem esses espaos, permitindo que um nmero maior de processos se utilizem da memria, diminuindo ou retardando a fragmentao. First-fit: esta estratgia aloca o programa na primeira partio que o couber, independente do espao livre que vai deixar. Das trs estratgias, esta a mais rpida, consumindo menos recursos do sistema. Swapping

7.8

uma tcnica aplicada gerncia de memria que visa dar maior taxa de utilizao memria principal, melhorando seu compartilhamento. Visa tambm resolver o problema da falta de memria principal num sistema.

38

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

Toda vez que um programa precisa ser alocado para execuo e no h espao na memria principal, o sistema operacional escolhe entre os processos alocados que no tem previso de utilizar a CPU nos prximos instantes (quase sempre entre aqueles que esto em interrupo de E/S ou no final da fila de pronto), e descarrega este processo da memria para uma rea especial em disco, chamada arquivo de swap, onde o processo fica armazenado temporariamente. Durante o tempo em que o processo fica em swap, o outro que necessitava de memria entra em execuo ocupando o espao deixado pelo que saiu. Pouco antes de chegar a vez do processo armazenado em swap utilizar a CPU, o sistema escolhe um outro processo para descarregar para swap e devolve o anterior da rea de swap para a memria principal, para que este possa ser executado novamente. E vai trabalhando assim at que os processos vo terminando. O problema dessa tcnica que pode provocar um nmero excessivo de acesso memria secundria (disco), levando o sistema a uma queda de desempenho. 7.9 Memria Virtual

Anteriormente foram apresentadas diversas tcnicas de gerenciamento de memria que evoluram no sentido de maximizar o nmero de processos residentes na memria principal e reduzir o problema da fragmentao, porm os esquemas vistos se mostraram muitas vezes ineficientes. Alm disso, o tamanho dos programas e de suas estruturas de dados estava limitado ao tamanho da memria disponvel. Como vimos, a utilizao da tcnica de overlay para contornar este problema de difcil implementao na prtica e nem sempre uma soluo garantida e eficiente. memrias principal e secundria so combinadas, dando ao usurio a impresso de que existe muito mais memria do que a capacidade real de memria principal.

Memria virtual uma tcnica sofisticada e poderosa de gerncia de memria onde as

O conceito de memria virtual baseia-se em no vincular o endereamento feito pelo programa aos endereos fsicos da memria principal. Desta forma, o programa e suas estruturas de dados deixam de estar limitados ao tamanho da memria fsica disponvel, pois podem possuir endereos vinculados memria secundria, que funciona como uma extenso da memria principal. Outra vantagem desta tcnica permitir um nmero maior de processos compartilhando a memria principal, j que apenas partes de cada processo estaro residentes. Isto leva a uma utilizao mais eficiente do processador, alm de minimizar (ou quase eliminar) o problema da fragmentao. A seguir, os conceitos que envolvem a gerncia de memria virtual, incluindo a paginao: - espao de endereamento virtual: o conjunto de endereos virtuais que um processo pode enderear.

39

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

Espao de endereamento real: analogamente, o conjunto de endereos reais que


um processo pode enderear.

Mapeamento: como o espao de endereamento virtual no tem nenhuma relao

com o espao de endereamento real, um programa pode fazer referncia a um endereo virtual que esteja fora dos limites da memria principal (real), ou seja, os programas e suas estruturas de dados no esto mais limitados ao tamanho da memria fsica disponvel. Quando um programa executado, apenas uma parte do seu cdigo fica residente na memria principal, permanecendo o restante na memria virtual at o momento de ser referenciado. Este esquema de endereamento virtual ignorado pelo programador no desenvolvimento das aplicaes. Cabe ao compilador e ao linkeditor gerar cdigos executveis em funo do endereamento virtual, e o sistema operacional se incumbe de administrar os detalhes durante a sua execuo. O processador apenas executa instrues e referencia dados residentes no espao de endereamento real. Portanto, deve existir um mecanismo que transforme os endereos virtuais em endereos reais. Este mecanismo o que chamamos de mapeamento, e consiste em permitir a traduo do endereo virtual em endereo real. Como conseqncia, um programa no mais precisa estar necessariamente em endereos contguos na memria real para ser executado.

Tabela de endereamento de pginas: estrutura mantida pelo sistema para


armazenar, entre outras informaes, o mapeamento. nica e exclusiva para cada processo, relacionando os endereos virtuais do processo s suas posies na memria real.

Memria virtual por paginao: a tcnica de gerncia de memria onde o espao de

endereamento virtual e o espao de endereamento real so divididos em blocos do mesmo tamanho chamados pginas. As pginas do espao virtual so chamadas pginas virtuais, enquanto as pginas do espao real so chamadas pginas reais ou frames.

Page fault: a falha de pgina. Sempre que o processo referencia um endereo

virtual, o sistema verifica se a pgina correspondente j est carregada na memria real. Se no estiver, acontece o page fault. Neste caso, o sistema deve transferir a pgina virtual para um endereo na memria real. Esta transferncia chamada de paginao. O nmero de page faults gerados por um processo em um determinado intervalo de tempo chamado de taxa de paginao do processo. Se esta taxa atingir valores elevados, pode haver um comprometimento do desempenho do sistema. Um page fault provoca uma interrupo no processo, pois h a necessidade de acessar operaes de E/S. Assim, sempre que acontece a paginao, uma interrupo de E/S far com que o processo em execuo seja interrompido e colocado em estado de espera at que sua interveno de E/S seja realizada, quando ento o processo voltar fila de pronto e entrar em execuo de acordo com o escalonamento

40

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

normal. Enquanto o sistema trata a interrupo deste processo, um outro ocupar a CPU. -

Working-set: o conjunto de pginas de um processo, em memria real, em um

determinado instante. Este conceito surgiu com o objetivo de reduzir o problema do thrashing e est relacionado ao princpio da localidade. Existem dois tipos de localidade que so observados durante a execuo da maioria dos programas. A localidade espacial a tendncia de que, aps uma referncia a um endereo de memria, sejam realizadas novas referncias a endereos prximos ou adjacentes. A localidade espacial a tendncia de que, aps a referncia a uma posio de memria, esta mesma posio seja referenciada novamente num curto intervalo de tempo. A partir desse princpio de localidade, o processador tender a concentrar suas referncias a um conjunto de pginas do processo durante um determinado perodo de tempo. Imagine um loop principal de um programa que ocupe trs pginas. A tendncia que estas trs pginas tenham um alto ndice de referncias durante a execuo do programa.

Thrashing: o efeito causado pelo excesso de page faults durante a execuo de um

processo. Pode acontecer a nvel de programa ou de sistema. A nvel de programa, pode ser provocado por um programa mal escrito, com desvios incondicionais espalhados por seu cdigo (desobedecendo portanto aos princpios da localidade), ou por um limite de working-set muito pequeno (que no comporte o loop principal do programa, por exemplo). A soluo para estes casos reescrever o programa ou aumentar o limite do working-set. No caso de thrashing de sistema, significa que h mais pginas sendo requeridas na memria real do que ela pode realmente suportar. A soluo aumentar o tamanho da memria fsica.

Tamanho da pgina: deve estar entre 512 bytes e 128KB, aproximadamente. Pginas

menores promovem maior compartilhamento da memria, permitindo que mais programas possam ser executados. Pginas maiores diminuem o grau de compartilhamento da memria, com menos programas disputando o processador. Assim conclui-se que quanto menor o tamanho da pgina, MAIOR o grau de compartilhamento da memria e da CPU.

Polticas de busca de pginas: definem como as pginas sero carregadas da memria virtual para a memria real. A poltica por demanda estabelece que uma pgina

somente ser carregada quando for referenciada. Este mecanismo conveniente, pois leva para a memria real somente as pginas realmente necessrias execuo do programa, ficando as outras na memria virtual. A outra poltica, chamada paginao antecipada, funciona carregando antecipadamente vrias pginas da memria virtual para a principal, na tentativa de economizar tempo de E/S. Nem sempre o sistema acerta na antecipao, mas o ndice de acertos quase sempre maior que o de erros. Polticas de alocao de pginas: determinam quantos frames cada processo pode manter na memria real. A poltica de alocao fixa determina um limite de working-

41

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

set igual para todos os processos, e pode ser vista como uma poltica injusta, na medida em que processos maiores normalmente necessitam de um working-set maior. A outra poltica a varivel, que define um limite de working-set diferente e varivel para cada processo, em funo de seu tamanho, taxa de paginao ou at mesmo da taxa de ocupao da memria principal. -

Polticas de substituio de pginas: definem onde sero trocadas as pginas, quando se fizer necessria uma substituio. Na poltica local, somente as pginas do
processo que gerou o page fault so candidatas a serem substitudas.J na poltica global, todas as pginas alocadas na memria principal so candidatas substituio, independente do processo que gerou o page fault. Como uma pgina de qualquer processo pode ser escolhida, pode ser que este processo sofra um aumento temporrio da taxa de paginao em funo da diminuio das suas pginas alocadas em memria.

7.10 Algoritmos de substituio de pginas O maior problema na gerncia de memria virtual por paginao no decidir quais pginas carregar para a memria real, mas sim quais pginas liberar. Quando h a necessidade de carregar uma pgina, o sistema deve selecionar entre as diversas pginas alocadas na memria qual delas dever ser liberada pelo processo. Os algoritmos de substituio de pginas tm o objetivo de selecionar os frames que tenham as menores chances de serem referenciados num futuro prximo. Caso contrrio, o frame poderia retornar diversas vezes para a memria real, provocando excesso de page faults. So algoritmos de substituio de pginas: -

algoritmo timo: impossvel de ser implementado, pois o processador no consegue


prever com segurana qual frame no ser mais referenciado durante a execuo do programa. Tal fato deve-se lgica do programa e aos dados que ele manipula, desconhecidos pelo processador.

Algoritmo aleatrio: escolhe qualquer pgina, entre as alocadas na memria, para


fazer a substituio. Em funo de sua baixa eficincia, este algoritmo no muito utilizado, embora consuma poucos recursos do sistema.

Algoritmo FIFO (first in, first out): escolhe a pgina que est h mais tempo na

memria principal para fazer a troca. um algoritmo de simples implementao, mas corre o risco de retirar uma pgina que, embora tenha sido carregada h mais tempo, esteja sendo muito utilizada. Por essa razo no muito usado. Algoritmo LFU (least frequently used): elege a pgina menos freqentemente usada para efetuar a troca. Atravs de um contador, armazenado na tabela de

42

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

endereamento de pginas, mo sistema identifica quantas referncias cada pgina teve e utiliza esta informao para escolher a pgina. -

Algoritmo LRU (least recently used): elege a pgina menos recentemente usada para

fazer a troca. O sistema mantm na tabela de endereamento de pginas um campo onde so armazenadas a data e a hora da ltima referncia de cada pgina, e com base nestas informaes faz a seleo.

Algoritmo NRU (not recently used): elege a pgina menos recentemente usada para
efetuar a troca. O sistema exclui da deciso a pgina mais recente e escolhe entre as outras, pelo mtodo FIFO, qual pgina deve sair.

43

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

8. Gerncia de Sistemas de Arquivos


8.1 Estrutura de Diretrios

como o Sistema organiza logicamente os arquivos. Contm entradas associadas aos arquivos, com as informaes de localizao, nome, organizao e outros atributos: Nvel nico: a implementao mais simples de uma estrutura de diretrios, onde existe um nico diretrio contendo todos os arquivos do disco. muito limitado, no permitindo a criao de arquivos com o mesmo nome. Diretrio pessoal: Evoluo do modelo anterior, permite a cada usurio ter ser diretrio particular, sem a preocupao de conhecer os outros arquivos do disco. Neste modelo h um diretrio master que indexa todos os diretrios particulares dos usurios, provendo o acesso a cada um. Mltiplos nveis (RVORE): o modelo utilizado hoje em dia em quase todos os Sistemas Operacionais. Nesta modalidade cada usurio pode criar vrios nveis de diretrios (ou sub-diretrios), sendo que cada diretrio pode conter arquivos e sub-diretrios. O nmero de nveis possveis depende do Sistema Operacional. 8.2 Sistemas de alocao de arquivos

FAT: sistema criado no MS-DOS e depois utilizado no Windows. Usa listas encadeadas, tem um limite de rea utilizvel em parties de 2 GB, caracteriza-se por um baixo desempenho no acesso e armazenamento. FAT32: igual ao FAT no que diz respeito a organizao e desempenho, mas pode trabalhar com parties de at 2TB. NTFS: NT File System, original da plataforma Windows NT/2000/XP. Opera com uma estrutura em rvore binria, oferecendo alto grau de segurana e desempenho: nomes de arquivo com at 255 caracteres, podendo conter maisculas, minsculas e espaos em branco; dispensa ferramentas de recuperao de erros; bom sistema de proteo de arquivos; criptografia; suporta discos de at 264 bytes.

UNIX: Usa diretrio hierrquico, com um raiz e outros diretrios subordinados. Neste Sistema Operacional todos os arquivos so considerados apenas como uma seqncia de bytes, sem significado para o Sistema. responsabilidade da aplicao controlar os

44

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

mtodos de acesso aos arquivos. O UNIX utiliza tambm alguns diretrios padronizados, de exclusividade do Sistema. 8.3 Gerncia de espao livre

So trs as formas de se implementar estruturas de espaos livres. Uma delas atravs de uma tabela denominada mapa de bits, onde cada entrada da tabela associada a um bloco do disco representado por um bit, que estando com valor 0 indica que o espao est livre, e com valor 1 representa um espao ocupado. Gasta muita memria, pois para cada bloco do disco h uma entrada na tabela. A segunda forma utilizando uma lista encadeada dos blocos livres do disco. Desse modo, cada bloco possui uma rea reservada para armazenar o endereo do prximo bloco livre. Apresenta problemas de lentido no acesso, devido s constantes buscas seqenciais na lista. A terceira forma a tabela de blocos livres. Nesta, leva em considerao que blocos contguos de dados geralmente so alocados/liberados simultaneamente. Desta forma, pode-se enxergar o disco como um conjunto de segmentos de blocos livres. Assim, pode-se manter uma tabela com o endereo do primeiro bloco de cada segmento e o nmero de blocos contguos que se seguem. Alocao contgua: armazena o arquivo em blocos seqencialmente dispostos no disco. O arquivo localizado atravs do endereo do primeiro bloco de sua extenso em blocos. O principal problema neste tipo de alocao a existncia de espao livre para novos arquivos, que deve ser contgua. Utiliza as estratgias best-fit, worst-fit e first-fit (j conhecidas) para definir onde o arquivo ser alocado. Causa alto ndice de fragmentao no disco. Alocao encadeada: nesta modalidade o arquivo organizado como um conjunto de blocos ligados logicamente no disco, independente de sua localizao fsica, onde cada bloco possui um ponteiro para o bloco seguinte. A fragmentao no representa problemas na alocao encadeada, pois os blocos livres para alocao do arquivo no necessariamente precisam estar contguos. O que acontece a quebra do arquivo em vrios pedaos, o que aumenta o tempo de acesso. Neste tipo de alocao s se permite acesso seqencial aos blocos do arquivo, sendo esta uma das principais desvantagens da tcnica. Outra desvantagem a perda de espao nos blocos com o armazenamento dos ponteiros. Alocao indexada: esta tcnica soluciona a limitao da alocao encadeada, no que diz respeito ao acesso, pois permite acesso direto aos blocos do arquivo. Isso conseguido mantendo-se os ponteiros de todos os blocos do arquivo em uma nica estrutura chamada bloco de ndice. Este tipo de alocao, alm de permitir acesso direto aos blocos, no utiliza informaes de controle nos blocos de dados.

45

Universidade Jean Piaget de Cabo Verde, Plo do Mindelo

8.4

Proteo de acesso

Considerando-se que os meios de armazenamento so compartilhados por vrios usurios, fundamental que mecanismos de proteo sejam implementados para garantir a integridade e proteo individual dos arquivos e diretrios: Senha de acesso: mecanismo de simples implementao, mas apresenta duas desvantagens: no possvel determinar quais os tipos de operao podem ser efetuadas no arquivo, e, se este for compartilhado, todos os usurios que o utilizam devem conhecer a senha de acesso. Grupos de usurio: muito utilizada em muitos Sistemas Operacionais. Consiste em associar cada usurio a um grupo. Os grupos so organizados logicamente com o objetivo de compartilhar arquivos e diretrios no disco. Este mecanismo implementa trs nveis de proteo: OWNER (dono), GROUP (grupo) e ALL (todos). Na criao do arquivo o usurio especifica se o arquivo pode ser acessado somente pelo seu criador, pelo grupo ou por todos os usurios, alm de definir que tipos de acesso podem ser realizados (leitura, escrita, execuo e eliminao) Lista de controle de acesso: uma lista associada ao arquivo onde so especificados quais os usurios e os tipos de acesso permitidos. O tamanho dessa estrutura pode ser bastante extenso se considerarmos que um arquivo pode ser compartilhado por vrios usurios. Alm deste problema, h o inconveniente de se fazer acesso seqencial lista toda vez que um acesso solicitado. Em determinados sistemas de arquivos pode-se utilizar uma combinao de proteo por grupos de usurios ou por listas de acesso, oferecendo assim maior flexibilidade ao mecanismo de proteo de arquivos e diretrios.

46

Você também pode gostar