Вы находитесь на странице: 1из 20

CENTRO UNIVERSITRIO INTERNACIONAL UNINTER

CST EM ANALISE E DESENVOLVIMENTO DE SISTEMAS

MATERIAL DE APOIO
SISTEMAS OPERACIONAIS

CURITIBA
2015

SUMRIO

1 CONCEITOS .................................................................................................................... 3
1.1 PROCESSAMENTO DE DADOS .......................................................................................... 3
1.2 SISTEMA COMPUTACIONAL ............................................................................................. 3
1.3 SISTEMA OPERACIONAL ................................................................................................. 3
2 HISTRIA DOS SISTEMAS OPERACIONAIS ................................................................ 3
3 TIPO DE SISTEMAS OPERACIONAIS ............................................................................ 4
4 O CONCEITO DE CONCORRNCIA EM SISTEMAS OPERACIONAIS ........................ 6
5 GERNCIA DE PROCESSOS ......................................................................................... 7
5.1 THREADS ...................................................................................................................... 8
5.1.1 CONCEITOS PARA GERENCIA DE THREADS .................................................................... 8
5.1.2 PROBLEMA DE COMUNICAO ENTRE PROCESSOS OU THREADS ..................................... 9
5.1.3 SEQNCIA LGICA PARA QUE PROCESSOS UTILIZEM RECURSOS DO SISTEMA ............... 10
6 GERNCIA DO PROCESSADOR ................................................................................. 12
6.1 CRITRIOS DE ESCALONAMENTO .................................................................................. 12
6.2 TIPOS DE ESCALONAMENTOS ....................................................................................... 12
7 GERNCIA DE MEMRIA............................................................................................. 14
7.1 TIPOS DE ALOCAO ................................................................................................... 14
7.2 ESTRATGIAS DE ALOCAO DE PARTIO ................................................................... 15
8 MEMRIA VIRTUAL ..................................................................................................... 15
8 .1 MAPEAMENTO ............................................................................................................ 15
8.2 TIPOS DE MEMRIA VIRTUAL ......................................................................................... 15
8.3 MECANISMO DE TRADUO .......................................................................................... 16
8.4 POLTICAS DE BUSCA DE PGINAS ................................................................................. 16
8.5 POLTICAS DE ALOCAO DE PGINAS ........................................................................... 16
8.6 POLTICAS DE SUBSTITUIO DE PGINAS ...................................................................... 16
8.7 ALGORITMOS DE SUBSTITUIO DE PGINAS .................................................................. 17
8.8 PRINCIPAIS ALGORITMOS DE SUBSTITUIO DE PGINAS ................................................. 17
8.8 PROTEO DE MEMRIA .............................................................................................. 19
8.9 COMPARTILHAMENTO DE MEMRIA ............................................................................... 19
REFERNCIA ................................................................................................................... 20

1 CONCEITOS

1.1 PROCESSAMENTO DE DADOS


O conceito de processamento de dados definido como conceito fundamental
em operao de computadores, consiste na entrada de dados por algum dispositivo
(teclado, mouse) o processamento desses dados (unidade central de processamento
UCP) e a sada de uma resposta (monitor, impressora e etc).
1.2 SISTEMA COMPUTACIONAL

Um sistema computacional composto por hardware e software. O hardware


composto de dispositivos de entrada, processamento e sada de dados, em essncia
so os componentes fsicos da mquina, placa me, processadores, placas de vdeo,
rede, udio e os dispositivos de armazenamento. O software so os programas do
computador, so classificados como software bsico que so os programas de
operao ou sistemas operacionais, software aplicativos que so os software de uso
diversos, as ferramentas e as linguagens de programao.
1.3 SISTEMA OPERACIONAL

Um sistema operacional um conjunto de elementos (programas) capazes de


fazer um todo (computador) funcionar. uma camada de software colocada entre o
hardware e os programas que executam tarefas dos usurios. Seus principais
objetivos so: tornar a utilizao do computador mais eficiente e conveniente;
distribuio dos recursos de memria, processador e dispositivos pelos programas;
esconder os detalhes de baixo nvel; prover recursos em alto nvel para acesso a
perifricos;

2 HISTRIA DOS SISTEMAS OPERACIONAIS

O primeiro computador digital foi desenvolvido por Charles Babbage, tambm


chamado de motor analtico. A partir da dcada de 40 possvel observar uma

evoluo muito rpida dos computadores que no incio se resumiam a grandes


mquinas de calcular.
Das mquinas construdas por meio de vlvulas e reles, operadas
exclusivamente pelos prprios engenheiros que participavam de sua construo,
surgiram equipamentos menores baseados nos circuitos eletrnicos cada vez mais
miniaturizados devido evoluo da indstria da microeletrnica.
O primeiro sistema operacional, chamado monitor por sua
simplicidade, foi desenvolvido em 1953 pelos usurios do
computador IBM 701 do Centro de Pesquisas da Gereral Motors,
justamente para tentar automatizar as tarefas manuais at ento
utilizadas. Posteriomente, este sistema seria reescrito para um
computador IBM 704 pelo grupo de usurios da IBM (Weizer, 1981).
Os sistemas operacionais foram desenvolvidos para automatizar a execuo de
programas (JOBS) e facilitar a vida de usurios e programadores.
De programas pouco interativos baseados em terminais de comando, os
sistemas operacionais foram evoluindo juntamente com o hardware e se tornando
cada vez mais eficientes, interativos e cumprindo uma de suas principais funes,
abstrair o hardware e disponibilizar os recursos de processamento para aplicativos e
usurios.
A medida que os computadores foram evoluindo, ganhando cada vez mais
capacidade de processamento e armazenamento de dados, os sistemas operacionais
foram implementando conceitos, de gerncia de memria, processador, processos e
outros dispositivos que permitem otimizar os recursos da mquina.

3 TIPO DE SISTEMAS OPERACIONAIS


Os sistemas operacionais so classificados quanto ao tempo de resposta e
entrada de dados em sistema operacional em lote (batch), Interativos, tempo real,
Hbridos.
Sistema de processamento batch, no exige interao com usurio a entrada
de dados feita por meio de um dispositivo, geralmente arquivos em disco,
processamento de clculos, compilaes, ordenaes, backups. Os sistemas
interativos, tambm conhecidos como sistemas de tempo compartilhado, geralmente
permitem a interao com usurio por meio de terminais, vdeo, teclado e mouse.

Sistemas de processamento em tempo real, implementados para responder 100%


das respostas em tempo real, o tempo de resposta o fator principal do sistema,
utilizado em monitoramentos, controle de trfego areo, de usinas nucleares. Os
sistemas hbridos uma combinao de sistema batch com sistemas interativos.
Quanto a execuo de tarefas os sistemas operacionais so classificados como
sistemas monotarefas, multitarefas e multiprocessamento.
Os sistemas monotarefas so caracterizados por executarem uma nica
aplicao de cada vez, j nos sistemas multitarefas, varias programas concorrem
pelos recursos de processamento. Os sistemas multiprocessados, possuem duas ou
mais CPUs interligas trabalhando em conjunto fortemente acoplados ou fracamenta
acoplados.
Os sistemas com multiprocessadores fortemente acoplados so aqueles que
possuem duas ou mais CPUs que compartilham uma nica memria e so controladas
por um nico sistema operacional. Os fracamente acoplados, possuem duas ou mais
CPUs cada uma com a sua memria e controladas por sistemas operacionais
independentes.
Quanto a estrutura, os sistemas operacionais so classificados como
Monolticos, em camadas, mquinas virtuais e cliente servidor.
Os sistemas operacionais ainda so classificados como sistemas operacionais
de computadores de grande porte, servidores, computadores pessoais e sistemas
operacionais embarcados. Os embarcados so sistemas que controlam dispositivos
mveis ou que no so computadores, como exemplo, microondas, geladeiras os
IPads, Iphone, PDAs e etc.
Os sistemas operacionais modernos so dividos em vrias camadas, onde cada
camada prove servios a camada superior mais prxima e oferece proteo a camada
mais inferior, o ncleo do sistema ou Kernel do sistema operacional.
O acesso ao recursos do Kernel feito por meio de chamada de sistemas
(system calls) de forma protegida para evitar dano ao sistema. As instrues que tm
o poder de comprometer o sistema so conhecidas como instrues privilegiadas
(modo kernel), enquanto as instrues no-privilegiadas so as que no oferecem
perigo ao sistema.

As chamadas de sistemas so os comandos de acesso as funes do SO, e


podem ser dividas em chamadas para Gerenciamento de Processos, para sinalizao,
para gerencia de arquivos, para manipulao de diretrios, para proteo e para
gerenciamento de tempo.
4 O CONCEITO DE CONCORRNCIA EM SISTEMAS OPERACIONAIS

Sistemas Operacionais podem ser vistos como um conjunto de rotinas


executadas de forma concorrente e ordenada. (Pinkert, 1990). A possibilidade de o
processador executar instrues ao mesmo tempo que outras operaes, como, por
exemplo, operaes de E/S, permite que diversas tarefas sejam executadas
concorrentemente pelo sistema. O conceito de concorrncia o princpio bsico para
o projeto e a implementao dos sistemas multiprogramveis.
Nos sistemas multiprogramveis, vrios programas podem estar residentes em
memria, concorrendo pela utilizao do processador. Dessa forma, quando um
programa solicita uma operao de E/S outros programas podero utilizar o
processador.
Para permitir a concorrncia entre programas, o sistema operacional
implementa vrios mecanismos de software e ou de hardware.
As interrupes o mecanismo que tornou possvel a implementao da
concorrncia nos computadores sempre gerada por algum evento externo ao
programa, exemplo uma operao de E/S. A exceo e gerada por um evento
sncrono direto do programa concorrente.
Os controladores so mecanismos de hardware que controlam as operaes
de I/o em disco, liberando o processador para executar outras tarefas. O controlador
sinaliza as interrupes ao processador.
A tcnica de buffering consiste na utilizao de uma rea na memria principal,
denominada buffer, para a transferncia de dados entre os dispositivos de E/S e a
memria. Esta tcnica permite que em uma operao de leitura o dado seja transferido
primeiramente para o buffer, liberando imediatamente o dispositivo de entrada para
realizar nova tarefa.

A tcnica de spooling utiliza uma rea em disco como se fosse um grande


buffer. Neste caso, dados podem ser lidos ou gravados em disco, enquanto programas
so executados concorrentemente. Todos os sistemas operacionais utilizam esta
tcnica no gerenciamento de impresso. (arquivos de spool).
A reentrncia a capacidade de um cdigo executvel (cdigo reentrante) ser
compartilhado por diversos usurios, exigindo que apenas uma cpia do programa
esteja na memria.

5 GERNCIA DE PROCESSOS

Um processo pode ser entendido inicialmente como um programa em


execuo, s que seu conceito mais abrangente. Este conceito torna-se mais claro
quando pensamos de que forma os sistemas multiprogramveis (multitarefa) atendem
os diversos usurios (tarefas) e mantm informaes a respeito dos vrios programas
que esto sendo executados concorrentemente [MACHADO, 1997].
Um processo possu informaes do contexto de hardware, software e
endereamento de memria.
O contexto de hardware fundamental para a implementao dos sistemas
time-sharing, onde os processos se revezam na utilizao do processador, podendo
ser interrompidos e, posteriormente, restaurados como se nada tivesse acontecido. A
troca de um processo por outro na CPU, realizada pelo sistema operacional,
denominada mudana de contexto (context switching). A mudana de contexto
consiste em salvar o contedo dos registradores da CPU e carreg-los com os valores
referentes ao do processo que esteja ganhando a utilizao do processador. Essa
operao resume-se, ento, em substituir o contexto de hardware de um processo
pelo de outro.
O contexto de software especifica caractersticas do processo que vo influir
na execuo de um programa, como o nmero mximo de arquivos abertos
simultaneamente ou o tamanho do buffer para operaes de E/S. Essas
caractersticas so determinadas no momento da criao do processo, mas algumas
podem ser alteradas durante sua existncia. O contexto de software define

basicamente trs grupos de informaes de um processo: sua identificao, suas


quotas e seus privilgios.
O espao de endereamento a rea de memria do processo onde um
programa poder ser executado, alm do espao para os dados utilizados por ele.
Cada processo possui seu prprio espao de endereamento, que deve ser protegido
do acesso dos demais processos.
Os processos so executados de forma cclica alternando seu estado. Estado
de execuo (running) quando est sendo processado pela CPU. Estado de pronto,
(ready) quando apenas aguarda uma oportunidade para executar, ou seja, espera que
o sistema operacional aloque a CPU para sua execuo. Estado de espera (wait)
quando aguarda algum evento externo ou algum recurso para poder prosseguir seu
processamento.
5.1 THREADS

Em sistemas tradicionais, cada processo tem seu espao de endereamento


individual e apenas um fluxo de controle (thread). No entanto, algumas vezes
desejamos ter vrios fluxos de

controle

(threads) no mesmo espao

de

endereamento simulando uma execuo em paralelo, como se cada fluxo fosse visto
realmente como um processo distinto (exceto pelo fato de compartilharem um nico
espao de endereamento).
Muitos threads podem existir dentro de um nico contexto de processo,
cooperando entre si a fim de realizar um dado clculo e compartilhando o espao de
endereamento e o restante do contexto desse processo. (multithread).
Um ambiente multithread se utiliza dos mesmos mecanismos de concorrncia
entre processos, interrupes, excees e a comunicao entre processos (Inter
Process Comunication IPC), essenciais para permitir acesso concorrente a um
recurso compartilhado.
5.1.1 CONCEITOS PARA GERENCIA DE THREADS

Regio Crtica: Tambm chamada de Seo Crtica. a parte do sistema que


permite acesso concorrente entre os processos. Exemplo: spool de impresso, buffer
de memria, etc.;

Excluso Mtua: uma tcnica usada em programao concorrente para


evitar que dois ou mais processos ou threads tenham acesso simultaneamente a um
recurso compartilhado do sistema, ou seja, a uma regio crtica;
Sinais: So interrupes de software que notificam ao processo que um evento
ocorreu. Os sinais no permitem que processos especifiquem dados para trocar com
outros processos. So utilizados para sincronizao entre processos e S.O, ou seja,
os sinais s ocorrem entre processos ou entre um processo e o S.O.
Trap: o sinal que o processo envia para o S.O solicitando um servio
protegido do mesmo (como por exemplo sua entrada em uma regio crtica). Um trap
bloqueia o processo at que o servio requerido pelo mesmo, ao sistema operacional,
seja realizado.
5.1.2 PROBLEMA DE COMUNICAO ENTRE PROCESSOS OU THREADS

Processos podem solicitar recursos, mesmo que estejam de posse de recursos


obtidos anteriormente. Caso estes recursos j estejam alocados a outros processos, o
processo solicitante deve aguardar pela liberao do mesmo. Essa a condio
natural do sistema de alocao de recursos, porm, alguns problemas naturalmente
podem ocorrer, neste caso temos os problemas de comunicao entre processos ou
threads.
Condio de Corrida: Tambm chamada de Corriza de Hazards, uma das
conseqncias da sincronizao incorreta, gerando a disputa de recursos do sistema
por mltiplos processos, ou threads, causando o corrompimento dos dados, onde
parte dos dados so modificados por um processo/thread e parte por outro, ou seja,
acontece quando dois ou mais processos entram simultaneamente na regio crtica.
Starvation:

Tambm

chamado

de

Livelock,

acontece

quando

processos/threads esto em execuo, mas nada acontece, isso ocorre geralmente


quando dois ou mais processos/threads ento trabalhando com intenes contrarias, o
que feito por um processo/thread desfeito pela outro. Tambm ocorre quando um
processo/thread tenta o acesso a um recurso que est sendo utilizado por outro
processo/thread, o S.O pede para que o mesmo aguarde sua liberao, porm o
processo/thread no est preparado para o aguardo, ou seja, ele vai continuar

solicitando o recurso indefinidamente, mesmo que o recurso seja liberado, pois o


processo/thread no foi programado para uma rejeio.
Deadlock: o problema mais terrvel e mais estudado em sistemas
operacionais. uma situao em que dois ou mais processos/threads esto em
estado simultneo de espera, cada um aguardando que um dos demais libere um
bloqueio para ele poder prosseguir, ou seja, um conjunto de N processos est em
deadlock quando cada um dos N processos est bloqueado espera de um recursos
que somente pode ser liberado por um processo desse conjunto.

Situao de um deadlock no trnsito.


5.1.3 SEQNCIA LGICA PARA QUE PROCESSOS UTILIZEM RECURSOS DO
SISTEMA

Pedido: o processo cria um trap para solicitar um recurso. Se o processo no tiver


seu pedido atendido, pois o recurso no est livre, ele bloqueado e ficar
esperando at ganhar a posse do recurso.
Uso: tendo posse do recurso ele poder utiliz-lo.
Liberao: desalocar o recurso adquirido pelo processo o liberando para outro
processo. O gerenciamento desses recursos feito pelo sistema operacional

atravs de uma tabela, que registra se cada recurso est livre ou ocupado. Caso o
recurso esteja ocupado, tambm especificado o processo que tem a posse do
recurso.

6 GERNCIA DO PROCESSADOR
A poltica de escalonamento de um sistema operacional tem diversas funes
bsicas, como a de manter o processador ocupado a maior parte do tempo,
balancear o uso da UCP entre processos, privilegiar a execuo de aplicaes
crticas, maximizar o throughput do sistema e oferecer tempos de resposta
razoveis para usurios interativos.
Em ambientes que implementam apenas processos, o escalonamento realizado
com base nos processos prontos para execuo. Em sistemas que implementam
threads, o escalonamento realizado considerando os threads no estado de
pronto, independentemente do processo.

6.1 CRITRIOS DE ESCALONAMENTO


As caractersticas de cada sistema operacional determinam quais so os principais
aspectos para a implementao de uma poltica de escalonamento adequada. Os
principais critrios so:
Utilizao do processador: Na maioria dos sistemas desejvel que o
processador permanea a maior parte do tempo ocupado.
Throughput: representa o nmero de processos executados em um determinado
intervalo de tempo.
Tempo de Processador /Tempo de UCP: o tempo que um processo leva no
estado de execuo durante seu processamento.
Tempo de Espera: o tempo total que um processo permanece na fila de pronto
durante seu processamento, aguardando para ser executado.
Tempo de Turnaround: o tempo que um processo leva desde a sua criao at
seu trmino, levando em considerao todo o tempo gasto na espera para
alocao de memria, espera na fila de pronto, processamento na UCP e na fila de
espera, como nas operaes de E/S.
Tempo de Resposta: Tempo decorrido entre uma requisio ao sistema ou
aplicao e o instante em que a resposta exibida.

6.2 TIPOS DE ESCALONAMENTOS


No-Preemptivos e Preemptivos: As polticas de escalonamento podem ser
classificadas segundo a possibilidade de o sistema operacional interromper um
processo em execuo e substitu-lo por um outro, atividade esta conhecida como
preempo. O escalonamento no-preemptivo (sem interrupo) foi o primeiro tipo
de escalonamento implementado nos sistemas multiprogramveis, onde
predominava tipicamente o processamento bath. No escalonamento preemptivo, o
sistema operacional pode interromper um processo em execuo e pass-la para o
estado de pronto, com o objetivo de alocar outro processo na UCP.

Escalonamento First-in-First-Out (FIFO): O processo que chegar primeiro ao


estado de pronto o selecionado para execuo.
Escalonamento Shortest-Job-First (SJF): Seleciona primeiro o processo de
menor tempo de processador ainda por executar.
Escalonamento Cooperativo: uma implementao que busca aumentar o
grau de multiprogramao em polticas de escalonamentos que no possuam
menanismos de preempo. Neste caso, um processo em execuo pode
voluntariamente liberar o precessador para outro processo.
Escalonamento Circular: um escalonamento do tipo preemptivo, projetado
especialmente para sistemas de tempo compartilhado. Quando um processo passa
para o estado de execuo existe um tempo-limite para uso contnuo do processador
denominado fatia de tempo (time slice) ou quantum.
Escalonamento por Prioridades: um escalonamento do tipo preemptivo
realizado com base em um valor associado a cada processo denominado prioridade
de execuo. O processo com maior prioridade no estado de pronto sempre o
escolhido para execuo, e processos com valores iguais so escalonados seguindo
critrios de FIFO.
Escalonamento Circular com Prioridades: Implementa o conceito de fatia de
tempo e de prioridade de execuo associada a cada processo.
Escalonamento por Mltiplas Filas: Existem diversas filas de processos no
estado de pronto, cada qual com uma prioridade especfica. Os processos so
associados s filas em funo de caractersticas prprias, como importncia para a
aplicao , tipo de processamento ou rea de memria necessria.
Escalonamento por Mltiplas Filas com Realimentao: semelhante ao
escalonamento por Mltiplas Filas, porm os processos podem trocar de filas durante
seu processamento. Possibilidade de reorganizar os processos nas filas de acordo
com o seu comportamento.

7 GERNCIA DE MEMRIA
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.
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.

7.1 TIPOS DE ALOCAO

Alocao Contigua Simples: A memria principal subdivida em duas reas:


uma para o sistema operacional e outra para o programa do usurio.
Tcnica de Overlay: A memria dividida em rea do sistema operacional,
rea do mdulo principal do programa do usurio e uma rea de troca entre os
mdulos secundrios do programa do usurio, denominada rea de overlay.
Alocao Particionada Esttica ou fixa: A memria era dividida em pedaos
de tamanho fixo, chamado parties. O tamanho das participaes, estabelecido na
fase de inicializao do sistema, era definido em funo do tamanho dos programas
que executariam no ambiente. Alocao fixa com cdigo absoluto os programas s
podem ser executados em posies fsicas de memria. Alocao fixa com cdigo
relocvel, todas as referncias a endereos no programa so relativas ao inicio do
cdigo, e no a endereos fsicos de memria. Nesse tipo de alocao o principal
problema a fragmentao interna, os espaos que sobram nas parties quando
alocado aplicaes e tamanho menor que a partio.
Alocao Particionada Dinmica: As parties so criadas exatamente de
acordo com o tamanho dos programas que sero executadas, eliminando problema da
fragmentao interna. Cada vez que surge um novo programa para ser executado, so
criadas novas parties, com isso surge um novo problema, a fragmentao externa,
que so as parties to pequenas que no suficientes para alocar os programas
necessrios.

7.2 ESTRATGIAS DE ALOCAO DE PARTIO


Os sistemas operacionais implementam, basicamente, trs estratgias para
determinar em qual rea livre um programa ser carregada para execuo.
Essas estratgias tentam evitar ou diminuir o problema da fragmentao externa.
Best-fit, a melhor partio escolhida, ou seja aquela em que o tamanho da
partio tem o mesmo tamanho do programa. Worst-fit, nesta estratgia a pior
partio escolhida, deixando espaos livres maiores permitindo que mais
programas sejam executados, diminuindo o problema da fragmentao. First-Fit, a
primeira partio livre de tamanho suficiente para carregar o programa escolhida.
Swapping: uma tcnica aplicada gerncia de memria para programas que
esperam por memria livre para serem executadas. Nesta situao, o sistema
escolhe um processo residente, que transferido da memria principal para a
memria secundria (swap out), geralmente em disco.

8 MEMRIA VIRTUAL
uma tcnica sofisticada e poderosa de gerncia de memria, onde as memrias
principal e secundria so combinadas dando ao usurio a iluso de existir uma
memria muito maior que a capacidade real da memria principal. O conceito de
memria virtual fundamenta-se em no vincular o endereamento feito pelo
programa dos endereos fsicos da memria principal.

8 .1 MAPEAMENTO
O mapeamento o mecanismo que permite a converso do endereo virtual
em endereo real. Nos sistemas modernos a tarefa de traduo dos endereos
virtuais realizada por hardware juntamente com o sistema operacional, de forma
a no comprometer seu desempenho e torn-lo transparente a usurios e
aplicaes. O dispositivo de hardware responsvel por esta traduo conhecido
como unidade de gerncia de memria (Memory Management Unit MMU), sendo
acionado sempre que se faz referncia a um endereo virtual.

8.2 TIPOS DE MEMRIA VIRTUAL


Memria Virtual Paginao - A memria virtual por paginao a tcnica
de gerncia de memria onde o espao de endereamento real so divididos em
blocos de mesmo tamanho chamado pginas.

Memria Virtual Segmentao - Memria virtual por segmentao a


tcnica de gerncia de memria onde o espao de endereamento virtual dividido
em blocos de tamanhos diferentes chamados segmentos.
Enquanto na paginao existe o problema da fragmentao interna, na
segmentao surge o problema da fragmentao externa.

8.3 MECANISMO DE TRADUO


Sempre que o processo referencia um endereo virtual, a unidade de
gerncia de memria verifica, atravs do bit de validade, se a pagina que contm o
endereo referenciado est ou no na memria principal. Caso a pgina no
esteja na memria, dizemos que ocorreu um page fault. Para corrigir o erro o
sistema dever transferir a pgina da memria secundaria para principal.

8.4 POLTICAS DE BUSCA DE PGINAS


O mecanismo de memria virtual permite a execuo de um programa sem
que seu cdigo esteja completamente residente na memria principal. A poltica de
busca de pginas determina quando uma pgina dever ser carregada para a
memria. Paginao por demanda e paginao antecipada.

8.5 POLTICAS DE ALOCAO DE PGINAS


A poltica de alocao de pginas determina quantos frames cada processo
pode manter na memria principal.
Alocao fixa: cada processo tem um numero mximo de pginas que
pode ser utilizado durante sua execuo.
Alocao varivel: o numero mximo de pginas alocadas ao processo
pode variar durante sua execuo.

8.6 POLTICAS DE SUBSTITUIO DE PGINAS


Consiste na atuao do sistema operacional na substituio pginas (Page
out e Page in) quando o processo atinge o numero mximo de pginas que foram
alocadas.
Working Set: Tem o objetivo de reduzir o problema de thrashing
(sucessivos page faults e I/O de pginas) e erros de page faults (pginas no
encontradas na memria).

8.7 ALGORITMOS DE SUBSTITUIO DE PGINAS


Os algoritmos de substituio de pginas tem o objetivo de selecionar os
frames que tenham as menores chances de serem referenciados em um futuro
prximo. A partir do princpio da localidade, a maioria dos algoritmos tenta prever o
comportamento futuro das aplicaes em funo do comportamento passado,
avaliando o numero de vezes que uma pgina foi referenciada, o momento em que
foi carregada para memria principal e o intervalo de tempo da ltima referncia.

8.8 PRINCIPAIS ALGORITMOS DE SUBSTITUIO DE PGINAS


timo: seleciona para substituio uma pgina que no ser mais referenciada no
futuro ou aquela que levar o maior intervalo de tempo para ser novamente utilizada.
Aleatrio: Todas as pginas alocadas na memria principal tm a mesma chance
de serem selecionadas, inclusive os frames que so freqentemente referenciados.
Consome pouco recurso de memria, mas possui baixa eficincia.
FIFO: Seleciona para substituio a primeira pgina que foi utilizada e que est a
mais tempo na memria. A fila por ordem de tempo, as primeiras utilizadas so as
primeiras da fila.
LFU (least frequently used): A pgina que possuir o contador com o menor nmero
de referncias ser escolhida, ou seja, o algoritmo evita selecionar pginas que so
bastante utilizadas. O problema que justamente as pginas que esto a pouco tempo na
memria que podem ser selecionadas.
LRU (least recently used): Seleciona a pgina na memria principal que est h
mais tempo sem ser referenciada. necessrio que cada pgina tenha a ela associado o
momento do ltimo acesso, que deve ser atualizado a cada referncia a um frame.
Quando for necessrio substituir uma pgina, o sistema far uma busca por um frame que
esteja h mais tempo sem ser referenciado. Outra maneira de implementar o LRU seria
atravs de uma lista encadeada, onde todas as pginas estariam ordenadas pelo
momento da ltima referencia. Elevado custo de implementao.
NRU (not recently used): O algoritmo NRU bastante semelhante ao LRU, porm
com menor sofisticao. Para a implementao deste algoritmo necessrio um bit
adicional, conhecido como bit de referncia (BR). O bit indica se a pgina foi utilizada
recentemente e est presente em cada entrada da tabela de pginas.
Quando uma pgina carregada para a memria principal, o bit de referncia
alterado pelo hardware, indicando que a pgina foi referenciada (BR=1). No momento da
substituio de uma pgina, o sistema seleciona um dos frames que no tenha sido
utilizado recentemente, ou seja, com o bit de referncia igual a zero.
Categorias Bits avaliados
1

BR = 0 BM = 0

Resultado
Pgina no referenciadas e no modificada.

BR = 0 BM = 1

Pgina no referenciadas e modificada.

BR = 1 BM = 0

Pgina referenciada e no modificada.

BR = 1 BM = 1

Pgina referenciada e modificada.

FIFO com buffer de pginas: O algoritmo FIFO com buffer de pginas combina
uma lista de pginas alocadas (LPA) com uma lista de pginas livres (LPL). A LPA
organiza todas as pginas que esto sendo utilizadas na memria principal, podendo ser
implementada como uma lista nica para todos os processos ou uma lista individual para
cada processo. Independente da poltica utilizada, a LPA organiza as pginas alocadas h
mais tempo na memria no incio da lista, enquanto as pginas mais recentes no seu
final. Da mesma forma, a LPL organiza todos os frames livres da memria principal,
sendo que as pginas livres h mais tempo esto no incio e as mais recentes no final.
Sempre que um processo necessita alocar uma nova pgina, o sistema utiliza a primeira
pgina da LPL, colocando-a no final da LPA (figura 15a). Caso o processo tenha que
liberar uma pgina, o mecanismo de substituio seleciona o frame em uso h mais
tempo na memria, isto , o primeiro da LPA, colocando-o no final da LPL (figura 15b).
importante notar que a pgina selecionada e que entrou na LPL continua
disponvel na memria principal por um determinado intervalo de tempo. Caso esta pgina
seja novamente referenciada e ainda no tenha sido alocada, basta retir-la da LPL e
devolv-la ao processo (figura 15c). Nesse caso, a LPL funciona como um buffer de
pginas, evitando o acesso memria secundria. Por outro lado, se a pgina no for
mais referenciada, com o passar do tempo ir chegar ao incio da LPL, quando ser
utilizada para um outro processo. Caso a pgina seja posteriormente referenciada, o
sistema ter que carreg-la novamente da memria secundria.
FIFO circular: O algoritmo FIFO circular utiliza como base o FIFO, porm as
pginas alocadas na memria esto em uma estrutura de lista circular, semelhante a um
relgio. Este algoritmo implementado, com pequenas variaes na maioria dos sistemas
Unix. Para a implementao do algoritmo existe um ponteiro que guarda a posio da
pgina mais antiga na lista (figura 16a). Cada pgina possui associado um bit de
referncia, indicando se a pgina foi recentemente referenciada. Quando necessrio
substituir uma pgina, o sistema verifica se o frame apontado tem o bit de referncia
desligado (BR = 0). Nesse caso, a pgina selecionada para descarte, pois, alm de ser
a mais antiga, no foi utilizada recentemente. Por outro lado, se a pgina apontada tem o
bit de referncia ligado (BR = 1), o bit desligado e o ponteiro incrementado, pois, apesar
de ser a pgina mais antiga, foi utilizada recentemente. O processo se repete at ser
encontrada uma pgina com bit de referncia igual a zero (figura 16b).
Neste algoritmo, existe a possibilidade de todos os frames possurem o bit de
referncia ligado. Nesse caso, o ponteiro percorrer toda a lista, desligando o bit de
referncia de cada pgina. Ao final, a pgina mais antiga selecionada. A utilizao do bit
de referncia permite conceder a cada pgina uma segunda chance antes de ser

substituda. possvel melhorar a eficincia do algoritmo utilizando o bit de modificao,


juntamente com o bit de referncia, como apresentado no esquema NRU.

8.8 PROTEO DE MEMRIA


Em qualquer sistema multiprogramvel, onde diversas aplicaes compartilham a
memria principal, devem existir mecanismos para preservar as reas de memria do
sistema operacional e dos diversos processos dos usurios.
Um primeiro nvel de proteo inerente ao prprio mecanismo de memria virtual
por paginao. Neste esquema, cada processo tem a sua prpria tabela de mapeamento
e a traduo dos endereos realizada pelo sistema. Desta forma, no possvel a um
processo acessar reas de memria de outros processos, a menos que haja
compartilhamento explcito de pginas entre processos. A proteo de acesso realizada
individualmente em cada pgina da memria principal, utilizando-se as entradas das
tabelas de mapeamento, onde alguns bits especificam os acessos permitidos.

8.9 COMPARTILHAMENTO DE MEMRIA


Em sistemas que implementam memria virtual, bastante simples a
implementao da reentrncia, possibilitando compartilhamento de cdigo entre os
diversos processos. Para isso, basta que as entradas das tabelas de mapeamento dos
processos apontem para os mesmos frames na memria principal, evitando, assim, vrias
cpias de um mesmo programa na memria. Apesar de os processos compartilharem as
mesmas pginas de cdigo, cada um possui sua prpria rea de dados em pginas
independentes.

REFERNCIA

MACHADO, Francis Berenger e MAIA, Paulo Luiz. Arquitetura de Sistemas


Operacionais 4 edio. LTC, 2007.
TANENBAUM & WOODHULL. Sistemas Operacionais, Projeto e Implementao 3
edio. Bookman, 2008.

Вам также может понравиться