1 / 19

Sistemas operacionais

Sistemas operacionais. Gestão de memória Prof. Diovani Milhorim. Memória Virtual – Segmentação. Outro método de gestão de memória virtual é a segmentação A segmentação providencia diferentes espaços de endereçamento linear designados segmentos

rhea-cook
Download Presentation

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 Gestão de memória Prof. Diovani Milhorim

  2. Memória Virtual – Segmentação • Outro método de gestão de memória virtual é a segmentação • A segmentação providencia diferentes espaços de endereçamento linear designados segmentos • Um segmento é um conjunto de endereços lineares desde 0 até um máximo • Segmentos diferentes podem ter dimensões diferentes • Um processo pode possuir diferentes segmentos

  3. Memória Virtual – Segmentação • Esquema de administração de memória que suporta a visão do usuário da memória, leva em consideração a visão de programadores e compiladores Um programa é uma coleção de segmentos. Um segmento é uma unidade lógica, tal como: • programa principal • procedimento / função • método • objeto • variáveis locais, variáveis globais • pilha • tabela de símbolos, arrays Um segmento pode ser uma únidade lógica. ex: procedimentos (funções), bibliotecas • Gerência de memória pode dar suporte diretamente ao conceito de segmentos

  4. Memória Virtual – Segmentação

  5. Memória Virtual – Segmentação

  6. Memória Virtual – Segmentação • Com o tempo, o swapping e a libertação de segmentos origina fragmentação... Fragmentação

  7. Memória Virtual – Segmentação • A gestão de memória segmentada é feita com recurso a tabelas de descritores de segmentos

  8. Memória Virtual – Segmentação • Vantagens: • Fácil implementação de partilha de dados • Divisão de um processo em segmentos diferentes (e.g., código, heap, stack) • Múltiplos espaços de endereçamento linear por processo • Desvantagens: • Maior fragmentação da memória • Impossibilidade de se definirem segmentos maiores do que a memória física (a não ser que se utilize também paginação ou overlays)

  9. Memória Virtual – Misto Segmentação com paginação. • De forma a tirar partido da paginação e da segmentação pode-se utilizar um esquema misto • A um esquema misto também se costuma dar o nome segmentação com paginação • Um esquema misto era utilizado no sistema operativo Multics • O processador Pentium também contém suporte para este tipo de esquema.

  10. Memória Virtual – Misto Segmentação com paginação. O endereçamento é feito em duas etapas • O endereço é traduzido em segmentos por uma tabela de segmentos. • Depois, cada entrada na tabela de segmentos e traduzida em endereços físicos por uma tabela de página. Duas tabelas são envolvidas (segmentos e páginas).

  11. Memória Virtual – Misto Segmentação com paginação.

  12. Memória Virtual – Misto • Vantagem: • Elimina as desvantagens de um esquema puro de segmentação, mas mantém as suas vantagens • Desvantagens: • Maior complexidade das MMUs • Mais acessos à memória para conversão de endereços virtuais em físicos

  13. Gestão de Memória – UNIX • As primeiras versões do UNIX utilizavam gestão de memória baseadas em partições variáveis e swapping • Atualmente, praticamente todas as versões do UNIX utilizam memória virtual paginada • Processos responsáveis pela gestão de memória • page daemon – gere as page tables e o core map, e executa algoritmo de substituição de páginas • swapper– efectua as transferências de páginas entre a memória principal e secundária

  14. Gestão de Memória – UNIX • Espaço de endereçamento dos processos • Dividido em 3 partes: • Segmento de texto – contém o código do programa, e nunca é alterado ao longo do tempo • Segmento de dados – pode crescer através da reserva dinâmica de memória • Segmento do stack – cresce e decresce ao longo do tempo, à medida que vão havendo chamadas a funções NOTA: não é utilizada segmentação, por isso estes segmentos correspondem a um conjunto de páginas • Dois processos diferentes podem partilhar o mesmo segmento de texto (se o programa executado for o mesmo)

  15. Gestão de Memória – UNIX • Espaço de endereçamento dos processos Espaço virtual do processo A Espaço virtual do processo B frames

  16. Gestão de Memória – UNIX • Core Map • Estrutura com informações acerca das page frames • Contém uma entrada por frame • Tipicamente cada entrada do Core Map tem as seguintes informações • Índices do próximo frame livre e do anterior • Nº de bloco em disco correspondente à página carregada • Índice para a process table do processo ao qual pertence a página carregada no frame • Bit que indica se o framese encontra livre • Bit que indica se está ocorrendo uma transferência de página do frame para o disco (e vice-versa) • Bit que indica se a página carregada deve permanecer sempre na memória RAM

  17. Gestão de Memória – UNIX • Tanto o Core Map como o núcleo (kernel) do sistema operativo permanecem sempre carregados na memória principal Sempre carregados em memória principal

  18. Gestão de Memória – UNIX • Algoritmo de substituição de páginas • Originalmente era utilizado o algoritmo do relógio sobre o core map • À medida que as memórias foram crescendo em dimensão, verificou-se que este algoritmo perdia eficiência • O algoritmo foi modificado de modo a ter dois ponteiros (Two-handed clock) • O sistema tenta sempre manter um conjunto de frames livres na memória principal (tipicamente ¼ dos frames) – o page daemon acorda quando não há frames livres suficientes

  19. Gestão de Memória – Linux • Esquema de paginação por demanda sem conceito de Working Set • Algoritmo de substituição de páginas • Processo kswapd (daemon) – acorda de 1 em 1 segundo para ver se há suficientes frames livres • O algoritmo de substituição procura diferentes tipos de páginas a substituir: • Páginas em cache – semelhante ao relógio • Páginas partilhadas – descarta as que não estão a ser utilizadas por nenhum utilizador • Restantes páginas – analisadas por ordem crescente de endereço virtual, com um funcionamento semelhante ao algoritmo do relógio • Processo bdflush (daemon) – efetua cópias de páginas modificadas para o disco

More Related