Sistemas operacionais Gesto de memria Prof Diovani Milhorim

  • Slides: 19
Download presentation
Sistemas operacionais Gestão de memória Prof. Diovani Milhorim 1

Sistemas operacionais Gestão de memória Prof. Diovani Milhorim 1

Memória Virtual – Segmentação n n n Outro método de gestão de memória virtual

Memória Virtual – Segmentação n n n 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 2

Memória Virtual – Segmentação • Esquema de administração de memória que suporta a visão

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 3

Memória Virtual – Segmentação 4

Memória Virtual – Segmentação 4

Memória Virtual – Segmentação 5

Memória Virtual – Segmentação 5

Memória Virtual – Segmentação n Com o tempo, o swapping e a libertação de

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

Memória Virtual – Segmentação n A gestão de memória segmentada é feita com recurso

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

Memória Virtual – Segmentação n n Vantagens: ¨ Fácil implementação de partilha de dados

Memória Virtual – Segmentação n n 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) 8

Memória Virtual – Misto Segmentação com paginação. n n De forma a tirar partido

Memória Virtual – Misto Segmentação com paginação. n n 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. 9

Memória Virtual – Misto Segmentação com paginação. O endereçamento é feito em duas etapas

Memória Virtual – Misto Segmentação com paginação. O endereçamento é feito em duas etapas n O endereço é traduzido em segmentos por uma tabela de segmentos. n 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). 10

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

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

Memória Virtual – Misto n Vantagem: ¨ Elimina as desvantagens de um esquema puro

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

Gestão de Memória – UNIX n n n As primeiras versões do UNIX utilizavam

Gestão de Memória – UNIX n n n 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 13

Gestão de Memória – UNIX n Espaço de endereçamento dos processos ¨ Dividido em

Gestão de Memória – UNIX n Espaço de endereçamento dos processos ¨ Dividido em 3 partes: n Segmento de texto – contém o código do programa, e nunca é alterado ao longo do tempo n Segmento de dados – pode crescer através da reserva dinâmica de memória n 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) 14

Gestão de Memória – UNIX n Espaço de endereçamento dos processos Espaço virtual do

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

Gestão de Memória – UNIX n Core Map Estrutura com informações acerca das page

Gestão de Memória – UNIX n 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 n Índices do próximo frame livre e do anterior n Nº de bloco em disco correspondente à página carregada n Índice para a process table do processo ao qual pertence a página carregada no frame n Bit que indica se o framese encontra livre n Bit que indica se está ocorrendo uma transferência de página do frame para o disco (e vice-versa) n Bit que indica se a página carregada deve permanecer sempre na memória RAM ¨ 16

Gestão de Memória – UNIX ¨ Tanto o Core Map como o núcleo (kernel)

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 17

Gestão de Memória – UNIX n Algoritmo de substituição de páginas ¨ Originalmente era

Gestão de Memória – UNIX n 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 (Twohanded 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 18

Gestão de Memória – Linux n n Esquema de paginação por demanda sem conceito

Gestão de Memória – Linux n n 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: n Páginas em cache – semelhante ao relógio n Páginas partilhadas – descarta as que não estão a ser utilizadas por nenhum utilizador n 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 19