Escolar Documentos
Profissional Documentos
Cultura Documentos
Swapping
É uma técnica aplicada à gerência de memória que visa dar maior taxa de utilização
à memória principal, melhorando seu compartilhamento. Visa também resolver o problema
da falta de memória principal num sistema.
Toda vez que um programa precisa ser alocado para execução e não há espaço na
memória principal, o sistema operacional escolhe entre os processos alocados que não
tem previsão de utilizar a CPU nos próximos instantes (quase sempre entre aqueles que
estão em interrupção de E/S ou no final da fila de pronto), e “descarrega” este processo
da memória 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 memória entra em execução ocupando o espaço 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 memória principal, para que este possa ser executado novamente. E
vai trabalhando assim até que os processos vão terminando. O problema dessa técnica é
que pode provocar um número excessivo de acesso à memória secundária (disco),
levando o sistema a uma queda de desempenho.
2. Memória Virtual
1
Espaço de endereçamento real: analogamente, é o conjunto de endereços reais
que um processo pode endereçar.
2
Workingset: é o conjunto de páginas de um processo, em memória real, em um
determinado instante. Este conceito surgiu com o objetivo de reduzir o problema
do thrashing e está relacionado ao princípio da localidade. Existem dois tipos de
localidade que são observados durante a execução da maioria dos programas. A
localidade espacial é a tendência de que, após uma referência a um endereço de
memória, sejam realizadas novas referências a endereços próximos ou
adjacentes. A localidade espacial é a tendência de que, após a referência a uma
posição de memória, esta mesma posição seja referenciada novamente num
curto intervalo de tempo. A partir desse princípio de localidade, o processador
tenderá a concentrar suas referências a um conjunto de páginas do processo
durante um determinado período de tempo. Imagine um loop principal de um
programa que ocupe três páginas. A tendência é que estas três páginas tenham
um alto índice de referências durante a execução do programa.
3
Políticas de substituição de páginas: definem onde serão trocadas as páginas,
quando se fizer necessária uma substituição. Na política local, somente as
páginas do processo que gerou o page fault são candidatas a serem
substituídas.Já na política global, todas as páginas alocadas na memória
principal são candidatas à substituição, independente do processo que gerou o
page fault. Como uma página de qualquer processo pode ser escolhida, pode
ser que este processo sofra um aumento temporário da taxa de paginação em
função da diminuição das suas páginas alocadas em memória.
O maior problema na gerência de memória virtual por paginação não é decidir quais
páginas carregar para a memória real, mas sim quais páginas liberar. Quando há a
necessidade de carregar uma página, o sistema deve selecionar entre as diversas páginas
alocadas na memória qual delas deverá ser liberada pelo processo.
Algoritmo FIFO (first in, first out): escolhe a página que está há mais tempo na
memória principal para fazer a troca. É um algoritmo de simples implementação,
mas corre o risco de retirar uma página que, embora tenha sido carregada há
mais tempo, esteja sendo muito utilizada. Por essa razão não é muito usado.
Algoritmo LFU (least frequently used): elege a página menos freqüentemente
usada para efetuar a troca. Através de um contador, armazenado na tabela de
endereçamento de páginas, o sistema identifica quantas referências cada página
teve e utiliza esta informação para escolher a página.
Algoritmo LRU (least recently used): elege a página menos recentemente usada
para fazer a troca. O sistema mantém na tabela de endereçamento de páginas
um campo onde são armazenadas a data e a hora da última referência de cada
página, e com base nestas informações faz a seleção.
Algoritmo NRU (not recently used): elege a página não recentemente usada
para efetuar a troca. O sistema exclui da decisão a página mais recente e
escolhe entre as outras, pelo método FIFO, qual página deve sair.