Sistemas Operacionais Gerenciamento de Memria Virtual Sistemas Operacionais

  • Slides: 30
Download presentation
Sistemas Operacionais Gerenciamento de Memória Virtual Sistemas Operacionais I Dionisio Gava Junior Reynaldo G.

Sistemas Operacionais Gerenciamento de Memória Virtual Sistemas Operacionais I Dionisio Gava Junior Reynaldo G. de Oliveira – Reynaldg@brfree. com. br

Gerenciamento da Memória Virtual MEMÓRIA VIRTUAL • • • Sistemas não virtuais. Necessidades da

Gerenciamento da Memória Virtual MEMÓRIA VIRTUAL • • • Sistemas não virtuais. Necessidades da memória virtual. Memória virtual. Paginação por demanda. Interrupção por falta de página. Carga por demanda. Remoção de páginas. Tabela de blocos. Execução com memória virtual. Paginação por demanda. Exercícios. FATEC - Sistemas Operacionais I

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Sistemas não Virtuais Em todos

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Sistemas não Virtuais Em todos os esquemas vistos previamente, o serviço não executaria caso não existisse memória suficiente para a carga do programa inteiro. Esta restrição frequentemente resulta em áreas livres e serviços esperando para ser carregado e executado. Mais do que isso, os programadores quando pressionados a manter o espaço de endereçamento do programa pequeno, diminuem a produtividade bem com a qualidade da programação. Muitos estudos realizados tem mostrado que um programa quando restrito em termos de espaço de memória, implicará em um custo crescente de programação ao longo de sua manutenção.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Necessidades da Memória Virtual •

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Necessidades da Memória Virtual • O tamanho da memória de um computador não deve influir na programação, ou mesmo na estruturação aplicativa. • Se o programa for muito grande, em relação a memória, o sistema operacional, não o programador, deverá alocá-lo adequadamente na memória. • O programa deverá utilizar somente a memória necessária durante a sua execução. • O sistema operacional não deve permitir que a memória torne-se fragmentada ou qualquer outra situação de sub-utilização. • O sistema deverá se adaptar a demanda das atividades aplicativas, alocando, desalocando ou adicionando quando necessário, de forma transparente e automática.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Espaço Simbólico Os programas contém

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Espaço Simbólico Os programas contém descrições dos dados, de instruções e descrições de E/S. Os dados são descritos com nomes simbólicos, tais como “salário”, “campoa”, “endereço”, etc. Algumas instruções ou grupos de instruções, da mesma forma que um campo na memória, poderão possuir nomes simbólicos, os quais são referenciados nas operações de desvio. O programa fonte será efetivamente uma combinação de instruções simbólicas, descrições de dados e descrições de operações de E/S, todos estes existindo em um espaço construído pelo programador. Este espaço é denominado "ESPAÇO SIMBÓLICO". Esta combinação de instruções simbólicas e nomes simbólicos e parte integrante do processo de desenvolvimento, estão presentes em quase todas as linguagens de programação, sendo fundamentais na implementação das aplicações.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Tradução Na preparação de um

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Tradução Na preparação de um programa fonte para execução, o programador executa a compilação de um conjunto de símbolos que constituem o Espaço Simbólico. O compilador converte os elementos simbólicos de uma determinada linguagem de programação utilizada, para instruções de máquina, para dados e outros blocos de informações. O compilador substitui os nomes simbólicos por endereços reais. Este processo é chamado "Tradução". Após a tradução os endereços que compreendem o programa denominado "Espaço de Endereçamento". O compilador assinala endereços iniciando na localização zero de memória, atribuindo crescentemente os endereços, as instruções e demais constantes.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Formas de Tradução de Endereços

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Formas de Tradução de Endereços A tradução de endereços poder ser realizada de três formas: Somente na Compilação. O programa compilado e o resultado da compilação criará um módulo cujos, endereços são absolutos. Exemplo "mover 10 bytes da posição 100 para posição 200 da memória". Neste caso não haverá tradução de "endereços na memória". Na compilação e na execução (não virtuais). A compilação traduz os símbolos em endereços não absolutos, os quais serão ainda traduzidos no momento da execução, porém não exigem consulta em tabelas. Na compilação e na execução (virtuais). Idem ao anterior, porém o endereço não absoluto exigirá ainda

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Tradução de Endereços O programa

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Tradução de Endereços O programa visto pelo sistema como um conjunto de endereços virtuais, mapeados em páginas em uma tabela específica do programa. No momento da execução de suas instruções, acontecerá tradução dos endereços virtuais para reais. A tradução feita por circuitos de hardware a qual consultará a tabela de páginas do programa para obter o bloco correspondente à página. A tradução ocorrerá tanto na busca de uma instrução como no endereçamento de operandos.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Tipos de Relocação Estática É

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Tipos de Relocação Estática É feita no momento em que o programa carregado para a memória. A tradução feita em uma única vez na compilação do programa. O resultado um espaço de endereçamento que terá a origem zero, e por isso deverá ser carregado na localização zero da memória real. Este programa denominado PROGRAMA ABSOLUTO. Não existirá relocação de endereços do espaço de endereços no programa e a memória real. Dinâmica É feita no momento da execução do programa. A cada instrução ou dados referenciado, haverá a tradução de endereços. O programa não tendo endereçamento absoluto, não necessitará estar carregado continuamente. Este tipo de tradução denominado RELOCAÇÃO DIN MICA e executado por dispositivos especiais de hardware.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Memória Virtual Em todos os

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Memória Virtual Em todos os esquemas não virtuais vistos anteriormente, notou-se que um serviço não poderia ser executado, caso não houvesse memória suficiente para carregar todo o espaço de endereçamento. Esta restrição resulta em áreas livres não utilizadas e serviços que ficam esperando para ser carregados e executados. Embora os custos de memória decrescem com o passar do tempo, a necessidade de utilização sempre foi, e sempre será consideravelmente maior que a capacidade oferecida pelos computadores. A solução para estes problemas basicamente foi a utilização de MEMÓRIA VIRTUAL. Com o uso de memória virtual, o sistema operacional produz a ilusão de existir uma memória extremamente grande. Como isto é somente uma ilusão, pois e memória não existe fisicamente, é denominada memória virtual. A utilização de memória virtual possui várias implementações. Analisaremos a seguir uma delas denominada "PAGINAÇÃO POR DEMANDA".

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Paginação por Demanda A técnica

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Paginação por Demanda A técnica de gerenciamento denominada Paginação por Demanda, permitirá que a soma dos espaços de todos os programas seja maior que a memória física disponível. Esta será permitida pelo fato de que todo o espaço do programa não necessitará estar na memória física de uma vez, ao contrário disto, somente as partes ativas de cada programa terá de ser carregada.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Implementação de Memória Virtual •

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Implementação de Memória Virtual • A memória física será dividida em blocos iguais. Em algumas arquiteturas, a área em que estará carregado o sistema operacional não sofre a divisão em blocos. • Será criado para cada programa no momento de a execução uma tabela de páginas que conterá: uma entrada para cada página a ser mapeada. Cada entrada contém o número da página ( de 0 a n), o estrado da página ( S - está presente na memória física, N - não está presente na memória física). • Bloco - Número do bloco, ou seja, a localização da página na memória física. O programa possuirá um conjunto de endereços "VIRTUAIS" compreendido por páginas, que analisaremos a seguir. • Uma página poderá ter tamanho variado, entretanto a formatação mais comumente encontradas nas arquiteturas utilizam paginas de 4 Kbytes de tamanho.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Interrupção por Falta de Página

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Interrupção por Falta de Página Caso o hardware no momento da tradução encontrar o estado "N" na tabela de páginas, para aquela página específica, gerado neste instante uma interrupção por falta de página. Este tipo de interrupção faz com que o sistema operacional carregue de volta para a memória e atualize a tabela de páginas. Neste momento o programa espera a resolução da página demandada. Exatamente por isso o esquema denominado "PAGINAÇÃO POR DEMANDA". Desta forma todas as páginas necessárias serão carregadas por demanda. Isto garante que páginas não necessárias não sejam carregadas.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Carga por Demanda Uma cópia

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Carga por Demanda Uma cópia de todo o espaço de endereço do programa armazenada na memória auxiliar quando o programa carregado para execução. Durante a execução, no momento de uma tradução, a página pode não estar na memória, isto implicar na interrupção por falta de página, que por sua vez fará com que a página demandada seja carregada do disco para a memória. A técnica de gerenciamento de paginação por demanda torna-se eficiente, a medida que o programa não fica restrito ao tamanho da memória física. Em outras palavras, o programa poderia ser maior que a memória física disponível.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Remoção de Páginas Uma vez

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Remoção de Páginas Uma vez que a memória física esteja totalmente cheia, o sistema não poderá carregar do disco para a memória uma página que fosse demandada. Neste caso dever haver uma política de remoção de páginas a ser realizada. Para liberar blocos na memória física, o sistema avaliará os blocos menos utilizados, fará a liberação dos mesmos e atualizará as tabelas.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Tabela de Blocos O controle

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Tabela de Blocos O controle da memória física será feito através da tabela de blocos. No momento da iniciação do sistema, a tabela será criada e existirá uma entrada para cada bloco existente. O sistema operacional de tempos em tempos atualiza a tabela com base na utilização do bloco. (Exemplo 1 em 1 segundo). Na utilização é verificado se o bloco foi ou não referenciado, e caso não tenha sido, será somado "1" no contador de não referência (CNR ou UIC). Caso o controle do bloco tenha sido alterado, o bit de alteração conterá o valor "1". Para liberar blocos, o sistema pesquisar os blocos com maior UIC, e caso o bit de alteração esteja em 1, fará uma cópia para o disco antes da liberação.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Execução com Memória Virtual A

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Execução com Memória Virtual A memória virtual visualisa o programa através de seus endereços virtuais. Ao ser executado, o sistema deverá traduzir os endereços virtuais do programa para os endereços reais. A tradução realizada normalmente por dispositivos de hardware (circuitos) que garantem uma alta velocidade na execução desta tarefa. O programa fisicamente estará residindo na memória real (memória física), ou na memória auxiliar (disco). Durante a tradução de um endereço, o sistema poderá detectar a ausência de uma parte do programa na memória, a qual estará no disco e será rapidamente trazida de volta para a memória, permitindo que o programa continue a execução. Partes muito utilizadas residirão na memória, e partes pouco utilizadas residirão em disco e somente serão trazidas para a memória quando necessárias. Consequentemente, o programa ocupará uma menor quantidade de memória real, liberando grande parte de memória para que outros programas possam ser executados.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Paginação por Demanda Vantagens •

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Paginação por Demanda Vantagens • Ampla memória virtual: Os programas não se limitam ao tamanho da memória física. • Uso eficiente de memória: As partes dos programas pouco ou raramente utilizadas, não residirão na memória física. . Aumento da multiprogramação: A memória virtual possibilita o aumento do número de programas em execução, bem como aumento do tamanho. Desvantagens • . Trabalho não produtivo: O sistema operacional para exercer o gerenciamento consumir ciclos de CPU. Thrashing: Caso a demanda de páginas seja muito alta, o sistema passa a gastar muito tempo para resolver atividades de paginação, sendo que este gasto poderá coibir a utilização do sistema pelos programas aplicativos.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Paginação por Demanda Paginas 4

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Paginação por Demanda Paginas 4 K Slots 4 K SO Memória Real Tabelas Memória Auxiliar

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Paginação por Demanda Saída de

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Paginação por Demanda Saída de Paginas Retorno de Paginas SO Memória Real Funcionamento Memória Auxiliar Sáida de Paginas – As paginas não estão sendo necessárias, e portanto podem ser liberadas da memória real Retorno de Pagina – O programa necessita para continuar a executar de uma pagina que não se encontra na memória.

Gerenciamento da Memória Virtual Mapeamento da Memória Real FATEC - Sistemas Operacionais I Tabela

Gerenciamento da Memória Virtual Mapeamento da Memória Real FATEC - Sistemas Operacionais I Tabela de Blocos Nº Pg 1 2 1 6 11 16 21 2 7 12 17 22 3 8 13 18 23 4 9 14 19 24 5 5 10 15 20 25 6 SO 3 4 7 8 Memória Real 9 25 Processo UIC Alt

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Mapeamento da Memória Real 1

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Mapeamento da Memória Real 1 6 11 16 21 2 7 12 17 22 3 8 13 18 23 4 9 14 19 24 5 10 15 20 25 SO SO A SO B Processo B entra em execução Processo A entra em execução

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Mapeamento da Memória Real 1

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Mapeamento da Memória Real 1 6 11 16 21 2 7 12 17 22 3 8 13 18 23 4 9 14 19 24 5 10 15 20 25 SO C SO SO D E Processo C entra em execução Processo D entra em execução Processo E entra em execução

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Mapeamento da Memória Real 1

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Mapeamento da Memória Real 1 6 11 16 21 2 7 12 17 22 3 8 13 18 23 4 9 14 19 24 5 10 15 20 25 Pontos de Reflexão: • Sendo um sistema de memória virtual o que deverá ocorrer à partir deste momento? • O que ocorreria se não fosse Gerenciamento de memória virtual? SO F Processo F entra em execução

Gerenciamento da Memória Virtual Mapeamento da Memória Real FATEC - Sistemas Operacionais I Tabela

Gerenciamento da Memória Virtual Mapeamento da Memória Real FATEC - Sistemas Operacionais I Tabela de Blocos Nº Pg Proc. UIC Alt 1 A 121 0 2 A 0 1 3 A 32 0 1 6 11 16 21 2 7 12 17 22 4 A 67 0 3 8 13 18 23 5 A 3 0 4 9 14 19 24 6 B 102 1 5 10 15 20 25 7 B 76 1 8 B 5 0 9 B 26 0 SO n 71

Gerenciamento da Memória Virtual Controle da Memória Real FATEC - Sistemas Operacionais I Tabela

Gerenciamento da Memória Virtual Controle da Memória Real FATEC - Sistemas Operacionais I Tabela de Blocos Proc. UIC Alt 2 A 3 A 0 0 32 0 1 0 0 3 0 0 5 26 0 0 0 Nº Pg 1 4 Liberação de Paginas Menos frequentemente Utilizadas Maiores UIC 5 A 6 7 8 B 9 B n 71

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Mapeamento da Memória Real 1

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Mapeamento da Memória Real 1 6 11 16 21 2 7 12 17 22 3 8 13 18 23 4 9 14 19 24 5 10 15 20 25 Processo F Fragmentação? SO Questões: • Como será a alocação de novos programas? • ´Teoricamente seria possível a carga de um programa maior que o espaço memória real disponível?

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Mapeamento da Memória Real 1

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Mapeamento da Memória Real 1 6 11 16 21 2 7 12 17 22 3 8 13 18 23 4 9 14 19 24 5 10 15 20 25 Processo F SO Processo G SO Reflexões: • Os programas não são carregados continuamente na memória • Caso necessário o sistema liberará paginas inativas. (MFU ou LRU) • Somente as partes ativas dos programas permanecerão se houver necessidade de recurso. • O nivel de multiprogramação tenderá a ser bem maior, uma vez que somente as partes ativas dos programas permanecerão na memória.

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Falta de Pagina Funcionamento: 1

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Falta de Pagina Funcionamento: 1 6 11 16 21 2 7 12 17 22 3 8 13 18 23 4 9 14 19 24 5 10 15 20 25 SO • O programa A em execução tenta desviar para endereços da pagina 4. • A pagina 4 não se encontra disponível na memória real. Havia sido liberada por não estar ativa, e por ter existido necessidade de mais memória para outros processos. • No momento em que o desvio ocorre, existirá a tentativa de tradução de endereço, porém sem sucesso, pois não existe o corresponde real para a pagina 4. A mesma está somente em disco. • Neste momento ocorre uma interrupção de FALTA DE PAGINA. • Como toda interrupção, a Falta de Pagina terá o processo normal de tratamento. (CPU é interrompida, salvamento do estado, etc. . ) • O sistema estará tratando a Falta de Pagina, identificando na Tabela de Programa a localização no disco, retornando em seguida. • O retorno será em uma localidade de memória livre, não sendo necessário em local específico. Disco

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Espaço de endereçamento do processo

Gerenciamento da Memória Virtual FATEC - Sistemas Operacionais I Espaço de endereçamento do processo Programa A Aspectos: Virtual Bloco Disco 1 - 31 2 2 6 3 3 4 25 5 5 85 • Os endereços virtuais são contínuos • Os endereços na memória real, ou no disco, não necessitam estar contínuos • Haverá sempre a tradução dos endereços, resolvendo o endereçamento do programa.