430 likes | 612 Views
Sistemas Operacionais. Prof. Edivaldo Serafim Curso: Tecnólogo em Análise e Desenvolvimento de Sistemas - 2013 IFSP – Campus Capivari. Gerência de recursos Memória Virtual. 08/10/2013. Introdução.
E N D
Sistemas Operacionais Prof. Edivaldo Serafim Curso: Tecnólogo em Análise e Desenvolvimento de Sistemas - 2013 IFSP – Campus Capivari
Gerência de recursosMemória Virtual 08/10/2013
Introdução • As soluções para garantir o maior número possível de processos na memória nem sempre são eficazes; • O tamanho dos programas é limitado pela quantidade de memória disponível; • Memória virtual é uma técnica que combina memória principal e memória secundária para abrigar programas maiores; • Programas são associados a endereços virtuais e não apenas a endereços físicos da memória. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Introdução • Memória virtual possibilita um maior número de processos compartilhando a memória virtual; • Possibilita diminuir a fragmentação da memória; • Por questões de desempenho, algumas funções da gerência de memória são implementadas em hardware; • O SO deve levar em conta vários elementos para implementação, como o esquema de endereçamento do processador; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Espaço de endereçamento virtual • O conceito de memória virtual é parecido com um vetor: • Quando o programa faz referência a um elemento do vetor, não se preocupa com os endereços físicos do vetor; • O compilador se encarrega de gerar as instruções de forma transparente para o usuário. • A memória virtual é semelhante, porém com os endereços do programa. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Espaço de endereçamento virtual Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Espaço de endereçamento virtual • Programas no ambiente de memória virtual não referenciam endereços físicos, mas sim endereços virtuais; • Na execução, o endereço virtual é convertido em endereço físico; • Esse mecanismo de conversão é denominado mapeamento. • Nesse contexto, o espaço de endereçamento do processo é composto pelo espaço de endereçamento virtual; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Espaço de endereçamento virtual Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Espaço de endereçamento virtual • Como os programas fazem referência a endereços virtuais, o espaço de endereçamento virtual pode referenciar endereços fora da memória principal; • Quando um programa é executado, apenas parte dele fica residente na memória principal, o restante fica na memória secundária até o momento de ser referenciado; • Quando um programa é desenvolvido, o programador desconhece o endereçamento virtual, ficando a cargo dos compiladores e linkers defini-los, e o SO encarrega de sua correta execução. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Espaço de endereçamento virtual Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Mapeamento • O processador apenas executa instruções presentes em endereços reais; • Deve existir mecanismo de conversão de endereços virtuais para reais, chamado de mapeamento; • Como consequência, programas não precisam estar em endereços reais contíguos de memória principal; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Mapeamento Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Mapeamento • Em sistemas atuais, a conversão de endereços é feita pelo hardware em conjunto com o SO; • Transparente ao usuário e sem comprometer o desempenho; • O dispositivo de hardware que converte endereços é o MMU (memory management unit); • O mecanismo de tradução se encarrega de manter as tabelas de mapeamento que contém endereços virtuais e endereços reais de cada processo; • As tabelas de mapeamento referenciam blocos de memória, e não células de memória, podendo ser: • Blocos fixos (paginação) ou blocos variáveis (segmentação) Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Mapeamento Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 Memória virtual por paginação
Memória virtual por paginação • Nesse esquema, tanto o espaço de endereçamento real quanto o virtual são divididos em blocos fixos de mesmo tamanho, chamados páginas; • Páginas do espaço virtual são chamadas páginasvirtuais; • Páginas do espaço real são chamadas páginasreais ouframes; • O mapeamento ocorre através da tabela de páginas: • Cada processo possui a sua tabela de páginas; • Cada página do processo possui uma entrada na tabela (EPT); Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Memória virtual por paginação Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Memória virtual por paginação • Quando um processo é executado, as páginas são trazidas da memória secundária pra a memória principal, e colocada nos frames; • Sempre que necessário, o mecanismo de mapeamento consulta a tabela: • Verifica qual endereço real corresponde o endereço virtual; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Memória virtual por paginação • O endereço virtual é composto por: • Número de pagina virtual (NPV): • Identifica a página virtual, como um índice na tabela de páginas. • Deslocamento: • Indica a posição do endereço virtual na página; • O endereço real é obtido com a combinação do endereço do frame, contido na tabela de páginas com o deslocamento, contido no endereço virtual. • A EPT possui também um bit de validade: • 0 a página virtual não está na memória principal; • 1 a página virtual está a memória principal. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Memória virtual por paginação • Quando o programa referencia um endereço, o gerenciador de memória verifica se este está na memória principal, através do bit de validade: • Se não estiver na memória principal, ocorre um Page Fault; • O gerenciador transfere a posição da memória secundária para a memória principal, que é chamado de PageIn; • A quantidade de pagefaultde um programa depende de como foi escrito e do gerenciador de memória. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Memória virtual por paginação Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Memória virtual por paginação • O número de Page Faultgerados por cada processo em determinado intervalo de tempo é definido como taxa de paginação; • Quando ocorre um pagefault, o processo passa para o estado de espera; • A página é buscada na memória secundária; • Quando a página é trazida da memória secundária para a memória principal, o processo entra na fila de processos prontos. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Política de busca de páginas • A política de busca de páginas determina quando uma página deve ser carregada na memória; • Basicamente existem duas políticas: • Busca por demanda; • Busca antecipada. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Busca por demanda • Na Busca por demanda, as páginas são carregadas apenas quando referenciadas: • Leva para a memória apenas páginas necessárias; • Partes não executadas do programa nunca são carregadas para a memória: • Tratamento de erros por exemplo. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Busca antecipada • Na Busca antecipada, são carregadas páginas necessárias ou não para a execução do programa: • Considerando que programas são sequenciais, pode existir economia de I/O trazendo um conjunto de páginas próximas de endereços referenciados; • Porém se o programa não for utilizar todas as páginas, ocorrerá desperdício de tempo com I/O desnecessário e espaço de armazenamento na memória principal. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Política de alocação de páginas • A política de alocação de páginas determina quantos frames cada processo pode manter na memória principal; • Existem duas políticas: • Alocação Fixa; • Alocação Variável; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Alocação Fixa • A política de alocação fixa, cada processo tem um número máximo de frames que pode ser utilizado; • Caso não haja mais frames disponíveis, algum deve ser descartado para que outro seja carregado; • O limite de páginas reais pode ser igual para todos os processos ou definidos individualmente: • Igual para todos é mais justo, porém pode ocorrer desperdício; • O limite é determinado na criação do processo com base no contexto de software. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Alocação Fixa • A política de alocação fixa apresenta dois problemas: • Se a quantidade de páginas for pequena, ocorrerá excesso de I/O; • Se a quantidade for muito elevada, ocorrerá desperdício de memória principal, reduzindo o número de processos na memória: • Pode-se implementar swapping para melhorar essa situação. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Alocação Variável • A política de alocação variável, o número máximo de páginas varia em função da taxa de paginação; • Processos com elevada taxa podem elevar o número de frames; • Processos com baixa taxa podem ceder frames para outros processos; • Exige que o SO monitore os processos para ajustar os frames, Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Política de substituição de páginas • Páginas reais podem dar lugar a qualquer outro processo; • Quando uma página real for substituída, o seu conteúdo deve ser verificado para determinar se deve ser guardado ou pode simplesmente ser excluído: • Trechos de códigos podem ser excluídos e carregados novamente; • Variáveis e estrutura de dados devem ser armazenados para uso posterior; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Política de substituição de páginas • Para verificar se o dado da página real foi alterado, a tabela de páginas utiliza um bit de verificação, chamado de bit de modificação: • Se foi alterado, o bit é 1; • Se não foi alterado o bit é 0. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Thrashing • Thrashing é a excessiva troca de páginas ou segmentos entre a memória principal e a memória secundária; • Aumenta a taxa de I/O; • Reduz o desempenho do computador. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Working set • Visa eliminar o excesso de I/O provocado pela falta de páginas na memória (Thrashing); • Introduz o conceito de localidades: • Espacial: • Quando páginas próximas podem ser referenciada; • Temporal: • Páginas que são referenciadas constantemente. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 Memória virtual por segmentação
Memória virtual por segmentação • Na Memória virtual por segmentação o espaço de endereçamento virtual é dividido em blocos de tamanhos diferentes, chamados de segmentos; • O compilador analisa o tipo de dado a ser gravado no segmento e então o sistema define o tamanho do segmento; • O espaço virtual de um processo possui limite máximo de segmentos; • O tamanho do segmento pode ser alterado em tempo de execução; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Memória virtual por segmentação • O mecanismo de mapeamento é semelhante ao de paginação, e existe uma tabela para mapear os segmentos, chamada de tabela de mapeamento de segmentos; • Possui o mesmo esquema de endereçamento da paginação, com índice que é o número de segmento virtual e deslocamento; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Memória virtual por segmentação • O sistema de segmentação leva vantagem sobre a paginação pela flexibilidade do segmento, por ser de tamanho variável; • Por exemplo: um vetor grande pode exigir a criação de mais páginas para o processo; • Já com segmentação; basta aumentar o segmento. • Possui desvantagem pois apenas segmentos referenciados podem estar na memória: • Aplicações devem ser desenvolvidas em módulos para diminuir o tamanho do segmento; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Memória virtual por segmentação • Segmentação utiliza a política de alocação de páginas dinâmicas; • Na paginação existe problema de fragmentação interna; • Na segmentação existe problema de fragmentação externa; • Deve existir mecanismos para realocar segmentos de memória; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Paginação x segmentação Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Memória virtual por segmentaçãocom paginação • O espaço de endereçamento é dividido em segmentos e os segmentos em páginas; • Objetiva juntar as duas técnicas para tirar proveito de suas vantagens; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Swapping de memória virtual • É possível utilizar swapping com memória virtual para aumentar o número de processos em execução; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Atividades • 1 até a 8 Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013