• Nenhum resultado encontrado

Fundamentos de Sistemas Operacionais

N/A
N/A
Protected

Academic year: 2022

Share "Fundamentos de Sistemas Operacionais"

Copied!
86
0
0

Texto

(1)

Fundamentos de Sistemas Operacionais

Aula 20: Substituição de Páginas

Diego Passos

(2)

Última Aula

(3)

Memória Virtual

● Utiliza memória secundária como extensão da memória principal.

● Aumenta o grau de multiprogramação.

● Pode ser usada com vários métodos de gerenciamento de memória.

● Método mais interessante: Paginação.

○ Paginação sob Demanda.

○ Páginas são trazidas conforme a necessidade.

○ Se a memória está cheia, é preciso substituir uma página.

■ É necessário um algoritmo de escolha da Página Vítima.

(4)

Algoritmos de Substituição de

Página

(5)

O Que São

● Módulo do SO que escolhe uma Página Vítima.

○ Página a ser tirada da memória principal.

● Objetivo da escolha:

○ Remover página que não será mais necessária.

■ Ao menos, em um futuro próximo.

○ Se a página vítima for necessária em seguida, haverá uma nova falta de páginas em breve.

● Dois tipos de algoritmo:

○ Algoritmos locais.

○ Algoritmos globais.

(6)

Algoritmos Globais

● Escolhem a página vítima dentre todas as páginas atualmente em memória principal.

○ Uma página do processo B pode ser removida para solucionar falta de página do processo A.

● Podem desbalancear o número de páginas por processo.

(7)

Algoritmos Locais

● Página vítima sempre pertence ao processo que gerou a falta de página.

○ Se falta de página foi causada por A, apenas as páginas de A são consideradas na escolha.

● Se preocupam com a quantidade de páginas por processo.

○ Algumas vezes, demandam que processos recebam mais páginas.

○ Outras, que processos recebam menos páginas.

(8)

Comparação entre as Abordagens

● Algoritmos globais tendem a ser mais complexos.

○ Universo de possíveis soluções é maior.

● Por outro lado, os globais podem dar soluções melhores que os locais.

○ A melhor página a ser retirada pode não pertencer ao processo que gerou a falta de página.

(9)

String de Referência

● Conceito usado em vários algoritmos de substituição.

● Representa uma sequência de acessos à páginas.

● Pode se referir apenas a um processo. Exemplo:

○ String de referência 44256.

○ Processo acessou páginas 4 (duas vezes), 2, 5 e finalmente 6.

● Pode se referir ao sistema como um todo:

○ String de referência 8A7A7B3A.

○ Processo A acessa suas páginas 8 e 7.

○ Depois processo B acessa sua página 7.

○ Finalmente, A acessa sua página 3.

(10)

Algoritmos Globais

(11)

Algoritmo Global Ótimo

● Suponha que a string de referência de todos os acessos futuros no sistema seja conhecida:

○ 6A9C1C3A8F...

● O algoritmo global ótimo varre todos as páginas atualmente em memória.

● Para cada uma, verifica sua primeira ocorrência na string.

○ Índice da ocorrência na string é anotado.

● Página vítima é aquela com o maior índice.

(12)

Algoritmo Global Ótimo (mais)

(13)

Algoritmo Global Ótimo (mais)

(14)

Algoritmo Global Ótimo (mais)

(15)

Algoritmo Global Ótimo (mais)

(16)

Algoritmo Global Ótimo (mais)

(17)

Algoritmo Global Ótimo (mais)

(18)

Algoritmo Global Ótimo (mais)

(19)

Algoritmo Global Ótimo (mais)

(20)

Algoritmo Global Ótimo (mais)

(21)

Algoritmo Global Ótimo (mais)

(22)

Algoritmo Global Ótimo (mais)

(23)

Algoritmo Global Ótimo (mais)

(24)

Algoritmo Global Ótimo (mais)

(25)

Algoritmo Global Ótimo (mais)

(26)

Algoritmo Global Ótimo

● Minimiza a probabilidade global de ocorrência de falta de páginas.

● Na prática, não é implementável.

○ Depende de informações futuras.

(27)

FIFO

● Primeiro algoritmo implementável.

○ E mais simples de todos.

● Página vítima é sempre aquela que foi colocada em memória principal a mais tempo.

● SO mantém uma fila com referências para as páginas.

○ Novas páginas são colocadas no final da fila.

○ Algoritmo FIFO apenas remove o primeiro nó da fila.

(28)

FIFO (mais)

(29)

FIFO (mais)

(30)

FIFO (mais)

(31)

FIFO (mais)

(32)

FIFO (mais)

(33)

FIFO (mais)

(34)

FIFO (mais)

(35)

FIFO (mais)

(36)

FIFO (mais)

● Simples implementação.

● Mas não leva em consideração a frequência de utilização das páginas.

○ Pode remover uma página que será necessária logo em seguida.

■ Causa nova falta de páginas.

● Fica muito longe do algoritmo ótimo.

(37)

NRU (Not Recently Used)

● Aproximação melhor para o algoritmo ótimo.

● Tenta escolher uma página que não será usada no futuro

○ Dá preferência a páginas de fácil remoção.

● Utiliza o princípio da localidade de referência.

● Quando uma página precisa ser substituída:

○ Algoritmo varre todas as páginas da memória.

○ Verifica os bits de sujeira e referência de cada uma.

○ Classifica cada página em um de 4 conjuntos:

■ Bit de referência 0 e bit de sujeira 0.

■ Bit de referência 0 e bit de sujeira 1.

■ Bit de referência 1 e bit de sujeira 0.

■ Bit de referência 1 e bit de sujeira 1.

○ Escolhe página aleatória do primeiro conjunto (de cima para baixo) que seja não vazio.

(38)

NRU (Not Recently Used) (mais)

(39)

NRU (Not Recently Used) (mais)

(40)

NRU (Not Recently Used) (mais)

(41)

NRU (Not Recently Used) (mais)

(42)

NRU (Not Recently Used) (mais)

(43)

NRU (Not Recently Used) (mais)

(44)

NRU (Not Recently Used)

● Muito overhead de processamento.

○ SO tem que varrer todos os quadros da memória para escolher a página vítima.

● Sistemas têm cada vez mais memória.

○ NRU torna-se inviável.

(45)

Algoritmo do Relógio

● Combinação do FIFO com o NRU.

○ Leva em consideração o bit de referência.

○ Mas tem uma implementação com baixo overhead.

● Como o FIFO, páginas em memória são organizadas em uma lista auxiliar.

○ Uma lista circular.

○ Ordenada por ordem de chegada.

○ Há um ponteiro para a página mais antiga.

● Quando há necessidade de trocar uma página:

○ Algoritmo avalia página atualmente apontada.

○ Se bit de referência estiver ativo, SO o desativa e avança o ponteiro.

○ Repete a operação até encontrar página com bit desativado.

(46)

Algoritmo do Relógio (mais)

(47)

Algoritmo do Relógio (mais)

(48)

Algoritmo do Relógio (mais)

(49)

Algoritmo do Relógio (mais)

(50)

Algoritmo do Relógio (mais)

(51)

Algoritmo do Relógio (mais)

(52)

Algoritmo do Relógio (mais)

(53)

Algoritmo do Relógio (mais)

(54)

Algoritmo do Relógio (mais)

(55)

Algoritmo do Relógio (mais)

(56)

Algoritmo do Relógio (mais)

(57)

Algoritmo do Relógio (mais)

(58)

Algoritmo do Relógio (mais)

● No pior caso, percorre a lista toda.

○ Mas em geral, página vítima é encontrada logo no início.

■ Torna este algoritmo mais eficiente que o NRU.

■ Note que o algoritmo do relógio não avalia o bit de sujeira.

● Ao contrário do FIFO, nem sempre página mais antiga é removida.

○ Se ela tem sido usada, recebe uma segunda chance.

■ Página é colocada no final da lista.

○ Por isso, este algoritmo é também conhecido como Segunda Chance.

(59)

LRU (Least Recently Used)

● Motivado por uma deficiência comum aos algoritmos do relógio e NRU.

○ Ambos consideram apenas o estado atual do bit de referência.

○ Mas não sabem com qual frequência cada página foi usada.

■ Ou qual foi a última vez.

● Ideia do LRU:

○ Escolher como vítima a página usada pela última vez a mais tempo.

● É possível implementá-lo na prática.

○ Porém, demanda suporte complexo do hardware.

■ Logs do instante de tempo em cada acesso à memória.

(60)

NFU (Not Frequently Used)

● Simplificação do LRU.

● Possibilita implementação em software.

○ Sem necessidade de suporte específico de hardware.

● SO escolhe uma frequência de amostragem.

○ A cada segundo, por exemplo.

● Bits de referência de todas as páginas são amostrados periodicamente.

● Valores são guardados em uma tabela.

○ Cada entrada é um mapa de bits de um tamanho pré- determinado.

○ Guarda as últimas 'n' amostras.

● Ao escolher a página vítima, NFU olha para o mapa de bits como um valor inteiro positivo.

○ Página com menor valor é escolhida.

(61)

NFU (Not Frequently Used) (mais)

(62)

NFU (Not Frequently Used) (mais)

(63)

NFU (Not Frequently Used) (mais)

(64)

NFU (Not Frequently Used) (mais)

(65)

NFU (Not Frequently Used) (mais)

(66)

NFU (Not Frequently Used) (mais)

(67)

NFU (Not Frequently Used) (mais)

(68)

NFU (Not Frequently Used) (mais)

(69)

NFU (Not Frequently Used) (mais)

(70)

NFU (Not Frequently Used) (mais)

● Duas desvantagens em relação ao LRU.

○ Tamanho dos mapas de bits é limitado.

■ Informações mais antigas são perdidas.

■ Não é sempre possível determinar página usada pela última vez a mais tempo.

○ Frequência de amostragem é muito menor que a frequência de acesso a memória.

■ Impossível diferenciar dois acessos durante um mesmo intervalo de amostragem.

■ Novamente, em caso de empate, não é possível determinar a página correta.

(71)

Algoritmos Locais

(72)

Motivação

● Algoritmos globais podem remover a página de um processo para solucionar a falta de página de outro.

● Isso pode criar injustiças entre processos.

○ Alguns podem acabar com poucas páginas.

○ Especialmente processos que estão atualmente em E/S.

● Algoritmos locais sempre escolhem vítima do conjunto de páginas do próprio processo.

○ Tentativa de "isolar" processos.

○ Falta de página em um não afetaria outros.

(73)

Ideia

● Algoritmos locais supõem que cada processo precisa apenas de um sub-conjunto das suas páginas.

○ Sub-conjunto muda ao longo da execução.

● Algoritmos locais tentam convergir para o sub-conjunto ótimo.

○ Aquele que garante baixa taxa de falta de páginas.

● Note que o melhor sub-conjunto é o conjunto de todas as páginas.

○ Mas estes algoritmos irão limitar a quantidade de páginas alocadas para cada processo.

(74)

Algoritmo Local Ótimo

● Define-se um parâmetro f.

○ Janela de acessos à memória futuros.

○ Exemplo: 1000 próximos acessos.

● Objetivo do algoritmo ótimo é garantir que durante a janela f processo não sofrerá falta de página.

● Sabendo a string de referência dos próximos f acessos, algoritmo local sabe qual página não será necessária.

● Note que para um dado f, nem sempre existe uma solução.

○ Exemplo: f = 5, string de referência é 45226 e processo tem 3 páginas em memória.

○ Quatro páginas são necessárias (2, 4, 5 e 6).

■ Independente da página escolhida como vítima.

● Duas soluções:

○ Reduzir f ou aumentar o número de páginas.

(75)

Algoritmo Working Set

● Como o global, algoritmo ótimo local não é implementável na prática.

○ Precisa de informações sobre o futuro.

● Algoritmo Working Set é uma aproximação.

● Baseado no princípio da localidade.

○ Páginas usadas recentemente provavelmente serão usadas no futuro.

● Utiliza o mesmo parâmetro f do algoritmo ótimo.

○ Porém como uma janela para os acessos passados.

● Determina o conjunto de páginas usadas nos últimos f acessos.

○ Supõe que o mesmo conjunto será usado nos próximos f.

(76)

Algoritmo Working Set (mais)

● Assim como no algoritmo ótimo, pode não ser possível alocar todo o conjunto de páginas necessárias.

● Desafio é escolher um valor de f tal que:

○ O algoritmo seja viável (f deve ser relativamente pequeno).

○ O conjunto de páginas alocadas não seja pequeno demais (f deve ser relativamente grande).

● Quando o algoritmo determinar que o processo precisa de mais páginas alocadas que possui:

○ SO escolhe um processo e o remove completamente da memória principal.

■ Processo passa para o estado suspenso.

(77)

Thrashing

(78)

O Que É

● Problema que pode ocorrer na paginação sob demanda.

● Processos com poucas páginas em memória começam a sofrer muitas faltas de página.

○ Tratamento de falta de páginas é lento.

○ Processo passa pouco tempo processando, muito tempo tratando faltas.

○ Overhead fica muito alto.

● Pode ser causada por:

○ Escolhas ruins do algoritmo de substituição.

○ Excesso de processos ativos no sistema.

(79)

Thrashing: Um Processo vs. Sistema

● Thrashing pode ocorrer com um único processo.

○ Ele tem poucas páginas em memória.

○ Demais processos estão bem.

○ Mesmo assim, faltas de página afetam o sistema como um todo.

■ HD precisa fazer acessos que competem com outros pedidos.

Muitas vezes, o thrashing tende a se espalhar.

○ Principalmente com algoritmos de substituição globais.

○ Outros processos começam a perder páginas para solucionar o problema original.

(80)

Soluções

● Uma vez que o thrashing tenha ocorrido, geralmente é necessário suspender completamente um ou mais

processos.

○ Remover todas as suas páginas da memória principal.

○ Libera espaço para os demais processos.

● Pode ser interessante tentar evitar o thrashing.

○ Escalonador de longo prazo faz controle de admissão.

○ Verifica fatores como:

■ Tamanho do novo processo.

■ Número médio de páginas alocadas por processo.

■ Taxa de falta de páginas.

■ Eficiência do sistema.

(81)

Estudo de Caso: Arquitetura

x86

(82)

Características Suportadas

● Vários métodos de gerenciamento de memória.

○ Segmentação.

○ Paginação.

○ Paginação com Segmentação.

■ O mais usado ainda hoje.

(83)

Paginação com Segmentação

● Endereços lógicos de 48 bits.

○ 32 bits de deslocamento (menos representativos).

○ 16 bits de identificação do segmento.

● Endereços passados nas instruções não são de 48 bits.

○ Apenas os 32 bits menos significados.

○ 16 bits do segmento são guardados em registradores especiais.

■ CS, DS, SS...

○ Cada instrução considera um registrador de segmento diferente, utilizado com prefixo do endereço lógico.

● Segmentos podem ter até 4 GB (limitado pelos bits de deslocamento).

● Páginas sempre tem 4 KB.

○ Até 1M páginas por segmento.

(84)

Paginação (Com ou Sem Segmentação)

● Sempre em dois níveis.

● Página principal, chamada de Diretório de Páginas.

○ Possui 1K entradas de 4 bytes.

■ Divididos em flags e um ponteiro para a página de segundo nível.

● Páginas de segundo nível também tem 1K entradas.

○ De 4 bytes.

■ 20 bits para o endereço do quadro.

■ 1 bit de sujeira.

■ 1 bit de referência.

■ 1 bit de validade.

■ 3 bits reservados para o SO.

■ 2 bits de permissão.

■ 4 bits sem uso definido.

(85)

Revisão

(86)

Para Lembrar

● Algoritmos de substituição de páginas.

○ O que são e para que servem.

○ Algoritmos globais vs. algoritmos locais.

● Algoritmos globais.

○ Algoritmo ótimo.

○ FIFO, NRU, Algoritmo do Relógio, LRU, NFU.

● Algoritmos locais.

○ Algoritmo ótimo.

○ Algoritmo Working Set.

● Thrashing.

○ O que é.

○ Como evitar.

● Estudo de caso.

○ Relações entre tamanhos de endereços, de páginas, de segmentos...

Referências

Documentos relacionados

(ainda de braços dados e andando, damas balançam vestido, cavalheiros dançam) Preparar para a cesta!. (damas na frente e cavalheiros atrás, de mãos dadas sobre os ombros) Preparar

Detectadas as baixas condições socioeconômicas e sanitárias do Município de Cuité, bem como a carência de informação por parte da população de como prevenir

Tabela de medidas: todas as medidas especificadas na tabela de medida em anexo se referem à peça pronta, já tendo recebido a 1ª lavagem caso haja diferença na peça

De acordo com SUKHIANI e colaboradores (1996), JERRAM & DEWEY (1999b) e MAYHEW e colaboradores (2004), cães que realizam cirurgia descompressiva podem reapresentar os

In a study with 5,306 patients carried out by the Global Research on Acute Conditions Team (GREAT), among a great number of biomarkers measured at admission in patients with

Figure 1 – Percentage cost reduction in delivered prescription drugs purchased via reverse auction in comparison with private costs according to each drug group in heart failure

PIANO CELIA CRUZ.. Transcripcion©

No caso do esporte, consideramos que o corpo (entendido aqui como o.. próprio homem) é a matéria que torna possível a criação de gestos técnicos específicos de