SISTEMAS OPERACIONAIS I Swapping Mesmo com o aumento da eficiência da multiprogramação e,...

22
SISTEMAS OPERACIONAIS I Swapping Mesmo com o aumento da eficiência da multiprogramação e, particularmente, da gerência de memória, muitas vezes um programa não podia ser executado por falta de uma partição livre disponível. A técnica de swapping foi produzida para contornar o problema da insuficiência de memória principal.

Transcript of SISTEMAS OPERACIONAIS I Swapping Mesmo com o aumento da eficiência da multiprogramação e,...

Page 1: SISTEMAS OPERACIONAIS I Swapping Mesmo com o aumento da eficiência da multiprogramação e, particularmente, da gerência de memória, muitas vezes um programa.

SISTEMAS OPERACIONAIS I

Swapping

Mesmo com o aumento da eficiência da multiprogramação e, particularmente, da gerência de memória, muitas vezes um programa não podia ser executado por falta de uma partição livre disponível. A técnica de swapping foi produzida para contornar o problema da insuficiência de memória principal.

Page 2: SISTEMAS OPERACIONAIS I Swapping Mesmo com o aumento da eficiência da multiprogramação e, particularmente, da gerência de memória, muitas vezes um programa.

SISTEMAS OPERACIONAIS I

Swapping

O swapping é uma técnica aplicada à gerência de memória para programas que esperam por memória livre para serem executados. Nessa situação, o sistema escolhe um processo residente que é transferido da memória principal para a memória secundária (swap out), geralmente o disco.

Page 3: SISTEMAS OPERACIONAIS I Swapping Mesmo com o aumento da eficiência da multiprogramação e, particularmente, da gerência de memória, muitas vezes um programa.

SISTEMAS OPERACIONAIS I

Swapping

Posteriormente, o processo é carregado de volta da memória secundária para a memória principal (swap in) e pode continuar sua execução como se nada tivesse ocorrido.

Page 4: SISTEMAS OPERACIONAIS I Swapping Mesmo com o aumento da eficiência da multiprogramação e, particularmente, da gerência de memória, muitas vezes um programa.

SISTEMAS OPERACIONAIS I

Swapping

O algoritmo de escolha do processo a ser retirado da memória principal deve priorizar aquele com menor chance de ser executado, para evitar o swapping desnecessário de um processo que será executado logo em seguida. Os processos retirados da memória estão, geralmente, no estado de espera, não existindo a possibilidade de um processo no estado de pronto também ser selecionado.

Page 5: SISTEMAS OPERACIONAIS I Swapping Mesmo com o aumento da eficiência da multiprogramação e, particularmente, da gerência de memória, muitas vezes um programa.

SISTEMAS OPERACIONAIS I

Swapping

Para que a técnica de swapping seja implementada, é essencial que o sistema ofereça um loader que implemente a relocação dinâmica de programas. Um loader relocável que não ofereça essa facilidade permite que um programa seja colocado em qualquer posição de memória; porém, a relocação é apenas utilizada no momento do carregamento.

Page 6: SISTEMAS OPERACIONAIS I Swapping Mesmo com o aumento da eficiência da multiprogramação e, particularmente, da gerência de memória, muitas vezes um programa.

SISTEMAS OPERACIONAIS I

Swapping

No caso do swapping, um programa pode sair e voltar diversas vezes para a memória, sendo necessária que a relocação seja realizada pelo loader a cada carregamento. A relocação dinâmica é realizada por meio de um registrador especial denominado registrador de relocação. No momento em que o programa é carregado na memória, o registrador recebe o endereço inicial da posição de memória que o programa irá ocupar.

Page 7: SISTEMAS OPERACIONAIS I Swapping Mesmo com o aumento da eficiência da multiprogramação e, particularmente, da gerência de memória, muitas vezes um programa.

SISTEMAS OPERACIONAIS I

Swapping

Toda vez que ocorrer uma referência a algum endereço, o endereço contido na instrução será somado ao conteúdo do registrador, gerando, assim, o endereço físico. Dessa forma, um programa pode ser carregado em qualquer posição de memória.

Page 8: SISTEMAS OPERACIONAIS I Swapping Mesmo com o aumento da eficiência da multiprogramação e, particularmente, da gerência de memória, muitas vezes um programa.

SISTEMAS OPERACIONAIS I

Swapping

O conceito de swapping permite maior compartilhamento da memória principal e, consequentemente, maior utilização dos recursos do sistema computacional. Seu maior problema é o elevado custo das operações de entrada/saída (swap in/out). Em situações críticas, quando há pouca memória disponível, o sistema pode ficar quase que dedicado à execução de swapping, deixando de realizar outras tarefas e impedindo a execução dos processos residentes.

Page 9: SISTEMAS OPERACIONAIS I Swapping Mesmo com o aumento da eficiência da multiprogramação e, particularmente, da gerência de memória, muitas vezes um programa.

SISTEMAS OPERACIONAIS I

SwappingGerenciando a memória livreQuando a memória é atribuída dinamicamente, o sistema operacional deve gerenciá-la. De modo geral, há dois modos de verificar a utilização da memória: mapas de bits e listas livres. Com um mapa de bits, a memória é dividida entre unidades de alocação tão pequenas quanto palavras ou tão grandes como vários kilobytes.

Page 10: SISTEMAS OPERACIONAIS I Swapping Mesmo com o aumento da eficiência da multiprogramação e, particularmente, da gerência de memória, muitas vezes um programa.

SISTEMAS OPERACIONAIS I

SwappingGerenciando a memória livreA cada unidade de alocação corresponde um bit no mapa de bits, o qual é 0 se a unidade estiver livre e 1 se estiver ocupada (ou vice-versa).

Page 11: SISTEMAS OPERACIONAIS I Swapping Mesmo com o aumento da eficiência da multiprogramação e, particularmente, da gerência de memória, muitas vezes um programa.

SISTEMAS OPERACIONAIS I

SwappingGerenciando a memória livreO principal problema com essa técnica é que, quando se decide carregar na memória um processo com tamanho de K unidades, o gerenciador de memória precisa encontrar espaço disponível na memória procurando no mapa de bits uma sequência de k bits consecutivos em 0. Essa busca pode se tornar lenta demais.

Page 12: SISTEMAS OPERACIONAIS I Swapping Mesmo com o aumento da eficiência da multiprogramação e, particularmente, da gerência de memória, muitas vezes um programa.

SISTEMAS OPERACIONAIS I

SwappingGerenciando a memória livreOutra maneira de gerenciar o uso da memória é manter uma lista encadeada de segmentos de memória alocados e disponíveis.

Page 13: SISTEMAS OPERACIONAIS I Swapping Mesmo com o aumento da eficiência da multiprogramação e, particularmente, da gerência de memória, muitas vezes um programa.

SISTEMAS OPERACIONAIS I

SwappingGerenciando a memória livreUm segmento é tanto uma área de memória alocada a um processo como uma área de memória livre situada entre as áreas de dois processos. Cada elemento dessa lista encadeada especifica um segmento de memória livre (L) ou um segmento de memória alocado a um processo (P), o endereço onde se inicia esse segmento, seu comprimento e um ponteiro para o próximo elemento da lista.

Page 14: SISTEMAS OPERACIONAIS I Swapping Mesmo com o aumento da eficiência da multiprogramação e, particularmente, da gerência de memória, muitas vezes um programa.

SISTEMAS OPERACIONAIS I

SwappingGerenciando a memória livreQuando um processo termina sua execução geralmente tem dois vizinhos na lista encadeada de segmentos de memória. Esses vizinhos podem ser ou segmentos de memória alocados a processos ou segmentos de memória livres e, assim, formar quatro combinações possíveis.

Page 15: SISTEMAS OPERACIONAIS I Swapping Mesmo com o aumento da eficiência da multiprogramação e, particularmente, da gerência de memória, muitas vezes um programa.

SISTEMAS OPERACIONAIS I

SwappingGerenciando a memória livreQuatro combinações de vizinhos para o processo X, que termina:

Page 16: SISTEMAS OPERACIONAIS I Swapping Mesmo com o aumento da eficiência da multiprogramação e, particularmente, da gerência de memória, muitas vezes um programa.

SISTEMAS OPERACIONAIS I

SwappingEstratégias de alocação de partiçãoOs sistemas operacionais implementam, basicamente, três estratégias para determinar em qual área livre um programa será carregado para execução. Essas estratégias tentam evitar ou diminuir o problema dafragmentação externa.

Page 17: SISTEMAS OPERACIONAIS I Swapping Mesmo com o aumento da eficiência da multiprogramação e, particularmente, da gerência de memória, muitas vezes um programa.

SISTEMAS OPERACIONAIS I

SwappingEstratégias de alocação de partiçãoNa estratégia best-fit, é escolhida a partição em que o programa deixa o menor espaço sem utilização (o espaço que sobra menos). Nesse algoritmo a lista de áreas livres está ordenada por tamanho, diminuindoo tempo de busca por uma área desocupada.

Page 18: SISTEMAS OPERACIONAIS I Swapping Mesmo com o aumento da eficiência da multiprogramação e, particularmente, da gerência de memória, muitas vezes um programa.

SISTEMAS OPERACIONAIS I

SwappingEstratégias de alocação de partiçãoNa estratégia da worst-fit, é escolhida a partição em que o programa deixa o maior espaço sem utilização (o maior espaço).

Page 19: SISTEMAS OPERACIONAIS I Swapping Mesmo com o aumento da eficiência da multiprogramação e, particularmente, da gerência de memória, muitas vezes um programa.

SISTEMAS OPERACIONAIS I

SwappingEstratégias de alocação de partiçãoPor utilizar as maiores participações, a técnica de worst-fit deixa maiores espaços livres, permitindo que um maior número de programas utilize a memória, diminuindo o problema a fragmentação.

Page 20: SISTEMAS OPERACIONAIS I Swapping Mesmo com o aumento da eficiência da multiprogramação e, particularmente, da gerência de memória, muitas vezes um programa.

SISTEMAS OPERACIONAIS I

SwappingEstratégias de alocação de partiçãoNa estratégia first-fit, é escolhida a primeira partição livre, de tamanho suficiente para carregar o programa (o primeiro espaço que couber). Nesse algoritmo, a lista de áreas livres está ordenada crescentemente por endereços.

Page 21: SISTEMAS OPERACIONAIS I Swapping Mesmo com o aumento da eficiência da multiprogramação e, particularmente, da gerência de memória, muitas vezes um programa.

SISTEMAS OPERACIONAIS I

SwappingEstratégias de alocação de partiçãoCom o método tenta primeiro utilizar as áreas livres de endereços mais baixos, existe uma grande chance de se obter uma grande partição livre nos endereços de memória mais alto. Nas três estratégias apresentadas, a first-fit é a mais rápida, consumindo menos recursos do sistema.

Page 22: SISTEMAS OPERACIONAIS I Swapping Mesmo com o aumento da eficiência da multiprogramação e, particularmente, da gerência de memória, muitas vezes um programa.

SISTEMAS OPERACIONAIS I

Exercícios: 1. Descreva a técnica de swapping.2. Como funciona o mapa de bits, para gerenciamento

de espaço livre de memória?3. Relate o funcionamento da lista encadeada, para

gerenciamento de espaço livre de memória.4. Como funciona o algoritmo best-fit?5. Diferencie os algoritmos worst-fit e first-fit.