SlideShare uma empresa Scribd logo
1 de 50
Memória Virtual GeovanePazine Filho Guilherme Augusto S. G. Loiola Inael Rodrigues de Oliveira Neto Jackeline Neves de Almeida Wilker de Jesus Machado
ALOCAÇÃO DE QUADROS THRASHING ARQUIVOS MAPEADOS NA MEMÓRIA ALOCANDO MEMÓRIA DO KERNEL OUTRAS CONSIDERAÇÕES EXEMPLOS DE SISTEMA OPERACIONAL PERGUNTAS E RESPOSTAS Memória virtual
Igual: Todosrecebem o mesmonúmero de quadros. Proporcional: Funçãoemrelaçãoaotamanho do processo define o número de quadros. Alocação - Fixa
Igual: 93 quadros com  tamanho de 1k cada 2 processos com tamanho 5k Cadaprocessoficaria com 46 quadros e 1 quadroficariacomoquadrolivre. Casoruim: 2 processos: 1 com tamanho de 10k e outro de 127k. Alocação - Fixa (Exemplo)
Proporcional: Sendo Q o número de quadros para cada processo: Q = (Si / Σ Si) x m Si é o tamanho do processo m é a quantidade total de quadros 93 quadros com tamanho de 1k cada. 2 processos: 1 de 10k e outro de 127k. Processo de 10k fica com 6 quadros Processo de 127k fica com 86 quadros Alocação - Fixa (Exemplo)
Processos com maiorprioridaderecebemmaisquadros. Alocação - Prioridade
Global: Substituição de um quadro do conjunto de todososquadros. Local: Substituição de um quadro do seupróprioconjunto de quadros. Alocação - Global Vs Local
Se quantidade de quadros alocados a um processo de baixa prioridade ficar abaixo da quantidade mínima exigida pela arquitetura do computador, precisamos suspender a execução desse processo. Quantidade de quadros   resulta em: processo -Retiramos páginas restantes e liberamos quadros. Thashing X
Quando não há quadros suficientes para dar suporte às páginas em uso ativo: FALHA DE PÁGINA!!! Então ele terá que: SUBSTITUIR ALGUMA PÁGINA Mas... Thrashing
Todas as suas páginas estão em uso ativo!!! Então... Ele precisa substituir uma página que será necessária novamente em seguida! NOVA FALHA!!! LOOP: SUBSTITUI & FALHA!!! = ALTA ATIVIDADE DE PÁGINA, que é o: Thrashing
Thrashing Definição: O thrashing resulta em graves problemas de desempenho! Paginação Execução
Observemos o exemplo baseado nos primeiros sistemas de paginação: Utilização da CPU   então  grau de multiprogramação com um novo processo no sistema. Um algoritmo de substituição de página global é utilizado; ele substitui as páginas sem considerar o processo ao qual pertencem. Quando o processo entra em nova fase de execução e precisa de mais quadros. Então começa as falhas e a remoção de quadros de outros processos. Mas esses outros processos também precisam dessas páginas, logo, novas falhas e novas remoções de quadros de outros processos. Thashing – O motivo
Exemplo [cont] Processos com falhas precisam usar o dispositivo de paginação para enviar e receber páginas. E a medida que são enfileirados para o dispositivo de paginação, a fila de prontos se esvazia. 	Processos                  Paginação e CPU  Thrashing – O motivo esperam
Thrashing – O motivo Exemplo [cont] O escalonador de CPU vê CPU    e    multiprogramação. O novo processo requisita mais quadros causando mais falhas de página e uma fila maior para o dispositivo de paginação. CPU   ainda mais e o escalonador tenta    multiprogramação. Acontecendo o THRASHING! Falha de página    e acesso à memória Não realiza trabalho, pois os processos estão todos paginando.
Multiprogramação    e a CPU   ,até ser alcançado o máximo. Multiprogramação    ainda mais, thrashing entra em cena e a CPU   bruscamente. 	Para aumentar a utilização de CPU e acabar com o thrashing temos que   o grau de multiprogramação. Thrashing – O motivo
Podemos limitar os efeitos do thrashing  usando um algoritmo de substituição local. Assim um processo que iniciou thrashing não poderá roubar quadros de outro. Thrashing – O motivo
Fornecer a um processo quantos quadros ele precisar é uma forma de impedir o thrashing. Modelo de localidade – quanto quadros um processo está usando? Thrashing – o motivo
Baseado na suposição de localidade; examina    referências mais recentes; evita thrashing e mantém o alto grau de multiprogramação; O conjunto de trabalho (WS) é formado pelas páginas nas     referências de páginas mais recentes; A propriedade mais importante em WS  é o seu tamanho.  Podemos calcular o tamanho de WS de cada processo (WSSi). Se o total da demanda de quadros (D = ∑WSSi) for maior que o total de quadros, ocorrerá thrashing, porque alguns quadros não terão quadros suficientes (processo i precisa de WSSi quadros);  O SO pode monitorar o conjunto de páginas de cada processo e alocar o número suficiente de quadros para o seu conjunto de trabalho. Se D > quadros disponíveis, um processo deverá ser suspenso e suas páginas são descarregadas e alocadas a outros processos. ThashingModelo de conjunto de trabalho
ajuda no controle de thrashing; alta taxa de falta de página - processo precisa de mais quadros; baixa taxa de falta de página - talvez processo com número excessivo de quadros. ThashingFrequência de falha de página
Arquivos mapeados na memória E/S de arquivos mapeados na memória permite que acessos sejam tratados como acesso a rotinas de memória pelo mapeamento de blocos do disco em páginas na memória Um arquivo é lido inicialmente usando paginação sob demanda. Uma porção do arquivo é lida do sistema de arquivos em páginas físicas. Leituras e escritas subseqüentes de/para o arquivo são tratados como acessos a memória comuns. Simplifica o acesso a arquivos tratando E/S através da memória ao invés do uso de chamadas de sistemas read() write() Também permite que vários processos mapeiem o mesmo arquivo através do compartilhamento de páginas na memória
Arquivos mapeados na memória
E/S mapeada na memória Intervalos de endereços de memórias são separados e mapeados para registradores de dispositivos. As leituras e escritas nesses endereços de memória fazem com que os dados sejam transferidos de e para os registradores de dispositivo. Esse método é apropriado para dispositivos que possuem tempos de resposta curtos, como controladores de vídeo. Arquivos mapeados na memória
Buddy System • Alocação da memória a partir de segmentos de tamanho fixo • Memória alocada de tamanho 2n – Uma requisição é arredondada para um tamanho 2n – Quando um tamanho menor deve ser alocado, um segmento maior é dividido na metade. • Continua até que o tamanho adequado seja obtido Buddy Sistema Buddy
Alocação do Sistema Buddy
• Estratégia alternativa: • Slab: uma ou mais páginas físicamente contíguas • Cache: um ou mais Slabs • Cache única para cada estrutura de dados do kernel 		– Cada cache é preenchida com dados do kernel – instâncias   	   das estruturas de dados • Quando uma cache é criada, os objetos preenchidos são marcados como livres • Quando as estruturas são utilizadas, os objetos são marcados como usados • Se uma slab está cheio, um novo slab é utilizado 		– Se nenhum slab está disponível, criar um novo slab • Benéficios: sem fragmentação, requisição de memória é satisfeita rapidamente Alocação de Slab
Alocação de Slab
As principais decisões tomadas para um sistema de página são as seleções de um algoritmo de substituição e uma política de alocação, discutidas anteriormente. Existem também muitas outras considerações, e discutiremos algumas delas. Outras Considerações
 Para reduzir o alto nível de paginas ausentes que ocorrem na inicialização do processo.  Pré-paginar todas ou algumas páginas que o processo irá precisar, antes de serem referenciadas.  Mas se páginas pré-paginadas não são usadas, E/S e memória foram desperdiçados.  Assuma que s páginas são pré-paginadas e x delas são usadas ,[object Object]
s * (1- x) páginas desnecessárias?
x próximo de zero ⇒ perdas na pré-paginaçãoOutras Considerações:Pré-paginação
Escolha do tamanho da página deve levar em consideração: ,[object Object]
 tamanho da tabela
 sobrecarga de E/S
 localidadeOutras Considerações: Tamanho da Página
 Alcance da TLB – A quantidade de memória acessível a partir da TLB.  Alcance da TLB = (Tamanho da TLB) X (Tamanho da Página).  Idealmente, o conjunto-de-trabalho de cada processo é armazenado na TLB. Em caso contrário existirá um alto grau de páginas ausentes.  Aumentar o tamanho da página. Isso pode causar um aumento na fragmentação uma vez que nem todas as aplicações necessitam de páginas de tamanho grande.  Fornecer vários tamanhos de página. Isso possibilita aos aplicativos que necessitam de páginas maiores a oportunidade de usá-las sem aumentar a fragmentação. a maneira de aumento Outras Considerações: Alcance da TLB
Esquema tabela de páginas invertida Problema com tabela de páginas é o seu tamanho Tabela de páginas invertida surge como uma solução ,[object Object]
Uma entrada para cada frame
Endereço lógico da página e a qual processo pertenceEndereço lógico é formado por <process_id, página, deslocamento> Cada entrada da tabela possui <process_id; página> Tabela é pesquisada e retorna, se presente, o índice i associado a entrada ,[object Object],[object Object]
Estrutura de programa ,[object Object]
 Cada linha é armazenada em uma página
 Programa 1for (j = 0; j <128; j++) for (i = 0; i < 128; i++) data[i,j] = 0; 128 x 128 = 16,384 páginas ausentes ,[object Object],for (i = 0; i < 128; i++) for (j = 0; j < 128; j++) data[i,j] = 0; 128 páginas ausentes Outras Considerações: Estrutura de Programas
E/S Interlock – Páginas algumas vezes devem ser travadas (lock) na memória.  Considere E/S. Páginas que são usadas para copiar um arquivo de um dispositivo devem ser travadas para não serem selecionadas para despejo por um algoritmo de substituição de página Outras Considerações: Interlock de E/S
Razão porque blocos usados para E/S devem estar na memória
Paginação com demanda com clustering; O clustering trata de falhas trazendo a página que falta com várias outras páginas após a página que falta; Quando um processo é criado ele recebe um mínimo e um máximo de conjunto de trabalho; Windows XP
O conjunto mínimo de trabalho é quantidade mínima de página que o processo tem garantias de ter na memória(50); Se houver memória disponível, o processo pode receber tantas páginas quanto seu conjunto máximo de trabalho (345); O gerenciador de memória virtual mantém um lista de quadro de páginas livres; Windows XP
Thread incorre em uma falha de página,  o kernel atribui uma página à thread;  É imperativo que o kernel mantenha uma quantidade suficiente de memória livre à disposição. Solaris
Versões recentes do kernel do Solaris fornecem melhorias do algoritmo de paginação. Uma melhoria é a paginação por prioridade. Solaris
Se tivermos 85 quadros com tamanho 1k cada e 2 processostrabalhando, 1 com tamanho 5k e outro de tamanho 10k. Quantosquadroscadaprocessoficaria com o metodoFixoIgual? E no método Fixo Proporcional? Alocação - Pergunta
FixoIgual: 85/2 = 2*42 + 1 Portantocadaprocessoficaria com 42 quadros e 1 quadroficarialivre. FixoProporcional: (5/15)*85 = 28 (10/15)*85 = 56 Portanto, o processo de tamanho 5k ficaria com 28 quadros e o de 10k com 56 e 1 quadroficarialivre. Alocação - Resposta

Mais conteúdo relacionado

Mais procurados

Gerenciamento de memoria
Gerenciamento de memoriaGerenciamento de memoria
Gerenciamento de memoriaJailson Silva
 
Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Faculdade Mater Christi
 
Gerência de Memória
Gerência de MemóriaGerência de Memória
Gerência de Memóriaelliando dias
 
12/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula312/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula3Universal.org.mx
 
Senai sistemas operacionais gerenciamento memoria
Senai   sistemas operacionais gerenciamento memoriaSenai   sistemas operacionais gerenciamento memoria
Senai sistemas operacionais gerenciamento memoriaCarlos Melo
 
Amostra Resolucao da Prova Sefaz 2007 Prof Jaime
Amostra   Resolucao da Prova Sefaz 2007   Prof JaimeAmostra   Resolucao da Prova Sefaz 2007   Prof Jaime
Amostra Resolucao da Prova Sefaz 2007 Prof JaimeWalter Cunha
 
Gerência de Memória: Memória Principal
Gerência de Memória: Memória PrincipalGerência de Memória: Memória Principal
Gerência de Memória: Memória PrincipalAlexandre Duarte
 
MANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVO
MANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVOMANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVO
MANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVOLuciano Moreira
 
Aplicando processamento paralelo em instruções SQL
Aplicando processamento paralelo em instruções SQLAplicando processamento paralelo em instruções SQL
Aplicando processamento paralelo em instruções SQLpichiliani
 
Sistemas operacionais memória no linux
Sistemas operacionais   memória no linuxSistemas operacionais   memória no linux
Sistemas operacionais memória no linuxCarlos Melo
 
Hadoop - Primeiros passos
Hadoop - Primeiros passosHadoop - Primeiros passos
Hadoop - Primeiros passosSensedia
 
2009 1 - sistemas operacionais - aula 8 - memoria
2009 1 - sistemas operacionais - aula 8 - memoria2009 1 - sistemas operacionais - aula 8 - memoria
2009 1 - sistemas operacionais - aula 8 - memoriaComputação Depressão
 
NoSQL: Uma análise crítica
NoSQL: Uma análise críticaNoSQL: Uma análise crítica
NoSQL: Uma análise críticapichiliani
 
Aplicando o poder de uma GPU no SQL Server
Aplicando o poder de uma GPU noSQL ServerAplicando o poder de uma GPU noSQL Server
Aplicando o poder de uma GPU no SQL Serverpichiliani
 
Bancos de dados analíticos open source
Bancos de dados analíticos open sourceBancos de dados analíticos open source
Bancos de dados analíticos open sourceMatheus Espanhol
 
Chrome server2 print_http_www_hardware_com_br_dicas_entendendo_cache_ht_13737...
Chrome server2 print_http_www_hardware_com_br_dicas_entendendo_cache_ht_13737...Chrome server2 print_http_www_hardware_com_br_dicas_entendendo_cache_ht_13737...
Chrome server2 print_http_www_hardware_com_br_dicas_entendendo_cache_ht_13737...Léia de Sousa
 

Mais procurados (20)

Gerenciamento de memoria
Gerenciamento de memoriaGerenciamento de memoria
Gerenciamento de memoria
 
Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)Gerenciamento de memória cap 03 (ii unidade)
Gerenciamento de memória cap 03 (ii unidade)
 
Gerência de Memória
Gerência de MemóriaGerência de Memória
Gerência de Memória
 
12/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula312/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula3
 
Senai sistemas operacionais gerenciamento memoria
Senai   sistemas operacionais gerenciamento memoriaSenai   sistemas operacionais gerenciamento memoria
Senai sistemas operacionais gerenciamento memoria
 
Amostra Resolucao da Prova Sefaz 2007 Prof Jaime
Amostra   Resolucao da Prova Sefaz 2007   Prof JaimeAmostra   Resolucao da Prova Sefaz 2007   Prof Jaime
Amostra Resolucao da Prova Sefaz 2007 Prof Jaime
 
Gerência de Memória: Memória Principal
Gerência de Memória: Memória PrincipalGerência de Memória: Memória Principal
Gerência de Memória: Memória Principal
 
MANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVO
MANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVOMANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVO
MANUTENÇÃO DE ÍNDICES: O GUIA DEFINITIVO
 
Aplicando processamento paralelo em instruções SQL
Aplicando processamento paralelo em instruções SQLAplicando processamento paralelo em instruções SQL
Aplicando processamento paralelo em instruções SQL
 
Sistemas operacionais memória no linux
Sistemas operacionais   memória no linuxSistemas operacionais   memória no linux
Sistemas operacionais memória no linux
 
Hadoop - Primeiros passos
Hadoop - Primeiros passosHadoop - Primeiros passos
Hadoop - Primeiros passos
 
2009 1 - sistemas operacionais - aula 8 - memoria
2009 1 - sistemas operacionais - aula 8 - memoria2009 1 - sistemas operacionais - aula 8 - memoria
2009 1 - sistemas operacionais - aula 8 - memoria
 
NoSQL: Uma análise crítica
NoSQL: Uma análise críticaNoSQL: Uma análise crítica
NoSQL: Uma análise crítica
 
Aplicando o poder de uma GPU no SQL Server
Aplicando o poder de uma GPU noSQL ServerAplicando o poder de uma GPU noSQL Server
Aplicando o poder de uma GPU no SQL Server
 
Aula 04-gerenciamento-basico-de-memoria
Aula 04-gerenciamento-basico-de-memoriaAula 04-gerenciamento-basico-de-memoria
Aula 04-gerenciamento-basico-de-memoria
 
Sistema Operativo 2
Sistema Operativo 2Sistema Operativo 2
Sistema Operativo 2
 
Gerenciamento de memória
Gerenciamento de memóriaGerenciamento de memória
Gerenciamento de memória
 
Bancos de dados analíticos open source
Bancos de dados analíticos open sourceBancos de dados analíticos open source
Bancos de dados analíticos open source
 
Chrome server2 print_http_www_hardware_com_br_dicas_entendendo_cache_ht_13737...
Chrome server2 print_http_www_hardware_com_br_dicas_entendendo_cache_ht_13737...Chrome server2 print_http_www_hardware_com_br_dicas_entendendo_cache_ht_13737...
Chrome server2 print_http_www_hardware_com_br_dicas_entendendo_cache_ht_13737...
 
Seminário Hadoop
Seminário HadoopSeminário Hadoop
Seminário Hadoop
 

Semelhante a Memória Virtual: Paginação, Thrashing e Alocação

Memória Virtual - Aspectos Básicos
Memória Virtual - Aspectos BásicosMemória Virtual - Aspectos Básicos
Memória Virtual - Aspectos Básicosblumenschein
 
Aumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinadaAumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinadaHenrique Lima
 
Gerenciamento de Memoria
Gerenciamento de MemoriaGerenciamento de Memoria
Gerenciamento de Memoriaaudineisilva1
 
Desenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveisDesenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveiselliando dias
 
Multithreaded tecnologia
Multithreaded tecnologia Multithreaded tecnologia
Multithreaded tecnologia J Chaves Silva
 
Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Leinylson Fontinele
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoelliando dias
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas OperacionaisBia Vieira
 
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...André Leon S. Gradvohl
 
Lecture 4-Processos e Threads pt mz.pptx
Lecture 4-Processos e Threads pt mz.pptxLecture 4-Processos e Threads pt mz.pptx
Lecture 4-Processos e Threads pt mz.pptxcassamo2
 
Gerencia de memoria
Gerencia de memoriaGerencia de memoria
Gerencia de memoria37193694
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoFabio Telles Rodriguez
 
[24HOP] SQL Server em maquinas virtuais do Windows Azure
[24HOP] SQL Server em maquinas virtuais do Windows Azure[24HOP] SQL Server em maquinas virtuais do Windows Azure
[24HOP] SQL Server em maquinas virtuais do Windows AzureVitor Tomaz
 
Resolução de Problemas - Sistemas Operacionais
Resolução de Problemas - Sistemas OperacionaisResolução de Problemas - Sistemas Operacionais
Resolução de Problemas - Sistemas OperacionaisRonildo Oliveira
 
Qcon 2013 - Walmart Frontend Solution using Node.js
Qcon 2013 - Walmart Frontend Solution using Node.jsQcon 2013 - Walmart Frontend Solution using Node.js
Qcon 2013 - Walmart Frontend Solution using Node.jsJorge Walendowsky
 

Semelhante a Memória Virtual: Paginação, Thrashing e Alocação (20)

Memória Virtual - Aspectos Básicos
Memória Virtual - Aspectos BásicosMemória Virtual - Aspectos Básicos
Memória Virtual - Aspectos Básicos
 
Aumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinadaAumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinada
 
Gerenciamento de Memoria
Gerenciamento de MemoriaGerenciamento de Memoria
Gerenciamento de Memoria
 
Gestao de Memoria_SLIDE.pptx
Gestao de Memoria_SLIDE.pptxGestao de Memoria_SLIDE.pptx
Gestao de Memoria_SLIDE.pptx
 
Desenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveisDesenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveis
 
Multithreaded tecnologia
Multithreaded tecnologia Multithreaded tecnologia
Multithreaded tecnologia
 
Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
 
Processos e threads cap 02 (i unidade)
Processos e threads   cap 02 (i unidade)Processos e threads   cap 02 (i unidade)
Processos e threads cap 02 (i unidade)
 
Sistemas Operacionais
Sistemas OperacionaisSistemas Operacionais
Sistemas Operacionais
 
Aula3so
Aula3soAula3so
Aula3so
 
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...
 
Lecture 4-Processos e Threads pt mz.pptx
Lecture 4-Processos e Threads pt mz.pptxLecture 4-Processos e Threads pt mz.pptx
Lecture 4-Processos e Threads pt mz.pptx
 
Gerencia de memoria
Gerencia de memoriaGerencia de memoria
Gerencia de memoria
 
Apostila geoinformações II
Apostila geoinformações IIApostila geoinformações II
Apostila geoinformações II
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
 
[24HOP] SQL Server em maquinas virtuais do Windows Azure
[24HOP] SQL Server em maquinas virtuais do Windows Azure[24HOP] SQL Server em maquinas virtuais do Windows Azure
[24HOP] SQL Server em maquinas virtuais do Windows Azure
 
Resolução de Problemas - Sistemas Operacionais
Resolução de Problemas - Sistemas OperacionaisResolução de Problemas - Sistemas Operacionais
Resolução de Problemas - Sistemas Operacionais
 
Qcon 2013 - Walmart Frontend Solution using Node.js
Qcon 2013 - Walmart Frontend Solution using Node.jsQcon 2013 - Walmart Frontend Solution using Node.js
Qcon 2013 - Walmart Frontend Solution using Node.js
 
355862 slide12-mem virt
355862 slide12-mem virt355862 slide12-mem virt
355862 slide12-mem virt
 

Memória Virtual: Paginação, Thrashing e Alocação

  • 1. Memória Virtual GeovanePazine Filho Guilherme Augusto S. G. Loiola Inael Rodrigues de Oliveira Neto Jackeline Neves de Almeida Wilker de Jesus Machado
  • 2. ALOCAÇÃO DE QUADROS THRASHING ARQUIVOS MAPEADOS NA MEMÓRIA ALOCANDO MEMÓRIA DO KERNEL OUTRAS CONSIDERAÇÕES EXEMPLOS DE SISTEMA OPERACIONAL PERGUNTAS E RESPOSTAS Memória virtual
  • 3. Igual: Todosrecebem o mesmonúmero de quadros. Proporcional: Funçãoemrelaçãoaotamanho do processo define o número de quadros. Alocação - Fixa
  • 4. Igual: 93 quadros com tamanho de 1k cada 2 processos com tamanho 5k Cadaprocessoficaria com 46 quadros e 1 quadroficariacomoquadrolivre. Casoruim: 2 processos: 1 com tamanho de 10k e outro de 127k. Alocação - Fixa (Exemplo)
  • 5. Proporcional: Sendo Q o número de quadros para cada processo: Q = (Si / Σ Si) x m Si é o tamanho do processo m é a quantidade total de quadros 93 quadros com tamanho de 1k cada. 2 processos: 1 de 10k e outro de 127k. Processo de 10k fica com 6 quadros Processo de 127k fica com 86 quadros Alocação - Fixa (Exemplo)
  • 7. Global: Substituição de um quadro do conjunto de todososquadros. Local: Substituição de um quadro do seupróprioconjunto de quadros. Alocação - Global Vs Local
  • 8. Se quantidade de quadros alocados a um processo de baixa prioridade ficar abaixo da quantidade mínima exigida pela arquitetura do computador, precisamos suspender a execução desse processo. Quantidade de quadros resulta em: processo -Retiramos páginas restantes e liberamos quadros. Thashing X
  • 9. Quando não há quadros suficientes para dar suporte às páginas em uso ativo: FALHA DE PÁGINA!!! Então ele terá que: SUBSTITUIR ALGUMA PÁGINA Mas... Thrashing
  • 10. Todas as suas páginas estão em uso ativo!!! Então... Ele precisa substituir uma página que será necessária novamente em seguida! NOVA FALHA!!! LOOP: SUBSTITUI & FALHA!!! = ALTA ATIVIDADE DE PÁGINA, que é o: Thrashing
  • 11. Thrashing Definição: O thrashing resulta em graves problemas de desempenho! Paginação Execução
  • 12. Observemos o exemplo baseado nos primeiros sistemas de paginação: Utilização da CPU então grau de multiprogramação com um novo processo no sistema. Um algoritmo de substituição de página global é utilizado; ele substitui as páginas sem considerar o processo ao qual pertencem. Quando o processo entra em nova fase de execução e precisa de mais quadros. Então começa as falhas e a remoção de quadros de outros processos. Mas esses outros processos também precisam dessas páginas, logo, novas falhas e novas remoções de quadros de outros processos. Thashing – O motivo
  • 13. Exemplo [cont] Processos com falhas precisam usar o dispositivo de paginação para enviar e receber páginas. E a medida que são enfileirados para o dispositivo de paginação, a fila de prontos se esvazia. Processos Paginação e CPU Thrashing – O motivo esperam
  • 14. Thrashing – O motivo Exemplo [cont] O escalonador de CPU vê CPU e multiprogramação. O novo processo requisita mais quadros causando mais falhas de página e uma fila maior para o dispositivo de paginação. CPU ainda mais e o escalonador tenta multiprogramação. Acontecendo o THRASHING! Falha de página e acesso à memória Não realiza trabalho, pois os processos estão todos paginando.
  • 15. Multiprogramação e a CPU ,até ser alcançado o máximo. Multiprogramação ainda mais, thrashing entra em cena e a CPU bruscamente. Para aumentar a utilização de CPU e acabar com o thrashing temos que o grau de multiprogramação. Thrashing – O motivo
  • 16. Podemos limitar os efeitos do thrashing usando um algoritmo de substituição local. Assim um processo que iniciou thrashing não poderá roubar quadros de outro. Thrashing – O motivo
  • 17. Fornecer a um processo quantos quadros ele precisar é uma forma de impedir o thrashing. Modelo de localidade – quanto quadros um processo está usando? Thrashing – o motivo
  • 18. Baseado na suposição de localidade; examina   referências mais recentes; evita thrashing e mantém o alto grau de multiprogramação; O conjunto de trabalho (WS) é formado pelas páginas nas   referências de páginas mais recentes; A propriedade mais importante em WS é o seu tamanho. Podemos calcular o tamanho de WS de cada processo (WSSi). Se o total da demanda de quadros (D = ∑WSSi) for maior que o total de quadros, ocorrerá thrashing, porque alguns quadros não terão quadros suficientes (processo i precisa de WSSi quadros);  O SO pode monitorar o conjunto de páginas de cada processo e alocar o número suficiente de quadros para o seu conjunto de trabalho. Se D > quadros disponíveis, um processo deverá ser suspenso e suas páginas são descarregadas e alocadas a outros processos. ThashingModelo de conjunto de trabalho
  • 19. ajuda no controle de thrashing; alta taxa de falta de página - processo precisa de mais quadros; baixa taxa de falta de página - talvez processo com número excessivo de quadros. ThashingFrequência de falha de página
  • 20.
  • 21. Arquivos mapeados na memória E/S de arquivos mapeados na memória permite que acessos sejam tratados como acesso a rotinas de memória pelo mapeamento de blocos do disco em páginas na memória Um arquivo é lido inicialmente usando paginação sob demanda. Uma porção do arquivo é lida do sistema de arquivos em páginas físicas. Leituras e escritas subseqüentes de/para o arquivo são tratados como acessos a memória comuns. Simplifica o acesso a arquivos tratando E/S através da memória ao invés do uso de chamadas de sistemas read() write() Também permite que vários processos mapeiem o mesmo arquivo através do compartilhamento de páginas na memória
  • 23. E/S mapeada na memória Intervalos de endereços de memórias são separados e mapeados para registradores de dispositivos. As leituras e escritas nesses endereços de memória fazem com que os dados sejam transferidos de e para os registradores de dispositivo. Esse método é apropriado para dispositivos que possuem tempos de resposta curtos, como controladores de vídeo. Arquivos mapeados na memória
  • 24. Buddy System • Alocação da memória a partir de segmentos de tamanho fixo • Memória alocada de tamanho 2n – Uma requisição é arredondada para um tamanho 2n – Quando um tamanho menor deve ser alocado, um segmento maior é dividido na metade. • Continua até que o tamanho adequado seja obtido Buddy Sistema Buddy
  • 26. • Estratégia alternativa: • Slab: uma ou mais páginas físicamente contíguas • Cache: um ou mais Slabs • Cache única para cada estrutura de dados do kernel – Cada cache é preenchida com dados do kernel – instâncias das estruturas de dados • Quando uma cache é criada, os objetos preenchidos são marcados como livres • Quando as estruturas são utilizadas, os objetos são marcados como usados • Se uma slab está cheio, um novo slab é utilizado – Se nenhum slab está disponível, criar um novo slab • Benéficios: sem fragmentação, requisição de memória é satisfeita rapidamente Alocação de Slab
  • 28. As principais decisões tomadas para um sistema de página são as seleções de um algoritmo de substituição e uma política de alocação, discutidas anteriormente. Existem também muitas outras considerações, e discutiremos algumas delas. Outras Considerações
  • 29.
  • 30. s * (1- x) páginas desnecessárias?
  • 31. x próximo de zero ⇒ perdas na pré-paginaçãoOutras Considerações:Pré-paginação
  • 32.
  • 33. tamanho da tabela
  • 36. Alcance da TLB – A quantidade de memória acessível a partir da TLB. Alcance da TLB = (Tamanho da TLB) X (Tamanho da Página). Idealmente, o conjunto-de-trabalho de cada processo é armazenado na TLB. Em caso contrário existirá um alto grau de páginas ausentes. Aumentar o tamanho da página. Isso pode causar um aumento na fragmentação uma vez que nem todas as aplicações necessitam de páginas de tamanho grande. Fornecer vários tamanhos de página. Isso possibilita aos aplicativos que necessitam de páginas maiores a oportunidade de usá-las sem aumentar a fragmentação. a maneira de aumento Outras Considerações: Alcance da TLB
  • 37.
  • 38. Uma entrada para cada frame
  • 39.
  • 40.
  • 41. Cada linha é armazenada em uma página
  • 42.
  • 43. E/S Interlock – Páginas algumas vezes devem ser travadas (lock) na memória. Considere E/S. Páginas que são usadas para copiar um arquivo de um dispositivo devem ser travadas para não serem selecionadas para despejo por um algoritmo de substituição de página Outras Considerações: Interlock de E/S
  • 44. Razão porque blocos usados para E/S devem estar na memória
  • 45. Paginação com demanda com clustering; O clustering trata de falhas trazendo a página que falta com várias outras páginas após a página que falta; Quando um processo é criado ele recebe um mínimo e um máximo de conjunto de trabalho; Windows XP
  • 46. O conjunto mínimo de trabalho é quantidade mínima de página que o processo tem garantias de ter na memória(50); Se houver memória disponível, o processo pode receber tantas páginas quanto seu conjunto máximo de trabalho (345); O gerenciador de memória virtual mantém um lista de quadro de páginas livres; Windows XP
  • 47. Thread incorre em uma falha de página, o kernel atribui uma página à thread; É imperativo que o kernel mantenha uma quantidade suficiente de memória livre à disposição. Solaris
  • 48. Versões recentes do kernel do Solaris fornecem melhorias do algoritmo de paginação. Uma melhoria é a paginação por prioridade. Solaris
  • 49. Se tivermos 85 quadros com tamanho 1k cada e 2 processostrabalhando, 1 com tamanho 5k e outro de tamanho 10k. Quantosquadroscadaprocessoficaria com o metodoFixoIgual? E no método Fixo Proporcional? Alocação - Pergunta
  • 50. FixoIgual: 85/2 = 2*42 + 1 Portantocadaprocessoficaria com 42 quadros e 1 quadroficarialivre. FixoProporcional: (5/15)*85 = 28 (10/15)*85 = 56 Portanto, o processo de tamanho 5k ficaria com 28 quadros e o de 10k com 56 e 1 quadroficarialivre. Alocação - Resposta
  • 51. O que causa thrashing? Thrashing – Pergunta
  • 52. Ocorrência de paginação excessiva (realocação de quadros) e baixa execução. Resultando em graves problemas de desempenho! Thrashing - Resposta
  • 53. Sistema buddy permite alocação de memória de tamanho variável? Sistema Buddy - Pergunta
  • 54. Não Sistema Buddy – Resposta
  • 55. Quanto a E/S mapeada na memória, este método é apropriado para quais tipos de dispositivos? Arquivos mapeados na memória
  • 56. R: Dispositivos que possuem tempos de resposta curtos, como controladores de vídeo. Arquivos mapeados na memória
  • 57. Se a memória estiver abaixo do limite é utilizado CORTE AUTOMÁTICO DO CONJUNTO DE TRABALHO para restaurar o valor do limite; Como funciona o corte automático? Windows XP - Pergunta
  • 58. R: Se um processo recebeu mais páginas do que o seu mínimo o GMV removerá as páginas até atingir seu mínimo. Se o processo está no seu mínimo, pode receber páginas da lista de quadros livres se tiver memória livre. Windows XP - resposta