Baixe o app para aproveitar ainda mais
Prévia do material em texto
Sistemas Operacionais Gerenciamento Básico de Memória Parte II Prof. Sílvio Fernandes UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO DEPARTAMENTO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIA DA COMPUTAÇÃO Algoritmos de substituição de páginas Quando um falta de página ocorre, o SO precisa escolher uma página a ser removida da memória a fim de liberar espaço para uma nova a ser trazida. Se a pág. a ser removida tiver sido modificada enquanto esteve na memória, ela deverá ser reescrita no disco (atualizando a cópia virtual lá existente) A página a ser trazida sobrescreve a página que está sendo destituída Caso contrário, não é necessário reescrevê-la 2 Algoritmos de substituição de páginas Embora seja possível escolher aleatoriamente uma pág. a ser descartada a cada falta de pág., o desempenho do sistema será muito melhor se a pág. escolhida for uma que não estiver sendo muito usada 3 Algoritmos de substituição de páginas Uma questão importante Quando uma pág. vai ser removida, devemos remover do próprio processo que causou a falta ou podemos remover de outro? Algoritmos Ótimo Não usada recentemente (NUR) Primeira a entrar, primeira a sair Segunda chance (SC) Relógio Menos recentemente usada (MRU) 4 Algoritmos de substituição de páginas Ótimo O melhor dos algoritmos é fácil de descrever mas impossível de implementar Cada página pode ser rotulada com o número de instruções que serão executadas antes de aquela pág. ser referenciada pela primeira vez O algoritmo diz que deve se remover a pág. com maior rótulo Adia a ocorrência da próxima falta o máximo possível O único problema: é irrealizável Na falta e pág. o SO não tem como saber quando cada uma das pág. será referenciada novamente 5 Algoritmos de substituição de páginas Não usada recentemente (NRU) NRU (Not Recently Used) Quando um processo é iniciado os bits R (referenciada) e M (modificada) são colocados em 0 para todas as páginas Periodicamente, o bit R é limpo de modo que diferencie as pág. que não foram referenciadas recentemente daquelas que foram Quando acontece uma falta de página, o SO inspeciona todas as páginas e as separa em quatro categorias, com base nos bits R e M 6 Algoritmos de substituição de páginas Não usada recentemente (NRU) Bit R Bit M Classe 0: não referenciada, não modificada Classe 1: não referenciada, modificada Classe 2: referenciada, não modificada Classe 3: referenciada, modificada O algoritmo remove aleatoriamente uma página de classe de ordem mais baixa que não esteja vazia 7 Algoritmos de substituição de páginas Primeira a entrar, primeira a sair FIFO é um algoritmo de baixo custo O SO mantém uma lista de todas as pág. atuais na memória, com a pág. mais antiga na cabeça da lista e a pág. que chegou mais recentemente situada no final dessa lista Na ocorrência de uma falta de pág., a 1ª pág. da lista é removida e a nova é adicionada no final Desvantagem: página há mais tempo na memória pode ser usada com muita frequência 8 Algoritmos de substituição de páginas Segunda Chance (SC) Uma modificação simples no FIFO evita o problema de se jogar fora uma pág. intensamente usada, simplesmente inspecionando o bit R da página mais antiga Se o bit R for 0, essa pág., além de mais antiga, não estará sendo usada, de modo que será substituída imediatamente Se for 1, será colocado em 0, e essa pág. será posta no final da lista como se ela tivesse acabado de ser carregada na memória A pesquisa continua 9 Algoritmos de substituição de páginas Segunda Chance (SC) a) lista de páginas em ordem FIFO b) estado da lista em situação de falta de página no instante 20, com o bit R da página A em 1 (números representam instantes de carregamento das páginas na memória) 10 Algoritmos de substituição de páginas Relógio SC é razoável e desnecessariamente ineficaz, pois permanece constantemente reinserindo pág. no final da lista Uma estratégia melhor é manter todas as pág. em uma lista circular em forma de relógio Um ponteiro aponta para a pág. mais antiga, ou seja, para a ‘cabeça’ da lista A lógica é a mesma da segunda chance 11 Algoritmos de substituição de páginas Relógio 12 Algoritmos de substituição de páginas Menos recentemente usada (LRU) LRU (Least Recenbly Used) Desempenho teórico do algoritmo ótimo baseia-se na observação de que páginas referenciadas intensamente nas últimas instruções provavelmente serão de novo referenciadas nas próximas instruções De modo oposto, é provável que pág. não foram referenciadas nas últimas instruções não o sejam nas próximas A implementação é possível mas onerosa 13 Algoritmos de substituição de páginas Menos recentemente usada (LRU) Possuir um hardware especial que incrementa um valor automaticamente a cada instrução executada A cada entrada da tabela de pág. deve ter um campo extra para armazenar o valor do contador Após cada referência a memória, o valor do contador é armazenado nesse campo Quando ocorre uma falta de pág., o SO examina todos os campos contadores da tabela a fim de encontrar o menor deles (menos recentemente usada) 14 Algoritmos de substituição de páginas Menos recentemente usada (LRU) Para uma máquina com n moldura de pág. deve ter um hardware auxiliar contendo uma matriz de nxn bits, inicialmente todos com o valor 0 Sempre que a moldura de pág. k for referenciada, marcará todos os bits da linha k com 1 e todos os bits da coluna k com 0 Em um instante qualquer, a linha que possuir o menor valor binário será a pág. LRU, e a linha cujo valor binário seja o mais próximo do menor será a segunda menos recentemente usada e assim por diante 15 Algoritmos de substituição de páginas Menos recentemente usada (LRU) LRU usando uma matriz – páginas referenciadas na ordem 0,1,2,3,2,1,0,3,2,3 16 Algoritmos de substituição de páginas Simulação do LRU em software Ambas as implementações do LRU são realizáveis mas poucas têm esse hardware Uma possibilidade em software é a substicuição de pág. não usada frequentemente (NFU – Not Frequently Used) Requer contadores em SW, cada um deles associado a uma pág., inicialmente zerados A cada interrupção de relógio o SO percorre todas as pág. na memória Para cada pág., o bit R,que pode está em 0 ou 1, é adicionado ao contador correspondente Quando ocorrer uma falta, a pág. que tiver menor contagem será substituída 17 Algoritmos de substituição de páginas Simulação do LRU em software Uma pequena modificação possibilita a simulação do LRU Feita em 2 passos Contadores são deslocados um bit à direita O bit R de cada pág. é adicionado ao bit mais à esquerda do contador correspondente Quando ocorre falta de pág, a pág. que tem menor contagem é removida Esse algoritmo também é conhecido como algoritmo de envelhecimento (aging) 18 Algoritmos de substituição de páginas Simulação do LRU em software 19 Páginas que foram referenciadas Algoritmos de substituição de páginas Conjunto de Trabalho Os processos devem “roubar” pág. um dos outros ou devem “roubar” de si mesmo? Define-se o espaço de trabalho de um processo num determinado intervalo de tempo como sendo o conjunto de página acessadas pelo processo nesse intervalo Se um processo tiver na mem. menos pág. que o seu espaço de trabalho, estará constantemente gerando falta de páginas Se vários processos tiverem assim, o SOentra em colapso (thrashing) 20 Algoritmos de substituição de páginas Conjunto de Trabalho Os processos são inicializados sem qualquer de suas pág. presentes na memória Assim que a CPU tenta buscar a primeira instrução, ela detecta uma falta de pág. e continua buscando a medida que falta pág. (paginação por demanda) A ideia principal é encontrar uma pág. que não esteja presente no conjunto de trabalho e removê-la da memória 21 Algoritmos de substituição de páginas Conjunto de Trabalho 22 Algoritmos de substituição de páginas Conjunto de Trabalho Cada entrada contém (no mínimo) 2 itens de informação: O instante aproximado em que a pág. foi referenciada pela última vez o bit R Funcionamento Suponha que uma interrupção de relógio periódica ativa a execução do SW que limpe o bit R em cada tique de relógio A cada falta de pág., a tabela de pág. é varrida à procura de uma pág. adequada para ser removida da memória 23 Algoritmos de substituição de páginas Conjunto de Trabalho Funcionamento O bit R de cada entrada é examinado Se o bit R for 1, o tempo virtual atual é copiado no campo Instante de último uso na tabela de pág., indicando que a pág. estava em uso no instante em que ocorreu a falta de pág. Se o bit R é 0, a pág. não foi referenciada durante a interrupção de relógio atual e pode ser candidata à remoção da memória 24 Algoritmos de substituição de páginas WSClock Melhoramento do Conjunto de Trabalho com base no algoritmo do relógio Em virtude da simplicidade de implementação e do bom desempenho, é amplamente utilizado A estrutura de dados necessária é uma lista circular de molduras de pág. Inicialmente, essa lista encontra-se vazia Quando a 1ª pág. é carregada, ela é inserida nessa lista À medida que mais pág. são carregadas, elas são inseridas para formar um anel 25 Algoritmos de substituição de páginas WSClock Cada entrada dessa lista contém o campo Instante do Último Uso, bem como o bit R e o bit M Assim como o algoritmo do relógio, a cada falta de pág., a pág. que estiver sendo apontada será examinada primeiro Se o bit R for 1, a pág. foi referenciada durante a interrupção de relógio atual e não será candidata à remoção O bit R é então, colocado em zero, o ponteiro avança para a pág. seguinte e o algoritmo é repetido para essa nova pág. 26 Algoritmos de substituição de páginas WSClock 27 Algoritmos de substituição de páginas WSClock 28 Resumo dos algoritmos de substituição de página 29 Referências TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 3. ed., Prentice Hall, 2009. MARQUES, José Alves; RIBEIRO, Carlos. Sistemas Operacionais. LTC, 2011. 30
Compartilhar