1 / 42

Sistemas Operacionais

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.

ovid
Télécharger la présentation

Sistemas Operacionais

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sistemas Operacionais Prof. Edivaldo Serafim Curso: Tecnólogo em Análise e Desenvolvimento de Sistemas - 2013 IFSP – Campus Capivari

  2. Gerência de recursosMemória Virtual 08/10/2013

  3. 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

  4. 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

  5. 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

  6. Espaço de endereçamento virtual Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013

  7. 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

  8. Espaço de endereçamento virtual Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013

  9. 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

  10. Espaço de endereçamento virtual Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013

  11. 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

  12. Mapeamento Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013

  13. 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

  14. Mapeamento Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013

  15. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 Memória virtual por paginação

  16. 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

  17. Memória virtual por paginação Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013

  18. 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

  19. 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

  20. 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

  21. Memória virtual por paginação Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013

  22. 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

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. 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

  29. 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

  30. 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

  31. 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

  32. 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

  33. 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

  34. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 Memória virtual por segmentação

  35. 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

  36. 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

  37. 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

  38. 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

  39. Paginação x segmentação Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013

  40. 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

  41. 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

  42. Atividades • 1 até a 8 Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013

More Related